{"version":3,"file":"js/consumer-0fa988f769f97789b65e.js","mappings":"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","sources":["webpack://shopify_zero/./app/javascript/consumer-app/components/ErrorBoundary.js","webpack://shopify_zero/./app/javascript/consumer-app/data/apolloCacheConfig.js","webpack://shopify_zero/./app/javascript/consumer-app/contexts/StripeProvider.js","webpack://shopify_zero/./app/javascript/consumer-app/components/type-form/TypeForm.js","webpack://shopify_zero/./app/javascript/consumer-app/components/type-form/index.js","webpack://shopify_zero/./app/javascript/consumer-app/data/shopNowExpiration.js","webpack://shopify_zero/./app/javascript/consumer-app/data/cancelShopNow.js","webpack://shopify_zero/./app/javascript/consumer-app/data/returnMethods.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/ChooseMethod/MethodCard.js","webpack://shopify_zero/./app/javascript/consumer-app/components/icons/return_in_store.js","webpack://shopify_zero/./app/javascript/consumer-app/components/icons/dropoff.js","webpack://shopify_zero/./app/javascript/consumer-app/components/icons/use_my_own.js","webpack://shopify_zero/./app/javascript/consumer-app/data/returnLocations.js","webpack://shopify_zero/./app/javascript/consumer-app/data/consumerPreferences.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/ChooseMethod/ChooseMethod.js","webpack://shopify_zero/./app/javascript/consumer-app/components/DropoffLocationLogo.js","webpack://shopify_zero/./app/javascript/shared/components/MaptilerMap.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/ChooseMethodSubstep/LocationCard.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/ChooseMethodSubstep/ZipForm.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/ChooseMethodSubstep/ChooseLocation.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/ChooseMethodSubstep/ChooseMethodSubstep.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/ConfirmMailingAddress/ContactInformationForm.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/ConfirmMailingAddress/MailingAddress.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/ConfirmMailingAddress/ConfirmMailingAddress.js","webpack://shopify_zero/./app/javascript/consumer-app/data/calculateRefund.js","webpack://shopify_zero/./app/javascript/consumer-app/data/uploadPictures.js","webpack://shopify_zero/./app/javascript/consumer-app/data/submitReturn.js","webpack://shopify_zero/./app/javascript/consumer-app/components/Strikethrough.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/Confirmation/ConfirmationCheckIcon.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/Confirmation/ConfirmationBasic.js","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/InstructionsList/StepListStyles.ts","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/InstructionsList/StepList.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Icon/IconStyles.ts","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Icon/GooglePlay.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Icon/AppStore.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/InstructionsList/Step.tsx","webpack://shopify_zero/./app/javascript/consumer-app/Confirmation/Steps.tsx","webpack://shopify_zero/./app/javascript/consumer-app/Confirmation/tokens.ts","webpack://shopify_zero/./app/javascript/consumer-app/Confirmation/ConfirmationStyles.ts","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Preferences/PreferencesStatusStyles.ts","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Preferences/PreferencesStatus.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/utils/validateString.ts","webpack://shopify_zero/./app/javascript/consumer-app/Confirmation/raw.tsx","webpack://shopify_zero/./app/javascript/consumer-app/Confirmation/index.tsx","webpack://shopify_zero/./app/javascript/consumer-app/steps/Confirmation/Confirmation.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/ChooseShopNow/ChooseShopNow.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/ChooseReturnCreditMethod/CreditMethodCard.js","webpack://shopify_zero/./app/javascript/consumer-app/components/icons/shop_now.js","webpack://shopify_zero/./app/javascript/shared/components/icons/GiftCard.js","webpack://shopify_zero/./app/javascript/consumer-app/components/icons/shop_later.js","webpack://shopify_zero/./app/javascript/shared/components/icons/Refund.js","webpack://shopify_zero/./app/javascript/consumer-app/components/icons/refund.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/ChooseReturnCreditMethod/ChooseReturnCreditMethod.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/Review/Details.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/Review/Item.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/Review/Refund.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/Review/CheckoutForm.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/Review/Submit.js","webpack://shopify_zero/./app/javascript/consumer-app/data/preApproval.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/Review/useNthFees.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/Review/useNthRefund.js","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/Items.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/transformers/string.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/ReviewSummaryRawStyles.ts","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/Total.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/ReshopOptIn/ReshopOptInStyles.ts","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/ReshopOptIn/ReshopOptIn.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/ShopNowItems.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/ReviewSummaryRaw.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/transformers/pudoMethod.ts","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/index.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/utils/rootElmHelpers.ts","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/ClaimAttestation/useClaimAttestation.ts","webpack://shopify_zero/./app/javascript/consumer-app/steps/Review/Review.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/Stepper.js","webpack://shopify_zero/./app/javascript/consumer-app/components/ReturnOrder.js","webpack://shopify_zero/./app/javascript/consumer-app/checkout/styles.ts","webpack://shopify_zero/./app/javascript/consumer-app/checkout/util/transformToNth.ts","webpack://shopify_zero/./app/javascript/consumer-app/checkout/hooks/useTransformToNth.ts","webpack://shopify_zero/./app/javascript/consumer-app/checkout/ReturnCartCostPanel.tsx","webpack://shopify_zero/./app/javascript/gql/__generated__/schema.ts","webpack://shopify_zero/./app/javascript/consumer-app/checkout/hooks/useAddress.ts","webpack://shopify_zero/./app/javascript/consumer-app/checkout/BillingAddress.tsx","webpack://shopify_zero/./app/javascript/consumer-app/checkout/hooks/usePayment.ts","webpack://shopify_zero/./app/javascript/consumer-app/checkout/hooks/useSubmit.ts","webpack://shopify_zero/./app/javascript/consumer-app/checkout/hooks/useDiscountCode.ts","webpack://shopify_zero/./app/javascript/consumer-app/checkout/DiscountCode.tsx","webpack://shopify_zero/./app/javascript/consumer-app/hooks/useCheckoutLocalStorageData.tsx","webpack://shopify_zero/./app/javascript/consumer-app/checkout/Checkout.tsx","webpack://shopify_zero/./app/javascript/consumer-app/checkout/hooks/usePreferences.ts","webpack://shopify_zero/./app/javascript/consumer-app/components/Checkout.js","webpack://shopify_zero/./app/javascript/consumer-app/checkoutConfirmation/CheckoutConfirmation.tsx","webpack://shopify_zero/./app/javascript/consumer-app/components/AppRouter.js","webpack://shopify_zero/./app/javascript/consumer-app/components/App.js","webpack://shopify_zero/./app/javascript/consumer-app/index.js","webpack://shopify_zero/./app/javascript/packs/consumer.js","webpack://shopify_zero/./app/javascript/packs/polyfill.js"],"sourcesContent":["import React, { useState, useMemo } from \"react\";\n\nimport CssBaseline from \"@material-ui/core/CssBaseline\";\nimport Container from \"@material-ui/core/Container\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Typography from \"@material-ui/core/Typography\";\nimport { makeStyles, ThemeProvider } from \"@material-ui/styles\";\n\nimport useTheme from \"../theme/mui\";\nimport errorNotifier from \"../../shared/modules/error-notifier\";\nimport { config } from \"../config\";\nimport { getConfig } from \"../../shared/modules/config\";\n\nconst useStyles = makeStyles(\n (theme) => ({\n container: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n flexDirection: \"column\",\n paddingTop: \"9.375em\",\n paddingBottom: \"9.375em\",\n },\n message: {\n marginBottom: \"2em\",\n },\n }),\n { name: \"N0ErrorBoundaryContent\" },\n);\n\nfunction ErrorBoundaryContent() {\n const theme = useTheme(getConfig(\"branding\"));\n const classes = useStyles();\n\n return (\n \n \n \n \n \n \n Sorry, something unexpected occurred and we’re looking into\n it. Please try again later.\n \n \n \n \n \n );\n}\n\nclass ErrorBoundary extends React.Component {\n constructor(props) {\n super(props);\n this.state = { hasError: false };\n }\n\n static getDerivedStateFromError(error) {\n return { hasError: true };\n }\n\n componentDidCatch(error, errorInfo) {\n console.error(\"ErrorBoundary caught:\", error, errorInfo);\n errorNotifier.critical(error, { caughtByErrorBoundary: true });\n }\n\n render() {\n if (this.state.hasError) {\n return ;\n }\n\n return this.props.children;\n }\n}\n\nexport default ErrorBoundary;\n","import { defaultDataIdFromObject } from \"@apollo/client/cache\";\n\nexport default {\n dataIdFromObject: (obj) => {\n switch (obj.__typename) {\n case \"ReturnMethod\":\n return [obj.id, obj.carrierService, obj.carrierId].join(\"|\");\n default:\n return defaultDataIdFromObject(obj);\n }\n },\n};\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\n// Importing loadStripe without side effects\n// Stripe.js will not be loaded until `loadStripe` is called\n// https://github.com/stripe/stripe-js#importing-loadstripe-without-side-effects\nimport { loadStripe } from \"@stripe/stripe-js/pure\";\nimport { Elements, useElements, useStripe } from \"@stripe/react-stripe-js\";\n\nimport { config } from \"../config\";\nimport { featureFlaggedHook } from \"../../shared/modules/hooks\";\nimport { memoObjectByKeyValues } from \"../../shared/modules/object\";\n\nconst stripePromise = config.isStripeEnabled\n ? loadStripe(config.stripePubKey, { stripeAccount: config.stripeAccount })\n : null;\n\nconst StripeProvider = ({ stripe, children }) => {\n return {children};\n};\n\nStripeProvider.propTypes = {\n stripe: PropTypes.object, // stripe promise object\n children: PropTypes.node.isRequired,\n};\n\nStripeProvider.defaultProps = {\n stripe: stripePromise,\n};\n\nexport default StripeProvider;\n\nexport const useStripeComponents = featureFlaggedHook(\n config.isStripeEnabled,\n {},\n)(() => {\n const stripe = useStripe();\n const elements = useElements();\n\n return memoObjectByKeyValues({\n stripe,\n elements,\n });\n});\n","import React, { useCallback, useRef } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport TypeFormSection from \"./TypeFormSection\";\nimport {\n // getWindowFramePosition,\n scrollToPosition,\n} from \"../../../shared/modules/frame\";\nimport { getBranding } from \"../../../shared/modules/config\";\nimport { useTypeForm } from \"../../contexts/typeForm\";\nimport { useDebounceCallback } from \"../../../shared/modules/hooks\";\n\nfunction TypeForm({ activeIndex, children }) {\n const actions = useTypeForm();\n const scrollToActive = useDebounceCallback(actions.scrollToActiveNow, 350);\n\n const handleRenderNext = useCallback(\n function handleRenderNext(activeSection, activeIndex, firstRender) {\n actions.setActiveSection(activeSection);\n\n // Disable autoscroll on the first step.\n if (firstRender && activeIndex !== 0 && activeIndex !== 1) {\n scrollToActive();\n }\n },\n [actions],\n );\n\n return React.Children.map(children, (child, index) => {\n if (index <= activeIndex) {\n return (\n \n {child}\n \n );\n }\n return null;\n });\n}\nTypeForm.propTypes = {\n activeIndex: PropTypes.number,\n children: PropTypes.node,\n};\nTypeForm.defaultProps = {\n activeIndex: 0,\n};\nexport default TypeForm;\n","import TypeForm from \"./TypeForm\";\nexport default TypeForm;\n","import { useCallback, useMemo, useState } from \"react\";\nimport { useApolloClient, gql } from \"@apollo/client\";\n\nfunction buildCheckoutQuery(checkoutCode, cancel = false) {\n // prettier-ignore\n return gql`\n query checkShopNowExpiration {\n checkShopNowExpiration(code: \"${checkoutCode}\", cancel: ${cancel}) {\n expired\n formattedAmount\n }\n }\n`;\n}\n\nexport function useShopNowExpiration() {\n const [called, setCalled] = useState(false);\n const [calledCancel, setCalledCancel] = useState(false);\n const [data, setData] = useState();\n const [error, setError] = useState(null);\n const [loading, setLoading] = useState(false);\n const client = useApolloClient();\n\n const state = useMemo(() => {\n return {\n called,\n calledCancel,\n error,\n loading,\n data,\n };\n }, [called, calledCancel, data, error, loading]);\n\n const checkShopNow = useCallback(\n function checkShopNow(checkoutCode, cancel) {\n async function checkShopNowAsync(checkoutCode, cancel) {\n if (!checkoutCode) return;\n\n try {\n setCalled(true);\n setLoading(true);\n if (cancel) {\n setCalledCancel(true);\n }\n\n const { error, data } = await client.query({\n query: buildCheckoutQuery(checkoutCode, cancel),\n fetchPolicy: \"network-only\",\n });\n\n if (error) {\n setError(error);\n } else {\n setData(data);\n setError(null);\n }\n } catch (err) {\n setError(err);\n } finally {\n setLoading(false);\n setCalled(false);\n setCalledCancel(false);\n }\n }\n\n checkShopNowAsync(checkoutCode, cancel);\n },\n [client],\n );\n\n return useMemo(() => ({ checkShopNow, state }), [checkShopNow, state]);\n}\n","import { useCallback, useMemo, useState } from \"react\";\nimport { useApolloClient, gql } from \"@apollo/client\";\n\nimport { cancelShopNowCheckout } from \"../../shared/modules/frame\";\n\nfunction buildCheckoutQuery(checkoutCode) {\n // prettier-ignore\n return gql`\n query checkShopNowExpiration {\n checkShopNowExpiration(code: \"${checkoutCode}\", cancel: true) {\n expired\n formattedAmount\n }\n }\n`;\n}\n\nexport function useCancelShopNow() {\n const [called, setCalled] = useState(false);\n const [calledCancel, setCalledCancel] = useState(false);\n const [data, setData] = useState();\n const [error, setError] = useState(null);\n const [loading, setLoading] = useState(false);\n const client = useApolloClient();\n\n const state = useMemo(() => {\n return {\n called,\n calledCancel,\n error,\n loading,\n data,\n };\n }, [called, calledCancel, data, error, loading]);\n\n const cancelShopNow = useCallback(\n function cancelShopNow(checkoutCode, cancel) {\n async function cancelShopNowAsync(checkoutCode, cancel) {\n try {\n setCalled(true);\n setLoading(true);\n if (cancel) {\n setCalledCancel(true);\n }\n\n const { error, data } = await client.query({\n query: buildCheckoutQuery(checkoutCode, cancel),\n fetchPolicy: \"network-only\",\n });\n\n if (error) {\n setError(error);\n } else {\n setData(data);\n setError(null);\n cancelShopNowCheckout();\n }\n } catch (err) {\n setError(err);\n } finally {\n setLoading(false);\n setCalled(false);\n setCalledCancel(false);\n }\n }\n\n cancelShopNowAsync(checkoutCode, cancel);\n },\n [client],\n );\n\n return useMemo(() => ({ cancelShopNow, state }), [cancelShopNow, state]);\n}\n","import { useMemo } from \"react\";\nimport { useQuery, gql } from \"@apollo/client\";\nimport { getAddressError } from \"../../shared/modules/decodeError\";\nimport { memoObjectByKeyValues } from \"../../shared/modules/object\";\n\nexport const QUERY = gql`\n query getReturnMethods(\n $draftReturnUuid: String\n $returnItems: [ReturnCalculationInput!]!\n $exchangeItems: [ExchangeItemInput!]!\n $orderNumber: String!\n $email: String!\n $locale: String\n $fromAddress: FromAddressInput\n $csid: String\n $shopNow: Boolean\n ) {\n returnMethods(\n draftReturnUuid: $draftReturnUuid\n returnItems: $returnItems\n exchangeItems: $exchangeItems\n orderNumber: $orderNumber\n email: $email\n locale: $locale\n fromAddress: $fromAddress\n csid: $csid\n shopNow: $shopNow\n ) {\n id\n carrierName\n carrierService\n carrierId\n displayName\n displayDescription\n displayPrice\n returnMethodDisplayPrice\n price\n shouldDisplayLocations\n keepItemIds\n qr\n feeBreakdown {\n fee\n feeType\n currency\n description\n displayWithReturnMethod\n formattedFee\n }\n maxLabelRequests\n consolidationRadius\n }\n }\n`;\n\nexport function useReturnMethods(variables) {\n variables.returnItems = variables.returnItems.map((ri) => ({\n ...ri,\n pictures: [],\n }));\n variables.exchangeItems = variables.exchangeItems.map((ri) => ({\n ...ri,\n returnItem: { ...ri.returnItem, pictures: [] },\n }));\n const saved = useQuery(QUERY, { variables });\n const addressError = getAddressError(saved.error);\n\n const queryStatus = memoObjectByKeyValues({\n loading: saved.loading,\n error: saved.error,\n });\n const { returnMethods } = saved.data || {};\n\n return useMemo(\n () => ({\n queryStatus,\n returnMethods: returnMethods || [],\n addressError,\n refetch: saved.refetch,\n }),\n [queryStatus, returnMethods],\n );\n}\n","import React from \"react\";\nimport clsx from \"clsx\";\n\nimport Grid from \"@material-ui/core/Grid\";\nimport Typography from \"@material-ui/core/Typography\";\nimport { alpha } from \"@material-ui/core/styles\";\n\nimport { config } from \"../../config\";\nimport { makeRootStyles } from \"../../theme/styles\";\n\nconst BORDER_WIDTH_SELECTED = 3;\nconst BORDER_WIDTH_UNSELECTED = 1;\n\nconst useStyles = makeRootStyles(\n (theme) => ({\n root: {\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"stretch\",\n justifyContent: \"center\",\n height: \"100%\",\n cursor: \"pointer\",\n backgroundColor: theme.palette.common.white,\n border: `${BORDER_WIDTH_UNSELECTED}px solid #ccc`,\n [theme.breakpoints.ie11()]: { height: theme.spacing(32) },\n [theme.breakpoints.edge()]: { height: theme.spacing(32) },\n },\n itemSelected: {\n border: `3px solid ${theme.palette.primary.main}`,\n backgroundColor: theme.palette.common.white,\n },\n details: {\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n flexWrap: \"nowrap\",\n padding: theme.spacing(3) - BORDER_WIDTH_UNSELECTED,\n },\n detailsSelected: {\n backgroundColor: alpha(theme.palette.primary.main, 0.05),\n padding: theme.spacing(3) - BORDER_WIDTH_SELECTED,\n },\n iconContainer: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n [theme.breakpoints.up(\"sm\")]: {\n marginBottom: theme.spacing(1),\n },\n },\n icon: {\n width: theme.spacing(12),\n textAlign: \"center\",\n [theme.breakpoints.up(\"sm\")]: {\n width: \"auto\",\n maxWidth: theme.spacing(24),\n paddingRight: 0,\n },\n },\n description: {\n textAlign: \"center\",\n },\n title: {\n marginBottom: theme.spacing(1),\n },\n qr: {\n marginBottom: theme.spacing(1),\n },\n price: {\n marginBottom: theme.spacing(1),\n },\n subtitle: {\n marginBottom: theme.spacing(2),\n marginTop: theme.spacing(1),\n },\n }),\n { name: \"N0MethodCard\" },\n);\n\n// @deprecated the new UI (`nth_ui`) uses `PudoRaw` instead\nfunction MethodCard({ icon, selected, title, subtitle, onClick, price, qr }) {\n const classes = useStyles();\n\n return (\n \n \n \n
{icon}
\n
\n \n \n {qr && (\n \n )}\n {!config.hideReturnMethodPrice && (\n \n )}\n \n \n \n \n );\n}\n\nexport default MethodCard;\n","import * as React from \"react\";\n\nfunction SvgComponent(props) {\n return (\n \n \n \n \n \n \n );\n}\n\nexport default SvgComponent;\n","import * as React from \"react\";\n\nfunction SvgComponent(props) {\n return (\n \n \n \n \n \n \n \n );\n}\n\nexport default SvgComponent;\n","import * as React from \"react\";\n\nfunction SvgComponent(props) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default SvgComponent;\n","import { useCallback, useMemo, useState } from \"react\";\nimport { useApolloClient, gql } from \"@apollo/client\";\nimport { getHandledErrorMessage } from \"../../shared/modules/decodeError\";\nimport { config } from \"../config\";\nimport { memoObjectByKeyValues } from \"../../shared/modules/object\";\n\nexport const GET_RETURN_LOCATIONS = gql`\n query GetReturnLocations(\n $countryCode: String!\n $zipcode: String!\n $carrier: String!\n $qr: String\n $locale: String\n $consolidationRadius: Int\n ) {\n returnLocations(\n countryCode: $countryCode\n zipcode: $zipcode\n carrier: $carrier\n qr: $qr\n locale: $locale\n consolidationRadius: $consolidationRadius\n ) {\n id\n storeAddress {\n address1\n address2\n city\n phone\n state\n zip\n }\n storeName\n storeName2\n logoUrl\n latitude\n longitude\n }\n }\n`;\n\nexport function useReturnLocations() {\n const [called, setCalled] = useState(false);\n const [data, setData] = useState([]);\n const [error, setError] = useState(null);\n const [loading, setLoading] = useState(false);\n const client = useApolloClient();\n\n const state = useMemo(\n () => ({\n called: called,\n data: data,\n error: error,\n loading: loading,\n }),\n [called, data, error, loading],\n );\n\n const getLocations = useCallback(\n function getLocations({\n countryCode,\n provinceCode,\n zipcode,\n carrier = \"in_store\",\n qr = \"\",\n consolidationRadius = null,\n }) {\n async function getLocationsAsync() {\n const skip = !countryCode || !zipcode || !carrier;\n if (skip) return;\n\n setCalled(true);\n setLoading(true);\n\n // SHOPZ-2595: For `ups` Puerto Rico is treated as a country\n const country =\n carrier === \"ups\" && countryCode === \"US\" && provinceCode === \"PR\"\n ? \"PR\"\n : countryCode;\n\n try {\n const { data } = await client.query({\n query: GET_RETURN_LOCATIONS,\n variables: {\n countryCode: country,\n zipcode,\n carrier,\n qr,\n consolidationRadius,\n },\n });\n\n setData(data.returnLocations);\n setError(null);\n } catch (err) {\n setData([]);\n setError(\n getHandledErrorMessage(\n err,\n config.translations.general_loading_error,\n ),\n );\n } finally {\n setLoading(false);\n }\n }\n\n getLocationsAsync();\n },\n [client],\n );\n\n const reset = useCallback(() => {\n setData([]);\n setError(null);\n setCalled(false);\n setLoading(false);\n }, []);\n\n const actions = memoObjectByKeyValues({\n getLocations,\n reset,\n });\n\n return useMemo(() => ({ actions, state }), [actions, state]);\n}\n","import { useMemo, useCallback } from \"react\";\nimport { gql, useQuery, useMutation } from \"@apollo/client\";\nimport { GraphQLError } from \"graphql\";\nimport {\n featureFlaggedHook,\n useRequestStatus,\n} from \"../../shared/modules/hooks\";\nimport { memoObjectByKeyValues } from \"../../shared/modules/object\";\nimport {\n BOXLESS_METHOD,\n METHOD_IN_STORE,\n METHOD_KEEP_THE_ITEM,\n METHOD_SHIP_ON_YOUR_OWN,\n METHOD_XPO,\n PRINTERLESS_METHOD,\n} from \"../../retailer-app/constants/returns\";\nimport { DODDLE } from \"../../retailer-app/constants/carriers\";\nimport { config } from \"../config\";\n\nexport const GET_USER_PREFERENCES = gql`\n query GetUserPreferences($email: String!) {\n userPreferences(email: $email) {\n carriers\n locations\n returnMethods\n profile {\n profileId\n }\n }\n }\n`;\n\nexport const SET_USER_PREFERENCES = gql`\n mutation setUserPreferences(\n $orderId: String!\n $email: String!\n $userPreferences: UserPreferencesInput!\n ) {\n setUserPreferences(\n orderId: $orderId\n email: $email\n userPreferences: $userPreferences\n )\n }\n`;\n\nexport const useConsumerPreferences = featureFlaggedHook(\n config.isUserPreferencesEnabled,\n {\n queryStatus: {},\n updateStatus: {},\n },\n)((email) => {\n const saved = useQuery(GET_USER_PREFERENCES, {\n variables: { email },\n skip: !email,\n });\n const [update, updateState] = useMutation(SET_USER_PREFERENCES);\n const queryStatus = useRequestStatus(saved);\n const updateStatus = useRequestStatus(updateState);\n\n const consumerPreferences = saved.data?.userPreferences;\n\n const preferencesStatus = useMemo(() => {\n if (!email) return undefined;\n\n const status =\n queryStatus.error || updateStatus.error\n ? \"error\"\n : queryStatus.loading || updateStatus.loading\n ? \"loading\"\n : updateStatus.called\n ? \"success\"\n : \"idle\";\n const profileStatus =\n status === \"success\"\n ? \"pending\"\n : consumerPreferences?.returnMethods?.length > 0 &&\n consumerPreferences?.profile?.profileId\n ? \"active\"\n : undefined;\n const profileLink = config.userPreferencesEndpoint;\n return { status, profileStatus, profileLink };\n }, [email, consumerPreferences, queryStatus, updateStatus]);\n\n const updateConsumerPreferences = useCallback(\n (orderId, email, userPreferences) =>\n update({\n variables: { orderId, email, userPreferences },\n update: (cache, result) => {\n const apiResult = result.data.setUserPreferences;\n\n if (\n apiResult === \"PREF_UPDATED\" ||\n apiResult === \"PREF_UNVERIFIED_NO_UPDATE\"\n ) {\n let data = cache.readQuery({\n query: GET_USER_PREFERENCES,\n variables: { email },\n });\n data = { ...data, userPreferences };\n\n cache.writeQuery({\n query: GET_USER_PREFERENCES,\n variables: { email },\n data,\n });\n } else {\n throw new GraphQLError(\"Unable to set user preferences\", {\n extensions: {\n code: apiResult ?? \"PREF_ERROR\",\n },\n });\n }\n },\n }),\n [update],\n );\n\n return memoObjectByKeyValues({\n consumerPreferences,\n preferencesStatus,\n queryStatus,\n updateStatus,\n updateConsumerPreferences,\n });\n});\n\nexport const toReturnMethodPreference = (method) => {\n if (\n method.qr === BOXLESS_METHOD ||\n (method.id === DODDLE && method.qr === PRINTERLESS_METHOD)\n )\n return \"boxless\";\n if (method.qr === PRINTERLESS_METHOD) return \"printerless_mail\";\n if (method.id === METHOD_IN_STORE) return \"store\";\n if (method.id === METHOD_XPO) return \"home_pickup\";\n if (method.id === METHOD_SHIP_ON_YOUR_OWN) return \"mail\";\n if (![METHOD_KEEP_THE_ITEM, METHOD_IN_STORE].includes(method.id))\n return \"concierge\";\n return null;\n};\n\nexport const isPreferredMethod = (method, preferences) => {\n if (!preferences) return false;\n\n const type = toReturnMethodPreference(method);\n return preferences.returnMethods?.includes?.(type) ?? false;\n};\n","import React, { useEffect, useState, useMemo, useCallback } from \"react\";\nimport { find } from \"lodash/fp\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Typography from \"@material-ui/core/Typography\";\nimport Button from \"@material-ui/core/Button\";\n\nimport {\n METHOD_IN_STORE,\n METHOD_SHIP_ON_YOUR_OWN,\n METHOD_KEEP_THE_ITEM,\n BOXLESS_METHOD,\n PRINTERLESS_METHOD,\n METHOD_XPO,\n} from \"../../../retailer-app/constants/returns\";\nimport ErrorSnackbar from \"../../components/ErrorSnackbar\";\nimport Spinner from \"../../../shared/components/Spinner\";\nimport { makeRootStyles } from \"../../theme/styles\";\nimport {\n useReturnStepsActions,\n CONFIRM_MAILING_ADDRESS_STEP,\n CHOOSE_METHOD_SUBSTEP,\n useReturnStepsState,\n CHOOSE_METHOD_STEP,\n useReturnStepIsActive,\n useRegisterStepStatus,\n} from \"../../contexts/returnSteps\";\nimport { config } from \"../../config\";\nimport { useReturnMethods } from \"../../data/returnMethods\";\nimport MethodCard from \"./MethodCard\";\nimport {\n buildItemsByType,\n hasExchangeForShopNowCredit,\n} from \"../../modules/items\";\nimport locale from \"../../../shared/modules/lang\";\nimport { getTranslation } from \"../../../shared/modules/config\";\nimport InStoreIcon from \"../../components/icons/return_in_store\";\nimport DropOffIcon from \"../../components/icons/dropoff\";\nimport MailInIcon from \"../../components/icons/use_my_own\";\nimport MailingAddressForm from \"../ConfirmMailingAddress/MailingAddressForm\";\nimport {\n normalizeAddressKeys,\n mergeAddress,\n patchZipCode,\n} from \"../../modules/address\";\nimport {\n getHandledErrorMessage,\n getIneligibleItemsReturnedError,\n getIneligibleReturnMethodError,\n} from \"../../../shared/modules/decodeError\";\nimport { PudoRaw } from \"@narvar/nth-kit-returns-headless\";\nimport { useReturnLocations } from \"../../data/returnLocations\";\nimport { useTypeForm } from \"../../contexts/typeForm\";\nimport { useNthReturnsActions } from \"../../contexts/nthContext\";\nimport {\n isPreferredMethod,\n toReturnMethodPreference,\n useConsumerPreferences,\n} from \"../../data/consumerPreferences\";\nimport titan from \"../../../shared/modules/titan\";\nimport useConsumerSettings from \"../../hooks/useConsumerSettings\";\nimport useClaims from \"../../hooks/useClaims\";\n\nconst useStyles = makeRootStyles(\n (theme) => ({\n root: {\n paddingTop: theme.spacing(4),\n paddingBottom: theme.spacing(4),\n },\n title: {\n marginBottom: theme.spacing(3),\n },\n carrierLogo: {\n transform: \"scale(1.5)\",\n minWidth: \"100px\",\n },\n errorItemsContainer: {\n padding: theme.spacing(1),\n },\n errorItemsList: {\n listStyleType: \"circle\",\n listStylePosition: \"inside\",\n },\n submitContainer: {\n marginTop: theme.spacing(4),\n },\n chooseButton: {\n marginTop: theme.spacing(1),\n },\n }),\n { name: \"N0ChooseMethod\" },\n);\n\nconst computeMethodId = (method) => `${method?.id}|${method?.carrierService}`;\n\nconst ChooseMethod = ({ orderFetchData, draftReturnUuid }) => {\n const classes = useStyles();\n\n const state = useReturnStepsState();\n const actions = useReturnStepsActions();\n const useNewDesign = config.isNthUi;\n const nthReturnsActions = useNthReturnsActions();\n\n const { order, returnReasonsById = {} } = orderFetchData;\n const { itemsById } = order;\n\n const { exchangeItems, returnItems } = useMemo(\n () => buildItemsByType(state.items, itemsById, returnReasonsById),\n [itemsById, returnReasonsById, state.items],\n );\n\n const returnMethodsPayload = {\n draftReturnUuid,\n returnItems,\n exchangeItems,\n orderNumber: state.orderNumber,\n email: state.email,\n locale,\n csid: state.csid,\n shopNow: hasExchangeForShopNowCredit(state.items),\n };\n const { queryStatus, returnMethods, addressError, refetch } =\n useReturnMethods(returnMethodsPayload);\n\n const [errorMessage, setErrorMessage] = useState(null);\n const [errorItems, setErrorItems] = useState([]);\n const returnMethodsFiltered = useMemo(\n () => returnMethods.filter((method) => method.id !== METHOD_KEEP_THE_ITEM),\n [returnMethods],\n );\n\n const keepTheItemMethod = find({ id: METHOD_KEEP_THE_ITEM }, returnMethods);\n const allItemsAreKeepTheItem = useMemo(() => {\n if (!keepTheItemMethod) {\n return false;\n }\n\n const allReturnItemsAreKept = !returnItems.find(\n (ri) => keepTheItemMethod.keepItemIds.indexOf(ri.lineItemId) === -1,\n );\n const allExchangeItemsAreKept = !exchangeItems.find(\n (ei) =>\n keepTheItemMethod.keepItemIds.indexOf(ei.returnItem.lineItemId) === -1,\n );\n return allReturnItemsAreKept && allExchangeItemsAreKept;\n }, [keepTheItemMethod, returnItems]);\n\n const { hasClaimItems: isClaim } = useClaims();\n const isSkipStep = allItemsAreKeepTheItem;\n\n const isValidSelected = useMemo(() => {\n const method = state.selectedReturnMethod;\n if (!method?.id) return false;\n return returnMethods.some(\n (d) => computeMethodId(d) === computeMethodId(method),\n );\n }, [state.selectedReturnMethod, returnMethods]);\n\n const {\n consumerPreferences,\n preferencesStatus,\n queryStatus: consumerPreferencesStatus,\n } = useConsumerPreferences(state.guestReturn ? \"\" : state.email);\n\n const isActiveStep = useReturnStepIsActive(CHOOSE_METHOD_STEP);\n const loading = queryStatus.loading || consumerPreferencesStatus.loading;\n const showNextBtn = !loading && !errorMessage && isActiveStep;\n\n useEffect(() => {\n if (returnMethods.length > 0) {\n setErrorMessage(null);\n }\n\n // Redirect to Review Step\n // If all items in order are \"Keep the Item\" or the\n // return is a claim, send user directly to Review Step\n if (isSkipStep) {\n const defaultClaimMethod = { id: \"keep_the_item\" }; // claims are always \"keep the item\"\n const method = isClaim ? defaultClaimMethod : keepTheItemMethod;\n actions.setReturnMethod(method);\n actions.goToStep(CONFIRM_MAILING_ADDRESS_STEP);\n\n // set a placeholder return cart for the new nth ui\n nthReturnsActions.setReturnCart?.({\n id: \"\",\n retailerMoniker: \"\",\n orderId: \"\",\n createdDate: \"\",\n expirationDate: \"\",\n lastUpdatedDate: \"\",\n pudoOption: {},\n });\n }\n }, [actions, isSkipStep, isClaim, returnMethods.length]);\n\n useEffect(() => {\n if (keepTheItemMethod) {\n actions.setKeepItemIds(keepTheItemMethod.keepItemIds);\n }\n }, [actions, keepTheItemMethod]);\n\n // auto select the preferred method or the first method when methods loaded\n useEffect(() => {\n const method = state.selectedReturnMethod;\n if (\n !isSkipStep &&\n !method?.id &&\n returnMethodsFiltered.length > 0 &&\n !consumerPreferencesStatus.loading\n ) {\n const preferredMethod =\n returnMethodsFiltered.find((m) =>\n isPreferredMethod(m, consumerPreferences),\n ) ?? returnMethodsFiltered[0];\n actions.setReturnMethod(preferredMethod);\n }\n }, [\n isSkipStep,\n state.selectedReturnMethod,\n returnMethodsFiltered,\n consumerPreferencesStatus,\n ]);\n\n // General error handling for queryStatus\n useEffect(() => {\n const errorMessage = getHandledErrorMessage(\n queryStatus.error,\n config.translations.general_loading_error,\n );\n setErrorMessage(errorMessage);\n }, [queryStatus]);\n\n // rule engine throw errors based on return methods (eg. 2 different return\n // items need to ship to different location)\n useEffect(() => {\n const error = getIneligibleReturnMethodError(queryStatus.error);\n if (error) {\n setErrorMessage(getTranslation(\"choose_method_no_intersection\"));\n }\n }, [queryStatus]);\n\n // rule engine throw errors based on return items properties (eg. total value,\n // total items quantity)\n useEffect(() => {\n if (errorMessage) return;\n\n const error = getIneligibleItemsReturnedError(queryStatus.error);\n if (error) {\n const extensions = error.extensions;\n const errorItems = Object.keys(extensions.data).map((lineItemId) => {\n const ineligibleReasons = extensions.data[lineItemId];\n if (ineligibleReasons.length) {\n const itemName = itemsById[lineItemId].name;\n return `${itemName} - ${ineligibleReasons.join(\", \")}\\n`;\n }\n return \"\";\n });\n\n setErrorMessage(error.message);\n setErrorItems(errorItems);\n }\n }, [queryStatus, errorMessage]);\n\n const createChooseMethodHandler = (method) => () => {\n if (computeMethodId(method) === computeMethodId(state.selectedReturnMethod))\n return;\n actions.setReturnMethod(method);\n };\n\n const handleNextStep = useCallback(() => {\n if (state.selectedReturnMethod.shouldDisplayLocations) {\n actions.goToStep(CHOOSE_METHOD_SUBSTEP);\n } else {\n actions.goToStep(CONFIRM_MAILING_ADDRESS_STEP);\n }\n }, [state.selectedReturnMethod]);\n\n const methodIcons = (carrier) => {\n switch (carrier) {\n case METHOD_IN_STORE:\n return ;\n case METHOD_SHIP_ON_YOUR_OWN:\n return ;\n default:\n return ;\n }\n };\n\n const getMethodCardStrings = (method) => {\n const subText = method.displayDescription;\n if (method.qr === BOXLESS_METHOD) {\n return {\n qrText: config.translations.choose_method_substep_boxless_subtitle,\n subText: config.translations.choose_method_substep_boxless_description,\n };\n } else if (method.qr === PRINTERLESS_METHOD) {\n return {\n qrText: config.translations.choose_method_substep_printerless_subtitle,\n subText,\n };\n } else {\n return {\n qrText: false,\n subText,\n };\n }\n };\n\n const handleAddressFix = ({ fromAddress }) => {\n setErrorMessage(null);\n actions.setCorrectedAddress(fromAddress);\n refetch({\n ...returnMethodsPayload,\n fromAddress,\n });\n };\n\n /***************************************************************************************************************\n * New design with `nth` components\n ***************************************************************************************************************/\n const typeForm = useTypeForm();\n const [selectedCategory, setSelectedCategory] = useState();\n const initialAddress = patchZipCode(\n mergeAddress(\n normalizeAddressKeys(order, \"billing\"),\n normalizeAddressKeys(order, \"from\"),\n state.fromAddress,\n ),\n );\n const { countryCode, provinceCode } = initialAddress;\n const [zipCode, setZipCode] = useState(initialAddress.zip);\n const {\n state: { data: locations, ...locationStatus },\n actions: { getLocations, reset: resetLocations },\n } = useReturnLocations();\n const [showSwitchCategory, setShowSwitchCategory] = useState(false);\n const { localeFull, includeCurrency } = useConsumerSettings();\n\n const selectedMethod = find(\n {\n id: selectedCategory?.pudoProvider?.moniker,\n carrierService: selectedCategory?.serviceType,\n },\n returnMethods,\n );\n\n const getCarrierForLocationSearch = (selectedMethod) =>\n selectedMethod?.id === METHOD_IN_STORE\n ? \"in_store\"\n : selectedMethod?.id === \"ups\" &&\n selectedMethod?.carrierService === \"UPS Mail Innovations\" // UPS Mail Innovations uses USPS drop-off locations for fulfillment.\n ? \"usps_returns\"\n : selectedMethod?.id;\n\n useEffect(() => {\n if (selectedMethod?.id && selectedMethod?.shouldDisplayLocations) {\n getLocations({\n countryCode,\n provinceCode,\n zipcode: zipCode,\n carrier: getCarrierForLocationSearch(selectedMethod),\n qr: selectedMethod.qr,\n locale,\n consolidationRadius: selectedMethod.consolidationRadius,\n });\n }\n }, [selectedMethod, zipCode]);\n\n const pudoOptions = useMemo(\n () =>\n returnMethodsFiltered.map((method) => {\n const isPickup = method.id === METHOD_XPO;\n const ret = {\n pudoActionType: isPickup ? \"PICK_UP\" : \"DROP_OFF\",\n pudoActionTypeDetails: method.qr ? \"PRINTERLESS\" : \"LABEL\",\n pudoProvider: {\n moniker: method.id,\n type:\n method.id === METHOD_IN_STORE\n ? \"STORE\"\n : method.id === METHOD_SHIP_ON_YOUR_OWN\n ? \"SELF\"\n : isPickup\n ? \"COURIER\"\n : \"CARRIER\",\n iconUrl: null,\n carrierId: method.carrierId,\n },\n serviceType: method.carrierService,\n title: method.displayName,\n description: method.displayDescription,\n fees: config.hideReturnMethodPrice\n ? []\n : [\n // nth supports \"LABEL_FEE\" and \"SERVICE_FEE\", to avoid bugs, we\n // sum all fess, and only pass one fee to nth component\n {\n type: null,\n amount: {\n value: method.feeBreakdown\n ?.filter((fee) => fee.displayWithReturnMethod)\n ?.reduce((p, c) => p + c.fee, 0),\n currency: method.feeBreakdown?.[0]?.currency ?? null,\n },\n },\n ],\n pickup: null,\n dropOff: null,\n preferred: isPreferredMethod(method, consumerPreferences),\n _raw: method,\n };\n return ret;\n }),\n [returnMethodsFiltered, consumerPreferences],\n );\n\n const pudoLocations = useMemo(\n () =>\n selectedMethod?.shouldDisplayLocations\n ? locations.map((location) => {\n const isInStore = selectedMethod.id === METHOD_IN_STORE;\n let logo = location.logoUrl;\n if (\n !logo &&\n isInStore &&\n config.logoImg &&\n !/no-image/.test(config.logoImg)\n ) {\n // remove the image tag\n logo = config.logoImg.replace(\n /^$/,\n \"$1\",\n );\n }\n const ret = {\n ...location,\n storeId: location.id,\n displayName: location.storeName,\n locationType: location.storeName2,\n logoUrls: logo ? [logo] : null,\n openingHours: [],\n brand: null,\n companyName: null,\n distance: null,\n phoneNumber: location.storeAddress.phone,\n address: {\n ...location.storeAddress,\n regionCode: location.storeAddress.state,\n postalCode: location.storeAddress.zip,\n countryCode,\n },\n };\n return ret;\n })\n : [],\n [countryCode, selectedMethod, locations],\n );\n\n // auto select method when methods loaded\n useEffect(() => {\n if (!isSkipStep && !selectedCategory && pudoOptions.length === 1) {\n setSelectedCategory(pudoOptions[0]);\n }\n }, [isSkipStep, selectedCategory, pudoOptions]);\n\n const [preferencesLoaded, setPreferencesLoaded] = useState(false);\n useEffect(() => {\n if (\n !isSkipStep &&\n !selectedCategory &&\n pudoOptions.length > 1 &&\n !consumerPreferencesStatus.loading &&\n !preferencesLoaded\n ) {\n const preferred = pudoOptions.find((d) => d.preferred);\n if (preferred) {\n setSelectedCategory(preferred);\n setPreferencesLoaded(true);\n setShowSwitchCategory(true);\n\n if (consumerPreferences?.profile?.profileId) {\n titan.identify(consumerPreferences.profile.profileId);\n }\n\n titan.track(\"products_list_viewed\", {\n props: {\n list_id: \"pudo_options\",\n products: pudoOptions.map((opt) => ({\n product_id: toReturnMethodPreference(opt._raw),\n variant: opt.preferred ? \"PREFERRED\" : null,\n })),\n },\n });\n }\n }\n }, [\n isSkipStep,\n selectedCategory,\n pudoOptions,\n consumerPreferencesStatus,\n preferencesLoaded,\n ]);\n\n // When category was selected and locations were loaded, if there is no\n // selectedDropOff or it has an incorrect value, auto-select the first\n // location in the list\n useEffect(() => {\n if (\n isActiveStep &&\n !selectedCategory?.skippedDropOffLocation &&\n pudoLocations?.length > 0 &&\n !find(\n { id: selectedCategory.selectedDropOff?.selectedLocation?.id },\n pudoLocations,\n )\n ) {\n setSelectedCategory({\n ...selectedCategory,\n selectedDropOff: { selectedLocation: { id: pudoLocations[0].id } },\n });\n }\n }, [isActiveStep, selectedCategory, pudoLocations]);\n\n useRegisterStepStatus(CHOOSE_METHOD_STEP, { skipped: isSkipStep });\n if (isSkipStep) return null;\n\n if (addressError) {\n return (\n \n \n {config.translations.mailing_address_section_title}\n \n \n \n );\n }\n\n if (useNewDesign) {\n const error = errorMessage ? (\n <>\n \n {errorItems && errorItems.length > 0 && (\n
\n
    \n {errorItems.map((item, i) => {\n return (\n
  • \n \n
  • \n );\n })}\n
\n
\n )}\n \n ) : null;\n\n return (\n \n \n Hi
}\n error={error}\n loading={loading}\n loadingLocations={locationStatus.loading}\n pudoOptions={pudoOptions}\n selectedCategory={selectedCategory}\n postalCode={zipCode}\n postalCodeError={locationStatus.error}\n // // sortedBy={}\n // // sortedByOptions={}\n showSkipLocation={\n selectedCategory?.pudoProvider?.moniker !== METHOD_IN_STORE\n }\n showSwitchCategory={showSwitchCategory}\n locations={pudoLocations}\n // returnAddress={args.customer?.shippingAddress} // customer / pickup address\n preferencesStatus={preferencesStatus}\n multiLabelsEnabled={selectedMethod?.maxLabelRequests > 1}\n labelsCount={state.requestedLabelCount}\n labelsMax={selectedMethod?.maxLabelRequests}\n onChange={(event) => {\n if (\n event.value?.selectedCategory ||\n event.subComponent === \"category\"\n ) {\n const skippedDropOffLocation =\n event.subComponent === \"location\" &&\n !event.value?.selectedCategory?.selectedDropOff;\n setSelectedCategory(\n event.value?.selectedCategory\n ? {\n skippedDropOffLocation,\n ...event.value?.selectedCategory,\n }\n : undefined,\n );\n }\n if (event.value?.postalCode) {\n setZipCode(event.value.postalCode);\n }\n if (event.value?.labelsCount !== undefined) {\n actions.setRequestedLabelCount(event.value.labelsCount);\n }\n actions.setReturnMethod(state.selectedReturnMethod); // reset step, clean up the UI when user clicking from a later step back to method selection\n\n // selecting new return method, then focus back location / pickup form\n if (event.subComponent === \"category\") {\n setShowSwitchCategory(false);\n typeForm.scrollToActive();\n }\n }}\n onBack={() => {\n if (selectedCategory && pudoOptions.length > 1) {\n setSelectedCategory(undefined);\n resetLocations();\n } else {\n actions.goBack();\n }\n typeForm.scrollToActive();\n }}\n onSubmit={(e) => {\n if (selectedMethod) {\n const pudoOption = e.value.selectedCategory;\n setSelectedCategory(pudoOption);\n nthReturnsActions.setSelectedPudoOption(pudoOption);\n\n const selectedLocation = find(\n {\n id: pudoOption?.selectedDropOff?.selectedLocation?.id,\n },\n locations,\n );\n const dropOffLocation = pudoLocations.find(\n (loc) => loc.id === selectedLocation?.id,\n );\n\n const returnCart = {\n id: \"\",\n retailerMoniker: \"\",\n orderId: \"\",\n createdDate: \"\",\n expirationDate: \"\",\n lastUpdatedDate: \"\",\n // customer?: Maybe;\n // items?: Maybe>;\n pudoOption: pudoOption\n ? {\n ...pudoOption,\n selectedDropOff: dropOffLocation\n ? { dropOffLocation }\n : null,\n }\n : null,\n // refundOption?: Maybe;\n };\n nthReturnsActions.setReturnCart(returnCart);\n\n actions.setReturnMethod(selectedMethod);\n actions.setStoreLocation(\n selectedLocation\n ? {\n ...selectedLocation,\n carrier: getCarrierForLocationSearch(selectedMethod),\n }\n : {},\n );\n actions.goToStep(CONFIRM_MAILING_ADDRESS_STEP);\n }\n }}\n />\n \n \n );\n }\n\n return (\n \n \n \n {config.translations.choose_method_title}\n \n {!addressError && errorMessage && (\n \n \n }\n />\n {errorItems && errorItems.length > 0 && (\n
\n
    \n {errorItems.map((item, i) => {\n return (\n
  • \n \n
  • \n );\n })}\n
\n
\n )}\n
\n )}\n {loading ? (\n \n \n \n \n \n ) : (\n !errorMessage && (\n \n {returnMethodsFiltered.map((method) => {\n const { qrText, subText } = getMethodCardStrings(method);\n\n return (\n \n \n \n );\n })}\n \n )\n )}\n
\n {showNextBtn && (\n \n \n \n {config.translations.choose_method_next_button_label}\n \n \n \n )}\n \n );\n};\nexport default ChooseMethod;\n","import React from \"react\";\nimport get from \"lodash/get\";\n\nimport Typography from \"@material-ui/core/Typography\";\n\nimport { makeRootStyles } from \"../theme/styles\";\n\nconst useStyles = makeRootStyles(\n (theme) => ({\n textLogo: {\n textTransform: \"uppercase\",\n letterSpacing: \"0.1rem\",\n },\n carrierLogo: {\n height: 50,\n },\n }),\n { name: \"N0ShopLogo\" },\n);\n\nconst DropoffLocationLogo = ({ name, carrier, url = null }) => {\n const classes = useStyles();\n\n const logoImg = get(window, \"nvo_config.logo_img\", \"\");\n\n // With concierge we get a URL for the logo of the drop-off location\n if (url) return ;\n\n // OK for rendering string, this comes directly from Shopify's liquid template\n if (logoImg && !logoImg.includes(\"no-image\") && carrier == \"in_store\")\n return
;\n\n return (\n \n {name}\n \n );\n};\n\nexport default DropoffLocationLogo;\n","import React, { useState, useMemo, useEffect, useRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { pick, isNumber } from \"lodash\";\n\nimport { Map, Marker, NavigationControl } from \"maplibre-gl\";\nimport \"maplibre-gl/dist/maplibre-gl.css\";\nimport { maptilerKey } from \"../modules/config\";\n\nimport { makeStyles, useTheme } from \"@material-ui/core/styles\";\nimport clsx from \"clsx\";\nimport errorNotifier from \"../modules/error-notifier\";\n\nconst MAPTILER_KEY = maptilerKey;\nconst MAPTILER_MAP_ID = \"10d44f10-b441-483a-bb86-5850e28f98b1\";\nconst MAPTILER_URL = `https://api.maptiler.com/maps/${MAPTILER_MAP_ID}/?key=${MAPTILER_KEY}#1.37/0/0`;\nconst MAPTILER_STYLE = `https://api.maptiler.com/maps/${MAPTILER_MAP_ID}/style.json?key=${MAPTILER_KEY}`;\n\nexport const useStyles = makeStyles(\n (theme) => ({\n root: {\n width: \"100%\",\n height: \"100%\",\n },\n map: {\n width: \"100%\",\n height: \"100%\",\n },\n error: {\n padding: theme.spacing(2),\n },\n }),\n { name: \"N0MaplibreMap\" },\n);\n\n/**\n * maplibre-gl coordinate object\n * @typedef {Object} Coordinate\n * @property {number} lng longitude\n * @property {number} lat latitude\n */\n/**\n * map object or numbers to maplibre-gl coordinate object\n * @param {number|Coordinate|Object} arg1 coordinate object or longitude\n * @param {number} [arg1.longitude] longitude\n * @param {number} [arg1.latitude] latitude\n * @param {number} [arg2] latitude\n * @returns {Coordinate}\n */\nconst mapCoor = (arg1, arg2) => {\n if (isNumber(arg1) && isNumber(arg2)) {\n return { lng: arg1, lat: arg2 };\n }\n if (isNumber(arg1?.longitude) && isNumber(arg1?.latitude)) {\n return { lng: arg1.longitude, lat: arg1.latitude };\n }\n if (isNumber(arg1?.lng) && isNumber(arg1?.lat)) {\n return pick(arg1, [\"lng\", \"lat\"]);\n }\n return null;\n};\n\nexport async function fetchCoordinatesFromAddress(address) {\n const { address1, address2, city, state, zip } = address;\n // const street = `${address1} ${address2}`;\n const street = `${address1}`; // address2 may lead to incorrect locations\n const queryString = encodeURIComponent(`${street} ${city} ${state} ${zip}`);\n const url = `https://api.maptiler.com/geocoding/${queryString}.json?key=${MAPTILER_KEY}`;\n const response = await fetch(url, { method: \"GET\" });\n let { features } = await response.json();\n features = features.map((d) => ({\n ...d,\n ...mapCoor(...d.center),\n }));\n return features;\n}\n\nfunction MaptilerMap(props) {\n let {\n address,\n latitude,\n longitude,\n start,\n markersColor,\n disableDefaultMarker,\n markers,\n className = \"\",\n ...otherProps\n } = props;\n const theme = useTheme();\n const classes = useStyles();\n const [id] = useState(new Date().getTime());\n const EL_ID = `mapblire-${id}`;\n const mapEl = useRef(null);\n const [mapObj, setMapObj] = useState(null);\n const startWithCoor = start && mapCoor(start);\n const startWithAddress = start && !startWithCoor;\n const [_start, setStart] = useState(startWithCoor);\n const [_center, setCenter] = useState(\n start ? null : mapCoor(longitude, latitude),\n );\n const [mapInitFailed, setMapInitFailed] = useState(false);\n\n const _markers = useMemo(() => {\n let ret = disableDefaultMarker || !_center ? [] : [_center];\n ret = ret.concat(markers);\n return ret;\n }, [disableDefaultMarker, _center, markers]);\n\n const createMarkers = (map, markers) =>\n markers.map((marker) =>\n new Marker({\n color: marker.color || markersColor || theme.palette.secondary.main,\n scale: 0.8,\n })\n .setLngLat([marker.lng, marker.lat])\n .addTo(map),\n );\n\n const mapInit = (center, markers) => {\n const { lng = 0, lat = 0 } = center;\n\n try {\n const map = new Map({\n container: EL_ID, // container id\n style: MAPTILER_STYLE, // style URL\n center: [lng, lat], // starting position [lng, lat]\n zoom: 15, // starting zoom\n });\n const nav = new NavigationControl({ showCompass: false });\n map.addControl(nav);\n setMapInitFailed(false);\n return { map, nav, markers: createMarkers(map, markers) };\n } catch (err) {\n errorNotifier.warn(err);\n setMapInitFailed(true);\n return null;\n }\n };\n\n // cleanup function\n useEffect(() => () => mapObj?.map?.remove(), [mapObj?.map]);\n\n useEffect(() => {\n // Initialize the map\n if (!mapObj) {\n if (_start) {\n setMapObj(mapInit(_start, _markers));\n } else if (_center) {\n setMapObj(mapInit(_center, _markers));\n }\n return;\n }\n\n // Update location\n if (_center) {\n mapObj.map.flyTo({\n center: [_center.lng, _center.lat],\n });\n }\n }, [_start, _center]);\n\n useEffect(() => {\n if (start && !_start) return; // loading starting location\n\n let center = mapCoor(longitude, latitude);\n if (center) {\n setCenter(center);\n } else if (address) {\n // query the coordinate from address object\n (async () => {\n const res = await fetchCoordinatesFromAddress(address);\n if (res && res[0]) {\n setCenter(mapCoor(res[0]));\n }\n })();\n }\n }, [start, _start, address, latitude, longitude]);\n\n useEffect(() => {\n // query the coordinate from address object\n if (startWithAddress && start) {\n (async () => {\n const res = await fetchCoordinatesFromAddress(start);\n if (res && res[0]) {\n setStart(mapCoor(res[0]));\n }\n })();\n }\n }, [startWithAddress, start]);\n\n useEffect(() => {\n if (mapObj) {\n // redraw all markers\n mapObj.markers.forEach((marker) => marker.remove());\n\n const newMapObj = {\n ...mapObj,\n markers: createMarkers(mapObj.map, _markers),\n };\n setMapObj(newMapObj);\n }\n }, [_markers]);\n\n return (\n
\n
\n {mapInitFailed && (\n
\n Cannot render the map, please enable hardware acceleration / WebGL\n in browser settings.\n
\n )}\n
\n
\n );\n}\n\nconst Coordinate = PropTypes.shape({\n lng: PropTypes.number.isRequired,\n lat: PropTypes.number.isRequired,\n});\nconst Address = PropTypes.shape({\n address1: PropTypes.string,\n address2: PropTypes.string,\n city: PropTypes.string,\n state: PropTypes.string,\n zip: PropTypes.string,\n});\nMaptilerMap.propTypes = {\n address: Address,\n longitude: PropTypes.number,\n latitude: PropTypes.number,\n start: PropTypes.oneOfType([Address, Coordinate]), // starting location of map initial animation\n disableDefaultMarker: PropTypes.bool,\n markersColor: PropTypes.string,\n markers: PropTypes.arrayOf(\n PropTypes.shape({\n lng: PropTypes.number.isRequired,\n lat: PropTypes.number.isRequired,\n color: PropTypes.string,\n }),\n ),\n};\n\nMaptilerMap.defaultProps = {\n markers: [],\n};\n\nexport default MaptilerMap;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport PlusIcon from \"@material-ui/icons/Add\";\nimport Button from \"@material-ui/core/Button\";\nimport Collapse from \"@material-ui/core/Collapse\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport Typography from \"@material-ui/core/Typography\";\nimport { alpha } from \"@material-ui/core/styles\";\n\nimport get from \"lodash/get\";\nimport DropoffLocationLogo from \"../../components/DropoffLocationLogo\";\nimport { makeRootStyles } from \"../../theme/styles\";\nimport Map from \"../../../shared/components/MaptilerMap\";\nimport clsx from \"clsx\";\nimport { config } from \"../../config\";\n\nconst TRANSITION_TIMEOUT = 250;\nconst BORDER_WIDTH_SELECTED = 3;\nconst BORDER_WIDTH_UNSELECTED = 1;\n\nconst useStyles = makeRootStyles(\n (theme) => {\n const borderSelected = `3px solid ${theme.palette.primary.main}`;\n const borderUnselected = `${BORDER_WIDTH_UNSELECTED}px solid #ccc`;\n const paddingSelected = theme.spacing(3) - BORDER_WIDTH_SELECTED;\n const paddingUnselected = theme.spacing(3) - BORDER_WIDTH_UNSELECTED;\n\n return {\n root: {\n display: \"flex\",\n flexDirection: \"column\",\n \"& + $root\": {\n marginTop: theme.spacing(2),\n },\n backgroundColor: theme.palette.common.white,\n },\n itemSelected: {\n \"& $details\": {\n border: borderSelected,\n padding: paddingSelected,\n },\n \"& $mapContainer\": {\n marginLeft: -paddingSelected,\n marginRight: -paddingSelected,\n marginBottom: -(paddingSelected + BORDER_WIDTH_SELECTED),\n },\n \"& $descriptionWithMap\": {\n marginRight: -paddingSelected,\n },\n },\n details: {\n display: \"flex\",\n flexDirection: \"column\",\n flexGrow: 1,\n // backgroundColor: theme.palette.common.white,\n border: borderUnselected,\n padding: paddingUnselected,\n boxSizing: \"border-box\",\n },\n detailsSelected: {\n backgroundColor: alpha(theme.palette.primary.main, 0.05),\n },\n logoContainer: {\n textAlign: \"center\",\n marginRight: theme.spacing(2),\n overflowWrap: \"break-word\",\n maxWidth: \"35%\",\n [theme.breakpoints.down(\"xs\")]: {\n maxWidth: \"none\",\n },\n },\n headline: {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"normal\",\n display: \"-webkit-box\",\n lineClamp: 4,\n boxOrient: \"vertical\",\n [theme.breakpoints.down(\"xs\")]: {\n width: \"100%\",\n },\n },\n description: {\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n height: theme.spacing(8),\n flexWrap: \"nowrap\",\n [theme.breakpoints.down(\"xs\")]: {\n height: \"auto\",\n flexWrap: \"wrap\",\n },\n },\n locationName: {\n paddingRight: 5,\n minWidth: 95,\n [theme.breakpoints.down(\"xs\")]: {\n minWidth: \"auto\",\n },\n },\n locationNameTitle: {},\n locationNameSubtitle: {},\n descriptionWithMap: {\n marginRight: -paddingUnselected,\n position: \"relative\",\n paddingRight: theme.spacing(6),\n },\n actionContainer: {\n position: \"absolute\",\n right: 0,\n },\n plusIcon: {\n transition: `transform ${TRANSITION_TIMEOUT}ms ease`,\n transform: \"rotate(0deg)\",\n },\n closeIcon: {\n transform: \"rotate(135deg)\",\n },\n mapContainer: {\n margin: `${theme.spacing(\n 3,\n )}px ${-paddingUnselected}px ${-paddingUnselected}px`,\n },\n map: {\n display: \"flex\",\n height: theme.spacing(19),\n },\n chooseButton: {\n marginTop: theme.spacing(3),\n },\n chooseButtonMap: {\n marginTop: 0,\n borderRadius: 0,\n },\n };\n },\n { name: \"N0LocationCard\" },\n);\n\nfunction LocationCard({\n address,\n longitude,\n latitude,\n logoUrl,\n disableMap,\n onChoose,\n onClick,\n selected,\n subtitle,\n title,\n name,\n carrier,\n}) {\n const classes = useStyles();\n const selectedRef = useRef(selected);\n const [mapVisible, showMap] = useState(selected);\n\n const handleChoose = () => {\n if (!disableMap) showMap(false);\n onChoose();\n };\n\n const handleToggleMap = () => showMap((visible) => !visible);\n\n useEffect(() => {\n if (selected === selectedRef.current) return;\n selectedRef.current = selected;\n showMap(selected);\n }, [selected]);\n\n // when doing in store returns, fall back to the shop name\n const shopName = get(window, \"nvo_config.shop_name\", \"\");\n const displayName = name ? name : shopName;\n return (\n \n \n \n
\n
\n \n
\n
\n
\n \n {displayName}\n \n \n {subtitle}\n \n
\n
\n {title}\n \n {`${[address.city, address.state]\n .filter((d) => d)\n .join(\", \")} ${address.zip ?? \"\"}`}\n \n
\n {!disableMap && (\n
\n \n \n \n
\n )}\n \n \n \n \n {config.translations.choose_method_substep_choose_location_button}\n \n \n \n
\n \n
\n \n
\n \n \n {\n config.translations\n .choose_method_substep_choose_location_button\n }\n \n \n \n
\n \n \n );\n}\n\nexport default LocationCard;\n","import React, { useState } from \"react\";\nimport Button from \"@material-ui/core/Button\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Typography from \"@material-ui/core/Typography\";\nimport Link from \"@material-ui/core/Link\";\nimport OutlinedInput from \"@material-ui/core/OutlinedInput\";\nimport clsx from \"clsx\";\nimport isObject from \"lodash/isObject\";\n\nimport { Autocomplete } from \"../../../shared/components/form\";\nimport { makeRootStyles } from \"../../theme/styles\";\nimport { config } from \"../../config\";\n\nconst useStyles = makeRootStyles(\n (theme) => ({\n container: {\n paddingBottom: theme.spacing(2),\n },\n input: {\n padding: theme.spacing(1),\n backgroundColor: theme.palette.common.white,\n },\n subtitle: {\n height: theme.spacing(3),\n },\n formElement: {\n textAlign: \"center\",\n },\n formTextContainer: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n countryRoot: {\n [theme.breakpoints.up(\"sm\")]: {\n minWidth: 200,\n },\n },\n countryInputEndAdornment: {\n marginTop: -10,\n marginRight: -12,\n },\n countryInput: {\n \"&:first-child\": {\n padding: 0,\n },\n },\n countryInputRoot: {\n backgroundColor: theme.palette.common.white,\n '&[class*=\"MuiOutlinedInput-root\"]': {\n padding: theme.spacing(1),\n paddingRight: theme.spacing(5),\n },\n },\n }),\n { name: \"N0ZipForm\" },\n);\n\nconst ZipForm = ({\n error,\n initialCountryCode,\n initialZip,\n isOpen,\n onSearch,\n toggleForm,\n}) => {\n const classes = useStyles();\n\n const [zipcode, updateZipcode] = useState(initialZip);\n const [countryCode, updateCountryCode] = useState(initialCountryCode);\n const countryName = config.countryNamesByCode[countryCode];\n\n const handleSubmit = (event) => {\n event.preventDefault();\n onSearch({ zipcode, countryCode });\n };\n\n if (isOpen || error) {\n return (\n \n \n
\n \n {\n config.translations\n .choose_method_substep_in_store_form_find_stores_near\n }\n \n
\n
\n \n {\n if (isObject(countryCode)) return countryCode.country;\n return countryCode;\n }}\n onChange={(country) =>\n console.debug(country) || updateCountryCode(country.country_code)\n }\n options={config.countryCodes}\n placeholder={config.translations.mailing_address_form_country}\n value={countryName}\n />\n \n \n updateZipcode(value)}\n placeholder={config.translations.zip_code}\n value={zipcode}\n />\n \n \n \n {config.translations.search}\n \n \n {error ? (\n \n {error}\n \n ) : (\n \n \n {config.translations.cancel}\n \n \n )}\n \n );\n }\n\n return (\n \n \n \n {`${config.translations.choose_method_substep_in_store_locations_near} `}\n {`${zipcode}, ${countryName}`}\n \n \n \n );\n};\n\nexport default ZipForm;\n","import React, { useState, useEffect, useMemo } from \"react\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Typography from \"@material-ui/core/Typography\";\nimport useMediaQuery from \"@material-ui/core/useMediaQuery\";\nimport { useTheme } from \"@material-ui/core/styles\";\nimport clsx from \"clsx\";\n\nimport LocationCard from \"./LocationCard\";\nimport Map from \"../../../shared/components/MaptilerMap\";\nimport ZipForm from \"./ZipForm\";\n\nimport Spinner from \"../../../shared/components/Spinner\";\nimport { makeRootStyles } from \"../../theme/styles\";\nimport {\n useReturnStepsActions,\n useReturnStepsState,\n CONFIRM_MAILING_ADDRESS_STEP,\n} from \"../../contexts/returnSteps\";\nimport { config } from \"../../config\";\nimport { useReturnLocations } from \"../../data/returnLocations\";\nimport compact from \"lodash/compact\";\nimport Link from \"@material-ui/core/Link\";\nimport locale from \"../../../shared/modules/lang\";\n\nconst useStyles = makeRootStyles(\n (theme) => ({\n root: {\n paddingTop: theme.spacing(4),\n paddingBottom: theme.spacing(4),\n },\n skipContainer: {\n marginTop: theme.spacing(2),\n height: theme.spacing(3),\n textAlign: \"center\",\n },\n skipLink: {},\n title: {\n marginBottom: theme.spacing(2),\n },\n mapDescription: {\n paddingTop: theme.spacing(3),\n paddingBottom: theme.spacing(3),\n },\n mapDescriptionContent: {\n width: \"100%\",\n textAlign: \"center\",\n },\n mapDescriptionTitle: {\n marginBottom: theme.spacing(1),\n },\n mapContainer: {\n border: \"1px solid #ccc\",\n background: theme.palette.common.white,\n display: \"flex\",\n flexDirection: \"column\",\n height: \"100%\",\n minHeight: theme.spacing(37),\n justifyContent: \"space-between\",\n [theme.breakpoints.ie11()]: { height: theme.spacing(40) },\n [theme.breakpoints.edge()]: { height: theme.spacing(40) },\n },\n mapContainerElement: {\n // maxHeight: 300,\n },\n }),\n { name: \"N0ChooseLocation\" },\n);\n\nfunction ChooseLocation({\n countryCode,\n zipcode,\n carrier,\n allowProceedWithoutLocation,\n qr,\n}) {\n const classes = useStyles();\n const { locationId } = useReturnStepsState();\n const actions = useReturnStepsActions();\n const {\n state: { data: locations, error, loading },\n actions: { getLocations },\n } = useReturnLocations();\n const [zipFormOpen, toggleZipForm] = useState(false);\n const theme = useTheme();\n const isMdUp = useMediaQuery(theme.breakpoints.up(\"md\"));\n\n const [localLocationId, setLocalLocation] = useState(locationId);\n const selectedLocation = useMemo(() => {\n const location =\n localLocationId && locations.find((l) => l.id === localLocationId);\n return location || locations[0];\n }, [localLocationId, locations]);\n\n const pageSize = 5;\n const [currentPage, setCurrentPage] = useState(0);\n const filteredLocations = useMemo(\n () =>\n locations.slice(\n currentPage * pageSize,\n currentPage * pageSize + pageSize,\n ),\n [locations, currentPage, pageSize],\n );\n\n const handleStoreSearch = (args) => {\n getLocations({ ...args, carrier: carrier, qr: qr, locale });\n toggleZipForm(false);\n };\n\n const handleToggleForm = () => toggleZipForm((current) => !current);\n\n const createClickLocationHandler = (location) => () => {\n setLocalLocation(location.id);\n };\n\n const createSelectLocationHandler = (location) => () => {\n setLocalLocation(location.id);\n actions.setStoreLocation({ ...location, carrier });\n actions.goToStep(CONFIRM_MAILING_ADDRESS_STEP);\n };\n\n const handleOnMount = () =>\n getLocations({ countryCode, zipcode, carrier, qr: qr });\n\n useEffect(handleOnMount, [carrier]);\n\n const handleSkip = () => {\n actions.goToStep(CONFIRM_MAILING_ADDRESS_STEP);\n };\n\n return (\n \n \n \n {carrier == \"in_store\"\n ? config.translations.choose_method_substep_in_store_title\n : config.translations.choose_method_substep_concierge_title}\n \n \n {error}\n \n )\n }\n loading={loading}\n onSearch={handleStoreSearch}\n toggleForm={handleToggleForm}\n />\n {filteredLocations.length > 0 ? (\n \n \n {filteredLocations.map((location) => (\n \n ))}\n \n {isMdUp && (\n \n
\n \n
\n \n {selectedLocation.storeName}\n \n \n {compact([\n selectedLocation.storeAddress.address1,\n selectedLocation.storeAddress.address2,\n ]).join(\", \")}\n \n \n {selectedLocation.storeAddress.city},{\" \"}\n {selectedLocation.storeAddress.state}{\" \"}\n {selectedLocation.storeAddress.zip}\n \n \n {selectedLocation.storeAddress.phone}\n \n
\n
\n
\n )}\n
\n ) : (\n loading && \n )}\n\n {allowProceedWithoutLocation && (\n
\n \n {config.translations.choose_method_substep_concierge_skip}\n \n
\n )}\n
\n
\n );\n}\n\nexport default ChooseLocation;\n","import React from \"react\";\nimport get from \"lodash/get\";\n\nimport {\n CHOOSE_METHOD_SUBSTEP,\n useRegisterStepStatus,\n useReturnStepsActions,\n useReturnStepsState,\n} from \"../../contexts/returnSteps\";\n\nimport {\n METHOD_IN_STORE,\n METHOD_KEEP_THE_ITEM,\n} from \"../../../retailer-app/constants/returns\";\n\nimport ChooseLocation from \"./ChooseLocation\";\nimport { config } from \"../../config\";\nimport {\n normalizeAddressKeys,\n mergeAddress,\n patchZipCode,\n} from \"../../modules/address\";\n\nfunction ChooseMethodSubstep({ orderFetchData }) {\n const state = useReturnStepsState();\n const actions = useReturnStepsActions();\n const { order } = orderFetchData;\n const returnMethodId = get(state, \"selectedReturnMethod.id\");\n const returnMethodService = get(state, \"selectedReturnMethod.carrierService\");\n const qr = get(state, \"selectedReturnMethod.qr\");\n // not all carriers support concierge. in store always displays locations\n const shouldDisplayLocations = get(\n state,\n \"selectedReturnMethod.shouldDisplayLocations\",\n );\n\n const initialAddress = patchZipCode(\n mergeAddress(\n normalizeAddressKeys(order, \"billing\"),\n normalizeAddressKeys(order, \"from\"),\n state.fromAddress,\n ),\n );\n const initialCountryCode = initialAddress.countryCode;\n const initialZip = initialAddress.zip;\n\n const useNewDesign = config.isNthUi;\n const isSkipStep =\n useNewDesign || // location selection is handled in choose method step\n returnMethodId === METHOD_KEEP_THE_ITEM ||\n !shouldDisplayLocations;\n\n useRegisterStepStatus(CHOOSE_METHOD_SUBSTEP, { skipped: isSkipStep });\n if (isSkipStep) return null;\n\n if (returnMethodId === METHOD_IN_STORE) {\n return (\n \n );\n }\n\n if (shouldDisplayLocations) {\n // UPS Mail Innovations uses USPS drop-off locations for fulfillment.\n const carrier =\n returnMethodId === \"ups\" && returnMethodService === \"UPS Mail Innovations\"\n ? \"usps_returns\"\n : returnMethodId;\n\n return (\n \n );\n }\n\n return null;\n}\n\nexport default ChooseMethodSubstep;\n","import React, { useState, useMemo, useCallback, useEffect } from \"react\";\nimport PropTypes from \"prop-types\";\nimport Grid from \"@material-ui/core/Grid\";\nimport TextField from \"@material-ui/core/TextField\";\nimport Typography from \"@material-ui/core/Typography\";\nimport { isEmpty, noop, pick, set } from \"lodash/fp\";\n\nimport { config } from \"../../config\";\nimport { makeRootStyles } from \"../../theme/styles\";\nimport { assertAnyFieldBy, trimObject } from \"../../../shared/modules/object\";\nimport { controlGridSize } from \"../../../shared/modules/mui-utils\";\n\nconst useStyles = makeRootStyles(\n (theme) => ({\n input: {\n backgroundColor: theme.palette.common.white,\n },\n submit: {\n marginTop: theme.spacing(1),\n },\n }),\n { name: \"ContactInformationForm\" },\n);\n\nfunction ContactInformationForm({\n size,\n contact: initialContact,\n onChange,\n onSubmit,\n}) {\n const classes = useStyles();\n const [draft, setDraft] = useState(initialContact || {});\n\n const validate = useCallback((contact) => {\n const data = trimObject(contact);\n const requiredFields = [\"email\", \"phone\"];\n if (assertAnyFieldBy(isEmpty, pick(requiredFields, data))) return false;\n return true;\n }, []);\n\n const isValid = useMemo(() => validate(draft), [draft]);\n\n useEffect(() => {\n onChange({ contact: draft, isValid });\n }, [draft]);\n\n const handleChange = useCallback((event) => {\n const key = event.target.name;\n const value = event.target.value;\n setDraft(set(key, value));\n }, []);\n\n const handleSubmit = useCallback(\n (event) => {\n event.preventDefault();\n if (isValid) {\n onSubmit({ contact: draft, isValid });\n }\n },\n [onSubmit, draft],\n );\n\n return (\n
\n \n \n \n \n \n \n \n \n
\n );\n}\n\nContactInformationForm.propTypes = {\n size: PropTypes.oneOf([\"large\", \"medium\", \"small\"]),\n contact: PropTypes.shape({\n phone: PropTypes.string,\n email: PropTypes.string,\n }),\n onChange: PropTypes.func,\n onSubmit: PropTypes.func,\n};\n\nContactInformationForm.defaultProps = {\n size: \"medium\",\n onChange: noop,\n onSubmit: noop,\n};\n\nexport default ContactInformationForm;\n","import React, { useMemo, useState, useCallback } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { useTheme } from \"@material-ui/styles\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Typography from \"@material-ui/core/Typography\";\nimport Link from \"@material-ui/core/Link\";\nimport Box from \"@material-ui/core/Box\";\nimport Button from \"@material-ui/core/Button\";\nimport TextField from \"@material-ui/core/TextField\";\nimport useMediaQuery from \"@material-ui/core/useMediaQuery\";\n\nimport MailingAddressForm from \"./MailingAddressForm\";\nimport { makeRootStyles } from \"../../theme/styles\";\nimport { config } from \"../../config\";\n\nimport {\n getStepIndex,\n useReturnStepsActions,\n useReturnStepsState,\n CONFIRM_MAILING_ADDRESS_STEP,\n CHOOSE_SHOP_NOW_STEP,\n} from \"../../contexts/returnSteps\";\nimport { getTranslation } from \"../../../shared/modules/config\";\nimport ContactInformationForm from \"./ContactInformationForm\";\nimport { useTypeForm } from \"../../contexts/typeForm\";\n\nconst useStyles = makeRootStyles(\n (theme) => ({\n root: {\n paddingTop: theme.spacing(4),\n paddingBottom: theme.spacing(6),\n },\n title: {\n marginBottom: theme.spacing(3),\n },\n subtitle: {\n marginBottom: theme.spacing(1),\n },\n address: {},\n editButton: {\n cursor: \"pointer\",\n marginLeft: theme.spacing(1),\n color: theme.palette.primary.main,\n },\n input: {\n backgroundColor: theme.palette.common.white,\n },\n backButton: {\n marginTop: theme.spacing(1),\n },\n }),\n { name: \"N0MailingAddress\" },\n);\n\n// @TODO hook for retrieving billing address\n// const EXAMPLE_ADDRESS = {\n// firstName: \"John\",\n// lastName: \"Smith\",\n// address1: \"24 Market Building\",\n// address2: \"The Piazza\",\n// city: \"London\",\n// province: \"\",\n// countryCode: \"GB\",\n// zip: \"WC2E 8RD\",\n// };\n\nfunction MailingAddress({ type, address, contact, notes }) {\n const theme = useTheme();\n const isMdUp = useMediaQuery(theme.breakpoints.up(\"md\"));\n const classes = useStyles();\n const actions = useReturnStepsActions();\n const state = useReturnStepsState();\n const typeForm = useTypeForm();\n\n const isHomePickup = type === \"homePickup\";\n const isGuestReturn = type === \"guestReturn\";\n const requireContactInfo = isHomePickup;\n\n const [isFormOpen, toggleForm] = useState(isGuestReturn);\n const [isAddressValid, setIsAddressValid] = useState(!isGuestReturn);\n const [isContactValid, setIsContactValid] = useState(!isHomePickup);\n const isValid = isAddressValid && isContactValid;\n const useNewDesign = config.isNthUi;\n const showNextBtn =\n state.currentStepIndex === getStepIndex(CONFIRM_MAILING_ADDRESS_STEP);\n const showBackBtn = showNextBtn && useNewDesign;\n const showNav = showNextBtn || showBackBtn;\n\n const {\n firstName,\n lastName,\n address1,\n address2,\n city,\n province,\n zip,\n countryCode,\n } = address; // saved address in context state\n\n const showTwoColumns = requireContactInfo && !isFormOpen && isMdUp && false; // TODO: re-enable two columns layout when we have better address and contact info form\n const title = isHomePickup\n ? getTranslation(\"home_pickup_mailing_address_title\")\n : state.items.some((i) => i.exchange)\n ? getTranslation(\"gift_exchange_mailing_address_title\")\n : getTranslation(\"gift_exchange_mailing_address_title_returns\");\n\n const excludeFields = useMemo(() => [\"phone\", \"submit\"], undefined);\n\n const contactSubtitle =\n config.translations.home_pickup_contact_information_subtitle;\n const addressSubtitle = isHomePickup\n ? config.translations.home_pickup_mailing_address_subtitle\n : config.translations.gift_exchange_mailing_address_your_address;\n const editAddressButtonLabel =\n config.translations.gift_exchange_mailing_address_change;\n const notesLabel =\n config.translations.home_pickup_contact_information_form_notes;\n const submitButtonLabel = getTranslation(\n \"gift_exchange_mailing_address_next_button_label\",\n );\n const backButtonLabel = getTranslation(\"back\");\n\n const handleAddressFormToggle = useCallback(() => {\n toggleForm(true);\n actions.goToStep(CONFIRM_MAILING_ADDRESS_STEP);\n }, []);\n\n const handleAddressChange = useCallback(\n ({ fromAddress, isValid }) => {\n setIsAddressValid(isValid);\n actions.setConfirmedMailingAddress({ ...address, ...fromAddress });\n },\n [address],\n );\n\n const handleContactChange = useCallback(\n ({ contact, isValid }) => {\n const { phone, ...others } = contact;\n setIsContactValid(isValid);\n actions.setConfirmedMailingAddress({\n ...address,\n phone,\n });\n },\n [address, contact],\n );\n\n const handleNotesChange = useCallback(\n (event) => {\n const key = event.target.name;\n const value = event.target.value;\n actions.setConfirmedMailingAddress({\n ...address,\n homePickupInstructions: value,\n });\n },\n [address],\n );\n\n const handleNext = useCallback(() => {\n toggleForm(false);\n actions.goToStep(CHOOSE_SHOP_NOW_STEP);\n }, []);\n\n const handleBack = useCallback(() => {\n toggleForm(false);\n actions.goBack();\n typeForm.scrollToActive();\n }, []);\n\n return (\n \n \n \n \n {requireContactInfo && (\n \n \n {contactSubtitle}\n \n \n \n \n {\n config.translations\n .home_pickup_contact_information_form_pii_helper_text\n }\n \n \n )}\n \n \n {addressSubtitle}\n \n {isFormOpen ? (\n \n ) : (\n \n \n {firstName} {lastName}\n \n {address1}\n {address2 && {address2}}\n {city}\n {`${province || \"\"} ${zip}`}\n\n \n {editAddressButtonLabel}\n \n \n )}\n \n \n \n {showNav && (\n \n {showNextBtn && (\n \n {submitButtonLabel}\n \n )}\n {showBackBtn && (\n \n {backButtonLabel}\n \n )}\n \n )}\n \n );\n}\n\nMailingAddress.propTypes = {\n type: PropTypes.oneOf([\"guestReturn\", \"homePickup\"]).isRequired,\n address: PropTypes.object,\n contact: PropTypes.object,\n notes: PropTypes.string,\n};\n\nMailingAddress.defaultProps = {\n type: \"guestReturn\",\n};\n\nexport default MailingAddress;\n","import React, { useEffect, useMemo } from \"react\";\n\nimport {\n useReturnStepsState,\n useReturnStepsActions,\n CHOOSE_SHOP_NOW_STEP,\n getStepIndex,\n CONFIRM_MAILING_ADDRESS_STEP,\n useRegisterStepStatus,\n} from \"../../contexts/returnSteps\";\n\nimport MailingAddress from \"./MailingAddress\";\nimport { mergeAddress } from \"../../modules/address\";\nimport { METHOD_XPO } from \"../../../retailer-app/constants/returns\";\n\nfunction ConfirmMailingAddress({ orderFetchData }) {\n const state = useReturnStepsState();\n const actions = useReturnStepsActions();\n\n const isGuestReturn = state.guestReturn;\n const isHomePickup = state.selectedReturnMethod.id === METHOD_XPO;\n const isSkipStep = !isGuestReturn && !isHomePickup;\n const type = isHomePickup ? \"homePickup\" : isGuestReturn ? \"guestReturn\" : \"\"; // it is possible that it was both home pickup and guess return\n\n useEffect(() => {\n if (\n isSkipStep &&\n state.currentStepIndex < getStepIndex(CHOOSE_SHOP_NOW_STEP)\n ) {\n actions.goToStep(CHOOSE_SHOP_NOW_STEP);\n }\n }, [\n state.guestReturn,\n state.items,\n state.selectedReturnMethod,\n state.locationId,\n state.currentStepIndex,\n ]);\n\n const defaultAddress = useMemo(\n () =>\n isGuestReturn\n ? {\n countryCode: orderFetchData.order.fromCountryCode,\n province: orderFetchData.order.fromProvince,\n provinceCode: orderFetchData.order.fromProvinceCode,\n }\n : {\n firstName: orderFetchData.order.fromFirstName,\n lastName: orderFetchData.order.fromLastName,\n address1: orderFetchData.order.fromAddress1,\n address2: orderFetchData.order.fromAddress2,\n city: orderFetchData.order.fromCity,\n zip: orderFetchData.order.fromZip,\n province: orderFetchData.order.fromProvince,\n provinceCode: orderFetchData.order.fromProvinceCode,\n countryCode: orderFetchData.order.fromCountryCode,\n },\n [orderFetchData, isHomePickup],\n );\n\n const contact = useMemo(\n () => ({\n email: state.decodedGuestEmail,\n phone: state.fromAddress.phone,\n }),\n [state.decodedGuestEmail, state.fromAddress.phone],\n );\n\n useRegisterStepStatus(CONFIRM_MAILING_ADDRESS_STEP, { skipped: isSkipStep });\n if (isSkipStep) {\n return null;\n }\n\n return (\n \n );\n}\nexport default ConfirmMailingAddress;\n","import { useMemo } from \"react\";\nimport { useQuery, gql } from \"@apollo/client\";\nimport { getAddressError } from \"../../shared/modules/decodeError\";\nimport { memoObjectByKeyValues } from \"../../shared/modules/object\";\n\nconst QUERY = gql`\n query calculateRefund(\n $carrierServiceName: String\n $draftReturnUuid: String\n $returnItems: [ReturnCalculationInput!]!\n $exchangeItems: [ExchangeItemInput!]!\n $shopifyOrderId: String!\n $presentmentCurrency: String!\n $shippingPrice: Float\n $shippingMethod: String\n $orderNumber: String!\n $email: String!\n $locale: String\n $chosenRefundMethod: String\n $fromAddress: FromAddressInput\n $csid: String\n $source: String\n ) {\n calculateRefund(\n carrierServiceName: $carrierServiceName\n draftReturnUuid: $draftReturnUuid\n returnItems: $returnItems\n exchangeItems: $exchangeItems\n shopifyOrderId: $shopifyOrderId\n presentmentCurrency: $presentmentCurrency\n shippingPrice: $shippingPrice\n shippingMethod: $shippingMethod\n orderNumber: $orderNumber\n email: $email\n locale: $locale\n chosenRefundMethod: $chosenRefundMethod\n fromAddress: $fromAddress\n csid: $csid\n source: $source\n ) {\n currency\n subtotalRefund\n subtotalRefundCents\n totalRefund\n totalRefundCents\n totalTax\n totalTaxDisplayAmt\n taxesIncluded\n priorRefundsDisplayAmt\n refundLineItems {\n discountedPrice\n lineItemId\n locationId\n price\n quantity\n restockType\n subtotal\n totalCartDiscountAmount\n totalTax\n }\n originalShippingRefundedDisplayAmt\n refundMethodsAvailable {\n refundMethod\n refundMethodDescription\n refundCents\n refundFormatted\n }\n chosenRefundMethod\n paymentClientSecret\n customerPmtId\n preChargeFeeAmountCents\n returnMethodDisplayPrice\n exchangeShippingFeeDisplayPrice\n exchangeShippingFeeDisplayName\n feeBreakdown {\n description\n feeType\n formattedFee\n }\n shopNowAvailable\n\n originalPaymentTotalRefund\n originalPaymentTotalRefundCents\n shopNowTotalRefund\n shopNowTotalRefundCents\n giftCardTotalRefund\n giftCardTotalRefundCents\n }\n }\n`;\n\nexport function useCalculateRefund(variables, options = {}) {\n const saved = useQuery(QUERY, {\n variables,\n skip: options.skip,\n });\n const addressError = getAddressError(saved.error);\n\n const queryStatus = {\n loading: saved.loading,\n error: saved.error,\n addressError,\n };\n\n const refund = useMemo(\n () => saved?.data?.calculateRefund ?? {},\n [saved.data],\n );\n\n return memoObjectByKeyValues({\n queryStatus,\n refund,\n refetch: saved.refetch,\n });\n}\n","import { useMemo, useCallback, useState } from \"react\";\nimport { useMutation, gql } from \"@apollo/client\";\nimport get from \"lodash/get\";\nimport {\n calculateChecksum,\n directUpload,\n getFileMetadata,\n} from \"../../shared/modules/fileUpload\";\nimport { useRequestStatus } from \"../../shared/modules/hooks\";\nimport { useMergeRequestStatus } from \"../../shared/modules/object\";\n\nconst CREATE_DIRECT_UPLOAD = gql`\n mutation createDirectUpload($input: CreateDirectUploadInput!) {\n createDirectUpload(input: $input) {\n url\n headers\n blobId\n signedBlobId\n }\n }\n`;\nexport function useUploadPictures(variables) {\n const [mutate, mutated] = useMutation(CREATE_DIRECT_UPLOAD);\n const data = useMemo(\n () => get(mutated, \"data.createDirectUpload\"),\n [mutated],\n );\n const statusMutated = useRequestStatus(mutated);\n const [statusRequest, setDirectUploadStatus] = useState({\n called: false,\n error: false,\n loading: false,\n });\n const status = useMergeRequestStatus(statusRequest, statusMutated);\n\n const createDirectUpload = useCallback(\n (input) => mutate({ variables: { input } }),\n [mutate],\n );\n\n const direct = useCallback(async (data, file) => {\n try {\n setDirectUploadStatus((c) => ({ ...c, called: true, loading: true }));\n\n await directUpload(\n data.createDirectUpload.url,\n { ...JSON.parse(data.createDirectUpload.headers) },\n file,\n );\n\n setDirectUploadStatus((c) => ({ ...c, error: false, loading: false }));\n } catch (err) {\n setDirectUploadStatus((c) => ({ ...c, error: true }));\n throw err; // throw the error so that we can stop the following mutation sequence\n }\n }, []);\n\n const uploadImage = useCallback(\n async (file) => {\n const checksum = await calculateChecksum(file);\n const metadata = await getFileMetadata(file);\n\n const { data } = await createDirectUpload({\n filename: file.name,\n byteSize: metadata.byte_size,\n checksum,\n contentType: metadata.content_type,\n });\n\n await direct(data, file);\n\n return data?.createDirectUpload;\n },\n [createDirectUpload, direct],\n );\n\n return useMemo(\n () => ({\n data,\n status,\n uploadImage,\n }),\n [data, status, uploadImage],\n );\n}\n","import { useState, useMemo, useCallback } from \"react\";\nimport { useMutation, gql } from \"@apollo/client\";\nimport get from \"lodash/get\";\n\nimport { config } from \"../config\";\nimport { useUploadPictures } from \"./uploadPictures\";\nimport { getHandledErrorMessage } from \"../../shared/modules/decodeError\";\nimport { memoObjectByKeyValues } from \"../../shared/modules/object\";\n\nconst SUBMIT_RETURN = gql`\n mutation submitReturn(\n $fromAddress: FromAddressInput\n $orderNumber: String!\n $draftReturnUuid: String\n $email: String!\n $returnItems: [ReturnCalculationInput!]!\n $exchangeItems: [ExchangeItemInput!]!\n $shopifyOrderId: String!\n $presentmentCurrency: String!\n $shippingPrice: Float\n $shippingMethod: String!\n $carrierServiceName: String\n $locationId: String\n $location: DropoffLocationInput\n $locale: String\n $selectedRefundMethod: String\n $paymentMethodId: String\n $customerPmtId: String\n $shopNow: Boolean\n $csid: String\n $homePickupInstructions: String\n $preApprovalReturnUuid: String\n $preApprovalId: String\n $requestedLabelCount: Int\n $reshopOptions: ReshopOptionsInput\n ) {\n submitReturn(\n locale: $locale\n returnItems: $returnItems\n draftReturnUuid: $draftReturnUuid\n exchangeItems: $exchangeItems\n shopifyOrderId: $shopifyOrderId\n presentmentCurrency: $presentmentCurrency\n shippingPrice: $shippingPrice\n orderNumber: $orderNumber\n email: $email\n shippingMethod: $shippingMethod\n carrierServiceName: $carrierServiceName\n locationId: $locationId\n location: $location\n selectedRefundMethod: $selectedRefundMethod\n paymentMethodId: $paymentMethodId\n customerPmtId: $customerPmtId\n fromAddress: $fromAddress\n shopNow: $shopNow\n csid: $csid\n homePickupInstructions: $homePickupInstructions\n preApprovalReturnUuid: $preApprovalReturnUuid\n preApprovalId: $preApprovalId\n requestedLabelCount: $requestedLabelCount\n reshopOptions: $reshopOptions\n )\n }\n`;\n\nexport const useSubmitReturn = () => {\n const directUpload = useUploadPictures();\n\n const [mutate, mutated] = useMutation(SUBMIT_RETURN);\n const [picturesUploading, setPicturesUploading] = useState(false);\n\n const getBlobIdForPic = async (file) => {\n const res = await directUpload.uploadImage(file);\n return res.signedBlobId;\n };\n\n const submitReturn = useCallback(\n async (variables) => {\n try {\n setPicturesUploading(true);\n variables.returnItems = await Promise.all(\n variables.returnItems.map(async (ri) => {\n return {\n ...ri,\n pictures:\n ri.pictures && get(ri, \"pictures.length\")\n ? await Promise.all(\n ri.pictures.map(\n async (pic) => await getBlobIdForPic(pic),\n ),\n )\n : undefined,\n };\n }),\n );\n\n variables.exchangeItems = await Promise.all(\n variables.exchangeItems.map(async (ri) => {\n return {\n ...ri,\n returnItem: {\n ...ri.returnItem,\n pictures:\n ri.returnItem.pictures &&\n get(ri, \"returnItem.pictures.length\")\n ? await Promise.all(\n ri.returnItem.pictures.map(\n async (pic) => await getBlobIdForPic(pic),\n ),\n )\n : undefined,\n },\n };\n }),\n );\n\n setPicturesUploading(false);\n return mutate({ variables });\n } catch (err) {\n setPicturesUploading(false);\n }\n },\n [mutate],\n );\n\n const submitStatus = useMemo(() => {\n let errorMessage = getHandledErrorMessage(\n mutated.error,\n config.translations.return_review_submit_error,\n );\n if (directUpload.status.error) {\n errorMessage = config.translations.return_review_submit_error;\n }\n\n const loading = mutated.loading || picturesUploading;\n\n return {\n loading,\n error: loading ? null : errorMessage,\n data: get(mutated, \"data.submitReturn\", null),\n errorDetail: loading ? null : mutated.error,\n };\n }, [\n mutated.loading,\n mutated.data,\n mutated.error,\n picturesUploading,\n directUpload.status,\n ]);\n\n return memoObjectByKeyValues({\n submitReturn,\n submitStatus,\n submitStatusReset: mutated.reset,\n });\n};\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport { makeRootStyles } from \"../theme/styles\";\nimport Typography from \"@material-ui/core/Typography\";\n\nconst useStyles = makeRootStyles(\n (theme) => ({\n strikethrough: {\n position: \"relative\",\n\n \"&::before\": {\n position: \"absolute\",\n content: '\"\"',\n left: 0,\n top: \"45%\",\n right: 0,\n borderTop: \"2px solid\",\n borderColor: \"inherit\",\n \"-webkit-transform\": \"skewY(-10deg)\",\n \"-moz-transform\": \"skewY(-10deg)\",\n transform: \"skewY(-10deg)\",\n },\n },\n }),\n { name: \"N0Strikethrough\" },\n);\n\nfunction Strikethrough({ component, children, ...props }) {\n const classes = useStyles();\n const Component = component;\n\n return (\n \n {children}\n \n );\n}\n\nStrikethrough.propTypes = {\n children: PropTypes.node,\n component: PropTypes.elementType,\n};\n\nStrikethrough.defaultProps = {\n color: \"default\",\n component: Typography,\n};\n\nexport default Strikethrough;\n","import React from \"react\";\n\nfunction ConfirmationCheckIcon({ color, className }) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default ConfirmationCheckIcon;\n","import React from \"react\";\nimport Fade from \"@material-ui/core/Fade\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Typography from \"@material-ui/core/Typography\";\nimport Button from \"@material-ui/core/Button\";\nimport Link from \"@material-ui/core/Link\";\nimport clsx from \"clsx\";\nimport ConfirmationCheckIcon from \"./ConfirmationCheckIcon\";\nimport { useTheme } from \"@material-ui/styles\";\nimport { redirectToShop, openLabel } from \"../../../shared/modules/frame\";\nimport { makeRootStyles } from \"../../theme/styles\";\nimport StyledMarkup from \"../../ReviewSummary/components/StyledMarkup\";\n\nconst useStyles = makeRootStyles(\n (theme) => ({\n root: {\n paddingTop: theme.spacing(4),\n paddingBottom: theme.spacing(12),\n display: \"flex\",\n alignItems: \"center\",\n },\n checkIcon: {\n display: \"flex\",\n justifyContent: \"center\",\n textAlign: \"center\",\n fontSize: \"5rem\",\n },\n gutterBottom: {\n marginBottom: theme.spacing(4),\n [theme.breakpoints.up(\"md\")]: {\n marginBottom: theme.spacing(2),\n },\n },\n labelButton: {\n marginBottom: theme.spacing(2),\n },\n }),\n { name: \"N0ConfirmationBasic\" },\n);\n\nfunction ConfirmationBasic({\n renderInAppLabel,\n show,\n submitResult,\n supplementaryText,\n printLabelText,\n renderSupplementaryText,\n title,\n subtitle,\n buttonTitle,\n}) {\n const theme = useTheme();\n const classes = useStyles();\n\n return (\n \n
\n \n \n
\n \n
\n \n {title}\n \n \n \n \n {renderSupplementaryText && (\n \n {supplementaryText}\n \n )}\n
\n {renderInAppLabel && (\n \n openLabel(submitResult)}\n target=\"_blank\"\n underline=\"none\">\n \n {printLabelText}\n \n \n \n \n {buttonTitle}\n \n \n \n )}\n {!renderInAppLabel && (\n \n \n {buttonTitle}\n \n \n )}\n
\n
\n
\n );\n}\n\nexport default ConfirmationBasic;\n","import { makeRootStyles } from \"../../../theme/styles\";\n\nconst useStyles = makeRootStyles(\n {\n orderedList: {\n paddingInlineStart: \"4rem\",\n margin: 0,\n display: \"flex\",\n gap: \"2rem\",\n flexDirection: \"column\",\n },\n orderedListItem: {\n counterIncrement: \"list-item\",\n display: \"flex\",\n \"&::before\": {\n content: \"counter(list-item)\",\n lineHeight: 1,\n minWidth: \"2.5rem\",\n width: \"2.5rem\",\n height: \"2.5rem\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n margin: \"0 1.5rem 0 -4rem\",\n padding: \"0.625rem\",\n borderRadius: \"1.625rem\",\n boxSizing: \"border-box\",\n textAlign: \"center\",\n fontWeight: \"bold\",\n border: \"0.1875rem solid\",\n },\n \"&::marker\": {\n content: \"''\",\n },\n },\n stepSpan: {\n display: \"block\",\n margin: \"0.5rem 0 0\",\n },\n linkContainer: {\n marginTop: \"1rem\",\n display: \"flex\",\n flexWrap: \"wrap\",\n gap: \"16px\",\n },\n },\n { name: \"StepList\" },\n);\n\nexport { useStyles };\n","import React, { FC } from \"react\";\nimport { useStyles } from \"./StepListStyles\";\n\nconst StepList: FC = (props) => {\n const { children } = props;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const styles: any = useStyles();\n return
    {children}
;\n};\n\nexport default StepList;\n","import { makeRootStyles } from \"../../../theme/styles\";\n\nconst useStyles = makeRootStyles(\n {\n imageWrapper: {\n \"& > img\": {\n display: \"block\",\n border: 0,\n margin: 0,\n padding: 0,\n lineHeight: 0,\n },\n },\n },\n { name: \"N0Icon\" },\n);\n\nexport { useStyles };\n","import React, { FC, HTMLProps } from \"react\";\nimport { useStyles } from \"./IconStyles\";\n\nconst GooglePlay: FC> = ({ alt, ...props }) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const styles: any = useStyles();\n\n return (\n \n \n \n );\n};\n\nexport default GooglePlay;\n","import React, { FC, HTMLProps } from \"react\";\nimport { useStyles } from \"./IconStyles\";\n\nconst AppStore: FC> = ({ ...props }) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const styles: any = useStyles();\n\n return (\n \n \n \n );\n};\n\nexport default AppStore;\n","import { useTheme, withThemeProvider } from \"@narvar/nth-hook-theme\";\nimport React, { FC } from \"react\";\nimport { useStyles } from \"./StepListStyles\";\nimport { StepProps } from \"./types\";\nimport { TextLink, StyledMarkup } from \"..\";\nimport GooglePlay from \"../Icon/GooglePlay\";\nimport AppStore from \"../Icon/AppStore\";\n\nconst Step: FC = ({ title, details, children, links = [] }) => {\n const {\n bodytextDefaultNone,\n iconsPrimaryNone,\n linksNoneDefault,\n linksNoneHover,\n } = useTheme();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const styles: any = useStyles();\n\n return (\n \n \n \n \n \n {details && {details}}\n {links.length > 0 && (\n
\n {links.map((link, i) => {\n let content = link.text;\n if (link.image) {\n const alt =\n typeof link.text === \"string\" ? link.text : undefined;\n if (link.image === \"app_store\")\n content = ;\n else if (link.image === \"google_play\") {\n content = ;\n } else {\n content = {alt};\n }\n }\n return (\n \n {content}\n \n );\n })}\n
\n )}\n {children}\n \n \n );\n};\n\nexport default withThemeProvider(Step, {\n themeTokens: [\n \"bodytextDefaultNone\",\n \"iconsPrimaryNone\",\n \"linksNoneDefault\",\n \"linksNoneHover\",\n \"buttonsPrimaryDefault\",\n \"buttonsPrimaryHover\",\n ],\n});\n","import React, { FC } from \"react\";\nimport StepList from \"../ReviewSummary/components/InstructionsList/StepList\";\nimport { StepsProps } from \"./types\";\nimport Step from \"../ReviewSummary/components/InstructionsList/Step\";\n\nconst Steps: FC = ({ steps }) => {\n return (\n \n {steps.map((step, i) => (\n \n ))}\n \n );\n};\n\nexport default Steps;\n","import { RetailerThemeStyles } from \"@narvar/nth-hook-theme\";\n\nexport const themeTokens: (keyof RetailerThemeStyles)[] = [\n \"linksNoneDefault\",\n \"linksNoneHover\",\n \"buttonsPrimaryDefault\",\n \"buttonsPrimaryHover\",\n \"bodytextDefaultNone\",\n];\n","import { makeRootStyles } from \"../theme/styles\";\n\nconst useStyles = makeRootStyles(\n {\n confirmationHeader: {\n textAlign: \"left\",\n },\n btnContainer: {\n margin: \"1.5rem 0\",\n },\n imgContainer: {\n width: \"50%\",\n maxWidth: \"200px\",\n },\n alternateEmailForm: {\n maxWidth: \"400px\",\n margin: \"15px 0\",\n display: \"flex\",\n gap: \"20px\",\n },\n },\n { name: \"Confirmation\" },\n);\n\nexport { useStyles };\n","import { makeRootStyles } from \"../../../theme/styles\";\n\nconst useStyles = makeRootStyles(\n {\n preferencesStatusWrapper: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n textAlign: \"center\",\n marginBottom: \"2rem\",\n gap: \"4px\",\n },\n preferencesStatusDescription: {\n display: \"flex\",\n alignItems: \"center\",\n gap: \"8px\",\n },\n preferencesStatusLink: {\n fontWeight: 700,\n textDecoration: \"none\",\n },\n },\n { name: \"PreferencesStatus\" },\n);\n\nexport { useStyles };\n","import React, { FC } from \"react\";\nimport { PreferencesStatus as PreferencesStatusRenderProps } from \"./types\";\nimport { useTheme, withThemeProvider } from \"@narvar/nth-hook-theme\";\nimport { useStyles } from \"./PreferencesStatusStyles\";\nimport Icon from \"../Icon\";\nimport { Language, TextLink, Spinner } from \"..\";\n\nconst PreferencesStatus: FC = ({\n status,\n profileStatus,\n profileLink,\n}) => {\n const {\n linksNoneDefault,\n linksNoneHover,\n documentbodyNoneNone,\n bodytextDefaultNone,\n } = useTheme();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const styles: any = useStyles();\n const emphasize = status !== \"idle\";\n const linkStyles = emphasize\n ? { fontWeight: 700, textDecorationLine: \"none\" }\n : {};\n const iconStyles =\n status === \"error\"\n ? {}\n : {\n fill:\n bodytextDefaultNone?.color ?? documentbodyNoneNone?.color ?? \"#000\",\n };\n\n return (\n \n {status === \"loading\" ? (\n \n ) : (\n <>\n \n \n \n \n\n {profileLink && (\n \n \n \n \n \n )}\n \n )}\n \n );\n};\n\nexport default withThemeProvider(PreferencesStatus, {\n themeTokens: [\n \"linksNoneDefault\",\n \"linksNoneHover\",\n \"documentbodyNoneNone\",\n \"bodytextDefaultNone\",\n ],\n});\n","export const EMAIL_ADDRESS_PATTERN =\n \"(?:[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*|\\\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\\\")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\\\\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\\\\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\\\])\";\n\ntype ValidatePatternProps = (\n inputValue: string,\n patternString: string,\n) => boolean;\n\nexport const validatePattern: ValidatePatternProps = (\n inputValue,\n patternString,\n) => {\n if (!patternString) return true;\n const validationPattern = new RegExp(patternString);\n return Boolean(inputValue.match(validationPattern));\n};\n","import React, { FC, useEffect, useState } from \"react\";\nimport { SemibigHeader } from \"@narvar/nth-bit-header\";\nimport Paragraph from \"@narvar/nth-bit-paragraph\";\nimport TextInput, { SupportedInputType } from \"@narvar/nth-block-text-input\";\nimport { useSettings, withSettingsProvider } from \"@narvar/nth-hook-settings\";\nimport { useTheme, withThemeProvider } from \"@narvar/nth-hook-theme\";\nimport Panel from \"@narvar/nth-block-panel\";\nimport PanelHeader from \"@narvar/nth-bit-panel-header\";\nimport Button from \"@narvar/nth-block-button\";\nimport Divider from \"@narvar/nth-bit-divider\";\nimport Steps from \"./Steps\";\nimport {\n ErrorBanner,\n Language,\n LocationCard,\n ItemCardSkeleton,\n LineItemSkeleton,\n ItemCard,\n Spinner,\n TextLink,\n} from \"../ReviewSummary/components\";\n\nimport { ConfirmationRawProps } from \"./types\";\nimport { themeTokens } from \"./tokens\";\nimport { useStyles } from \"./ConfirmationStyles\";\nimport PreferencesStatus from \"../ReviewSummary/components/Preferences/PreferencesStatus\";\nimport { EMAIL_ADDRESS_PATTERN, validatePattern } from \"../ReviewSummary/utils\";\nimport { useLanguage } from \"@narvar/nth-kit-returns-headless\";\nimport { generateTokensFromObject } from \"@narvar/nth-kit-returns-headless/dist/src/hooks/language/useLanguage\";\nimport { getItemAttrs } from \"../ReviewSummary/utils/itemSelectorHelper\";\n\nconst ConfirmationRawC: FC = ({\n error,\n loading,\n shipment,\n type,\n providerMoniker,\n email,\n location,\n alternateEmailToggle = false,\n noInstructions,\n onSubmit,\n newEmailStatus,\n preferencesStatus,\n isHipaaCompliant,\n returnSteps = [],\n locale,\n includeCurrency,\n}) => {\n const { itemDisplay } = useSettings();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const styles: any = useStyles();\n const [showAlternateEmailForm, setAlternateEmailForm] = useState(false);\n const [emailAddress, setUpdatedEmail] = useState(\"\");\n const [validationError, setValidationError] = useState(false);\n const { items, returnLabels } = shipment || {};\n const mappedUrls: { qrCodeUrl?: string; printLabelUrl?: string } =\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n returnLabels?.reduce((acc: any, { labelType, labelUrl }: any) => {\n if (labelType === \"QR_CODE\") {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return {\n ...acc,\n qrCodeUrl: labelUrl,\n };\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return {\n ...acc,\n printLabelUrl: labelUrl,\n };\n }, {}) || {};\n const { qrCodeUrl, printLabelUrl } = mappedUrls;\n\n const { value: provider } = useLanguage({\n langKey: `returnsMoniker${providerMoniker ?? \"\"}DisplayName`,\n asString: true,\n });\n const { rawValue: skuLabel } = useLanguage({\n langKey: \"returnsItemListItemInfoskuLabel\",\n });\n const { rawValue: qtyLabel } = useLanguage({\n langKey: \"returnsItemListItemInfoqtyLabel\",\n });\n const { rawValue: colorLabel } = useLanguage({\n langKey: \"returnsItemListItemInfocolorLabel\",\n });\n const { rawValue: sizeLabel } = useLanguage({\n langKey: \"returnsItemListItemInfosizeLabel\",\n });\n const { rawValue: reasonLabel } = useLanguage({\n langKey: \"returnsItemListItemInforeasonLabel\",\n });\n const { rawValue: placeholder } = useLanguage({\n langKey: \"returnsConfirmationActionsPanelEmailInputPlaceholder\",\n });\n\n const {\n linksNoneDefault,\n linksNoneHover,\n buttonsPrimaryDefault,\n buttonsPrimaryHover,\n bodytextDefaultNone,\n } = useTheme();\n\n useEffect(() => {\n if (newEmailStatus?.status === \"success\") {\n setAlternateEmailForm(false);\n setUpdatedEmail(\"\");\n }\n }, [newEmailStatus?.status]);\n\n if (loading) {\n return (\n
\n \n \n \n \n \n \n \n \n \n
\n );\n }\n\n if (error) {\n return (\n
\n \n \n \n
\n );\n }\n\n const toggleAlternateEmailForm = () => {\n setAlternateEmailForm(!showAlternateEmailForm);\n };\n\n const submitAlternateEmailForm = () => {\n const validEmail = validatePattern(\n emailAddress ?? \"\",\n EMAIL_ADDRESS_PATTERN,\n );\n if (validEmail) {\n setValidationError(false);\n onSubmit?.({\n event: \"submit\",\n area: \"returnConfirmation\",\n subComponent: \"emailSubmittedReturnDetails\",\n value: { emailAddress },\n });\n } else {\n setValidationError(true);\n }\n };\n\n const langKeySuffix = isHipaaCompliant ? \"Hipaa\" : \"\";\n\n return (\n
\n {preferencesStatus && }\n \n \n \n }>\n
\n \n \n \n {!qrCodeUrl && printLabelUrl && !isHipaaCompliant && (\n
\n \n \n \n
\n )}\n \n \n \n {alternateEmailToggle && !isHipaaCompliant && (\n
\n \n \n \n {showAlternateEmailForm && (\n <>\n
\n {\n setUpdatedEmail(e.target.value);\n }}\n placeholder={placeholder}\n type={SupportedInputType.email}\n />\n \n {newEmailStatus?.status === \"loading\" ? (\n \n ) : (\n \n )}\n \n
\n
\n {validationError && (\n \n )}\n \n
\n \n )}\n
\n )}\n {qrCodeUrl && !isHipaaCompliant && (\n
\n \"\"\n
\n )}\n
\n \n {location && (\n \n \n \n }>\n \n \n )}\n {!noInstructions && (\n \n \n \n }>\n
\n \n
\n \n )}\n \n \n \n }>\n {// eslint-disable-next-line @typescript-eslint/no-explicit-any\n items?.map((item: any) => (\n \n ))}\n \n {qrCodeUrl && printLabelUrl && (\n \n \n \n \n \n \n \n \n \n \n \n )}\n
\n );\n};\n\nexport const ConfirmationRaw = withSettingsProvider(\n withThemeProvider(ConfirmationRawC, {\n themeTokens,\n }),\n {\n settingsRequested: `\n itemDisplay {\n additionalItemAttributeConfig {\n attribute\n value {\n concatKey\n concatPosition\n label\n transform\n }\n }\n itemAttributeConfig\n }\n `,\n },\n);\n","import React, { FC, useMemo } from \"react\";\nimport { ConfirmationRaw } from \"./raw\";\nimport { ConfirmationProps } from \"./types\";\n\nimport { StepProps } from \"../ReviewSummary/components/InstructionsList/types\";\nimport useCurrencyConfig from \"../ReviewSummary/hooks/useCurrencyConfig\";\nimport {\n useLanguage,\n useReturnsConfig,\n} from \"@narvar/nth-kit-returns-headless\";\nimport { generateTokensFromObject } from \"@narvar/nth-kit-returns-headless/dist/src/hooks/language/useLanguage\";\n\nexport const Confirmation: FC = (props) => {\n const { isHipaaCompliant } = useReturnsConfig();\n const { locale, includeCurrency } = useCurrencyConfig();\n const langKeySuffix = isHipaaCompliant ? \"Hipaa\" : \"\";\n\n const {\n providerMoniker = \"\",\n refundMethod = \"\",\n location,\n type = \"\",\n } = props;\n\n const { value: provider } = useLanguage({\n langKey: `returnsMoniker${providerMoniker}DisplayName`,\n asString: true,\n });\n\n const replacementTokens = generateTokensFromObject({\n provider,\n location: location?.displayName,\n });\n const { value: Step1Title } = useLanguage({\n langKey: `returnsConfirmation${type}Step1Title`,\n asString: true,\n replacementTokens,\n });\n const { value: Step1Details } = useLanguage({\n langKey: `returnsConfirmation${type}Step1Details`,\n asString: true,\n replacementTokens,\n });\n const { value: Step2Title } = useLanguage({\n langKey: `returnsConfirmation${type}Step2Title${langKeySuffix}`,\n asString: true,\n replacementTokens,\n });\n const { value: Step2Details } = useLanguage({\n langKey: `returnsConfirmation${type}Step2Details`,\n asString: true,\n replacementTokens,\n });\n const { value: Step3Title } = useLanguage({\n langKey: `returnsConfirmation${type}Step3Title`,\n asString: true,\n replacementTokens,\n });\n const { value: Step3Details } = useLanguage({\n langKey: `returnsConfirmation${type}Step3Details`,\n asString: true,\n replacementTokens,\n });\n const { rawValue: providerLinkUrl } = useLanguage({\n langKey: `returnsMoniker${providerMoniker}LinkUrl`,\n asString: true,\n });\n const { value: providerLinkText } = useLanguage({\n langKey: `returnsMoniker${providerMoniker}LinkText`,\n asString: true,\n replacementTokens,\n });\n const refundStepTitle = useLanguage({\n langKey: `returnsConfirmation${refundMethod}StepTitle`,\n }).value;\n const refundStepDetails = useLanguage({\n langKey: `returnsConfirmation${refundMethod}StepDetails`,\n }).value;\n const refundStepAppStoreLink = useLanguage({\n langKey: `returnsConfirmation${refundMethod}StepAppStoreLink`,\n }).value;\n const refundStepAppStoreLinkText = useLanguage({\n langKey: `returnsConfirmation${refundMethod}StepAppStoreLinkText`,\n }).value;\n const refundStepGooglePlayLink = useLanguage({\n langKey: `returnsConfirmation${refundMethod}StepGooglePlayLink`,\n }).value;\n const refundStepGooglePlayLinkText = useLanguage({\n langKey: `returnsConfirmation${refundMethod}StepGooglePlayLinkText`,\n }).value;\n\n const steps: StepProps[] = useMemo(() => {\n const link =\n providerLinkText && providerLinkUrl\n ? { text: providerLinkText, url: providerLinkUrl }\n : undefined;\n const step2Link = type === \"printerless_mail\" && link ? [link] : [];\n const step3Link =\n (type === \"mail\" || type === \"concierge\") && link ? [link] : [];\n\n let ret: StepProps[] = [];\n if (refundMethod === \"reshop\") {\n ret = [\n ...ret,\n {\n title: refundStepTitle,\n details: refundStepDetails,\n links: [\n {\n text: refundStepAppStoreLinkText,\n url: refundStepAppStoreLink ?? \"\",\n image: \"app_store\",\n },\n {\n text: refundStepGooglePlayLinkText,\n url: refundStepGooglePlayLink ?? \"\",\n image: \"google_play\",\n },\n ],\n },\n ];\n }\n ret = [\n ...ret,\n { title: Step1Title, details: Step1Details },\n { title: Step2Title, details: Step2Details, links: step2Link },\n ];\n if (Step3Title) {\n ret = [\n ...ret,\n { title: Step3Title, details: Step3Details, links: step3Link },\n ];\n }\n return ret;\n }, [\n type,\n refundMethod,\n refundStepTitle,\n refundStepDetails,\n refundStepAppStoreLinkText,\n refundStepAppStoreLink,\n refundStepGooglePlayLinkText,\n refundStepGooglePlayLink,\n providerLinkText,\n providerLinkUrl,\n Step1Title,\n Step1Details,\n Step2Title,\n Step2Details,\n Step3Title,\n Step3Details,\n ]);\n\n return (\n \n );\n};\n\nexport { ConfirmationRaw };\n","import React, { useEffect, useState } from \"react\";\nimport get from \"lodash/get\";\nimport Fade from \"@material-ui/core/Fade\";\nimport Grid from \"@material-ui/core/Grid\";\n\nimport {\n BOXLESS_METHOD,\n METHOD_IN_STORE,\n METHOD_KEEP_THE_ITEM,\n METHOD_SHIP_ON_YOUR_OWN,\n METHOD_XPO,\n PRINTERLESS_METHOD,\n} from \"../../../retailer-app/constants/returns\";\nimport { BOXLESS_ONLY_CARRIERS } from \"../../../retailer-app/constants/carriers\";\nimport { useReturnStepsState } from \"../../contexts/returnSteps\";\nimport { makeRootStyles } from \"../../theme/styles\";\n\nimport { config } from \"../../config\";\nimport { useNthReturnsActions } from \"../../contexts/nthContext\";\nimport {\n toReturnMethodPreference,\n useConsumerPreferences,\n} from \"../../data/consumerPreferences\";\nimport titan from \"../../../shared/modules/titan\";\nimport useCustomer from \"../../hooks/useCustomer\";\nimport ConfirmationBasic from \"./ConfirmationBasic\";\nimport { interpolate } from \"../../../shared/modules/template\";\nimport { getTranslation } from \"../../../shared/modules/config\";\nimport useClaims from \"../../hooks/useClaims\";\nimport { Confirmation as ConfirmationPage } from \"../../Confirmation\";\n\nconst {\n translations: {\n return_confirmation_title_keep_item,\n return_confirmation_title,\n return_confirmation_subtitle_keep_item,\n return_confirmation_subtitle_keep_item_no_refund,\n return_confirmation_subtitle,\n return_confirmation_subtitle_label_retry_enqueued,\n },\n} = config;\n\nconst useStyles = makeRootStyles(\n (theme) => ({\n root: {\n paddingTop: theme.spacing(4),\n paddingBottom: theme.spacing(12),\n display: \"flex\",\n alignItems: \"center\",\n },\n }),\n { name: \"N0Confirmation\" },\n);\n\nexport const getConfirmationType = (state) => {\n const method = state.selectedReturnMethod.id;\n const qr = state.selectedReturnMethod.qr;\n\n if (method === METHOD_IN_STORE) return \"store\";\n if (method === METHOD_SHIP_ON_YOUR_OWN) return \"ship_on_your_own\";\n if (method === METHOD_XPO) return \"home_pickup\";\n if (method === METHOD_KEEP_THE_ITEM) return \"keep_the_item\";\n if (\n qr === BOXLESS_METHOD ||\n (BOXLESS_ONLY_CARRIERS.includes(method) && qr === PRINTERLESS_METHOD)\n )\n return \"boxless\";\n if (qr === PRINTERLESS_METHOD) return \"printerless\";\n return \"mail\";\n};\n\nexport const getShipmentItemsForConfirmation = (\n selectedItems,\n submitResult,\n renderInAppLabel,\n) => {\n return {\n items: selectedItems.map((item) => ({\n ...item,\n reason: {},\n })),\n returnLabels: renderInAppLabel\n ? [\n {\n labelType: \"SHIPPING_LABEL\", // PACKING_SLIP, SHIPPING_LABEL, PACKING_SLIP_AND_SHIPPING_LABEL, QR_CODE\n mimeType: \"application/pdf\",\n labelUrl: submitResult,\n },\n ]\n : [],\n };\n};\n\nexport const shouldRenderInAppLabel = (config, state) => {\n return config.isInAppLabelEnabled && state.submitResult !== \"ok\";\n};\n\nfunction Confirmation({ orderFetchData }) {\n const [show, setShow] = useState(false);\n const classes = useStyles();\n const state = useReturnStepsState();\n const {\n selectedReturnMethod,\n refundTotal,\n submitReturnResultCode,\n savePreferences,\n } = state;\n const { email: displayEmail } = useCustomer();\n const { hasClaimItems: isClaim } = useClaims();\n\n useEffect(() => {\n setTimeout(() => setShow(true), 400);\n }, []);\n\n const title =\n selectedReturnMethod.id === METHOD_KEEP_THE_ITEM\n ? return_confirmation_title_keep_item\n : return_confirmation_title;\n\n const subtitle = (() => {\n if (submitReturnResultCode === \"label_retry_enqueued\") {\n return return_confirmation_subtitle_label_retry_enqueued.replace(\n \"%{email}\",\n displayEmail,\n );\n } else if (selectedReturnMethod.id === METHOD_KEEP_THE_ITEM) {\n if (refundTotal === 0) {\n return return_confirmation_subtitle_keep_item_no_refund.replace(\n \"%{email}\",\n displayEmail,\n );\n } else {\n return return_confirmation_subtitle_keep_item.replace(\n \"%{email}\",\n displayEmail,\n );\n }\n } else {\n return return_confirmation_subtitle.replace(\"%{email}\", displayEmail);\n }\n })();\n\n const supplementaryText =\n config.translations.return_confirmation_supplementary;\n const renderSupplementaryText =\n supplementaryText && supplementaryText != \"\" && supplementaryText != \" \";\n\n const returnMethod = get(state, \"selectedReturnMethod.id\");\n\n const renderInAppLabel = shouldRenderInAppLabel(config, state);\n const printLabelText = (() => {\n if (returnMethod == METHOD_SHIP_ON_YOUR_OWN) {\n return config.translations.return_confirmation_print_packing_slip;\n }\n return config.translations.return_confirmation_print_label;\n })();\n\n /***************************************************************************************************************\n * New design with `nth` components\n ***************************************************************************************************************/\n const useNewDesign = config.isNthUi;\n const nthReturnsActions = useNthReturnsActions();\n\n const { preferencesStatus, updateConsumerPreferences } =\n useConsumerPreferences(state.guestReturn ? \"\" : state.email);\n\n useEffect(() => {\n const type = toReturnMethodPreference(selectedReturnMethod);\n if (savePreferences && type) {\n const orderId = orderFetchData.order?.shopifyOrderId?.split(\"/\").pop();\n updateConsumerPreferences(orderId, displayEmail, {\n returnMethods: [type],\n carriers: [],\n locations: [],\n });\n }\n }, [savePreferences]);\n\n const preferencesSubmitted = preferencesStatus?.status === \"success\";\n useEffect(() => {\n if (preferencesSubmitted) {\n titan.track(\"promotion_clicked\", {\n props: { promotion_id: \"user_preferences\" },\n });\n }\n }, [preferencesSubmitted]);\n\n if (isClaim) {\n const subtitle = interpolate(\n getTranslation(\"claims_confirmation_subtitle\"),\n {\n email: displayEmail,\n },\n );\n return (\n \n );\n }\n\n if (useNewDesign) {\n // nth type with default translation: store, mail, printerless_mail, concierge\n const type = getConfirmationType(state);\n console.debug(\"method\", state.selectedReturnMethod);\n console.debug(\"type\", type);\n return (\n \n
\n \n \n \n \n \n
\n
\n );\n }\n\n return (\n \n );\n}\n\nexport default Confirmation;\n","import React, { useEffect, useMemo, useCallback } from \"react\";\nimport clsx from \"clsx\";\nimport Box from \"@material-ui/core/Box\";\nimport Button from \"@material-ui/core/Button\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Typography from \"@material-ui/core/Typography\";\nimport { isEmpty, minBy, omit, some, unset } from \"lodash/fp\";\n\nimport { config } from \"../../config\";\nimport { makeRootStyles } from \"../../theme/styles\";\nimport { palette } from \"../../../shared/theme/create-theme\";\nimport locale from \"../../../shared/modules/lang\";\n\nimport {\n useReturnStepsActions,\n useReturnStepsState,\n getStepIndex,\n CHOOSE_RETURN_CREDIT_METHOD_STEP,\n CHOOSE_SHOP_NOW_STEP,\n useRegisterStepStatus,\n} from \"../../contexts/returnSteps\";\nimport { useCalculateRefund } from \"../../data/calculateRefund\";\nimport { buildItemsByType } from \"../../modules/items\";\nimport { interpolate } from \"../../../shared/modules/template\";\nimport Spinner from \"../../../shared/components/Spinner\";\nimport { useSubmitReturn } from \"../../data/submitReturn\";\nimport { isValidHttpUrl } from \"../../../shared/modules/string\";\nimport { redirectToCheckout } from \"../../../shared/modules/frame\";\nimport MailingAddressForm from \"../ConfirmMailingAddress/MailingAddressForm\";\nimport { mergeAddress } from \"../../modules/address\";\nimport { ignoreEmpty, omitDeep } from \"../../../shared/modules/object\";\nimport ErrorSnackbar from \"../../components/ErrorSnackbar\";\nimport Strikethrough from \"../../components/Strikethrough\";\nimport {\n getAddressError,\n getHandledErrorMessage,\n} from \"../../../shared/modules/decodeError\";\nimport { calculateReturnMetrics, useEmitMetrics } from \"../../data/emitMetric\";\nimport {\n convertFromDatadogMetrics,\n countingEvent,\n SUBMIT_RETURN_SUCCESS_EVENT,\n useAbTesting,\n} from \"../../data/abTesting\";\nimport {\n METHOD_KEEP_THE_ITEM,\n RETURN_CREDIT_METHOD_SHOPNOW,\n} from \"../../../retailer-app/constants/returns\";\nimport {\n getConfirmationType,\n getShipmentItemsForConfirmation,\n shouldRenderInAppLabel,\n} from \"../Confirmation/Confirmation\";\nimport { useNthReturnsActions } from \"../../contexts/nthContext\";\nimport { toReturnMethodPreference } from \"../../data/consumerPreferences\";\nimport useClaims from \"../../hooks/useClaims\";\n\nconst useStyles = makeRootStyles(\n (theme) => ({\n root: {\n paddingTop: theme.spacing(4),\n paddingBottom: theme.spacing(4),\n },\n title: {},\n description: {},\n refundAmount: {},\n refundAmountOriginal: {},\n text: {\n marginBottom: theme.spacing(2.5),\n },\n incentiveText: {\n color: palette.red,\n },\n notes: {\n marginBottom: theme.spacing(4),\n color: \"#999999\",\n },\n incentiveContainer: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: theme.spacing(1),\n },\n chooseButton: {},\n skipButton: {},\n }),\n { name: \"N0ChooseShopNow\" },\n);\n\nconst ChooseShopNow = ({ orderFetchData, draftReturnUuid }) => {\n const classes = useStyles();\n const state = useReturnStepsState();\n const actions = useReturnStepsActions();\n const { emitMetrics } = useEmitMetrics();\n const abTesting = useAbTesting();\n\n const submittingRedirect = state.shopNowSession?.redirectingToShop;\n\n const { order, returnReasonsById = {} } = orderFetchData;\n const { itemsById } = order;\n const { hasClaimItems } = useClaims();\n\n const { exchangeItems, returnItems } = useMemo(\n () => buildItemsByType(state.items, itemsById, returnReasonsById),\n [itemsById, returnReasonsById, state.items],\n );\n\n const nthReturnsActions = useNthReturnsActions();\n const selectedReturnMethod = state.selectedReturnMethod;\n const isValidForShopNow = config.isShopNowEnabled && !hasClaimItems;\n const calculateParams = useMemo(\n () => ({\n carrierServiceName: selectedReturnMethod.carrierService,\n draftReturnUuid,\n exchangeItems: exchangeItems.map(unset(\"returnItem.pictures\")),\n returnItems: returnItems.map(unset(\"pictures\")),\n shopifyOrderId: order.shopifyOrderId,\n presentmentCurrency: order.presentmentCurrency,\n shippingPrice: selectedReturnMethod.price,\n shippingMethod: selectedReturnMethod.id,\n orderNumber: state.orderNumber,\n email: state.email,\n locale,\n fromAddress: ignoreEmpty(state.fromAddress),\n csid: state.csid,\n chosenRefundMethod: isValidForShopNow ? \"shop_now\" : null,\n }),\n [\n isValidForShopNow,\n exchangeItems,\n returnItems,\n order,\n selectedReturnMethod,\n state.orderNumber,\n state.email,\n locale,\n state.fromAddress,\n state.csid,\n ],\n );\n const { refund, queryStatus } = useCalculateRefund(calculateParams);\n\n // calculate refund would run again in review, hide the spinner for that\n const loading = isEmpty(refund) && queryStatus.loading;\n const queryErrorMessage = getHandledErrorMessage(\n queryStatus.error,\n config.translations.general_loading_error,\n );\n\n // Compare the shop now exchange credit to other available refund method\n // which would refund the least. Show as incentive if shop now credit is\n // more.\n const nonShopNowMethods = refund?.refundMethodsAvailable?.filter(\n (v) => v.refundMethod !== RETURN_CREDIT_METHOD_SHOPNOW,\n );\n const renderInAppLabel = shouldRenderInAppLabel(config, state);\n\n const baselineMethod = minBy(\"refundCents\", nonShopNowMethods);\n const refundAmount = baselineMethod?.refundFormatted;\n const refundAmountCents = baselineMethod?.refundCents;\n const incentive = \"\";\n const shopNowRefundMethod = refund?.refundMethodsAvailable?.find(\n (v) => v.refundMethod === RETURN_CREDIT_METHOD_SHOPNOW,\n );\n const creditAmount = shopNowRefundMethod?.refundFormatted;\n const creditAmountCents = shopNowRefundMethod?.refundCents;\n const showIncentive =\n Math.abs(refundAmountCents + 10) < Math.abs(creditAmountCents);\n\n const allowRefundToOriginalPayment = (\n refund?.refundMethodsAvailable || []\n ).some((v) => v.refundMethod === \"original_payment\");\n const skipShopNow =\n !config.isShopNowEnabled ||\n hasClaimItems ||\n queryErrorMessage || // skip shop now step to avoid broken flow, because it might be disabled by the rule engine\n refund?.shopNowAvailable === false ||\n refund?.totalRefundCents <= 0 ||\n (refund?.refundMethodsAvailable && !shopNowRefundMethod);\n\n const handleRefund = useCallback(() => {\n actions.goToStep(CHOOSE_RETURN_CREDIT_METHOD_STEP);\n }, []);\n\n useEffect(() => {\n if (\n skipShopNow &&\n state.currentStepIndex < getStepIndex(CHOOSE_RETURN_CREDIT_METHOD_STEP)\n ) {\n handleRefund();\n }\n }, [skipShopNow]);\n\n // shopnow chosen refund method when there is remaining credit\n const selectedRefundMethod = allowRefundToOriginalPayment\n ? \"original_payment\"\n : \"gift_card\";\n\n const { submitReturn, submitStatus, submitStatusReset } = useSubmitReturn();\n const checkoutUrl = submitStatus.data;\n const hasRedirectUrl = isValidHttpUrl(checkoutUrl);\n const submitting = submitStatus.loading || hasRedirectUrl;\n const submitErrorMessage = submitStatus.error;\n\n useEffect(() => {\n if (submittingRedirect && selectedRefundMethod && !submitting) {\n console.debug(\"submit return for shop now\");\n\n let submitParams = omit([\"chosenRefundMethod\"], calculateParams);\n submitParams = {\n ...submitParams,\n draftReturnUuid,\n shopNow: true,\n location: omitDeep([\"__typename\"], state.location),\n locationId: state.locationId,\n fromAddress: isEmpty(state.fromAddress) ? undefined : state.fromAddress,\n selectedRefundMethod,\n exchangeItems,\n returnItems,\n homePickupInstructions: state.homePickupInstructions,\n requestedLabelCount: state.requestedLabelCount,\n };\n\n submitReturn(submitParams)\n .then((r) => {\n console.debug(\"submit return success\");\n const metrics = calculateReturnMetrics(\n order,\n \"shop_now\",\n state.items,\n state.lineItemIntension,\n false,\n );\n emitMetrics(metrics);\n if (config.isNthUi) {\n const abTestResult = convertFromDatadogMetrics(metrics);\n abTesting.trackResult(abTestResult);\n abTesting.trackResult(countingEvent(SUBMIT_RETURN_SUCCESS_EVENT));\n }\n })\n .catch((err) => {\n console.error(err);\n actions.setShopNowRedirect(false);\n });\n }\n }, [submittingRedirect, selectedRefundMethod]);\n\n useEffect(() => {\n if (hasRedirectUrl) {\n window.localStorage.setItem(\"nv_shop_now_checkout\", checkoutUrl);\n console.debug(\"redirect to shopify storefront:\", checkoutUrl);\n redirectToCheckout(checkoutUrl);\n }\n }, [hasRedirectUrl, checkoutUrl]);\n\n // when user go to next step, clear the error message\n useEffect(submitStatusReset, [state.currentStepIndex]);\n\n const handleShopNow = () => {\n const confirmationPageState = {\n type: getConfirmationType(state),\n refundMethod: state.selectedReturnCreditMethod.id,\n noInstructions: state.selectedReturnMethod.id === METHOD_KEEP_THE_ITEM,\n selectedRefundMethodType: toReturnMethodPreference(\n state.selectedReturnMethod,\n ),\n email: state.guestReturn ? state.decodedGuestEmail : state.email,\n guestReturn: state.guestReturn,\n shipment: getShipmentItemsForConfirmation(\n nthReturnsActions.selectedItems,\n state.submitResult,\n renderInAppLabel,\n ),\n providerMoniker:\n nthReturnsActions.selectedPudoOption?.pudoProvider?.moniker,\n location:\n nthReturnsActions.returnCart?.pudoOption?.selectedDropOff\n ?.dropOffLocation,\n savePreferences: state.savePreferences,\n orderId: order.shopifyOrderId?.split(\"/\").pop(),\n };\n window.localStorage.setItem(\n \"nv_shop_now_v2_confirmation\",\n JSON.stringify(confirmationPageState),\n );\n actions.setShopNowRedirect(true);\n };\n\n // isStoreCredit on an item means the user already opted for Shop Now, so\n // they do not need to be presented with the decision again here.\n const isAutoRedirect = useMemo(\n () => !loading && !skipShopNow && some(\"isStoreCredit\", state.items),\n [loading, skipShopNow, state.items],\n );\n useEffect(() => {\n if (isAutoRedirect) {\n handleShopNow();\n }\n }, [isAutoRedirect]);\n\n const handleAddressFix = useCallback(({ fromAddress }) => {\n submitStatusReset();\n actions.setCorrectedAddress(fromAddress);\n }, []);\n\n useRegisterStepStatus(CHOOSE_SHOP_NOW_STEP, { skipped: skipShopNow });\n if (skipShopNow) {\n return null;\n }\n\n const addressError =\n queryStatus.addressError ?? getAddressError(submitStatus.errorDetail);\n\n if (addressError) {\n return (\n \n \n {config.translations.mailing_address_section_title}\n \n \n \n );\n }\n\n if (loading) {\n return ;\n }\n return (\n
\n \n \n \n {config.translations.shopnow_opt_in_title}\n \n \n {queryErrorMessage ? (\n \n \n }\n />\n \n ) : (\n <>\n \n {showIncentive ? (\n <>\n \n {config.translations.shopnow_opt_in_description}\n {incentive &&\n interpolate(\n config.translations\n .shopnow_opt_in_incentive_description,\n { amount: incentive },\n )}\n \n \n \n {refundAmount}\n \n \n {creditAmount}\n \n \n \n ) : (\n <>\n \n {refundAmount}\n \n \n )}\n \n {shopNowRefundMethod?.refundMethodDescription}\n \n \n \n \n {interpolate(config.translations.shopnow_opt_in_yes, {\n amount: creditAmount,\n })}\n \n \n {interpolate(config.translations.shopnow_opt_in_no, {\n amount: refundAmount,\n })}\n \n \n {submitErrorMessage && (\n \n \n }\n />\n \n )}\n \n )}\n \n {submitting && }\n
\n );\n};\n\nexport default ChooseShopNow;\n","import React from \"react\";\nimport clsx from \"clsx\";\n\nimport Grid from \"@material-ui/core/Grid\";\nimport Typography from \"@material-ui/core/Typography\";\nimport { alpha } from \"@material-ui/core/styles\";\n\nimport { palette } from \"../../../shared/theme/create-theme\";\nimport { makeRootStyles } from \"../../theme/styles\";\nimport { config } from \"../../config\";\nimport { interpolate } from \"../../../shared/modules/template\";\nimport Strikethrough from \"../../components/Strikethrough\";\n\nconst BORDER_WIDTH_SELECTED = 3;\nconst BORDER_WIDTH_UNSELECTED = 1;\n\nconst useStyles = makeRootStyles(\n (theme) => ({\n root: {\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"stretch\",\n justifyContent: \"center\",\n height: \"100%\",\n cursor: \"pointer\",\n backgroundColor: theme.palette.common.white,\n border: `${BORDER_WIDTH_UNSELECTED}px solid #ccc`,\n [theme.breakpoints.ie11()]: { height: theme.spacing(32) },\n [theme.breakpoints.edge()]: { height: theme.spacing(32) },\n },\n itemSelected: {\n border: `3px solid ${theme.palette.primary.main}`,\n backgroundColor: theme.palette.common.white,\n },\n details: {\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n flexWrap: \"nowrap\",\n padding: theme.spacing(3) - BORDER_WIDTH_UNSELECTED,\n },\n detailsSelected: {\n backgroundColor: alpha(theme.palette.primary.main, 0.05),\n padding: theme.spacing(3) - BORDER_WIDTH_SELECTED,\n },\n iconContainer: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n [theme.breakpoints.up(\"sm\")]: {\n marginBottom: theme.spacing(1),\n },\n },\n icon: {\n width: theme.spacing(12),\n textAlign: \"center\",\n [theme.breakpoints.up(\"sm\")]: {\n width: \"auto\",\n maxWidth: theme.spacing(24),\n paddingRight: 0,\n },\n },\n description: {\n textAlign: \"center\",\n },\n title: {},\n subtitle: {\n marginBottom: theme.spacing(2),\n marginTop: theme.spacing(1),\n },\n strikethrough: {\n marginRight: theme.spacing(1),\n },\n incentiveContainer: {\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n incentiveAmount: {\n color: palette.red,\n },\n }),\n { name: \"N0CreditOptionCard\" },\n);\n\nfunction CreditOptionCard({\n icon,\n selected,\n title,\n subtitle,\n onClick,\n strikethrough,\n oldPrice,\n newPrice,\n}) {\n const classes = useStyles();\n return (\n \n \n \n
{icon}
\n
\n \n \n {title}\n \n {newPrice && (\n
\n {strikethrough && oldPrice && (\n \n {oldPrice}\n \n )}\n \n {newPrice}\n \n
\n )}\n \n {subtitle}\n \n
\n \n \n );\n}\n\nexport default CreditOptionCard;\n","import ShopNow from \"../../../shared/components/icons/StoreCredit\";\n\nexport default ShopNow;\n","import React from \"react\";\n\nfunction GiftCard(props) {\n return (\n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default GiftCard;\n","import ShopLater from \"../../../shared/components/icons/GiftCard\";\n\nexport default ShopLater;\n","import React from \"react\";\n\nfunction Refund(props) {\n return (\n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default Refund;\n","import Refund from \"../../../shared/components/icons/Refund\";\n\nexport default Refund;\n","import React, { useEffect, useMemo, useCallback } from \"react\";\nimport { makeRootStyles } from \"../../theme/styles\";\nimport Button from \"@material-ui/core/Button\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Typography from \"@material-ui/core/Typography\";\n\nimport {\n get,\n find,\n isEmpty,\n unset,\n set,\n compose,\n merge,\n map,\n uniq,\n} from \"lodash/fp\";\n\nimport { RefundMethods } from \"@narvar/nth-kit-returns-headless\";\n\nimport {\n REFUND_METHOD_ORIGINAL_PAYMENT,\n REFUND_METHOD_GIFT_CARD,\n RETURN_CREDIT_METHOD_SHOPNOW,\n RETURN_CREDIT_METHOD_GIFT_CARD,\n RETURN_CREDIT_METHOD_REFUND,\n RETURN_CREDIT_METHOD_REPLACEMENT,\n RETURN_CREDIT_METHOD_RESHOP,\n} from \"../../../retailer-app/constants/returns\";\nimport {\n useReturnStepIsActive,\n useReturnStepsActions,\n useReturnStepsState,\n getStepIndex,\n CHOOSE_RETURN_CREDIT_METHOD_STEP,\n REVIEW_STEP,\n useRegisterStepStatus,\n} from \"../../contexts/returnSteps\";\nimport CreditMethodCard from \"./CreditMethodCard\";\nimport { buildItemsByType, useInventoryCheck } from \"../../modules/items\";\nimport locale from \"../../../shared/modules/lang\";\nimport { config } from \"../../config\";\nimport ShopNowIcon from \"../../components/icons/shop_now\";\nimport ShopLaterIcon from \"../../components/icons/shop_later\";\nimport RefundIcon from \"../../components/icons/refund\";\nimport { useCalculateRefund } from \"../../data/calculateRefund\";\nimport Spinner from \"../../../shared/components/Spinner\";\nimport { interpolate } from \"../../../shared/modules/template\";\nimport { ignoreEmpty, renameKeys } from \"../../../shared/modules/object\";\nimport MailingAddressForm from \"../ConfirmMailingAddress/MailingAddressForm\";\nimport { mergeAddress } from \"../../modules/address\";\nimport ErrorSnackbar from \"../../components/ErrorSnackbar\";\nimport { getHandledErrorMessage } from \"../../../shared/modules/decodeError\";\nimport { useTypeForm } from \"../../contexts/typeForm\";\nimport { useNthReturnsActions } from \"../../contexts/nthContext\";\nimport useClaims from \"../../hooks/useClaims\";\n\nconst useStyles = makeRootStyles(\n (theme) => ({\n root: {\n paddingTop: theme.spacing(4),\n paddingBottom: theme.spacing(4),\n },\n title: {\n marginBottom: theme.spacing(3),\n },\n chooseButton: {\n marginTop: theme.spacing(1),\n },\n }),\n { name: \"N0ChooseReturnCreditMethod\" },\n);\n\nconst ChooseReturnCreditMethod = ({ orderFetchData, draftReturnUuid }) => {\n const classes = useStyles();\n\n const state = useReturnStepsState();\n const actions = useReturnStepsActions();\n const { hasClaimItems, transformClaimItemsToExchangeItems } = useClaims();\n const useNewDesign = config.isNthUi;\n const isClaimReplacementEnabled = config.isExchangesEnabled && hasClaimItems;\n\n const { order, returnReasonsById = {} } = orderFetchData;\n const { itemsById } = order;\n const claimReplacementItems = useMemo(\n () =>\n isClaimReplacementEnabled\n ? compose(\n map((id) => itemsById[id]),\n uniq,\n map(get(\"id\")),\n )(state.items)\n : [],\n [isClaimReplacementEnabled, itemsById, state.items],\n );\n const { allItemsAvailableForSale, status: inventoryCheckStatus } =\n useInventoryCheck({\n items: claimReplacementItems,\n });\n\n const { exchangeItems, returnItems } = useMemo(\n () => buildItemsByType(state.items, itemsById, returnReasonsById),\n [itemsById, returnReasonsById, state.items],\n );\n\n const selectedReturnMethod = state.selectedReturnMethod;\n\n const calculateRefundPayload = {\n carrierServiceName: selectedReturnMethod.carrierService,\n draftReturnUuid,\n exchangeItems: exchangeItems.map(unset(\"returnItem.pictures\")),\n returnItems: returnItems.map(unset(\"pictures\")),\n shopifyOrderId: order.shopifyOrderId,\n presentmentCurrency: order.presentmentCurrency,\n shippingPrice: selectedReturnMethod.price,\n shippingMethod: selectedReturnMethod.id,\n orderNumber: state.orderNumber,\n email: state.email,\n locale,\n fromAddress: ignoreEmpty(state.fromAddress),\n csid: state.csid,\n chosenRefundMethod: null,\n };\n const { refund, queryStatus } = useCalculateRefund(calculateRefundPayload);\n const claimReplacementOutOfStock = !allItemsAvailableForSale;\n const claimReplacementPayload = transformClaimItemsToExchangeItems(\n calculateRefundPayload,\n );\n const { refund: replacementRefund, queryStatus: replacementQueryStatus } =\n useCalculateRefund(claimReplacementPayload, {\n skip:\n !isClaimReplacementEnabled ||\n inventoryCheckStatus.loading ||\n claimReplacementOutOfStock,\n });\n\n // calculate refund would run again in review, hide the spinner for that\n const loading =\n (isEmpty(refund) && queryStatus.loading) ||\n (isEmpty(replacementRefund) && replacementQueryStatus.loading) ||\n inventoryCheckStatus.loading;\n const loaded =\n !isEmpty(refund) &&\n (!isClaimReplacementEnabled || !isEmpty(replacementRefund));\n const { addressError } = queryStatus;\n const errorMessage = getHandledErrorMessage(\n queryStatus.error,\n config.translations.general_loading_error,\n );\n const replacementMethod = replacementRefund?.refundMethodsAvailable?.find(\n (method) => method.refundMethod === replacementRefund.chosenRefundMethod,\n );\n\n const creditMethods = useMemo(() => {\n if (loading) return [];\n if (!refund?.refundMethodsAvailable?.length) return [];\n if (\n isClaimReplacementEnabled &&\n !claimReplacementOutOfStock &&\n !replacementRefund?.refundMethodsAvailable?.length\n )\n return [];\n\n const originalPayment = refund.refundMethodsAvailable.find(\n (v) => v.refundMethod === RETURN_CREDIT_METHOD_REFUND,\n );\n\n const translateMethodTitle = (methodId) => {\n switch (methodId) {\n case RETURN_CREDIT_METHOD_RESHOP:\n return config.translations.choose_refund_method_reshop;\n case RETURN_CREDIT_METHOD_REPLACEMENT:\n return config.translations.claims_resolution_option_replacement_title;\n case RETURN_CREDIT_METHOD_REFUND:\n return config.translations.choose_refund_method_original_payment;\n default:\n return interpolate(\n config.translations.choose_refund_method_gift_card,\n { shop_name: config.shopName },\n );\n }\n };\n\n const translateMethod = (method) => {\n const title = translateMethodTitle(method.id);\n let description = method.description;\n if (method.id === RETURN_CREDIT_METHOD_REPLACEMENT) {\n description = claimReplacementOutOfStock\n ? config.translations\n .claims_resolution_option_replacement_description_out_of_stock\n : config.translations\n .claims_resolution_option_replacement_description;\n }\n return {\n ...method,\n title,\n description,\n };\n };\n\n const setDisabled = (method) => {\n let disabled = false;\n if (method.id === RETURN_CREDIT_METHOD_REPLACEMENT) {\n disabled = claimReplacementOutOfStock;\n }\n return {\n ...method,\n disabled,\n };\n };\n\n const toCreditMethodCardData = (method) =>\n compose(\n setDisabled,\n translateMethod,\n merge({\n strikethrough:\n Math.abs(originalPayment?.refundCents + 10) <\n Math.abs(method.refundCents),\n oldPriceCents: originalPayment?.refundCents,\n oldPrice: originalPayment?.refundFormatted,\n }),\n renameKeys({\n refundMethod: \"id\",\n refundMethodDescription: \"description\",\n refundFormatted: \"newPrice\",\n refundCents: \"newPriceCents\",\n }),\n )(method);\n\n const ret = refund.refundMethodsAvailable\n .filter(\n (v) => v.refundMethod !== RETURN_CREDIT_METHOD_SHOPNOW, // shop now opt-in is handled by other step\n )\n .filter((v) => v.refundCents > 0) // if consumer owes any amount, no need to show refund methods\n .map(toCreditMethodCardData)\n .sort((a, b) => {\n const toNumber = (method) => {\n if (method.id === RETURN_CREDIT_METHOD_REFUND) {\n return refund.refundMethodsAvailable.length + 2; // original method places in the last\n }\n if (method.id === RETURN_CREDIT_METHOD_GIFT_CARD) {\n return refund.refundMethodsAvailable.length + 1; // shopify gift card places in the second last\n }\n if (method.id === refund.chosenRefundMethod) {\n return -1; // backend chosen default method places in the first\n }\n return 0; // keep the order\n };\n return toNumber(a) - toNumber(b);\n });\n\n if (isClaimReplacementEnabled) {\n ret.unshift(\n toCreditMethodCardData({\n ...replacementMethod,\n originalRefundMethod:\n replacementMethod?.refundMethod ?? REFUND_METHOD_ORIGINAL_PAYMENT,\n refundMethod: RETURN_CREDIT_METHOD_REPLACEMENT,\n }),\n );\n }\n return ret;\n }, [\n loading,\n refund,\n isClaimReplacementEnabled,\n claimReplacementOutOfStock,\n replacementRefund,\n replacementMethod,\n ]);\n\n useEffect(() => {\n if (creditMethods.length > 0) {\n actions.setAvailableReturnCreditMethods(creditMethods);\n }\n }, [creditMethods]);\n\n // TODO: conditionally render the amount: do this checking? isRefundAutomationEnabled && !isTotalNegative && !isTotal0\n\n // account for uneven exchange and return where no credit is refunded.\n const skipReturnCreditMethod = loaded && creditMethods.length === 0;\n\n const autoChoose =\n loaded &&\n creditMethods.length === 1 &&\n creditMethods[0].id === RETURN_CREDIT_METHOD_REFUND;\n\n const isValidSelected = useMemo(() => {\n const method = state.selectedReturnCreditMethod;\n if (!method) return false;\n return creditMethods.some((d) => d.id === method.id);\n }, [state.selectedReturnCreditMethod, creditMethods]);\n\n const isActiveStep = useReturnStepIsActive(CHOOSE_RETURN_CREDIT_METHOD_STEP);\n const showNextBtn = !loading && !errorMessage && isActiveStep;\n\n useEffect(() => {\n if (\n skipReturnCreditMethod &&\n state.currentStepIndex < getStepIndex(REVIEW_STEP)\n ) {\n actions.goToStep(REVIEW_STEP);\n }\n }, [skipReturnCreditMethod, state.currentStepIndex]);\n\n const createSelectionHandler = useCallback(\n (method) => () => {\n if (get(\"id\", method) === get(\"selectedReturnCreditMethod.id\", state))\n return;\n actions.setReturnCreditMethod(method);\n },\n [state],\n );\n\n const handleAddressFix = useCallback(({ fromAddress }) => {\n actions.setCorrectedAddress(fromAddress);\n }, []);\n\n const handleNextStep = useCallback(() => {\n actions.goToStep(REVIEW_STEP);\n }, []);\n\n useEffect(() => {\n if (\n !skipReturnCreditMethod &&\n refund.chosenRefundMethod &&\n creditMethods.length > 0\n ) {\n const methodId =\n state.selectedReturnCreditMethod.id ?? refund.chosenRefundMethod;\n let method = find({ id: methodId }, creditMethods);\n if (\n !method &&\n refund.chosenRefundMethod === RETURN_CREDIT_METHOD_SHOPNOW\n ) {\n method =\n find({ id: REFUND_METHOD_ORIGINAL_PAYMENT }, creditMethods) ||\n find({ id: REFUND_METHOD_GIFT_CARD }, creditMethods);\n }\n\n if (method && state.selectedReturnCreditMethod.id !== method.id) {\n actions.setReturnCreditMethod(method);\n }\n\n if (autoChoose) {\n actions.goToStep(REVIEW_STEP);\n }\n }\n }, [\n skipReturnCreditMethod,\n autoChoose,\n state.selectedReturnCreditMethod,\n refund.chosenRefundMethod,\n creditMethods,\n ]);\n\n const methodIcons = (carrier) => {\n switch (carrier) {\n case RETURN_CREDIT_METHOD_SHOPNOW:\n return ;\n case RETURN_CREDIT_METHOD_GIFT_CARD:\n return ;\n case RETURN_CREDIT_METHOD_REFUND:\n return ;\n default:\n return ;\n }\n };\n\n /***************************************************************************************************************\n * New design with `nth` components\n ***************************************************************************************************************/\n const typeForm = useTypeForm();\n const nthReturnActions = useNthReturnsActions();\n const getNthType = (method) =>\n method.id === RETURN_CREDIT_METHOD_REPLACEMENT\n ? method.originalRefundMethod.toUpperCase()\n : method.id.toUpperCase();\n const refundMethodOptions = useMemo(\n () =>\n creditMethods.map((method) => {\n const currency = order.presentmentCurrency;\n const refundAmount = { value: method.newPriceCents, currency };\n let incentive = refundAmount?.value - method.oldPriceCents;\n incentive = incentive > 0 ? { value: incentive, currency } : undefined;\n const ret = {\n ...method,\n type: getNthType(method),\n name: method.title,\n refund: refundAmount,\n incentive,\n };\n return ret;\n }),\n [refund, creditMethods],\n );\n const selectedRefundMethod = useMemo(\n () =>\n find({ id: state.selectedReturnCreditMethod?.id }, refundMethodOptions),\n [refundMethodOptions, state.selectedReturnCreditMethod?.id],\n );\n\n useEffect(() => {\n nthReturnActions?.setReturnCart?.(\n set(\"refundMethod\", selectedRefundMethod),\n );\n }, [selectedRefundMethod]);\n\n const isSkipStep = skipReturnCreditMethod || autoChoose;\n useRegisterStepStatus(CHOOSE_RETURN_CREDIT_METHOD_STEP, {\n skipped: isSkipStep,\n });\n if (isSkipStep) return null;\n\n if (addressError) {\n return (\n \n \n {config.translations.mailing_address_section_title}\n \n \n \n );\n }\n\n if (useNewDesign) {\n return (\n {\n if (event.value?.selectedRefundMethod) {\n const method = find(\n { id: event.value?.selectedRefundMethod?.id },\n refundMethodOptions,\n );\n if (method && method.id !== state.selectedReturnCreditMethod?.id) {\n actions.setReturnCreditMethod({\n ...method,\n type: method.type.toLowerCase(),\n });\n }\n }\n }}\n onBack={() => {\n actions.goBack();\n typeForm.scrollToActive();\n }}\n onSubmit={handleNextStep}\n />\n );\n }\n\n if (loading) {\n return ;\n }\n\n return (\n \n \n \n {config.translations.choose_refund_method_title}\n \n {errorMessage ? (\n \n }\n />\n ) : (\n \n {creditMethods.map((method) => (\n \n \n \n ))}\n \n )}\n \n {showNextBtn && (\n \n \n \n {config.translations.choose_refund_method_next_button_label}\n \n \n \n )}\n \n );\n};\nexport default ChooseReturnCreditMethod;\n","import React from \"react\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Typography from \"@material-ui/core/Typography\";\nimport { config } from \"../../config\";\nimport { makeRootStyles } from \"../../theme/styles\";\nimport { getBorderUnselected } from \"../ChooseItems/utils\";\nimport { omit } from \"lodash/fp\";\n\nconst useStyles = makeRootStyles(\n (theme) => ({\n root: {\n marginBottom: theme.spacing(2),\n },\n detailHeading: {\n marginBottom: theme.spacing(1),\n },\n detailHeadingValue: {\n ...omit([\"fontFamily\"], theme.typography.h2),\n },\n grid: {\n [theme.breakpoints.up(\"md\")]: {\n borderRight: getBorderUnselected(theme),\n\n \"&:last-child\": {\n borderRightWidth: 0,\n },\n },\n },\n }),\n { name: \"N0ReviewDetails\" },\n);\n\nconst DetailHeading = ({ children }) => {\n const classes = useStyles();\n return (\n \n {children}\n \n );\n};\n\nconst DetailHeadingValue = ({ children }) => {\n const classes = useStyles();\n return (\n \n {children}\n \n );\n};\n\nfunction Details({\n refundTotal,\n returnItemCount,\n receiveItemCount,\n returnMethodDisplayName,\n isCharge,\n isPreCharge,\n}) {\n const classes = useStyles();\n const hasReturnMethod = !!returnMethodDisplayName;\n\n const title = (() => {\n if (isPreCharge) {\n return \"Refund Total (pre charged)\";\n }\n\n if (isCharge) {\n return config.translations.return_review_charge_total;\n } else {\n return config.translations.return_review_estimated_refund + \"*\";\n }\n })();\n\n return (\n \n \n {title}\n {refundTotal}\n \n \n \n {config.translations.return_review_returning}\n \n {returnItemCount}\n \n {receiveItemCount > 0 && (\n \n \n {config.translations.return_review_receiving}\n \n {receiveItemCount}\n \n )}\n {hasReturnMethod && (\n \n \n {config.translations.return_review_return_method}\n \n {returnMethodDisplayName}\n \n )}\n \n );\n}\nexport default Details;\n","import React from \"react\";\nimport Image from \"material-ui-image\";\nimport ImageIcon from \"@material-ui/icons/Image\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Typography from \"@material-ui/core/Typography\";\nimport { useTheme } from \"@material-ui/styles\";\nimport useMediaQuery from \"@material-ui/core/useMediaQuery\";\nimport startCase from \"lodash/startCase\";\nimport map from \"lodash/map\";\nimport PropTypes from \"prop-types\";\n\nimport { config } from \"../../config\";\nimport { makeRootStyles } from \"../../theme/styles\";\nimport { omit } from \"lodash/fp\";\n\nconst useStyles = makeRootStyles(\n (theme) => ({\n root: {\n paddingTop: theme.spacing(1),\n paddingBottom: theme.spacing(1),\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1),\n flexWrap: \"nowrap\",\n },\n thumb: {\n width: theme.spacing(14),\n height: theme.spacing(14),\n color: \"#ccc\",\n display: \"flex\",\n alignItems: \"flex-start\",\n justifyContent: \"center\",\n overflow: \"hidden\",\n },\n description: {\n flexGrow: 1,\n },\n name: {},\n variantOption: {},\n quantity: {},\n returnReason: {\n ...omit([\"fontFamily\"], theme.typography.h4),\n },\n price: {},\n disclaimerText: {\n marginTop: theme.spacing(1),\n },\n commentContainer: {\n marginTop: theme.spacing(0.5),\n },\n comment: {\n fontStyle: \"italic\",\n },\n }),\n { name: \"N0ReviewItem\" },\n);\n\nconst Item = ({\n details,\n keepTheItem,\n state,\n returnReasonTitle,\n isOriginal,\n}) => {\n const classes = useStyles();\n const theme = useTheme();\n const isSmUp = useMediaQuery(theme.breakpoints.up(\"sm\"));\n const isExchange = state.type === \"exchange\";\n\n const displayPrice = isOriginal\n ? details.displayPrice\n : state.exchange.priceFormatted;\n\n const productTitle = isOriginal\n ? details.productTitle\n : state.exchange.productTitle;\n const name = isOriginal ? details.name : state.exchange.name;\n\n const variantInfo = isOriginal\n ? details.variantInfo\n : isExchange\n ? state.exchange.variantInfo\n : details.variantInfo;\n\n const productImageUrl = isOriginal\n ? details.productImageUrl\n : state.exchange.productImageUrl;\n\n console.debug(\"isOriginal\", isOriginal, \"isExchange\", isExchange);\n console.debug(\"productTitle\", productTitle, \"name\", name);\n console.debug(\"details\", details);\n console.debug(\"state\", state);\n\n const itemVariantInfo = map(variantInfo, (variantInfo, i) => {\n return (\n \n {startCase(variantInfo.name)}: {variantInfo.value}\n \n );\n });\n\n return (\n \n \n {productImageUrl ? (\n \n ) : (\n \n )}\n \n \n \n {isSmUp && (\n \n {itemVariantInfo}\n \n {`${config.translations.return_review_item_quantity}: `}\n {state.quantity}\n \n \n )}\n \n {returnReasonTitle}\n \n {keepTheItem && isOriginal && (\n \n {config.translations.return_review_keep_item_disclaimer}\n \n )}\n {!!state.comment && isOriginal && (\n \n \n {`${config.translations.return_review_comments_title}: `}\n {state.comment}\n \n \n )}\n \n {isSmUp && (\n \n \n {displayPrice}\n \n \n )}\n \n );\n};\n\nItem.propTypes = {\n details: PropTypes.any,\n keepTheItem: PropTypes.any,\n state: PropTypes.any,\n isOriginal: PropTypes.bool,\n returnReasonTitle: PropTypes.string,\n};\nItem.defaultProps = {\n returnReasonTitle: \"\",\n isOriginal: true,\n};\n\nexport default Item;\n","import React from \"react\";\nimport clsx from \"clsx\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Typography from \"@material-ui/core/Typography\";\n\nimport { config } from \"../../config\";\nimport { makeRootStyles } from \"../../theme/styles\";\n\nconst { shouldHideNarvarSeamlessExchangeValue } = config;\n\nconst useStyles = makeRootStyles(\n (theme) => ({\n root: {\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1),\n },\n lineItem: {\n paddingTop: theme.spacing(2),\n paddingBottom: theme.spacing(2),\n borderTop: \"1px solid #c5c5c5\",\n },\n returnMethod: {},\n refundMethod: {},\n total: {\n \"& .MuiTypograph-root\": {\n fontWeight: \"bold\",\n },\n },\n captionText: {\n marginTop: theme.spacing(2),\n color: \"#A0A0A0\",\n },\n }),\n { name: \"N0ReviewRefund\" },\n);\n\nconst Refund = ({\n taxesIncluded,\n totalDisplayPrice,\n totalRefundCents,\n totalDisplayTax,\n priorRefundsDisplayAmt,\n subtotalDisplayPrice,\n purchaseShippingDisplayPrice,\n returnMethodDisplayName,\n exchangeShippingFeeDisplayPrice,\n exchangeShippingFeeDisplayName,\n isCharge,\n isPreCharge,\n feeBreakdown,\n refundMethod,\n}) => {\n const classes = useStyles();\n\n function translatedFee(fee) {\n if (config.translations[fee]) return config.translations[fee];\n if (fee === \"Shipping Fee\")\n return config.translations.return_review_shipping_fee;\n return fee;\n }\n\n const title = (() => {\n if (isPreCharge) {\n return \"Refund Total (pre charged)\";\n }\n\n if (isCharge) {\n return config.translations.return_review_charge_total;\n } else {\n return config.translations.return_review_estimated_refund + \"*\";\n }\n })();\n\n return (\n \n {!config.onlyShowEstimatedRefund && (\n <>\n \n \n {config.translations.return_review_subtotal}\n \n \n {shouldHideNarvarSeamlessExchangeValue && totalRefundCents == 0\n ? \"-\"\n : subtotalDisplayPrice}\n \n \n \n
\n \n {taxesIncluded\n ? config.translations.return_review_taxes_included\n : config.translations.return_review_total_tax}\n \n
\n {totalDisplayTax}\n \n {priorRefundsDisplayAmt && (\n \n
\n \n {config.translations.return_review_prior_refunds}\n \n
\n {priorRefundsDisplayAmt}\n \n )}\n {purchaseShippingDisplayPrice && (\n \n \n {config.translations.return_review_original_purchase_shipping}\n \n \n {purchaseShippingDisplayPrice}\n \n \n )}\n \n \n {config.translations.return_review_return_method}:{\" \"}\n {returnMethodDisplayName}\n \n \n {feeBreakdown &&\n feeBreakdown\n .filter(\n (i) =>\n !shouldHideNarvarSeamlessExchangeValue ||\n (i.description != \"NARVAR_SEAMLESS_EXCHANGE_VALUE\" &&\n i.description != \"NARVAR_SEAMLESS_EXCHANGE_VALUE_TAX\"),\n )\n .map((fee, i) => {\n return (\n \n \n {translatedFee(fee.description)}\n \n {fee.formattedFee}\n \n );\n })}\n {exchangeShippingFeeDisplayName && (\n \n \n {exchangeShippingFeeDisplayName}\n \n \n {isCharge &&\n parseFloat(exchangeShippingFeeDisplayPrice.substring(1)) !=\n 0 &&\n \"-\"}\n {exchangeShippingFeeDisplayPrice}\n \n \n )}\n \n )}\n \n {title}\n {totalDisplayPrice}\n \n \n {refundMethod}\n \n \n *{config.translations.return_review_disclaimer}\n \n \n );\n};\n\nexport default Refund;\n","import React, { useState, useMemo, useEffect } from \"react\";\nimport { CardElement } from \"@stripe/react-stripe-js\";\nimport get from \"lodash/get\";\n\nimport Grid from \"@material-ui/core/Grid\";\nimport Button from \"@material-ui/core/Button\";\nimport Typography from \"@material-ui/core/Typography\";\n\nimport { makeRootStyles } from \"../../theme/styles\";\nimport Spinner from \"../../../shared/components/Spinner\";\nimport { config } from \"../../config\";\nimport { useTheme } from \"@material-ui/styles\";\nimport { useStripeComponents } from \"../../contexts/StripeProvider\";\n\nconst useStyles = makeRootStyles(\n (theme) => ({\n stripeElement: {\n padding: \"10px 20px\",\n backgroundColor: \"white\",\n transition: \"box-shadow 150ms ease\",\n marginBottom: theme.spacing(2),\n width: \"100%\",\n border: \"1px solid #e8e8fb\",\n pointerEvents: (props) => (props.disabled ? \"none\" : \"auto\"),\n },\n form: {\n width: \"100%\",\n },\n submitContainer: {\n marginTop: theme.spacing(4),\n width: \"100%\",\n borderRadius: 4,\n border: \"1px solid #e8e8fb\",\n padding: theme.spacing(4),\n },\n buttonContainer: {\n width: \"100%\",\n },\n submitButton: {\n marginBottom: theme.spacing(2),\n width: \"100%\",\n },\n paymentText: {\n marginBottom: theme.spacing(2),\n },\n errorText: {\n color: theme.palette.error.main,\n },\n }),\n { name: \"N0StripeCheckoutForm\" },\n);\n\nexport const confirmCardPayment = async ({ stripe, elements, secret }) => {\n if (!stripe || !elements) return;\n\n return stripe\n .confirmCardPayment(secret, {\n payment_method: {\n card: elements.getElement(CardElement),\n billing_details: {\n // name: \"Jenny Rosen\",\n },\n },\n setup_future_usage: \"off_session\",\n })\n .then((result) => {\n if (result.error) {\n throw result.error;\n } else {\n if (result.paymentIntent.status === \"requires_capture\") {\n return { paymentId: result.paymentIntent.id };\n }\n }\n });\n};\n\nfunction CheckoutForm({\n secret,\n onSuccess,\n hideSubmit,\n submitLoading,\n backendPaymentFailureError = null,\n}) {\n const theme = useTheme();\n const { stripe, elements } = useStripeComponents();\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState(backendPaymentFailureError);\n const classes = useStyles({ disabled: submitLoading || loading });\n\n const cardElementOptions = useMemo(\n () => ({\n style: {\n base: {\n fontFamily: theme.typography.body1.fontFamily,\n fontSize: `${theme.typography.body1.fontSize}px`,\n color: theme.palette.text.primary,\n fontSmoothing: \"antialiased\",\n \"::placeholder\": {\n color: theme.palette.text.hint,\n },\n },\n invalid: {\n color: \"#fa755a\",\n iconColor: \"#fa755a\",\n },\n },\n }),\n [theme],\n );\n\n useEffect(\n () => setError(backendPaymentFailureError),\n [backendPaymentFailureError],\n );\n\n const handleChange = ({ error }) => {\n console.error(\"handleChange error\", error);\n setError(get(error, \"message\"));\n };\n\n const handleSubmit = (event) => {\n event.preventDefault();\n\n if (!stripe || !elements) return;\n\n setLoading(true);\n setError();\n\n confirmCardPayment({ stripe, elements, secret })\n .then((result) => {\n setLoading(false);\n onSuccess(result);\n // Show a success message to your customer\n // There's a risk of the customer closing the window before callback\n // execution. Set up a webhook or plugin to listen for the\n // payment_intent.succeeded event that handles any business critical\n // post-payment actions.\n })\n .catch((error) => {\n setLoading(false);\n setError(error.message);\n });\n };\n\n return (\n
\n \n \n {config.translations.return_review_payment_title}\n \n \n\n {!hideSubmit && (\n \n \n {config.translations.return_review_submit_return}\n \n \n )}\n {!hideSubmit && (submitLoading || loading) && (\n \n \n \n )}\n {error && (\n \n \n {error}\n \n \n )}\n \n \n );\n}\n\nexport default CheckoutForm;\n","import Grid from \"@material-ui/core/Grid\";\nimport Button from \"@material-ui/core/Button\";\nimport { config } from \"../../config\";\nimport Typography from \"@material-ui/core/Typography\";\nimport Spinner from \"../../../shared/components/Spinner\";\nimport React from \"react\";\nimport ErrorSnackbar from \"../../components/ErrorSnackbar\";\nimport { makeRootStyles } from \"../../theme/styles\";\nimport MailingAddressForm from \"../ConfirmMailingAddress/MailingAddressForm\";\nimport { getTranslation } from \"../../../shared/modules/config\";\nimport { mergeAddress } from \"../../modules/address\";\nimport { getAddressError } from \"../../../shared/modules/decodeError\";\n\nconst useStyles = makeRootStyles(\n (theme) => ({\n submitContainer: {\n marginTop: theme.spacing(4),\n },\n submitButton: {\n marginBottom: theme.spacing(2),\n },\n }),\n { name: \"N0ReviewSubmitButton\" },\n);\n\nconst SubmitButton = ({\n showContactRetailer,\n isCharge,\n handleSubmit,\n paymentIdPresent,\n loading,\n}) => {\n const classes = useStyles();\n const onClick = () => handleSubmit();\n const customerOwesMoneyAndShouldContactRetailer =\n showContactRetailer && isCharge && !paymentIdPresent;\n return (\n \n \n {config.translations.return_review_submit_return}\n \n {customerOwesMoneyAndShouldContactRetailer && (\n \n {config.translations.return_review_error_contact_retailer}\n \n )}\n \n );\n};\n\nexport const Submit = ({\n submitStatus,\n state,\n errorMessage,\n isErrorSnackbarVisible,\n isCharge,\n showContactRetailer,\n paymentIdPresent,\n handleSubmit,\n loading,\n}) => {\n const classes = useStyles();\n const addressError = getAddressError(submitStatus?.errorDetail);\n\n return (\n \n {isErrorSnackbarVisible && (\n \n \n \n )}\n {addressError && (\n handleSubmit({ fromAddress })}\n disable={addressError.disableFields}\n submitLabel={getTranslation(\"bad_mailing_address_submit\")}\n validateZip={true}\n />\n )}\n {!state.submitted && !addressError && (\n <>\n \n {loading && (\n \n \n \n )}\n \n )}\n \n );\n};\n","import { useQuery, gql } from \"@apollo/client\";\nimport {\n featureFlaggedHook,\n useRequestStatus,\n} from \"../../shared/modules/hooks\";\nimport { memoObjectByKeyValues } from \"../../shared/modules/object\";\nimport { RETURN_CREDIT_METHOD_RESHOP } from \"../../retailer-app/constants/returns\";\nimport { pick } from \"lodash/fp\";\nimport { config } from \"../config\";\n\nconst QUERY = gql`\n query preApproval($preApprovalInput: PreApprovalInput!) {\n preApproval(preApprovalInput: $preApprovalInput) {\n result {\n preApprovalId\n }\n userErrors {\n code\n message\n }\n }\n }\n`;\n\nexport const usePreApproval = featureFlaggedHook(\n config.isReshopEarlyHardApproval,\n { status: {} },\n)((input) => {\n const requirePreApproval =\n input?.chosenRefundMethod === RETURN_CREDIT_METHOD_RESHOP &&\n !!input?.preApprovalReturnUuid &&\n input?.refundCalculated?.cents > 0;\n const saved = useQuery(QUERY, {\n variables: {\n preApprovalInput: pick(\n [\n \"email\",\n \"exchangeItems\",\n \"orderNumber\",\n \"preApprovalReturnUuid\",\n \"refundCalculated\",\n \"reshopOptions\",\n \"returnItems\",\n ],\n input,\n ),\n },\n skip: !requirePreApproval,\n });\n const status = useRequestStatus(saved, \"preApproval.userErrors\");\n const state = saved?.data?.preApproval?.result;\n\n return memoObjectByKeyValues({\n state,\n status,\n });\n});\n","import { isEmpty } from \"lodash\";\nimport { useMemo } from \"react\";\nimport { config } from \"../../config\";\n\nconst useNthFees = (refund, isCharge) =>\n useMemo(() => {\n if (!isEmpty(refund)) {\n const ret = [];\n\n ret.push({\n title: refund.taxesIncluded\n ? config.translations.return_review_taxes_included\n : config.translations.return_review_total_tax,\n type: \"TAX\",\n displayAmount: refund.totalTaxDisplayAmt,\n });\n\n if (refund.priorRefundsDisplayAmt) {\n ret.push({\n title: config.translations.return_review_prior_refunds,\n type: \"OTHERS\",\n displayAmount: refund.priorRefundsDisplayAmt,\n });\n }\n\n if (refund.originalShippingRefundedDisplayAmt) {\n ret.push({\n title: config.translations.return_review_original_purchase_shipping,\n type: \"OTHERS\",\n displayAmount: refund.originalShippingRefundedDisplayAmt,\n });\n }\n\n (refund.feeBreakdown ?? [])\n .filter(\n (i) =>\n !config.shouldHideNarvarSeamlessExchangeValue ||\n (i.description != \"NARVAR_SEAMLESS_EXCHANGE_VALUE\" &&\n i.description != \"NARVAR_SEAMLESS_EXCHANGE_VALUE_TAX\"),\n )\n .forEach((fee) => {\n ret.push({\n title: fee.description,\n type: \"LABEL_FEE\",\n displayAmount: fee.formattedFee,\n });\n });\n\n if (refund.exchangeShippingFeeDisplayName) {\n const sign =\n isCharge &&\n parseFloat(refund.exchangeShippingFeeDisplayPrice.substring(1)) !== 0\n ? \"-\"\n : \"\";\n ret.push({\n title: refund.exchangeShippingFeeDisplayName,\n type: \"OTHERS\",\n displayAmount: sign + refund.exchangeShippingFeeDisplayPrice,\n });\n }\n\n return ret;\n }\n }, [refund, isCharge]);\n\nexport default useNthFees;\n","import { isEmpty } from \"lodash\";\nimport { useMemo } from \"react\";\nimport { config } from \"../../config\";\n\nconst useNthRefund = (refund, isCharge, refundMethod) =>\n useMemo(() => {\n if (!isEmpty(refund)) {\n const currency = refund.currency;\n const total = refund.totalRefundCents;\n const subtotal =\n config.shouldHideNarvarSeamlessExchangeValue && total == 0\n ? 0\n : refund.subtotalRefundCents;\n const ret = {\n displayAllFees: true,\n total: { value: total, currency },\n subtotal: { value: subtotal, currency },\n refundMethod: refundMethod,\n };\n return ret;\n }\n }, [refund, isCharge, refundMethod]);\n\nexport default useNthRefund;\n","import React, { FC } from \"react\";\nimport { ItemDisplay } from \"@narvar/nth-hook-loma\";\nimport {\n ExtendedOrderItem,\n ExtendedReturnItemInput,\n Maybe,\n useLanguage,\n} from \"@narvar/nth-kit-returns-headless\";\nimport { ItemCard } from \"./components\";\nimport { getItemAttrs, getItemProps } from \"./utils/itemSelectorHelper\";\n\ninterface Props {\n orderItems: ExtendedOrderItem[];\n selectedItems?: ExtendedReturnItemInput[];\n itemDisplay?: Maybe;\n locale?: string;\n includeCurrency?: boolean;\n}\n\nexport const Items: FC = ({\n itemDisplay,\n orderItems,\n selectedItems,\n locale,\n includeCurrency,\n}) => {\n const { rawValue: skuLabel } = useLanguage({\n langKey: \"returnsItemListItemInfoskuLabel\",\n });\n const { rawValue: qtyLabel } = useLanguage({\n langKey: \"returnsItemListItemInfoqtyLabel\",\n });\n const { rawValue: colorLabel } = useLanguage({\n langKey: \"returnsItemListItemInfocolorLabel\",\n });\n const { rawValue: sizeLabel } = useLanguage({\n langKey: \"returnsItemListItemInfosizeLabel\",\n });\n const { rawValue: reasonLabel } = useLanguage({\n langKey: \"returnsItemListItemInforeasonLabel\",\n });\n\n return (\n <>\n {selectedItems?.map((item) => {\n const orderItem = orderItems.find(\n (orderItem) =>\n orderItem.sku === item.sku && orderItem.itemId === item.itemId,\n ) as ExtendedOrderItem;\n const selectedReason = orderItem?.availableReasons?.find(\n //eslint-disable-next-line @typescript-eslint/no-explicit-any\n (reason: any) => reason.id === item.reason.id,\n );\n return (\n \n );\n })}\n \n );\n};\n","export const pascalCase = (input = \"\") =>\n input\n .split(/[^a-zA-Z0-9]/)\n .map((s) => s.toLowerCase())\n .map((s) => (s[0] ?? \"\").toUpperCase() + s.substring(1))\n .join(\"\");\n\nexport const camelCase = (input = \"\") => {\n const s = pascalCase(input);\n return (s[0] ?? \"\").toLowerCase() + s.substring(1);\n};\n\nexport const kebabCase = (input = \"\") => {\n const s = pascalCase(input);\n return s.replace(/[A-Z]/g, (d) => \"-\" + d.toLowerCase()).substring(1);\n};\n\nexport const snakeCase = (input = \"\") => {\n const s = pascalCase(input);\n return s.replace(/[A-Z]/g, (d) => \"_\" + d.toLowerCase()).substring(1);\n};\n","import { makeRootStyles } from \"../theme/styles\";\n\nconst useStyles = makeRootStyles(\n () => ({\n reviewSummaryContainer: {\n padding: \"2rem 1.5rem\",\n },\n headerContainer: {\n textAlign: \"center\",\n },\n main: {\n margin: \"2rem 0\",\n },\n itemWrapper: {\n display: \"flex\",\n justifyContent: \"space-between\",\n },\n unorderedList: {\n margin: 0,\n padding: 0,\n listStyleType: \"none\",\n },\n disclaimerText: {\n fontSize: \"12px\",\n lineHeight: \"16px\",\n color: \"#999\",\n margin: \"0.5rem auto\",\n },\n conditionalSections: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"1.5rem\",\n },\n addEmailToReturn: {\n background: \"#ececec\",\n borderRadius: \"10px\",\n padding: \"1rem\",\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"1rem\",\n },\n paragraph: {\n margin: 0,\n },\n savePreferences: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n margin: \"2rem auto 0\",\n maxWidth: \"640px\",\n \"& > label + span\": {\n marginTop: \"1.5rem\",\n },\n },\n preferencesEmail: {\n backgroundColor: \"#fff\",\n maxWidth: \"300px\",\n marginTop: \"0.5rem\",\n },\n }),\n { name: \"N0ReviewSummaryRaw\" },\n);\n\nexport { useStyles };\n","import React, { FC } from \"react\";\nimport Divider from \"@narvar/nth-bit-divider\";\nimport { ExtendedFee, RefundSummary } from \"./types\";\nimport { camelCase } from \"./transformers/string\";\nimport { useStyles } from \"./ReviewSummaryRawStyles\";\nimport {\n CurrencyAmount,\n ExtendedReturnItemInput,\n} from \"@narvar/nth-kit-returns-headless\";\nimport { Language } from \"./components\";\nimport { Currency } from \"./transformers/Currency\";\n\ninterface Props {\n items?: ExtendedReturnItemInput[];\n fees?: ExtendedFee[] | null;\n refund?: RefundSummary;\n locale?: string;\n includeCurrency?: boolean;\n}\n\nexport const Total: FC = (props) => {\n const { items, fees, refund, locale, includeCurrency } = props;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const styles: any = useStyles();\n\n const subtotal: CurrencyAmount =\n refund?.subtotal ??\n // fallback to sum all returning line item values\n (items ?? []).reduce(\n (ret, item) => {\n const itemPrice = item.price?.value ?? 0;\n const exchangePrice = item.exchangeTo?.price?.value ?? 0;\n ret.value += (itemPrice - exchangePrice) * item.quantity;\n return ret;\n },\n { value: 0, currency: items?.[0]?.price?.currency ?? \"USD\" },\n );\n\n const defaultLabelFee: ExtendedFee = {\n type: \"LABEL_FEE\",\n amount: {\n value: 0,\n currency: fees?.[0]?.amount?.currency ?? \"USD\",\n },\n };\n const labelFee: ExtendedFee =\n fees?.find((f) => f.type === \"LABEL_FEE\") ?? defaultLabelFee;\n\n const displayFees: ExtendedFee[] =\n refund?.displayAllFees && fees && fees.length > 0 ? fees : [labelFee];\n\n const total: CurrencyAmount =\n refund?.total ??\n // fallback to subtotal - fees\n displayFees.reduce(\n (ret, fee) => ({\n ...ret,\n value: ret.value - fee.amount.value,\n }),\n subtotal,\n );\n\n return (\n
    \n {!refund?.hideSubtotal && (\n
  • \n
    \n \n \n \n \n
    \n \n
  • \n )}\n {displayFees.map((fee, i) => (\n
  • \n
    \n \n {fee.title ?? (\n \n )}\n \n {fee.displayAmount ?? (\n \n )}\n
    \n \n
  • \n ))}\n
  • \n
    \n \n \n \n \n \n \n \n \n \n \n
    \n {props.refund?.refundMethod && (\n
    \n \n
    \n )}\n
    \n \n
    \n
  • \n
\n );\n};\n","import { makeRootStyles } from \"../../theme/styles\";\n\nconst useStyles = makeRootStyles(\n {\n wrapper: {\n marginTop: \"2rem\",\n display: \"flex\",\n flexDirection: \"column\",\n alignSelf: \"stretch\",\n alignItems: \"center\",\n justifyContent: \"center\",\n textAlign: \"center\",\n padding: \"1.5rem\",\n backgroundColor: \"#f7f7f7\",\n border: \"1px solid #cccccc\",\n gap: \"1rem\",\n },\n formField: {\n width: \"100%\",\n maxWidth: \"312px\",\n textAlign: \"left\",\n },\n disclaimer: {\n fontStyle: \"italic\",\n color: \"#999999\",\n },\n errorMessage: {\n paddingTop: \"0.5rem\",\n },\n },\n { name: \"N0ReshopOptIn\" },\n);\n\nexport { useStyles };\n","import { MediumHeader } from \"@narvar/nth-bit-header\";\nimport Checkbox from \"@narvar/nth-block-checkbox\";\nimport { useTheme, withThemeProvider } from \"@narvar/nth-hook-theme\";\nimport TextInput, { SupportedInputType } from \"@narvar/nth-block-text-input\";\nimport React, { ChangeEvent, FC } from \"react\";\n\nimport { ReshopOptionsProps } from \"./types\";\nimport { useStyles } from \"./ReshopOptInStyles\";\nimport { Language } from \"../components\";\nimport { useLanguage } from \"@narvar/nth-kit-returns-headless\";\n\nconst ReshopOptIn: FC = ({ value, error, onChange }) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const styles: any = useStyles();\n const {\n panelcontainerNoneNone,\n captiontextErrorNone,\n captiontextDefaultNone,\n } = useTheme();\n\n const { subscribe = false, phone = \"\" } = value ?? {};\n const phoneLabel = useLanguage({\n langKey: \"returnsReviewReshopPhoneInputLabel\",\n }).value;\n\n const handleSubscribeChange = (event: ChangeEvent) => {\n onChange?.({\n subscribe: event.target.checked,\n phone,\n });\n };\n const handlePhoneChange = (event: ChangeEvent) => {\n onChange?.({\n subscribe,\n phone: event.target.value,\n });\n };\n\n return (\n \n \n \n \n\n \n \n \n \n \n {subscribe && (\n
\n \n {error && (\n
\n {error}\n
\n )}\n
\n )}\n
\n \n
\n \n );\n};\n\nexport default withThemeProvider(ReshopOptIn, {\n themeTokens: [\n \"panelcontainerNoneNone\",\n \"captiontextErrorNone\",\n \"captiontextDefaultNone\",\n ],\n});\n","import React, { FC } from \"react\";\nimport { ItemDisplay } from \"@narvar/nth-hook-loma\";\nimport { getItemAttrs, getItemProps } from \"./utils/itemSelectorHelper\";\nimport { ItemCard } from \"./components\";\nimport {\n ExtendedOrderItem,\n Maybe,\n useLanguage,\n} from \"@narvar/nth-kit-returns-headless\";\n\ninterface Props {\n shopNowItems: ExtendedOrderItem[];\n itemDisplay?: Maybe;\n locale?: string;\n includeCurrency?: boolean;\n}\n\nexport const ShopNowItems: FC = ({\n itemDisplay,\n shopNowItems,\n locale,\n includeCurrency,\n}) => {\n const { rawValue: skuLabel } = useLanguage({\n langKey: \"returnsItemListItemInfoskuLabel\",\n });\n const { rawValue: qtyLabel } = useLanguage({\n langKey: \"returnsItemListItemInfoqtyLabel\",\n });\n const { rawValue: colorLabel } = useLanguage({\n langKey: \"returnsItemListItemInfocolorLabel\",\n });\n const { rawValue: sizeLabel } = useLanguage({\n langKey: \"returnsItemListItemInfosizeLabel\",\n });\n\n return (\n <>\n {shopNowItems.map((item) => {\n return (\n \n );\n })}\n \n );\n};\n","import React, { ChangeEvent, FC, useState } from \"react\";\nimport { MediumHeader, SemibigHeader } from \"@narvar/nth-bit-header\";\nimport Paragraph from \"@narvar/nth-bit-paragraph\";\nimport Divider from \"@narvar/nth-bit-divider\";\nimport TextInput, { SupportedInputType } from \"@narvar/nth-block-text-input\";\nimport { useSettings, withSettingsProvider } from \"@narvar/nth-hook-settings\";\nimport { useTheme, withThemeProvider } from \"@narvar/nth-hook-theme\";\nimport { withTranslationsProvider } from \"@narvar/nth-hook-translations\";\nimport { Items } from \"./Items\";\nimport { Total } from \"./Total\";\nimport {\n ErrorBanner,\n Language,\n LocationCard,\n Spinner,\n StickyFooter,\n Footer,\n ItemCardSkeleton,\n LineItemSkeleton,\n Backdrop,\n} from \"./components\";\nimport { ReviewSummaryRawProps } from \"./types\";\nimport Checkbox from \"@narvar/nth-block-checkbox\";\nimport { EMAIL_ADDRESS_PATTERN, validatePattern } from \"./utils\";\nimport ReshopOptIn from \"./ReshopOptIn/ReshopOptIn\";\nimport { ReshopOptions } from \"./ReshopOptIn/types\";\nimport { ShopNowItems } from \"./ShopNowItems\";\nimport { useStyles } from \"./ReviewSummaryRawStyles\";\nimport {\n FooterButtonType,\n ReturnPayload,\n StickyFooterOnShowEvent,\n useReturnsConfig,\n useLanguage,\n} from \"@narvar/nth-kit-returns-headless\";\n// import ClaimAttestation from \"./components/ClaimAttestation/ClaimAttestation\";\n\nconst HIPAA_CSR_ROLES = [\"csrHipaa\", \"csrAdminHipaa\"];\n\nexport const checkIfEmailFieldIsValid = (\n email = \"\",\n options?: {\n canAddCustomerEmail?: boolean;\n canUpdateCustomerEmailHipaa?: boolean;\n hasAssociatedEmail?: boolean;\n },\n) => {\n const {\n canAddCustomerEmail,\n canUpdateCustomerEmailHipaa,\n hasAssociatedEmail,\n } = options || {};\n const isValidEmail = validatePattern(email, EMAIL_ADDRESS_PATTERN);\n\n if (!canAddCustomerEmail && !canUpdateCustomerEmailHipaa) {\n // The check for email state validity is true if the user can't update the email in any way, therefore there is no email field to validate.\n return true;\n }\n\n if (canAddCustomerEmail && isValidEmail && !canUpdateCustomerEmailHipaa) {\n // The shopify user canAddCustomerEmail, and the entered email is valid\n return true;\n }\n\n if (\n canUpdateCustomerEmailHipaa &&\n !hasAssociatedEmail &&\n isValidEmail &&\n !canAddCustomerEmail\n ) {\n // The HIPAA user canUpdateCustomerEmailHipaa, the order DOES NOT have an email to begin with, and the entered email is valid.\n return true;\n }\n\n if (\n canUpdateCustomerEmailHipaa &&\n hasAssociatedEmail &&\n (isValidEmail || email === \"\")\n ) {\n // The HIPAA user canUpdateCustomerEmailHipaa, the order has an email to begin with, and the newly entered email is valid OR the email field is empty.\n return true;\n }\n\n return false;\n};\n\nconst ReviewSummaryContent: FC = ({\n canAddCustomerEmail,\n canUpdateCustomerEmailHipaa,\n locale,\n includeCurrency,\n orderItems,\n selectedItems,\n shopNowItems,\n dropOffLocation,\n fees,\n refund,\n error,\n hasAssociatedEmail,\n loading,\n mailTo,\n renderAddOn,\n addOnsPostCartSummary,\n onEmailChange,\n policyChecked,\n policyLabel,\n onPolicyChange,\n type,\n preferencesStatus,\n savePreferences,\n onSavePreferencesChange,\n reshopOptions,\n onReshopOptionsChange,\n}) => {\n const { itemDisplay } = useSettings();\n const { bodytextDefaultNone } = useTheme();\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const styles: any = useStyles();\n\n const returnsReviewAddEmailInputLabel = useLanguage({\n langKey: \"returnsReviewAddEmailInputLabel\",\n asString: true,\n }).value;\n\n if (loading) {\n return (\n
\n \n \n \n \n \n \n \n \n \n
\n );\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const hasExchange = selectedItems.some((item: any) => item.exchangeTo);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const hasReturn = selectedItems.some((item: any) => !item.exchangeTo);\n\n const handlePolicyChange = (event: ChangeEvent) => {\n onPolicyChange?.(Boolean(event.target.checked));\n };\n\n const handleInputChange = (event: ChangeEvent) => {\n onEmailChange?.(event.target.value);\n };\n const handleSavePreferencesChange = (\n event: ChangeEvent,\n ) => {\n onSavePreferencesChange?.(Boolean(event.target.checked));\n };\n\n return (\n
\n
\n {error && (\n
\n \n {React.isValidElement(error) ? (\n error\n ) : (\n \n )}\n \n
\n )}\n \n \n \n \n \n \n
\n
\n \n \n \n \n \n {shopNowItems?.length && (\n <>\n \n \n \n \n \n \n )}\n\n {React.isValidElement(addOnsPostCartSummary)\n ? addOnsPostCartSummary\n : typeof addOnsPostCartSummary === \"function\"\n ? addOnsPostCartSummary()\n : null}\n\n \n \n
\n {dropOffLocation && (\n
\n \n \n \n \n \n
\n )}\n
\n {canUpdateCustomerEmailHipaa && (\n
\n \n \n \n

\n \n

\n \n
\n )}\n {React.isValidElement(renderAddOn)\n ? renderAddOn\n : typeof renderAddOn === \"function\"\n ? renderAddOn()\n : null}\n {policyLabel && (\n \n {policyLabel}\n \n )}\n {/* TODO: confirm with design, do we need to show the claim attestation? */}\n {/* {hasClaim && (\n \n )} */}\n {preferencesStatus && !preferencesStatus.profileStatus && (\n
\n \n \n \n {canAddCustomerEmail && (\n <>\n \n \n \n )}\n
\n )}\n {reshopOptions && (\n \n )}\n
\n
\n );\n};\n\nconst ReviewSummaryRawC = ({\n locale,\n includeCurrency,\n orderItems,\n selectedItems,\n shopNowItems,\n hasClaim,\n shopName,\n isCertified,\n onChangeCertified,\n signature,\n onChangeSignature,\n fees,\n refund,\n dropOffLocation,\n hasAssociatedEmail,\n error,\n loading,\n disabled,\n allowRetry,\n submitting,\n returnCart,\n mailTo,\n onBack,\n onSubmit,\n renderAddOn,\n addOnsPostCartSummary,\n policyChecked,\n policyLabel,\n preferencesStatus,\n savePreferences,\n onChange,\n progressiveStep,\n activeStep,\n userRole,\n reshopOptions,\n}: ReviewSummaryRawProps) => {\n const { isHipaaCompliant } = useReturnsConfig();\n const { bodytextDefaultNone } = useTheme();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const styles: any = useStyles();\n\n // Shopify customers without an associated email and who can save preferences.\n const canAddCustomerEmail =\n !isHipaaCompliant && !hasAssociatedEmail && savePreferences;\n\n // Using isHipaaCompliant below is repetitive, but is an extra safety check.\n // Hipaa CSRs can update email\n const canUpdateCustomerEmailHipaa =\n isHipaaCompliant && HIPAA_CSR_ROLES.includes(userRole ?? \"\");\n\n const backLabel = useLanguage({\n langKey: \"returnsActionsBack\",\n asString: true,\n }).value;\n const submitLabel = useLanguage({\n langKey: \"returnsActionsSubmit\",\n asString: true,\n }).value;\n const [errorPosition, setErrorPosition] = useState<\"inline\" | \"footer\">(\n \"inline\",\n );\n\n const handleFooterEvent = (event: ReturnPayload) => {\n if (event.value === \"back\") {\n onBack?.({\n value: {},\n area: \"returnReview\",\n event: \"back\",\n });\n }\n if (event.value === \"submit\") {\n onSubmit?.({\n value: {},\n area: \"returnReview\",\n event: \"submit\",\n });\n }\n };\n\n const handlePolicyChange = (event: boolean) => {\n onChange?.({\n area: \"returnReview\",\n event: \"change\",\n value: { policyChecked: event },\n subComponent: \"policyCheckbox\",\n });\n };\n\n const handleEmailChange = (event: string) => {\n onChange?.({\n area: \"returnReview\",\n event: \"change\",\n value: { mailTo: event },\n subComponent: \"mailToInput\",\n });\n };\n\n const handleSavePreferencesChange = (event: boolean) => {\n onChange?.({\n area: \"returnReview\",\n event: \"change\",\n value: { savePreferences: event },\n subComponent: \"savePreferences\",\n });\n };\n\n const handleReshopOptionsChange = (event: ReshopOptions) => {\n onChange?.({\n area: \"returnReview\",\n event: \"change\",\n value: { reshopOptions: event },\n subComponent: \"reshopOptions\",\n });\n };\n\n const handleOnFooterShow = (event: StickyFooterOnShowEvent) => {\n setErrorPosition(\n event.inView && event.display === \"inline\" ? \"footer\" : \"inline\",\n );\n };\n\n const isEmailFieldStateValid = checkIfEmailFieldIsValid(mailTo, {\n canAddCustomerEmail,\n canUpdateCustomerEmailHipaa,\n hasAssociatedEmail,\n });\n\n const submitEnabled = [\n isEmailFieldStateValid,\n policyLabel ? policyChecked : true,\n !loading,\n !submitting,\n !error || allowRetry,\n !disabled,\n ].every(Boolean);\n\n return (\n <>\n \n \n \n {!loading && !submitting && returnCart?.pudoOption && (\n \n \n \n {React.isValidElement(error) ? (\n error\n ) : (\n \n )}\n \n \n )\n }\n />\n \n )}\n {submitting && (\n \n \n \n \n \n \n )}\n \n );\n};\n\nexport const ReviewSummaryRaw = withSettingsProvider(\n withTranslationsProvider(\n withThemeProvider(ReviewSummaryRawC, {\n themeTokens: [\n \"bodytextDefaultNone\",\n \"panelcontainerNoneNone\",\n \"panelcontainerNoneActive\",\n \"panelcontainerNoneHover\",\n ],\n }),\n { translationKeys: [\"returnsActionsBack\", \"returnsActionsSubmit\"] },\n ),\n {\n settingsRequested: `\n itemDisplay {\n additionalItemAttributeConfig {\n attribute\n value {\n concatKey\n concatPosition\n label\n transform\n }\n }\n itemAttributeConfig\n }\n `,\n },\n);\n","import {\n PudoOption,\n PudoOptionInput,\n SelectedPudoOption,\n} from \"@narvar/nth-kit-returns-headless\";\n\nexport const getPudoMethodName = (\n pudoOption?: PudoOption | SelectedPudoOption | PudoOptionInput | null,\n) => {\n if (!pudoOption) return \"\";\n\n const { pudoActionType, pudoActionTypeDetails, pudoProvider } = pudoOption;\n if (pudoActionType === \"DROP_OFF\") {\n if (pudoActionTypeDetails === \"LABEL\") {\n if (pudoProvider?.type === \"CARRIER\") return \"mail\";\n if (pudoProvider?.type === \"CONCIERGE\") return \"concierge\";\n if (pudoProvider?.type === \"STORE\") return \"store\";\n return \"self\";\n }\n if (pudoActionTypeDetails === \"PRINTERLESS\") return \"printerless_mail\";\n if (pudoActionTypeDetails === \"BOXLESS\") return \"boxless\";\n } else if (pudoActionType === \"PICK_UP\") {\n if (pudoProvider?.type === \"COURIER\") return \"pickup\";\n }\n return \"\";\n};\n\nexport const generatePudoId = (\n pudoOption?: PudoOption | SelectedPudoOption | PudoOptionInput | null,\n) => {\n if (!pudoOption) return \"\";\n const { pudoActionType, pudoActionTypeDetails, pudoProvider, serviceType } =\n pudoOption;\n return [\n pudoActionType,\n pudoActionTypeDetails,\n pudoProvider?.type,\n pudoProvider?.moniker,\n serviceType,\n pudoProvider?.carrierId,\n ].join(\"-\");\n};\n","import React, { FC, useEffect, useRef, useState } from \"react\";\nimport { useMutation } from \"react-query\";\nimport { ReviewSummaryPayload, ReviewSummaryProps } from \"./types\";\nimport { ReviewSummaryRaw } from \"./ReviewSummaryRaw\";\nimport { getPudoMethodName } from \"./transformers/pudoMethod\";\nimport useCurrencyConfig from \"./hooks/useCurrencyConfig\";\nimport { useSettings, withSettingsProvider } from \"@narvar/nth-hook-settings\";\nimport {\n useHipaaSubmitReturnCartMutation,\n useSubmitReturnCartMutation,\n CommonEvent,\n useReturns,\n useReturnsConfig,\n useLanguage,\n} from \"@narvar/nth-kit-returns-headless\";\nimport { setPudoOption } from \"./utils/rootElmHelpers\";\n\nconst ReviewSummaryC: FC = ({\n onSubmit,\n onBack,\n progressiveStep,\n activeStep,\n allowRetry,\n}) => {\n const [policyChecked, setPolicyChecked] = useState(false);\n const [mailTo, setMailTo] = useState(\"\");\n\n const {\n orderData,\n selectedItems,\n selectedPudoOption,\n client,\n setReturnCart,\n returnCart,\n userRole,\n } = useReturns();\n const { locale } = useCurrencyConfig();\n\n const { isHipaaCompliant } = useReturnsConfig();\n\n const { value: policyLabelText } = useLanguage({\n langKey: \"returnsReviewPolicyCheckbox\",\n });\n\n const { reviewPolicy } = useSettings();\n\n const { enableReviewPolicy, reviewPolicyText } = reviewPolicy || {};\n\n const policyLabel: string = reviewPolicyText || policyLabelText || \"\";\n\n const {\n mutate: setPudoOptionMutation,\n isLoading: loading,\n error: loadingError,\n } = useMutation({\n mutationFn: async () => {\n const data = await setPudoOption({\n client,\n isHipaaCompliant,\n selectedPudoOption,\n returnCart,\n });\n setReturnCart(data.setPudoOption);\n },\n });\n const setPudoOptionMutationRef = useRef(setPudoOptionMutation);\n\n useEffect(() => {\n setPudoOptionMutationRef.current();\n }, []);\n\n const submitReturnCardMutationEffect = isHipaaCompliant\n ? useHipaaSubmitReturnCartMutation\n : useSubmitReturnCartMutation;\n\n const [\n submitReturnCartMutation,\n { error: submitError, loading: submitting },\n ] = submitReturnCardMutationEffect({\n client,\n variables: {\n returnCartId: returnCart?.id || \"\",\n mailTo,\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onError: (err: any) => {\n if (err) console.log(err);\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onCompleted: ({ submitReturnCart: submittedReturn }: any) => {\n onSubmit?.({\n value: {\n submittedReturn,\n },\n area: \"returnReview\",\n event: \"submit\",\n });\n },\n });\n\n const handleBack = () => {\n onBack?.({\n value: {},\n area: \"returnReview\",\n event: \"back\",\n });\n };\n\n const handleSubmit = () => {\n void submitReturnCartMutation();\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const handleChange: CommonEvent = (event: any) => {\n if (event.subComponent === \"policyCheckbox\") {\n setPolicyChecked(event?.value?.policyChecked || false);\n }\n if (event.subComponent === \"mailToInput\") {\n setMailTo(event?.value?.mailTo || \"\");\n }\n };\n\n const policy: {\n policyLabel: string;\n policyChecked: boolean;\n } | null =\n policyLabel && enableReviewPolicy\n ? {\n policyLabel,\n policyChecked,\n }\n : null;\n\n return (\n \n );\n};\n\nconst ReviewSummary = withSettingsProvider(ReviewSummaryC, {\n settingsRequested: `\n reviewPolicy {\n reviewPolicyText\n enableReviewPolicy\n }\n `,\n});\n\nexport { ReviewSummary, ReviewSummaryRaw };\n","import { ApolloClient, NormalizedCacheObject } from \"@apollo/client\";\nimport { PudoDisplay } from \"@narvar/nth-hook-loma\";\nimport {\n PudoOption,\n PudoOptionInput,\n ReturnCart,\n SetPudoOptionMutation,\n SetPudoOptionMutationVariables,\n SetPudoOptionDocument,\n HipaaSetPudoOptionMutation,\n HipaaSetPudoOptionMutationVariables,\n HipaaSetPudoOptionDocument,\n} from \"@narvar/nth-kit-returns-headless\";\n\nimport { generatePudoId } from \"../transformers/pudoMethod\";\nimport { ExtendedPudoOption } from \"@narvar/nth-kit-returns-headless\";\n\nexport const isDisabled = (\n selectedCategory?: PudoOptionInput | null,\n pudoReference?: PudoOption,\n isCategoryConfirmed?: boolean,\n multiLabelsEnabled?: boolean,\n labelsCount?: number,\n): boolean => {\n const hasLocations =\n pudoReference?.dropOff?.sortedLocations?.locationsList &&\n pudoReference?.dropOff?.sortedLocations?.locationsList.length > 0;\n const hasPickup = pudoReference?.pickup;\n\n const noCategorySelected = !selectedCategory;\n const hasLocationsAndNoLocationSelected =\n hasLocations &&\n !selectedCategory?.selectedDropOff?.selectedLocation &&\n !isCategoryConfirmed;\n const hasPickupAndNoTimeSlotSelected =\n hasPickup && !selectedCategory?.selectedPickup?.selectedTimeSlot;\n const noLabelCount =\n isCategoryConfirmed && multiLabelsEnabled && !labelsCount;\n\n return [\n noCategorySelected,\n hasLocationsAndNoLocationSelected,\n hasPickupAndNoTimeSlotSelected,\n noLabelCount,\n ].some(Boolean);\n};\n\nexport const setPudoOption = async ({\n client,\n isHipaaCompliant = false,\n selectedPudoOption,\n returnCart,\n}: {\n client?: ApolloClient;\n isHipaaCompliant?: boolean;\n returnCart?: ReturnCart;\n selectedPudoOption?: PudoOptionInput;\n}) => {\n if (!client) throw new Error(\"Client not initialized\");\n if (!returnCart?.id || !selectedPudoOption)\n throw new Error(\"Unable to set PUDO option: Missing required parameters\");\n\n let mutation;\n\n if (isHipaaCompliant) {\n mutation = await client.mutate<\n HipaaSetPudoOptionMutation,\n HipaaSetPudoOptionMutationVariables\n >({\n mutation: HipaaSetPudoOptionDocument,\n variables: {\n returnCartId: returnCart.id,\n pudoOption: selectedPudoOption,\n },\n });\n } else {\n mutation = await client.mutate<\n SetPudoOptionMutation,\n SetPudoOptionMutationVariables\n >({\n mutation: SetPudoOptionDocument,\n variables: {\n returnCartId: returnCart.id,\n pudoOption: selectedPudoOption,\n },\n });\n }\n\n const { data } = mutation;\n if (!data)\n throw new Error(\"An error has occurred while setting the PUDO option\");\n return data;\n};\n\n// Returns a sorted array of pudoOptions that have been augmented with a sort key.\nexport const sortPudoOptions = (\n pudoOptions?: ExtendedPudoOption[],\n sortOrder?: PudoDisplay[\"pudoOptionSort\"],\n) => {\n if (!pudoOptions || !Array.isArray(sortOrder) || sortOrder.length === 0) {\n return pudoOptions;\n }\n\n return pudoOptions\n .map((option) => {\n const id = generatePudoId(option);\n\n const sort = sortOrder.indexOf(id) >= 0 ? sortOrder.indexOf(id) : 100;\n\n return {\n ...option,\n sort,\n };\n })\n .sort((a, b) => a.sort - b.sort);\n};\n","import { useState } from \"react\";\n\nexport interface ClaimAttestationProps {\n isCertified: boolean;\n onChangeCertified: (value: boolean) => void;\n signature: string;\n onChangeSignature: (value: string) => void;\n}\n\nconst useClaimAttestation = (): ClaimAttestationProps => {\n const [isCertified, onChangeCertified] = useState(false);\n const [signature, onChangeSignature] = useState(\"\");\n\n return {\n isCertified,\n onChangeCertified,\n signature,\n onChangeSignature,\n };\n};\n\nexport default useClaimAttestation;\n","import React, { useState, useEffect, useMemo, useCallback } from \"react\";\nimport { get, sumBy, isEmpty, merge, isPlainObject, includes } from \"lodash\";\nimport { isNil, last, unset } from \"lodash/fp\";\n\nimport { makeRootStyles } from \"../../theme/styles\";\nimport {\n METHOD_KEEP_THE_ITEM,\n RETURN_CREDIT_METHOD_REFUND,\n RETURN_CREDIT_METHOD_REPLACEMENT,\n RETURN_CREDIT_METHOD_RESHOP,\n} from \"../../../retailer-app/constants/returns\";\nimport Spinner from \"../../../shared/components/Spinner\";\nimport { config } from \"../../config\";\nimport {\n CONFIRMATION_STEP,\n REVIEW_STEP,\n useReturnStepIsActive,\n useReturnStepsActions,\n useReturnStepsState,\n} from \"../../contexts/returnSteps\";\nimport { useSubmitReturn } from \"../../data/submitReturn\";\nimport { useCalculateRefund } from \"../../data/calculateRefund\";\nimport { createCarouselItemKey, buildItemsByType } from \"../../modules/items\";\nimport locale from \"../../../shared/modules/lang\";\nimport { redirectToCheckout } from \"../../../shared/modules/frame\";\nimport MailingAddressForm from \"../ConfirmMailingAddress/MailingAddressForm\";\nimport Details from \"./Details\";\nimport Item from \"./Item\";\nimport Refund from \"./Refund\";\nimport CheckoutForm, { confirmCardPayment } from \"./CheckoutForm\";\nimport { Submit } from \"./Submit\";\nimport { isValidHttpUrl } from \"../../../shared/modules/string\";\nimport { mergeAddress } from \"../../modules/address\";\nimport {\n ignoreEmpty,\n omitDeep,\n useMergeRequestStatus,\n} from \"../../../shared/modules/object\";\nimport { isLocalStorageEnabled } from \"../../../shared/modules/localStorage\";\nimport {\n getAddressError,\n getPaymentNewClientSecret,\n getReshopError,\n} from \"../../../shared/modules/decodeError\";\nimport { calculateReturnMetrics, useEmitMetrics } from \"../../data/emitMetric\";\nimport {\n convertFromDatadogMetrics,\n countingEvent,\n SAVE_PREFERENCES_CHECKED_EVENT,\n SUBMIT_RETURN_SUCCESS_EVENT,\n useAbTesting,\n} from \"../../data/abTesting\";\nimport { useTypeForm } from \"../../contexts/typeForm\";\nimport { useNthReturnsActions } from \"../../contexts/nthContext\";\nimport { useStripeComponents } from \"../../contexts/StripeProvider\";\nimport { getTranslation } from \"../../../shared/modules/config\";\nimport ErrorSnackbar from \"../../components/ErrorSnackbar\";\nimport errorNotifier from \"../../../shared/modules/error-notifier\";\nimport {\n isPreferredMethod,\n toReturnMethodPreference,\n useConsumerPreferences,\n} from \"../../data/consumerPreferences\";\nimport titan from \"../../../shared/modules/titan\";\nimport useConsumerSettings from \"../../hooks/useConsumerSettings\";\nimport { usePreApproval } from \"../../data/preApproval\";\nimport { useUuid } from \"../../../shared/modules/localId\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Typography from \"@material-ui/core/Typography\";\nimport useNthFees from \"./useNthFees\";\nimport useNthRefund from \"./useNthRefund\";\nimport { ReviewSummaryRaw } from \"../../ReviewSummary\";\nimport useClaims from \"../../hooks/useClaims\";\nimport useClaimAttestation from \"../../ReviewSummary/components/ClaimAttestation/useClaimAttestation\";\nconst { isStripeEnabled, isRefundAutomationEnabled, isPaymentFlowEnabled } =\n config;\n\nconst useStyles = makeRootStyles(\n (theme) => ({\n root: {\n marginTop: theme.spacing(4),\n paddingBottom: theme.spacing(4),\n },\n title: {\n marginBottom: theme.spacing(2),\n },\n submitContainer: {\n marginTop: theme.spacing(4),\n },\n submitButton: {\n marginBottom: theme.spacing(2),\n },\n loadingContainer: {\n marginBottom: theme.spacing(8),\n },\n returnItemsSectionHeader: {\n backgroundColor: theme.palette.action.selected,\n padding: theme.spacing(1),\n },\n }),\n { name: \"N0Review\" },\n);\n\nconst Review = ({ orderFetchData, draftReturnUuid }) => {\n const classes = useStyles();\n const actions = useReturnStepsActions();\n const state = useReturnStepsState();\n const { submitReturn, submitStatus } = useSubmitReturn();\n const { emitMetrics } = useEmitMetrics();\n const abTesting = useAbTesting();\n const claimAttestationProps = useClaimAttestation();\n const { isCertified, signature } = claimAttestationProps;\n const {\n hasClaimItems,\n isClaimReplacement,\n decorateClaimsSubmitPayload,\n transformClaimSelectedItemsForNth,\n } = useClaims();\n\n const { order, returnReasonsById = {} } = orderFetchData;\n const { itemsById } = order;\n\n const { exchangeItems, returnItems } = useMemo(\n () =>\n decorateClaimsSubmitPayload(\n buildItemsByType(state.items, itemsById, returnReasonsById),\n ),\n [itemsById, returnReasonsById, state.items, decorateClaimsSubmitPayload],\n );\n\n const [isErrorSnackbarVisible, setErrorSnackbarVisibility] = useState(false);\n const [capturingPayment, setCapturingPayment] = useState(false);\n const [errorMessage, setErrorMessage] = useState(\n config.translations.return_review_submit_error,\n );\n const [paymentError, setPaymentError] = useState();\n const [succeededPaymentIntentId, setSucceededPaymentIntentId] = useState();\n const selectedReturnMethod = state.selectedReturnMethod;\n const keepTheItemMethod = selectedReturnMethod.id === METHOD_KEEP_THE_ITEM;\n const chosenRefundMethod = isClaimReplacement\n ? state.selectedReturnCreditMethod.originalRefundMethod\n : state?.selectedReturnCreditMethod?.id;\n\n const calculateRefundPayload = {\n exchangeItems: exchangeItems.map(unset(\"returnItem.pictures\")),\n returnItems: returnItems.map(unset(\"pictures\")),\n shopifyOrderId: order.shopifyOrderId,\n draftReturnUuid,\n presentmentCurrency: order.presentmentCurrency,\n shippingPrice: selectedReturnMethod.price,\n shippingMethod: selectedReturnMethod.id,\n carrierServiceName: selectedReturnMethod.carrierService,\n orderNumber: state.orderNumber,\n email: state.email,\n locale,\n chosenRefundMethod,\n fromAddress: ignoreEmpty(state.fromAddress),\n csid: state.csid,\n source: \"review\",\n };\n const {\n refund,\n queryStatus: reviewStatus,\n refetch,\n } = useCalculateRefund(calculateRefundPayload);\n\n const uuid = useUuid();\n const preApprovalReturnUuid =\n config.isReshopEarlyHardApproval &&\n (chosenRefundMethod || refund.chosenRefundMethod) ===\n RETURN_CREDIT_METHOD_RESHOP\n ? uuid\n : undefined;\n const preApprovalHook = usePreApproval({\n ...calculateRefundPayload,\n preApprovalReturnUuid,\n refundCalculated: {\n currency: order.presentmentCurrency,\n cents: state?.selectedReturnCreditMethod?.newPriceCents,\n },\n });\n\n const queryStatus = useMergeRequestStatus(\n reviewStatus,\n preApprovalHook.status,\n );\n\n useEffect(() => {\n if (!queryStatus.loading && preApprovalHook.status.error) {\n setErrorMessage(preApprovalHook.status.error.message);\n setErrorSnackbarVisibility(true);\n\n const available = state.availableReturnCreditMethods.filter(\n (v) => v.id !== chosenRefundMethod,\n );\n const fallback =\n available.find((v) => v.id === RETURN_CREDIT_METHOD_REFUND) ??\n last(available);\n actions.setFallbackReturnCreditMethod(fallback);\n }\n }, [queryStatus.loading, preApprovalHook.status.error]);\n\n const refundMethods = refund.refundMethodsAvailable;\n\n // In case a of failure during backend processing of payment, the backend issues a new payment intent\n // to allow the consumer to restart the process.\n const [\n currentPaymentIntentClientSecret,\n setCurrentPaymentIntentClientSecret,\n ] = useState();\n useEffect(() => {\n setCurrentPaymentIntentClientSecret(refund.paymentClientSecret);\n }, [refund]);\n const setNewPaymentClientSecretFromError = (status) => {\n const newClientSecret = getPaymentNewClientSecret(status?.errorDetail);\n if (newClientSecret) {\n setCurrentPaymentIntentClientSecret(newClientSecret);\n setSucceededPaymentIntentId(null);\n }\n };\n\n const loadingOrCheckoutRedirect =\n submitStatus.loading ||\n (isPaymentFlowEnabled &&\n submitStatus.data &&\n isValidHttpUrl(submitStatus.data));\n\n useEffect(() => {\n if (submitStatus.error) {\n setNewPaymentClientSecretFromError(submitStatus);\n const isReshopError = !!getReshopError(submitStatus.errorDetail);\n setErrorMessage(\n isReshopError\n ? config.translations.return_review_submit_error_reshop\n : get(\n submitStatus,\n \"error\",\n config.translations.return_review_submit_error,\n ),\n );\n return setErrorSnackbarVisibility(true);\n } else {\n setErrorMessage();\n setErrorSnackbarVisibility(false);\n }\n if (submitStatus.loading) return;\n if (!submitStatus.data) return;\n\n if (isPaymentFlowEnabled) {\n const checkoutUrl = submitStatus.data;\n if (isValidHttpUrl(checkoutUrl)) {\n if (isLocalStorageEnabled) {\n console.warn(\n \"nv_shop_now_checkout\",\n window.localStorage.getItem(\"nv_shop_now_checkout\"),\n );\n if (!window.localStorage.getItem(\"nv_shop_now_checkout\")) {\n console.warn(\"setting\", checkoutUrl);\n window.localStorage.setItem(\"nv_shop_now_checkout\", checkoutUrl);\n console.warn(\n \"set\",\n window.localStorage.getItem(\"nv_shop_now_checkout\"),\n );\n }\n }\n return redirectToCheckout(checkoutUrl);\n }\n }\n\n actions.setSubmitSuccess({\n submitResult: submitStatus.data,\n refundTotal: refund.totalRefundCents,\n });\n actions.goToStep(CONFIRMATION_STEP);\n }, [actions, submitStatus]);\n\n const ItemsToReceive = ({ state, exchangeItems = [] }) => {\n return (\n \n {state.items && state.items.length && exchangeItems.length > 0 && (\n \n {config.translations.return_review_receiving_items}\n \n )}\n {state.items\n .filter(\n (item) =>\n item.returnReason &&\n returnReasonsById[item.returnReason] &&\n item.type === \"exchange\",\n )\n .map((item) => {\n const details = itemsById[item.id];\n\n const keepTheItem =\n !keepTheItemMethod && state.keepItemIds.includes(item.id);\n\n return (\n \n );\n })}\n \n );\n };\n\n const ItemsForReturn = ({ state, exchangeItems = [] }) => {\n return (\n \n {state.items && state.items.length && (\n \n {config.translations.return_review_returning_items}\n \n )}\n {state.items\n .filter(\n (item) => item.returnReason && returnReasonsById[item.returnReason],\n )\n .map((item) => {\n const details = itemsById[item.id];\n const keepTheItem =\n !keepTheItemMethod && state.keepItemIds.includes(item.id);\n\n // nested::todo frontend should send untranslated reason ids\n const returnReason = returnReasonsById[item.returnReason];\n const childReturnReasonId = get(\n item,\n \"childReturnReason.returnReason\",\n );\n const childReturnReason = returnReasonsById[childReturnReasonId];\n const fullReturnReason = childReturnReason\n ? `${returnReason.reasonTitle}, ${returnReasonsById[childReturnReasonId].reasonTitle}`\n : returnReason.reasonTitle;\n\n return (\n \n );\n })}\n \n );\n };\n\n const fromAddress = ignoreEmpty(state.fromAddress);\n const submitProps = (overrides) =>\n decorateClaimsSubmitPayload(\n merge(\n {\n locale,\n exchangeItems,\n returnItems,\n orderNumber: state.orderNumber,\n email: state.email,\n location: omitDeep([\"__typename\"], state.location),\n locationId: state.locationId,\n shopifyOrderId: order.shopifyOrderId,\n presentmentCurrency: order.presentmentCurrency,\n shippingPrice: selectedReturnMethod.price,\n shippingMethod: selectedReturnMethod.id,\n carrierServiceName: selectedReturnMethod.carrierService,\n selectedRefundMethod: isRefundAutomationEnabled\n ? chosenRefundMethod || refund.chosenRefundMethod\n : undefined,\n customerPmtId:\n isStripeEnabled && isCharge ? refund.customerPmtId : undefined,\n paymentMethodId: undefined,\n fromAddress,\n csid: state.csid,\n homePickupInstructions: state.homePickupInstructions,\n preApprovalReturnUuid,\n preApprovalId: preApprovalHook.state?.preApprovalId,\n requestedLabelCount: state.requestedLabelCount,\n reshopOptions: showReshopSmsUpdates ? state.reshopOptions : undefined,\n },\n overrides,\n ),\n );\n\n const handleSubmit = (overrides) => {\n if (overrides?.paymentId) setSucceededPaymentIntentId(overrides.paymentId);\n setErrorSnackbarVisibility(false);\n const paymentMethodId =\n isStripeEnabled && isCharge\n ? { paymentMethodId: overrides?.paymentId || succeededPaymentIntentId }\n : {};\n\n const locallyCorrectedFromAddress = ignoreEmpty(overrides?.fromAddress);\n if (locallyCorrectedFromAddress) {\n actions.setCorrectedAddress(locallyCorrectedFromAddress);\n }\n\n const globallyCorrectedFromAddress = ignoreEmpty(state?.fromAddress);\n\n // Enable navigation prompt: \"Are you sure you want to navigate away from this page?\"\n window.onbeforeunload = () => {\n return true;\n };\n\n const validResultCodes = [\n \"ok\", // either a label was generated (98% of returns) or no label was needed\n \"label_retry_enqueued\", // a carrier outage was detected, and a LabelJob has been enqueued\n ];\n\n const verifyAndSetResultCode = function (r) {\n if (!isPlainObject(r)) {\n throw \"Invalid response body from SubmitReturn: expected a plain object\";\n }\n const resultCode = get(r, \"data.submitReturn\");\n if (includes(validResultCodes, resultCode)) {\n actions.setSubmitReturnResultCode(resultCode);\n } else if (resultCode.startsWith(\"http\")) {\n // It is a payment-flow or shop-now URL.\n actions.setSubmitReturnResultCode(null);\n } else {\n throw \"Invalid result code: \" + resultCode;\n }\n };\n\n const variables = submitProps({\n ...paymentMethodId,\n draftReturnUuid,\n fromAddress: locallyCorrectedFromAddress || globallyCorrectedFromAddress,\n });\n submitReturn(variables)\n .then((r) => {\n const metrics = calculateReturnMetrics(\n order,\n variables.selectedRefundMethod,\n state.items,\n state.lineItemIntension,\n refundMethods?.length === 1 &&\n variables.selectedRefundMethod === \"original_payment\",\n );\n emitMetrics(metrics);\n if (config.isNthUi) {\n // success event should submit first, so other revenue metrics can use\n // this as a denominator in growthbook\n abTesting.trackResult(countingEvent(SUBMIT_RETURN_SUCCESS_EVENT));\n const abTestResult = convertFromDatadogMetrics(metrics);\n abTesting.trackResult(abTestResult);\n }\n\n if (config.isUserPreferencesEnabled) {\n abTesting.trackResult(\n countingEvent(\n SAVE_PREFERENCES_CHECKED_EVENT,\n state.savePreferences ? 1 : 0,\n ),\n );\n\n if (preferencesStatus?.profileStatus === \"active\") {\n const method = state.selectedReturnMethod;\n titan.track(\"product_added\", {\n props: {\n list_id: \"pudo_options\",\n product_id: toReturnMethodPreference(method),\n variant: isPreferredMethod(method, consumerPreferences)\n ? \"PREFERRED\"\n : null,\n },\n });\n }\n }\n\n verifyAndSetResultCode(r);\n })\n .finally(() => (window.onbeforeunload = null));\n };\n\n const isTotalNegative = refund.totalRefundCents < 0;\n const paymentIdPresent = !!succeededPaymentIntentId;\n\n const isPreCharge = !!refund.preChargeFeeAmountCents;\n const isCharge =\n (isStripeEnabled || isPaymentFlowEnabled) &&\n (isTotalNegative || isPreCharge);\n const renderCheckout =\n isStripeEnabled && isCharge && !succeededPaymentIntentId;\n\n const totalRefundPositive = isTotalNegative\n ? refund.totalRefund.replace(\"-\", \"\")\n : refund.totalRefund;\n\n const titleTranslation = (() => {\n if (returnItems.length && exchangeItems.length) {\n return config.translations.return_review_title_return_and_exchange;\n }\n if (!returnItems.length && exchangeItems.length) {\n return config.translations.return_review_title_exchange;\n }\n return config.translations.return_review_title;\n })();\n\n const Loading = () => (\n \n \n \n \n \n );\n\n const returnItemCount = sumBy(state.items, \"quantity\"); // all return and exchange items count as returning\n const receiveItemCount = sumBy(exchangeItems, \"returnItem.quantity\");\n\n const OrderDetails = () => (\n <>\n \n
\n \n \n \n \n {config.translations.return_review_keep_item_disclaimer}\n \n \n ) : (\n selectedReturnMethod.displayName\n )\n }\n returnMethodDisplayPrice={refund.returnMethodDisplayPrice}\n exchangeShippingFeeDisplayPrice={\n refund.exchangeShippingFeeDisplayPrice\n }\n exchangeShippingFeeDisplayName={refund.exchangeShippingFeeDisplayName}\n isCharge={isCharge}\n isPreCharge={isPreCharge}\n feeBreakdown={refund.feeBreakdown}\n refundMethod={state.selectedReturnCreditMethod.description}\n />\n {renderCheckout && !state.submitted && (\n \n )}\n {!renderCheckout && (\n \n )}\n
\n \n );\n\n const handleCalculateRefundAddressFix = ({ fromAddress }) => {\n actions.setCorrectedAddress(fromAddress);\n refetch({\n ...calculateRefundPayload,\n fromAddress,\n });\n };\n\n /***************************************************************************************************************\n * New design with `nth` components\n ***************************************************************************************************************/\n const useNewDesign = config.isNthUi;\n const typeForm = useTypeForm();\n const activeStep = useReturnStepIsActive(REVIEW_STEP);\n const nthReturnsActions = useNthReturnsActions();\n const { localeFull, includeCurrency } = useConsumerSettings();\n const { stripe, elements: stripeElement } = useStripeComponents();\n const { preferencesStatus, consumerPreferences } = useConsumerPreferences(\n state.guestReturn ? \"\" : state.email,\n );\n\n const nthFees = useNthFees(refund, isCharge);\n\n const nthRefund = useNthRefund(\n refund,\n isCharge,\n nthReturnsActions.returnCart?.refundMethod,\n );\n const handleReviewSummaryChange = (event) => {\n // we won't have email / policy onChange event\n\n // update save preferences\n if (!isNil(event.value?.savePreferences)) {\n actions.setSavePreferences(event.value.savePreferences);\n }\n\n if (!isNil(event.value?.reshopOptions)) {\n setReshopOptionsError(); // clear error message\n actions.setReshopOptions({\n smsUpdates: event.value.reshopOptions.subscribe,\n customerPhone: event.value.reshopOptions.phone,\n });\n }\n };\n useEffect(() => {\n if (config.isUserPreferencesEnabled && !preferencesStatus?.profileStatus) {\n titan.track(\"promotion_viewed\", {\n props: { promotion_id: \"user_preferences\" },\n });\n }\n }, [preferencesStatus?.profileStatus]);\n\n const [reshopOptionsError, setReshopOptionsError] = useState();\n const showReshopSmsUpdates =\n config.isReshopSmsUpdates &&\n state?.selectedReturnCreditMethod?.id === RETURN_CREDIT_METHOD_RESHOP;\n const reshopOptions = useMemo(\n () =>\n showReshopSmsUpdates\n ? {\n subscribe: !!state.reshopOptions.smsUpdates,\n phone: state.reshopOptions.customerPhone ?? \"\",\n error: reshopOptionsError,\n }\n : undefined,\n [showReshopSmsUpdates, state.reshopOptions, reshopOptionsError],\n );\n\n const selectedItems = useMemo(\n () =>\n transformClaimSelectedItemsForNth(nthReturnsActions.selectedItems ?? []),\n [nthReturnsActions.selectedItems],\n );\n\n const submittingAddressError = getAddressError(submitStatus?.errorDetail);\n useEffect(() => {\n if (\n useNewDesign &&\n isErrorSnackbarVisible &&\n errorMessage &&\n !submittingAddressError\n ) {\n typeForm.scrollToActive();\n }\n }, [isErrorSnackbarVisible, errorMessage]);\n const [isNewAddressValid, setIsNewAddressValid] = useState(false);\n const [newAddressDraft, setNewAddressDraft] = useState({});\n\n // calculateRefund could return an `address` error and the frontend\n // will allow the user to provide an address and execute calculateRefund\n // again via `refetch`.\n const addressError = reviewStatus.addressError;\n if (addressError) {\n return (\n \n \n {config.translations.mailing_address_section_title}\n \n \n \n );\n }\n\n if (useNewDesign) {\n if (state.submitted) return null;\n\n const secret = currentPaymentIntentClientSecret;\n const submitting = capturingPayment || loadingOrCheckoutRedirect;\n const hasAddressError = submittingAddressError;\n const hasOtherError =\n isErrorSnackbarVisible && errorMessage && !hasAddressError;\n const stripeAddOn = renderCheckout && !state.submitted && (\n \n );\n const addressCorrectionAddOn = hasAddressError && (\n <>\n \n {\n const { fromAddress, isValid } = event;\n setIsNewAddressValid(isValid);\n setNewAddressDraft(fromAddress);\n }}\n onSubmit={({ fromAddress }) => {\n errorNotifier.warn(\n \"Submit button of should be hidden, but we received onSubmit event\",\n { fromAddress },\n );\n }}\n disable={submittingAddressError.disableFields}\n submitLabel={getTranslation(\"bad_mailing_address_submit\")}\n validateZip={true}\n exclude={[\"phone\", \"submit\"]}\n />\n \n );\n const reminderText =\n exchangeItems.length > 0\n ? getTranslation(\"return_review_reminder_text_exchange\")\n : getTranslation(\"return_review_reminder_text_return\");\n const reminderAddOn = reminderText && (\n {reminderText}\n );\n const validateReshopOptions = () => {\n if (state.reshopOptions.smsUpdates) {\n const phone = state.reshopOptions.customerPhone;\n if (!phone) {\n setReshopOptionsError(\n getTranslation(\n \"return_review_reshop_options_error_customer_phone_required\",\n ),\n );\n return false;\n }\n if (!/^\\d{10}$/.test(phone)) {\n setReshopOptionsError(\n getTranslation(\n \"return_review_reshop_options_error_invalid_customer_phone\",\n ),\n );\n return false;\n }\n }\n setReshopOptionsError();\n return true;\n };\n\n const capturePayment = () => {\n setPaymentError();\n setCapturingPayment(true);\n return confirmCardPayment({ stripe, elements: stripeElement, secret })\n .catch((error) => {\n setPaymentError(error.message ?? error);\n throw new Error(\"There was an error processing the payment.\");\n })\n .finally(() => {\n setCapturingPayment(false);\n });\n };\n\n const newOnSubmitHandler = async () => {\n try {\n setErrorMessage();\n setErrorSnackbarVisibility(false);\n if (!validateReshopOptions()) return;\n\n if (renderCheckout) {\n const paymentResult = await capturePayment();\n await handleSubmit({\n fromAddress: newAddressDraft,\n ...paymentResult,\n });\n } else {\n await handleSubmit({ fromAddress: newAddressDraft });\n }\n } catch (error) {\n setErrorSnackbarVisibility(true);\n setErrorMessage(error.message ?? error);\n }\n };\n\n // TODO: Add this is adding claims attestation\n // const isClaimsError = hasClaimItems ? !isCertified || !signature : false;\n const isClaimsError = false;\n\n return (\n \n \n {errorMessage} : null}\n loading={queryStatus.loading}\n submitting={submitting}\n disabled={\n submitting ||\n isClaimsError ||\n (hasAddressError && !isNewAddressValid)\n }\n allowRetry\n orderItems={nthReturnsActions.orderData?.items ?? []}\n selectedItems={selectedItems}\n dropOffLocation={\n nthReturnsActions.returnCart?.pudoOption?.selectedDropOff\n ?.dropOffLocation\n }\n fees={nthFees}\n refund={nthRefund}\n returnCart={nthReturnsActions.returnCart}\n hasAssociatedEmail // in order lookup, email address is required, so yes\n savePreferences={\n config.isUserPreferencesEnabled && state.savePreferences\n }\n preferencesStatus={preferencesStatus}\n reshopOptions={reshopOptions}\n hasClaim={hasClaimItems}\n onChange={handleReviewSummaryChange}\n renderAddOn={\n <>\n {stripeAddOn}\n {addressCorrectionAddOn}\n {reminderAddOn}\n \n }\n onBack={() => {\n actions.goBack();\n typeForm.scrollToActive();\n }}\n onSubmit={newOnSubmitHandler}\n />\n \n \n );\n }\n\n return (\n
\n \n \n \n {titleTranslation}\n \n \n \n {queryStatus.loading ? : }\n
\n );\n};\nexport default Review;\n","import React, { useMemo, useEffect, useState } from \"react\";\nimport { v4 } from \"uuid\";\nimport TypeForm from \"../components/type-form\";\nimport TypeFormSection from \"../components/type-form/TypeFormSection\";\nimport {\n useReturnStepsState,\n getStepIndex,\n ORDER_LOOKUP_STEP,\n useOrderFetchData,\n REVIEW_STEP,\n} from \"../contexts/returnSteps\";\nimport { useShopNowExpiration } from \"../data/shopNowExpiration\";\nimport { useCancelShopNow } from \"../data/cancelShopNow\";\n\nimport OrderLookup from \"./OrderLookup/OrderLookup\";\nimport ChooseItems from \"./ChooseItems/ChooseItems\";\nimport ChooseMethod from \"./ChooseMethod/ChooseMethod\";\nimport ChooseMethodSubstep from \"./ChooseMethodSubstep/ChooseMethodSubstep\";\nimport ConfirmMailingAddress from \"./ConfirmMailingAddress/ConfirmMailingAddress\";\nimport ChooseShopNow from \"./ChooseShopNow/ChooseShopNow\";\nimport ChooseReturnCreditMethod from \"./ChooseReturnCreditMethod/ChooseReturnCreditMethod\";\nimport Review from \"./Review/Review\";\nimport Confirmation from \"./Confirmation/Confirmation\";\nimport TypeFormProvider from \"../contexts/typeForm\";\n\nfunction StepVisibilityWrapper({ children, hasReachedReviewPage }) {\n return (\n
\n {children}\n
\n );\n}\n\nfunction Stepper() {\n const { state, actions } = useOrderFetchData();\n const { state: shopNowState, checkShopNow } = useShopNowExpiration();\n const { state: cancelShopNowState, cancelShopNow } = useCancelShopNow();\n const [draftReturnUuid, setDraftReturnUuid] = useState();\n const stepsState = useReturnStepsState();\n\n useEffect(() => {\n if (draftReturnUuid) return;\n setDraftReturnUuid(() => v4());\n }, []);\n\n const hasReachedReviewPage =\n stepsState.currentStepIndex >= getStepIndex(REVIEW_STEP);\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\nexport default Stepper;\n","import React from \"react\";\n\nimport Stepper from \"../steps/Stepper\";\n\nfunction ReturnOrder() {\n return ;\n}\nexport default ReturnOrder;\n","import { Theme } from \"@material-ui/core\";\nimport { makeRootStyles } from \"../theme/styles\";\n\nconst useStyles = makeRootStyles(\n (theme: Theme) => ({\n root: {\n marginTop: theme.spacing(4),\n paddingBottom: theme.spacing(4),\n },\n loadingContainer: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n padding: 12,\n },\n discountContainer: {\n display: \"flex\",\n alignItems: \"center\",\n gap: \"10px\",\n },\n discountInputField: {\n flex: 1,\n maxWidth: \"300px\",\n },\n discountChip: {\n backgroundColor: \"#f3f3f3\",\n padding: \"5px 10px\",\n borderRadius: \"2px\",\n fontSize: \"14px\",\n maxWidth: \"300px\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n },\n discountApplyButton: {\n textTransform: \"none\",\n },\n cartSummaryItemWrapper: {\n display: \"flex\",\n justifyContent: \"space-between\",\n },\n textBold: {\n fontWeight: \"bold\",\n },\n textGreen: {\n color: theme.palette.success.dark,\n },\n }),\n { name: \"N0Confirm\" },\n);\n\nexport { useStyles };\n","import {\n ExtendedFee,\n ExtendedReturnItemInput,\n RefundMethodOption,\n RefundSummary,\n CurrencyAmount,\n OrderItem,\n} from \"@narvar/nth-kit-returns-headless\";\nimport { config } from \"../../config\";\nimport {\n Amount,\n CartSummary,\n Discount,\n FeeBreakdown,\n LineItem,\n Refund,\n ReturnLineItem,\n} from \"../../../gql/__generated__/schema\";\n\nexport function transformNthCurrency(currency: Amount): CurrencyAmount {\n return {\n currency: currency.currencyCode,\n value: currency.amount,\n };\n}\n\nexport function transformRefund(\n refund: Refund,\n cartSummary: CartSummary,\n shopNowCartSummary: CartSummary,\n): RefundSummary {\n const refundMethod: RefundMethodOption = {\n id: refund.refundMethod,\n type: \"ORIGINAL_PAYMENT\",\n name: refund.refundMethodDisplay,\n description: refund.refundMethodDescription,\n refund: transformNthCurrency(refund.value),\n };\n\n // Adding -ve sign to reflect the refund amount which is expected in nth\n const total = transformNthCurrency({\n ...cartSummary.total,\n amount: -1 * cartSummary.total.amount,\n });\n const subtotal = transformNthCurrency(shopNowCartSummary.subtotal);\n\n return {\n displayAllFees: true,\n hideSubtotal: true,\n total,\n subtotal,\n refundMethod,\n };\n}\n\nexport function transformDiscounts(discounts: Discount[]): ExtendedFee[] {\n return discounts.map((discount) => ({\n //TODO: Add translations\n title:\n discount.targetType === \"SHIPPING_LINE\"\n ? \"Shipping Discount\"\n : \"Order Discount\",\n type: \"SERVICE_FEE\",\n displayAmount: discount.discountAmount.formattedValue,\n amount: {\n value: discount.discountAmount.amount,\n currency: discount.discountAmount.currencyCode,\n },\n }));\n}\n\nexport function transformCredit(credit: Amount): ExtendedFee {\n return {\n title: \"Credits Applied\",\n type: \"LABEL_FEE\",\n displayAmount: credit.formattedValue,\n amount: {\n value: credit.amount,\n currency: credit.currencyCode,\n },\n };\n}\n\nexport function transformFee(fee: FeeBreakdown): ExtendedFee {\n return {\n title: fee.description,\n type: \"LABEL_FEE\",\n displayAmount: fee.formattedValue,\n amount: {\n value: fee.amount,\n currency: fee.currencyCode,\n },\n };\n}\n\nexport function createFee(title: string, fee: Amount): ExtendedFee {\n return {\n title,\n type: \"LABEL_FEE\",\n displayAmount: fee.formattedValue,\n amount: {\n value: fee.amount,\n currency: fee.currencyCode,\n },\n };\n}\n\nexport function transformFees(fees: FeeBreakdown[]): ExtendedFee[] {\n return fees\n .filter(\n (i) =>\n !config.shouldHideNarvarSeamlessExchangeValue ||\n (i.description != \"NARVAR_SEAMLESS_EXCHANGE_VALUE\" &&\n i.description != \"NARVAR_SEAMLESS_EXCHANGE_VALUE_TAX\"),\n )\n .map((fee) => transformFee(fee));\n}\n\nexport function transformOrderItem(item: ReturnLineItem): OrderItem {\n const availableReasons = [\n {\n id: item.returnReason.id,\n name: item.returnReason.name,\n },\n ];\n\n return {\n imageUrl: item.imageUrl,\n itemId: item.id,\n name: item.name ?? \"\",\n availableReturnActions: [],\n price: {\n value: item.price.amount,\n currency: item.price.currencyCode,\n },\n orderedQuantity: item.quantity,\n quantity: item.quantity,\n remainingQuantity: item.quantity,\n eligibilities: {},\n availableReasons,\n };\n}\n\nexport function transformShopNowItem(item: LineItem): OrderItem {\n return {\n imageUrl: item.imageUrl,\n itemId: item.id,\n name: item.name ?? \"\",\n availableReturnActions: [],\n price: {\n value: item.cost.amountPerQuantity.amount,\n currency: item.cost.amountPerQuantity.currencyCode,\n },\n discountedPrice: {\n value: item.cost.discountedAmountPerQuantity.amount,\n currency: item.cost.discountedAmountPerQuantity.currencyCode,\n },\n orderedQuantity: item.quantity,\n quantity: item.quantity,\n remainingQuantity: item.quantity,\n eligibilities: {},\n };\n}\n\nexport function transformOrderItems(items: ReturnLineItem[]): OrderItem[] {\n return items.map(transformOrderItem);\n}\n\nexport function transformShopNowItems(items: LineItem[]): OrderItem[] {\n return items.map(transformShopNowItem);\n}\n\nexport function transformSelectedItem(\n item: ReturnLineItem,\n): ExtendedReturnItemInput {\n return {\n ...transformOrderItem(item),\n reason: {\n id: item.returnReason.id,\n },\n };\n}\n\nexport function transformSelectedItems(\n items: ReturnLineItem[],\n): ExtendedReturnItemInput[] {\n return items.map(transformSelectedItem);\n}\n","import { useMemo } from \"react\";\nimport {\n ExtendedFee,\n ReviewSummaryRenderProps,\n} from \"@narvar/nth-kit-returns-headless\";\nimport {\n createFee,\n transformDiscounts,\n transformFees,\n transformOrderItems,\n transformRefund,\n transformSelectedItems,\n transformShopNowItems,\n} from \"../util/transformToNth\";\nimport {\n Cart,\n ReturnCart,\n ShopNowV2CheckoutQuery,\n} from \"../../../gql/__generated__/schema\";\n\nexport const prepareReturnCartCostFees = (returnCartSummary: ReturnCart) => {\n const returnSubtotal = createFee(\n \"Return Subtotal\",\n returnCartSummary.cartSummary.subtotal,\n );\n const returnTax = createFee(\"Return Tax\", returnCartSummary.cartSummary.tax);\n const returnFees = transformFees(returnCartSummary.feeBreakdown);\n\n return [returnSubtotal, returnTax, ...returnFees];\n};\n\nconst prepareFees = (shopNowCartSummary: Cart): ExtendedFee[] => {\n const cartSubtotal = createFee(\n \"Cart Items\",\n shopNowCartSummary.cartSummary.subtotal,\n );\n const cartTax = createFee(\"Cart Tax\", shopNowCartSummary.cartSummary.tax);\n const cartFees = transformFees(shopNowCartSummary.feeBreakdown);\n\n const discounts = transformDiscounts(\n shopNowCartSummary.cartSummary.discounts ?? [],\n );\n const cartTotal = createFee(\n \"Cart Total\",\n shopNowCartSummary.cartSummary.total,\n );\n\n return [cartSubtotal, cartTax, ...discounts, ...cartFees, cartTotal];\n};\n\ntype TransformToNthProps = Pick<\n ReviewSummaryRenderProps,\n | \"refund\"\n | \"fees\"\n | \"orderItems\"\n | \"selectedItems\"\n | \"shopNowItems\"\n | \"returnCart\"\n>;\n\nconst useTransformToNth = (\n checkoutData: ShopNowV2CheckoutQuery[\"shopNowV2Checkout\"][\"data\"] | null,\n): TransformToNthProps =>\n useMemo(() => {\n if (!checkoutData)\n return {\n fees: [],\n refund: undefined,\n orderItems: [],\n selectedItems: [],\n shopNowItems: [],\n returnCart: undefined,\n };\n const { refund, overallCartSummary, shopNowCart, returnCart } =\n checkoutData;\n\n const nthFees = overallCartSummary ? prepareFees(shopNowCart) : [];\n\n const nthRefund =\n refund && overallCartSummary\n ? transformRefund(refund, overallCartSummary, shopNowCart.cartSummary)\n : undefined;\n\n return {\n fees: nthFees,\n refund: nthRefund,\n orderItems: transformOrderItems(returnCart.lineItems),\n selectedItems: transformSelectedItems(returnCart.lineItems),\n shopNowItems: transformShopNowItems(shopNowCart.lineItems),\n\n //TODO: Remove hardcoded values post integration with API to enable submit button\n returnCart: {\n createdDate: \"\",\n expirationDate: \"\",\n lastUpdatedDate: \"\",\n orderId: \"1\",\n id: \"1\",\n retailerMoniker: \"a\",\n pudoOption: {\n pudoActionType: \"DROP_OFF\",\n pudoActionTypeDetails: \"BOXLESS\",\n },\n },\n };\n }, [checkoutData]);\n\nexport default useTransformToNth;\n","import React, { FC, useMemo, useState } from \"react\";\nimport { clsx } from \"clsx\";\nimport Panel from \"@narvar/nth-block-panel\";\nimport PanelHeader from \"@narvar/nth-bit-panel-header\";\nimport Icon from \"@narvar/nth-bit-icon-button\";\nimport { useStyles } from \"./styles\";\nimport { ReturnCart } from \"app/javascript/gql/__generated__/schema\";\nimport { prepareReturnCartCostFees } from \"./hooks/useTransformToNth\";\nimport useConsumerSettings from \"../hooks/useConsumerSettings\";\nimport { Currency, ExtendedFee } from \"@narvar/nth-kit-returns-headless\";\n\ninterface CostItemProps {\n label: string;\n fee: ExtendedFee;\n isStrong?: boolean;\n isGreen?: boolean;\n}\n\nexport const CostItem: FC = ({\n label,\n fee,\n isStrong = false,\n isGreen = false,\n}) => {\n const { localeFull, includeCurrency } = useConsumerSettings();\n //eslint-disable-next-line @typescript-eslint/no-explicit-any\n const styles: any = useStyles();\n\n const classes = clsx({\n [styles.cartSummaryItemWrapper]: true,\n [styles.textBold]: isStrong,\n [styles.textGreen]: isGreen,\n });\n return (\n
\n {label}\n \n \n \n
\n );\n};\n\ninterface ReturnCostPanelHeaderProps {\n returnCartSummary?: ReturnCart;\n open: boolean;\n setOpen: (open: boolean) => void;\n}\n\nconst ReturnCostPanelHeader: FC = ({\n returnCartSummary,\n open,\n setOpen,\n}) => {\n const { localeFull, includeCurrency } = useConsumerSettings();\n return (\n \n \n \n \n \n \n \n \n
\n Return Credits\n
\n \n setOpen(!open)}>\n \n {open ? : }\n \n \n
\n
\n
\n );\n};\n\ninterface ReturnCartCostPanelProps {\n returnCartSummary?: ReturnCart;\n}\n\nconst ReturnCartCostPanel: FC = ({\n returnCartSummary,\n}) => {\n const [open, setOpen] = useState(false);\n const fees = useMemo(() => {\n if (!returnCartSummary) {\n return null;\n }\n return prepareReturnCartCostFees(returnCartSummary);\n }, [returnCartSummary]);\n\n return (\n \n }\n collapsible\n open={open}>\n
    \n {fees?.map((fee, index) => (\n
  • \n \n
  • \n ))}\n
\n \n );\n};\n\nexport default ReturnCartCostPanel;\n","import { gql } from \"@apollo/client\";\nimport * as Apollo from \"@apollo/client\";\nexport type Maybe = T | null;\nexport type InputMaybe = Maybe;\nexport type Exact = {\n [K in keyof T]: T[K];\n};\nexport type MakeOptional = Omit & {\n [SubKey in K]?: Maybe;\n};\nexport type MakeMaybe = Omit & {\n [SubKey in K]: Maybe;\n};\nconst defaultOptions = {} as const;\n/** All built-in and custom scalars, mapped to their actual values */\nexport type Scalars = {\n ID: string;\n String: string;\n Boolean: boolean;\n Int: number;\n Float: number;\n ISO8601DateTime: any;\n};\n\nexport type Address = {\n __typename?: \"Address\";\n address1: Scalars[\"String\"];\n address2?: Maybe;\n city: Scalars[\"String\"];\n company?: Maybe;\n country: Scalars[\"String\"];\n countryCodeV2: Scalars[\"String\"];\n firstName: Scalars[\"String\"];\n lastName: Scalars[\"String\"];\n latitude?: Maybe;\n longitude?: Maybe;\n name: Scalars[\"String\"];\n phone?: Maybe;\n province?: Maybe;\n provinceCode?: Maybe;\n zipcode?: Maybe;\n};\n\nexport type Amount = {\n __typename?: \"Amount\";\n amount: Scalars[\"Int\"];\n currencyCode: Scalars[\"String\"];\n formattedValue: Scalars[\"String\"];\n};\n\nexport type Cart = {\n __typename?: \"Cart\";\n billingAddress: Address;\n cartSummary: CartSummary;\n feeBreakdown: Array;\n lineItems: Array;\n shippingAddress: Address;\n totalQuantity: Scalars[\"Int\"];\n};\n\nexport type CartSummary = {\n __typename?: \"CartSummary\";\n discountCodes?: Maybe>;\n discounts?: Maybe>;\n shopNowCredit?: Maybe;\n subtotal: Amount;\n tax: Amount;\n total: Amount;\n};\n\nexport type ChangeRefundMethod = {\n __typename?: \"ChangeRefundMethod\";\n success: Scalars[\"Boolean\"];\n};\n\nexport type Checkout = {\n __typename?: \"Checkout\";\n feeBreakdown: Array;\n overallCartSummary: CartSummary;\n payment?: Maybe;\n refund: Refund;\n returnCart: ReturnCart;\n shopNowCart: Cart;\n};\n\nexport type CheckoutComplete = {\n __typename?: \"CheckoutComplete\";\n message: Scalars[\"String\"];\n};\n\nexport type CheckoutCompleteInput = {\n /** Shopify cart token */\n cartToken: Scalars[\"String\"];\n /** Current shop now session encrypted code */\n code: Scalars[\"String\"];\n /** Payment parameters */\n payment?: InputMaybe;\n};\n\nexport type CheckoutCompleteResult = {\n __typename?: \"CheckoutCompleteResult\";\n data?: Maybe;\n errors: Array;\n};\n\nexport type CheckoutResult = {\n __typename?: \"CheckoutResult\";\n data?: Maybe;\n errors: Array;\n};\n\nexport type ConsumerProfile = {\n __typename?: \"ConsumerProfile\";\n profileId: Scalars[\"String\"];\n};\n\nexport type CreateDirectUploadInput = {\n /** File size (bytes) */\n byteSize: Scalars[\"Int\"];\n /** MD5 file checksum as base64 */\n checksum: Scalars[\"String\"];\n /** File content type */\n contentType: Scalars[\"String\"];\n /** Original file name */\n filename: Scalars[\"String\"];\n};\n\nexport type Credit = {\n __typename?: \"Credit\";\n total: Amount;\n used: Amount;\n};\n\nexport type CustomerMutation = {\n __typename?: \"CustomerMutation\";\n applyDiscountCode: DiscountCodeResult;\n cancelReturn: Scalars[\"String\"];\n changeRefundMethod: ChangeRefundMethod;\n createDirectUpload: DirectUpload;\n emitMetrics: Scalars[\"Boolean\"];\n /** Set user preferences for returns, e.g. preferred return method */\n setUserPreferences: Scalars[\"String\"];\n shopNowAbort: ShopNowAbort;\n shopNowV2Checkout: CheckoutCompleteResult;\n submitReturn: Scalars[\"String\"];\n};\n\nexport type CustomerMutationApplyDiscountCodeArgs = {\n cartToken: Scalars[\"String\"];\n code: Scalars[\"String\"];\n couponCodes: Array;\n};\n\nexport type CustomerMutationCancelReturnArgs = {\n email?: InputMaybe;\n orderNumber?: InputMaybe;\n returnId?: InputMaybe;\n shopId?: InputMaybe;\n};\n\nexport type CustomerMutationChangeRefundMethodArgs = {\n note?: InputMaybe;\n refundMethod: Scalars[\"String\"];\n returnHashid: Scalars[\"String\"];\n};\n\nexport type CustomerMutationCreateDirectUploadArgs = {\n input: CreateDirectUploadInput;\n};\n\nexport type CustomerMutationEmitMetricsArgs = {\n metricEmissions: Array;\n};\n\nexport type CustomerMutationSetUserPreferencesArgs = {\n email: Scalars[\"String\"];\n orderId: Scalars[\"String\"];\n userPreferences: UserPreferencesInput;\n};\n\nexport type CustomerMutationShopNowAbortArgs = {\n refundMethod: Scalars[\"String\"];\n returnId: Scalars[\"String\"];\n};\n\nexport type CustomerMutationShopNowV2CheckoutArgs = {\n checkout: CheckoutCompleteInput;\n};\n\nexport type CustomerMutationSubmitReturnArgs = {\n api?: InputMaybe;\n carrierServiceName?: InputMaybe;\n csid?: InputMaybe;\n customerPmtId?: InputMaybe;\n draftReturnUuid?: InputMaybe;\n email: Scalars[\"String\"];\n exchangeItems: Array;\n fromAddress?: InputMaybe;\n homePickupInstructions?: InputMaybe;\n locale?: InputMaybe;\n location?: InputMaybe;\n locationId?: InputMaybe;\n orderNumber: Scalars[\"String\"];\n paymentMethodId?: InputMaybe;\n preApprovalId?: InputMaybe;\n preApprovalReturnUuid?: InputMaybe;\n presentmentCurrency: Scalars[\"String\"];\n requestedLabelCount?: InputMaybe;\n reshopOptions?: InputMaybe;\n returnItems: Array;\n selectedRefundMethod?: InputMaybe;\n shippingMethod: Scalars[\"String\"];\n shippingPrice?: InputMaybe;\n shopNow?: InputMaybe;\n shopifyOrderId: Scalars[\"String\"];\n};\n\nexport type CustomerQuery = {\n __typename?: \"CustomerQuery\";\n /** Calculates outcomes for various refund methods: original payment, gift card, shop now, etc. Usually the calculated outcome is treated as an estimate, and the actual calculation happens in SubmitReturn. However, the outcomes are persisted, and in the case of shop now abort (SHOPZ-2715), the persisted outcome will be applied. */\n calculateRefund: RefundEstimate;\n checkShopNowExpiration?: Maybe;\n /** Returns the configured branding */\n configuredBranding: ShopBranding;\n evenExchangeProduct?: Maybe;\n /** Returns all available rule definitions for given rule type */\n getReturnRuleConditionDefinitions: Array;\n /** return all states of a country */\n listStatesOfCountryCode: Array;\n order?: Maybe;\n /** The first use case will be Reshop's \"hard\" pre-approval (SHOPZ-2531) but we expect there will be other types of pre-approval in the future. */\n preApproval: PreApproval;\n /** Returns History Info */\n returnHistory: Array;\n /** Returns the configured Return Locations for the shop */\n returnLocations: Array;\n /** Returns the configured Return Methods for the shop */\n returnMethods: Array;\n /** Returns the configured Return Reasons for the shop */\n returnReasons: Array;\n shopNowSession?: Maybe;\n shopNowV2Checkout: CheckoutResult;\n /** Returns Tracking Info for a given return ID */\n trackingInfo: TrackingInfo;\n translations: Array;\n /** The returns-related user preferences for the given user. See /doc/features/consumer_preferences/overview.md */\n userPreferences: UserPreferences;\n};\n\nexport type CustomerQueryCalculateRefundArgs = {\n carrierServiceName?: InputMaybe;\n chosenRefundMethod?: InputMaybe;\n csid?: InputMaybe;\n draftReturnUuid?: InputMaybe;\n email: Scalars[\"String\"];\n exchangeItems: Array;\n fromAddress?: InputMaybe;\n locale?: InputMaybe;\n orderNumber: Scalars[\"String\"];\n presentmentCurrency: Scalars[\"String\"];\n returnItems: Array;\n shippingMethod?: InputMaybe;\n shippingPrice?: InputMaybe;\n shopId?: InputMaybe;\n shopifyOrderId: Scalars[\"String\"];\n};\n\nexport type CustomerQueryCheckShopNowExpirationArgs = {\n cancel?: InputMaybe;\n code: Scalars[\"String\"];\n};\n\nexport type CustomerQueryEvenExchangeProductArgs = {\n compareAtPrice?: InputMaybe;\n countryCode?: InputMaybe;\n currency?: InputMaybe;\n locale?: InputMaybe;\n price: Scalars[\"Float\"];\n productId: Scalars[\"String\"];\n query: Scalars[\"String\"];\n showProduct?: InputMaybe;\n variantId?: InputMaybe;\n};\n\nexport type CustomerQueryGetReturnRuleConditionDefinitionsArgs = {\n ruleType: Rule;\n};\n\nexport type CustomerQueryListStatesOfCountryCodeArgs = {\n countryCode: Scalars[\"String\"];\n locale?: InputMaybe;\n};\n\nexport type CustomerQueryOrderArgs = {\n csid?: InputMaybe;\n email: Scalars[\"String\"];\n giftCode?: InputMaybe;\n guestReturn?: InputMaybe;\n locale?: InputMaybe;\n orderNumber: Scalars[\"String\"];\n zipcode?: InputMaybe;\n};\n\nexport type CustomerQueryPreApprovalArgs = {\n preApprovalInput: PreApprovalInput;\n};\n\nexport type CustomerQueryReturnHistoryArgs = {\n email: Scalars[\"String\"];\n orderNumber: Scalars[\"String\"];\n};\n\nexport type CustomerQueryReturnLocationsArgs = {\n carrier: Scalars[\"String\"];\n consolidationRadius?: InputMaybe;\n countryCode: Scalars[\"String\"];\n locale?: InputMaybe;\n qr?: InputMaybe;\n zipcode: Scalars[\"String\"];\n};\n\nexport type CustomerQueryReturnMethodsArgs = {\n csid?: InputMaybe;\n draftReturnUuid?: InputMaybe;\n email: Scalars[\"String\"];\n exchangeItems: Array;\n fromAddress?: InputMaybe;\n locale?: InputMaybe;\n orderNumber: Scalars[\"String\"];\n presentmentCurrency?: InputMaybe;\n returnItems: Array;\n shopId?: InputMaybe;\n shopifyOrderId?: InputMaybe;\n};\n\nexport type CustomerQueryReturnReasonsArgs = {\n limit?: InputMaybe;\n locale?: InputMaybe;\n offset?: InputMaybe;\n};\n\nexport type CustomerQueryShopNowSessionArgs = {\n code: Scalars[\"String\"];\n};\n\nexport type CustomerQueryShopNowV2CheckoutArgs = {\n cartToken: Scalars[\"String\"];\n code: Scalars[\"String\"];\n};\n\nexport type CustomerQueryTrackingInfoArgs = {\n returnId: Scalars[\"String\"];\n trackingNumber: Scalars[\"String\"];\n};\n\nexport type CustomerQueryTranslationsArgs = {\n categories: Array;\n locale?: InputMaybe;\n};\n\nexport type CustomerQueryUserPreferencesArgs = {\n email: Scalars[\"String\"];\n};\n\n/** Represents direct upload credentials */\nexport type DirectUpload = {\n __typename?: \"DirectUpload\";\n /** Created blob record ID */\n blobId: Scalars[\"ID\"];\n /** HTTP request headers (JSON-encoded) */\n headers: Scalars[\"String\"];\n /** Created blob record signed ID */\n signedBlobId: Scalars[\"ID\"];\n /** Upload URL */\n url: Scalars[\"String\"];\n};\n\nexport type Discount = {\n __typename?: \"Discount\";\n discountAmount: Amount;\n targetType: Scalars[\"String\"];\n};\n\nexport type DiscountCodeResult = {\n __typename?: \"DiscountCodeResult\";\n data?: Maybe;\n errors: Array;\n};\n\nexport type DisplayStateTransition = {\n __typename?: \"DisplayStateTransition\";\n byUser?: Maybe;\n description?: Maybe;\n rmaEnabled?: Maybe;\n status?: Maybe;\n timelineItemType: Scalars[\"String\"];\n timestamp?: Maybe;\n};\n\n/** Dropoff Location. See doc/features/locations/drop_off_locations.md */\nexport type DropoffLocationInput = {\n id?: InputMaybe;\n latitude?: InputMaybe;\n logoUrl?: InputMaybe;\n longitude?: InputMaybe;\n storeAddress?: InputMaybe;\n storeName?: InputMaybe;\n storeName2?: InputMaybe;\n};\n\n/** Exchange Item Input Type */\nexport type ExchangeItemInput = {\n newProductId: Scalars[\"String\"];\n newProductImage?: InputMaybe;\n newProductName?: InputMaybe;\n newProductPriceAmount?: InputMaybe;\n newProductPriceCurrency?: InputMaybe;\n newProductSku?: InputMaybe;\n newProductVariantId: Scalars[\"String\"];\n newProductVariantInfo: Array;\n returnItem: ReturnCalculationInput;\n};\n\nexport type ExchangeItemVariantInfo = {\n name: Scalars[\"String\"];\n value: Scalars[\"String\"];\n};\n\nexport type Fee = {\n __typename?: \"Fee\";\n /** Three-letter code, ISO-4217. Example: \"BHD\" */\n currency: Scalars[\"String\"];\n /** Examples: \"Return Fee\", \"Frais de retour par défaut\" */\n description?: Maybe;\n displayWithReturnMethod?: Maybe;\n /** Currency subunit. Example: 123.0 means $1.23 */\n fee: Scalars[\"Float\"];\n /** The type of fee this represents: \"shipping\", \"handling\", or \"return\" */\n feeType?: Maybe;\n formattedFee?: Maybe;\n formattedFeeWithCurrency?: Maybe;\n /** See \"tax_code\" in doc/features/shop_automation/refund/fees.md */\n taxCode?: Maybe;\n};\n\nexport type FeeBreakdown = {\n __typename?: \"FeeBreakdown\";\n amount: Scalars[\"Float\"];\n currencyCode: Scalars[\"String\"];\n description: Scalars[\"String\"];\n displayWithReturnMethod: Scalars[\"Boolean\"];\n formattedValue: Scalars[\"String\"];\n shopNowClawback: Scalars[\"Boolean\"];\n taxCode?: Maybe;\n};\n\n/** Return Method input */\nexport type FromAddressInput = {\n address1: Scalars[\"String\"];\n address2?: InputMaybe;\n city: Scalars[\"String\"];\n company?: InputMaybe;\n country?: InputMaybe;\n countryCode?: InputMaybe;\n countryCodeV2: Scalars[\"String\"];\n firstName: Scalars[\"String\"];\n lastName: Scalars[\"String\"];\n name?: InputMaybe;\n phone?: InputMaybe;\n province?: InputMaybe;\n provinceCode?: InputMaybe;\n zip: Scalars[\"String\"];\n};\n\n/** Generic Address */\nexport type GenericAddressInput = {\n address1: Scalars[\"String\"];\n address2?: InputMaybe;\n city: Scalars[\"String\"];\n company?: InputMaybe;\n country?: InputMaybe;\n countryCode?: InputMaybe;\n countryCodeV2?: InputMaybe;\n firstName?: InputMaybe;\n lastName?: InputMaybe;\n name?: InputMaybe;\n phone?: InputMaybe;\n province?: InputMaybe;\n provinceCode?: InputMaybe;\n state?: InputMaybe;\n zip: Scalars[\"String\"];\n};\n\nexport type LineItem = {\n __typename?: \"LineItem\";\n cost: LineItemCost;\n discounts: Array;\n id?: Maybe;\n imageUrl?: Maybe;\n name: Scalars[\"String\"];\n price: Amount;\n productId: Scalars[\"String\"];\n quantity: Scalars[\"Int\"];\n title: Scalars[\"String\"];\n variantId: Scalars[\"String\"];\n};\n\nexport type LineItemCost = {\n __typename?: \"LineItemCost\";\n amountPerQuantity: Amount;\n discountedAmountPerQuantity: Amount;\n subtotal: Amount;\n total: Amount;\n};\n\nexport type MetricEmissionInput = {\n /**\n * Must use ISO-4217 3-Alpha. If a code is given, value will be converted\n * to USD (whole dollars), and “_usd” will be appended to the final metric\n * name.\n *\n */\n currencyCode?: InputMaybe;\n /**\n * Must match /^[_a-z]+$/. Given a suffix \"foo\", the final\n * metric name will be \"narvar.zero.shopify.frontend.foo\".\n *\n */\n metricNameSuffix: Scalars[\"String\"];\n /**\n * For now, must be \"count\". In the future, other metric types may be\n * supported.\n *\n */\n metricType: Scalars[\"String\"];\n /**\n * Fractional monetary values, eg. cents, are not supported. Round off to\n * the nearest whole currency unit, e.g. dollar.\n *\n */\n value: Scalars[\"Int\"];\n};\n\n/** A monetary value */\nexport type Money = {\n __typename?: \"Money\";\n /** Value in smallest currency unit, e.g. JPY */\n cents: Scalars[\"Int\"];\n /** 3-character currency code */\n currency: Scalars[\"String\"];\n /** Value in dollars */\n dollars: Scalars[\"Float\"];\n /** Display string of the value */\n formattedAmount: Scalars[\"String\"];\n};\n\n/** A monetary value */\nexport type MoneyInput = {\n /** Value in smallest currency unit, e.g. JPY */\n cents: Scalars[\"Int\"];\n /** 3-character currency code */\n currency: Scalars[\"String\"];\n};\n\nexport type Payment = {\n __typename?: \"Payment\";\n customerPmtId: Scalars[\"String\"];\n paymentClientSecret: Scalars[\"String\"];\n paymentGateway: Scalars[\"String\"];\n paymentGatewayDisplay: Scalars[\"String\"];\n value: Amount;\n};\n\nexport type PaymentInput = {\n /** Payment gateway i.e stripe */\n gateway: Scalars[\"String\"];\n /** Payment intent id */\n paymentIntentId: Scalars[\"String\"];\n};\n\nexport type PreApproval = {\n __typename?: \"PreApproval\";\n result?: Maybe;\n userErrors: Array;\n};\n\nexport type PreApprovalInput = {\n email: Scalars[\"String\"];\n exchangeItems: Array;\n orderNumber: Scalars[\"String\"];\n /** A UUID identifying the nascent Return. For Reshop, this is used as the external_id. Prior to SHOPZ-2531, we used the RMA number as the external_id. Now we must use a UUID, because the RMA number has not yet been generated. */\n preApprovalReturnUuid: Scalars[\"String\"];\n /** The value, from calculateRefund, of the refund method selected by the consumer */\n refundCalculated: MoneyInput;\n reshopOptions?: InputMaybe;\n returnItems: Array;\n};\n\nexport type PreApprovalResult = {\n __typename?: \"PreApprovalResult\";\n /** The ID provided by the relevant pre-approval feature, e.g. Reshop */\n preApprovalId: Scalars[\"String\"];\n};\n\nexport type ProductVariantOptions = {\n __typename?: \"ProductVariantOptions\";\n name: Scalars[\"String\"];\n position: Scalars[\"Int\"];\n values: Array;\n};\n\nexport type Refund = {\n __typename?: \"Refund\";\n refundMethod: Scalars[\"String\"];\n refundMethodDescription: Scalars[\"String\"];\n refundMethodDisplay: Scalars[\"String\"];\n value: Amount;\n};\n\nexport type RefundEstimate = {\n __typename?: \"RefundEstimate\";\n chosenRefundMethod?: Maybe;\n connectedStripeAccount?: Maybe;\n currency: Scalars[\"String\"];\n customerPmtId?: Maybe;\n exchangeShippingFeeDisplayName?: Maybe;\n exchangeShippingFeeDisplayPrice?: Maybe;\n feeBreakdown: Array;\n giftCardTotalRefund?: Maybe;\n giftCardTotalRefundCents?: Maybe;\n originalPaymentTotalRefund?: Maybe;\n originalPaymentTotalRefundCents?: Maybe;\n originalShippingRefunded?: Maybe;\n originalShippingRefundedDisplayAmt?: Maybe;\n paymentClientSecret?: Maybe;\n preChargeFeeAmountCents?: Maybe;\n priorRefundsDisplayAmt?: Maybe;\n refundLineItems: Array;\n refundMethodsAvailable?: Maybe>;\n returnMethodDisplayPrice?: Maybe;\n shippingCost: Scalars[\"String\"];\n shopNowAvailable?: Maybe;\n shopNowTotalRefund?: Maybe;\n shopNowTotalRefundCents?: Maybe;\n subtotalRefund: Scalars[\"String\"];\n subtotalRefundCents: Scalars[\"Float\"];\n taxesIncluded: Scalars[\"Boolean\"];\n totalRefund: Scalars[\"String\"];\n totalRefundCents: Scalars[\"Float\"];\n totalTax: Scalars[\"String\"];\n totalTaxDisplayAmt: Scalars[\"String\"];\n transactions: Array;\n};\n\nexport type RefundLineItem = {\n __typename?: \"RefundLineItem\";\n discountedPrice: Scalars[\"String\"];\n lineItemId: Scalars[\"String\"];\n locationId?: Maybe;\n price: Scalars[\"String\"];\n quantity: Scalars[\"Int\"];\n refundTotalPrice: Scalars[\"String\"];\n restockType: Scalars[\"String\"];\n subtotal: Scalars[\"String\"];\n totalCartDiscountAmount: Scalars[\"String\"];\n totalTax: Scalars[\"String\"];\n};\n\nexport type RefundMethod = {\n __typename?: \"RefundMethod\";\n refundCents?: Maybe;\n refundFormatted?: Maybe;\n refundMethod: Scalars[\"String\"];\n refundMethodDescription: Scalars[\"String\"];\n /**\n * gift_card or reshop. The frontend will use this information to visually distinguish a Reshop Refund Method from the normal gift-card Refund Method.\n * @deprecated As of SHOPZ-2516, use refund_method instead\n */\n refundMethodGiftCardType?: Maybe;\n};\n\nexport type RefundTransaction = {\n __typename?: \"RefundTransaction\";\n amount: Scalars[\"String\"];\n currency: Scalars[\"String\"];\n gateway: Scalars[\"String\"];\n maximumRefundable: Scalars[\"String\"];\n parentId: Scalars[\"String\"];\n};\n\nexport type Region = {\n __typename?: \"Region\";\n region: Scalars[\"String\"];\n regionCode: Scalars[\"String\"];\n};\n\n/** Reshop Options input */\nexport type ReshopOptionsInput = {\n customerPhone?: InputMaybe;\n smsUpdates: Scalars[\"Boolean\"];\n};\n\nexport type Return = {\n __typename?: \"Return\";\n amountFromPriorRefunds?: Maybe;\n availableStatuses?: Maybe>;\n cancellable?: Maybe;\n carrierTrackingNumber?: Maybe;\n currentStatus: Scalars[\"String\"];\n customerEmail?: Maybe;\n customerName?: Maybe;\n customerPhone?: Maybe;\n displayError?: Maybe;\n displayStateTransitions?: Maybe>;\n errorMessage?: Maybe;\n exchangeDraftOrderId?: Maybe;\n exchangeOrderId?: Maybe;\n /** Frontend-safe subset of the shop flags at the time the return was created */\n featureFlags?: Maybe>;\n feeBreakdown?: Maybe>;\n guestReturn?: Maybe;\n id: Scalars[\"String\"];\n isCsInitiated?: Maybe;\n isNarvarExchangeCreditOrder?: Maybe;\n isShopNowReturn?: Maybe;\n lastModified: Scalars[\"ISO8601DateTime\"];\n notes?: Maybe;\n orderDate: Scalars[\"ISO8601DateTime\"];\n orderId?: Maybe;\n originalShippingRefundedValue: Scalars[\"String\"];\n paymentCaptured?: Maybe;\n paymentRequired?: Maybe;\n preChargeFeeAmount?: Maybe;\n previousVersions?: Maybe>;\n qrCodeUrl?: Maybe;\n refundAmountCurrency?: Maybe;\n refundAutomationState?: Maybe;\n refundMethod?: Maybe;\n refundSubtotalDisplayValue: Scalars[\"String\"];\n refundTotalDisplayValue: Scalars[\"String\"];\n reshopRefundId?: Maybe;\n returnDate?: Maybe;\n returnItems: Array;\n /** URL of PDF containing the PSSLs from each ReturnShipment, concatenated. Null for non-carrier returns, like return_in_store, and keep_the_item. */\n returnLabel?: Maybe;\n returnMethod?: Maybe;\n returnMethodCarrierService?: Maybe;\n returnShipments: Array;\n returnStatusUpdatedAt?: Maybe;\n rmaNumber?: Maybe;\n shippingFeesDisplayValue: Scalars[\"String\"];\n shopifyOrderId: Scalars[\"String\"];\n taxDisplayValue: Scalars[\"String\"];\n};\n\n/** Return Method input */\nexport type ReturnCalculationInput = {\n childReturnReason?: InputMaybe;\n childReturnReasonId?: InputMaybe;\n comment?: InputMaybe;\n lineItemId: Scalars[\"String\"];\n pictures?: InputMaybe>;\n quantity: Scalars[\"Int\"];\n returnReason: Scalars[\"String\"];\n returnReasonId: Scalars[\"String\"];\n};\n\nexport type ReturnCart = {\n __typename?: \"ReturnCart\";\n cartSummary: CartSummary;\n feeBreakdown: Array;\n lineItems: Array;\n};\n\nexport type ReturnDashboardDisplayError = {\n __typename?: \"ReturnDashboardDisplayError\";\n message?: Maybe;\n timestamp?: Maybe;\n};\n\nexport type ReturnItem = {\n __typename?: \"ReturnItem\";\n childReturnReasonCode?: Maybe;\n comment?: Maybe;\n customerPictures?: Maybe>;\n displayTotalIncludingTaxAndDuties?: Maybe;\n id: Scalars[\"String\"];\n isExchange?: Maybe;\n itemId?: Maybe;\n itemName?: Maybe;\n itemReturnStatus: Array;\n newProductImage?: Maybe;\n newProductName?: Maybe;\n newProductSku?: Maybe;\n productId?: Maybe;\n productImageUrl?: Maybe;\n purchasePrice?: Maybe;\n quantity?: Maybe;\n refundPrice?: Maybe;\n returnReason?: Maybe;\n returnReasonCode?: Maybe;\n sku?: Maybe;\n variantId?: Maybe;\n};\n\nexport type ReturnItemStatus = {\n __typename?: \"ReturnItemStatus\";\n qty?: Maybe;\n status?: Maybe;\n updatedAt?: Maybe;\n};\n\nexport type ReturnItemVersion = {\n __typename?: \"ReturnItemVersion\";\n /** The time of version-record creation. */\n createdAt: Scalars[\"ISO8601DateTime\"];\n id: Scalars[\"String\"];\n /** The attributes of the ReturnItem at the time of version-record creation */\n item: ReturnItemVersionItem;\n};\n\n/** The attributes of the ReturnItem at the time of version-record creation */\nexport type ReturnItemVersionItem = {\n __typename?: \"ReturnItemVersionItem\";\n childReturnReason?: Maybe;\n childReturnReasonCode?: Maybe;\n comment?: Maybe;\n isExchange?: Maybe;\n keepItem?: Maybe;\n name?: Maybe;\n newProductId?: Maybe;\n newProductName?: Maybe;\n newProductSku?: Maybe;\n newProductVariantId?: Maybe;\n originalReturnReason?: Maybe;\n productType?: Maybe;\n quantity?: Maybe;\n refundLineItemSubtotal?: Maybe;\n refundLineItemTotalCartDiscountAmount?: Maybe;\n refundLineItemTotalTax?: Maybe;\n returnReason?: Maybe;\n returnReasonCode?: Maybe;\n shopifyItemId?: Maybe;\n shopifyVariantId?: Maybe;\n sku?: Maybe;\n unitDiscountPresentmentAmount?: Maybe;\n unitDiscountShopAmount?: Maybe;\n unitDiscountedPresentmentAmount?: Maybe;\n unitDiscountedShopAmount?: Maybe;\n unitFinalPresentmentAmount?: Maybe;\n unitFinalShopAmount?: Maybe;\n unitOriginalPresentmentAmount?: Maybe;\n unitOriginalShopAmount?: Maybe;\n unitPrice?: Maybe;\n unitTaxAndDutyRefundPresentmentAmount?: Maybe;\n unitTaxAndDutyRefundShopAmount?: Maybe;\n};\n\nexport type ReturnLineItem = {\n __typename?: \"ReturnLineItem\";\n id: Scalars[\"String\"];\n imageUrl?: Maybe;\n name: Scalars[\"String\"];\n price: Amount;\n productId: Scalars[\"String\"];\n quantity: Scalars[\"Int\"];\n returnReason: ReturnReasonHash;\n title: Scalars[\"String\"];\n variantId: Scalars[\"String\"];\n};\n\nexport type ReturnLocation = {\n __typename?: \"ReturnLocation\";\n acceptInStoreReturns: Scalars[\"Boolean\"];\n acceptMailInReturns: Scalars[\"Boolean\"];\n id: Scalars[\"String\"];\n latitude?: Maybe;\n logoUrl?: Maybe;\n longitude?: Maybe;\n shopifyLocationId?: Maybe;\n storeAddress?: Maybe;\n storeDistance?: Maybe;\n storeName?: Maybe;\n storeName2?: Maybe;\n};\n\nexport type ReturnLocationAddress = {\n __typename?: \"ReturnLocationAddress\";\n address1?: Maybe;\n address2?: Maybe;\n city?: Maybe;\n latitude?: Maybe;\n longitude?: Maybe;\n phone?: Maybe;\n state?: Maybe;\n zip?: Maybe;\n};\n\nexport type ReturnMethod = {\n __typename?: \"ReturnMethod\";\n carrierId?: Maybe;\n /** The name of a carrier (e.g. \"USPS\" for \"usps_returns\"). Nullable when doing return in store. */\n carrierName?: Maybe;\n /** The name of a carrier's service type ex. 'UPS Mail Innovations'. Nullable when doing return in store. */\n carrierService?: Maybe;\n /** The radius in miles for consolidation. Will be used in GetReturnLocations query to get all return location within this radius. */\n consolidationRadius?: Maybe;\n displayDescription: Scalars[\"String\"];\n /** The display name of the return method e.g. \"Drop Off at the Post Office\", \"Return in Store\", \"Use My Own Carrier\". */\n displayName: Scalars[\"String\"];\n displayPrice?: Maybe;\n feeBreakdown: Array;\n id: Scalars[\"ID\"];\n keepAllItems: Scalars[\"Boolean\"];\n keepItemIds?: Maybe>;\n /** Max labels the consumer is allowed to request. See multi_label_consumer_request feature flag. Value is nil when this shop setting does not apply to this return method, for example Ship on Your Own. */\n maxLabelRequests?: Maybe;\n price: Scalars[\"Float\"];\n qr?: Maybe;\n returnMethodDisplayPrice?: Maybe;\n shouldDisplayLocations: Scalars[\"Boolean\"];\n};\n\nexport type ReturnReason = {\n __typename?: \"ReturnReason\";\n csOnly: Scalars[\"Boolean\"];\n enableCustomerPictures?: Maybe;\n id: Scalars[\"String\"];\n isCommentMandatory: Scalars[\"Boolean\"];\n isCommon: Scalars[\"Boolean\"];\n isValid: Scalars[\"Boolean\"];\n maxDaysSinceCreation?: Maybe;\n maxDaysSinceDelivery?: Maybe;\n maxDaysSinceFulfilment?: Maybe;\n minDaysSinceCreation?: Maybe;\n minDaysSinceDelivery?: Maybe;\n minDaysSinceFulfilment?: Maybe;\n parentId?: Maybe;\n priority?: Maybe;\n /** Reason only shown for matching products */\n productFilters: Array;\n /** @deprecated Use product_filters instead */\n productTags?: Maybe>;\n promptQuestion?: Maybe;\n randomize?: Maybe;\n reasonTitle: Scalars[\"String\"];\n requireCustomerPictures?: Maybe;\n shopId: Scalars[\"Int\"];\n shopifyReturnReason?: Maybe;\n translatedReason?: Maybe;\n};\n\nexport type ReturnReasonHash = {\n __typename?: \"ReturnReasonHash\";\n id: Scalars[\"String\"];\n name: Scalars[\"String\"];\n};\n\nexport type ReturnRefundAutomationState = {\n __typename?: \"ReturnRefundAutomationState\";\n closeReturnOnShopifyOrderFailedAt?: Maybe;\n closeReturnOnShopifyOrderSucceededAt?: Maybe;\n closeReturnOnShopifyOrderTiming?: Maybe;\n markAsPaidFailedAt?: Maybe;\n markAsPaidSucceededAt?: Maybe;\n markAsPaidTiming?: Maybe;\n outOfStockRefundAt?: Maybe;\n refundFailedAt?: Maybe;\n refundSucceededAt?: Maybe;\n refundTiming?: Maybe;\n reserveInventoryFailedAt?: Maybe;\n reserveInventorySucceededAt?: Maybe;\n reserveInventoryTiming?: Maybe;\n restockFailedAt?: Maybe;\n restockSucceededAt?: Maybe;\n restockTiming?: Maybe;\n shopifyReturnApiFfEnabled?: Maybe;\n shouldRefundWhenOutOfStock: Scalars[\"Boolean\"];\n};\n\nexport type ReturnRuleConditionDefinition = {\n __typename?: \"ReturnRuleConditionDefinition\";\n attribute: Scalars[\"String\"];\n attributeDisplayText: Scalars[\"String\"];\n autocomplete?: Maybe;\n prequalifier: Scalars[\"String\"];\n prequalifierDisplayText: Scalars[\"String\"];\n valueType: RuleValue;\n};\n\nexport type ReturnShipment = {\n __typename?: \"ReturnShipment\";\n /** Hashed ID. e.g. 123ABC456 */\n id: Scalars[\"String\"];\n /** e.g. a, b, c. Used on PSSLs. */\n letter: Scalars[\"String\"];\n /** e.g. fedex, cycleon, or keep_the_item */\n returnMethodId: Scalars[\"String\"];\n /** e.g. usps_returns, cycleon. Null for non-carrier return methods, e.g. ship_on_your_own */\n returnTrackingCompany?: Maybe;\n /** Tracking link */\n returnTrackingLink?: Maybe;\n /** Carrier tracking number. Null for non-carrier return methods, e.g. ship_on_your_own */\n returnTrackingNumber?: Maybe;\n /** Recorded only by shipment strategies that are fulfillment-based, like OneShipmentPerFulfillment. For now, intended only for troubleshooting purposes, but we might use it in the future on the Return Details page, if we decide to display ReturnShipment details there. */\n shopifyFulfillmentId?: Maybe;\n /** e.g. initiated, on_its_way_to_retailer */\n status: Scalars[\"String\"];\n};\n\nexport type ReturnVersion = {\n __typename?: \"ReturnVersion\";\n /** The time of version-record creation. */\n createdAt: Scalars[\"ISO8601DateTime\"];\n id: Scalars[\"String\"];\n /** The attributes of the return at the time of version-record creation */\n return: ReturnVersionReturn;\n returnId: Scalars[\"String\"];\n /** Present when the RMA Edit was performed by a person (not an automation) and RBAC is enabled */\n shopifyUserId?: Maybe;\n};\n\n/** The attributes of the return at the time of version-record creation */\nexport type ReturnVersionReturn = {\n __typename?: \"ReturnVersionReturn\";\n carrier?: Maybe;\n createdAt?: Maybe;\n customerEmail?: Maybe;\n customerLocale?: Maybe;\n exchangeDraftOrderId?: Maybe;\n exchangeOrderId?: Maybe;\n exchangeShippingFee?: Maybe;\n feeBreakdown?: Maybe>;\n feesApplied?: Maybe;\n firstScanDate?: Maybe;\n guestReturn?: Maybe;\n isShopNowReturn?: Maybe;\n issuedRefundId?: Maybe;\n items: Array;\n merchantCommentText?: Maybe;\n merchantRma?: Maybe;\n originalShippingRefundAmount?: Maybe;\n paymentMethodId?: Maybe;\n priorRefundsAmount?: Maybe;\n receiptDate?: Maybe;\n refundAmount?: Maybe;\n refundMethod?: Maybe;\n returnStatus?: Maybe;\n rmaNumber?: Maybe;\n shopifyOrderId?: Maybe;\n warehouseReceiptDate?: Maybe;\n};\n\nexport enum Rule {\n RefundMethod = \"REFUND_METHOD\",\n ReturnCost = \"RETURN_COST\",\n ReturnEligibility = \"RETURN_ELIGIBILITY\",\n ReturnItemOverage = \"RETURN_ITEM_OVERAGE\",\n ReturnMethod = \"RETURN_METHOD\",\n}\n\nexport enum RuleValue {\n Boolean = \"BOOLEAN\",\n Datetime = \"DATETIME\",\n Float = \"FLOAT\",\n Integer = \"INTEGER\",\n LessThanInteger = \"LESS_THAN_INTEGER\",\n List = \"LIST\",\n Region = \"REGION\",\n String = \"STRING\",\n ValueOverLimit = \"VALUE_OVER_LIMIT\",\n ValueOverLimitDays = \"VALUE_OVER_LIMIT_DAYS\",\n ValueOverLimitOrders = \"VALUE_OVER_LIMIT_ORDERS\",\n ValueOverLimitReturns = \"VALUE_OVER_LIMIT_RETURNS\",\n ValueOverLimitSpend = \"VALUE_OVER_LIMIT_SPEND\",\n}\n\nexport type SearchItem = {\n __typename?: \"SearchItem\";\n descriptionHtml: Scalars[\"String\"];\n id: Scalars[\"String\"];\n name: Scalars[\"String\"];\n options?: Maybe>;\n productImageAltTxt?: Maybe;\n productImageUrl?: Maybe;\n variantInfo?: Maybe>;\n};\n\nexport type ShopBranding = {\n __typename?: \"ShopBranding\";\n backgroundImage?: Maybe;\n backgroundImageUrl?: Maybe;\n baseBodyTextSize?: Maybe;\n bodyBackground?: Maybe;\n bodyText?: Maybe;\n borderRadius?: Maybe;\n brandPrimary?: Maybe;\n brandSecondary?: Maybe;\n customCss?: Maybe;\n errorColor?: Maybe;\n errorTextColor?: Maybe;\n fixedAppBar?: Maybe;\n fontName?: Maybe;\n fontUrl?: Maybe;\n id: Scalars[\"ID\"];\n isLinkAllCaps?: Maybe;\n isLinkUnderlined?: Maybe;\n logoImage?: Maybe;\n mailFromName?: Maybe;\n marketingImage?: Maybe;\n primaryFont?: Maybe;\n rootMarginBottom?: Maybe;\n rootMarginTop?: Maybe;\n secondaryFont?: Maybe;\n stepDelimiterPosition?: Maybe;\n};\n\nexport type ShopItem = {\n __typename?: \"ShopItem\";\n compareAtPriceAmount?: Maybe;\n displayCompareAtPrice?: Maybe;\n displayPrice: Scalars[\"String\"];\n displayPriceTotal: Scalars[\"String\"];\n eligibilityCriteria?: Maybe>;\n hideDisplayPrice: Scalars[\"Boolean\"];\n id: Scalars[\"String\"];\n isExchangesEnabled: Scalars[\"Boolean\"];\n name: Scalars[\"String\"];\n orderedQuantity: Scalars[\"Int\"];\n priceAmount?: Maybe;\n productId: Scalars[\"String\"];\n productImageAltTxt?: Maybe;\n productImageUrl?: Maybe;\n productTitle: Scalars[\"String\"];\n removedQuantity: Scalars[\"Int\"];\n returnableQuantity: Scalars[\"Int\"];\n sku: Scalars[\"String\"];\n variantId?: Maybe;\n variantInfo?: Maybe>;\n};\n\nexport type ShopItemGrouping = {\n __typename?: \"ShopItemGrouping\";\n behaviors: Array;\n displayName: Scalars[\"String\"];\n lineItemIds: Array;\n slug: Scalars[\"String\"];\n};\n\nexport type ShopItemReturnRule = {\n __typename?: \"ShopItemReturnRule\";\n eligible: Scalars[\"Boolean\"];\n ineligibleReason?: Maybe>;\n ineligibleReasonForExchange?: Maybe;\n ineligibleReasonForReturn?: Maybe;\n returnReason: Scalars[\"String\"];\n};\n\nexport type ShopItemVariantInfo = {\n __typename?: \"ShopItemVariantInfo\";\n name: Scalars[\"String\"];\n value: Scalars[\"String\"];\n};\n\nexport type ShopNowAbort = {\n __typename?: \"ShopNowAbort\";\n /** success, error */\n abortStatus: Scalars[\"String\"];\n errors: Array;\n /** e.g. £1.23 */\n totalRefundFormatted?: Maybe;\n};\n\nexport type ShopNowAbortOption = {\n __typename?: \"ShopNowAbortOption\";\n refundAmount: Money;\n /** e.g. original_payment, gift_card */\n type: Scalars[\"String\"];\n};\n\nexport type ShopNowExpiration = {\n __typename?: \"ShopNowExpiration\";\n expired?: Maybe;\n formattedAmount?: Maybe;\n};\n\nexport type ShopNowSession = {\n __typename?: \"ShopNowSession\";\n abortOptions?: Maybe>;\n expired: Scalars[\"Boolean\"];\n expiresAt: Scalars[\"Int\"];\n returnStatus?: Maybe;\n shopNowAbortEnabled?: Maybe;\n shopNowCheckoutOrderSummaryEnabled?: Maybe;\n shopNowCredit?: Maybe;\n};\n\nexport type ShopOrder = {\n __typename?: \"ShopOrder\";\n billingCountryCode?: Maybe;\n billingProvince?: Maybe;\n billingProvinceCode?: Maybe;\n billingZip?: Maybe;\n eligible: Scalars[\"Boolean\"];\n fromAddress1?: Maybe;\n fromAddress2?: Maybe;\n fromCity?: Maybe;\n fromCountryCode?: Maybe;\n fromFirstName?: Maybe;\n fromLastName?: Maybe;\n fromProvince?: Maybe;\n fromProvinceCode?: Maybe;\n fromZip?: Maybe;\n guestLoginEmail: Scalars[\"String\"];\n ineligibleDisplayText?: Maybe;\n items: Array;\n orderLineItemGroupings: Array;\n orderNumber: Scalars[\"String\"];\n presentmentCurrency: Scalars[\"String\"];\n presentmentCurrencyEstimatedUsdConversionRate?: Maybe;\n presentmentCurrencySubunitToUnit: Scalars[\"Int\"];\n shopId: Scalars[\"String\"];\n shopifyOrderId: Scalars[\"String\"];\n};\n\nexport type TrackingEvent = {\n __typename?: \"TrackingEvent\";\n event?: Maybe;\n eventCity?: Maybe;\n eventCode?: Maybe;\n eventCountryCode?: Maybe;\n eventDate?: Maybe;\n eventState?: Maybe;\n eventZip?: Maybe;\n};\n\nexport type TrackingInfo = {\n __typename?: \"TrackingInfo\";\n carrierId?: Maybe;\n carrierName?: Maybe;\n estimatedDeliveryDateBegin?: Maybe;\n estimatedDeliveryDateEnd?: Maybe;\n id: Scalars[\"String\"];\n locale?: Maybe;\n narvarStatus?: Maybe;\n status?: Maybe;\n trackDetails?: Maybe>;\n trackingNumber?: Maybe;\n trackingUrl?: Maybe;\n};\n\nexport type Translation = {\n __typename?: \"Translation\";\n category?: Maybe;\n key: Scalars[\"String\"];\n locale?: Maybe;\n prelude?: Maybe;\n suggestion?: Maybe;\n value?: Maybe;\n};\n\n/** A user-readable error */\nexport type UserError = {\n __typename?: \"UserError\";\n /** Unique error identifier */\n code: Scalars[\"String\"];\n /** A description of the error */\n message: Scalars[\"String\"];\n};\n\nexport type UserPreferences = {\n __typename?: \"UserPreferences\";\n carriers: Array;\n locations: Array;\n profile?: Maybe;\n returnMethods: Array;\n};\n\n/** Structured Data for Returns User Preferences Input */\nexport type UserPreferencesInput = {\n carriers: Array;\n locations: Array;\n returnMethods: Array;\n};\n\nexport type VariantInfo = {\n __typename?: \"VariantInfo\";\n availabilityStatus?: Maybe;\n availableForSale?: Maybe;\n displayName: Scalars[\"String\"];\n imageAlt?: Maybe;\n imageSrc?: Maybe;\n inventoryQuantity?: Maybe;\n option0?: Maybe;\n option1?: Maybe;\n option2?: Maybe;\n option3?: Maybe;\n priceAmount?: Maybe;\n priceCurrency?: Maybe;\n priceFormatted?: Maybe;\n productId?: Maybe;\n sku?: Maybe;\n variantId?: Maybe;\n};\n\nexport type AddressFragment = {\n __typename?: \"Address\";\n address1: string;\n address2?: string | null;\n city: string;\n company?: string | null;\n country: string;\n countryCodeV2: string;\n firstName: string;\n lastName: string;\n latitude?: string | null;\n longitude?: string | null;\n name: string;\n phone?: string | null;\n province?: string | null;\n provinceCode?: string | null;\n zipcode?: string | null;\n};\n\nexport type FeeBreakdownFragment = {\n __typename?: \"FeeBreakdown\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n description: string;\n displayWithReturnMethod: boolean;\n shopNowClawback: boolean;\n taxCode?: string | null;\n};\n\nexport type AmountFragment = {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n};\n\nexport type ReturnLineItemFragment = {\n __typename?: \"ReturnLineItem\";\n id: string;\n imageUrl?: string | null;\n name: string;\n productId: string;\n quantity: number;\n title: string;\n variantId: string;\n price: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n returnReason: { __typename?: \"ReturnReasonHash\"; id: string; name: string };\n};\n\nexport type DiscountFragment = {\n __typename?: \"Discount\";\n targetType: string;\n discountAmount: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n};\n\nexport type LineItemFragment = {\n __typename?: \"LineItem\";\n id?: string | null;\n name: string;\n imageUrl?: string | null;\n productId: string;\n quantity: number;\n title: string;\n variantId: string;\n cost: {\n __typename?: \"LineItemCost\";\n amountPerQuantity: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n discountedAmountPerQuantity: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n subtotal: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n total: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n };\n discounts: Array<{\n __typename?: \"Discount\";\n targetType: string;\n discountAmount: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n }>;\n price: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n};\n\nexport type PaymentFragment = {\n __typename?: \"Payment\";\n customerPmtId: string;\n paymentClientSecret: string;\n paymentGateway: string;\n paymentGatewayDisplay: string;\n value: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n};\n\nexport type CartSummaryFragment = {\n __typename?: \"CartSummary\";\n discountCodes?: Array | null;\n discounts?: Array<{\n __typename?: \"Discount\";\n targetType: string;\n discountAmount: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n }> | null;\n subtotal: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n tax: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n total: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n shopNowCredit?: {\n __typename?: \"Credit\";\n total: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n used: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n } | null;\n};\n\nexport type ReturnCartFragment = {\n __typename?: \"ReturnCart\";\n cartSummary: {\n __typename?: \"CartSummary\";\n discountCodes?: Array | null;\n discounts?: Array<{\n __typename?: \"Discount\";\n targetType: string;\n discountAmount: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n }> | null;\n subtotal: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n tax: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n total: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n shopNowCredit?: {\n __typename?: \"Credit\";\n total: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n used: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n } | null;\n };\n feeBreakdown: Array<{\n __typename?: \"FeeBreakdown\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n description: string;\n displayWithReturnMethod: boolean;\n shopNowClawback: boolean;\n taxCode?: string | null;\n }>;\n lineItems: Array<{\n __typename?: \"ReturnLineItem\";\n id: string;\n imageUrl?: string | null;\n name: string;\n productId: string;\n quantity: number;\n title: string;\n variantId: string;\n price: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n returnReason: { __typename?: \"ReturnReasonHash\"; id: string; name: string };\n }>;\n};\n\nexport type CartFragment = {\n __typename?: \"Cart\";\n totalQuantity: number;\n billingAddress: {\n __typename?: \"Address\";\n address1: string;\n address2?: string | null;\n city: string;\n company?: string | null;\n country: string;\n countryCodeV2: string;\n firstName: string;\n lastName: string;\n latitude?: string | null;\n longitude?: string | null;\n name: string;\n phone?: string | null;\n province?: string | null;\n provinceCode?: string | null;\n zipcode?: string | null;\n };\n cartSummary: {\n __typename?: \"CartSummary\";\n discountCodes?: Array | null;\n discounts?: Array<{\n __typename?: \"Discount\";\n targetType: string;\n discountAmount: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n }> | null;\n subtotal: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n tax: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n total: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n shopNowCredit?: {\n __typename?: \"Credit\";\n total: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n used: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n } | null;\n };\n shippingAddress: {\n __typename?: \"Address\";\n address1: string;\n address2?: string | null;\n city: string;\n company?: string | null;\n country: string;\n countryCodeV2: string;\n firstName: string;\n lastName: string;\n latitude?: string | null;\n longitude?: string | null;\n name: string;\n phone?: string | null;\n province?: string | null;\n provinceCode?: string | null;\n zipcode?: string | null;\n };\n feeBreakdown: Array<{\n __typename?: \"FeeBreakdown\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n description: string;\n displayWithReturnMethod: boolean;\n shopNowClawback: boolean;\n taxCode?: string | null;\n }>;\n lineItems: Array<{\n __typename?: \"LineItem\";\n id?: string | null;\n name: string;\n imageUrl?: string | null;\n productId: string;\n quantity: number;\n title: string;\n variantId: string;\n cost: {\n __typename?: \"LineItemCost\";\n amountPerQuantity: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n discountedAmountPerQuantity: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n subtotal: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n total: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n };\n discounts: Array<{\n __typename?: \"Discount\";\n targetType: string;\n discountAmount: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n }>;\n price: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n }>;\n};\n\nexport type RefundFragment = {\n __typename?: \"Refund\";\n refundMethod: string;\n refundMethodDescription: string;\n refundMethodDisplay: string;\n value: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n};\n\nexport type ShopNowV2CheckoutQueryVariables = Exact<{\n cartToken: Scalars[\"String\"];\n code: Scalars[\"String\"];\n}>;\n\nexport type ShopNowV2CheckoutQuery = {\n __typename?: \"CustomerQuery\";\n shopNowV2Checkout: {\n __typename?: \"CheckoutResult\";\n data?: {\n __typename?: \"Checkout\";\n feeBreakdown: Array<{\n __typename?: \"FeeBreakdown\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n description: string;\n displayWithReturnMethod: boolean;\n shopNowClawback: boolean;\n taxCode?: string | null;\n }>;\n overallCartSummary: {\n __typename?: \"CartSummary\";\n discountCodes?: Array | null;\n discounts?: Array<{\n __typename?: \"Discount\";\n targetType: string;\n discountAmount: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n }> | null;\n subtotal: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n tax: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n total: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n shopNowCredit?: {\n __typename?: \"Credit\";\n total: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n used: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n } | null;\n };\n payment?: {\n __typename?: \"Payment\";\n customerPmtId: string;\n paymentClientSecret: string;\n paymentGateway: string;\n paymentGatewayDisplay: string;\n value: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n } | null;\n refund: {\n __typename?: \"Refund\";\n refundMethod: string;\n refundMethodDescription: string;\n refundMethodDisplay: string;\n value: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n };\n returnCart: {\n __typename?: \"ReturnCart\";\n cartSummary: {\n __typename?: \"CartSummary\";\n discountCodes?: Array | null;\n discounts?: Array<{\n __typename?: \"Discount\";\n targetType: string;\n discountAmount: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n }> | null;\n subtotal: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n tax: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n total: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n shopNowCredit?: {\n __typename?: \"Credit\";\n total: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n used: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n } | null;\n };\n feeBreakdown: Array<{\n __typename?: \"FeeBreakdown\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n description: string;\n displayWithReturnMethod: boolean;\n shopNowClawback: boolean;\n taxCode?: string | null;\n }>;\n lineItems: Array<{\n __typename?: \"ReturnLineItem\";\n id: string;\n imageUrl?: string | null;\n name: string;\n productId: string;\n quantity: number;\n title: string;\n variantId: string;\n price: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n returnReason: {\n __typename?: \"ReturnReasonHash\";\n id: string;\n name: string;\n };\n }>;\n };\n shopNowCart: {\n __typename?: \"Cart\";\n totalQuantity: number;\n billingAddress: {\n __typename?: \"Address\";\n address1: string;\n address2?: string | null;\n city: string;\n company?: string | null;\n country: string;\n countryCodeV2: string;\n firstName: string;\n lastName: string;\n latitude?: string | null;\n longitude?: string | null;\n name: string;\n phone?: string | null;\n province?: string | null;\n provinceCode?: string | null;\n zipcode?: string | null;\n };\n cartSummary: {\n __typename?: \"CartSummary\";\n discountCodes?: Array | null;\n discounts?: Array<{\n __typename?: \"Discount\";\n targetType: string;\n discountAmount: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n }> | null;\n subtotal: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n tax: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n total: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n shopNowCredit?: {\n __typename?: \"Credit\";\n total: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n used: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n } | null;\n };\n shippingAddress: {\n __typename?: \"Address\";\n address1: string;\n address2?: string | null;\n city: string;\n company?: string | null;\n country: string;\n countryCodeV2: string;\n firstName: string;\n lastName: string;\n latitude?: string | null;\n longitude?: string | null;\n name: string;\n phone?: string | null;\n province?: string | null;\n provinceCode?: string | null;\n zipcode?: string | null;\n };\n feeBreakdown: Array<{\n __typename?: \"FeeBreakdown\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n description: string;\n displayWithReturnMethod: boolean;\n shopNowClawback: boolean;\n taxCode?: string | null;\n }>;\n lineItems: Array<{\n __typename?: \"LineItem\";\n id?: string | null;\n name: string;\n imageUrl?: string | null;\n productId: string;\n quantity: number;\n title: string;\n variantId: string;\n cost: {\n __typename?: \"LineItemCost\";\n amountPerQuantity: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n discountedAmountPerQuantity: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n subtotal: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n total: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n };\n discounts: Array<{\n __typename?: \"Discount\";\n targetType: string;\n discountAmount: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n }>;\n price: {\n __typename?: \"Amount\";\n amount: number;\n currencyCode: string;\n formattedValue: string;\n };\n }>;\n };\n } | null;\n errors: Array<{ __typename?: \"UserError\"; code: string; message: string }>;\n };\n};\n\nexport type SubmitShopNowV2CheckoutMutationVariables = Exact<{\n checkout: CheckoutCompleteInput;\n}>;\n\nexport type SubmitShopNowV2CheckoutMutation = {\n __typename?: \"CustomerMutation\";\n shopNowV2Checkout: {\n __typename?: \"CheckoutCompleteResult\";\n data?: { __typename?: \"CheckoutComplete\"; message: string } | null;\n errors: Array<{ __typename?: \"UserError\"; code: string; message: string }>;\n };\n};\n\nexport type ApplyDiscountCodeMutationVariables = Exact<{\n cartToken: Scalars[\"String\"];\n code: Scalars[\"String\"];\n couponCodes: Array | Scalars[\"String\"];\n}>;\n\nexport type ApplyDiscountCodeMutation = {\n __typename?: \"CustomerMutation\";\n applyDiscountCode: {\n __typename?: \"DiscountCodeResult\";\n data?: string | null;\n errors: Array<{ __typename?: \"UserError\"; code: string; message: string }>;\n };\n};\n\nexport const AmountFragmentDoc = gql`\n fragment Amount on Amount {\n amount\n currencyCode\n formattedValue\n }\n`;\nexport const PaymentFragmentDoc = gql`\n fragment Payment on Payment {\n customerPmtId\n paymentClientSecret\n paymentGateway\n paymentGatewayDisplay\n value {\n ...Amount\n }\n }\n ${AmountFragmentDoc}\n`;\nexport const DiscountFragmentDoc = gql`\n fragment Discount on Discount {\n discountAmount {\n ...Amount\n }\n targetType\n }\n ${AmountFragmentDoc}\n`;\nexport const CartSummaryFragmentDoc = gql`\n fragment CartSummary on CartSummary {\n discountCodes\n discounts {\n ...Discount\n }\n subtotal {\n ...Amount\n }\n tax {\n ...Amount\n }\n total {\n ...Amount\n }\n shopNowCredit {\n total {\n ...Amount\n }\n used {\n ...Amount\n }\n }\n }\n ${DiscountFragmentDoc}\n ${AmountFragmentDoc}\n`;\nexport const FeeBreakdownFragmentDoc = gql`\n fragment FeeBreakdown on FeeBreakdown {\n amount\n currencyCode\n formattedValue\n description\n displayWithReturnMethod\n shopNowClawback\n taxCode\n }\n`;\nexport const ReturnLineItemFragmentDoc = gql`\n fragment ReturnLineItem on ReturnLineItem {\n id\n imageUrl\n name\n price {\n ...Amount\n }\n productId\n quantity\n returnReason {\n id\n name\n }\n title\n variantId\n }\n ${AmountFragmentDoc}\n`;\nexport const ReturnCartFragmentDoc = gql`\n fragment ReturnCart on ReturnCart {\n cartSummary {\n ...CartSummary\n }\n feeBreakdown {\n ...FeeBreakdown\n }\n lineItems {\n ...ReturnLineItem\n }\n }\n ${CartSummaryFragmentDoc}\n ${FeeBreakdownFragmentDoc}\n ${ReturnLineItemFragmentDoc}\n`;\nexport const AddressFragmentDoc = gql`\n fragment Address on Address {\n address1\n address2\n city\n company\n country\n countryCodeV2\n firstName\n lastName\n latitude\n longitude\n name\n phone\n province\n provinceCode\n zipcode\n }\n`;\nexport const LineItemFragmentDoc = gql`\n fragment LineItem on LineItem {\n cost {\n amountPerQuantity {\n ...Amount\n }\n discountedAmountPerQuantity {\n ...Amount\n }\n subtotal {\n ...Amount\n }\n total {\n ...Amount\n }\n }\n discounts {\n ...Discount\n }\n id\n name\n imageUrl\n price {\n ...Amount\n }\n productId\n quantity\n title\n variantId\n }\n ${AmountFragmentDoc}\n ${DiscountFragmentDoc}\n`;\nexport const CartFragmentDoc = gql`\n fragment Cart on Cart {\n billingAddress {\n ...Address\n }\n cartSummary {\n ...CartSummary\n }\n shippingAddress {\n ...Address\n }\n totalQuantity\n feeBreakdown {\n ...FeeBreakdown\n }\n lineItems {\n ...LineItem\n }\n }\n ${AddressFragmentDoc}\n ${CartSummaryFragmentDoc}\n ${FeeBreakdownFragmentDoc}\n ${LineItemFragmentDoc}\n`;\nexport const RefundFragmentDoc = gql`\n fragment Refund on Refund {\n refundMethod\n refundMethodDescription\n refundMethodDisplay\n value {\n ...Amount\n }\n }\n ${AmountFragmentDoc}\n`;\nexport const ShopNowV2CheckoutDocument = gql`\n query shopNowV2Checkout($cartToken: String!, $code: String!) {\n shopNowV2Checkout(cartToken: $cartToken, code: $code) {\n data {\n feeBreakdown {\n ...FeeBreakdown\n }\n overallCartSummary {\n ...CartSummary\n }\n payment {\n ...Payment\n }\n refund {\n ...Refund\n }\n returnCart {\n ...ReturnCart\n }\n shopNowCart {\n ...Cart\n }\n }\n errors {\n code\n message\n }\n }\n }\n ${FeeBreakdownFragmentDoc}\n ${CartSummaryFragmentDoc}\n ${PaymentFragmentDoc}\n ${RefundFragmentDoc}\n ${ReturnCartFragmentDoc}\n ${CartFragmentDoc}\n`;\n\n/**\n * __useShopNowV2CheckoutQuery__\n *\n * To run a query within a React component, call `useShopNowV2CheckoutQuery` and pass it any options that fit your needs.\n * When your component renders, `useShopNowV2CheckoutQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useShopNowV2CheckoutQuery({\n * variables: {\n * cartToken: // value for 'cartToken'\n * code: // value for 'code'\n * },\n * });\n */\nexport function useShopNowV2CheckoutQuery(\n baseOptions: Apollo.QueryHookOptions<\n ShopNowV2CheckoutQuery,\n ShopNowV2CheckoutQueryVariables\n > &\n (\n | { variables: ShopNowV2CheckoutQueryVariables; skip?: boolean }\n | { skip: boolean }\n ),\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useQuery<\n ShopNowV2CheckoutQuery,\n ShopNowV2CheckoutQueryVariables\n >(ShopNowV2CheckoutDocument, options);\n}\nexport function useShopNowV2CheckoutLazyQuery(\n baseOptions?: Apollo.LazyQueryHookOptions<\n ShopNowV2CheckoutQuery,\n ShopNowV2CheckoutQueryVariables\n >,\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useLazyQuery<\n ShopNowV2CheckoutQuery,\n ShopNowV2CheckoutQueryVariables\n >(ShopNowV2CheckoutDocument, options);\n}\nexport function useShopNowV2CheckoutSuspenseQuery(\n baseOptions?:\n | Apollo.SkipToken\n | Apollo.SuspenseQueryHookOptions<\n ShopNowV2CheckoutQuery,\n ShopNowV2CheckoutQueryVariables\n >,\n) {\n const options =\n baseOptions === Apollo.skipToken\n ? baseOptions\n : { ...defaultOptions, ...baseOptions };\n return Apollo.useSuspenseQuery<\n ShopNowV2CheckoutQuery,\n ShopNowV2CheckoutQueryVariables\n >(ShopNowV2CheckoutDocument, options);\n}\nexport type ShopNowV2CheckoutQueryHookResult = ReturnType<\n typeof useShopNowV2CheckoutQuery\n>;\nexport type ShopNowV2CheckoutLazyQueryHookResult = ReturnType<\n typeof useShopNowV2CheckoutLazyQuery\n>;\nexport type ShopNowV2CheckoutSuspenseQueryHookResult = ReturnType<\n typeof useShopNowV2CheckoutSuspenseQuery\n>;\nexport type ShopNowV2CheckoutQueryResult = Apollo.QueryResult<\n ShopNowV2CheckoutQuery,\n ShopNowV2CheckoutQueryVariables\n>;\nexport const SubmitShopNowV2CheckoutDocument = gql`\n mutation submitShopNowV2Checkout($checkout: CheckoutCompleteInput!) {\n shopNowV2Checkout(checkout: $checkout) {\n data {\n message\n }\n errors {\n code\n message\n }\n }\n }\n`;\nexport type SubmitShopNowV2CheckoutMutationFn = Apollo.MutationFunction<\n SubmitShopNowV2CheckoutMutation,\n SubmitShopNowV2CheckoutMutationVariables\n>;\n\n/**\n * __useSubmitShopNowV2CheckoutMutation__\n *\n * To run a mutation, you first call `useSubmitShopNowV2CheckoutMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useSubmitShopNowV2CheckoutMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [submitShopNowV2CheckoutMutation, { data, loading, error }] = useSubmitShopNowV2CheckoutMutation({\n * variables: {\n * checkout: // value for 'checkout'\n * },\n * });\n */\nexport function useSubmitShopNowV2CheckoutMutation(\n baseOptions?: Apollo.MutationHookOptions<\n SubmitShopNowV2CheckoutMutation,\n SubmitShopNowV2CheckoutMutationVariables\n >,\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useMutation<\n SubmitShopNowV2CheckoutMutation,\n SubmitShopNowV2CheckoutMutationVariables\n >(SubmitShopNowV2CheckoutDocument, options);\n}\nexport type SubmitShopNowV2CheckoutMutationHookResult = ReturnType<\n typeof useSubmitShopNowV2CheckoutMutation\n>;\nexport type SubmitShopNowV2CheckoutMutationResult =\n Apollo.MutationResult;\nexport type SubmitShopNowV2CheckoutMutationOptions = Apollo.BaseMutationOptions<\n SubmitShopNowV2CheckoutMutation,\n SubmitShopNowV2CheckoutMutationVariables\n>;\nexport const ApplyDiscountCodeDocument = gql`\n mutation applyDiscountCode(\n $cartToken: String!\n $code: String!\n $couponCodes: [String!]!\n ) {\n applyDiscountCode(\n cartToken: $cartToken\n code: $code\n couponCodes: $couponCodes\n ) {\n data\n errors {\n code\n message\n }\n }\n }\n`;\nexport type ApplyDiscountCodeMutationFn = Apollo.MutationFunction<\n ApplyDiscountCodeMutation,\n ApplyDiscountCodeMutationVariables\n>;\n\n/**\n * __useApplyDiscountCodeMutation__\n *\n * To run a mutation, you first call `useApplyDiscountCodeMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useApplyDiscountCodeMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [applyDiscountCodeMutation, { data, loading, error }] = useApplyDiscountCodeMutation({\n * variables: {\n * cartToken: // value for 'cartToken'\n * code: // value for 'code'\n * couponCodes: // value for 'couponCodes'\n * },\n * });\n */\nexport function useApplyDiscountCodeMutation(\n baseOptions?: Apollo.MutationHookOptions<\n ApplyDiscountCodeMutation,\n ApplyDiscountCodeMutationVariables\n >,\n) {\n const options = { ...defaultOptions, ...baseOptions };\n return Apollo.useMutation<\n ApplyDiscountCodeMutation,\n ApplyDiscountCodeMutationVariables\n >(ApplyDiscountCodeDocument, options);\n}\nexport type ApplyDiscountCodeMutationHookResult = ReturnType<\n typeof useApplyDiscountCodeMutation\n>;\nexport type ApplyDiscountCodeMutationResult =\n Apollo.MutationResult;\nexport type ApplyDiscountCodeMutationOptions = Apollo.BaseMutationOptions<\n ApplyDiscountCodeMutation,\n ApplyDiscountCodeMutationVariables\n>;\n","import { useMemo, useState } from \"react\";\nimport { ADDRESS_DEFAULT, mergeAddress } from \"../../modules/address\";\n\nexport interface Address {\n firstName: string;\n lastName: string;\n address1: string;\n address2: string;\n city: string;\n zip: string;\n province: string;\n provinceCode: string;\n country: string;\n countryCode: string;\n countryCodeV2: string;\n}\n\nexport interface AddressEvent {\n fromAddress: Address;\n isValid: boolean;\n}\n\nconst useAddress = () => {\n const [isNewAddressValid, setIsNewAddressValid] = useState(false);\n const [newAddressDraft, setNewAddressDraft] = useState(ADDRESS_DEFAULT);\n\n const address = useMemo(\n () =>\n mergeAddress(\n // TODO: Add the missing address which ran into error\n // state.fromAddress,\n // submittingAddressError.address,\n newAddressDraft,\n ),\n [newAddressDraft],\n );\n\n const onChangeAddress = (event: AddressEvent) => {\n const { fromAddress, isValid } = event;\n setIsNewAddressValid(isValid);\n setNewAddressDraft(fromAddress);\n };\n\n return {\n onChangeAddress,\n isNewAddressValid,\n newAddressDraft,\n address,\n };\n};\n\nexport default useAddress;\n","import React from \"react\";\nimport ErrorSnackbar from \"../components/ErrorSnackbar\";\nimport MailingAddressForm from \"../steps/ConfirmMailingAddress/MailingAddressForm\";\nimport errorNotifier from \"../../shared/modules/error-notifier\";\nimport { getTranslation } from \"../../shared/modules/config\";\nimport { Address, AddressEvent } from \"./hooks/useAddress\";\n\ninterface AddressProps {\n onChange: (event: AddressEvent) => void;\n errorMessage?: string;\n address: Address;\n}\n\nconst BillingAddress = ({ onChange, address, errorMessage }: AddressProps) => {\n if (!errorMessage) return null;\n return (\n <>\n \n {\n errorNotifier.warn(\n \"Submit button of should be hidden, but we received onSubmit event\",\n { fromAddress },\n );\n }}\n disable={null}\n submitLabel={getTranslation(\"bad_mailing_address_submit\")}\n validateZip\n exclude={[\"phone\", \"submit\"]}\n />\n \n );\n};\n\nexport default BillingAddress;\n","import { useState } from \"react\";\nimport { useStripeComponents } from \"../../contexts/StripeProvider\";\nimport { confirmCardPayment } from \"../../steps/Review/CheckoutForm\";\nimport { Address } from \"./useAddress\";\n\ninterface PaymentProps {\n secret: string;\n newAddressDraft: Address;\n}\n\ninterface CardPaymentResult {\n paymentId: string;\n}\n\nexport type SubmitPaymentCheckoutFn = () => Promise;\n\nconst usePayment = ({ secret }: PaymentProps) => {\n const [capturingPayment, setCapturingPayment] = useState(false);\n const { stripe, elements: stripeElement } = useStripeComponents();\n const [paymentError, setPaymentError] = useState();\n const [succeededPaymentIntentId, setSucceededPaymentIntentId] = useState(\"\");\n\n const makePayment: SubmitPaymentCheckoutFn = () => {\n setCapturingPayment(true);\n setPaymentError(\"\");\n setSucceededPaymentIntentId(\"\");\n\n return confirmCardPayment({\n stripe,\n elements: stripeElement,\n secret,\n })\n .then((result: CardPaymentResult) => {\n setCapturingPayment(false);\n setSucceededPaymentIntentId(result.paymentId);\n return result;\n })\n .catch((error: Error) => {\n setCapturingPayment(false);\n setPaymentError(error.message ?? error);\n throw error;\n });\n };\n\n return {\n capturingPayment,\n succeededPaymentIntentId,\n makePayment,\n paymentError,\n };\n};\n\nexport default usePayment;\n","import { useNavigate } from \"react-router-dom\";\nimport {\n PaymentInput,\n useSubmitShopNowV2CheckoutMutation,\n} from \"../../../gql/__generated__/schema\";\nimport { CONFIRMATION_ROUTE } from \"../../components/AppRouter\";\nimport { SubmitPaymentCheckoutFn } from \"./usePayment\";\n\ninterface SubmitProps {\n paymentRequired: boolean;\n makePayment: SubmitPaymentCheckoutFn;\n paymentClientSecret: string;\n code: string;\n cartToken: string;\n updateConsumerPreferences: () => Promise;\n}\n\nconst useSubmit = ({\n paymentRequired,\n makePayment,\n code,\n cartToken,\n updateConsumerPreferences,\n}: SubmitProps) => {\n const navigate = useNavigate();\n const [\n submitCheckoutAPI,\n { data: submitData, loading: loadingSubmitCheckout },\n ] = useSubmitShopNowV2CheckoutMutation();\n\n const submitCheckoutComplete = async (payment?: PaymentInput) =>\n submitCheckoutAPI({\n variables: {\n checkout: {\n code,\n cartToken,\n payment,\n },\n },\n });\n\n const onSubmitHandler = async () => {\n try {\n if (paymentRequired) {\n const result = await makePayment();\n await submitCheckoutComplete({\n gateway: \"stripe\",\n paymentIntentId: result.paymentId,\n });\n } else {\n await submitCheckoutComplete();\n }\n\n await updateConsumerPreferences();\n navigate(CONFIRMATION_ROUTE);\n } catch (error) {\n console.error(error);\n }\n };\n return {\n onSubmitHandler,\n submitData,\n loadingSubmitCheckout,\n };\n};\n\nexport default useSubmit;\n","import { useEffect, useState } from \"react\";\nimport { useApplyDiscountCodeMutation } from \"../../../gql/__generated__/schema\";\n\ninterface DiscountCodeProps {\n code: string;\n token: string;\n discountCodeSaved?: string | null;\n onSuccess: () => Promise;\n}\n\nexport const useDiscountCode = ({\n code,\n token,\n discountCodeSaved,\n onSuccess,\n}: DiscountCodeProps) => {\n const [discountCode, setDiscountCode] = useState(discountCodeSaved);\n const [discountLoading, setDiscountLoading] = useState(false);\n\n useEffect(() => {\n setDiscountCode(discountCodeSaved);\n }, [discountCodeSaved]);\n\n const [\n submitDiscountApi,\n { data: discountSubmitData, error: discountApiError },\n ] = useApplyDiscountCodeMutation();\n\n const applyDiscount = (newDiscountCode: string) => {\n setDiscountCode(newDiscountCode);\n setDiscountLoading(true);\n\n if (!newDiscountCode)\n return Promise.reject(new Error(\"No discount code provided\"));\n\n return submitDiscountApi({\n variables: {\n cartToken: token,\n code,\n couponCodes: [newDiscountCode],\n },\n })\n .then(async () => {\n await onSuccess();\n setDiscountLoading(false);\n })\n .catch(() => {\n setDiscountLoading(false);\n });\n };\n\n const removeDiscount = () => {\n setDiscountLoading(true);\n\n return submitDiscountApi({\n variables: {\n cartToken: token,\n code,\n couponCodes: [],\n },\n })\n .then(async () => {\n await onSuccess();\n setDiscountLoading(false);\n setDiscountCode(null);\n })\n .catch(() => {\n setDiscountLoading(false);\n });\n };\n\n const discountError =\n discountApiError?.message ??\n discountSubmitData?.applyDiscountCode.errors[0]?.message;\n\n return {\n discountCode,\n applyDiscount,\n removeDiscount,\n submitDiscountApi,\n discountSubmitData,\n discountLoading,\n discountError,\n };\n};\n","import Button from \"@material-ui/core/Button\";\nimport TextField from \"@material-ui/core/TextField\";\nimport Chip from \"@material-ui/core/Chip\";\nimport React, { FC, useState } from \"react\";\nimport { useStyles } from \"./styles\";\nimport { config } from \"../config\";\nimport Spinner from \"../../shared/components/Spinner\";\n\ninterface DiscountCodeProps {\n discountCode?: string | null;\n onApply: (code: string) => Promise;\n onRemove: () => Promise;\n discountLoading?: boolean;\n}\n\nconst DiscountCode: FC = ({\n discountCode,\n onApply,\n onRemove,\n discountLoading,\n}) => {\n const [inputValue, setInputValue] = useState(\"\");\n //eslint-disable-next-line @typescript-eslint/no-explicit-any\n const classes: any = useStyles();\n\n const onClickApply = () => {\n onApply(inputValue)\n .then(() => setInputValue(\"\"))\n .catch(console.error);\n };\n\n const onClickRemove = () => {\n onRemove().catch(console.error);\n };\n\n return (\n
\n {discountCode ? (\n \n ) : (\n <>\n setInputValue(e.target.value)}\n //TODO: Add translations\n placeholder=\"Discount code\"\n variant=\"outlined\"\n size=\"small\"\n className={classes.discountInputField}\n />\n \n \n {/* TODO: Add translations */}\n {config.translations.checkout_discount_apply ?? \"Apply\"}\n \n \n \n )}\n {discountLoading && }\n
\n );\n};\n\nexport default DiscountCode;\n","import { useEffect, useState } from \"react\";\n\nimport { z } from \"zod\";\nconst optionalNullableString = () => z.string().optional().nullable();\nexport const confirmationStorageSchema = z.object({\n type: z.string(),\n refundMethod: z.string().optional(),\n noInstructions: z.boolean(),\n email: z.string().email().optional(),\n guestReturn: z.boolean(),\n shipment: z.object({\n items: z.array(\n z.object({\n name: z.string(),\n price: z.object({\n value: z.number(),\n currency: z.string(),\n }),\n quantity: z.number(),\n reason: z.object({}).passthrough(),\n customerComments: optionalNullableString(),\n imageUrl: z.string().url().optional().nullable(),\n sku: z.string().optional().nullable(),\n }),\n ),\n returnLabels: z.array(\n z.object({\n labelType: z.string(),\n mimeType: z.string(),\n labelUrl: z.string().url().nullable().optional(),\n }),\n ),\n }),\n providerMoniker: z.string(),\n location: z\n .object({\n id: z.string(),\n storeName: optionalNullableString(),\n latitude: z.number().optional(),\n longitude: z.number().optional(),\n storeId: optionalNullableString(),\n displayName: optionalNullableString(),\n locationType: optionalNullableString(),\n logoUrls: z.array(z.string()).optional().nullable(),\n openingHours: z.array(z.unknown()).optional().nullable(),\n phoneNumber: optionalNullableString(),\n address: z\n .object({\n address1: optionalNullableString(),\n address2: optionalNullableString(),\n city: optionalNullableString(),\n phone: optionalNullableString(),\n state: optionalNullableString(),\n zip: optionalNullableString(),\n regionCode: optionalNullableString(),\n postalCode: optionalNullableString(),\n countryCode: optionalNullableString(),\n })\n .optional(),\n })\n .optional(),\n savePreferences: z.boolean(),\n orderId: z.string(),\n selectedRefundMethodType: z.string().optional(),\n});\n\nexport type ConfirmationStorage = z.infer;\n\nconst useCheckoutLocalStorageData = () => {\n const [confirmationData, setConfirmationData] =\n useState();\n\n const [error, setError] = useState(null);\n useEffect(() => {\n try {\n const state = JSON.parse(\n window.localStorage.getItem(\"nv_shop_now_v2_confirmation\") ?? \"{}\",\n );\n //TODO: Remove local storage after parsing\n const data = confirmationStorageSchema.parse(state);\n setConfirmationData(data);\n } catch (e) {\n console.error(e);\n setError(\"There was an error processing your request.\");\n }\n }, []);\n\n return {\n confirmationData,\n errorParsingLocalStorage: error,\n };\n};\n\nexport default useCheckoutLocalStorageData;\n","import React, { useCallback, useEffect } from \"react\";\nimport { useSearchParams } from \"react-router-dom\";\nimport isNil from \"lodash/isNil\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Typography from \"@material-ui/core/Typography\";\nimport {\n CommonEvent,\n ReviewSummaryPayload,\n} from \"@narvar/nth-kit-returns-headless\";\nimport ReturnCartCostPanel from \"./ReturnCartCostPanel\";\nimport { useStyles } from \"./styles\";\nimport useTransformToNth from \"./hooks/useTransformToNth\";\nimport { useShopNowV2CheckoutQuery } from \"../../gql/__generated__/schema\";\nimport useConsumerSettings from \"../hooks/useConsumerSettings\";\nimport CheckoutForm from \"../steps/Review/CheckoutForm\";\nimport { ADDRESS_DEFAULT, mergeAddress } from \"../modules/address\";\nimport useAddress from \"./hooks/useAddress\";\nimport BillingAddress from \"./BillingAddress\";\nimport usePayment from \"./hooks/usePayment\";\nimport useSubmit from \"./hooks/useSubmit\";\nimport { useDiscountCode } from \"./hooks/useDiscountCode\";\nimport { redirectToShop } from \"../../shared/modules/frame\";\nimport DiscountCode from \"./DiscountCode\";\nimport { config } from \"../config\";\nimport { usePreferences } from \"./hooks/usePreferences\";\nimport { ReviewSummaryRaw } from \"../ReviewSummary\";\n\nconst Checkout = () => {\n //eslint-disable-next-line @typescript-eslint/no-explicit-any\n const classes: any = useStyles();\n\n const [searchParams] = useSearchParams();\n const code = searchParams.get(\"c\") ?? \"\";\n const token = searchParams.get(\"t\") ?? \"\";\n const { localeFull, includeCurrency } = useConsumerSettings();\n const { onChangeAddress, newAddressDraft } = useAddress();\n\n const {\n data: checkoutResponse,\n loading: loadingCheckoutData,\n refetch: refetchCheckoutData,\n } = useShopNowV2CheckoutQuery({\n variables: {\n cartToken: token,\n code: code,\n },\n });\n\n const checkoutData = checkoutResponse?.shopNowV2Checkout.data;\n const paymentClientSecret = checkoutData?.payment?.paymentClientSecret ?? \"\";\n const paymentRequired =\n (checkoutData?.overallCartSummary?.total?.amount || 0) > 0;\n const discountCodeSaved = checkoutData?.overallCartSummary.discountCodes?.[0];\n\n const onSuccessDiscountCodeApply = useCallback(async () => {\n await refetchCheckoutData();\n }, [refetchCheckoutData]);\n\n const {\n discountCode,\n applyDiscount,\n removeDiscount,\n discountError,\n discountLoading,\n } = useDiscountCode({\n code,\n token,\n discountCodeSaved,\n onSuccess: onSuccessDiscountCodeApply,\n });\n\n const {\n preferencesStatus,\n savePreferences,\n setSavePreferences,\n updateConsumerPreferences,\n } = usePreferences();\n\n const { paymentError, makePayment, capturingPayment } = usePayment({\n secret: paymentClientSecret,\n newAddressDraft,\n });\n\n const reviewSummaryProps = useTransformToNth(checkoutData);\n\n const { loadingSubmitCheckout, onSubmitHandler, submitData } = useSubmit({\n paymentClientSecret,\n paymentRequired,\n makePayment,\n code,\n updateConsumerPreferences,\n cartToken: token,\n });\n\n const checkoutErrorCode = checkoutResponse?.shopNowV2Checkout.errors[0]?.code;\n\n useEffect(() => {\n if (checkoutErrorCode === \"Z501\") {\n redirectToShop();\n }\n }, [checkoutErrorCode]);\n\n const errorMessage =\n submitData?.shopNowV2Checkout.errors[0]?.message ??\n checkoutResponse?.shopNowV2Checkout.errors[0]?.message ??\n discountError;\n\n const handleReviewSummaryChange: CommonEvent = (\n event,\n ) => {\n if (!isNil(event.value?.savePreferences)) {\n setSavePreferences(event.value.savePreferences);\n }\n };\n\n return (\n \n \n \n }\n renderAddOn={\n <>\n \n {paymentRequired && (\n \n )}\n \n \n }\n onBack={redirectToShop}\n onSubmit={onSubmitHandler}\n />\n {errorMessage ? (\n \n {errorMessage}\n \n ) : null}\n \n \n );\n};\n\nexport default Checkout;\n","import { useState, useCallback } from \"react\";\nimport { useConsumerPreferences } from \"../../data/consumerPreferences\";\nimport useCheckoutLocalStorageData from \"../../hooks/useCheckoutLocalStorageData\";\n\nexport const usePreferences = () => {\n const { confirmationData } = useCheckoutLocalStorageData();\n const {\n preferencesStatus,\n updateConsumerPreferences: updateConsumerPreferencesApi,\n } = useConsumerPreferences(\n confirmationData?.guestReturn ? \"\" : confirmationData?.email,\n );\n\n const [savePreferences, setSavePreferences] = useState(\n confirmationData?.savePreferences,\n );\n\n const updateConsumerPreferences = useCallback(() => {\n if (savePreferences && confirmationData?.type) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return updateConsumerPreferencesApi(\n confirmationData.orderId,\n confirmationData.email,\n {\n returnMethods: [confirmationData.type],\n carriers: [],\n locations: [],\n },\n ).catch(() => {\n console.error(\"Error updating consumer preferences\");\n });\n }\n return Promise.resolve();\n }, [confirmationData, savePreferences, updateConsumerPreferencesApi]);\n\n return {\n preferencesStatus,\n savePreferences,\n setSavePreferences,\n updateConsumerPreferences,\n };\n};\n","import React from \"react\";\n\nimport CheckoutApp from \"../checkout/Checkout\";\n\nconst Checkout = () => {\n return ;\n};\n\nexport default Checkout;\n","import React, { useEffect } from \"react\";\nimport { Theme } from \"@material-ui/core\";\nimport Fade from \"@material-ui/core/Fade\";\nimport Grid from \"@material-ui/core/Grid\";\nimport { makeRootStyles } from \"../theme/styles\";\nimport { useConsumerPreferences } from \"../data/consumerPreferences\";\nimport useCheckoutLocalStorageData from \"../hooks/useCheckoutLocalStorageData\";\nimport { cancelShopNowCheckout } from \"../../shared/modules/frame\";\nimport { Confirmation as ConfirmationPage } from \"../Confirmation\";\n\nconst useStyles = makeRootStyles(\n (theme: Theme) => ({\n root: {\n paddingTop: theme.spacing(4),\n paddingBottom: theme.spacing(12),\n display: \"flex\",\n alignItems: \"center\",\n },\n checkIcon: {\n display: \"flex\",\n justifyContent: \"center\",\n textAlign: \"center\",\n fontSize: \"5rem\",\n },\n title: {},\n subtitle: {},\n supplementaryText: {},\n gutterBottom: {\n marginBottom: theme.spacing(4),\n [theme.breakpoints.up(\"md\")]: {\n marginBottom: theme.spacing(2),\n },\n },\n labelButton: {\n marginBottom: theme.spacing(2),\n },\n continueShoppingButton: {},\n }),\n { name: \"N0Confirmation\" },\n);\n\nconst CheckoutConfirmation = () => {\n const { confirmationData, errorParsingLocalStorage } =\n useCheckoutLocalStorageData();\n\n if (errorParsingLocalStorage) {\n return (\n
Sorry, there was an error while loading. Please try again!
\n );\n }\n\n const {\n guestReturn,\n email,\n savePreferences,\n selectedRefundMethodType,\n orderId,\n type,\n refundMethod,\n noInstructions,\n shipment,\n providerMoniker,\n location,\n } = confirmationData || {};\n\n const { preferencesStatus, updateConsumerPreferences } =\n useConsumerPreferences(guestReturn ? \"\" : email);\n\n useEffect(() => {\n if (savePreferences && selectedRefundMethodType) {\n updateConsumerPreferences(orderId, email, {\n returnMethods: [selectedRefundMethodType],\n carriers: [],\n locations: [],\n });\n }\n }, [savePreferences]);\n\n useEffect(() => {\n // This is added to remove shop now checkout banner on confirmation page\n cancelShopNowCheckout();\n }, []);\n\n //eslint-disable-next-line @typescript-eslint/no-explicit-any\n const classes: any = useStyles();\n return (\n \n
\n \n \n {errorParsingLocalStorage ? (\n
\n Sorry, there was an error while loading. Please try again!\n
\n ) : null}\n {confirmationData ? (\n \n ) : null}\n
\n
\n
\n
\n );\n};\n\nexport default CheckoutConfirmation;\n","import React from \"react\";\nimport { Route, Routes } from \"react-router-dom\";\nimport Container from \"@material-ui/core/Container\";\nimport clsx from \"clsx\";\n\nimport {\n adminStyleConfig,\n getBranding,\n isAdvanced,\n} from \"../../shared/modules/config\";\nimport { makeRootStyles } from \"../theme/styles\";\nimport { config } from \"../config\";\nimport ReturnOrder from \"./ReturnOrder\";\nimport Checkout from \"./Checkout\";\nimport CheckoutConfirmation from \"../checkoutConfirmation/CheckoutConfirmation\";\n\nexport const BASE_URL = \"/app_proxy\";\n\nexport const CHECKOUT_ROUTE = BASE_URL + \"/checkout_app\";\nexport const CONFIRMATION_ROUTE = CHECKOUT_ROUTE + \"/confirmation\";\n\nconst useStyles = makeRootStyles(\n (theme) => ({\n root: {\n paddingTop: getBranding(\"root_margin_top\"),\n paddingBottom: getBranding(\"root_margin_bottom\"),\n },\n container: {\n overflow: \"hidden\",\n },\n }),\n { name: \"N0App\" },\n);\n\nfunction AppRouter() {\n const classes = useStyles();\n\n return (\n
\n \n {isAdvanced && }\n \n } />\n } />\n } />\n \n \n
\n );\n}\n\nexport default AppRouter;\n","import React, { useEffect, useState } from \"react\";\nimport Fade from \"@material-ui/core/Fade\";\nimport { ApolloProvider } from \"@apollo/client\";\nimport { ThemeProvider, StylesProvider } from \"@material-ui/styles\";\nimport ResizeObserver from \"resize-observer-polyfill\";\nimport { GrowthBookProvider } from \"@growthbook/growthbook-react\";\nimport { isNil } from \"lodash/fp\";\n\nimport { config } from \"../config\";\nimport ReturnStepsProvider, {\n buildInitialState,\n} from \"../contexts/returnSteps\";\n\nimport {\n createClientWithoutToken,\n createCache,\n getGraphQLPath,\n} from \"../../shared/modules/apollo\";\nimport { setWindowFrameBoxSize } from \"../../shared/modules/frame\";\nimport useTheme from \"../theme/mui\";\nimport CssBaseline from \"./CssBaseline\";\nimport { withBackdropContainerProvider } from \"../contexts/backdropContainer\";\nimport ErrorBoundary from \"./ErrorBoundary\";\nimport errorNotifier from \"../../shared/modules/error-notifier\";\nimport { createClassNameGenerator } from \"../../shared/theme/styles\";\nimport { getConfig } from \"../../shared/modules/config\";\n\nimport apolloCacheConfig from \"../data/apolloCacheConfig\";\nimport { NthContextProvider } from \"../contexts/nthContext\";\nimport FrameDimensionsProvider from \"../contexts/frameDimensions\";\nimport { initGrowthBook } from \"../../shared/modules/growthBook\";\nimport noflake from \"../../shared/modules/noflake\";\nimport titan from \"../../shared/modules/titan\";\nimport StripeProvider from \"../contexts/StripeProvider\";\nimport {\n abTestingTrackResult,\n countingEvent,\n EXPERIMENT_VIEW_EVENT,\n PAGE_VIEW_EVENT,\n} from \"../data/abTesting\";\nimport { BrowserRouter } from \"react-router-dom\";\nimport AppRouter from \"./AppRouter\";\n\nerrorNotifier.init();\nerrorNotifier.setUser({ id: config.shid });\n\nconst hasAnyAbTestingFeatures = false;\nconst growthBook = hasAnyAbTestingFeatures\n ? initGrowthBook({\n enableDevMode: config.environment === \"development\",\n attributes: {\n shopDomain: config.shopDomain,\n retailer: config.shopDomain,\n },\n\n // Experimentation (A/B Testing), only execute once when an experiment\n // start. It won't execute when it is an enforcement rule.\n trackingCallback: (experiment, result) => {\n abTestingTrackResult(\n growthBook,\n countingEvent(EXPERIMENT_VIEW_EVENT),\n experiment.key,\n );\n errorNotifier.setFeatures({ [experiment.key]: result.value });\n },\n // Feature Usage Callback, may execute multiple times\n onFeatureUsage: (featureKey, result) => {\n if (!isNil(result.value)) {\n errorNotifier.setFeatures({ [featureKey]: result.value });\n }\n },\n })\n : null;\n\n// Setup global config of noflake\nnoflake.endpoint =\n config.environment === \"production\"\n ? \"https://titanprod.narvar.com/v2/noflake\"\n : config.environment === \"staging\"\n ? \"https://titanlite-235686439465.us-central1.run.app/v2/noflake\"\n : \"\";\nnoflake.defaults = {\n request_page: \"shopz/consumer_app\",\n shop_domain: config.shopDomain,\n};\n\n// Setup global config of titan\ntitan.endpoint =\n config.environment === \"production\"\n ? \"https://titanprod.narvar.com/\"\n : config.environment === \"staging\"\n ? \"https://titanlite.narvar.com\"\n : \"\";\ntitan.retailerMoniker = config.shopDomain;\n\nconst observer = new ResizeObserver((entries) => {\n const body = entries[0];\n console.debug(\"setWindowFrameBoxSize\", body.contentRect.height);\n setWindowFrameBoxSize(body.contentRect.height);\n});\nobserver.observe(document.querySelector(\"body\"));\n\nconst classNameGenerator = createClassNameGenerator();\n\nconst App = () => {\n const theme = useTheme(getConfig(\"branding\"));\n const [inited, setInited] = useState(false);\n\n useEffect(() => {\n const timeout = setTimeout(() => {\n // app fade in\n setInited(true);\n\n // update rollbar tracking info (shopUrl is an async iframe message from parent document)\n if (config.shopUrl) {\n errorNotifier.setUser({\n id: config.shid,\n shopUrl: config.shopUrl,\n });\n }\n }, 500);\n return () => clearTimeout(timeout);\n }, []);\n\n useEffect(() => {\n growthBook?.loadFeatures?.({ autoRefresh: false, timeout: 2000 });\n abTestingTrackResult(growthBook, countingEvent(PAGE_VIEW_EVENT));\n }, []);\n\n const client = createClientWithoutToken(\n createCache(apolloCacheConfig),\n getGraphQLPath(),\n );\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default withBackdropContainerProvider(App);\n","import App from \"./components/App\";\nexport default App;\n","import \"./polyfill\";\nimport React from \"react\";\nimport { render } from \"react-dom\";\n\nimport App from \"../consumer-app\";\n\nrender(, document.querySelector(\"#root\"));\n","import \"core-js/features/array/flat\"; // requires core-js 3\nimport \"polyfill-array-includes\";\nimport \"es6-shim\";\n\nimport smoothscroll from \"smoothscroll-polyfill\";\nimport \"srcdoc-polyfill\";\nimport \"url-search-params-polyfill\";\nimport \"unfetch/polyfill\";\n\nsmoothscroll.polyfill();\n"],"names":["useStyles","makeStyles","theme","container","display","justifyContent","alignItems","flexDirection","paddingTop","paddingBottom","message","marginBottom","name","ErrorBoundaryContent","useTheme","getConfig","classes","React","ThemeProvider","CssBaseline","Container","Grid","className","xs","item","Typography","align","variant","ErrorBoundary","constructor","props","super","this","state","hasError","getDerivedStateFromError","error","componentDidCatch","errorInfo","console","errorNotifier","critical","caughtByErrorBoundary","render","children","dataIdFromObject","obj","__typename","id","carrierService","carrierId","join","defaultDataIdFromObject","stripePromise","config","isStripeEnabled","loadStripe","stripePubKey","stripeAccount","StripeProvider","stripe","Elements","defaultProps","useStripeComponents","featureFlaggedHook","useStripe","elements","useElements","memoObjectByKeyValues","TypeForm","activeIndex","actions","useTypeForm","scrollToActive","useDebounceCallback","scrollToActiveNow","handleRenderNext","useCallback","activeSection","firstRender","setActiveSection","map","child","index","TypeFormSection","isNext","onRenderNext","buildCheckoutQuery","checkoutCode","cancel","gql","QUERY","makeRootStyles","root","height","cursor","backgroundColor","palette","common","white","border","breakpoints","ie11","spacing","edge","itemSelected","primary","main","details","flexWrap","padding","detailsSelected","alpha","iconContainer","up","icon","width","textAlign","maxWidth","paddingRight","description","title","qr","price","subtitle","marginTop","selected","onClick","clsx","sm","md","gutterBottom","dangerouslySetInnerHTML","__html","hideReturnMethodPrice","color","component","_extends","fill","xmlns","fillRule","clipRule","d","style","maskType","maskUnits","x","y","mask","GET_RETURN_LOCATIONS","useReturnLocations","called","setCalled","useState","data","setData","setError","loading","setLoading","client","useApolloClient","useMemo","getLocations","countryCode","provinceCode","zipcode","carrier","consolidationRadius","async","country","query","variables","returnLocations","err","getHandledErrorMessage","translations","general_loading_error","getLocationsAsync","reset","GET_USER_PREFERENCES","SET_USER_PREFERENCES","useConsumerPreferences","isUserPreferencesEnabled","queryStatus","updateStatus","email","saved","useQuery","skip","update","updateState","useMutation","useRequestStatus","consumerPreferences","userPreferences","preferencesStatus","status","profileStatus","returnMethods","length","profile","profileId","undefined","profileLink","userPreferencesEndpoint","updateConsumerPreferences","orderId","cache","result","apiResult","setUserPreferences","GraphQLError","extensions","code","readQuery","writeQuery","toReturnMethodPreference","method","BOXLESS_METHOD","DODDLE","PRINTERLESS_METHOD","METHOD_IN_STORE","METHOD_XPO","METHOD_SHIP_ON_YOUR_OWN","METHOD_KEEP_THE_ITEM","includes","isPreferredMethod","preferences","type","carrierLogo","transform","minWidth","errorItemsContainer","errorItemsList","listStyleType","listStylePosition","submitContainer","chooseButton","computeMethodId","ChooseMethod","orderFetchData","draftReturnUuid","useReturnStepsState","useReturnStepsActions","useNewDesign","isNthUi","nthReturnsActions","useNthReturnsActions","order","returnReasonsById","itemsById","exchangeItems","returnItems","buildItemsByType","items","returnMethodsPayload","orderNumber","locale","csid","shopNow","hasExchangeForShopNowCredit","addressError","refetch","ri","pictures","returnItem","getAddressError","useReturnMethods","errorMessage","setErrorMessage","errorItems","setErrorItems","returnMethodsFiltered","filter","keepTheItemMethod","_find","allItemsAreKeepTheItem","allReturnItemsAreKept","find","keepItemIds","indexOf","lineItemId","allExchangeItemsAreKept","ei","hasClaimItems","isClaim","useClaims","isSkipStep","isValidSelected","selectedReturnMethod","some","consumerPreferencesStatus","guestReturn","isActiveStep","useReturnStepIsActive","CHOOSE_METHOD_STEP","showNextBtn","useEffect","setReturnMethod","goToStep","CONFIRM_MAILING_ADDRESS_STEP","setReturnCart","retailerMoniker","createdDate","expirationDate","lastUpdatedDate","pudoOption","setKeepItemIds","preferredMethod","m","getIneligibleReturnMethodError","getTranslation","getIneligibleItemsReturnedError","Object","keys","ineligibleReasons","createChooseMethodHandler","handleNextStep","shouldDisplayLocations","CHOOSE_METHOD_SUBSTEP","methodIcons","InStoreIcon","MailInIcon","DropOffIcon","handleAddressFix","fromAddress","setCorrectedAddress","typeForm","selectedCategory","setSelectedCategory","initialAddress","patchZipCode","mergeAddress","normalizeAddressKeys","zipCode","setZipCode","zip","locations","locationStatus","resetLocations","showSwitchCategory","setShowSwitchCategory","localeFull","includeCurrency","useConsumerSettings","selectedMethod","pudoProvider","moniker","serviceType","getCarrierForLocationSearch","pudoOptions","isPickup","pudoActionType","pudoActionTypeDetails","iconUrl","displayName","displayDescription","fees","amount","value","feeBreakdown","fee","displayWithReturnMethod","reduce","p","c","currency","pickup","dropOff","preferred","_raw","pudoLocations","location","isInStore","logo","logoUrl","logoImg","test","replace","storeId","storeName","locationType","storeName2","logoUrls","openingHours","brand","companyName","distance","phoneNumber","storeAddress","phone","address","regionCode","postalCode","preferencesLoaded","setPreferencesLoaded","titan","identify","track","list_id","products","opt","product_id","skippedDropOffLocation","selectedDropOff","selectedLocation","useRegisterStepStatus","skipped","mailing_address_section_title","MailingAddressForm","onSubmit","disable","disableFields","validateZip","i","key","PudoRaw","progressiveStep","activeStep","loadingLocations","postalCodeError","showSkipLocation","multiLabelsEnabled","maxLabelRequests","labelsCount","requestedLabelCount","labelsMax","onChange","event","subComponent","setRequestedLabelCount","onBack","goBack","e","setSelectedPudoOption","dropOffLocation","loc","returnCart","setStoreLocation","choose_method_title","ErrorSnackbar","whiteSpace","Spinner","qrText","subText","choose_method_substep_boxless_subtitle","choose_method_substep_boxless_description","choose_method_substep_printerless_subtitle","getMethodCardStrings","MethodCard","returnMethodDisplayPrice","Button","disabled","size","fullWidth","choose_method_next_button_label","textLogo","textTransform","letterSpacing","DropoffLocationLogo","url","get","window","src","MAPTILER_KEY","maptilerKey","MAPTILER_MAP_ID","MAPTILER_STYLE","mapCoor","arg1","arg2","_isNumber","lng","lat","longitude","latitude","_pick","fetchCoordinatesFromAddress","address1","address2","city","encodeURIComponent","response","fetch","features","json","center","MaptilerMap","start","markersColor","disableDefaultMarker","markers","otherProps","Date","getTime","EL_ID","mapEl","useRef","mapObj","setMapObj","startWithCoor","startWithAddress","_start","setStart","_center","setCenter","mapInitFailed","setMapInitFailed","_markers","ret","concat","createMarkers","marker","Marker","secondary","scale","setLngLat","addTo","mapInit","Map","zoom","nav","NavigationControl","showCompass","addControl","warn","remove","flyTo","res","forEach","newMapObj","ref","borderSelected","paddingSelected","paddingUnselected","marginLeft","marginRight","flexGrow","boxSizing","logoContainer","overflowWrap","down","headline","overflow","textOverflow","lineClamp","boxOrient","locationName","locationNameTitle","locationNameSubtitle","descriptionWithMap","position","actionContainer","right","plusIcon","transition","closeIcon","mapContainer","margin","chooseButtonMap","borderRadius","disableMap","onChoose","selectedRef","mapVisible","showMap","handleChoose","current","shopName","IconButton","handleToggleMap","visible","PlusIcon","Collapse","in","timeout","mountOnEnter","chooseButtonNoMap","choose_method_substep_choose_location_button","input","formElement","formTextContainer","countryRoot","countryInputEndAdornment","countryInput","countryInputRoot","ZipForm","initialCountryCode","initialZip","isOpen","onSearch","toggleForm","updateZipcode","updateCountryCode","countryName","countryNamesByCode","handleSubmit","preventDefault","choose_method_substep_in_store_form_find_stores_near","Autocomplete","autoHighlight","disableClearable","endAdornment","inputRoot","getOptionLabel","isObject","debug","country_code","options","countryCodes","placeholder","mailing_address_form_country","OutlinedInput","autoFocus","autoComplete","inputProps","target","zip_code","search","choose_method_substep_in_store_locations_near","Link","skipContainer","skipLink","mapDescription","mapDescriptionContent","mapDescriptionTitle","background","minHeight","mapContainerElement","allowProceedWithoutLocation","locationId","zipFormOpen","toggleZipForm","isMdUp","useMediaQuery","localLocationId","setLocalLocation","l","currentPage","setCurrentPage","filteredLocations","slice","createClickLocationHandler","createSelectLocationHandler","handleOnMount","choose_method_substep_in_store_title","choose_method_substep_concierge_title","args","handleToggleForm","lg","LocationCard","compact","handleSkip","choose_method_substep_concierge_skip","returnMethodId","returnMethodService","ChooseLocation","submit","ContactInformationForm","contact","initialContact","draft","setDraft","validate","trimObject","assertAnyFieldBy","isValid","handleChange","_set","controlGridSize","TextField","label","mailing_address_form_email","mailing_address_form_phone","_noop","editButton","backButton","MailingAddress","notes","isHomePickup","isGuestReturn","requireContactInfo","isFormOpen","isAddressValid","setIsAddressValid","isContactValid","setIsContactValid","currentStepIndex","getStepIndex","showBackBtn","showNav","firstName","lastName","province","exchange","excludeFields","contactSubtitle","home_pickup_contact_information_subtitle","addressSubtitle","home_pickup_mailing_address_subtitle","gift_exchange_mailing_address_your_address","editAddressButtonLabel","gift_exchange_mailing_address_change","notesLabel","home_pickup_contact_information_form_notes","submitButtonLabel","backButtonLabel","handleAddressFormToggle","handleAddressChange","setConfirmedMailingAddress","handleContactChange","others","handleNotesChange","homePickupInstructions","handleNext","CHOOSE_SHOP_NOW_STEP","handleBack","multiline","rows","home_pickup_contact_information_form_pii_helper_text","exclude","submitLabel","Box","defaultAddress","fromCountryCode","fromProvince","fromProvinceCode","fromFirstName","fromLastName","fromAddress1","fromAddress2","fromCity","fromZip","decodedGuestEmail","useCalculateRefund","refund","calculateRefund","CREATE_DIRECT_UPLOAD","SUBMIT_RETURN","useSubmitReturn","directUpload","mutate","mutated","statusMutated","statusRequest","setDirectUploadStatus","useMergeRequestStatus","createDirectUpload","direct","file","JSON","parse","headers","uploadImage","checksum","calculateChecksum","metadata","getFileMetadata","filename","byteSize","byte_size","contentType","content_type","useUploadPictures","picturesUploading","setPicturesUploading","getBlobIdForPic","signedBlobId","submitReturn","Promise","all","pic","submitStatus","return_review_submit_error","errorDetail","submitStatusReset","strikethrough","content","left","top","borderTop","borderColor","Strikethrough","Component","viewBox","version","xlink","stroke","strokeWidth","href","checkIcon","fontSize","labelButton","renderInAppLabel","show","submitResult","supplementaryText","printLabelText","renderSupplementaryText","buttonTitle","Fade","ConfirmationCheckIcon","StyledMarkup","openLabel","underline","redirectToShop","orderedList","paddingInlineStart","gap","orderedListItem","counterIncrement","lineHeight","fontWeight","stepSpan","linkContainer","styles","imageWrapper","GooglePlay","alt","AppStore","withThemeProvider","Step","links","bodytextDefaultNone","iconsPrimaryNone","linksNoneDefault","linksNoneHover","fontFamily","link","text","image","TextLink","linkStyle","sDefault","sHover","themeTokens","Steps","steps","StepList","step","confirmationHeader","btnContainer","imgContainer","alternateEmailForm","preferencesStatusWrapper","preferencesStatusDescription","preferencesStatusLink","textDecoration","PreferencesStatus","documentbodyNoneNone","emphasize","linkStyles","textDecorationLine","iconStyles","Icon","Language","langKey","EMAIL_ADDRESS_PATTERN","validatePattern","inputValue","patternString","validationPattern","RegExp","Boolean","match","ConfirmationRaw","withSettingsProvider","ConfirmationRawC","shipment","providerMoniker","alternateEmailToggle","noInstructions","newEmailStatus","isHipaaCompliant","returnSteps","itemDisplay","useSettings","showAlternateEmailForm","setAlternateEmailForm","emailAddress","setUpdatedEmail","validationError","setValidationError","returnLabels","mappedUrls","acc","labelType","labelUrl","qrCodeUrl","printLabelUrl","provider","useLanguage","asString","rawValue","skuLabel","qtyLabel","colorLabel","sizeLabel","reasonLabel","buttonsPrimaryDefault","buttonsPrimaryHover","ItemCardSkeleton","LineItemSkeleton","Divider","ErrorBanner","langKeySuffix","Panel","header","PanelHeader","SemibigHeader","replacementTokens","generateTokensFromObject","Paragraph","toggleAlternateEmailForm","TextInput","SupportedInputType","submitAlternateEmailForm","area","active","transparent","ItemCard","thumbnail","imageUrl","sku","itemId","attributes","getItemAttrs","labels","additionalInfo","reason","hasShippingProtection","settingsRequested","Confirmation","useReturnsConfig","useCurrencyConfig","refundMethod","Step1Title","Step1Details","Step2Title","Step2Details","Step3Title","Step3Details","providerLinkUrl","providerLinkText","refundStepTitle","refundStepDetails","refundStepAppStoreLink","refundStepAppStoreLinkText","refundStepGooglePlayLink","refundStepGooglePlayLinkText","step2Link","step3Link","return_confirmation_title_keep_item","return_confirmation_title","return_confirmation_subtitle_keep_item","return_confirmation_subtitle_keep_item_no_refund","return_confirmation_subtitle","return_confirmation_subtitle_label_retry_enqueued","getConfirmationType","BOXLESS_ONLY_CARRIERS","getShipmentItemsForConfirmation","selectedItems","mimeType","shouldRenderInAppLabel","isInAppLabelEnabled","setShow","refundTotal","submitReturnResultCode","savePreferences","displayEmail","useCustomer","setTimeout","return_confirmation_supplementary","returnMethod","return_confirmation_print_packing_slip","return_confirmation_print_label","shopifyOrderId","split","pop","carriers","preferencesSubmitted","promotion_id","interpolate","ConfirmationBasic","claims_confirmation_title","claims_confirmation_continue_shopping","ConfirmationPage","selectedReturnCreditMethod","selectedPudoOption","return_confirmation_continue_shopping","refundAmount","refundAmountOriginal","incentiveText","red","incentiveContainer","skipButton","ChooseShopNow","emitMetrics","useEmitMetrics","abTesting","useAbTesting","submittingRedirect","shopNowSession","redirectingToShop","isValidForShopNow","isShopNowEnabled","calculateParams","carrierServiceName","_unset","presentmentCurrency","shippingPrice","shippingMethod","ignoreEmpty","chosenRefundMethod","_isEmpty","queryErrorMessage","nonShopNowMethods","refundMethodsAvailable","v","RETURN_CREDIT_METHOD_SHOPNOW","baselineMethod","_minBy","refundFormatted","refundAmountCents","refundCents","shopNowRefundMethod","creditAmount","creditAmountCents","showIncentive","Math","abs","allowRefundToOriginalPayment","skipShopNow","shopNowAvailable","totalRefundCents","handleRefund","CHOOSE_RETURN_CREDIT_METHOD_STEP","selectedRefundMethod","checkoutUrl","hasRedirectUrl","isValidHttpUrl","submitting","submitErrorMessage","submitParams","_omit","omitDeep","then","r","metrics","calculateReturnMetrics","lineItemIntension","abTestResult","convertFromDatadogMetrics","trackResult","countingEvent","SUBMIT_RETURN_SUCCESS_EVENT","catch","setShopNowRedirect","localStorage","setItem","redirectToCheckout","handleShopNow","confirmationPageState","selectedRefundMethodType","stringify","isAutoRedirect","_some","shopnow_opt_in_title","shopnow_opt_in_description","refundMethodDescription","shopnow_opt_in_yes","shopnow_opt_in_no","incentiveAmount","oldPrice","newPrice","strokeLinecap","strokeLinejoin","ChooseReturnCreditMethod","transformClaimItemsToExchangeItems","isClaimReplacementEnabled","isExchangesEnabled","claimReplacementItems","_compose","_map","_uniq","_get","allItemsAvailableForSale","inventoryCheckStatus","useInventoryCheck","calculateRefundPayload","claimReplacementOutOfStock","claimReplacementPayload","replacementRefund","replacementQueryStatus","loaded","replacementMethod","creditMethods","originalPayment","RETURN_CREDIT_METHOD_REFUND","translateMethod","methodId","RETURN_CREDIT_METHOD_RESHOP","choose_refund_method_reshop","RETURN_CREDIT_METHOD_REPLACEMENT","claims_resolution_option_replacement_title","choose_refund_method_original_payment","choose_refund_method_gift_card","shop_name","translateMethodTitle","claims_resolution_option_replacement_description_out_of_stock","claims_resolution_option_replacement_description","setDisabled","toCreditMethodCardData","_merge","oldPriceCents","renameKeys","sort","a","b","toNumber","RETURN_CREDIT_METHOD_GIFT_CARD","unshift","originalRefundMethod","REFUND_METHOD_ORIGINAL_PAYMENT","setAvailableReturnCreditMethods","skipReturnCreditMethod","autoChoose","REVIEW_STEP","createSelectionHandler","setReturnCreditMethod","REFUND_METHOD_GIFT_CARD","ShopNowIcon","ShopLaterIcon","RefundIcon","nthReturnActions","getNthType","toUpperCase","refundMethodOptions","newPriceCents","incentive","RefundMethods","showRefundAmounts","refundOptions","toLowerCase","choose_refund_method_title","CreditMethodCard","choose_refund_method_next_button_label","detailHeading","detailHeadingValue","typography","h2","grid","borderRight","getBorderUnselected","borderRightWidth","DetailHeading","DetailHeadingValue","returnItemCount","receiveItemCount","returnMethodDisplayName","isCharge","isPreCharge","hasReturnMethod","return_review_charge_total","return_review_estimated_refund","return_review_returning","return_review_receiving","return_review_return_method","thumb","variantOption","quantity","returnReason","h4","disclaimerText","commentContainer","comment","fontStyle","Item","keepTheItem","returnReasonTitle","isOriginal","isSmUp","isExchange","displayPrice","priceFormatted","productTitle","variantInfo","productImageUrl","itemVariantInfo","startCase","Image","productImageAltTxt","disableSpinner","imageStyle","objectFit","ImageIcon","return_review_item_quantity","return_review_keep_item_disclaimer","return_review_comments_title","shouldHideNarvarSeamlessExchangeValue","lineItem","total","captionText","Refund","taxesIncluded","totalDisplayPrice","totalDisplayTax","priorRefundsDisplayAmt","subtotalDisplayPrice","purchaseShippingDisplayPrice","exchangeShippingFeeDisplayPrice","exchangeShippingFeeDisplayName","onlyShowEstimatedRefund","return_review_subtotal","return_review_taxes_included","return_review_total_tax","return_review_prior_refunds","return_review_original_purchase_shipping","return_review_shipping_fee","translatedFee","formattedFee","parseFloat","substring","return_review_disclaimer","stripeElement","pointerEvents","form","buttonContainer","submitButton","paymentText","errorText","confirmCardPayment","secret","payment_method","card","getElement","CardElement","billing_details","setup_future_usage","paymentIntent","paymentId","onSuccess","hideSubmit","submitLoading","backendPaymentFailureError","cardElementOptions","base","body1","fontSmoothing","hint","invalid","iconColor","direction","return_review_payment_title","return_review_submit_return","SubmitButton","showContactRetailer","paymentIdPresent","customerOwesMoneyAndShouldContactRetailer","return_review_error_contact_retailer","Submit","isErrorSnackbarVisible","submitted","usePreApproval","isReshopEarlyHardApproval","requirePreApproval","preApprovalReturnUuid","refundCalculated","cents","preApprovalInput","preApproval","useNthFees","push","displayAmount","totalTaxDisplayAmt","originalShippingRefundedDisplayAmt","sign","useNthRefund","displayAllFees","subtotal","subtotalRefundCents","Items","orderItems","orderItem","selectedReason","availableReasons","getItemProps","exchangeTo","remainingQuantity","selectedQuantity","pascalCase","s","camelCase","reviewSummaryContainer","headerContainer","itemWrapper","unorderedList","conditionalSections","addEmailToReturn","paragraph","preferencesEmail","Total","itemPrice","exchangePrice","defaultLabelFee","labelFee","f","displayFees","hideSubtotal","Currency","token","wrapper","alignSelf","formField","disclaimer","ReshopOptIn","panelcontainerNoneNone","captiontextErrorNone","captiontextDefaultNone","subscribe","phoneLabel","borderWidth","MediumHeader","Checkbox","checked","labelBoxCellStyle","tel","animateLabel","containerOverridesStyle","ShopNowItems","shopNowItems","HIPAA_CSR_ROLES","ReviewSummaryContent","canAddCustomerEmail","canUpdateCustomerEmailHipaa","hasAssociatedEmail","mailTo","renderAddOn","addOnsPostCartSummary","onEmailChange","policyChecked","policyLabel","onPolicyChange","onSavePreferencesChange","reshopOptions","onReshopOptionsChange","returnsReviewAddEmailInputLabel","hasExchange","hasReturn","handleInputChange","ReviewSummaryRaw","withTranslationsProvider","ReviewSummaryRawC","hasClaim","isCertified","onChangeCertified","signature","onChangeSignature","allowRetry","userRole","backLabel","errorPosition","setErrorPosition","isEmailFieldStateValid","checkIfEmailFieldIsValid","isValidEmail","submitEnabled","every","StickyFooter","onShow","inView","Footer","onEvent","buttons","leftButton","outline","rightButton","below","Backdrop","translationKeys","getPudoMethodName","ReviewSummaryC","setPolicyChecked","setMailTo","orderData","useReturns","policyLabelText","reviewPolicy","enableReviewPolicy","reviewPolicyText","setPudoOptionMutation","isLoading","loadingError","mutationFn","Error","mutation","HipaaSetPudoOptionDocument","returnCartId","SetPudoOptionDocument","setPudoOption","setPudoOptionMutationRef","submitReturnCardMutationEffect","useHipaaSubmitReturnCartMutation","useSubmitReturnCartMutation","submitReturnCartMutation","submitError","onError","log","onCompleted","submitReturnCart","submittedReturn","policy","useClaimAttestation","isRefundAutomationEnabled","isPaymentFlowEnabled","loadingContainer","returnItemsSectionHeader","action","Review","claimAttestationProps","isClaimReplacement","decorateClaimsSubmitPayload","transformClaimSelectedItemsForNth","setErrorSnackbarVisibility","capturingPayment","setCapturingPayment","paymentError","setPaymentError","succeededPaymentIntentId","setSucceededPaymentIntentId","source","reviewStatus","uuid","useUuid","preApprovalHook","available","availableReturnCreditMethods","fallback","_last","setFallbackReturnCreditMethod","refundMethods","currentPaymentIntentClientSecret","setCurrentPaymentIntentClientSecret","paymentClientSecret","loadingOrCheckoutRedirect","newClientSecret","getPaymentNewClientSecret","setNewPaymentClientSecretFromError","isReshopError","getReshopError","return_review_submit_error_reshop","isLocalStorageEnabled","getItem","setSubmitSuccess","CONFIRMATION_STEP","ItemsToReceive","return_review_receiving_items","createCarouselItemKey","ItemsForReturn","return_review_returning_items","childReturnReasonId","fullReturnReason","reasonTitle","overrides","paymentMethodId","locallyCorrectedFromAddress","globallyCorrectedFromAddress","onbeforeunload","validResultCodes","customerPmtId","preApprovalId","showReshopSmsUpdates","submitProps","SAVE_PREFERENCES_CHECKED_EVENT","_isPlainObject","resultCode","_includes","setSubmitReturnResultCode","startsWith","verifyAndSetResultCode","finally","isTotalNegative","preChargeFeeAmountCents","renderCheckout","totalRefundPositive","totalRefund","titleTranslation","return_review_title_return_and_exchange","return_review_title_exchange","return_review_title","Loading","_sumBy","OrderDetails","Details","subtotalRefund","CheckoutForm","handleCalculateRefundAddressFix","nthFees","nthRefund","handleReviewSummaryChange","_isNil","setSavePreferences","setReshopOptionsError","setReshopOptions","smsUpdates","customerPhone","reshopOptionsError","isReshopSmsUpdates","submittingAddressError","isNewAddressValid","setIsNewAddressValid","newAddressDraft","setNewAddressDraft","hasAddressError","hasOtherError","stripeAddOn","addressCorrectionAddOn","reminderText","reminderAddOn","validateReshopOptions","capturePayment","newOnSubmitHandler","paymentResult","isClaimsError","StepVisibilityWrapper","hasReachedReviewPage","useOrderFetchData","shopNowState","checkShopNow","calledCancel","setCalledCancel","fetchPolicy","checkShopNowAsync","useShopNowExpiration","cancelShopNowState","cancelShopNow","cancelShopNowCheckout","cancelShopNowAsync","useCancelShopNow","setDraftReturnUuid","stepsState","v4","TypeFormProvider","OrderLookup","onOrderFetch","getOrderData","orderFetchError","orderFetchLoading","shopNowData","shopNowError","shopNowLoading","shopNowCancelData","shopNowCancelError","shopNowCancelLoading","ChooseItems","ChooseMethodSubstep","ConfirmMailingAddress","Stepper","discountContainer","discountInputField","flex","discountChip","discountApplyButton","cartSummaryItemWrapper","textBold","textGreen","success","dark","transformNthCurrency","currencyCode","createFee","formattedValue","transformFees","transformFee","transformOrderItem","availableReturnActions","orderedQuantity","eligibilities","transformShopNowItem","cost","amountPerQuantity","discountedPrice","discountedAmountPerQuantity","transformOrderItems","transformShopNowItems","transformSelectedItem","transformSelectedItems","checkoutData","overallCartSummary","shopNowCart","shopNowCartSummary","cartSubtotal","cartSummary","cartTax","tax","cartFees","discounts","discount","targetType","discountAmount","prepareFees","refundMethodDisplay","transformRefund","lineItems","CostItem","isStrong","isGreen","ReturnCostPanelHeader","returnCartSummary","open","setOpen","hover","ReturnCartCostPanel","prepareReturnCartCostFees","collapsible","defaultOptions","AmountFragmentDoc","PaymentFragmentDoc","DiscountFragmentDoc","CartSummaryFragmentDoc","FeeBreakdownFragmentDoc","ReturnLineItemFragmentDoc","ReturnCartFragmentDoc","AddressFragmentDoc","LineItemFragmentDoc","CartFragmentDoc","RefundFragmentDoc","ShopNowV2CheckoutDocument","SubmitShopNowV2CheckoutDocument","ApplyDiscountCodeDocument","useAddress","ADDRESS_DEFAULT","onChangeAddress","BillingAddress","usePayment","makePayment","useSubmit","paymentRequired","cartToken","navigate","useNavigate","submitCheckoutAPI","submitData","loadingSubmitCheckout","baseOptions","Apollo","useSubmitShopNowV2CheckoutMutation","submitCheckoutComplete","checkout","payment","onSubmitHandler","gateway","paymentIntentId","CONFIRMATION_ROUTE","useDiscountCode","discountCodeSaved","discountCode","setDiscountCode","discountLoading","setDiscountLoading","submitDiscountApi","discountSubmitData","discountApiError","useApplyDiscountCodeMutation","discountError","applyDiscountCode","errors","applyDiscount","newDiscountCode","couponCodes","reject","removeDiscount","DiscountCode","onApply","onRemove","setInputValue","Chip","onDelete","onClickRemove","onClickApply","trim","checkout_discount_apply","disablePadding","optionalNullableString","z","string","optional","nullable","confirmationStorageSchema","object","boolean","array","number","passthrough","customerComments","unknown","useCheckoutLocalStorageData","confirmationData","setConfirmationData","errorParsingLocalStorage","Checkout","searchParams","useSearchParams","checkoutResponse","loadingCheckoutData","refetchCheckoutData","useShopNowV2CheckoutQuery","shopNowV2Checkout","discountCodes","onSuccessDiscountCodeApply","usePreferences","updateConsumerPreferencesApi","resolve","reviewSummaryProps","useTransformToNth","checkoutErrorCode","isNil","CheckoutApp","continueShoppingButton","CheckoutConfirmation","CHECKOUT_ROUTE","BASE_URL","getBranding","baseClassName","fixed","isAdvanced","adminStyleConfig","Routes","Route","path","element","ReturnOrder","init","setUser","shid","growthBook","noflake","endpoint","environment","defaults","request_page","shop_domain","shopDomain","ResizeObserver","entries","body","contentRect","setWindowFrameBoxSize","observe","document","querySelector","classNameGenerator","createClassNameGenerator","withBackdropContainerProvider","App","inited","setInited","shopUrl","clearTimeout","loadFeatures","autoRefresh","abTestingTrackResult","PAGE_VIEW_EVENT","createClientWithoutToken","createCache","apolloCacheConfig","getGraphQLPath","StylesProvider","generateClassName","GrowthBookProvider","growthbook","FrameDimensionsProvider","ApolloProvider","ReturnStepsProvider","initialState","buildInitialState","NthContextProvider","BrowserRouter","AppRouter","smoothscroll"],"sourceRoot":""}