{"version":3,"file":"js/76-aabf0c595c6b4248a34c.js","mappings":"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JC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJ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","sources":["webpack://shopify_zero/./app/javascript/shared/modules/sessionTracking.js","webpack://shopify_zero/./app/javascript/shared/components/form/TextField.js","webpack://shopify_zero/./app/javascript/shared/modules/lang.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/ChooseItems/utils.js","webpack://shopify_zero/./app/javascript/shared/modules/regions.js","webpack://shopify_zero/./app/javascript/shared/components/form/Autocomplete.js","webpack://shopify_zero/./app/javascript/shared/components/form/ButtonSelect.js","webpack://shopify_zero/./app/javascript/shared/components/form/GroupField.js","webpack://shopify_zero/./app/javascript/shared/components/form/ImageUpload/ImageUploadLarge.js","webpack://shopify_zero/./app/javascript/shared/components/form/ImageUpload/ImageUploadSmall.js","webpack://shopify_zero/./app/javascript/shared/components/form/ImageUpload/ImageUploadNormal.js","webpack://shopify_zero/./app/javascript/shared/components/form/ImageUpload/ImageUpload.js","webpack://shopify_zero/./app/javascript/shared/components/form/ImageUpload/index.js","webpack://shopify_zero/./app/javascript/shared/components/form/PlainTextArea.js","webpack://shopify_zero/./app/javascript/shared/components/form/TextFieldWithCharacterCount.js","webpack://shopify_zero/./app/javascript/shared/components/form/Checkbox.js","webpack://shopify_zero/./app/javascript/shared/components/form/DatePicker.js","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/consts/language_en_US.ts","webpack://shopify_zero/./app/javascript/consumer-app/data/abTesting.js","webpack://shopify_zero/./app/javascript/shared/modules/hooks.js","webpack://shopify_zero/./app/javascript/shared/modules/titan.js","webpack://shopify_zero/./app/javascript/consumer-app/hooks/useClaims.js","webpack://shopify_zero/./app/javascript/shared/components/form/PositionControl.js","webpack://shopify_zero/./app/javascript/shared/components/icons/StoreCredit.js","webpack://shopify_zero/./app/javascript/consumer-app/contexts/typeForm.js","webpack://shopify_zero/./app/javascript/consumer-app/contexts/frameDimensions.js","webpack://shopify_zero/./app/javascript/shared/modules/noflake.js","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/utils/Sparsem.ts","webpack://shopify_zero/./app/javascript/shared/modules/template.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/OrderLookup/OrderLookupLogin.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/OrderLookup/ShopNowExpiration.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/OrderLookup/OrderLookup.js","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/SelectItem/SelectItemStyles.ts","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/SelectItem/SelectItem.tsx","webpack://shopify_zero/./app/javascript/shared/modules/mui-utils.js","webpack://shopify_zero/./app/javascript/shared/modules/string.js","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/hooks/useCurrencyConfig.ts","webpack://shopify_zero/./app/javascript/consumer-app/modules/address.js","webpack://shopify_zero/./app/javascript/consumer-app/data/cancelReturn.js","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Icon/index.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Icon/truck.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Icon/locate.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Icon/store.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Icon/PackageIcon.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Icon/clock.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Icon/phone.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Icon/CheckMark.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Icon/PlaceholderThumbnail.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Icon/ArrowRight.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Icon/Exchange.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Icon/PlaceholderPictures.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Icon/OriginalPayment.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Icon/GiftCard.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Icon/Reshop.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Icon/StoreCredit.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Icon/ShippingLabel.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Icon/Printerless.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Icon/NarvarBadge.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Icon/Favorite.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Icon/CheckCircle.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Icon/Error.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Icon/ShippingProtection.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Icon/HelpCircle.tsx","webpack://shopify_zero/./app/javascript/consumer-app/data/changeRefundMethod.js","webpack://shopify_zero/./app/javascript/consumer-app/modules/items.js","webpack://shopify_zero/./app/javascript/shared/components/form/NumberField.js","webpack://shopify_zero/./app/javascript/shared/modules/returnStatuses.js","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/transformers/Currency.tsx","webpack://shopify_zero/./app/javascript/shared/components/Spacer.js","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/StyledMarkup/index.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/utils/itemSelectorHelper.tsx","webpack://shopify_zero/./app/javascript/consumer-app/steps/ChooseItems/ExchangeItemWizard/ExchangeItemThumbnail.js","webpack://shopify_zero/./app/javascript/shared/modules/fileUpload.js","webpack://shopify_zero/./app/javascript/consumer-app/data/orderData.js","webpack://shopify_zero/./app/javascript/consumer-app/contexts/returnSteps.js","webpack://shopify_zero/./app/javascript/consumer-app/hooks/useConsumerSettings.js","webpack://shopify_zero/./app/javascript/consumer-app/hooks/useCustomer.js","webpack://shopify_zero/./app/javascript/consumer-app/data/evenExchangeProduct.js","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Language/index.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Spinner/SpinnerStyles.ts","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Spinner/Spinner.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/transformers/timeFormatTranslation.ts","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/LocationCard/LocationCardStyles.ts","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/TextLink/index.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/LocationCard/LocationCard.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/ItemImage/ItemImageStyles.ts","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/ItemImage/ItemImage.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Tag/TagStyles.ts","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Tag/Tag.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/ItemCard/ItemCardStyles.ts","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Chip/ChipStyles.ts","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Chip/Chip.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Tooltip/TooltipStyles.ts","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Tooltip/Tooltip.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/ItemCard/ItemCard.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/ErrorBanner/ErrorBannerStyles.ts","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/ErrorBanner/ErrorBanner.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/consts/theme.ts","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/StickyFooter/StickyFooterStyles.ts","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/StickyFooter/StickyFooter.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Backdrop/BackdropStyles.ts","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Backdrop/Backdrop.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Footer/FooterStyles.ts","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Footer/Footer.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/LineItemsGroup/index.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/BackButton/BackButtonStyles.ts","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/BackButton/BackButton.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/FileUploadButton/index.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/IconFilledButton/index.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/FileUpload/FileUploadStyles.ts","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/FileUpload/FileUpload.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/SwatchesList/SwatchesListStyles.ts","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/SwatchesList/SwatchesList.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Skeleton/SkeletonStyles.ts","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Skeleton/ItemCardSkeleton.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/Skeleton/LineItemSkeleton.tsx","webpack://shopify_zero/./app/javascript/consumer-app/hooks/useLoginSession.js","webpack://shopify_zero/./app/javascript/shared/components/modal/ConfirmationDialog.js","webpack://shopify_zero/./app/javascript/consumer-app/components/type-form/TypeFormSection.js","webpack://shopify_zero/./app/javascript/retailer-app/constants/returns.js","webpack://shopify_zero/./app/javascript/shared/modules/object.js","webpack://shopify_zero/./app/javascript/retailer-app/constants/carriers.js","webpack://shopify_zero/./app/javascript/shared/components/form/ButtonBusy.js","webpack://shopify_zero/./app/javascript/shared/components/Spinner.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/ChooseItems/CollapsibleOptions/CollapsibleOptions.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/ChooseItems/CollapsibleOptions/index.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/ChooseItems/Item/ReturnComment.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/ChooseItems/Item/PicturePreview.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/ChooseItems/Item/PictureUpload.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/ChooseItems/ExchangeItemWizard/ExchangeItemDetails.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/ChooseItems/ExchangeItemWizard/ExchangeItemWizard.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/ChooseItems/Item/ItemDetails.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/ChooseItems/Item/ItemBase.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/ChooseItems/Item/ItemMenuList.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/ChooseItems/Item/use-return-state.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/ChooseItems/Item/use-item-selectors.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/ChooseItems/Item/ItemCollapsible.js","webpack://shopify_zero/./app/javascript/consumer-app/components/select/Select.js","webpack://shopify_zero/./app/javascript/consumer-app/components/select/index.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/ChooseItems/Item/ItemSelectors.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/ChooseItems/Item/ItemDefault.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/ChooseItems/Item/Item.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/ChooseItems/Item/index.js","webpack://shopify_zero/./app/javascript/shared/components/form/FieldLabel.js","webpack://shopify_zero/./app/javascript/consumer-app/modules/sparsem.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/OrderLookup/OrderLookupDetails.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/ConfirmMailingAddress/ZipValidation.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/ConfirmMailingAddress/MailingAddressForm.js","webpack://shopify_zero/./app/javascript/consumer-app/modules/template.js","webpack://shopify_zero/./app/javascript/consumer-app/contexts/nthContext.js","webpack://shopify_zero/./app/javascript/shared/modules/localId.js","webpack://shopify_zero/./app/javascript/shared/modules/growthBook.js","webpack://shopify_zero/./app/javascript/consumer-app/components/swiper/Swiper.js","webpack://shopify_zero/./app/javascript/consumer-app/components/swiper/index.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/ChooseItems/ItemsCarousel.js","webpack://shopify_zero/./app/javascript/consumer-app/ReturnReasons/ReturnReasonsList/displayReasons.ts","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/SelectList/SelectListStyles.ts","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/components/SelectList/SelectList.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReturnReasons/ReturnReasonsList/index.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReturnReasons/ReturnReasonsQuantity/index.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReturnReasons/ReturnReasonsQuantityAll/index.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReturnReasons/ReturnReasonsComments/ReturnReasonsCommentsStyles.ts","webpack://shopify_zero/./app/javascript/consumer-app/ReturnReasons/ReturnReasonsComments/ReturnReasonsComments.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReturnReasons/ReturnReasonsEdit/index.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReturnReasons/tokens.ts","webpack://shopify_zero/./app/javascript/consumer-app/ReturnReasons/ReturnReasonsType/index.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReturnReasons/formData.ts","webpack://shopify_zero/./app/javascript/consumer-app/ReturnReasons/ReturnReasonsExchange/ReturnReasonsExchangeStyles.js","webpack://shopify_zero/./app/javascript/consumer-app/ReturnReasons/ReturnReasonsExchange/ReturnReasonsExchange.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReturnReasons/ReturnReasonsPictures/index.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReturnReasons/ReturnReasonsStyles.ts","webpack://shopify_zero/./app/javascript/consumer-app/ReturnReasons/ReturnReasonsRaw.tsx","webpack://shopify_zero/./app/javascript/consumer-app/ReturnReasons/path.ts","webpack://shopify_zero/./app/javascript/consumer-app/ReviewSummary/transformers/style.ts","webpack://shopify_zero/./app/javascript/consumer-app/ReturnReasons/index.tsx","webpack://shopify_zero/./app/javascript/consumer-app/steps/ChooseItems/ChooseItems.js","webpack://shopify_zero/./app/javascript/shared/modules/currency.js","webpack://shopify_zero/./app/javascript/consumer-app/data/emitMetric.js","webpack://shopify_zero/./app/javascript/consumer-app/steps/ChooseItems/Item/ItemThumbnail.js"],"sourcesContent":["import { randomIdString } from \"./localId\";\nimport { safeLocalStorage } from \"./localStorage\";\n\nconst getAnonymousId = () => {\n let anonymousId = safeLocalStorage.getItem(\"nv_anonymous_id\");\n if (!anonymousId) {\n anonymousId = randomIdString(32);\n safeLocalStorage.setItem(\"nv_anonymous_id\", anonymousId);\n }\n return anonymousId;\n};\n\nconst newSessionId = () => randomIdString(32);\n\nexport const createSessionTracking = ({\n sessionId,\n anonymousId,\n ...cfg\n} = {}) => {\n let sid = sessionId ?? newSessionId();\n let getAid = anonymousId ? () => anonymousId : getAnonymousId;\n\n return {\n get anonymousId() {\n return getAid();\n },\n get sessionId() {\n return sid;\n },\n reset() {\n sid = newSessionId();\n return sid;\n },\n ...cfg,\n };\n};\n\nexport default createSessionTracking();\n","import React, { forwardRef, useImperativeHandle, useRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport OutlinedInput from \"@material-ui/core/OutlinedInput\";\nimport FormControl from \"@material-ui/core/FormControl\";\nimport Select from \"@material-ui/core/Select\";\nimport MuiTextField from \"@material-ui/core/TextField\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport isAbsoluteUrl from \"is-absolute-url\";\n\nimport FieldLabel from \"./FieldLabel\";\nimport isNumber from \"lodash/isNumber\";\nimport { useElementId } from \"../../modules/localId\";\nimport clsx from \"clsx\";\n\nconst useStyles = makeStyles(\n () => ({\n root: {},\n required: {\n \"& > *\": { display: \"inline\" },\n },\n alignCenter: {\n \"& > input\": {\n textAlign: \"center\",\n },\n },\n alignRight: {\n \"& > input\": {\n textAlign: \"right\",\n },\n },\n }),\n { name: \"N0TextField\" },\n);\n\nconst validate = (type, { inputProps, required, value }) => {\n if (required && !isNumber(value)) return { result: false };\n\n if (type === \"number\") {\n value = parseInt(value, 10);\n\n if (inputProps) {\n if (value < inputProps.min) {\n return false;\n }\n\n if (value > inputProps.max) {\n return false;\n }\n }\n }\n\n if (type === \"url\") {\n if (value && !isAbsoluteUrl(value)) return { result: false };\n }\n\n return { result: true };\n};\n\nconst TextField = forwardRef(\n (\n {\n fullWidth,\n id,\n inputProps: _inputProps,\n labelProps,\n label: _label,\n onBlur,\n onChange,\n required: _required,\n shrink,\n textAlign,\n type: _type,\n value,\n ...other\n },\n ref,\n ) => {\n const defaultValueRef = useRef(value);\n const classes = useStyles();\n const isNewPassword = _type === \"new-password\";\n const type = isNewPassword ? \"password\" : _type; // new-password field is a password input\n const required = _required && !isNewPassword; // new-password field is optional\n const label =\n isNewPassword && typeof _label === \"string\" ? `New ${_label}` : _label;\n const inputProps =\n type === \"password\"\n ? {\n // default pattern for password field, ensures that there is at\n // least one non-whitespace character\n pattern: \".*\\\\S.*\",\n ..._inputProps,\n }\n : _inputProps;\n const result = validate(type, {\n inputProps,\n required,\n value,\n });\n // auto-generate the DOM element ID, when label exists but ID is not\n // provided. This improves accessability of UI (linkage of input and label),\n // also make test suit easier to interact the UI.\n const uid = useElementId(\"N0TextField-\");\n const elId = id || inputProps?.id || (label ? uid : undefined);\n const inputClassName = clsx({\n [classes.alignCenter]: textAlign === \"center\",\n [classes.alignRight]: textAlign === \"right\",\n });\n\n const handleBlur = (event) => {\n if (onBlur) onBlur(event);\n\n if (result || !onChange) return;\n return onChange(event);\n };\n\n useImperativeHandle(\n ref,\n () => ({\n validate: () => result,\n }),\n [result],\n );\n\n if (label && shrink && type !== \"select\") {\n return (\n \n );\n }\n\n return (\n \n {label && (\n \n {label}\n {required && *}\n \n )}\n {type === \"select\" ? (\n \n ) : (\n \n )}\n \n );\n },\n);\nTextField.displayName = \"TextField\";\nTextField.propTypes = {\n fullWidth: PropTypes.bool,\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n shrink: PropTypes.bool,\n textAlign: PropTypes.oneOf([\"left\", \"center\", \"right\"]),\n required: PropTypes.bool,\n type: PropTypes.string,\n value: PropTypes.any,\n inputProps: PropTypes.object,\n labelProps: PropTypes.object,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n};\nTextField.defaultProps = {\n textAlign: \"left\",\n};\nexport default TextField;\n","function getParameterByName(name) {\n var match = RegExp(\"[?&]\" + name + \"=([^&]*)\").exec(window.location.search);\n return match && decodeURIComponent(match[1].replace(/\\+/g, \" \"));\n}\n\nconst locale = getParameterByName(\"lang\") || undefined;\n\nexport default locale;\n","export const BORDER_WIDTH_UNSELECTED = 1;\nexport const BORDER_WIDTH_SELECTED = 3;\nexport const ACTION_HEIGHT_SPACING = 5;\n\nexport const getBorderSelected = (theme) =>\n `${BORDER_WIDTH_SELECTED}px solid ${theme.palette.primary.main}`;\n\nexport const getBorderUnselected = (theme) =>\n `${BORDER_WIDTH_UNSELECTED}px solid #ccc`;\n\nexport const getPadding = (theme) => theme.spacing(3);\n","import { useMemo } from \"react\";\nimport { useQuery, gql } from \"@apollo/client\";\n\nexport const LIST_COUNTRIES = gql`\n query ListCountries($locale: String) {\n listCountries(locale: $locale) {\n countryCode\n country\n }\n }\n`;\n\nexport const LIST_STATES = gql`\n query ListStates($locale: String, $countryCode: String!) {\n listStatesOfCountryCode(locale: $locale, countryCode: $countryCode) {\n regionCode\n region\n }\n }\n`;\n\nexport const useCountriesList = (locale) => {\n const countriesResponse = useQuery(LIST_COUNTRIES);\n const { data: { listCountries = [] } = {} } = countriesResponse;\n\n const countriesTextMap = useMemo(\n () =>\n listCountries.reduce(\n (acc, { countryCode, country }) => ({\n ...acc,\n [countryCode]: country,\n }),\n {},\n ),\n [listCountries],\n );\n\n const queryStatus = useMemo(\n () => ({\n called: countriesResponse.called,\n loading: countriesResponse.loading,\n error: countriesResponse.error,\n }),\n [\n countriesResponse.called,\n countriesResponse.loading,\n countriesResponse.error,\n ],\n );\n\n return useMemo(\n () => ({\n state: {\n countriesTextMap,\n listCountries,\n },\n queryStatus,\n }),\n [countriesTextMap, listCountries, queryStatus],\n );\n};\n\nexport const useStatesList = (countryCode) => {\n const statesResponse = useQuery(LIST_STATES, {\n variables: { countryCode },\n });\n\n const { data: { listStatesOfCountryCode: listStates = [] } = {} } =\n statesResponse;\n\n const statesTextMap = useMemo(\n () =>\n listStates.reduce(\n (acc, { regionCode, region }) => ({\n ...acc,\n [regionCode]: region,\n }),\n {},\n ),\n [listStates],\n );\n\n const queryStatus = useMemo(\n () => ({\n called: statesResponse.called,\n loading: statesResponse.loading,\n error: statesResponse.error,\n }),\n [statesResponse.called, statesResponse.loading, statesResponse.error],\n );\n\n return useMemo(\n () => ({\n state: { listStates, statesTextMap },\n queryStatus,\n }),\n [queryStatus, listStates, statesTextMap],\n );\n};\n","import React, { useMemo, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport TextField from \"@material-ui/core/TextField\";\nimport MuiAutocomplete from \"@material-ui/lab/Autocomplete\";\nimport { useElementId } from \"../../modules/localId\";\n\nconst Autocomplete = ({\n multiple,\n onChange,\n options,\n placeholder,\n value,\n required,\n autoFill,\n hideOptions,\n PopperComponent,\n ...other\n}) => {\n const [inputValue, setInputValue] = useState(\"\");\n const randomID = useElementId(\"autocomplete-\");\n const Popper = useMemo(\n () => (hideOptions ? () => <> : PopperComponent),\n [hideOptions, PopperComponent],\n );\n\n const handleChange = (event, selectedValue) => {\n setInputValue(\"\");\n\n if (!onChange) return;\n\n if (multiple && selectedValue !== null) {\n onChange([...selectedValue]);\n } else {\n onChange(selectedValue);\n }\n };\n\n const handleInputChange = (event, newValue = \"\") => {\n setInputValue(newValue);\n };\n\n return (\n {\n // HACK: disable browser auto-complete / auto-fill\n inputProps = autoFill\n ? inputProps\n : {\n autoComplete: randomID,\n name: randomID,\n id: randomID,\n ...inputProps,\n };\n\n return (\n \n );\n }}\n {...other}\n />\n );\n};\n\nAutocomplete.propTypes = {\n placeholder: PropTypes.string,\n required: PropTypes.bool,\n options: PropTypes.array,\n autoFill: PropTypes.bool,\n hideOptions: PropTypes.bool,\n multiple: PropTypes.bool,\n value: PropTypes.any,\n onChange: PropTypes.func,\n PopperComponent: PropTypes.elementType,\n};\n\nAutocomplete.defaultProps = {\n options: [],\n autoFill: false,\n hideOptions: false,\n};\n\nexport default Autocomplete;\n","import React, {\n FunctionComponent,\n ReactNode,\n useEffect,\n useMemo,\n useRef,\n useState,\n cloneElement,\n} from \"react\";\nimport Button from \"@material-ui/core/Button\";\nimport ButtonGroup from \"@material-ui/core/ButtonGroup\";\nimport Menu from \"@material-ui/core/Menu\";\nimport ArrowDropDownIcon from \"@material-ui/icons/ArrowDropDown\";\nimport { makeStyles } from \"@material-ui/core/styles\";\n\nconst anchorOrigin = {\n vertical: \"bottom\",\n horizontal: \"center\",\n};\n\nconst transformOrigin = {\n vertical: \"top\",\n horizontal: \"center\",\n};\n\nconst useStyles = makeStyles(\n (theme) => ({\n menuRoot: {\n marginTop: theme.spacing(1),\n },\n }),\n { name: \"N0ButtonSelect\" },\n);\n\nconst ButtonSelect = ({\n children,\n className,\n value,\n disabled,\n autoClose,\n variant = \"contained\",\n}) => {\n const classes = useStyles();\n const [open, setOpen] = useState(false);\n const anchorRef = useRef(null);\n const menuWidth = anchorRef?.current\n ? anchorRef?.current?.offsetWidth - 2\n : 0;\n\n const handleToggle = () => {\n setOpen((prevOpen) => !prevOpen);\n };\n\n const handleClose = (event) => {\n if (anchorRef.current && anchorRef.current.contains(event.target)) {\n return;\n }\n\n setOpen(false);\n };\n\n useEffect(() => {\n if (disabled && open) {\n setOpen(false);\n }\n }, [disabled]);\n\n const createOnClickWrapper = (func) =>\n function buttonSelectOnClickWrapper(...args) {\n const res = func(...args);\n setOpen(false); // close menu after child item successfully called the onClick function\n return res;\n };\n\n const _children = useMemo(() => {\n if (autoClose && children) {\n const childrenArray = Array.isArray(children) ? children : [children];\n return childrenArray.map((c) => {\n const onClick = c?.props?.onClick;\n if (\n onClick &&\n typeof onClick === \"function\" &&\n onClick.name !== \"buttonSelectOnClickWrapper\"\n ) {\n return cloneElement(c, {\n onClick: createOnClickWrapper(onClick),\n });\n }\n return c;\n });\n }\n return children;\n }, [autoClose, children]);\n\n return (\n <>\n \n \n \n \n \n \n \n {_children}\n \n \n );\n};\n\nexport default ButtonSelect;\n","import React from \"react\";\nimport FormControl from \"@material-ui/core/FormControl\";\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\nimport FormGroup from \"@material-ui/core/FormGroup\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport PropTypes from \"prop-types\";\n\nimport FieldLabel from \"./FieldLabel\";\n\nconst useStyles = makeStyles(\n () => ({\n root: {\n width: \"100%\",\n marginBottom: 16,\n },\n }),\n { name: \"GroupField\" },\n);\n\nfunction GroupField({ children, label, ...other }) {\n const classes = useStyles();\n\n return (\n \n {label && {label}}\n \n {React.Children.map(children, (element) => {\n const { label, ...other } = element.props;\n\n return (\n }\n label={label}\n />\n );\n })}\n \n \n );\n}\nGroupField.propTypes = {\n children: PropTypes.node,\n label: PropTypes.string,\n};\nexport default GroupField;\n","import React, { useRef } from \"react\";\nimport Typography from \"@material-ui/core/Typography\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport CloudUploadIcon from \"@material-ui/icons/CloudUpload\";\nimport ImageIcon from \"@material-ui/icons/Image\";\nimport Paper from \"@material-ui/core/Paper\";\n\nconst useStyles = makeStyles(\n (theme) => ({\n root: {\n flexDirection: \"column\",\n },\n container: {\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n height: theme.spacing(32),\n marginBottom: theme.spacing(1),\n overflow: \"hidden\",\n },\n imageContainer: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n marginBottom: theme.spacing(2),\n },\n image: {\n width: \"90%\",\n },\n imageIcon: {\n fontSize: theme.spacing(6),\n },\n buttonContainer: {\n display: \"block\",\n },\n button: {\n display: \"flex\",\n alignItems: \"center\",\n flexDirection: \"row\",\n marginBottom: theme.spacing(1),\n },\n label: {\n color: theme.palette.action.disabled,\n marginLeft: theme.spacing(1),\n },\n }),\n { name: \"N0ImageUploadLarge\" },\n);\n\nconst ImageUploadLarge = ({\n className,\n helperText = \"Upload a JPG or PNG\",\n errorText = \"\",\n label = \"Upload Image\",\n onChange,\n preview,\n variant = \"normal\",\n}) => {\n const inputRef = useRef(null);\n const classes = useStyles();\n\n const handleClick = () => {\n if (!inputRef.current) return;\n inputRef.current.click();\n };\n\n return (\n
\n \n {preview ? (\n \"\"\n ) : (\n \n
\n \n
\n
\n
\n \n \n {label}\n \n
\n
\n
\n )}\n
\n {errorText && (\n \n {errorText}\n \n )}\n \n {helperText}\n \n
\n );\n};\n\nexport default ImageUploadLarge;\n","import React, { useRef } from \"react\";\nimport Typography from \"@material-ui/core/Typography\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport CloudUploadIcon from \"@material-ui/icons/CloudUpload\";\nimport ImageIcon from \"@material-ui/icons/Image\";\n\nconst useStyles = makeStyles(\n (theme) => ({\n root: {\n display: \"inline-flex\",\n flexDirection: \"row\",\n },\n imageContainer: {\n display: \"flex\",\n width: theme.spacing(11),\n marginRight: theme.spacing(2),\n backgroundColor: theme.palette.background.default,\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n image: {\n width: \"90%\",\n },\n buttonContainer: {\n display: \"block\",\n },\n button: {\n display: \"flex\",\n alignItems: \"center\",\n flexDirection: \"row\",\n marginBottom: theme.spacing(1),\n },\n label: {\n marginLeft: theme.spacing(1),\n },\n }),\n { name: \"N0ImageUploadSmall\" },\n);\n\nconst ImageUploadSmall = ({\n className,\n helperText = \"Upload a JPG or PNG\",\n errorText = \"\",\n label = \"Upload Image\",\n onChange,\n preview,\n variant = \"normal\",\n}) => {\n const inputRef = useRef(null);\n const classes = useStyles();\n\n const handleClick = () => {\n if (!inputRef.current) return;\n inputRef.current.click();\n };\n\n return (\n
\n
\n {preview ? (\n \"\"\n ) : (\n \n )}\n
\n
\n
\n \n \n {label}\n \n
\n {errorText && (\n \n {errorText}\n \n )}\n \n {helperText}\n \n
\n
\n );\n};\n\nexport default ImageUploadSmall;\n","import React, { useRef } from \"react\";\nimport Typography from \"@material-ui/core/Typography\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport CloudUploadIcon from \"@material-ui/icons/CloudUpload\";\nimport ImageIcon from \"@material-ui/icons/Image\";\nimport Paper from \"@material-ui/core/Paper\";\nimport Box from \"@material-ui/core/Box\";\n\nconst useStyles = makeStyles(\n (theme) => ({\n root: {\n flexDirection: \"column\",\n },\n container: {\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n height: theme.spacing(8),\n marginBottom: theme.spacing(1),\n overflow: \"hidden\",\n },\n imageContainer: {\n display: \"none\",\n justifyContent: \"center\",\n alignItems: \"center\",\n marginBottom: theme.spacing(2),\n },\n image: {\n width: \"auto\",\n height: theme.spacing(8),\n },\n imageIcon: {\n fontSize: theme.spacing(6),\n },\n buttonContainer: {\n display: \"block\",\n },\n button: {\n display: \"flex\",\n alignItems: \"center\",\n flexDirection: \"row\",\n },\n label: {\n color: \"#4967A2\",\n marginLeft: theme.spacing(1),\n },\n }),\n { name: \"N0ImageUploadNormal\" },\n);\n\nconst ImageUploadNormal = ({\n className,\n helperText = \"Upload a JPG or PNG\",\n errorText = \"\",\n label = \"Upload Image\",\n onChange,\n preview,\n variant = \"normal\",\n}) => {\n const inputRef = useRef(null);\n const classes = useStyles();\n\n const handleClick = () => {\n if (!inputRef.current) return;\n inputRef.current.click();\n };\n\n return (\n
\n \n {preview ? (\n \"\"\n ) : (\n \n
\n \n
\n
\n
\n \n \n {label}\n \n
\n
\n
\n )}\n
\n {errorText && (\n \n {errorText}\n \n )}\n \n {helperText}\n \n
\n );\n};\n\nexport default ImageUploadNormal;\n","import React, { useRef, useState, useEffect, useMemo } from \"react\";\nimport ImageUploadLarge from \"./ImageUploadLarge\";\nimport ImageUploadSmall from \"./ImageUploadSmall\";\nimport ImageUploadNormal from \"./ImageUploadNormal\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport clsx from \"clsx\";\n\nconst useStyles = makeStyles(\n (theme) => ({\n root: {\n cursor: \"pointer\",\n position: \"relative\",\n overflow: \"hidden\",\n },\n inputContainer: {\n height: 0,\n width: 0,\n overflow: \"hidden\",\n transform: \"translateY(-100px)\",\n },\n }),\n { name: \"N0ImageUpload\" },\n);\n\nconst ImageUpload = ({\n className,\n helperText = \"Upload a JPG or PNG\",\n label = \"Upload Image\",\n value,\n errorText,\n onChange,\n variant = \"small\",\n}) => {\n const inputRef = useRef(null);\n const [preview, setPreview] = useState(value);\n const classes = useStyles();\n\n const handleClick = () => {\n if (!inputRef.current) return;\n inputRef.current.click();\n };\n\n const handleChange = (event) => {\n const file = event.target.files[0];\n if (!file) return; // user click \"cancel\" in popup\n\n const reader = new FileReader();\n reader.onload = (event) => {\n setPreview(event.target.result);\n };\n\n reader.readAsDataURL(file);\n onChange(event.target.files[0]);\n };\n\n useEffect(() => {\n setPreview(value);\n }, [value]);\n\n const inputNode = useMemo(() => {\n if (variant === \"large\") {\n return (\n \n );\n } else if (variant === \"normal\") {\n return (\n \n );\n }\n\n return (\n \n );\n }, [className, helperText, label, preview, variant]);\n\n return (\n
\n
\n \n
\n {inputNode}\n
\n );\n};\n\nexport default ImageUpload;\n","import ImageUpload from \"./ImageUpload\";\nexport default ImageUpload;\n","import React from \"react\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport InputBase from \"@material-ui/core/InputBase\";\nimport InputLabel from \"@material-ui/core/InputLabel\";\nimport FormControl from \"@material-ui/core/FormControl\";\nimport PropTypes from \"prop-types\";\n\nconst useStyles = makeStyles(\n (theme) => ({\n root: {\n \"label + &\": {\n marginTop: theme.spacing(1.25),\n },\n },\n input: {\n borderRadius: 2,\n position: \"relative\",\n backgroundColor: theme.palette.common.white,\n border: \"1px solid #ced4da\",\n width: \"100%\",\n padding: \"10px 12px\",\n minHeight: 84,\n \"&:focus\": {\n borderColor: theme.palette.primary.main,\n },\n },\n multiline: {\n padding: 0,\n },\n }),\n { name: \"N0PlainTextArea\" },\n);\n\nfunction PlainTextArea({ className, fullWidth, label, ...other }) {\n const classes = useStyles();\n\n return (\n \n {label ? (\n \n {label}\n \n ) : null}\n \n \n );\n}\nPlainTextArea.propTypes = {\n className: PropTypes.string,\n label: PropTypes.string,\n fullWidth: PropTypes.bool,\n};\nexport default PlainTextArea;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport TextField from \"./TextField\";\nimport { makeStyles } from \"@material-ui/core/styles\";\n\nconst useStyles = makeStyles(\n (theme) => ({\n counter: {\n color: \"#9E9E9E\",\n },\n }),\n { name: \"N0TextFieldWithCharacterCount\" },\n);\n\nfunction TextFieldWithCharacterCount({ value, maxCount, ...props }) {\n const classes = useStyles();\n\n return (\n \n \n {value?.length ?? 0}\n {maxCount > 0 && `/${maxCount}`}\n \n \n }\n maxLength={maxCount}\n {...props}\n />\n );\n}\n\nTextFieldWithCharacterCount.propTypes = {\n maxCount: PropTypes.number,\n ...TextField.propTypes,\n};\n\nTextFieldWithCharacterCount.defaultProps = {\n maxCount: 0,\n};\n\nexport default TextFieldWithCharacterCount;\n","import React, { FunctionComponent } from \"react\";\nimport MuiCheckbox from \"@material-ui/core/Checkbox\";\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\nimport { makeStyles } from \"@material-ui/core/styles\";\n\nconst useStyles = makeStyles(\n (theme) => ({\n labelStrong: {\n ...theme.typography.h4,\n },\n }),\n { name: \"N0Checkbox\" },\n);\n\nconst Checkbox = ({ checked, color = \"primary\", labelStrong, ...props }) => {\n const classes = useStyles();\n const classesOverride = {\n label: labelStrong ? classes.labelStrong : null,\n };\n return (\n }\n {...props}\n />\n );\n};\n\nexport default Checkbox;\n","import React, { useMemo } from \"react\";\nimport { KeyboardDatePicker } from \"@material-ui/pickers\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport moment from \"moment\";\n\nconst useStyles = makeStyles(\n (theme) => ({\n adornedEnd: {\n paddingRight: 0,\n },\n }),\n { name: \"N0DatePicker\" },\n);\n\nfunction DatePicker({\n disabled,\n fullWidth,\n maxDate,\n minDate,\n onChange,\n value,\n}) {\n const classes = useStyles();\n\n const handleChange = (date, value) => onChange(value);\n\n // value props in DatePicker assumes the input is ParableDate,\n // as MM-DD-YYYY is a non RFC2822/ISO format, it may throw deprecate warning on Firefox v93.0\n // we need to convert back to a Date object\n const format = \"MM-DD-YYYY\";\n const date = useMemo(() => {\n const d = moment(value, format);\n return d.isValid() ? d.toDate() : null; // keep it blank when input is invalid or null\n }, [value, format]);\n\n return (\n \n );\n}\nexport default DatePicker;\n","export default {\n returnsCsrSignInError401:\n \"The current user is not authorized to access this order.\",\n returnsCsrSignInError500:\n \"There was an error with sign in. Please try again.\",\n returnsCsrSignInTitle: \"Customer Service Sign In\",\n returnsCsrSignInDetails:\n \"Enter an Order Number and click Sign In to continue.\",\n returnsCsrSignInOrderPlaceholder: \"Order Number\",\n returnsCsrSignInPrimaryButton: \"Sign in with Narvar\",\n returnsPudoListTitle: \"How would you like to return it?\",\n returnsPudoListItemhomepickupTitle: \"Home Pickup\",\n returnsPudoListItemhomepickupSubtitle: \"Home Pickup\",\n returnsPudoListItemstoreTitle: \"Visit a store\",\n returnsPudoListItemstoreSubtitle: \"No box or label needed\",\n returnsPudoListItemstoreLinktext: \"Find a nearby store\",\n returnsPudoListItemconciergepartnershipTitle: \"Dropoff Partner\",\n returnsPudoListItemconciergepartnershipSubtitle: \"\",\n returnsPudoListItemprinterlessmailTitle: \"Printerless Drop-Off\",\n returnsPudoListItemprinterlessmailSubtitle:\n \"Box your return. No label needed.\",\n returnsPudoListItemmailTitle: \"Ship It Back\",\n returnsPudoListItemmailSubtitle: \"Send your package back to us.\",\n returnsPudoListItemmailLinktext: \"Find a nearby location\",\n returnsPudoListShowall: \"< Back to All Methods\",\n returnsPudoListFeeLabellabelfee: \"Label Fee\",\n returnsPudoListFeeLabelshippingfee: \"Shipping Fee\",\n returnsPudoListFeeLabelpickupfee: \"Pickup Fee\",\n returnsPudoListFeeLabelFree: \"FREE\",\n returnsPudoListSwitchCategory: \"Select different return method\",\n returnsPudoLocationsPostalcodeTitle: \"Choose your location near: \",\n returnsPudoLocationsPostalcodeSearch: \"Search\",\n returnsPudoLocationsPostalcodeCancel: \"Cancel\",\n returnsPudoLocationsDistanceUnitmiles: \"mi\",\n returnsPudoLocationsDistanceUnitkilometers: \"km\",\n returnsPudoLocationsDistanceNounit: \"Directions\",\n returnsPudoPickupTimeslotTitle: \"We can pick up your return\",\n returnsPudoPickupTimeslotDescription:\n \"The pickup window will be from {{earliestHour}} to {{latestHour}}.
Hand your package directly to courier or leave your package in a safe place for pickup.\",\n returnsPudoPickupLocationTitle: \"Pickup Location\",\n returnsPudoPickupLocationDescription:\n \"Returns can only be picked up from the original delivery address.\",\n returnsPudoPickupInstructionsToggle: \"Add Pickup Instructions\",\n returnsPudoPickupFeeTitle: \"{{pickupFee}} Pickup Convenience Fee\",\n returnsPudoPickupFeeDescription:\n \"This is a non-refundable fee in addition to any return shipping fees deducted from your return.
Once the pickup is scheduled, it cannot be canceled.\",\n returnsPudoPickupInstructionsPlaceholder:\n \"Take the lobby elevator up to the 3rd floor.\",\n returnsPudoPickupInstructionsHandoffTitle:\n \"How will the courier pick up your package?\",\n returnsPudoSubmit: \"Submit\",\n returnsPudoLocationsSortedbyOptionrecommended: \"Recommended\",\n returnsPudoLocationsSortedbyOptiondistance: \"Distance\",\n returnsPudoLocationsSortedbyTitle: \"Sort By\",\n returnsPudoLocationsSkipLink:\n \"or proceed without selecting a drop-off location\",\n returnsPudoMultiLabelsTitle: \"How many shipping labels do you need?\",\n returnsPudoMultiLabelsDescription: \"You’ll need one label per box\",\n returnsPudoMultiLabelsInputPlaceholder: \"Number of labels\",\n returnsPudoMultiLabelsRemarks:\n \"Putting your return items in correctly labeled boxes will help you get your refund faster.\",\n returnsPudoErrorNopudooptions:\n \"No available return methods. Please try again later.\",\n returnsPudoErrorNotimeslots:\n \"No available pickup timeslots. Please go back and choose a different return method.\",\n\n returnsOrderLoginAbove: \"\",\n returnsOrderLoginBelow: \"\",\n returnsOrderLoginFormAbove: \"\",\n returnsOrderLoginFormBelow: \"\",\n returnsOrderLoginSubmitAbove: \"\",\n returnsOrderLoginSubmitBelow: \"\",\n returnsOrderLoginTitleBelow: \"\",\n returnsOrderLoginFieldsAbove: \"\",\n\n returnsOrderLoginTitle: \"Returns\",\n returnsOrderLoginDescription: \"Enter your order information to get started.\",\n returnsOrderLoginFormSubmit: \"Next\",\n returnsOrderLoginFormLabelEmail: \"Email\",\n returnsOrderLoginFormLabelOrder: \"Order Number\",\n returnsOrderLoginFormLabelGiftCode: \"Gift Code\",\n returnsOrderLoginFormCaptionEmail:\n \"We'll use this to send you your return label and refund.\",\n returnsOrderLoginFormCaptionOrder: \"\",\n returnsOrderLoginFormCaptionGiftCode:\n \"Can't find this? Try looking on your gift receipt, or email customer service and we'll help you out.\",\n returnsOrderLoginReturnPolicy: \"Read our Return Policy\",\n returnsOrderLoginError:\n \"We could not find the order. Please confirm information is correct and try again.\",\n returnsOrderLoginFormValidationErrorEmail:\n \"Please enter a valid email address.\",\n returnsOrderLoginToggleGiftReturnTitle: \"Returning a gift?\",\n returnsOrderLoginToggleGiftReturnLinkText: \"Start a gift return\",\n returnsOrderLoginToggleGiftReturnTitle_giftReturn: \"Not returning a gift?\",\n returnsOrderLoginToggleGiftReturnLinkText_giftReturn: \"Start a return\",\n\n returnsReasonsItemInfoTitle: \"{{name}}\",\n returnsReasonsItemInfoColor: \"Color: {{color}}\",\n returnsReasonsItemInfoColorLabel: \"Color:\",\n returnsReasonsItemInfoSize: \"Size: {{size}}\",\n returnsReasonsItemInfoSizeLabel: \"Size:\",\n returnsReasonsItemInfoQuantity: \"Quantity: {{quantity}}\",\n returnsReasonsItemInfoQuantityLabel: \"Quantity:\",\n returnsReasonsItemInfoQuantitySelectPlaceholder: \"Number of Items\",\n returnsReasonsTypeTitle: `What would you like to do?`,\n returnsReasonsTypeReturn: `Return`,\n returnsReasonsTypeExchange: `Exchange`,\n returnsReasonsTypeClaim: `Report shipping issue`,\n returnsReasonsListTitle: `What didn't go as planned?`,\n returnsReasonsListTitleSecondary: \"Specify more detail\",\n returnsReasonsQuantityTitle: \"How many would you like to return?\",\n returnsReasonsQuantityAllTitle:\n \"Is the item unopened and the full quantity being returned?\",\n returnsReasonsQuantityAllTitleHipaa:\n \"Is the item unopened and the full prescription quantity being returned?\",\n returnsReasonsQuantityAllYesLabel: \"Yes\",\n returnsReasonsQuantityAllNoLabel: \"No\",\n returnsReasonsQuantityAllError:\n \"Only unopened items that include their full quantity can be returned.\",\n returnsReasonsPicturesTitle: \"Please upload a photo\",\n returnsReasonsPicturesUploadButton: \"Choose Photo\",\n returnsReasonsPicturesUploadDescription:\n \"Please upload a PNG or JPG up to 10MB\",\n returnsReasonsPicturesUploadErrorMaxSize: \"Images must be smaller than 10MB.\",\n returnsReasonsPicturesUploadErrorMaxCount: \"Please upload 1 or 2 photos.\",\n returnsReasonsCommentsTitle: \"Anything else to share?\",\n returnsReasonsCommentsPlaceholder: \"Leave a comment (optional)\",\n returnsReasonsCommentsPlaceholderRequired: \"Leave a comment (required)\",\n returnsReasonsEditTitle: \"Remove item?\",\n returnsReasonsEditRemoveLabel: \"Yes, remove item\",\n returnsReasonsEditContinueLabel: \"No, continue with return\",\n returnsReasonsNoReasonsError: \"No return reasons available.\",\n returnsReasonsExchangeTitle:\n \"Would you like to exchange for another size or color?\",\n returnsReasonsExchangeUnavailable:\n \"This product is unavailable for exchange.\",\n returnsReasonsExchangeUpsellTitle:\n \"Would you like to exchange for something else?\",\n returnsReasonsExchangeUpsellNoThanks: \"No thanks\",\n returnsReasonsShopNowDescription: \"Not seeing what you want?\",\n returnsReasonsShopNowLink: \"Shop now with credit instead\",\n\n returnsConfirmationstoreActionsPanelHeader: \"RETURN SHIPPING LABEL\",\n returnsConfirmationstoreActionsPanelTitle: `Here's your store return slip`,\n returnsConfirmationstoreActionsPanelTitleHipaa:\n \"Check your email for your return slip\",\n returnsConfirmationstoreActionsPanelMainButton: \"Print Store Return Slip\",\n returnsConfirmationstoreActionsPanelDescription:\n \"A confirmation email has been sent to {{email}}\",\n returnsConfirmationstoreActionsPanelDescriptionHipaa:\n \"A confirmation email has been sent to your email address.\",\n returnsConfirmationstoreActionsPanelEmailButton:\n \"Send to another email address\",\n returnsConfirmationActionsPanelEmailStatusidle: \"\",\n returnsConfirmationActionsPanelEmailStatuserror:\n \"There appears to be an issue sending to the new email address. Please try again later.\",\n returnsConfirmationActionsPanelEmailStatusloading: \"\",\n returnsConfirmationActionsPanelEmailStatussuccess: \"\",\n returnsConfirmationActionsPanelEmailStatusvalidationerror: `There appears to be a problem with this email address. Please check and try again.`,\n returnsConfirmationActionsPanelEmailInputPlaceholder: \"Email\",\n returnsConfirmationstoreInstructionsPanelHeader: \"INSTRUCTIONS\",\n returnsConfirmationstoreStep1Title: `Print your return slip`,\n returnsConfirmationstoreStep1Details: `If you're unable to print, you can show an associate your confirmation email.`,\n returnsConfirmationstoreStep2Title: `Visit our store`,\n returnsConfirmationstoreStep2Details: `Bring along your return items and the return slip. Our sales associate will be happy to help complete your return or exchange.`,\n returnsConfirmationstoreItemsPanelHeader: \"ITEMS TO RETURN\",\n returnsConfirmationmailActionsPanelHeader: \"RETURN SHIPPING LABEL\",\n returnsConfirmationmailActionsPanelTitle: `Here's your {{provider}} return shipping label`,\n returnsConfirmationmailActionsPanelTitleHipaa:\n \"Check your email for your return shipping label\",\n returnsConfirmationmailActionsPanelMainButton: \"Print Return Shipping Label\",\n returnsConfirmationmailActionsPanelDescription:\n \"A confirmation email has been sent to {{email}}\",\n returnsConfirmationmailActionsPanelDescriptionHipaa:\n \"A confirmation email has been sent to your email address.\",\n returnsConfirmationmailActionsPanelEmailButton:\n \"Send to another email address\",\n returnsConfirmationmailInstructionsPanelHeader: \"INSTRUCTIONS\",\n returnsConfirmationmailStep1Title: `Print your return shipping label`,\n returnsConfirmationmailStep2Title: `Pack up your items`,\n returnsConfirmationmailStep2Details: `Place your packing slip and items in the original or new package, and seal it. Mark out any old addresses and barcodes, then attach your return shipping label.`,\n returnsConfirmationmailStep3Title: `Ship your package with {{provider}}`,\n returnsConfirmationmailStep3Details: `You can ship for package to us any way you like, either using a drop box or bringing it to a drop-off location.`,\n returnsConfirmationmailItemsPanelHeader: \"ITEMS TO RETURN\",\n returnsConfirmationprinterless_mailActionsPanelHeader: `MOBILE RETURN CODE`,\n returnsConfirmationprinterless_mailActionsPanelTitle: `Here's your {{provider}} mobile return code`,\n returnsConfirmationprinterless_mailActionsPanelTitleHipaa: `Check your email for your mobile return code`,\n returnsConfirmationprinterless_mailActionsPanelDescription: `This {{provider}} mobile return code was also sent via email to {{email}}`,\n returnsConfirmationprinterless_mailActionsPanelDescriptionHipaa:\n \"Your mobile return code was also sent to your email address.\",\n returnsConfirmationprinterless_mailActionsPanelEmailButton: `Send to another email address`,\n returnsConfirmationprinterless_mailLocationPanelHeader: `DROP-OFF LOCATION`,\n returnsConfirmationprinterless_mailInstructionsPanelHeader: `INSTRUCTIONS`,\n returnsConfirmationprinterless_mailStep1Title: `Pack up your items`,\n returnsConfirmationprinterless_mailStep1Details: `Place your items in the original or new packaging, and seal it. Mark out any old addresses and barcodes.`,\n returnsConfirmationprinterless_mailStep2Title: `Bring your return to {{location}}`,\n returnsConfirmationprinterless_mailStep2TitleHipaa:\n \"Bring your return to your preferred location\",\n returnsConfirmationprinterless_mailStep3Title: `Ship your package with {{provider}}`,\n returnsConfirmationprinterless_mailStep3Details: `You can ship for package to us any way you like, either using a drop box or bringing it to a drop-off location.`,\n returnsConfirmationprinterless_mailItemsPanelHeader: `ITEMS TO RETURN`,\n returnsConfirmationprinterless_mailSecondaryActionsPanelTitle: `Need to print a return label?`,\n returnsConfirmationprinterless_mailSecondaryActionsPanelDescription: `If you change your mind or your mobile return code isn't working, you can always print your label instead.`,\n returnsConfirmationprinterless_mailSecondaryActionsPanelMainButton: `Get label`,\n returnsConfirmationconciergeActionsPanelHeader: \"RETURN SHIPPING LABEL\",\n returnsConfirmationconciergeActionsPanelTitle: `Here's your {{provider}} return shipping label`,\n returnsConfirmationconciergeActionsPanelTitleHipaa:\n \"Check your email for your return shipping label\",\n returnsConfirmationconciergeActionsPanelMainButton:\n \"Print Return Shipping Label\",\n returnsConfirmationconciergeActionsPanelDescription:\n \"A confirmation email has been sent to {{email}}\",\n returnsConfirmationconciergeActionsPanelEmailButton:\n \"Send to another email address\",\n returnsConfirmationconciergeLocationPanelHeader: `DROP-OFF LOCATION`,\n returnsConfirmationconciergeInstructionsPanelHeader: \"INSTRUCTIONS\",\n returnsConfirmationconciergeStep1Title: `Print your return shipping label`,\n returnsConfirmationconciergeStep2Title: `Pack up your items`,\n returnsConfirmationconciergeStep2Details: `Place your packing slip and items in the original or new package, and seal it. Mark out any old addresses and barcodes, then attach your return shipping label.`,\n returnsConfirmationconciergeStep3Title: `Ship your package with {{provider}}`,\n returnsConfirmationconciergeStep3Details: `You can ship for package to us any way you like, either using a drop box or bringing it to a drop-off location.`,\n returnsConfirmationreshopStepTitle:\n 'Download the Reshop app to finish getting your refund.',\n returnsConfirmationreshopStepDetails:\n \"Once you’re set up, we’ll send your money to your bank account\",\n returnsConfirmationreshopStepAppStoreLink:\n \"https://apps.apple.com/us/app/reshop-app/id6457265704\",\n returnsConfirmationreshopStepAppStoreLinkText: \"Download on the App Store\",\n returnsConfirmationreshopStepGooglePlayLink:\n \"https://play.google.com/store/apps/details?id=com.reshopmobile\",\n returnsConfirmationreshopStepGooglePlayLinkText: \"Get it on Google Play\",\n returnsConfirmationconciergeItemsPanelHeader: \"ITEMS TO RETURN\",\n returnsConfirmationError: \"We could not find the return. Try again later.\",\n\n returnsMonikerfedexDisplayName: `FedEx`,\n returnsMonikerfedexLinkText: \"Find a drop-off location\",\n returnsMonikerfedexLinkUrl: \"https://local.fedex.com/\",\n returnsMonikerupsDisplayName: `UPS`,\n returnsMonikerupsLinkText: \"Find a drop-off location\",\n returnsMonikerupsLinkUrl: \"https://www.ups.com/dropoff\",\n returnsMonikeruspsDisplayName: `USPS`,\n\n returnsItemListTitle: \"Hi {{customer}}, what item can we help you with?\",\n returnsItemListTitleHipaa: \"Hello. What would you like to return?\",\n returnsItemListTitleDirty:\n \"Can we help you with anything else, {{customer}}?\",\n returnsItemListTitleDirtyHipaa:\n \"Please review the item to be returned and click Next to proceed. Click the item if you want to make changes.\",\n returnsItemListIneligibleTitle: \"You have no eligible items for return.\",\n returnsItemListEligibleDescription:\n \"These items can be returned until {{returnDate}}\",\n returnsItemListReturnInitiatedTitle: \"Return Initiated\",\n returnsItemListPendingpacking_slip_and_shipping_labelLink:\n \"Reprint Shipping Label\",\n returnsItemListPendingqr_codeLink: \"Get Mobile Return Code\",\n returnsItemListPendingpacking_slipLink: \"Reprint Packing Slip\",\n returnsItemListPendingshipping_labelLink: \"Reprint Shipping Label\",\n returnsItemListPendingCancelReturnLink: \"Cancel Return\",\n returnsItemListIneligibleDescription: \"Not Eligible for Return\",\n returnsItemListSubmit: \"Next\",\n returnsItemListItemInfoTitle: \"{{name}}\",\n returnsItemListItemInfocolorLabel: \"Color: \",\n returnsItemListItemInfoskuLabel: \"SKU: \",\n returnsItemListItemInfoqtyLabel: \"Quantity: \",\n returnsItemListItemInfosizeLabel: \"Size: \",\n returnsItemListItemInfoqtyTransactionSeparator: \" -> \",\n returnsItemListItemInfopriceLabel: \"Price: \",\n returnsItemListItemInforeasonLabel: \"Reason: \",\n returnsItemListItemTagReturning: \"Returning\",\n returnsItemListItemTagExchanging: \"Exchanging\",\n returnsItemListItemTagClaiming: \"Returning\",\n returnsItemListItemTagHasShippingProtection: \"Shipping Protection\",\n returnsItemListItemTagHasShippingProtectionTooltip:\n 'Item is protected if it is delivered damaged, lost during delivery, or stolen. Learn more',\n returnsItemListItemTagExchangingForCredit: \"Exchanging for Credit\",\n returnsItemListNoItemError: \"No valid items in this order to be returned.\",\n returnsItemListBannererror:\n \"Sorry, we are unable to cancel your return at this time. Please try again later. \",\n returnsItemListBannersuccess: \"Your return was successfully cancelled. \",\n returnsLineItemGroupIneligibleDescription:\n \"These items need to be returned to a different location. You can return these items after completing the return for your selected item(s).\",\n returnsLineItemGroupTitle: \"Sold by {{group}}\",\n\n returnsReviewError:\n \"Unfortunately, we are unable to complete your return at this time. Please try again later.\",\n returnsReviewHeader: \"Does everything look right?\",\n returnsReviewDescriptionmail: `You'll be able to download your prepaid shipping label once your return is submitted.`,\n returnsReviewDescriptionconcierge: `You'll be able to download your prepaid shipping label once your return is submitted.`,\n returnsReviewDescriptionprinterless_mail: `You'll receive a Mobile Return Code once your return is submitted.`,\n returnsReviewDescriptionstore: `You will be able to download a return slip to take to our store once you submit your return.`,\n returnsReviewDescriptionself: `You'll be able to download your packing slip once your return is submitted.`,\n returnsReviewSubHeader: \"Return Summary\",\n returnsReviewSubHeaderExchange: \"Exchange Summary\",\n returnsReviewSubHeaderReturnAndExchange: \"Return and Exchange Summary\",\n returnReviewTitleShopNow: \"Shopping Cart\",\n returnsReviewItemCardSize: \"Size\",\n returnsReviewItemCardQuantity: \"Quantity\",\n returnsReviewTotalsSubtotal: \"Subtotal\",\n returnsReviewTotalsShippingFee: \"Return Shipping Fee\",\n returnsReviewTotalsEstimatedRefund: \"Estimated Refund\",\n returnsReviewTotalsEstimatedCharge: \"Total\",\n returnsReviewTotalsHelpText:\n \"* This is an estimate. Actual refund amount is subject to applied discounts, tax, shipping costs, and item condition.\",\n returnsReviewDropOffLocationHeader: \"Drop-Off Location Details\",\n returnsReviewAddEmailHeader: \"Customer Email Address\",\n returnsReviewAddEmailDescription: `Before submitting this return, please include the customer's email address. Return instructions and the shipping label will be sent to this address.`,\n returnsReviewUpdateEmailDescription: `If you need to update the customer's email address, enter it below. Return instructions and the shipping label will be sent to to this new address along with any future notifications on this return.`,\n returnsReviewAddEmailInputLabel: \"Email Address\",\n returnsReviewSubmittingReturn: \"Submitting Return\",\n returnsReviewSubmittingError:\n \"There was a problem processing this return. Try again later.\",\n returnsReviewPolicyCheckbox: \"\",\n returnsReviewRefundTo_originalPayment: \"to {{name}}\",\n returnsReviewRefundTo_giftCard: \"to {{name}}\",\n returnsReviewPreferencesCheckboxLabel:\n 'Save your returns methods & preferences to use for future returns with retailers who use Narvar. You can add, update or delete your preferences at any time. Learn more',\n returnsReviewPreferencesInputLabel:\n \"Confirm your email associated with this order\",\n returnsReviewReshopTitle:\n 'Get Text Updates About Your Refund with Reshop',\n returnsReviewReshopCheckboxLabel:\n \"I want to receive texts from Reshop about my refund\",\n returnsReviewReshopPhoneInputLabel: \"Mobile Number\",\n returnsReviewReshopDisclaimer:\n \"*Assuming we need some sort of disclaimer text here\",\n\n returnsRefundMethodsTitle: \"How would you like to receive your refund?\",\n returnsRefundMethodsDisclaimer: \"\",\n returnsRefundMethodsOptionOriginalPaymentTitle: \"Original Form of Payment\",\n returnsRefundMethodsOptionOriginalPaymentDescription:\n \"Receive a refund to your original form of payment 5-7 days after your return is processed.\",\n returnsRefundMethodsOptionGiftCardTitle: \"Gift Card\",\n returnsRefundMethodsOptionGiftCardDescription:\n \"Receive a gift card to your email after your return is processed.\",\n returnsRefundMethodsOptionReshopTitle:\n 'Instant Refund with Reshop',\n returnsRefundMethodsOptionReshopDescription:\n 'Get your refund in the Reshop app right after submitting your return. Learn more about Reshop',\n returnsRefundMethodsOptionIncentiveChip: \"GET {{amount}}\",\n\n returnsSwatchesListSeeMore: \"See More\",\n returnsSwatchesListSeeLess: \"See Less\",\n\n returnsPreferencesStatusDesc: \"Your return preferences have been applied.\",\n returnsPreferencesStatusDesc_error:\n \"We were unable to save your return preferences since your email address couldn't be verified.\",\n returnsPreferencesStatusDesc_pending:\n \"Your return preferences have been saved. Complete your profile to apply them to future returns.\",\n returnsPreferencesStatusLinkText: \"Manage your preferences\",\n returnsPreferencesStatusLinkText_error: \"Create your profile\",\n returnsPreferencesStatusLinkText_pending: \"Complete profile\",\n\n returnsStepsGeneralError:\n \"There was an error loading the next step. Please try again later.\",\n\n returnsActionsNext: \"Next\",\n returnsActionsBack: \"Back\",\n returnsActionsCancel: \"Cancel\",\n returnsActionsSubmit: \"Submit\",\n returnsActionsBackToLogin: \"Return to Order Login\",\n} as const;\n","import { useCallback } from \"react\";\nimport { useGrowthBook } from \"@growthbook/growthbook-react\";\nimport { isArray, isNil, last, merge } from \"lodash/fp\";\nimport noflake from \"../../shared/modules/noflake\";\nimport { memoObjectByKeyValues } from \"../../shared/modules/object\";\nimport { config } from \"../config\";\n\nexport const PAGE_VIEW_EVENT = \"event.page_view\";\nexport const EXPERIMENT_VIEW_EVENT = \"event.experiment_view\";\nexport const LOGIN_SUCCESS_EVENT = \"event.login_success\";\nexport const SUBMIT_RETURN_SUCCESS_EVENT = \"event.submit_return_success\";\nexport const SAVE_PREFERENCES_CHECKED_EVENT = \"event.save_preferences_checked\";\nexport const MANAGE_PROFILE_CLICKED_EVENT =\n \"action.click.user_preferences_manage_link.choose_method_step\";\nexport const MANAGE_PROFILE_CONFIRMATION_CLICKED_EVENT =\n \"action.click.user_preferences_manage_link.confirmation_step\";\nexport const COMPLETE_PROFILE_CLICKED_EVENT =\n \"action.click.user_preferences_complete_profile_link.confirmation_step\";\n\nexport const countingEvent = (eventType, measureValue = 1) => ({\n eventType,\n measureValue,\n});\n\nconst asyncNoop = async () => {};\n\nexport const convertFromDatadogMetrics = (metrics = [], overrides) =>\n metrics\n .filter((metric) => metric.value > 0)\n .map((metric) => {\n let eventType = last(metric.metricNameSuffix.split(\".\"));\n if (metric.currencyCode) {\n eventType += \"_\" + metric.currencyCode.toLowerCase();\n }\n\n return {\n eventType,\n measureValue: metric.value,\n ...overrides,\n };\n });\n\nconst batchSubmit = (events = []) => {\n if (!isArray(events)) {\n return batchSubmit([events]);\n }\n\n const result = events.map((event) => noflake.log(\"shopify_ab_test\", event));\n return Promise.all(result);\n};\n\nexport const abTestingTrackResult = (\n growthBook,\n events = [],\n testId = null,\n) => {\n if (!growthBook) {\n return Promise.resolve([]);\n }\n // TODO: remove me. for now we won't capture all page view and login events.\n if (!config.isNthUi) {\n return Promise.resolve([]);\n }\n\n const userAttributes = growthBook.getAttributes();\n let variantKey = null;\n if (testId) {\n variantKey = growthBook.getFeatureValue(testId, null);\n if (typeof variantKey !== \"string\" && !isNil(variantKey)) {\n variantKey = JSON.stringify(variantKey);\n }\n }\n\n const patchDefaultValue = merge({\n ...userAttributes,\n testId,\n variantKey,\n eventType: null,\n measureValue: 0,\n });\n\n events = isArray(events) ? events : [events];\n return batchSubmit(events.map(patchDefaultValue));\n};\n\nexport const useAbTesting = () => {\n const growthBook = useGrowthBook();\n\n const trackResult = useCallback(\n (events = [], testId = null) =>\n abTestingTrackResult(growthBook, events, testId),\n [growthBook],\n );\n\n return memoObjectByKeyValues({\n trackResult: growthBook ? trackResult : asyncNoop,\n });\n};\n","import {\n useEffect,\n useLayoutEffect,\n useState,\n useMemo,\n useCallback,\n} from \"react\";\nimport { useSnackbar } from \"notistack\";\nimport { debounce, get, noop } from \"lodash/fp\";\nimport { useElementId } from \"./localId\";\nimport { memoObjectByKeyValues } from \"./object\";\n\nexport function useEffectOnce(fn) {\n return useEffect(fn, []);\n}\n\nexport function useElementSize(element) {\n const [size, setSize] = useState(() => {\n if (element) {\n return {\n width: element.offsetWidth,\n height: element.offsetHeight,\n };\n }\n\n return {\n width: \"auto\",\n height: \"auto\",\n };\n });\n\n useLayoutEffect(() => {\n function updateSize() {\n if (element) {\n setSize({\n width: element.offsetWidth,\n height: element.offsetHeight,\n });\n }\n }\n\n updateSize();\n window.addEventListener(\"resize\", updateSize);\n return () => window.removeEventListener(\"resize\", updateSize);\n }, [element]);\n\n return size;\n}\n\nexport const useModal = (initialValue = false) => {\n const id = useElementId(\"modal-\");\n const [open, setOpen] = useState(initialValue);\n const toggle = () => setOpen((state) => !state);\n const register = useCallback(\n ({ handleCancel, handleConfirm }) => ({\n open,\n onCancel: async () => {\n await handleCancel?.();\n setOpen(false);\n },\n onConfirm: async () => {\n await handleConfirm?.();\n setOpen(false);\n },\n }),\n [id, open],\n );\n return { id, open, setOpen, toggle, register };\n};\n\nexport function useRequestStatus(requestState, customErrorsPath, showRawData) {\n const data = showRawData ? requestState.data : !!requestState.data;\n const customErrors = useMemo(\n () =>\n customErrorsPath ? (get(customErrorsPath, requestState.data) ?? []) : [],\n [customErrorsPath, requestState.data],\n );\n return useMemo(\n () => ({\n data,\n called: requestState.called,\n loading: requestState.loading,\n error: requestState.error ?? customErrors?.[0],\n errors: [].concat(requestState.error ?? []).concat(customErrors),\n }),\n [\n data,\n requestState.called,\n requestState.error,\n requestState.loading,\n customErrors,\n ],\n );\n}\n\nexport function useSnackbarEffect(status, snackbars) {\n const { called, data, error, loading } = status || {};\n const { enqueueSnackbar } = useSnackbar();\n const { error: errorMsg, success: successMsg } = snackbars;\n\n useEffect(() => {\n if (loading || !called) return;\n\n if (error && errorMsg) {\n enqueueSnackbar(errorMsg, {\n autoHideDuration: 5000,\n variant: \"error\",\n });\n }\n\n if (!error && successMsg) {\n enqueueSnackbar(successMsg, {\n variant: \"success\",\n });\n }\n }, [enqueueSnackbar, called, error, loading, data, errorMsg, successMsg]);\n}\n\nexport function useDebounce(value, delay) {\n const [debouncedValue, setDebouncedValue] = useState(value);\n\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n\n return () => {\n clearTimeout(handler);\n };\n }, [delay, value]);\n\n return debouncedValue;\n}\n\n/**\n * @callback featureFlaggedHookWrapper\n * @param {Function} hook a function, a react hook\n * @returns {Function} the wrapped hook\n */\n/**\n * Avoid calling the hook when the feature is disabled in the shop, it always\n * return the default value if `isEnabled` is false. It is good enhance network\n * performance and avoid graphql error during new feature rollout.\n *\n * @param {boolean} isEnabled\n * @param {*} defaultValue\n * @returns {featureFlaggedHookWrapper}\n */\nexport const featureFlaggedHook =\n (isEnabled, defaultValue = {}) =>\n (hook) =>\n (...args) => {\n if (!isEnabled) {\n return useMemo(() => defaultValue, []);\n }\n return hook(...args);\n };\n\nexport const useDebounceCallback = (func = noop, wait = 500, deps = null) =>\n useCallback(debounce(wait, func), deps || [func]);\n\n/**\n * @function APIFunction\n * @returns {Promise}\n */\n/**\n * @typedef {Object} APIStatus\n * @property {boolean} loading\n * @property {boolean} called\n * @property {Result} [data]\n * @property {Error} [error]\n * @property {Function} reset\n */\n/**\n * Wrapped an async API function to an apollo like function, thus it is similar\n * to `useLazyQuery` and `useMutation`, we got an API function and the status of\n * the API call (e.g. loading, called, data, error, etc.)\n * @param {APIFunction} [apiFunc]\n * @returns {[Function, APIStatus]}\n */\nexport const useApolloCompatibleAPI = (apiFunc = noop) => {\n const [data, setData] = useState();\n const [error, setError] = useState();\n const [loading, setLoading] = useState(false);\n const [called, setCalled] = useState(false);\n const reset = useCallback(() => {\n setData();\n setError();\n setLoading(false);\n setCalled(false);\n }, []);\n\n const status = memoObjectByKeyValues({\n data,\n error,\n loading,\n called,\n reset,\n });\n\n const wrappedFunc = useCallback(\n async (...args) => {\n setLoading(true);\n try {\n const result = await apiFunc(...args);\n setCalled(true);\n setData(result);\n } catch (err) {\n console.error(err);\n setError(err);\n } finally {\n setLoading(false);\n }\n },\n [apiFunc],\n );\n\n return useMemo(() => [wrappedFunc, status], [wrappedFunc, status]);\n};\n","import sessionTracking from \"./sessionTracking\";\n\nexport class Titan {\n constructor({\n endpoint,\n retailerMoniker,\n product = \"returns\",\n ...defaults\n } = {}) {\n this.endpoint = endpoint; // api endpoint, set to empty string for disabling the logging\n this.retailerMoniker = retailerMoniker;\n this.product = product;\n this.defaults = {\n anonymousId: sessionTracking.anonymousId,\n userId: null,\n channel: \"web\",\n context: {},\n ...defaults,\n };\n }\n\n log(type, { props = {}, extra = [], ...payload }) {\n if (this.endpoint === undefined) {\n console.error(new Error(\"Titan endpoint is undefined\"));\n }\n if (!this.retailerMoniker) {\n console.error(new Error(\"Retailer Moniker is undefined\"));\n }\n if (!this.endpoint) return Promise.resolve(false);\n\n const now = new Date().toISOString();\n let data = {\n ...this.defaults,\n retailer_moniker: this.retailerMoniker,\n type,\n event,\n sentAt: now,\n originalTimestamp: now,\n ...payload,\n properties: {\n narvar_product_context: this.product,\n ...props,\n extra_properties: extra,\n },\n };\n\n return fetch(`${this.endpoint}/v1/${type}`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Basic ${btoa(this.retailerMoniker + \":\")}`,\n },\n body: JSON.stringify(data),\n })\n .then((res) => res.text())\n .then((res) => res === \"OK\")\n .catch((err) => {\n console.warn(err);\n return false;\n });\n }\n\n identify(userId, rest) {\n this.defaults.userId = userId;\n return this.log(\"identify\", { userId, ...rest });\n }\n page(name, rest) {\n return this.log(\"page\", { name, ...rest });\n }\n track(event, rest) {\n return this.log(\"track\", { event, ...rest });\n }\n}\n\nconst titan = new Titan();\nexport default titan;\n\nwindow.titan = titan;\n","import { negate, omit, range, set, flatten } from \"lodash/fp\";\nimport {\n useOrderFetchData,\n useReturnStepsState,\n} from \"../contexts/returnSteps\";\nimport { useCallback } from \"react\";\nimport { RETURN_CREDIT_METHOD_REPLACEMENT } from \"../../retailer-app/constants/returns\";\n\nconst transformReturnItemToExchangeItem = (order, returnItemInput) => {\n const item = order?.itemsById?.[returnItemInput.lineItemId] ?? {};\n return {\n returnItem: returnItemInput,\n newProductId: item.productId,\n newProductVariantId: item.variantId,\n newProductVariantInfo: item.variantInfo.map(omit(\"__typename\")),\n newProductSku: item.sku,\n newProductName: item.productTitle,\n newProductImage: item.productImageUrl,\n newProductPriceAmount: item.priceAmount,\n newProductPriceCurrency: order.presentmentCurrency,\n };\n};\n\nconst useClaims = () => {\n const state = useReturnStepsState();\n const fetchData = useOrderFetchData();\n const order = fetchData.state.data?.order;\n const returnReasonsById = fetchData.state.data?.returnReasonsById;\n\n const selectedClaimReason = state.items.find((item) => item.isClaim);\n const hasClaimItems = !!selectedClaimReason;\n const claimReasonCode = selectedClaimReason?.returnReason;\n const claimType = returnReasonsById?.[claimReasonCode]?.claimType;\n const isClaimReplacement =\n state?.selectedReturnCreditMethod?.id === RETURN_CREDIT_METHOD_REPLACEMENT;\n\n const transformClaimItemsToExchangeItems = useCallback(\n ({ returnItems, exchangeItems, ...rest }) => {\n const isClaim = (item) =>\n !!returnReasonsById?.[item.returnReasonId]?.claimType;\n const isNotClaim = negate(isClaim);\n return {\n ...rest,\n returnItems: returnItems.filter(isNotClaim),\n exchangeItems: [\n ...exchangeItems,\n ...flatten(\n returnItems\n .filter(isClaim)\n .map((item) => transformReturnItemToExchangeItem(order, item))\n .map((item) =>\n // Due to backend limitation, we convert a exchange with quantity > 1\n // into multiple exchanges which quantity is 1\n range(0, item.returnItem.quantity).map(() =>\n set(\"returnItem.quantity\", 1, item),\n ),\n ),\n ),\n ],\n };\n },\n [returnReasonsById],\n );\n const decorateClaimsSubmitPayload = useCallback(\n (payload) =>\n isClaimReplacement\n ? transformClaimItemsToExchangeItems(payload)\n : payload,\n [isClaimReplacement, transformClaimItemsToExchangeItems],\n );\n\n const transformClaimSelectedItemsForNth = useCallback(\n (selectedItems) => {\n return selectedItems.map((item) => {\n return {\n ...item,\n type: isClaimReplacement ? \"exchange\" : item.type,\n exchangeTo: isClaimReplacement\n ? {\n variantInfo: item.variantInfo,\n productId: item.productId,\n variantId: item.variantId,\n name: item.name,\n price: item.price,\n sku: item.sku,\n imageUrl: item.imageUrl,\n available: true,\n availabilityStatus: undefined,\n exchangeForCredit: false,\n }\n : item.exchangeTo,\n };\n });\n },\n [isClaimReplacement],\n );\n\n return {\n hasClaimItems,\n isClaimReplacement,\n claimReasonCode,\n claimType,\n transformClaimItemsToExchangeItems,\n transformClaimSelectedItemsForNth,\n decorateClaimsSubmitPayload,\n };\n};\n\nexport default useClaims;\n","import React from \"react\";\nimport Typography from \"@material-ui/core/Typography\";\nimport KeyboardArrowDown from \"@material-ui/icons/KeyboardArrowDown\";\nimport KeyboardArrowUp from \"@material-ui/icons/KeyboardArrowUp\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\n\nconst useStyles = makeStyles(\n () => ({\n root: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n },\n arrows: {\n display: \"flex\",\n },\n arrow: {\n color: \"#cfd0d3\",\n cursor: \"pointer\",\n },\n arrowDisabled: {\n pointerEvents: \"none\",\n },\n }),\n { name: \"N0PositionControl\" },\n);\n\nfunction PositionControl({\n disableDown,\n disableUp,\n id,\n onMoveDown,\n onMoveUp,\n value,\n}) {\n const classes = useStyles();\n\n function handleMoveUp() {\n if (disableUp) return;\n onMoveUp(id);\n }\n\n function handleMoveDown() {\n if (disableDown) return;\n onMoveDown(id);\n }\n\n return (\n
\n {value && {value}}\n
e.stopPropagation()}>\n \n \n
\n
\n );\n}\nPositionControl.propTypes = {\n disableDown: PropTypes.bool,\n disableUp: PropTypes.bool,\n id: PropTypes.any,\n onMoveDown: PropTypes.func,\n onMoveUp: PropTypes.func,\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n};\nexport default PositionControl;\n","import React from \"react\";\n\nfunction StoreCredit(props) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default StoreCredit;\n","import React, { createContext, useCallback, useContext, useRef } from \"react\";\nimport { getBranding } from \"../../shared/modules/config\";\nimport { scrollToPosition } from \"../../shared/modules/frame\";\nimport { useDebounceCallback } from \"../../shared/modules/hooks\";\n\nexport const FrameDimensionsContext = createContext({\n setActiveSection: (htmlElement) => {},\n scrollToActiveNow: () => {},\n scrollToActive: () => {},\n});\n\nfunction useTypeFormHook() {\n const activeSectionRef = useRef(null);\n\n const setActiveSection = useCallback((htmlElement) => {\n activeSectionRef.current = htmlElement;\n }, []);\n\n const scrollToActiveNow = useCallback(function scrollToActive() {\n // TODO: deprecate soon. Always returning 0.\n // const { top: viewportTop } = getWindowFramePosition();\n const { top } = activeSectionRef.current.getBoundingClientRect();\n const scrollTop = window.pageYOffset || document.documentElement.scrollTop;\n const marginTop = getBranding(\"fixed_app_bar\")\n ? 0\n : getBranding(\"step_delimiter_position\");\n scrollToPosition(top + scrollTop + marginTop);\n }, []);\n\n // Scroll to active section in the next frame (60Hz). If we call this function\n // on a callback (eg. onChange), we usually also set some state in react,\n // which trigger some UI change. So we give some time gap and wait for the\n // re-rendering before we perform the scroll action.\n const scrollToActive = useDebounceCallback(scrollToActiveNow, 16);\n\n return {\n setActiveSection,\n scrollToActiveNow,\n scrollToActive,\n };\n}\n\nexport function useTypeForm() {\n return useContext(FrameDimensionsContext);\n}\n\nexport default function TypeFormProvider({ children }) {\n const state = useTypeFormHook();\n\n return (\n \n {children}\n \n );\n}\n","import { set, merge } from \"lodash/fp\";\nimport React, {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useState,\n useMemo,\n} from \"react\";\nimport ResizeObserver from \"resize-observer-polyfill\";\nimport { getBranding } from \"../../shared/modules/config\";\n\nimport { memoObjectByKeyValues } from \"../../shared/modules/object\";\n\nexport const FrameDimensionsContext = createContext();\n\nconst positiveOnly = (num) => Math.max(num, 0);\n\nfunction useFrameDimensionsHook() {\n const [dimensions, setDimensions] = useState({\n windowHeight: window.parentData?.innerHeight ?? 0,\n offsetTop: window.parentData?.offsetTop ?? 0,\n scrollY: window.parentData?.scrollY ?? 0,\n headerHeight: window.parentData?.headerHeight ?? 0,\n footerHeight: window.parentData?.footerHeight ?? 0,\n frameHeight: window.innerHeight ?? 0,\n });\n\n const initiated = dimensions.windowHeight > 0;\n const isFixed = getBranding(\"fixed_app_bar\");\n\n const viewportHeight = useMemo(() => {\n const bottom = positiveOnly(\n -dimensions.offsetTop + dimensions.windowHeight - dimensions.frameHeight,\n );\n const top = isFixed\n ? dimensions.headerHeight\n : positiveOnly(dimensions.headerHeight - dimensions.scrollY);\n const ret = dimensions.windowHeight - top - bottom;\n return ret;\n }, [dimensions]);\n\n useEffect(() => {\n const eventHandler = (event) => {\n if (event?.data?.type !== \"nvo\" || !event.isTrusted) return;\n\n const { action, data } = event.data;\n const updateMapping = {\n \"receive:innerHeight\": \"windowHeight\",\n \"receive:scrollY\": \"scrollY\",\n \"receive:offsetTop\": \"offsetTop\",\n };\n const updateField = updateMapping[action];\n if (updateField) {\n setDimensions(set(updateField, data || 0));\n } else if (action === \"receive:layoutDimensions\") {\n setDimensions((current) => merge(current, data));\n }\n };\n window.addEventListener(\"message\", eventHandler);\n\n return () => window.removeEventListener(\"message\", eventHandler);\n }, []);\n\n useEffect(() => {\n const observer = new ResizeObserver((entries) => {\n setDimensions(set(\"frameHeight\", entries[0].contentRect.height));\n });\n observer.observe(document.querySelector(\"body\"));\n\n return () => observer.disconnect();\n }, []);\n\n const bottomOfViewport = useCallback(\n (bottom = 0) =>\n initiated\n ? positiveOnly(\n dimensions.frameHeight -\n dimensions.windowHeight +\n dimensions.offsetTop +\n bottom,\n )\n : 0,\n [initiated, dimensions],\n );\n\n const topOfViewport = useCallback(\n (top = 0) =>\n initiated\n ? positiveOnly(\n -dimensions.offsetTop +\n top +\n (isFixed ? dimensions.headerHeight : 0),\n )\n : 0,\n [initiated, dimensions],\n );\n\n return memoObjectByKeyValues({\n initiated,\n dimensions: memoObjectByKeyValues({\n ...dimensions,\n viewportHeight,\n }),\n bottomOfViewport,\n topOfViewport,\n });\n}\n\nexport function useFrameDimensions() {\n return useContext(FrameDimensionsContext);\n}\n\nexport default function FrameDimensionsProvider({ children }) {\n const state = useFrameDimensionsHook();\n\n return (\n \n {children}\n \n );\n}\n","import { mapKeys, snakeCase } from \"lodash/fp\";\n\nexport class Noflake {\n constructor({ endpoint, defaults } = {}) {\n this.endpoint = endpoint; // api endpoint, set to empty string for disabling the logging\n this.defaults = {\n ...defaults,\n };\n }\n\n log(schema, payload) {\n if (this.endpoint === undefined) {\n console.error(new Error(\"Noflake endpoint is undefined\"));\n }\n if (!this.endpoint) return Promise.resolve(false);\n\n const now = new Date().toISOString();\n let data = {\n ...this.defaults,\n tag: schema ? `noflake.${schema}` : this.defaults.tag,\n event_ts: now,\n ingestion_timestamp: now,\n ...payload,\n };\n data = mapKeys(snakeCase)(data);\n\n return fetch(this.endpoint, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(data),\n })\n .then((res) => {\n return res.ok;\n })\n .catch((err) => {\n console.warn(err);\n return false;\n });\n }\n}\n\nconst noflake = new Noflake();\nexport default noflake;\n","import escapeStringRegexp from \"escape-string-regexp\";\n\nexport const IN_STOCK = \"in-stock\";\nexport const UNAVAILABLE_IN_THIS_SET = \"not available in this set\";\nexport const UNAVAILABLE_IN_ANY_SET = \"not available in any set\";\n\nexport type SparsemOption = string | undefined;\nexport type SparsemStatus =\n | typeof IN_STOCK\n | typeof UNAVAILABLE_IN_THIS_SET\n | typeof UNAVAILABLE_IN_ANY_SET;\nexport type SparsemSearchToken = SparsemOption | null | undefined;\nexport type SparsemSearchResult = {\n [option: string]: SparsemStatus;\n};\n\nfunction maxBy(list: T[], getScore: (object: T) => number): T | undefined {\n let maxScore = 0;\n let max: T | undefined = list[0];\n list.forEach((item) => {\n const score = getScore(item);\n if (score > maxScore) {\n maxScore = score;\n max = item;\n }\n });\n return max;\n}\n\n/**\n * Sparsem class cloned from `narvar/shopify-zero-retailer`. It allows you to\n * search availability status of a specify exchange option.\n */\nexport default class Sparsem {\n SEP = \"\\t\";\n BLANK = \"__BLANK__\";\n arr: string[] = [];\n inp: SparsemOption[][] = [];\n opts: SparsemOption[][] = [];\n\n get num(): number {\n return this.opts.length;\n }\n\n setArr(availableItems: SparsemOption[][], optionsConfig: SparsemOption[][]) {\n this.inp = availableItems;\n this.opts = optionsConfig;\n this.arr = availableItems.map((x) =>\n x.map((y) => y ?? this.BLANK).join(this.SEP),\n );\n }\n\n search(options: SparsemSearchToken[] = []): SparsemSearchResult {\n const str = options\n .map((option, i) => {\n if (i >= this.num) return;\n if (option) return escapeStringRegexp(option);\n return \".{1,}\";\n })\n .filter(Boolean)\n .join(this.SEP);\n\n const out = this.arr\n .filter((x) => x.match(new RegExp(`^${str}$`)))\n .map((x) => x.split(this.SEP));\n\n const missingIdx = options.indexOf(null);\n\n if (!this.opts[missingIdx]) return {};\n\n const result: SparsemSearchResult = this.opts[missingIdx].reduce(\n (ret, val) => {\n ret[val ?? \"\"] = out.some((x) => x[missingIdx] === val)\n ? IN_STOCK\n : this.inp.some((x) => x[missingIdx] === val)\n ? UNAVAILABLE_IN_THIS_SET\n : UNAVAILABLE_IN_ANY_SET;\n return ret;\n },\n {} as SparsemSearchResult,\n );\n\n return result;\n }\n\n select(options: SparsemSearchToken[]): SparsemOption[] | undefined {\n const result = maxBy(this.inp, (availableItem) =>\n availableItem.reduce((score, itemOption, index) => {\n const match = options[index] === itemOption;\n return match ? score + 1 : score;\n }, 0),\n );\n return result;\n }\n}\n","import { template, unescape } from \"lodash/fp\";\nimport templateSettings from \"lodash/templateSettings\";\nimport errorNotifier from \"./error-notifier\";\n\nexport const TEMPLATE_VAR_REGEX = /%{([\\s\\S]+?)}/g;\n\ntemplateSettings.escape = TEMPLATE_VAR_REGEX;\ntemplateSettings.evaluate = TEMPLATE_VAR_REGEX;\ntemplateSettings.interpolate = TEMPLATE_VAR_REGEX;\n\nexport const interpolate = (string, variables) => {\n try {\n return unescape(template(string)(variables));\n } catch (err) {\n console.warn(err);\n console.warn(`Template interpolate error: \"${string}\"`, variables);\n err.message = \"Template interpolate error\";\n errorNotifier.warn(err, { template: string, variables });\n return unescape(string);\n }\n};\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport Button from \"@material-ui/core/Button\";\nimport Grid from \"@material-ui/core/Grid\";\nimport SnackbarContent from \"@material-ui/core/SnackbarContent\";\nimport TextField from \"@material-ui/core/TextField\";\nimport Typography from \"@material-ui/core/Typography\";\n\nimport { makeRootStyles } from \"../../theme/styles\";\n\nimport { config } from \"../../config\";\nconst { isGiftZipEnabled, isGiftReceiptEnabled } = config;\n\nconst useStyles = makeRootStyles(\n (theme) => ({\n root: {},\n form: {\n marginBottom: theme.spacing(1),\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n instructions: {\n marginBottom: theme.spacing(1),\n lineHeight: 1.25,\n },\n formFieldContainer: {\n width: \"100%\",\n },\n input: {\n backgroundColor: theme.palette.common.white,\n },\n submitButton: {\n height: theme.spacing(6),\n },\n errorSnackbar: {\n color: theme.palette.error.text,\n backgroundColor: theme.palette.error.main,\n fontSize: \"100%\",\n },\n giftReturnTitle: {\n fontWeight: \"bold\",\n borderTop: \"1px solid #c5c5c5\",\n marginTop: theme.spacing(2),\n paddingTop: theme.spacing(2),\n },\n giftReturnLink: {\n marginTop: theme.spacing(1),\n textAlign: \"center\",\n color: theme.palette.primary.main,\n },\n giftEmailHelperText: {\n color: \"#767676\",\n fontSize: \"0.75rem\",\n },\n }),\n { name: \"N0OrderLookupLogin\" },\n);\n\nfunction OrderLookupLogin({\n orderNumber,\n email,\n giftField,\n error,\n onChangeOrderNumber,\n onChangeEmail,\n onChangeGiftField,\n onSubmitForm,\n disabled,\n isTrack,\n isGift,\n onChangeIsGift,\n}) {\n const classes = useStyles();\n const buttonDisabled = !(orderNumber && email) || disabled;\n\n const switchReturnType = () => {\n onChangeIsGift(!isGift);\n };\n\n const giftReturnTitle = isTrack\n ? isGift\n ? config.translations.track_app_order_lookup_not_gift_link\n : config.translations.track_app_order_lookup_gift_link\n : isGift\n ? config.translations.order_lookup_not_gift_link\n : config.translations.order_lookup_gift_link;\n const giftReturnLink = isTrack\n ? isGift\n ? config.translations.track_app_order_lookup_title\n : config.translations.track_app_order_lookup_gift_title\n : isGift\n ? config.translations.order_lookup_title_start_return\n : config.translations.order_lookup_gift_title_start_return;\n const instructions = isTrack\n ? isGift\n ? config.translations.track_app_order_lookup_gift_start_instructions\n : config.translations.track_app_order_lookup_start_return_instructions\n : isGift\n ? config.translations.order_lookup_gift_start_instructions\n : config.translations.order_lookup_start_return_instructions;\n const input3 = isGiftZipEnabled\n ? config.translations.order_lookup_gift_shipping_zip\n : config.translations.order_lookup_gift_code;\n const orderNumberTranslation = isGift\n ? config.translations.order_lookup_gift_order_number\n : config.translations.order_lookup_order_number;\n const emailTranslation = isGift\n ? config.translations.order_lookup_gift_email\n : config.translations.order_lookup_email;\n const notFoundErrorMessage = isTrack\n ? isGift\n ? config.translations.track_app_order_lookup_not_found_gift\n : config.translations.track_app_order_lookup_not_found\n : isGift\n ? config.translations.order_lookup_not_found_gift\n : config.translations.order_lookup_not_found;\n const giftEmailHelper = isTrack\n ? config.translations.track_app_order_lookup_gift_email_helper\n : config.translations.order_lookup_gift_email_helper;\n const giftCodeHelper = isTrack\n ? config.translations.track_app_order_lookup_gift_code_helper\n : config.translations.order_lookup_gift_code_helper;\n const submitLabel = isTrack\n ? config.translations.track_app_order_lookup_submit\n : config.translations.order_lookup_submit;\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 {isGift && (\n <>\n \n \n \n \n \n \n )}\n \n \n\n {isGift && (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )}\n\n \n \n \n \n {submitLabel}\n \n \n \n \n\n {(isGiftZipEnabled || isGiftReceiptEnabled) && (\n \n \n \n \n \n \n {giftReturnLink}\n \n \n \n \n \n )}\n \n \n {error && (\n \n {console.debug(classes)}\n \n }\n />\n \n )}\n \n \n );\n}\nOrderLookupLogin.propTypes = {\n email: PropTypes.string,\n orderNumber: PropTypes.string,\n giftField: PropTypes.string,\n disabled: PropTypes.bool,\n isGift: PropTypes.bool,\n isTrack: PropTypes.bool,\n error: PropTypes.bool,\n onChangeOrderNumber: PropTypes.func,\n onChangeEmail: PropTypes.func,\n onChangeGiftField: PropTypes.func,\n onSubmitForm: PropTypes.func,\n onChangeIsGift: PropTypes.func,\n};\nexport default React.memo(OrderLookupLogin);\n","import React, { useCallback, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Typography from \"@material-ui/core/Typography\";\nimport Link from \"@material-ui/core/Link\";\nimport Paper from \"@material-ui/core/Paper\";\n\nimport { makeRootStyles } from \"../../theme/styles\";\nimport ConfirmationDialog from \"../../../shared/components/modal/ConfirmationDialog\";\nimport Spinner from \"../../../shared/components/Spinner\";\nimport { config } from \"../../config\";\nimport { interpolate } from \"../../../shared/modules/template\";\n\nexport const useStyles = makeRootStyles(\n (theme) => ({\n root: {\n paddingTop: theme.spacing(2),\n paddingBottom: theme.spacing(2),\n justifyContent: \"center\",\n },\n title: {\n marginBottom: theme.spacing(2),\n wordWrap: \"break-word\",\n },\n container: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexDirection: \"column\",\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n padding: theme.spacing(2),\n width: \"100%\",\n },\n cancel: {\n textTransform: \"capitalize\",\n },\n }),\n { name: \"N0ShopNowExpiration\" },\n);\n\nconst ShopNowExpiration = ({ value, code, onCancel, cancelStatus = {} }) => {\n const classes = useStyles();\n const [open, setOpen] = useState(false);\n const showCancelReturn = () => setOpen(true);\n const cancelCancelReturn = () => setOpen(false);\n\n const confirmCancelReturn = useCallback(\n function confirmCancelReturn() {\n setOpen(false);\n onCancel(code);\n },\n [onCancel],\n );\n\n if (!value) return null;\n\n return (\n \n \n \n <>\n {!cancelStatus.data && !cancelStatus.loading && (\n <>\n \n {interpolate(\n config.translations.shopnow_outstanding_credit_alert,\n { amount: value },\n )}\n \n \n {config.translations.cancel}\n \n \n \n )}\n {cancelStatus.loading && !cancelStatus.error && }\n {cancelStatus.data && (\n \n {config.translations.shopnow_cancel_session_success}\n \n )}\n \n \n \n \n );\n};\nShopNowExpiration.propTypes = {\n value: PropTypes.string,\n code: PropTypes.string,\n onCancel: PropTypes.func,\n cancelStatus: PropTypes.any,\n};\nexport default ShopNowExpiration;\n","import React, {\n useCallback,\n useMemo,\n useState,\n useEffect,\n useRef,\n} from \"react\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Typography from \"@material-ui/core/Typography\";\nimport PropTypes from \"prop-types\";\nimport { useGrowthBook } from \"@growthbook/growthbook-react\";\nimport get from \"lodash/get\";\n\nimport { OrderLookup as NthOrderLookup } from \"@narvar/nth-kit-returns-headless\";\n\nimport Spinner from \"../../../shared/components/Spinner\";\nimport { config } from \"../../config\";\nimport {\n useReturnStepsActions,\n useReturnStepsState,\n CHOOSE_ITEMS_STEP,\n ORDER_LOOKUP_STEP,\n} from \"../../contexts/returnSteps\";\nimport { useEffectOnce } from \"../../../shared/modules/hooks\";\nimport { makeRootStyles } from \"../../theme/styles\";\nimport OrderLookupDetails from \"./OrderLookupDetails\";\nimport OrderLookupLogin from \"./OrderLookupLogin\";\nimport ShopNowExpiration from \"./ShopNowExpiration\";\nimport Spacer from \"../../../shared/components/Spacer\";\nimport { updateGrowthBookAttributes } from \"../../../shared/modules/growthBook\";\nimport {\n countingEvent,\n LOGIN_SUCCESS_EVENT,\n useAbTesting,\n} from \"../../data/abTesting\";\nimport useLoginSession from \"../../hooks/useLoginSession\";\nimport { toggleContainerClass } from \"../../../shared/modules/frame\";\nimport { getBranding } from \"../../../shared/modules/config\";\nimport titan from \"../../../shared/modules/titan\";\n\nexport const useStyles = makeRootStyles(\n (theme) => ({\n root: {\n paddingTop: theme.spacing(4),\n paddingBottom: theme.spacing(8),\n justifyContent: \"center\",\n },\n title: {\n marginBottom: theme.spacing(2),\n wordWrap: \"break-word\",\n },\n supplementaryText1: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n },\n supplementaryText2: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n },\n }),\n { name: \"N0OrderLookup\" },\n);\n\nconst OrderLookup = ({\n onOrderFetch,\n orderFetchData,\n orderFetchError,\n orderFetchLoading,\n\n shopNowData,\n checkShopNow,\n cancelShopNow,\n shopNowCancelData,\n shopNowCancelError,\n shopNowCancelLoading,\n}) => {\n const classes = useStyles();\n const state = useReturnStepsState();\n const actions = useReturnStepsActions();\n const growthbook = useGrowthBook();\n const abTesting = useAbTesting();\n const loginSession = useLoginSession();\n\n const orderFetchDataRef = useRef(orderFetchData);\n\n const [orderNumber, setOrderNumber] = useState(state.orderNumber);\n const [email, setEmail] = useState(state.email);\n const [giftField, setGiftField] = useState(state.giftField);\n const isGift = state.guestReturn;\n const isGiftReturnsEnabled =\n config.isGiftZipEnabled || config.isGiftReceiptEnabled;\n const [shopNowCode, setShopNowCode] = useState();\n const csid = state.csid;\n const useNewDesign = config.isNthLoginUi;\n const newDesignLayout = getBranding(\"background_image_url\")\n ? \"default\"\n : \"centered\";\n const isTrack = state.mode === \"track\";\n\n const newUIValues = useMemo(\n () =>\n [\n { type: \"ORDER\", value: orderNumber },\n { type: \"EMAIL\", value: email },\n isGift ? { type: \"GIFT_CODE\", value: giftField } : null,\n ].filter((d) => d),\n [isGift, orderNumber, email, giftField],\n );\n\n const details = useMemo(\n () => (!orderFetchError && orderFetchData && orderFetchData.order) || null,\n [orderFetchData, orderFetchError],\n );\n\n const returnHistory = useMemo(\n () =>\n (!orderFetchError && orderFetchData && orderFetchData.returnHistory) ||\n null,\n [orderFetchData, orderFetchError],\n );\n\n const ineligible = !!details?.eligible;\n\n // reset local state when the global state changes\n useEffect(() => {\n setOrderNumber(state.orderNumber);\n setEmail(state.email);\n setGiftField(state.giftField);\n }, [state.orderNumber, state.email, state.giftField]);\n\n const handleExit = () => {\n orderFetchDataRef.current = null;\n\n setOrderNumber(\"\");\n setEmail(\"\");\n\n loginSession.logout();\n if (useNewDesign) {\n toggleContainerClass(\"nvo_container--new-login\");\n toggleContainerClass(\"nvo_container--logged-in\");\n }\n };\n\n const handleChangeOrderNumber = (event) => setOrderNumber(event.target.value);\n const handleChangeEmail = (event) => setEmail(event.target.value);\n const handleChangeGiftField = (event) => setGiftField(event.target.value);\n\n const handleChangeIsGift = (val) => {\n actions.setIsGuestReturn(val);\n };\n\n const trackingSetPerson = (orderNumber, isGift) => {\n const shopDomain = config.shopDomain;\n const uid = `${shopDomain}::${orderNumber}`;\n\n updateGrowthBookAttributes(growthbook, {\n userId: uid,\n email,\n loggedIn: true,\n });\n\n titan.identify(uid);\n };\n\n const handleSubmitForm = useCallback(\n function handleSubmitForm(event) {\n event?.preventDefault?.();\n actions.setEmail(email);\n actions.setOrderNumber(orderNumber);\n\n orderFetchDataRef.current = null;\n\n onOrderFetch({\n email,\n orderNumber,\n giftField,\n isGift,\n csid,\n });\n },\n [actions, onOrderFetch, email, orderNumber, isGift, giftField, csid],\n );\n\n const loginNode = useMemo(\n () => (\n <>\n \n \n ),\n [\n email,\n handleSubmitForm,\n orderFetchError,\n orderFetchLoading,\n orderNumber,\n isGift,\n isTrack,\n ],\n );\n\n const { isShopNowEnabled } = config;\n if (isShopNowEnabled) {\n useEffect(() => {\n if (shopNowCancelError || shopNowCancelLoading || !shopNowCancelData) {\n return;\n }\n\n window.localStorage.removeItem(\"nv_shop_now_checkout\");\n }, [\n shopNowCancelData,\n shopNowCancelError,\n shopNowCancelLoading,\n cancelShopNow,\n ]);\n }\n\n const item = isShopNowEnabled\n ? window.localStorage.getItem(\"nv_shop_now_checkout\")\n : null;\n\n const shopNowValue = get(\n shopNowData,\n \"checkShopNowExpiration.formattedAmount\",\n );\n const isShopNowExpired = get(shopNowData, \"checkShopNowExpiration.expired\");\n const handleCancelShopNow = (code) => cancelShopNow(code);\n\n useEffect(() => {\n if (!orderFetchDataRef.current && orderFetchData) {\n orderFetchDataRef.current = orderFetchData;\n\n actions.setGuestEmail(\n get(orderFetchData, \"order.guestLoginEmail\", email),\n );\n actions.goToStep(CHOOSE_ITEMS_STEP);\n\n trackingSetPerson(orderNumber, isGift);\n abTesting.trackResult(countingEvent(LOGIN_SUCCESS_EVENT));\n if (useNewDesign) {\n toggleContainerClass(\"nvo_container--new-login\");\n toggleContainerClass(\"nvo_container--logged-in\");\n }\n }\n }, [actions, ineligible, orderFetchData, orderFetchError]);\n\n useEffectOnce(() => {\n if (isGift && orderNumber && email && giftField) {\n onOrderFetch({ orderNumber, email, isGift, giftField, csid });\n } else if (orderNumber && email) {\n onOrderFetch({ orderNumber, email, isGift, csid });\n }\n\n // TODO: error handling\n if (item) {\n const searchString = new URL(item).search;\n const params = new URLSearchParams(searchString);\n const code = params.get(\"nrvr_code\");\n setShopNowCode(code);\n checkShopNow(code);\n }\n });\n\n const translation1 = isTrack\n ? config.translations.track_app_order_lookup_supplementary_text1\n : config.translations.order_lookup_supplementary_text1;\n const translation2 = isTrack\n ? config.translations.track_app_order_lookup_supplementary_text2\n : config.translations.order_lookup_supplementary_text2;\n const title = isTrack\n ? isGift\n ? config.translations.track_app_order_lookup_gift_title\n : config.translations.track_app_order_lookup_title\n : isGift\n ? config.translations.order_lookup_gift_title_start_return\n : config.translations.order_lookup_title_start_return;\n\n const shopNowSessionReminder = !isShopNowExpired && (\n \n );\n\n // after login, if new UI was enabled, we'll also skip the order details header\n if (state.stepStatus[ORDER_LOOKUP_STEP]?.skipped && details) {\n if (shopNowCode && shopNowSessionReminder) {\n return (\n \n \n {shopNowSessionReminder}\n \n \n );\n } else {\n return null;\n }\n }\n\n if (useNewDesign && !details) {\n return (\n \n \n {\n const values = e.value ?? [];\n const stateSetter = (type, setter) =>\n setter(values.find((v) => v.type === type)?.value);\n stateSetter(\"ORDER\", setOrderNumber);\n stateSetter(\"EMAIL\", setEmail);\n stateSetter(\"GIFT_CODE\", setGiftField);\n }}\n onClose={(e) => {\n const toggleGiftReturn = e.subComponent === \"return\";\n actions.setIsGuestReturn(toggleGiftReturn);\n }}\n onSubmit={(e) => {\n handleSubmitForm();\n }}\n />\n \n \n );\n }\n\n return (\n \n \n {shopNowSessionReminder}\n {details ? (\n \n ) : (\n <>\n {translation1 && translation1 !== \"\" && (\n \n \n \n \n \n )}\n \n {title}\n \n\n {loginNode}\n\n {translation2 && translation2 !== \"\" && (\n \n \n \n \n \n )}\n {orderFetchLoading && (\n <>\n \n \n \n )}\n \n )}\n \n \n );\n};\nOrderLookup.propTypes = {\n onOrderFetch: PropTypes.func,\n orderFetchData: PropTypes.object,\n orderFetchError: PropTypes.any,\n orderFetchLoading: PropTypes.any,\n\n shopNowData: PropTypes.any,\n checkShopNow: PropTypes.func,\n cancelShopNow: PropTypes.func,\n shopNowCancelData: PropTypes.any, // apollo data\n shopNowCancelError: PropTypes.any, // apollo error\n shopNowCancelLoading: PropTypes.bool, // apollo loading flag\n};\nexport default React.memo(OrderLookup);\n","import { makeRootStyles } from \"../../../theme/styles\";\n\nconst useStyles = makeRootStyles(\n {\n selectItem: {\n boxSizing: \"border-box\",\n border: \"0 none\",\n padding: \"16px\",\n cursor: \"pointer\",\n borderRadius: \"4px\",\n backgroundColor: \"inherit\",\n fontFamily: \"inherit\",\n fontWeight: \"inherit\",\n color: \"inherit\",\n textAlign: \"left\",\n },\n hoverBorder: {\n \"&:hover\": {\n borderWidth: \"1px\",\n borderStyle: \"solid\",\n },\n },\n noBorder: {\n borderTopColor: \"none\",\n borderLeftColor: \"none\",\n borderRightColor: \"none\",\n borderBottomColor: \"none\",\n borderTopWidth: \"0\",\n borderLeftWidth: \"0\",\n borderRightWidth: \"0\",\n borderBottomWidth: \"0\",\n borderStyle: \"none\",\n },\n },\n { name: \"N0SelectItem\" },\n);\n\nexport { useStyles };\n","import React, { CSSProperties, HTMLProps, useState } from \"react\";\nimport clsx from \"clsx\";\nimport { useTheme, withThemeProvider } from \"@narvar/nth-hook-theme\";\nimport { useStyles } from \"./SelectItemStyles\";\n\nexport type StyledSelectItemProps = {\n selected?: boolean;\n readOnly?: boolean;\n borderless?: boolean;\n transparent?: boolean;\n customStyle?: CSSProperties;\n};\n\nexport type SelectItemProps = StyledSelectItemProps &\n Omit, \"type\" | \"ref\"> & {\n type?: \"button\" | \"submit\" | \"reset\";\n as?: \"button\" | \"a\" | \"div\" | \"span\";\n };\n\nconst SelectItem = ({\n onClick,\n selected,\n readOnly,\n disabled,\n borderless,\n transparent,\n customStyle,\n children,\n}: SelectItemProps) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const styles: any = useStyles();\n const {\n documentbodyNoneNone,\n bodytextDefaultNone,\n panelcontainerNoneNone,\n selecteditemNoneNone,\n buttonsSecondaryDisabled,\n } = useTheme();\n\n const [hover, setHover] = useState(false);\n\n const classes = clsx({\n [styles.selectItem]: true,\n [styles.hoverBorder]: !selected && !readOnly && !disabled && !borderless,\n [styles.noBorder]: borderless,\n });\n\n const defaultBackgroundColor =\n documentbodyNoneNone?.backgroundColor ??\n panelcontainerNoneNone?.backgroundColor;\n\n const borderStyle = {\n borderTopColor: selecteditemNoneNone?.borderTopColor ?? \"#000\",\n borderLeftColor: selecteditemNoneNone?.borderLeftColor ?? \"#000\",\n borderRightColor: selecteditemNoneNone?.borderRightColor ?? \"#000\",\n borderBottomColor: selecteditemNoneNone?.borderBottomColor ?? \"#000\",\n };\n\n return (\n setHover(!hover)}\n onMouseLeave={() => setHover(!hover)}>\n {children}\n \n );\n};\n\nexport default withThemeProvider(SelectItem, {\n themeTokens: [\n \"documentbodyNoneNone\",\n \"bodytextDefaultNone\",\n \"panelcontainerNoneNone\",\n \"selecteditemNoneNone\",\n \"buttonsSecondaryDisabled\",\n ],\n});\n","import { omitNullValues } from \"./object\";\n\nexport const buildToolbarHeightForProp = (\n muiTheme,\n cssProp = \"minHeight\",\n negative,\n) => ({\n [cssProp]: negative ? -64 : 64,\n [`${muiTheme.breakpoints.up(\"xs\")} and (orientation: landscape)`]: {\n [cssProp]: negative ? -48 : 48,\n },\n [muiTheme.breakpoints.up(\"sm\")]: {\n [cssProp]: negative ? -80 : 80,\n },\n});\n\n/**\n * Helper for adjust grid responsive config, it is useful when you are building\n * a shared component and expect there will be nested girds in parent.\n * @param {object} config grid sizing config eg. {xs: 12, sm: 10, md: 8, lg: 6, xl: 4}\n * @param {string|number} size small / medium / large / -2, -1, 0, 1, ...\n * @returns {object}\n */\nexport const controlGridSize = (config, size) => {\n const mapping = { medium: 0, small: -1, large: 1 };\n let dir = mapping[size] !== undefined ? mapping[size] : size;\n if (dir === 0 || isNaN(dir)) return config;\n\n let cfg = [config.xs, config.sm, config.md, config.lg, config.xl];\n const modify = dir > 0 ? \"shift\" : \"unshift\";\n dir = Math.abs(dir);\n for (let i = 0; i < dir; i++) {\n cfg[modify](undefined);\n }\n\n return omitNullValues({\n xs: cfg[0],\n sm: cfg[1],\n md: cfg[2],\n lg: cfg[3],\n xl: cfg[4],\n });\n};\n","import { isString } from \"lodash\";\n\n/**\n * @param {string[]|number[]} array\n * @param {string} [connectiveText=and]\n * @returns {string}\n * @example\n * joinHumanize(['1', '2', '3'], 'and') // returns '1, 2 and 3'\n */\nexport const joinHumanize = (array, connectiveText = \"and\") => {\n let ret = [].concat(array); // clone array\n const last = ret.pop();\n ret = ret.join(\", \");\n ret = [].concat(ret || []).concat(last || []);\n ret = ret.join(` ${connectiveText} `);\n return ret;\n};\n\n/**\n * @param {string[]|number[]} array\n * @returns {string}\n * @example\n * joinAnd(['1', '2', '3']) // returns '1, 2 and 3'\n */\nexport const joinAnd = (array) => joinHumanize(array, \"and\");\n\n/**\n * @param {string[]|number[]} array\n * @returns {string}\n * @example\n * joinOr(['1', '2', '3']) // returns '1, 2 or 3'\n */\nexport const joinOr = (array) => joinHumanize(array, \"or\");\n\nconst SIZE_MULTIPLIER_MAP = {\n K: 1 << 10,\n KB: 1 << 10,\n M: 1 << 20,\n MB: 1 << 20,\n G: 1 << 30,\n GB: 1 << 30,\n T: 1 << 40,\n TB: 1 << 40,\n};\n\n/**\n * Parse size string to the number of bytes\n * @param {string} size size in text format, eg. 10KB\n * @returns {number}\n * @example\n * parseSize('1.5kb') // returns 1536\n */\nexport const parseSize = (size) => {\n const matches = size.match(/([0-9.]+)\\s*([a-z]*)/i) || [];\n const num = parseFloat(matches[1] || 0);\n const unit = (matches[2] || \"\").toUpperCase();\n const multiplier = SIZE_MULTIPLIER_MAP[unit] || 1;\n return num === 0 ? 0 : num * multiplier;\n};\n\n/**\n * Format the size in number of bytes to a readable string\n * @param {number} size file size\n * @param {number} [decimals=1] rounding to decimal points\n * @returns {string}\n * @example\n * formatSize(3000, 2) // returns '2.93 KB'\n */\nexport const formatSize = (size, decimals = 1) => {\n if (size === 0) return \"0 Bytes\";\n\n const k = 1024;\n const dm = decimals < 0 ? 0 : decimals;\n const sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"];\n\n const i = Math.floor(Math.log(size) / Math.log(k));\n return parseFloat((size / Math.pow(k, i)).toFixed(dm)) + \" \" + sizes[i];\n};\n\n/**\n * Try to parse JSON string, it fallback to default value if there is any errors\n * @param {string} jsonString a JSON string to parse\n * @param {*} [defaultValue=undefined] default value if parse failed\n * @returns {*}\n */\nexport const parseJSON = (jsonString, defaultValue = undefined) => {\n try {\n return JSON.parse(jsonString);\n } catch (err) {\n return defaultValue;\n }\n};\n\nexport const isValidHttpUrl = (string) => {\n let url;\n try {\n url = new URL(string);\n } catch (_) {\n return false;\n }\n return url.protocol === \"http:\" || url.protocol === \"https:\";\n};\n\nexport const isPresentString = (obj) => {\n return isString(obj) && obj.trim() !== \"\";\n};\n","import { useReturnsConfig } from \"@narvar/nth-kit-returns-headless\";\n\nconst useCurrencyConfig = () => {\n const { localeCountry, localeLanguage, includeCurrency } = useReturnsConfig();\n\n return {\n locale: `${localeLanguage}_${localeCountry}`,\n includeCurrency: !!includeCurrency,\n };\n};\n\nexport default useCurrencyConfig;\n","import { config } from \"../config\";\nimport { camelCase, compose, fromPairs, map, set } from \"lodash/fp\";\nimport * as sharedConfig from \"../../shared/modules/config\";\nimport { mergeIgnoreNil } from \"../../shared/modules/object\";\n\n/**\n * @typedef {Object} Address\n * @property {string} firstName\n * @property {string} lastName\n * @property {string} address1\n * @property {string} address2\n * @property {string} city\n * @property {string} zip\n * @property {string} province\n * @property {string} provinceCode\n * @property {string} country\n * @property {string} countryCode\n * @property {string} countryCodeV2\n */\nexport const ADDRESS_DEFAULT = {\n firstName: \"\",\n lastName: \"\",\n address1: \"\",\n address2: \"\",\n city: \"\",\n zip: \"\",\n province: \"\",\n provinceCode: \"\",\n country: \"\",\n countryCode: \"\",\n countryCodeV2: \"\",\n};\n\nexport const getCountryNameByCode = (countryCode) => {\n return (\n config.countryNamesByCode[countryCode] ||\n sharedConfig.countryCodes.find(\n (country) => country.country_code === countryCode,\n )?.country ||\n \"\"\n );\n};\n\n/**\n * Merge address object, the later arguments will overwrite the existing attributes\n * @param {Address} address\n * @param {...Address} updates\n * @returns {Address}\n */\nexport const mergeAddress = (address, ...updates) => {\n const addr = mergeIgnoreNil(ADDRESS_DEFAULT, address, ...updates);\n const countryCode = addr?.countryCode || addr?.countryCodeV2 || \"\";\n addr.countryCode = addr.countryCodeV2 = countryCode;\n addr.country = getCountryNameByCode(countryCode);\n return addr;\n};\n\n/**\n * Patch zip code for address object. For example Hong Kong address may not have\n * a zip code.\n * @param {Address} address\n * @returns {Address}\n */\nexport const patchZipCode = (address) => {\n let zip = address?.zip;\n if (address?.countryCode === \"HK\" || address?.countryCodeV2 === \"HK\") {\n // Hong Kong Post suggested to fill \"000\", \"0000\", \"000000\" or \"HKG\"\n // https://www.hongkongpost.hk/en/about_us/tips/postcode/index.html\n zip = \"000000\";\n }\n\n if (zip !== address?.zip) {\n return { ...address, zip };\n }\n return address;\n};\n\n/**\n * Pick and rename address object to a standard address object\n * @param {any} address\n * @param {String} [attrPrefix]\n * @param {String} [attrSuffix]\n * @returns {Address}\n * @example\n * const addr1 = normalizeAddressKeys({billingZip: '', billingCountry: 'HK'}, 'billing');\n * // addr1 = {zip: '', country: 'HK', firstName: '', ... }\n *\n * const addr2 = normalizeAddressKeys({zip2: '', country2: 'HK'}, '', '2');\n * // addr2 = {zip: '', country: 'HK', firstName: '', ... }\n */\nexport const normalizeAddressKeys = (\n address,\n attrPrefix = \"\",\n attrSuffix = \"\",\n) =>\n compose(\n fromPairs,\n map((key) => {\n const oldKey = camelCase([attrPrefix, key, attrSuffix].join(\"_\"));\n const value = address?.[oldKey] ?? null;\n return [key, value];\n }),\n )(Object.keys(ADDRESS_DEFAULT));\n","import { useMemo, useCallback } from \"react\";\nimport { useMutation, gql } from \"@apollo/client\";\nimport { memoObjectByKeyValues } from \"../../shared/modules/object\";\n\nconst CANCEL_RETURN = gql`\n mutation cancelReturn(\n $orderNumber: String!\n $email: String!\n $returnId: String\n ) {\n cancelReturn(orderNumber: $orderNumber, email: $email, returnId: $returnId)\n }\n`;\n\nexport function useCancelReturn() {\n const [mutate, { loading, error, data }] = useMutation(CANCEL_RETURN);\n const cancelReturn = useCallback(\n (variables) => mutate({ variables }),\n [mutate],\n );\n\n const cancelStatus = useMemo(\n () => ({\n loading,\n error,\n data: data?.cancelReturn ?? null,\n }),\n [loading, error, data],\n );\n\n return useMemo(\n () => ({\n cancelReturn,\n cancelStatus,\n }),\n [cancelReturn, cancelStatus],\n );\n}\n","import { SVGProps } from \"react\";\nimport Truck from \"./truck\";\nimport Locate from \"./locate\";\nimport Store from \"./store\";\nimport Phone from \"./phone\";\nimport Package from \"./PackageIcon\";\nimport { IconMap } from \"./types\";\nimport Clock from \"./clock\";\nimport CheckMark from \"./CheckMark\";\nimport PlaceholderThumbnail from \"./PlaceholderThumbnail\";\nimport ArrowRight from \"./ArrowRight\";\nimport Exchange from \"./Exchange\";\nimport PlaceholderPictures from \"./PlaceholderPictures\";\nimport OriginalPayment from \"./OriginalPayment\";\nimport GiftCard from \"./GiftCard\";\nimport StoreCredit from \"./StoreCredit\";\nimport ShippingLabel from \"./ShippingLabel\";\nimport Printerless from \"./Printerless\";\nimport NarvarBadge from \"./NarvarBadge\";\nimport Favorite from \"./Favorite\";\nimport CheckCircle from \"./CheckCircle\";\nimport Error from \"./Error\";\nimport Reshop from \"./Reshop\";\nimport ShippingProtection from \"./ShippingProtection\";\nimport HelpCircle from \"./HelpCircle\";\n\nexport const icons = {\n Truck,\n Locate,\n Store,\n Package,\n Clock,\n Phone,\n CheckMark,\n PlaceholderThumbnail,\n ArrowRight,\n Exchange,\n PlaceholderPictures,\n OriginalPayment,\n GiftCard,\n Reshop,\n StoreCredit,\n ShippingLabel,\n Printerless,\n NarvarBadge,\n Favorite,\n CheckCircle,\n Error,\n ShippingProtection,\n HelpCircle,\n};\n\nconst Icon = ({\n icon,\n ...props\n}: { icon: IconMap } & SVGProps) => icons[icon](props);\n\nexport default Icon;\n\nexport type { IconMap };\n","import React from \"react\";\nimport { IconType } from \"./types\";\n\nconst Truck: IconType = (props) => (\n \n \n \n \n \n \n \n \n \n \n \n);\n\nexport default Truck;\n","import React from \"react\";\nimport { IconType } from \"./types\";\n\nconst Locate: IconType = (props) => (\n \n \n \n \n \n);\n\nexport default Locate;\n","import React from \"react\";\nimport { IconType } from \"./types\";\n\nconst Store: IconType = (props) => (\n \n \n \n \n \n \n \n \n \n \n);\n\nexport default Store;\n","import React from \"react\";\nimport { IconType } from \"./types\";\n\nconst Package: IconType = (props) => (\n \n \n \n \n \n \n \n \n \n);\n\nexport default Package;\n","import React from \"react\";\nimport { IconType } from \"./types\";\n\nconst Clock: IconType = (props) => (\n \n \n \n);\n\nexport default Clock;\n","import React from \"react\";\nimport { IconType } from \"./types\";\n\nconst Phone: IconType = (props) => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nexport default Phone;\n","import React from \"react\";\nimport { IconType } from \"./types\";\n\nconst CheckMark: IconType = (props) => (\n \n \n \n);\n\nexport default CheckMark;\n","import React from \"react\";\nimport { IconType } from \"./types\";\n\nconst PlaceholderThumbnail: IconType = (props) => (\n \n \n \n);\n\nexport default PlaceholderThumbnail;\n","import * as React from \"react\";\nimport { IconType } from \"./types\";\n\nconst ArrowRight: IconType = (props) => (\n \n \n \n);\n\nexport default ArrowRight;\n","import * as React from \"react\";\nimport { IconType } from \"./types\";\n\nconst Exchange: IconType = (props) => (\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 Exchange;\n","import React from \"react\";\nimport { IconType } from \"./types\";\n\nconst PlaceholderPictures: IconType = (props) => (\n \n \n \n);\n\nexport default PlaceholderPictures;\n","import * as React from \"react\";\nimport { IconType } from \"./types\";\n\nconst OriginalPayment: IconType = (props) => (\n \n \n \n \n \n \n \n \n \n);\n\nexport default OriginalPayment;\n","import * as React from \"react\";\nimport { IconType } from \"./types\";\n\nconst GiftCard: IconType = (props) => (\n \n \n \n \n \n \n \n \n \n);\n\nexport default GiftCard;\n","import React from \"react\";\nimport { IconType } from \"./types\";\n\nconst Reshop: IconType = (props) => (\n \n \n \n);\n\nexport default Reshop;\n","import * as React from \"react\";\nimport { IconType } from \"./types\";\n\nconst StoreCredit: IconType = (props) => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nexport default StoreCredit;\n","import React from \"react\";\nimport { IconType } from \"./types\";\n\nconst ShippingLabel: IconType = (props) => (\n \n \n \n \n \n \n \n \n);\nexport default ShippingLabel;\n","import React from \"react\";\nimport { IconType } from \"./types\";\n\nconst Printerless: IconType = (props) => (\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 Printerless;\n","import React from \"react\";\nimport { IconType } from \"./types\";\n\nconst NarvarBadge: IconType = (props) => (\n \n \n \n);\n\nexport default NarvarBadge;\n","import React from \"react\";\nimport { IconType } from \"./types\";\n\nconst Favorite: IconType = (props) => (\n \n \n \n);\n\nexport default Favorite;\n","import React from \"react\";\nimport { IconType } from \"./types\";\n\nconst CheckCircle: IconType = (props) => (\n \n \n \n);\n\nexport default CheckCircle;\n","import React from \"react\";\nimport { IconType } from \"./types\";\n\nconst Error: IconType = (props) => (\n \n \n \n \n \n);\n\nexport default Error;\n","import React from \"react\";\nimport { IconType } from \"./types\";\n\nconst ShippingProtection: IconType = (props) => (\n \n \n \n \n);\n\nexport default ShippingProtection;\n","import React from \"react\";\nimport { IconType } from \"./types\";\n\nconst HelpCircle: IconType = (props) => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nexport default HelpCircle;\n","import { useCallback } from \"react\";\nimport { useMutation, gql } from \"@apollo/client\";\nimport { useRequestStatus } from \"../../shared/modules/hooks\";\nimport { memoObjectByKeyValues } from \"../../shared/modules/object\";\n\nconst CHANGE_REFUND_METHOD = gql`\n mutation changeRefundMethod(\n $id: String!\n $refundMethod: String!\n $note: String\n ) {\n changeRefundMethod(\n returnHashid: $id\n refundMethod: $refundMethod\n note: $note\n ) {\n success\n }\n }\n`;\n\nexport function useChangeRefundMethod() {\n const [mutate, state] = useMutation(CHANGE_REFUND_METHOD);\n const status = useRequestStatus(state);\n const changeRefundMethod = useCallback(\n (variables) => mutate({ variables }),\n [mutate],\n );\n\n return memoObjectByKeyValues({\n changeRefundMethod,\n status,\n });\n}\n","import {\n compose,\n curry,\n filter,\n find,\n first,\n flatten,\n fromPairs,\n get,\n getOr,\n groupBy,\n identity,\n intersection,\n map,\n max,\n merge,\n omit,\n range,\n reduce,\n set,\n sortBy,\n stubTrue,\n sumBy,\n uniq,\n} from \"lodash/fp\";\nimport { useMemo, useState } from \"react\";\n\nimport { getTranslation } from \"../../shared/modules/config\";\nimport { getReshopCancelError } from \"../../shared/modules/decodeError\";\nimport { toggleContainerClass } from \"../../shared/modules/frame\";\nimport locale from \"../../shared/modules/lang\";\nimport {\n memoObjectByKeyValues,\n mergeRequestStatus,\n renameKeys,\n useMergeRequestStatus,\n} from \"../../shared/modules/object\";\nimport { simplifyReturnStatus } from \"../../shared/modules/returnStatuses\";\nimport { interpolate } from \"../../shared/modules/template\";\nimport { config } from \"../config\";\nimport {\n useOrderFetchData,\n useReturnStepsState,\n} from \"../contexts/returnSteps\";\nimport { useCancelReturn } from \"../data/cancelReturn\";\nimport { useChangeRefundMethod } from \"../data/changeRefundMethod\";\nimport useEvenExchangeProduct from \"../data/evenExchangeProduct\";\nimport useCustomer from \"../hooks/useCustomer\";\nimport useLoginSession from \"../hooks/useLoginSession\";\nimport Sparsem, {\n UNAVAILABLE_IN_ANY_SET,\n UNAVAILABLE_IN_THIS_SET,\n} from \"./sparsem\";\nimport useClaims from \"../hooks/useClaims\";\n\nexport const hasExchangeForShopNowCredit = (items) =>\n items.some((item) => item.isStoreCredit);\n\nexport const buildReturnItem = (item, lineItem, returnReasonsById = {}) => {\n const { comment, quantity, pictures } = item;\n const childReturnReasonId = get(\"returnReason\", item.childReturnReason);\n const childReturnReason = childReturnReasonId\n ? returnReasonsById[childReturnReasonId].reasonTitle\n : undefined;\n\n return {\n comment,\n quantity,\n pictures,\n returnReason: returnReasonsById[item.returnReason].reasonTitle,\n returnReasonId: item.returnReason,\n childReturnReason,\n childReturnReasonId,\n lineItemId: lineItem.id,\n };\n};\n\nexport const buildExchangeItem = (item, lineItem, returnReasonsById) => {\n const { exchange } = item;\n const returnItem = buildReturnItem(item, lineItem, returnReasonsById);\n\n return {\n returnItem,\n newProductId: exchange.productId,\n newProductVariantId: exchange.variantId,\n newProductVariantInfo: exchange.variantInfo,\n newProductSku: exchange.sku,\n newProductName: exchange.name,\n newProductImage: exchange.productImageUrl,\n newProductPriceAmount: exchange.priceAmount,\n newProductPriceCurrency: exchange.priceCurrency,\n };\n};\n\nexport const buildItemsByType = (items, lineItemsById, returnReasonsById) => {\n const returnItems = items\n .filter((item) => item.type === \"return\")\n .map((item) =>\n buildReturnItem(item, lineItemsById[item.id], returnReasonsById),\n );\n\n let exchangeItems = items\n .filter((item) => item.type === \"exchange\")\n .map((item) =>\n // Due to backend limitation, we convert a exchange with quantity > 1\n // into multiple exchanges which quantity is 1\n range(0, item.quantity).map(() =>\n buildExchangeItem(\n set(\"quantity\", 1, item),\n lineItemsById[item.id],\n returnReasonsById,\n ),\n ),\n );\n exchangeItems = flatten(exchangeItems);\n\n return { returnItems, exchangeItems };\n};\n\n// build carousel items (swiper items), if there are exchange items selected and\n// that line item still have returnable quantity, create one more carousel item\n// for user to select. (item.id, item.localId) are used to distinguish different\n// carousel items\nexport const buildCarouselItems = (orderItems, selected) =>\n orderItems.reduce((remapped, item) => {\n let matching = selected.filter((i) => i.id === item.id);\n matching = sortBy(\"localId\", matching);\n const returnItem = matching.find((i) => i.type === \"return\");\n let exchangeItems = matching.filter((i) => i.type === \"exchange\");\n\n if (exchangeItems.length) {\n // the sum of quantity user selected for exchange and return\n const returningQuantity =\n sumBy(getOr(0, \"quantity\"), exchangeItems) +\n (returnItem?.quantity ?? 0);\n const returnableQuantity = item.returnableQuantity - returningQuantity;\n exchangeItems = exchangeItems.map((i) => ({\n ...item,\n localId: i.localId,\n returnableQuantity: returnableQuantity + (i.quantity ?? 0),\n }));\n\n let additionalCarouselItems = [];\n if (returnableQuantity || returnItem) {\n const maxExId = max(exchangeItems.map(get(\"localId\")));\n const localId = returnItem?.localId || maxExId + 1;\n additionalCarouselItems.push({\n ...item,\n localId,\n returnableQuantity: returnableQuantity + (returnItem?.quantity ?? 0),\n });\n }\n\n return [...remapped, ...exchangeItems, ...additionalCarouselItems];\n } else {\n // item is not selected or only selected for return, keep the existing\n // localId or default set to 1\n const localId = returnItem?.localId || 1;\n return [...remapped, { ...item, localId }];\n }\n }, []);\n\nexport const buildVariantInfoMap = (variantInfo) =>\n variantInfo.reduce((result, variant) => {\n result[variant.name] = variant.value;\n return result;\n }, {});\n\nexport const getVariantOption = (name, options) =>\n options.find((o) => o.name === name);\n\nexport const getMostSimilarVariantsForSelection = (\n variants,\n variantsOptions,\n selection,\n) => {\n const filterByOption = (arr, optionName) => {\n return arr.filter(\n (v) => v.variantInfoMap[optionName] === selection[optionName],\n );\n };\n\n const reduced = variantsOptions.reduce((result, option) => {\n const filtered = filterByOption(result, option.name);\n return filtered.length ? filtered : result;\n }, variants);\n\n return reduced;\n};\n\nexport const buildVariantName = (option) => `option${option.position}`;\n\nexport const buildVariantAvailaibityByValue = (\n variantOption,\n currentSelection,\n itemDetails,\n) => {\n const { position, values } = variantOption;\n // Names of all previous variants\n const names = itemDetails.options\n .slice(0, position - 1)\n .map(({ name }) => name);\n const filtered = itemDetails.variantInfo.filter(\n (v) =>\n v.availableForSale &&\n // Filter variants which value matches user selection\n names.every((n) => {\n if (!currentSelection[n]) return true;\n const option = getVariantOption(n, itemDetails.options);\n if (!option) return false;\n return v[buildVariantName(option)] === currentSelection[n];\n }),\n );\n\n if (!filtered.length) return;\n\n const optionName = buildVariantName(variantOption);\n\n return values.reduce((result, val) => {\n result[val] = filtered.some((v) => v[optionName] === val);\n return result;\n }, {});\n};\n\nexport const buildVariants = (details) =>\n details.variantInfo.map((v) => {\n const { variantInfo, variantInfoMap } = details.options.reduce(\n (result, option) => {\n const { name } = option;\n const value = v[buildVariantName(option)];\n result.variantInfo.push({ name, value });\n result.variantInfoMap[name] = value;\n return result;\n },\n { variantInfo: [], variantInfoMap: {} },\n );\n\n return {\n variantInfo,\n variantInfoMap,\n available: v.availableForSale,\n displayPrice: details.displayPrice,\n displayName: v.displayName,\n availabilityStatus: v.availabilityStatus,\n // id: details.id,\n name: v.displayName || v.option0 || details.name,\n productImageAltTxt: v.imageAlt || details.productImageAltTxt,\n productImageUrl: v.imageSrc || details.productImageUrl,\n variantId: v.variantId,\n productId: v.productId,\n sku: v.sku,\n option0: v.option0,\n priceAmount: v.priceAmount,\n priceCurrency: v.priceCurrency,\n priceFormatted: v.priceFormatted,\n hideDisplayPrice: details.hideDisplayPrice,\n };\n });\n\nexport const buildVariantsOptionsFallback = (item) =>\n item.variantInfo.map((i, index) => ({\n name: i.name,\n position: index + 1,\n values: [i.value],\n }));\n\nexport const createCarouselItemKey = (item) => `${item.id}_${item.localId}`;\n\nexport const isSameCarouselItem = (itemA, itemB) =>\n itemA.id === itemB.id && itemA.localId === itemB.localId;\n\nexport const rebuildVariantSelection = (name, value, selection, variants) => {\n const newVariants = { ...selection, [name]: value };\n const availableVariants = variants.filter(\n (v) => v.available && v.variantInfoMap[name] === value,\n );\n\n if (availableVariants.length) {\n const variantNames = Object.keys(newVariants);\n const availabilityByVariant = variantNames.reduce((result, n) => {\n result[n] = availableVariants.filter(\n (v) => v.variantInfoMap[n] === newVariants[n],\n );\n return result;\n }, {});\n const availabilityCounter = availableVariants.map((v) =>\n variantNames.reduce((counter, n) => {\n if (availabilityByVariant[n].includes(v)) return counter + 1;\n return counter;\n }, 0),\n );\n const maxCounter = max(availabilityCounter);\n const maxVariantIndex = availabilityCounter.indexOf(maxCounter);\n const maxVariant = availableVariants[maxVariantIndex];\n\n return variantNames.reduce((result, n) => {\n const val = maxVariant.variantInfoMap[n];\n if (val) result[n] = val;\n return result;\n }, {});\n }\n\n return newVariants;\n};\n\nexport const mapVariantInfo = (variantInfoArray, options) =>\n fromPairs(\n variantInfoArray.map((v, i) => [\n v.name,\n {\n optionId: v.name,\n optionName: v.name,\n optionPosition:\n v.position ??\n options?.find((opt) => opt.name === v.name)?.position ??\n i,\n value: v.value,\n name: v.value,\n },\n ]),\n );\n\nexport const mapShipmentActionStatus = (status) => {\n return status?.error\n ? \"error\"\n : status?.loading\n ? \"loading\"\n : status?.data\n ? \"success\"\n : undefined;\n};\n\nexport const newSelectedItemToState = (item) => {\n const parentId = item.reason.parent || item.reason.id;\n const childId = item.reason.parent ? item.reason.id : null;\n const parentReason = find({ id: parentId }, item.availableReasons);\n const childReason = find({ id: childId })(item.availableReasons);\n const isShopNow = item.type === \"exchangeForCredit\";\n const isClaim = item.type === \"claim\";\n return {\n localId: item.localId,\n id: item.itemId,\n sku: item._sku, // sku can be missing on nth's state, use the private attribute _sku instead.\n // claim and shop now credit are treated as return in backend, use\n // `isStoreCredit` and `isClaim` to distinguish them in UI\n type: isShopNow || isClaim ? \"return\" : item.type,\n isStoreCredit: isShopNow,\n isClaim,\n eligible: !!parentReason?.eligible,\n ineligibleReason: parentReason?.ineligibleReason ?? [],\n returnReason: parentReason?.id,\n childReturnReason: childReason\n ? {\n eligible: !!childReason.eligible,\n ineligibleReason: childReason.ineligibleReason ?? [],\n returnReason: childReason.id,\n }\n : null,\n quantity: item.quantity,\n pictures: item.pictures ?? [],\n comment: item.customerComments,\n attested: item.attested ?? false, // TODO: confirm the attribute name with backend\n exchange:\n item.exchangeTo && !isShopNow\n ? {\n ...item.exchangeTo,\n sku: item.exchangeTo._sku, // sku can be missing on nth's state, use the private attribute _sku instead.\n variantInfo: Object.values(item.exchangeTo.variantInfo ?? {}).map(\n (v) => ({ name: v.optionId, value: v.value }),\n ),\n }\n : undefined,\n };\n};\n\nexport const eventDataToNewSelectedItem = (value) => {\n let { item, selectedReason, ...others } = value;\n return {\n ...item,\n ...others,\n reason: selectedReason,\n };\n};\n\n// TRICKS: an constant empty array to avoid irrelevant rerender. Without it, it\n// cases the `useMemo` of components, and hooks (eg. use-item-state,\n// use-item-selectors), who depends on ineligibleReasons, to rerender every\n// time.\nconst EMPTY_ARRAY = [];\nexport const itemIneligibleReasons = (item) => {\n if (item.someReasonsEligible) {\n return EMPTY_ARRAY;\n }\n\n const matrixIntersection = (ary) =>\n reduce(intersection, ary && ary[0], ary) || EMPTY_ARRAY;\n const reasonsMatrix = item.eligibilityCriteria.map(\n (ec) => ec.ineligibleReason,\n );\n return uniq(matrixIntersection(reasonsMatrix));\n};\n\nexport const useNthAllItems = ({ localItems }) => {\n const orderFetchData = useOrderFetchData();\n const order = orderFetchData.state.data?.order;\n const isNotInsurancePolicy = (item) =>\n item.sku !== \"NARVARDELIVERYPROTECTION\";\n\n return useMemo(\n () =>\n localItems.filter(isNotInsurancePolicy).map((item) => {\n const sortByReasonPriority = sortBy(\n (criteria) =>\n orderFetchData?.state?.data?.returnReasonsById?.[\n criteria.returnReason\n ]?.priority,\n );\n const validCriteria = (criteria) =>\n !criteria.returnReasonParent ||\n item.eligibilityCriteria.some(\n (parent) => parent.returnReason === criteria.returnReasonParent,\n );\n const getClaimIneligibleReason = compose(\n first,\n uniq,\n identity,\n flatten,\n map((criteria) => criteria.ineligibleClaimReason),\n );\n let ret = compose(\n config.showItemSku ? identity : omit(\"sku\"), // show SKU only if the feature flag is enabled\n merge({\n _sku: item.sku, // rename the sku attribute for internal use, because it can be removed when show_item_sku is disabled.\n price: item.hideDisplayPrice\n ? undefined\n : {\n value:\n item.priceAmount * order.presentmentCurrencySubunitToUnit,\n currency: order.presentmentCurrency,\n },\n eligibilities: {\n return: {\n isEligible: item.allowReturn,\n message:\n !item.allowReturn && !item.allowExchange\n ? itemIneligibleReasons(item).join(\"
\")\n : undefined,\n },\n exchange: {\n isEligible: item.allowExchange,\n },\n repair: {\n isEligible: false,\n },\n claims: {\n isEligible: item.allowClaim,\n message: item.allowClaim\n ? undefined\n : getClaimIneligibleReason(item.eligibilityCriteria),\n },\n },\n availableReasons: compose(\n map((criteria) => ({\n ...criteria,\n id: criteria.returnReason,\n name: criteria.returnReasonTitle,\n childIds: criteria.returnReasonParent\n ? null\n : compose(\n map((c) => c.returnReason),\n sortByReasonPriority,\n filter(\n (c) => criteria.returnReason === c.returnReasonParent,\n ),\n )(item.eligibilityCriteria),\n })),\n sortByReasonPriority,\n filter(validCriteria),\n )(item.eligibilityCriteria),\n variantInfo: mapVariantInfo(item.variantInfo),\n }),\n renameKeys({\n id: \"itemId\",\n productTitle: \"name\",\n productImageUrl: \"imageUrl\",\n returnableQuantity: \"remainingQuantity\",\n variantInfo: \"variantInfoOriginal\",\n hasClaimProtection: \"hasShippingProtection\",\n }),\n )(item);\n\n return ret;\n }),\n [orderFetchData, order, localItems],\n );\n};\n\nexport const useNthExchangeProps = ({ selectingItem }) => {\n const orderFetchData = useOrderFetchData();\n const order = orderFetchData.state.data?.order;\n const state = useReturnStepsState();\n const [exchangeVariantInfo, setExchangeVariantInfo] = useState();\n\n const hideExchangeOptions =\n (config.isReturnUpsellDisabled && state.selectingItem?.type === \"return\") ||\n state.selectingItem?.isClaim;\n const exchangeCurrency = order?.presentmentCurrency;\n const { result: exchangeResult, status } = useEvenExchangeProduct({\n query: selectingItem?.name ?? \"\",\n productId: selectingItem?.productId ?? \"\",\n variantId: selectingItem?.variantId ?? \"\",\n price: selectingItem?.priceAmount ?? 0,\n compareAtPrice: selectingItem?.compareAtPriceAmount,\n displayPrice: selectingItem?.displayPrice,\n currency: exchangeCurrency,\n locale,\n countryCode: order?.fromCountryCode,\n showProduct: true,\n });\n\n const exchangeVariants = useMemo(\n () =>\n exchangeResult && !hideExchangeOptions\n ? buildVariants(exchangeResult).map(({ sku, ...v }) => ({\n ...v,\n _sku: sku, // rename the sku attribute for internal use, because it can be removed when show_item_sku is disabled.\n price: {\n value: v.priceAmount * order.presentmentCurrencySubunitToUnit,\n currency: exchangeCurrency,\n },\n imageUrl: v.productImageUrl,\n variantInfo: mapVariantInfo(v.variantInfo, exchangeResult.options),\n }))\n : [],\n [exchangeResult, hideExchangeOptions],\n );\n const exchangeOptions = useMemo(() => {\n if (!exchangeResult?.options || hideExchangeOptions) return [];\n\n // setup sparsem availability check\n const sparsem = new Sparsem();\n const sparsemVariants = exchangeVariants\n .filter((v) => v.available)\n .map((v) => {\n let values = compose(\n (infos) => infos.map((info) => info.value),\n // map(get(\"value\")),\n sortBy(\"optionPosition\"),\n )(Object.values(v.variantInfo || {}));\n return values;\n });\n const sparsemOptions = sortBy(\"position\", exchangeResult.options).map(\n (opt) => opt.values,\n );\n sparsem.setArr(sparsemVariants, sparsemOptions);\n\n return exchangeResult.options.map((opt) => {\n // When there are no available variants of a product (completely missing\n // in the array), we hide the option from the exchange swatches. It is\n // meaningless to show it on UI, because we don't know the product image,\n // there are no `availabilityStatus` we can show and no available variants\n // as well. We only filter this for \"Product\" option, because consumer may\n // still want to know other out of stock options (e.g. all sizes including\n // those were out of stock)\n const filterUnavailableOption = (v) =>\n exchangeResult.variantInfo.some(\n (info) => info[`option${opt.position}`] === v,\n );\n let values = opt.values\n .filter(opt.name === \"Product\" ? filterUnavailableOption : stubTrue)\n .map((v, i) => ({\n name: v,\n value: v,\n position: i,\n }));\n if (config.sortExchangeVariantsByAvailability) {\n // query the availability of different values under the current option and exchange selections\n const sparsemQuery = exchangeResult.options.map((o) =>\n o.name === opt.name\n ? null\n : (exchangeVariantInfo?.[o.name]?.value ?? null),\n );\n const sparsemResult = sparsem.search(sparsemQuery);\n const availability = values.reduce((acc, v) => {\n acc[v.value] =\n sparsemResult[v.value] === UNAVAILABLE_IN_THIS_SET ||\n sparsemResult[v.value] == UNAVAILABLE_IN_ANY_SET;\n return acc;\n }, {});\n values = compose(\n (vs) => vs.map((v, i) => set(\"position\", i, v)),\n sortBy((v) => availability[v.value]),\n )(values);\n }\n return {\n ...opt,\n id: opt.name,\n displayType: /^product$/i.test(opt.name) ? \"image\" : undefined,\n values,\n };\n });\n }, [\n hideExchangeOptions,\n config.sortExchangeVariantsByAvailability,\n exchangeResult,\n exchangeVariants,\n exchangeVariantInfo,\n ]);\n\n return memoObjectByKeyValues({\n exchangeVariants,\n exchangeOptions,\n status,\n setExchangeVariantInfo,\n });\n};\n\nconst isReasonTypeMatched = curry(\n (selectingItem, reason) => selectingItem.isClaim === !!reason.isClaim,\n);\n\nconst isEligibleReason = curry((selectingItem, reason) => {\n if (selectingItem.isClaim) {\n // selectingItem.type of claim is \"return\", check isClaim indicator instead\n return reason.isEligibleForClaim;\n }\n\n // For normal reason, we always return true. The option is not hide from UI,\n // instead the ineligible reason will be shown when user click the next\n // button. Retailer may use that to ask user to contact them directly or route\n // them to a different page/form.\n return true;\n});\n\nconst hasEligibleChildReason = (reason, index, array) => {\n if ((reason.childIds ?? []).length === 0) return true;\n return reason.childIds.some((childId) => array.find((r) => r.id === childId));\n};\n\nconst filterAvailableChildIds = curry((availableReasons, reason) => ({\n ...reason,\n childIds: (reason.childIds ?? []).filter((childId) =>\n availableReasons.find((r) => r.id === childId),\n ),\n}));\n\nexport const useReturnReasonOrderItem = ({ newSelectingItem }) => {\n const state = useReturnStepsState();\n const nonEmptyCart = state.items.length > 0;\n const { hasClaimItems, claimReasonCode } = useClaims();\n return useMemo(() => {\n let ret = newSelectingItem;\n\n // no mix cart for claim, we only support one claim type (reason) per return cart.\n if (nonEmptyCart) {\n if (hasClaimItems) {\n ret = set(\"eligibilities.return.isEligible\", false, ret);\n ret = set(\"eligibilities.exchange.isEligible\", false, ret);\n ret = {\n ...ret,\n availableReasons: ret.availableReasons?.filter(\n (reason) =>\n reason.id === claimReasonCode ||\n reason.childIds?.includes(claimReasonCode),\n ),\n };\n } else {\n ret = set(\"eligibilities.claims.isEligible\", false, ret);\n ret = set(\n \"eligibilities.claims.message\",\n config.translations.choose_items_claim_mix_cart_error,\n ret,\n );\n }\n }\n\n // new item selection, type is not chosen yet\n if (!state.selectingItem?.type) return ret;\n\n // filter available reasons based on the selecting item type and reason type\n let availableReasons = ret.availableReasons\n .filter(isReasonTypeMatched(state.selectingItem))\n .filter(isEligibleReason(state.selectingItem))\n .filter(hasEligibleChildReason);\n availableReasons = availableReasons.map(\n filterAvailableChildIds(availableReasons),\n );\n return {\n ...ret,\n availableReasons,\n };\n }, [\n newSelectingItem,\n state.selectingItem,\n nonEmptyCart,\n hasClaimItems,\n claimReasonCode,\n ]);\n};\n\nexport const useNthSubmittedReturns = ({ allItems }) => {\n const orderFetchData = useOrderFetchData();\n const order = orderFetchData.state.data?.order;\n const returnHistory = orderFetchData.state.data?.returnHistory;\n const loginSession = useLoginSession();\n const customer = useCustomer();\n const { cancelReturn, cancelStatus } = useCancelReturn();\n const { changeRefundMethod, status: changeRefundMethodStatus } =\n useChangeRefundMethod();\n\n const [returnAction, setReturnAction] = useState();\n\n const returnActionStatus = useMemo(() => {\n const { returnId } = returnAction ?? {};\n if (!returnId) return;\n\n const reshopCancelError = getReshopCancelError(cancelStatus.error);\n const reshopCancelErrorMessage =\n reshopCancelError &&\n interpolate(\n config.translations.choose_items_rma_action_reshop_cancel_error,\n { refund_id: reshopCancelError.reshop_refund_id },\n );\n\n if (returnAction.action === \"cancel\") {\n const status = mapShipmentActionStatus(cancelStatus);\n const message =\n status === \"error\"\n ? reshopCancelError\n ? reshopCancelErrorMessage\n : config.translations.choose_items_rma_action_cancel_error\n : undefined;\n\n return { returnId, status, message };\n }\n if (returnAction.action === \"changeRefundMethod\") {\n const status = mapShipmentActionStatus(changeRefundMethodStatus);\n const message = reshopCancelError\n ? reshopCancelErrorMessage\n : changeRefundMethodStatus.error?.message;\n return { returnId, status, message };\n }\n }, [returnAction, cancelStatus, changeRefundMethodStatus]);\n\n const submittedReturns = useMemo(\n () =>\n returnHistory.map((history) => {\n const convertLineItem = (item) =>\n compose(\n set(\"itemId\", `gid://shopify/LineItem/${item.itemId}`),\n merge(\n allItems.find(\n (localItem) =>\n localItem.itemId === `gid://shopify/LineItem/${item.itemId}`,\n ) ?? {},\n ),\n merge({\n reason: {\n id: item.childReturnReasonCode ?? item.returnReasonCode,\n name: item.returnReason,\n },\n }),\n renameKeys({\n itemName: \"name\",\n }),\n )(item);\n\n // Since we will split exchange line item to multiple return line items,\n // we need to group it back.\n const groupSplittedLineItem = (items) => {\n const ret = compose(\n map((itemsWithSameId) => ({\n ...itemsWithSameId[0],\n quantity: sumBy(\"quantity\", itemsWithSameId),\n })),\n groupBy(\"itemId\"),\n )(items);\n return ret;\n };\n\n const returnLabels = [];\n const returnShipmentActions = [];\n\n if (history.returnLabel) {\n returnLabels.push({\n dataUrl: null,\n labelType: \"PACKING_SLIP_AND_SHIPPING_LABEL\",\n labelUrl: history.returnLabel,\n mimeType: \"application/pdf\",\n });\n returnShipmentActions.push({\n title: getTranslation(\"choose_items_rma_action_reprint_labels\"),\n href: history.returnLabel,\n });\n }\n\n if (history.qrCodeUrl) {\n returnLabels.push({\n dataUrl: null,\n labelType: \"QR_CODE\",\n labelUrl: history.qrCodeUrl,\n mimeType: \"image/png\",\n });\n returnShipmentActions.push({\n title: getTranslation(\"choose_items_rma_action_reprint_qr_code\"),\n href: history.qrCodeUrl,\n });\n }\n\n const isMultiLabel = history.returnShipments.length > 1;\n history.returnShipments?.forEach((ship) => {\n if (ship.returnTrackingLink) {\n returnShipmentActions.push({\n title: isMultiLabel\n ? interpolate(\n getTranslation(\n \"choose_items_rma_action_track_return_multi_label\",\n ),\n {\n letter: ship.letter,\n tracking_number: ship.returnTrackingNumber,\n },\n )\n : getTranslation(\"choose_items_rma_action_track_return\"),\n href: ship.returnTrackingLink,\n });\n }\n });\n\n if (\n history.refundMethod === \"reshop\" &&\n [\n \"initiated\",\n \"on_its_way_to_retailer\",\n \"delivered_to_retailer\",\n \"received_by_retailer\",\n ].includes(history.currentStatus)\n ) {\n returnShipmentActions.push({\n title: getTranslation(\n \"choose_items_rma_action_change_refund_method_original_payment\",\n ),\n onClick: () => {\n setReturnAction({\n returnId: history.id,\n action: \"changeRefundMethod\",\n });\n changeRefundMethod({\n id: history.id,\n refundMethod: \"original_payment\",\n note: \"\",\n })\n .then((result) => {\n loginSession.logout();\n\n if (config.isNthLoginUi) {\n toggleContainerClass(\"nvo_container--new-login\");\n toggleContainerClass(\"nvo_container--logged-in\");\n }\n })\n .catch((error) => {\n console.error(\"error\", error);\n });\n },\n status:\n returnAction?.returnId === history.id &&\n returnAction?.action === \"changeRefundMethod\"\n ? returnActionStatus\n : undefined,\n });\n }\n\n if (history.cancellable) {\n returnShipmentActions.push({\n title: getTranslation(\"choose_items_rma_action_cancel_return\"),\n onClick: () => {\n setReturnAction({\n returnId: history.id,\n action: \"cancel\",\n });\n cancelReturn({\n orderNumber: order.orderNumber,\n email: customer.email,\n returnId: history.id,\n })\n .then((result) => {\n loginSession.logout();\n\n if (config.isNthLoginUi) {\n toggleContainerClass(\"nvo_container--new-login\");\n toggleContainerClass(\"nvo_container--logged-in\");\n }\n })\n .catch((error) => {\n console.error(\"error\", error);\n });\n },\n status:\n returnAction?.returnId === history.id &&\n returnAction?.action === \"cancel\"\n ? returnActionStatus\n : undefined,\n });\n }\n\n const ret = compose(\n merge({\n displayStatus: getTranslation(\n `return_status_simplified_to_consumer_${simplifyReturnStatus(\n history.currentStatus,\n )}`,\n ),\n canBeCancelled: history.cancellable,\n returnShipments: [\n {\n returnLabels,\n items: groupSplittedLineItem(\n history.returnItems.map(convertLineItem),\n ),\n returnShipmentActions,\n returnTracking: history.carrierTrackingNumber\n ? {\n carrierMoniker: history.returnMethod,\n carrierName: history.returnMethod,\n narvarTrackingUrl: `?rid=${history.id}&tracking_number=${history.carrierTrackingNumber}`,\n trackingNumber: history.carrierTrackingNumber,\n }\n : undefined,\n },\n ],\n }),\n renameKeys({\n currentStatus: \"status\",\n returnShipments: \"returnShipmentsRaw\",\n }),\n )(history);\n\n return ret;\n }),\n [returnHistory, allItems, returnAction, returnActionStatus],\n );\n\n return memoObjectByKeyValues({\n submittedReturns,\n returnActionStatus,\n cancelStatus,\n });\n};\n\nexport const useInventoryCheck = ({ items }) => {\n const orderFetchData = useOrderFetchData();\n const order = orderFetchData.state.data?.order;\n const currency = order?.presentmentCurrency;\n const countryCode = order?.fromCountryCode;\n\n const hooks = items.map((item) =>\n useEvenExchangeProduct({\n query: item?.productTitle ?? item?.name ?? \"\",\n productId: item?.productId ?? \"\",\n variantId: item?.variantId ?? \"\",\n price: item?.priceAmount ?? 0,\n compareAtPrice: item?.compareAtPriceAmount,\n displayPrice: item?.displayPrice,\n currency: currency,\n locale,\n countryCode: countryCode,\n showProduct: true,\n }),\n );\n const exchangeResults = hooks.map((hook) => hook.result);\n const statuses = hooks.map((hook) => hook.status);\n const status = useMergeRequestStatus(...statuses);\n\n const { results, resultsById } = useMemo(() => {\n if (status.loading) return {};\n\n const matchingVariants = exchangeResults.map((result, i) => {\n const variantId = items[i]?.variantId;\n const matchingVariant = find(\n { variantId: variantId },\n result?.variantInfo ?? [],\n );\n return [\n variantId,\n matchingVariant ?? { variantId: variantId, availableForSale: false },\n ];\n });\n return {\n results: matchingVariants.map(get(1)),\n resultsById: fromPairs(matchingVariants),\n };\n }, [status, ...items, ...exchangeResults]);\n\n const allItemsAvailableForSale = results.every(\n (result) => result.availableForSale,\n );\n\n return memoObjectByKeyValues({\n status,\n results,\n resultsById,\n allItemsAvailableForSale,\n });\n};\n","import React, { useMemo, forwardRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { compose, map, toPairs, fromPairs, isNumber } from \"lodash/fp\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport InputAdornment from \"@material-ui/core/InputAdornment\";\nimport Typography from \"@material-ui/core/Typography\";\nimport { NumericFormat } from \"react-number-format\";\n\nimport TextField from \"./TextField\";\nimport { getCurrencyFormat } from \"../../modules/currency\";\n\nconst useStyles = makeStyles(\n (theme) => ({\n adornment: {\n gap: theme.spacing(0.5),\n },\n }),\n { name: \"N0NumberField\" },\n);\n\nconst NumberField = forwardRef(\n (\n { type, unit, unitPosition, min, max, showLimit, inputProps, ...props },\n ref,\n ) => {\n const classes = useStyles();\n const currencyFormat = useMemo(\n () => (type === \"currency\" ? getCurrencyFormat(unit) : null),\n [type, unit],\n );\n if (currencyFormat) {\n unit = currencyFormat.symbol;\n unitPosition = \"start\";\n }\n const adornmentProps = useMemo(() => {\n let ret = {\n startAdornment: [],\n endAdornment: [],\n };\n\n if (max > 0 && showLimit) {\n ret.endAdornment.push(\n {`/ ${max}`},\n );\n }\n if (unit) {\n (unitPosition === \"start\" ? ret.startAdornment : ret.endAdornment).push(\n unit,\n );\n }\n\n ret = compose(\n fromPairs,\n map(([key, nodes]) => {\n const adornmentNode = (\n \n {nodes.map((node, i) => (\n {node}\n ))}\n \n );\n return [key, adornmentNode];\n }),\n toPairs,\n )(ret);\n\n return ret;\n }, [unit, unitPosition, max, showLimit]);\n\n const iProps = useMemo(\n () => ({\n min,\n max,\n ...inputProps,\n }),\n [min, max, inputProps],\n );\n\n if (type === \"currency\") {\n return (\n {\n props.onChange?.({\n target: {\n name: props.name,\n ...values,\n },\n });\n }}\n customInput={TextField}\n inputProps={iProps}\n {...adornmentProps}\n {...props}\n />\n );\n }\n\n return (\n \n );\n },\n);\nNumberField.displayName = \"NumberField\";\nNumberField.propTypes = {\n ...TextField.propTypes,\n type: PropTypes.oneOf([\"number\", \"currency\"]),\n unit: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n unitPosition: PropTypes.oneOf([\"start\", \"end\"]),\n min: PropTypes.number,\n max: PropTypes.number,\n showLimit: PropTypes.bool,\n};\n\nNumberField.defaultProps = {\n type: \"number\",\n unitPosition: \"end\",\n};\n\nexport default NumberField;\n","import { includes, keys } from \"lodash/fp\";\n\n// Return status simplified to consumer (e.g. shown on return history)\nexport const SIMPLIFIED_RETURN_STATUS = {\n out_of_stock_exception: \"initiated\",\n // delivered_but_not_received: -4, // TODO: need research\n exception: \"initiated\",\n // preauthorization: -1, // TODO: need research\n started: \"initiated\",\n requested: \"requested\",\n initiated: \"initiated\",\n on_its_way_to_retailer: \"on_its_way\",\n delivered_to_retailer: \"delivered\",\n received_by_retailer: \"received\",\n processing: \"received\",\n approved: \"approved\", // need timestamp\n rejected: \"declined\",\n refunded: \"refunded\", // need timestamp\n cancelled_by_retailer: \"cancelled\", // hide from the list\n cancelled_by_user: \"cancelled\", // hide from the list\n // refunded_and_exchanged: 10, // TODO: need research\n // refunded_return_awaiting_exchange_completion: 11, // TODO: need research\n // exchange_processed: 12, // TODO: need research\n resolve_manually_without_automation: \"initiated\",\n awaiting_claim_resolution: \"claim_reviewing\",\n claim_denied: \"declined\",\n\n _unknown: \"initiated\",\n};\n\nexport const simplifyReturnStatus = (status) =>\n SIMPLIFIED_RETURN_STATUS[status] ?? SIMPLIFIED_RETURN_STATUS._unknown;\n\nexport const RETURN_STATUSES = keys(SIMPLIFIED_RETURN_STATUS);\n\nexport const compareReturnStatus = (() => {\n const toNumber = (status) => RETURN_STATUSES.indexOf(status);\n const eq = (a, b) => toNumber(a) === toNumber(b);\n const gt = (a, b) => toNumber(a) > toNumber(b);\n const gte = (a, b) => toNumber(a) >= toNumber(b);\n const lt = (a, b) => toNumber(a) < toNumber(b);\n const lte = (a, b) => toNumber(a) <= toNumber(b);\n const memberOf = (a, statuses = []) => includes(a, statuses);\n return {\n eq,\n gt,\n gte,\n lt,\n lte,\n memberOf,\n };\n})();\n","import React, { FC } from \"react\";\n\nexport const countryCodeToCurrency: { [p: string]: string } = {\n AF: \"AFN\",\n AL: \"ALL\",\n DZ: \"DZD\",\n AS: \"USD\",\n AD: \"EUR\",\n AO: \"AOA\",\n AI: \"XCD\",\n AQ: \"USD\",\n AG: \"XCD\",\n AR: \"ARS\",\n AM: \"AMD\",\n AW: \"AWG\",\n AU: \"AUD\",\n AT: \"EUR\",\n AZ: \"AZN\",\n BS: \"BSD\",\n BH: \"BHD\",\n BD: \"BDT\",\n BB: \"BBD\",\n BY: \"BYN\",\n BE: \"EUR\",\n BZ: \"BZD\",\n BJ: \"XOF\",\n BM: \"BMD\",\n BT: \"BTN\",\n BO: \"BTN\",\n BQ: \"USD\",\n BA: \"BAM\",\n BW: \"BWP\",\n BV: \"NOK\",\n BR: \"BRL\",\n IO: \"USD\",\n BN: \"BND\",\n BG: \"BGN\",\n BF: \"XOF\",\n BI: \"BIF\",\n CV: \"CVE\",\n KH: \"KHR\",\n CM: \"XAF\",\n CA: \"CAD\",\n KY: \"KYD\",\n CF: \"XAF\",\n TD: \"XAF\",\n CL: \"CLF\",\n CN: \"CNY\",\n CX: \"AUD\",\n CC: \"AUD\",\n CO: \"COU\",\n KM: \"KMF\",\n CD: \"CDF\",\n CG: \"XAF\",\n CK: \"NZD\",\n CR: \"CRC\",\n HR: \"HRK\",\n CU: \"CUC\",\n CW: \"ANG\",\n CY: \"EUR\",\n CZ: \"CZK\",\n CI: \"CZK\",\n DK: \"DKK\",\n DJ: \"DJF\",\n DM: \"XCD\",\n DO: \"DOP\",\n EC: \"USD\",\n EG: \"EGP\",\n SV: \"USD\",\n GQ: \"XAF\",\n ER: \"ERN\",\n EE: \"EUR\",\n SZ: \"EUR\",\n ET: \"ETB\",\n FK: \"DKK\",\n FO: \"DKK\",\n FJ: \"FJD\",\n FI: \"EUR\",\n FR: \"EUR\",\n GF: \"EUR\",\n PF: \"XPF\",\n TF: \"EUR\",\n GA: \"XAF\",\n GM: \"GMD\",\n GE: \"GEL\",\n DE: \"EUR\",\n GH: \"GHS\",\n GI: \"GIP\",\n GR: \"EUR\",\n GL: \"DKK\",\n GD: \"XCD\",\n GP: \"EUR\",\n GU: \"USD\",\n GT: \"GTQ\",\n GG: \"GBP\",\n GN: \"GNF\",\n GW: \"XOF\",\n GY: \"GYD\",\n HT: \"USD\",\n HM: \"AUD\",\n VA: \"EUR\",\n HN: \"HNL\",\n HK: \"HKD\",\n HU: \"HUF\",\n IS: \"ISK\",\n IN: \"INR\",\n ID: \"IDR\",\n IR: \"XDR\",\n IQ: \"IQD\",\n IE: \"EUR\",\n IM: \"GBP\",\n IL: \"ILS\",\n IT: \"EUR\",\n JM: \"JMD\",\n JP: \"JPY\",\n JE: \"GBP\",\n JO: \"JOD\",\n KZ: \"KZT\",\n KE: \"KES\",\n KI: \"AUD\",\n KP: \"KPW\",\n KR: \"KRW\",\n KW: \"KWD\",\n KG: \"KGS\",\n LA: \"LAK\",\n LV: \"EUR\",\n LB: \"LBP\",\n LS: \"ZAR\",\n LR: \"LRD\",\n LY: \"LYD\",\n LI: \"CHF\",\n LT: \"EUR\",\n LU: \"EUR\",\n MO: \"MOP\",\n MG: \"MGA\",\n MW: \"MWK\",\n MY: \"MYR\",\n MV: \"MVR\",\n ML: \"XOF\",\n MT: \"EUR\",\n MH: \"USD\",\n MQ: \"EUR\",\n MR: \"MRU\",\n MU: \"MUR\",\n YT: \"EUR\",\n MX: \"MXV\",\n FM: \"RUB\",\n MD: \"MDL\",\n MC: \"EUR\",\n MN: \"MNT\",\n ME: \"EUR\",\n MS: \"XCD\",\n MA: \"MAD\",\n MZ: \"MZN\",\n MM: \"MMK\",\n NA: \"ZAR\",\n NR: \"AUD\",\n NP: \"NPR\",\n NL: \"EUR\",\n NC: \"XPF\",\n NZ: \"NZD\",\n NI: \"NIO\",\n NE: \"XOF\",\n NG: \"NGN\",\n NU: \"NZD\",\n NF: \"AUD\",\n MK: \"AUD\",\n MP: \"USD\",\n NO: \"NOK\",\n OM: \"OMR\",\n PK: \"PKR\",\n PW: \"USD\",\n PS: \"USD\",\n PA: \"USD\",\n PG: \"PGK\",\n PY: \"PYG\",\n PE: \"PEN\",\n PH: \"PHP\",\n PN: \"NZD\",\n PL: \"PLN\",\n PT: \"EUR\",\n PR: \"USD\",\n QA: \"QAR\",\n RO: \"RON\",\n RU: \"RUB\",\n RW: \"RWF\",\n RE: \"RWF\",\n BL: \"EUR\",\n SH: \"SHP\",\n KN: \"XCD\",\n LC: \"XCD\",\n MF: \"EUR\",\n PM: \"EUR\",\n VC: \"XCD\",\n WS: \"WST\",\n SM: \"EUR\",\n ST: \"STN\",\n SA: \"SAR\",\n SN: \"XOF\",\n RS: \"RSD\",\n SC: \"SCR\",\n SL: \"SLL\",\n SG: \"SGD\",\n SX: \"ANG\",\n SK: \"EUR\",\n SI: \"EUR\",\n SB: \"SBD\",\n SO: \"SOS\",\n ZA: \"ZAR\",\n GS: \"USD\",\n SS: \"SSP\",\n ES: \"EUR\",\n LK: \"LKR\",\n SD: \"SDG\",\n SR: \"SRD\",\n SJ: \"NOK\",\n SE: \"SEK\",\n CH: \"CHW\",\n SY: \"SYP\",\n TW: \"TWD\",\n TJ: \"TJS\",\n TZ: \"TZS\",\n TH: \"THB\",\n TL: \"USD\",\n TG: \"XOF\",\n TK: \"NZD\",\n TO: \"TOP\",\n TT: \"TTD\",\n TN: \"TND\",\n TR: \"TRY\",\n TM: \"TMT\",\n TC: \"USD\",\n TV: \"AUD\",\n UG: \"UGX\",\n UA: \"UAH\",\n AE: \"AED\",\n GB: \"GBP\",\n UM: \"USD\",\n US: \"USD\",\n UY: \"UYW\",\n UZ: \"UZS\",\n VU: \"VUV\",\n VE: \"VUV\",\n VN: \"VND\",\n VG: \"USD\",\n VI: \"USD\",\n WF: \"XPF\",\n EH: \"MAD\",\n YE: \"YER\",\n ZM: \"ZMW\",\n ZW: \"ZWL\",\n AX: \"EUR\",\n};\n\nexport const getCurrencyDP = (currency = \"USD\"): number => {\n const mapping: { [key: string]: number } = {\n BHD: 3,\n BIF: 0,\n CLF: 4,\n CLP: 0,\n DJF: 0,\n GNF: 0,\n IQD: 3,\n ISK: 0,\n JOD: 3,\n JPY: 0,\n KMF: 0,\n KRW: 0,\n KWD: 3,\n LYD: 3,\n OMR: 3,\n PYG: 0,\n RWF: 0,\n TND: 3,\n UGX: 0,\n UYI: 0,\n UYW: 4,\n VND: 0,\n VUV: 0,\n XAF: 0,\n XOF: 0,\n XPF: 0,\n };\n return mapping[currency] ?? 2;\n};\n\nexport const getCurrencyExponent = (currency = \"USD\"): number =>\n 10 ** getCurrencyDP(currency);\n\nexport type CurrencyProps = {\n value: number;\n locale?: string;\n currency?: string | null;\n includeCurrency?: boolean;\n needsExponent?: boolean;\n};\n\nexport const formatCurrency = ({\n value,\n locale = \"en-US\",\n currency = \"USD\",\n includeCurrency,\n needsExponent = true,\n}: CurrencyProps) => {\n const _locale = (locale || \"en_US\").replace(\"_\", \"-\");\n const country = _locale.split(\"-\")[1];\n const _currency = currency || countryCodeToCurrency[country] || \"USD\";\n const exponent = needsExponent ? getCurrencyExponent(_currency) : 1;\n\n const formatted = new Intl.NumberFormat(_locale, {\n style: \"currency\",\n currency: _currency,\n }).format(value / exponent);\n return includeCurrency ? `${formatted} ${_currency}` : formatted;\n};\n\nexport const Currency: FC = ({\n value,\n locale = \"en-US\",\n currency = \"USD\",\n includeCurrency,\n needsExponent = true,\n}) => (\n <>\n {formatCurrency({\n value,\n locale,\n currency,\n includeCurrency,\n needsExponent,\n })}\n \n);\n","import React, { useMemo } from \"react\";\nimport PropTypes from \"prop-types\";\n\n/*\n * Flex box spacer or specify the width or height\n */\nfunction Spacer({ width, height }) {\n const styles = useMemo(\n () =>\n !width && !height\n ? { flex: 1 }\n : {\n width: width || \"100%\",\n height: height || \"100%\",\n },\n [width, height],\n );\n return
;\n}\n\nSpacer.propTypes = {\n width: PropTypes.number,\n height: PropTypes.number,\n};\n\nSpacer.defaultProps = {\n width: 0,\n height: 0,\n};\n\nexport default Spacer;\n","import React, { FC, ReactNode, CSSProperties } from \"react\";\nimport { Markup, MarkupProps } from \"interweave\";\n\nconst StyledMarkup: FC<\n Omit & {\n content?: ReactNode | null;\n style?: CSSProperties;\n }\n> = ({ content, style, noWrap, ...props }) => {\n if (React.isValidElement(content)) return content;\n if (typeof content !== \"string\") return null;\n\n if (props.tagName) return ;\n if (noWrap) return ;\n return (\n \n \n \n );\n};\n\nexport default StyledMarkup;\n","import React from \"react\";\nimport {\n ItemDisplay,\n AdditionalItemAttributeConfig,\n AdditionalItemAttributeTransformTypes,\n} from \"@narvar/nth-hook-loma\";\nimport { Currency, formatCurrency } from \"../transformers/Currency\";\n\nimport {\n AdditionalProperty,\n Maybe,\n AdditionalItemAttrs,\n Attribute,\n ExchangeVariant,\n ExtendedOrderItem,\n ExtendedReturnItem,\n ExtendedReturnItemInput,\n ExtendedSubmittedReturn,\n OfflineReturnsHandlingType,\n ReturnReasonsReturnType,\n} from \"@narvar/nth-kit-returns-headless\";\n\nexport const DEFAULT_ITEM_ATTR_CONFIG: string[] = [\n \"quantity\",\n \"variantInfo\",\n \"color\",\n \"size\",\n \"sku\",\n \"price\",\n];\n\nexport const filterItems = (\n items: ExtendedOrderItem[],\n submittedReturns: ExtendedSubmittedReturn[] = [],\n showOfflineReturnsAs: OfflineReturnsHandlingType = \"hidden\",\n): [ExtendedOrderItem[], ExtendedOrderItem[]] => {\n const eligible: ExtendedOrderItem[] = [];\n const ineligible: ExtendedOrderItem[] = [];\n const hasOfflineReturnItem = (item: ExtendedOrderItem) => {\n const onlineReturnedQuantity = submittedReturns\n .map((r) => r.returnShipments ?? [])\n .flat()\n .map((s) => s.items)\n .flat()\n .reduce(\n (sum, submittedReturnItem) =>\n submittedReturnItem.itemId === item.itemId\n ? sum + submittedReturnItem.quantity\n : sum,\n 0,\n );\n return (\n item.orderedQuantity - onlineReturnedQuantity > item.remainingQuantity\n );\n };\n\n items.forEach((item) => {\n const eligibility = item.eligibilities;\n if (\n (eligibility?.return?.isEligible || eligibility?.exchange?.isEligible) &&\n item.remainingQuantity > 0\n ) {\n eligible.push(item);\n } else if (\n item.remainingQuantity > 0 ||\n (showOfflineReturnsAs === \"ineligible\" && hasOfflineReturnItem(item))\n ) {\n ineligible.push(item);\n }\n });\n\n return [eligible, ineligible];\n};\n\nexport const splitItemsForMixReturns = (\n items?: ExtendedOrderItem[],\n selectedItems?: ExtendedReturnItemInput[],\n): ExtendedOrderItem[] => {\n const splitItems: ExtendedOrderItem[] = (items ?? []).reduce(\n (ary: ExtendedOrderItem[], item: ExtendedOrderItem) => {\n // split orderItems into multiple rows base on current selections\n let split: ExtendedOrderItem[] = (selectedItems ?? [])\n .filter(\n (itemInput) =>\n itemInput.itemId === item.itemId && itemInput.sku === item.sku,\n )\n .map((itemInput) => ({\n ...item,\n localId: itemInput.localId,\n remainingQuantity: itemInput.quantity,\n }));\n\n // max localId of current selected item, return -1 if it was unselected\n const maxLocalId: number = Math.max(\n -1,\n ...split.map((item) => item.localId ?? 0),\n );\n const selectedQty: number = split.reduce(\n (sum, item) => sum + item.remainingQuantity,\n 0,\n );\n const totalQty: number = item.remainingQuantity;\n const remainingQuantity = totalQty - selectedQty;\n\n // append another row if there is still any remaining quantity.\n if (remainingQuantity > 0) {\n split = [\n ...split,\n {\n ...item,\n localId: maxLocalId + 1, // last remaining item's localId is always max ID+1, so even if a selected item was removed, the ID won't mixup.\n remainingQuantity,\n },\n ];\n }\n\n return [...ary, ...split];\n },\n [],\n );\n\n return splitItems;\n};\n\nexport const getAdditionalItemAttrs = (\n additionalProperties?: Maybe,\n) => {\n if (!additionalProperties) {\n return null;\n }\n\n /**\n * Additional Properties come in a different format than what we need for getItemAttrs.\n * We convert these to an object of objects, formatting key, and label.\n */\n // eslint-disable-next-line\n return additionalProperties.reduce((acc: any, attr: AdditionalProperty) => {\n const { name, value } = attr;\n\n // First we split the name into an array\n const attrNameArray = name.split(\"_\");\n\n // Name attr is formatted to a label. e.g. `Rx_number` to `Rx number`\n const joinedName = attrNameArray.join(\" \");\n const label = `${joinedName.charAt(0).toUpperCase()}${joinedName.slice(1)}`;\n\n // A key is formatted to snake case. e.g. `Rx_number` to `rxNumber`\n const key =\n attrNameArray.length === 1\n ? `${name.charAt(0).toLowerCase()}${name.slice(1)}`\n : attrNameArray\n .map((word: string, i: number) => {\n let str = word.toLowerCase();\n\n if (i !== 0) {\n str = `${str.charAt(0).toUpperCase()}${str.slice(1)}`;\n }\n\n return str;\n })\n .join(\"\");\n\n acc[key] = {\n label,\n value,\n };\n\n //eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return acc;\n }, {} as AdditionalItemAttrs);\n};\n\nconst getTransformedAttribute = (\n transformType: AdditionalItemAttributeTransformTypes,\n {\n key,\n additionalItemAttrs,\n additionalItemAttributeConfig,\n currency,\n includeCurrency,\n locale,\n }: {\n key: string;\n additionalItemAttrs: AdditionalItemAttrs;\n additionalItemAttributeConfig?: Maybe;\n currency?: string;\n includeCurrency?: boolean;\n locale?: string;\n },\n): string => {\n const value = additionalItemAttrs?.[key]?.value;\n\n if (!value) {\n return \"\";\n }\n\n // If there is no transform, we return the value as is.\n if (transformType === \"none\") {\n return value;\n }\n\n // If thee transform is to concatenate, we need to find the additional attribute config for the concat key,\n // then concat it as a prefix or suffix. Usually, the concatenated attribute will be excluded from display in itemAttributeConfig.\n if (transformType === \"toConcatenate\") {\n if (!additionalItemAttributeConfig) {\n return value;\n }\n\n const thisAdditionalItemAttributeConfig =\n additionalItemAttributeConfig?.find((item) => item.attribute === key);\n const thisProperty = thisAdditionalItemAttributeConfig?.value;\n const concatenatedAttributeConfig = additionalItemAttributeConfig?.find(\n (item) => item.attribute === thisProperty?.concatKey,\n );\n const transformedConcatValue: string = getTransformedAttribute(\n concatenatedAttributeConfig?.value?.transform ?? \"none\",\n {\n key: thisProperty?.concatKey ?? \"\",\n additionalItemAttrs,\n additionalItemAttributeConfig,\n currency,\n locale,\n },\n );\n\n return thisProperty?.concatPosition === \"suffix\"\n ? `${value}${transformedConcatValue}`\n : `${transformedConcatValue}${value}`;\n }\n\n // If the transform is to currency, we use the Intl.NumberFormat to format the value as currency.\n if (transformType === \"toCurrency\") {\n return formatCurrency({\n value: parseFloat(value),\n currency,\n includeCurrency,\n locale,\n needsExponent: !value?.toString().includes(\".\"),\n });\n }\n\n // If the transform is to lowercase, we return the value in lowercase.\n if (transformType === \"toLowercase\") {\n return value.toLowerCase();\n }\n\n // Otherwise, we simply return the value as is.\n return value;\n};\n\nexport const getItemAttrs = ({\n item,\n itemDisplay,\n selectedQuantity,\n labels,\n exchangeTo,\n locale,\n includeCurrency,\n}: {\n item: ExtendedOrderItem | ExtendedReturnItem;\n itemDisplay?: Maybe;\n selectedQuantity?: number;\n labels?: {\n skuLabel?: string;\n priceLabel?: string;\n qtyLabel?: string;\n sizeLabel?: string;\n colorLabel?: string;\n };\n exchangeTo?: ExchangeVariant;\n locale?: string;\n includeCurrency?: boolean;\n}) => {\n const { additionalItemAttributeConfig, itemAttributeConfig } =\n itemDisplay || {};\n\n /**\n * In order to order and potential hide any attributes, we leverage a config array that\n * includes allowed keys in a desired order.\n *\n * itemAttributeConfig - A prop that comes from itemDisplay via useSettings() and is set in Quin retailer settings for returns.\n * In the absence of itemAttributeConfig, we use a default config DEFAULT_ITEM_ATTR_CONFIG.\n */\n const ITEM_ATTR_CONFIG = itemAttributeConfig ?? DEFAULT_ITEM_ATTR_CONFIG;\n\n const variantInfo = \"variantInfo\" in item && item.variantInfo;\n const hasVariantInfo = !!variantInfo;\n\n // We also need to set up a config array for the variant attributes as they have their own ordering logic.\n const VARIANT_ATTR_CONFIG = hasVariantInfo\n ? Object.entries(variantInfo)\n // First sort the variant entries\n .sort((a, b) => {\n const entriesLength = Object.entries(variantInfo).length;\n return (\n (a[1].optionPosition ?? entriesLength) -\n (b[1].optionPosition ?? entriesLength)\n );\n })\n // Next reduce the entries to an array of keys.\n .reduce((acc, variantEntry) => {\n acc.push(variantEntry[0]);\n return acc;\n }, [] as string[])\n : [];\n\n // We want to avoid the duplication of variant keys in the ITEM_ATTR_CONFIG.\n // Variant keys trump ITEM_ATTR_CONFIG keys, so we throw away duplicates from ITEM_ATTR_CONFIG.\n const REDUCED_ITEM_ATTR_CONFIG = ITEM_ATTR_CONFIG.reduce((acc, key) => {\n if (key && !VARIANT_ATTR_CONFIG.includes(key)) {\n acc.push(key);\n }\n return acc;\n }, [] as string[]);\n\n // Next we need to produce a final DISPLAY_ITEM_ATTR_CONFIG, spreading the VARIANT_ATTR_CONFIG into\n // the index of variantInfo in the REDUCED_ITEM_ATTR_CONFIG.\n const variantInfoIndex = REDUCED_ITEM_ATTR_CONFIG.indexOf(\"variantInfo\");\n const DISPLAY_ITEM_ATTR_CONFIG =\n variantInfoIndex >= 0\n ? [\n ...REDUCED_ITEM_ATTR_CONFIG.slice(0, variantInfoIndex),\n ...VARIANT_ATTR_CONFIG,\n ...REDUCED_ITEM_ATTR_CONFIG.slice(variantInfoIndex + 1),\n ]\n : [...REDUCED_ITEM_ATTR_CONFIG];\n\n // Finally, we begin the collection of attributes for display, by first producing slots\n // for each attribute to be placed. Empty slots will be removed at the end.\n const attributes = Array(DISPLAY_ITEM_ATTR_CONFIG.length);\n\n // QUANTITY\n const displayQuantity = selectedQuantity ? selectedQuantity : item.quantity;\n const hasQuantity = displayQuantity > 0;\n const quantityIndex = DISPLAY_ITEM_ATTR_CONFIG.indexOf(\"quantity\");\n const includeQuantity = hasQuantity && quantityIndex >= 0;\n if (includeQuantity) {\n attributes[quantityIndex] = {\n key: labels?.qtyLabel,\n value: displayQuantity,\n };\n }\n\n // VARIANT INFO\n // These booleans are used to track whether color or size are included via variant info.\n let colorIncludedInVariant = false;\n let sizeIncludedInVariant = false;\n\n // When checking whether to include the variantInfo, we need to check the REDUCED_ITEM_ATTR_CONFIG, and\n // not the DISPLAY_ITEM_ATTR_CONFIG, as the variantInfo has already been merged in\n if (hasVariantInfo && REDUCED_ITEM_ATTR_CONFIG.includes(\"variantInfo\")) {\n const variantInfoEntries = Object.entries(variantInfo);\n variantInfoEntries.forEach(([key, value]) => {\n const index = DISPLAY_ITEM_ATTR_CONFIG.indexOf(key);\n if (\n !exchangeTo?.exchangeForCredit &&\n exchangeTo?.variantInfo?.[key] &&\n exchangeTo?.variantInfo?.[key].value !== value.value\n ) {\n attributes[index] = {\n key: `${value.optionName ?? value.optionId}: `,\n transaction: {\n before: value.name ?? value.value,\n after:\n exchangeTo?.variantInfo?.[key]?.name ??\n exchangeTo?.variantInfo?.[key]?.value,\n },\n };\n } else {\n attributes[index] = {\n key: `${value.optionName ?? value.optionId}: `,\n value: value.name ?? value.value,\n };\n }\n\n // If color or size are included in the variant info, we track them in the provided booleans.\n if (key === \"color\") colorIncludedInVariant = true;\n if (key === \"size\") sizeIncludedInVariant = true;\n });\n }\n\n // COLOR IF NOT INCLUDED IN VARIANT INFO\n const colorIndex = DISPLAY_ITEM_ATTR_CONFIG.indexOf(\"color\");\n if (!colorIncludedInVariant && item.color && colorIndex >= 0) {\n attributes[colorIndex] = {\n key: labels?.colorLabel,\n value: item.color,\n };\n }\n\n // SIZE IF NOT INCLUDED IN VARIANT INFO\n const sizeIndex = DISPLAY_ITEM_ATTR_CONFIG.indexOf(\"size\");\n if (!sizeIncludedInVariant && item.size && sizeIndex >= 0) {\n attributes[sizeIndex] = {\n key: labels?.sizeLabel,\n value: item.size,\n };\n }\n\n // SKU\n const sku = exchangeTo?.sku ?? item.sku;\n const skuIndex = DISPLAY_ITEM_ATTR_CONFIG.indexOf(\"sku\");\n if (sku && skuIndex >= 0) {\n attributes[skuIndex] = {\n key: labels?.skuLabel,\n value: sku,\n };\n }\n\n // PRICE\n const priceIndex = DISPLAY_ITEM_ATTR_CONFIG.indexOf(\"price\");\n if (priceIndex >= 0) {\n if (typeof item.price?.value === \"number\") {\n let priceItem;\n if (\n !exchangeTo?.exchangeForCredit &&\n typeof exchangeTo?.price.value === \"number\" &&\n exchangeTo.price.value !== item.price.value\n ) {\n priceItem = {\n key: labels?.priceLabel,\n transaction: {\n before: (\n \n ),\n after: (\n \n ),\n },\n };\n } else if (\n \"discountedPrice\" in item &&\n typeof item.discountedPrice?.value === \"number\" &&\n item.price.value !== item.discountedPrice.value\n ) {\n priceItem = {\n key: labels?.priceLabel,\n transaction: {\n before: (\n \n ),\n after: (\n \n ),\n },\n };\n } else {\n priceItem = {\n key: labels?.priceLabel,\n value: (\n \n ),\n };\n }\n\n attributes[priceIndex] = priceItem;\n }\n }\n\n // ADDITIONAL ATTRIBUTES\n // additionalProperties are passed in via the item and need display.\n // NOTE: They will only be displayed if configured via itemDisplay.itemAttributeConfig in Quin.\n const additionalItemAttrs = getAdditionalItemAttrs(item.additionalProperties);\n\n if (additionalItemAttrs) {\n Object.keys(additionalItemAttrs).forEach((key) => {\n const index = DISPLAY_ITEM_ATTR_CONFIG.indexOf(key);\n if (index >= 0) {\n // To find the current additional attribute, we need to find the object with the attribute key that matches the current key.\n const thisAdditionalItemAttributeConfig =\n additionalItemAttributeConfig?.find((item) => item.attribute === key);\n\n // If there is a custom label in the this attribute config, we use it, otherwise we use the label from the additionalItemAttrs object which comes from the retailer.\n const label =\n thisAdditionalItemAttributeConfig?.value?.label ??\n additionalItemAttrs[key].label;\n\n // Then we create a key value pair for rendering the attribute. If configured, we transform the value using getTransformedAttribute.\n attributes[index] = {\n key: `${label}: `, // We add colon and space to the label.\n value: getTransformedAttribute(\n thisAdditionalItemAttributeConfig?.value?.transform ?? \"none\",\n {\n key,\n additionalItemAttrs,\n additionalItemAttributeConfig,\n includeCurrency,\n locale,\n },\n ),\n };\n }\n });\n }\n\n // Return the filtered attributes to remove any empty slots in the original attributes array.\n // Empty slots can occur if a given attributes doesn't pass a give check. e.g. quantity is 0\n return attributes.filter((n) => n != null);\n};\n\nexport const getItemProps = ({\n item,\n exchangeTo,\n}: {\n item: ExtendedOrderItem;\n exchangeTo?: ExchangeVariant;\n showTag?: boolean;\n}) => {\n const returnType: ReturnReasonsReturnType =\n exchangeTo && exchangeTo.exchangeForCredit\n ? \"exchangeForCredit\"\n : exchangeTo\n ? \"exchange\"\n : \"return\";\n const title =\n returnType === \"return\"\n ? item.name\n : (exchangeTo?.name ??\n exchangeTo?.variantInfo?.product?.name ??\n item.name);\n const thumbnail =\n returnType === \"exchange\"\n ? { old: item.imageUrl, new: exchangeTo?.imageUrl }\n : item.imageUrl;\n\n return {\n thumbnail,\n title,\n returnType,\n };\n};\n","import React from \"react\";\nimport { useTheme } from \"@material-ui/core/styles\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport RedoIcon from \"@material-ui/icons/Redo\";\nimport LoopIcon from \"@material-ui/icons/Loop\";\nimport Image from \"material-ui-image\";\n\nimport { makeRootStyles } from \"../../../theme/styles\";\nimport ItemThumbnail from \"../Item/ItemThumbnail\";\nimport StoreCredit from \"../../../../shared/components/icons/StoreCredit\";\n\nexport const useStyles = makeRootStyles(\n (theme) => ({\n root: {\n position: \"relative\",\n },\n prevImageContainer: {\n position: \"absolute\",\n left: 0,\n top: 0,\n zIndex: 1,\n transform: `translate(-${theme.spacing(1)}px, -${theme.spacing(1)}px)`,\n },\n prevImageUsingIcon: {\n width: theme.spacing(8),\n height: theme.spacing(8),\n backgroundColor: theme.palette.common.white,\n },\n icon: {\n pointerEvents: \"none\",\n position: \"absolute\",\n top: 0,\n right: 0,\n transform: `translate(50%, 50%)`,\n backgroundColor: theme.palette.common.white,\n },\n }),\n { name: \"N0ExchangeItemThumbnail\" },\n);\n\nfunction ExchangeItemThumbnail({\n className,\n imageAltTxt,\n imageStyle,\n imageUrl,\n prevImageAltTxt,\n prevImageUrl,\n storeCredit,\n size = \"medium\",\n}) {\n const classes = useStyles();\n const theme = useTheme();\n const sizeMapping = {\n small: theme.spacing(6),\n medium: theme.spacing(8),\n large: theme.spacing(10),\n };\n const width = sizeMapping[size];\n const height = sizeMapping[size];\n\n return (\n
\n
\n {/* conner small image */}\n {storeCredit ? (\n \n ) : (\n \n )}\n {/* conner icon */}\n \n {storeCredit ? (\n \n ) : (\n \n )}\n \n
\n {/* main image thumbnail */}\n \n
\n );\n}\nexport default ExchangeItemThumbnail;\n","import { FileChecksum } from \"@rails/activestorage/src/file_checksum\";\nimport { BlobUpload } from \"@rails/activestorage/src/blob_upload\";\n\nexport function calculateChecksum(file) {\n return new Promise((resolve, reject) => {\n FileChecksum.create(file, (error, checksum) => {\n if (error) {\n reject(error);\n return;\n }\n\n resolve(checksum);\n });\n });\n}\n\nexport const getFileMetadata = (file) => {\n return new Promise((resolve) => {\n calculateChecksum(file).then((checksum) => {\n resolve({\n checksum,\n filename: file.name,\n content_type: file.type,\n byte_size: file.size,\n });\n });\n });\n};\n\nexport const directUpload = (url, headers, file) => {\n const upload = new BlobUpload({ file, directUploadData: { url, headers } });\n\n return new Promise((resolve, reject) => {\n upload.create((error, response) => {\n if (error) {\n reject(error);\n } else {\n resolve(response);\n }\n });\n });\n};\n","import { useCallback, useMemo, useState } from \"react\";\nimport { useApolloClient, gql } from \"@apollo/client\";\nimport keyBy from \"lodash/keyBy\";\nimport get from \"lodash/get\";\n\nimport locale from \"../../shared/modules/lang\";\nimport { config } from \"../config\";\nimport errorNotifier from \"../../shared/modules/error-notifier\";\nimport { memoObjectByKeyValues } from \"../../shared/modules/object\";\n\nconst { isGiftZipEnabled, isInAppLabelEnabled } = config;\n\nconst RETURN_HISTORY_DATA = gql`\n fragment ReturnHistoryData on Return {\n id\n cancellable\n carrierTrackingNumber\n currentStatus\n returnItems {\n itemName\n quantity\n itemId\n returnReason\n returnReasonCode\n childReturnReasonCode\n }\n returnMethod\n returnStatusUpdatedAt\n ${isInAppLabelEnabled ? `qrCodeUrl returnLabel` : \"\"}\n refundMethod\n reshopRefundId\n returnShipments {\n letter\n returnTrackingLink\n }\n }\n`;\n\nfunction buildOrderDataQuery({ orderNumber, email, giftField, isGift, csid }) {\n const giftFieldParam = (() => {\n if (isGift) {\n return isGiftZipEnabled\n ? `, zipcode: \"${giftField}\"`\n : `, giftCode: \"${giftField}\"`;\n }\n return \"\";\n })();\n\n // prettier-ignore\n return gql`\n ${RETURN_HISTORY_DATA}\n query GetOrderData {\n order(orderNumber: \"${orderNumber}\", email: \"${email}\", guestReturn: ${isGift}${giftFieldParam}${locale ? `, locale: \"${locale}\"` : \"\"}${csid ? `, csid: \"${csid}\"` : \"\"}) {\n shopifyOrderId\n orderNumber\n ${\n config.shopifyCollectiveEnabled\n ? 'orderLineItemGroupings { slug, displayName, behaviors, lineItemIds }'\n : ''\n }\n billingZip\n billingProvince\n billingProvinceCode\n billingCountryCode\n fromFirstName\n fromLastName\n fromAddress1\n fromAddress2\n fromCity\n fromZip\n fromProvince\n fromProvinceCode\n fromCountryCode\n eligible\n ineligibleDisplayText\n presentmentCurrency\n presentmentCurrencySubunitToUnit\n presentmentCurrencyEstimatedUsdConversionRate\n guestLoginEmail\n items {\n id\n productId\n variantId\n name\n productTitle\n productImageUrl\n productImageAltTxt\n variantInfo {\n name\n value\n }\n priceAmount\n displayPrice\n hideDisplayPrice\n compareAtPriceAmount\n displayCompareAtPrice\n orderedQuantity\n returnableQuantity\n removedQuantity\n sku\n eligibilityCriteria {\n reasonType\n returnReason\n ineligibleReason\n ineligibleClaimReason\n eligible\n ineligibleReasonForReturn\n ineligibleReasonForExchange\n isEligibleForClaim\n }\n hasClaimProtection\n }\n }\n returnHistory(orderNumber: \"${orderNumber}\", email: \"${email}\") {\n ...ReturnHistoryData\n }\n returnReasons${locale ? `(locale: \"${locale}\")` : \"\"} {\n id\n reasonTitle: translatedReason\n parentId\n priority\n randomize\n enableCustomerPictures\n requireCustomerPictures\n isCommentMandatory\n claimType\n attestation\n }\n }\n`;\n}\n\nexport function useOrderData() {\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 const showNonRemoved = (item) =>\n item.orderedQuantity !== item.removedQuantity;\n\n const mappedData = useMemo(() => {\n if (data) {\n const returnReasonsById = keyBy(data.returnReasons, \"id\");\n const items = get(data, \"order.items\", [])\n .filter(showNonRemoved)\n .map((item) => ({\n ...item,\n eligibilityCriteria: item.eligibilityCriteria.map((c) => {\n const reason = returnReasonsById[c.returnReason];\n return {\n ...c,\n returnReasonTitle:\n (reason && reason.reasonTitle) || c.returnReason,\n returnReasonParent: (reason && reason.parentId) || null,\n isClaim: !!reason?.claimType, // TODO: check with backend\n attestationText: reason?.attestationText, // TODO: check with backend\n };\n }),\n someReasonsEligible: item.eligibilityCriteria\n .map((reason) => reason.eligible)\n .some((flag) => flag === true),\n allowReturn: item.eligibilityCriteria.some(\n (c) => !c.ineligibleReasonForReturn,\n ),\n allowExchange: item.eligibilityCriteria.some(\n (c) => !c.ineligibleReasonForExchange,\n ),\n allowClaim: item.eligibilityCriteria.some(\n (c) => c.isEligibleForClaim,\n ),\n }));\n\n const itemsById = keyBy(items, \"id\");\n\n return {\n ...data,\n returnReasonsById,\n order: {\n ...data.order,\n items,\n itemsById,\n },\n };\n }\n }, [data]);\n\n const state = memoObjectByKeyValues({\n called,\n error,\n loading,\n data: mappedData,\n });\n\n const clearOrderData = useCallback(function clearOrderData() {\n setCalled(false);\n setData();\n setError(null);\n setLoading(false);\n }, []);\n\n const getOrderData = useCallback(\n function getOrderData({ orderNumber, email, giftField, isGift, csid }) {\n async function getOrderDataAsync({\n orderNumber,\n email,\n giftField,\n isGift,\n csid,\n }) {\n try {\n setCalled(true);\n setLoading(true);\n\n const { error, data } = await client.query({\n query: buildOrderDataQuery({\n orderNumber,\n email,\n giftField,\n isGift,\n csid,\n }),\n fetchPolicy: \"network-only\",\n });\n\n if (error) {\n setError(error);\n } else {\n // log debugging information for rollbar\n const { shopUrl, shopName, host, shid } = config;\n console.log(\"consumer order:\", {\n orderNumber,\n email,\n giftField,\n isGift,\n shopUrl,\n shopName,\n host,\n });\n errorNotifier.setUser({\n id: shid,\n shopUrl,\n orderEmail: email,\n orderNumber,\n });\n\n setData(data);\n setError(null);\n }\n } catch (err) {\n setError(err);\n } finally {\n setLoading(false);\n setCalled(false);\n }\n }\n\n getOrderDataAsync({ orderNumber, email, giftField, isGift, csid });\n },\n [client],\n );\n\n const actions = useMemo(\n () => ({\n clearOrderData,\n getOrderData,\n }),\n [clearOrderData, getOrderData],\n );\n\n return useMemo(() => ({ actions, state }), [actions, state]);\n}\n","import React, {\n createContext,\n useContext,\n useEffect,\n useMemo,\n useReducer,\n} from \"react\";\nimport { mergeIgnoreNil } from \"../../shared/modules/object\";\nimport {\n compose,\n toPairs,\n map,\n fromPairs,\n get,\n set,\n isNil,\n unset,\n} from \"lodash/fp\";\nimport { useOrderData } from \"../data/orderData\";\nimport { config } from \"../config\";\n\nexport const ORDER_LOOKUP_STEP = \"order lookup step\";\nexport const CHOOSE_ITEMS_STEP = \"choose items\";\nexport const CHOOSE_METHOD_STEP = \"choose method\";\nexport const CHOOSE_METHOD_SUBSTEP = \"choose method substep\";\nexport const CONFIRM_MAILING_ADDRESS_STEP = \"confirm mailing address step\";\nexport const CHOOSE_SHOP_NOW_STEP = \"choose shop now step\";\nexport const CHOOSE_RETURN_CREDIT_METHOD_STEP =\n \"choose return method credit step\";\nexport const REVIEW_STEP = \"review step\";\nexport const CONFIRMATION_STEP = \"confirmation step\";\n\nconst STEPS = [\n ORDER_LOOKUP_STEP,\n CHOOSE_ITEMS_STEP,\n CHOOSE_METHOD_STEP,\n CHOOSE_METHOD_SUBSTEP,\n CONFIRM_MAILING_ADDRESS_STEP,\n CHOOSE_SHOP_NOW_STEP,\n CHOOSE_RETURN_CREDIT_METHOD_STEP,\n REVIEW_STEP,\n CONFIRMATION_STEP,\n];\n\nexport const getStepIndex = (step) => STEPS.indexOf(step);\nexport const isReturnStepActive = (step, state) =>\n state?.currentStepIndex === getStepIndex(step);\n\nexport const useReturnStepIsActive = (step) => {\n const state = useContext(ReturnStepsState);\n return isReturnStepActive(step, state);\n};\n\nexport const ACTIONS = {\n clearAll: \"returnSteps@clearAll\",\n setSelectingItem: \"returnSteps@setSelectingItem\",\n setSelectedItems: \"returnSteps@setSelectedItems\",\n setKeepItemIds: \"returnSteps@setKeepItemIds\",\n setEmail: \"returnSteps@setEmail\",\n setGuestEmail: \"returnSteps@setGuestEmail\",\n setReturnMethod: \"returnSteps@setReturnMethod\",\n setRequestedLabelCount: \"returnSteps@setRequestedLabelCount\",\n setStoreLocation: \"returnSteps@setStoreLocation\",\n setOrderNumber: \"returnSteps@setOrderNumber\",\n setSubmitSuccess: \"returnSteps@setSubmitSuccess\",\n goToStep: \"returnSteps@goToStep\",\n setConfirmedMailingAddress: \"returnSteps@setConfirmedMailingAddress\",\n setReturnCreditMethod: \"returnSteps@setReturnCreditMethod\",\n setAvailableReturnCreditMethods:\n \"returnSteps@setAvailableReturnCreditMethods\",\n setFallbackReturnCreditMethod: \"returnSteps@setFallbackReturnCreditMethod\",\n setIsGuestReturn: \"returnSteps@setIsGuestReturn\",\n setGiftField: \"returnSteps@setGiftField\",\n setFromCountryCode: \"returnSteps@setFromCountryCode\",\n setCorrectedAddress: \"returnSteps@setCorrectedAddress\",\n setShopNowRedirect: \"returnSteps@setShopNowRedirect\",\n setSavePreferences: \"returnSteps@setSavePreferences\",\n setSubmitReturnResultCode: \"returnSteps@setSubmitReturnResultCode\",\n setLineItemInitialIntension: \"returnSteps@setLineItemInitialIntension\",\n confirmLineItemIntension: \"returnSteps@confirmLineItemIntension\",\n clearLineItemIntension: \"returnSteps@clearLineItemIntension\",\n setStepStatus: \"returnSteps@setStepStatus\",\n goBack: \"returnSteps@goBack\",\n setReshopOptions: \"returnSteps@setReshopOptions\",\n};\n\nconst nvo_urlParams = new URLSearchParams(window.location.search);\n\nconst giftField = nvo_urlParams.get(\"giftField\") || \"\";\nconst isGift = nvo_urlParams.get(\"isGift\") === \"true\";\nconst csid = nvo_urlParams.get(\"csid\");\nexport const initialState = {\n mode:\n config.isNthUi && nvo_urlParams.get(\"tracking_number\") !== null\n ? \"track\"\n : \"return\",\n stepStatus: {},\n currentStepIndex: 0,\n email: nvo_urlParams.get(\"email\") || \"\",\n decodedGuestEmail: nvo_urlParams.get(\"email\") || \"\",\n fromCountryCode: null,\n orderNumber: nvo_urlParams.get(\"order\") || \"\",\n giftField,\n selectingItem: null,\n items: [],\n keepItemIds: [],\n selectedReturnMethod: {},\n // The ID of the selected location\n // During return submit, we should only include if it is the id of a Shopify Location\n locationId: null,\n // Concierge location details\n location: {},\n requestedLabelCount: null,\n submitted: false,\n submitResult: null,\n refundTotal: undefined,\n fromAddress: {},\n guestReturn: isGift && !!giftField,\n selectedReturnCreditMethod: {},\n availableReturnCreditMethods: [],\n shopNowSession: {},\n savePreferences: config.isUserPreferencesEnabled, // pre-selected by default\n csid,\n homePickupInstructions: \"\",\n lineItemIntension: {},\n reshopOptions: {},\n};\n\nexport function reducer(state, { type, payload }) {\n switch (type) {\n case ACTIONS.clearAll:\n return initialState;\n\n case ACTIONS.setEmail:\n return { ...state, email: payload };\n\n case ACTIONS.setGuestEmail:\n return { ...state, decodedGuestEmail: state.email, email: payload };\n\n case ACTIONS.setOrderNumber:\n return { ...state, orderNumber: payload };\n\n case ACTIONS.setSelectingItem:\n return { ...state, selectingItem: payload };\n\n case ACTIONS.setSelectedItems:\n return {\n ...state,\n items: [...payload],\n // Reset step\n currentStepIndex: STEPS.indexOf(CHOOSE_ITEMS_STEP),\n keepItemIds: [],\n locationId: null,\n location: {},\n selectedReturnMethod: {},\n selectedReturnCreditMethod: {},\n availableReturnCreditMethods: [],\n submitted: false,\n };\n\n case ACTIONS.setKeepItemIds:\n return {\n ...state,\n keepItemIds: [...payload],\n };\n\n case ACTIONS.setStoreLocation: {\n const { carrier, ...details } = payload;\n const newLocation = {\n ...state,\n location: details,\n locationId: payload.id,\n // Reset step\n currentStepIndex: STEPS.indexOf(CHOOSE_METHOD_SUBSTEP),\n selectedReturnCreditMethod: {},\n availableReturnCreditMethods: [],\n submitted: false,\n };\n if (payload.carrier != \"in_store\") newLocation.locationId = null;\n return newLocation;\n }\n\n case ACTIONS.setReturnMethod:\n return {\n ...state,\n selectedReturnMethod: payload,\n qr: payload.qr,\n // Reset step\n currentStepIndex: STEPS.indexOf(CHOOSE_METHOD_STEP),\n locationId: null,\n location: {},\n selectedReturnCreditMethod: {},\n submitted: false,\n };\n\n case ACTIONS.setRequestedLabelCount:\n return {\n ...state,\n requestedLabelCount: payload,\n // Reset step\n currentStepIndex: STEPS.indexOf(CHOOSE_METHOD_STEP),\n locationId: null,\n location: {},\n selectedReturnCreditMethod: {},\n availableReturnCreditMethods: [],\n submitted: false,\n };\n\n case ACTIONS.setSubmitSuccess:\n return {\n ...state,\n submitted: true,\n submitResult: payload.submitResult,\n refundTotal: payload.refundTotal,\n // Reset step\n currentStepIndex: STEPS.indexOf(REVIEW_STEP),\n };\n\n case ACTIONS.goToStep:\n return {\n ...state,\n currentStepIndex: STEPS.indexOf(payload),\n };\n\n case ACTIONS.setConfirmedMailingAddress: {\n const { homePickupInstructions, ...fromAddress } = payload || {};\n\n return mergeIgnoreNil(state, {\n fromAddress,\n homePickupInstructions,\n // Reset step\n currentStepIndex: STEPS.indexOf(CONFIRM_MAILING_ADDRESS_STEP),\n });\n }\n\n case ACTIONS.setIsGuestReturn:\n return {\n ...state,\n guestReturn: payload,\n };\n\n case ACTIONS.setGiftField:\n return {\n ...state,\n giftField: payload,\n };\n\n case ACTIONS.setFromCountryCode:\n return {\n ...state,\n fromCountryCode: payload,\n };\n\n case ACTIONS.setReturnCreditMethod:\n return {\n ...state,\n selectedReturnCreditMethod: payload,\n currentStepIndex: STEPS.indexOf(CHOOSE_RETURN_CREDIT_METHOD_STEP),\n };\n\n case ACTIONS.setAvailableReturnCreditMethods:\n return {\n ...state,\n availableReturnCreditMethods: payload,\n };\n\n case ACTIONS.setFallbackReturnCreditMethod:\n return {\n ...state,\n selectedReturnCreditMethod: payload,\n };\n\n case ACTIONS.setCorrectedAddress:\n return {\n ...state,\n fromAddress: payload,\n };\n\n case ACTIONS.setShopNowRedirect:\n return {\n ...state,\n shopNowSession: {\n redirectingToShop: payload,\n },\n currentStepIndex: STEPS.indexOf(CHOOSE_SHOP_NOW_STEP),\n // Reset step\n selectedReturnCreditMethod: {},\n availableReturnCreditMethods: [],\n submitted: false,\n };\n\n case ACTIONS.setSavePreferences:\n return {\n ...state,\n savePreferences: payload,\n };\n\n case ACTIONS.setReshopOptions:\n return {\n ...state,\n reshopOptions: {\n ...payload,\n customerPhone: payload.customerPhone?.replace(/[-()]/g, \"\"),\n },\n };\n\n case ACTIONS.setSubmitReturnResultCode:\n return {\n ...state,\n submitReturnResultCode: payload,\n };\n\n case ACTIONS.setLineItemInitialIntension: {\n const { lineItemId, localId, type, exchangeEnabled } = payload;\n if (isNil(lineItemId) || isNil(localId)) return state;\n\n const updates = set(\n [lineItemId, localId],\n {\n initial: type,\n exchangeEnabled,\n },\n state.lineItemIntension,\n );\n return {\n ...state,\n lineItemIntension: updates,\n };\n }\n\n case ACTIONS.confirmLineItemIntension: {\n const { lineItemId, localId, type } = payload;\n if (isNil(lineItemId) || isNil(localId)) return state;\n\n const intension = get([lineItemId, localId], state.lineItemIntension);\n if (!intension || type === intension.initial) return state;\n\n const updates = set(\n [lineItemId, localId, \"changedTo\"],\n type,\n state.lineItemIntension,\n );\n return {\n ...state,\n lineItemIntension: updates,\n };\n }\n\n case ACTIONS.clearLineItemIntension: {\n const { lineItemId, localId } = payload;\n if (isNil(lineItemId) || isNil(localId)) return state;\n\n const updates = unset([lineItemId, localId], state.lineItemIntension);\n return {\n ...state,\n lineItemIntension: updates,\n };\n }\n\n case ACTIONS.setStepStatus: {\n const { step, ...status } = payload;\n\n return set(\n [\"stepStatus\", step],\n {\n ...state.stepStatus[step],\n ...status,\n },\n state,\n );\n }\n\n case ACTIONS.goBack: {\n let index = state.currentStepIndex;\n\n for (let i = index - 1; i >= 0; i--) {\n let step = STEPS[i];\n if (!state.stepStatus[step]?.skipped) {\n index = i;\n break;\n }\n }\n\n if (index === state.currentStepIndex) {\n return state;\n } else {\n return {\n ...state,\n currentStepIndex: index,\n };\n }\n }\n\n default:\n return state;\n }\n}\n\nexport const ReturnStepsState = createContext();\nexport const ReturnStepsActions = createContext();\nexport const OrderFetchData = createContext();\n\nexport const buildInitialState = () => initialState;\n\nfunction useReturnSteps(initialState) {\n const [state, dispatch] = useReducer(reducer, initialState);\n\n const actions = useMemo(() => {\n const ret = compose(\n fromPairs,\n map(([key, type]) => {\n const dispatcher = function (payload) {\n dispatch({ type, payload });\n };\n dispatcher.displayName = key;\n return [key, dispatcher];\n }),\n toPairs,\n )(ACTIONS);\n\n return ret;\n }, [dispatch]);\n\n return useMemo(\n () => ({\n actions,\n state,\n }),\n [actions, state],\n );\n}\n\nfunction ReturnStepsProvider({ children, initialState }) {\n const { state, actions } = useReturnSteps(initialState);\n const orderFetch = useOrderData();\n\n return (\n \n \n \n {children}\n \n \n \n );\n}\n\nexport default ReturnStepsProvider;\n\nexport function useReturnStepsActions() {\n return useContext(ReturnStepsActions);\n}\n\nexport function useReturnStepsState() {\n return useContext(ReturnStepsState);\n}\n\nexport function useOrderFetchData() {\n return useContext(OrderFetchData);\n}\n\nexport const useRegisterStepStatus = (step, { skipped } = {}) => {\n const actions = useContext(ReturnStepsActions);\n useEffect(() => actions.setStepStatus({ step, skipped }), [step, skipped]);\n};\n","import { useMemo } from \"react\";\nimport errorNotifier from \"../../shared/modules/error-notifier\";\nimport localeFromUrl from \"../../shared/modules/lang\";\nimport { memoObjectByKeyValues } from \"../../shared/modules/object\";\nimport { config } from \"../config\";\nimport { useOrderFetchData } from \"../contexts/returnSteps\";\n\nconst useConsumerSettings = () => {\n const fetchData = useOrderFetchData();\n const order = fetchData.state.data?.order;\n const country = order?.fromCountryCode || order?.billingCountryCode || \"US\";\n const locale = localeFromUrl || \"en\";\n const language = useMemo(() => {\n // Try to parse the locale language from the URL parameter to make sure it\n // is a valid locale to be used in Intl.NumberFormat which used in nth\n // Currency component. (SHOPZ-2218)\n try {\n try {\n return new Intl.Locale(locale.replace(/[^a-zA-Z]/g, \"-\")).language;\n } catch (err) {\n const fallback = locale.replace(/[^a-zA-Z].*/, \"\");\n console.warn(`Invalid locale: \"${locale}\", fallback to \"${fallback}\"`);\n return new Intl.Locale(fallback).language;\n }\n } catch (err) {\n // There are less browsers support Intl.Locale comparing to\n // Intl.NumberFormat. We saw Safari 13 would throw an error for \"de\".\n // In here, we try to find 2 alphabetic characters that can represent a\n // locale, otherwise fallback to English.\n // https://app.rollbar.com/a/narvar/fix/item/ShopifyZero/25381/occurrence/391020744460#detail\n // https://caniuse.com/mdn-javascript_builtins_intl_numberformat_format\n // https://caniuse.com/mdn-javascript_builtins_intl_locale\n const fallback = /^[a-z]{2,2}$/i.test(locale.split(/[^a-z]/i)[0])\n ? locale.substring(0, 2)\n : \"en\";\n console.warn(\n `Unsupported locale: \"${locale}\", fallback to \"${fallback}\"`,\n );\n err.message = \"Cannot parse locale again\";\n errorNotifier.warn(err, { country, locale, fallback });\n return \"en\";\n }\n }, [locale]);\n const localeFull = `${language}_${country}`;\n const { isIncludeCurrency } = config;\n\n return memoObjectByKeyValues({\n locale, // Shopify locale, it might include country code\n country,\n language,\n localeFull, // locale format used in nth components, e.g. en_CA, fr_CA\n includeCurrency: isIncludeCurrency,\n });\n};\n\nexport default useConsumerSettings;\n","import { useMemo } from \"react\";\nimport {\n useOrderFetchData,\n useReturnStepsState,\n} from \"../contexts/returnSteps\";\n\nconst useCustomer = () => {\n const state = useReturnStepsState();\n const fetchData = useOrderFetchData();\n const order = fetchData.state.data?.order;\n const displayEmail = state.guestReturn\n ? state.decodedGuestEmail\n : state.email;\n const customer = useMemo(\n () =>\n order\n ? {\n firstName: order.fromFirstName,\n lastName: order.fromLastName,\n fullName: `${order.fromFirstName} ${order.fromLastName}`,\n email: displayEmail,\n }\n : undefined,\n [order, displayEmail],\n );\n\n return customer;\n};\n\nexport default useCustomer;\n","import { useMemo, useEffect } from \"react\";\nimport { useQuery, gql } from \"@apollo/client\";\nimport {\n compose,\n filter,\n groupBy,\n mapValues,\n pick,\n set,\n map,\n first,\n pickBy,\n} from \"lodash/fp\";\nimport { config } from \"../config\";\nimport errorNotifier from \"../../shared/modules/error-notifier\";\nimport { useRequestStatus } from \"../../shared/modules/hooks\";\nimport { memoObjectByKeyValues } from \"../../shared/modules/object\";\n\nexport const EVEN_EXCHANGE_PRODUCT = gql`\n query EvenExchangeProduct(\n $query: String!\n $productId: String!\n $variantId: String\n $compareAtPrice: Float\n $price: Float!\n $currency: String!\n $locale: String\n $countryCode: String\n $showProduct: Boolean\n ) {\n evenExchangeProduct(\n query: $query\n productId: $productId\n variantId: $variantId\n compareAtPrice: $compareAtPrice\n price: $price\n currency: $currency\n locale: $locale\n countryCode: $countryCode\n showProduct: $showProduct\n )\n @connection(\n key: \"evenExchangeProduct\"\n filter: [\"query\", \"productId\", \"variantId\", \"price\"]\n ) {\n id\n name\n productImageUrl\n productImageAltTxt\n options {\n name\n position\n values\n }\n variantInfo {\n productId\n variantId\n displayName\n sku\n imageSrc\n imageAlt\n availableForSale\n availabilityStatus\n option0\n option1\n option2\n option3\n priceAmount\n priceCurrency\n priceFormatted\n }\n }\n }\n`;\n\nconst useEvenExchangeProduct = ({ displayPrice, ...variables }) => {\n const { query, productId, variantId, price } = variables;\n const skip = !query || !productId || !variantId || typeof price !== \"number\"; // skip gql query when required fields are not provided\n const state = useQuery(EVEN_EXCHANGE_PRODUCT, {\n skip,\n variables,\n });\n const data = state.data;\n\n const result = useMemo(() => {\n if (!data || !data.evenExchangeProduct) return;\n\n const { evenExchangeProduct } = data;\n let variantInfo = evenExchangeProduct.variantInfo;\n let options = evenExchangeProduct.options ?? [];\n\n if (\n config.isShopNowWithCreditEnabled &&\n variantInfo.length === 1 &&\n !options.length\n ) {\n const name = variantInfo[0].displayName;\n variantInfo = variantInfo.map(set(\"option0\", name));\n options = [\n {\n name: \"Product\",\n position: 0,\n values: [name],\n },\n ];\n }\n\n // ignore the latest price when it is an available option of even exchange,\n // show the original item price instead\n if (!config.isUnevenExchangesEnabled) {\n variantInfo = variantInfo.map((v) => ({\n ...v,\n priceAmount: price,\n priceFormatted: displayPrice,\n }));\n }\n\n // [SHOPZ-2423] for each pair of options, if there are options collisions\n // between variants (two variants have the same size and color), we should\n // pick the first available variant and log it in rollbar, because it can be\n // a store setting issue or ProductSearchPostprocessor bug.\n const getVariantOptionsKey = (v) =>\n Object.values(pick([\"option0\", \"option1\", \"option2\", \"option3\"], v)).join(\n \"-\",\n );\n const groupedVariantInfo = compose(\n mapValues((variants) => {\n const available = filter([\"availableForSale\", true], variants);\n return available.length > 0 ? available : variants;\n }),\n groupBy(getVariantOptionsKey),\n )(variantInfo);\n const someVariantsCollided = Object.values(groupedVariantInfo).some(\n (v) => v.length > 1,\n );\n const variantsCollied = compose(\n mapValues(map(pick([\"displayName\", \"productId\", \"variantId\", \"sku\"]))),\n pickBy((variants) => variants.length > 1),\n )(groupedVariantInfo);\n\n variantInfo = compose(map(first), Object.values)(groupedVariantInfo);\n const someAvailable = variantInfo.some((v) => v.availableForSale);\n\n // always show the original product item as first option\n if (options[0]?.name === \"Product\") {\n const sortedValues = [...options[0].values].sort((a, b) =>\n a === query ? -1 : b === query ? 1 : 0,\n );\n options = set([0, \"values\"], sortedValues, options);\n }\n\n return {\n ...evenExchangeProduct,\n options,\n variantInfo,\n someAvailable,\n someVariantsCollided,\n variantsCollied,\n };\n }, [data, query, price, displayPrice]);\n\n useEffect(() => {\n if (result?.someVariantsCollided) {\n console.warn(\n \"Options collision found in exchange variants. It can be caused by incorrect store settings or a bug in ProductSearchPostprocessor\",\n );\n errorNotifier.warn(\n \"exchanges: options collision found in exchange variants\",\n { item: variables, variantsCollied: result.variantsCollied },\n );\n }\n }, [result?.someVariantsCollided]);\n\n const status = useRequestStatus(state);\n\n return memoObjectByKeyValues({\n result,\n status,\n });\n};\n\nexport default useEvenExchangeProduct;\n","import React from \"react\";\nimport { useLanguage } from \"@narvar/nth-kit-returns-headless\";\nimport StyledMarkup from \"../StyledMarkup\";\nimport { LanguageType } from \"@narvar/nth-kit-returns-headless\";\n\nconst Language = ({\n langKey,\n replacementTokens = [],\n defaultString,\n noWrap,\n style,\n tagName,\n attributes,\n}: LanguageType) => {\n const { value } = useLanguage({\n langKey,\n replacementTokens,\n defaultString,\n });\n\n return (\n \n );\n};\n\nexport default Language;\n","import { makeRootStyles } from \"../../../theme/styles\";\n\nconst useStyles = makeRootStyles(\n {\n \"@keyframes spinAnimation\": {\n \"0%\": {\n transform: \"rotate(0deg)\",\n },\n \"100%\": {\n transform: \"rotate(360deg)\",\n },\n },\n spinner: {\n animationDuration: \"1s\",\n animationName: \"$spinAnimation\",\n animationIterationCount: \"infinite\",\n animationTimingFunction: \"linear\",\n },\n },\n {\n name: \"N0Spinner\",\n },\n);\n\nexport { useStyles };\n","import React from \"react\";\nimport { useStyles } from \"./SpinnerStyles\";\n\nconst Spinner = ({ width = 16 }: { width?: number }) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const styles: any = useStyles();\n return (\n \n \n \n );\n};\n\nexport default Spinner;\n","import { DayOfWeek, OpeningHours } from \"@narvar/nth-kit-returns-headless\";\n\nconst dayMap: { [e: string]: string } = {\n MONDAY: \"Mon\",\n TUESDAY: \"Tue\",\n WEDNESDAY: \"Wed\",\n THURSDAY: \"Thur\",\n FRIDAY: \"Fri\",\n SATURDAY: \"Sat\",\n SUNDAY: \"Sun\",\n};\n\n// Convert to 12 hour clock\n// 0900 => 9am; 1830 => 6:30pm\nconst amPmTime = (time: string) => {\n const hours = +time.substring(0, 2);\n const minutesString = time.substring(2, 4);\n if (minutesString === \"00\") {\n return hours >= 12\n ? `${hours === 12 ? hours : hours - 12}pm`\n : `${hours}am`;\n }\n return [\n hours > 12 ? `${hours - 12}` : hours,\n hours >= 12 ? `:${minutesString}pm` : `:${minutesString}am`,\n ].join(\"\");\n};\n\n// Check if we match 24 hour clock with dash separator\n// 0900-1800 = true; Closed = false;\nconst timeConversion = (hours: string) =>\n hours.match(/\\d{4}-\\d{4}/) ? hours.split(\"-\").map(amPmTime).join(\"-\") : hours;\n\n// Returns the boundaries of a group of days with shortened day mapping & hour conversion\n// {0900-1800: ['MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY']} => Mon-Thurs 9am-6pm\nconst compressDayGroups = ([timeSpan, days]: [string, DayOfWeek[]]) => {\n const hours = timeConversion(timeSpan);\n if (days.length > 2) {\n return `${dayMap[days[0]]} - ${dayMap[days[days.length - 1]]} ${hours}`;\n }\n if (days.length === 2) {\n return `${dayMap[days[0]]} & ${dayMap[days[days.length - 1]]} ${hours}`;\n }\n if (days.length === 1) {\n return `${dayMap[days[0]]} ${hours}`;\n }\n return undefined;\n};\n\n// Group by matching time then days that match that time\n// {0900-1800: ['MONDAY', 'TUESDAY', 'WEDNESDAY'], CLOSED: ['SATURDAY']}\nconst hoursGrouping = (hours: OpeningHours[]) =>\n hours.reduce(\n (timeGroup, openingHours) => ({\n ...timeGroup,\n [openingHours.hours]: Object.hasOwn(timeGroup, openingHours.hours)\n ? [...timeGroup[openingHours.hours], openingHours.day]\n : [openingHours.day],\n }),\n {} as { [e: string]: DayOfWeek[] },\n );\n\n// Runs all above on the OpeningHours[] type and joins into final string with ; seperator\nconst openingConversion = (hours: OpeningHours[]) =>\n Object.entries(hoursGrouping(hours)).map(compressDayGroups).join(\"; \");\n\nexport default openingConversion;\n","import { makeRootStyles } from \"../../../theme/styles\";\n\nconst useStyles = makeRootStyles(\n {\n locationItemIcon: {\n gridArea: \"Icon\",\n gridRow: \"1 / -1\",\n alignSelf: \"center\",\n maxWidth: \"40px\",\n display: \"grid\",\n gridAutoFlow: \"column\",\n gap: \"10px\",\n },\n locationItemTitle: {\n gridArea: \"Title\",\n fontWeight: 700,\n textAlign: \"left\",\n color: \"inherit\",\n },\n locationItemSubtitle: {\n gridArea: \"Subtitle\",\n alignSelf: \"start\",\n justifySelf: \"start\",\n textAlign: \"left\",\n color: \"inherit\",\n },\n locationItemHours: {\n gridArea: \"Details\",\n alignSelf: \"start\",\n justifySelf: \"start\",\n textAlign: \"left\",\n display: \"grid\",\n gridAutoFlow: \"column\",\n gap: \"10px\",\n },\n locationItemAddress: {\n gridArea: \"Address\",\n fontStyle: \"normal\",\n textAlign: \"left\",\n },\n locationItemDistance: {\n gridArea: \"Distance\",\n },\n },\n { name: \"N0LocationCard\" },\n);\n\nexport { useStyles };\n","import React, { FC } from \"react\";\nimport NthTextLink, {\n TextLinkProps,\n TextLinkTargetType,\n} from \"@narvar/nth-bit-text-link\";\nimport { useViewportConfig } from \"@narvar/nth-kit-returns-headless\";\n\nconst TextLink: FC<\n Omit & {\n target?: \"_self\" | \"_blank\" | TextLinkTargetType;\n stopPropagation?: boolean;\n }\n> = ({ href, target, stopPropagation, onClick, ...props }) => {\n const { externalLinkHandler } = useViewportConfig();\n const isExternal = !!href && !onClick;\n const t =\n target === \"_self\"\n ? TextLinkTargetType.SELF\n : target === \"_blank\"\n ? TextLinkTargetType.BLANK\n : target;\n\n const onClickHandler = isExternal\n ? (event: React.MouseEvent) => {\n event.preventDefault();\n if (stopPropagation) event.stopPropagation();\n\n if (externalLinkHandler) {\n externalLinkHandler({\n url: href ?? \"\",\n target: t,\n });\n } else {\n window.open(href ?? \"\", t);\n }\n }\n : onClick;\n\n return (\n \n );\n};\n\nexport default TextLink;\n","import React, { FC } from \"react\";\nimport { useTheme, withThemeProvider } from \"@narvar/nth-hook-theme\";\nimport Icon from \"../Icon\";\nimport openingConversion from \"../../transformers/timeFormatTranslation\";\nimport { useStyles } from \"./LocationCardStyles\";\nimport Language from \"../Language\";\nimport { LocationCardProps } from \"./types\";\nimport TextLink from \"../TextLink\";\nimport SelectItem from \"../SelectItem/SelectItem\";\nimport { Location } from \"@narvar/nth-kit-returns-headless\";\n\nconst DistanceItemC = ({ location }: { location: Location }) => {\n const { linksNoneDefault, linksNoneHover } = useTheme();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const styles: any = useStyles();\n const hasExactLocation =\n location.latitude && location.longitude && location.distance;\n\n if (!hasExactLocation && !location.address) return null;\n\n return (\n
\n \n {hasExactLocation && `${location?.distance?.value?.toFixed(1) ?? \"\"} `}\n \n \n
\n );\n};\n\nconst DistanceItem = withThemeProvider(DistanceItemC, {\n themeTokens: [\"linksNoneDefault\", \"linksNoneHover\"],\n});\n\nconst AddressItem = ({ location: { address } }: { location: Location }) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const styles: any = useStyles();\n if (!address) {\n return null;\n }\n return (\n
\n {[address.address1, address.address2, address.city, address.regionCode]\n .filter(Boolean)\n .join(\", \")}\n {` ${address.postalCode}`}\n
\n );\n};\n\nconst LocationCardC: FC = ({\n location,\n active,\n onValueChange,\n transparent,\n}) => {\n const { bodytextDefaultNone, headersSmallNone, panelcontainerNoneNone } =\n useTheme();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const styles: any = useStyles();\n\n const openingHoursDisplay =\n location.openingHoursDisplayString ||\n (location.openingHours ? openingConversion(location.openingHours) : \"\");\n return (\n onValueChange?.(location.id)}\n selected={active}\n transparent={transparent}\n readOnly={transparent}\n borderless={transparent}>\n {location.logoUrls?.length && (\n
\n \n
\n )}\n \n {location.displayName || location.storeName}\n \n {active && location.locationType && (\n
\n {location.locationType}\n
\n )}\n {active && }\n {active && openingHoursDisplay && (\n
\n \n {openingHoursDisplay}\n
\n )}\n \n \n );\n};\n\nexport default withThemeProvider(LocationCardC, {\n themeTokens: [\n \"documentbodyNoneNone\",\n \"bodytextDefaultNone\",\n \"headersSmallNone\",\n \"linksNoneDefault\",\n \"linksNoneHover\",\n \"panelcontainerNoneNone\",\n \"selecteditemNoneNone\",\n ],\n});\n","import { makeRootStyles } from \"../../../theme/styles\";\n\nconst useStyles = makeRootStyles(\n {\n imageContainer: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n height: \"150px\",\n width: \"150px\",\n position: \"relative\",\n \"@media screen and (max-width: 768px)\": {\n height: \"96px\",\n width: \"96px\",\n },\n },\n img: {\n width: \"100%\",\n height: \"100%\",\n },\n },\n { name: \"N0ItemImage\" },\n);\n\nexport { useStyles };\n","import React, { FC, CSSProperties, useState } from \"react\";\nimport Icon from \"../Icon\";\nimport { useStyles } from \"./ItemImageStyles\";\n\nconst ItemImage: FC<{\n src?: string | { old?: string | null; new?: string | null } | null;\n alt?: string;\n sDefault?: CSSProperties;\n sFallback?: CSSProperties;\n fit?: boolean;\n objectPosition?: CSSProperties[\"objectPosition\"];\n}> = ({ src, alt, sDefault, sFallback, fit, objectPosition }) => {\n const [usePlaceholder, setUsePlaceholder] = useState(false);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const styles: any = useStyles();\n\n if (usePlaceholder) {\n return (\n
\n \n
\n );\n }\n\n return (\n
\n {typeof src === \"string\" ? (\n setUsePlaceholder(true)}\n />\n ) : (\n <>\n setUsePlaceholder(true)}\n />\n \n
\n setUsePlaceholder(true)}\n />\n \n \n
\n
\n \n \n )}\n \n );\n};\n\nexport default ItemImage;\n","import { makeRootStyles } from \"../../../theme/styles\";\n\nconst useStyles = makeRootStyles(\n {\n tagRoot: {\n position: \"relative\",\n width: \"100%\",\n },\n tagContent: {\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"center\",\n position: \"absolute\",\n backgroundColor: \"#000000\",\n color: \"#ffffff\",\n padding: \"4px 8px\",\n fontSize: \"12px\",\n borderRadius: \"4px 0px 3px\",\n },\n },\n { name: \"N0Tag\" },\n);\n\nexport { useStyles };\n","import React, { FC } from \"react\";\nimport { useStyles } from \"./TagStyles\";\nimport { TagProps } from \"./types\";\n\nconst Tag: FC = ({ children, tagContent, anchor, s }) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const styles: any = useStyles();\n return (\n
\n {tagContent && (\n \n {tagContent}\n \n )}\n {children}\n
\n );\n};\n\nexport default Tag;\n","import { makeRootStyles } from \"../../../theme/styles\";\n\nconst useStyles = makeRootStyles(\n {\n itemInfo: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"4px\",\n padding: \"0px\",\n flex: 1,\n },\n itemInfoDetail: {\n display: \"flex\",\n alignItems: \"center\",\n gap: \"8px\",\n margin: 0,\n \"@media screen and (max-width: 768px)\": {\n fontSize: \"12px\",\n lineHeight: \"16px\",\n },\n },\n itemName: {\n margin: 0,\n padding: \"0 0 4px\",\n },\n },\n { name: \"N0ItemCard\" },\n);\n\nexport { useStyles };\n","import { makeRootStyles } from \"../../../theme/styles\";\n\nconst useStyles = makeRootStyles(\n {\n chipRoot: {\n display: \"inline-block\",\n width: \"fit-content\",\n padding: \"4px 8px\",\n borderRadius: \"999px\",\n },\n chipWrapper: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: \"8px\",\n },\n },\n { name: \"N0Chip\" },\n);\n\nexport { useStyles };\n","import React, { FC, ReactNode } from \"react\";\nimport { useStyles } from \"./ChipStyles\";\nimport { ChipProps } from \"./types\";\n\nconst computeBorderRadius = (rounded: ChipProps[\"rounded\"]) => {\n switch (rounded) {\n case \"small\":\n return 2;\n case \"medium\":\n return 4;\n case \"large\":\n return 8;\n case \"full\":\n return 999;\n default:\n return 0;\n }\n};\n\nconst Chip: FC<\n ChipProps & {\n icon?: ReactNode;\n action?: ReactNode;\n }\n> = ({\n color = \"#fff\",\n fill = \"#000\",\n rounded = \"full\",\n icon,\n action,\n children,\n ...props\n}) => {\n //eslint-disable-next-line @typescript-eslint/no-explicit-any\n const styles: any = useStyles();\n\n return (\n \n
\n {icon}\n {children}\n {action}\n
\n \n );\n};\n\nexport default Chip;\n","import { makeRootStyles } from \"../../../theme/styles\";\n\nconst useStyles = makeRootStyles(\n {\n tooltipContainer: {\n position: \"relative\",\n display: \"inline-block\",\n\n \"&:hover $tooltipText\": {\n visibility: \"visible\",\n opacity: 1,\n },\n },\n tooltipText: {\n visibility: \"hidden\",\n opacity: 0,\n transition: \"opacity 0.3s\",\n zIndex: 1500,\n position: \"absolute\",\n bottom: \"100%\", // Position above the element\n display: \"flex\",\n alignItems: \"flex-start\",\n alignContent: \"flex-start\",\n maxWidth: \"225px\",\n width: \"max-content\",\n padding: \"8px\",\n borderRadius: \"4px\",\n backgroundColor: \"#0e0e0e\",\n color: \"#fff\",\n boxShadow: \"0px 6px 16px 0px rgba(0, 0, 0, 0.12)\", // elevation 2\n },\n },\n { name: \"N0Tooltip\" },\n);\n\nexport { useStyles };\n","import React, { useState } from \"react\";\nimport { useStyles } from \"./TooltipStyles\";\nimport { TooltipProps } from \"./types\";\n\nconst Tooltip = ({ title, s, children }: TooltipProps) => {\n const [tooltipElId] = useState(\n `tooltip-${Math.random().toString(36).substring(2)}`,\n );\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const styles: any = useStyles();\n\n // Clicking the tooltip itself and its children should not treat as a click on\n // its parent. For example, if the tooltip is on a button, clicking a\n // hyperlink inside the tooltip should not trigger the button's click handler.\n const stopPropagation = (\n event:\n | React.MouseEvent\n | React.KeyboardEvent,\n ) => {\n event.stopPropagation();\n };\n\n return (\n
\n {children}\n \n {title}\n \n
\n );\n};\n\nexport default Tooltip;\n","import React, { FC } from \"react\";\nimport { useTheme, withThemeProvider } from \"@narvar/nth-hook-theme\";\nimport Icon from \"../Icon\";\nimport ItemImage from \"../ItemImage/ItemImage\";\nimport Language from \"../Language\";\nimport Tag from \"../Tag/Tag\";\nimport { useStyles } from \"./ItemCardStyles\";\nimport { ItemCardProps } from \"./types\";\nimport StyledMarkup from \"../StyledMarkup\";\nimport SelectItem from \"../SelectItem/SelectItem\";\nimport {\n ReturnReasonsReturnType,\n useReturnsConfig,\n} from \"@narvar/nth-kit-returns-headless\";\nimport Chip from \"../Chip/Chip\";\nimport Tooltip from \"../Tooltip/Tooltip\";\n\nconst typeKey: Record = {\n return: \"returnsItemListItemTagReturning\",\n exchange: \"returnsItemListItemTagExchanging\",\n exchangeForCredit: \"returnsItemListItemTagExchangingForCredit\",\n claim: \"returnsItemListItemTagClaiming\",\n};\n\nconst ItemCardC: FC = ({\n thumbnail,\n title,\n subtitle,\n attributes,\n additionalInfo,\n onClick,\n selected,\n disabled,\n clickable,\n sTag,\n sDefault,\n layout,\n borderless,\n returnType,\n hasShippingProtection,\n}) => {\n const { bodytextDefaultNone, headersMediumNone } = useTheme();\n const { fitItemThumbnail, fitItemThumbnailPosition } = useReturnsConfig();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const styles: any = useStyles();\n\n return (\n \n \n \n \n ) : null\n }\n s={{ fontFamily: bodytextDefaultNone?.fontFamily, zIndex: 10, ...sTag }}\n anchor={{ vertical: \"top\", horizontal: \"left\" }}>\n {\n if (clickable && onClick) {\n onClick();\n }\n }}\n customStyle={{\n display: \"flex\",\n alignItems: \"center\",\n gap: \"16px\",\n width: \"100%\",\n textAlign: layout && layout === \"vertical\" ? \"center\" : \"left\",\n flexDirection: layout && layout === \"vertical\" ? \"column\" : \"row\",\n ...(disabled ? { opacity: 0.5 } : {}),\n ...sDefault,\n }}\n selected={selected}\n readOnly={!clickable || disabled}\n borderless={borderless}>\n \n
\n {hasShippingProtection && (\n }\n action={\n \n }>\n \n \n }>\n \n \n )}\n

\n \n

\n {subtitle && (\n \n \n

\n )}\n {attributes?.map((attr, i) => (\n \n {attr.key}\n {attr.transaction ? (\n <>\n {attr.transaction.before}\n \n {attr.transaction.after}\n \n ) : (\n attr.value\n )}\n

\n ))}\n {additionalInfo && (\n \n \n

\n )}\n
\n \n \n );\n};\n\nexport const ItemCard = withThemeProvider(ItemCardC, {\n themeTokens: [\n \"bodytextDefaultNone\",\n \"captiontextDefaultNone\",\n \"headersMediumNone\",\n \"headersSmallNone\",\n ],\n});\n","import { makeRootStyles } from \"../../../theme/styles\";\n\nconst useStyles = makeRootStyles(\n {\n errorBanner: {\n border: \"1px solid #e02020\",\n borderRadius: \"4px\",\n background: \"#ffeded\",\n color: \"#000000\",\n boxSizing: \"border-box\",\n padding: \"16px\",\n textAlign: \"left\",\n fontSize: \"14px\",\n lineHeight: \"20px\",\n },\n },\n { name: \"N0ErrorBanner\" },\n);\n\nexport { useStyles };\n","import React, { FC, ReactNode } from \"react\";\nimport { useTheme, withThemeProvider } from \"@narvar/nth-hook-theme\";\nimport { useStyles } from \"./ErrorBannerStyles\";\n\nconst ErrorBannerC: FC<{ children: ReactNode }> = ({ children }) => {\n const { bodytextDefaultNone } = useTheme();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const styles: any = useStyles();\n return (\n \n {children}\n \n );\n};\n\nexport default withThemeProvider(ErrorBannerC, {\n themeTokens: [\"bodytextDefaultNone\"],\n});\n","// Following MUI z-index convention\n// https://mui.com/material-ui/customization/z-index/\nexport const zIndex = {\n Toolbar: 1000,\n Fab: 1050,\n AppBar: 1100,\n Drawer: 1200,\n Modal: 1300,\n Snackbar: 1400,\n Tooltip: 1500,\n};\n","import { makeRootStyles } from \"../../../theme/styles\";\n\nconst useStyles = makeRootStyles(\n {\n footerWrapper: {\n width: \"100%\",\n },\n footerWrapperNoPadding: {\n \"& footer > nav\": {\n padding: 0,\n },\n },\n absoluteContainer: {\n position: \"absolute\",\n },\n stickyContainer: {\n position: \"fixed\",\n },\n },\n { name: \"N0StickyFooter\" },\n);\n\nexport { useStyles };\n","import React, { FC, useEffect } from \"react\";\nimport clsx from \"clsx\";\nimport { useInView } from \"react-intersection-observer\";\n\nimport { withThemeProvider, useTheme } from \"@narvar/nth-hook-theme\";\nimport { zIndex } from \"../../consts/theme\";\nimport { StickyFooterProps } from \"./types\";\nimport { useStyles } from \"./StickyFooterStyles\";\nimport { useViewportConfig } from \"@narvar/nth-kit-returns-headless\";\n\nconst StickyFooter: FC = ({\n absolute,\n fixed,\n removePadding,\n onShow,\n children,\n}) => {\n const { panelcontainerNoneNone, documentbodyNoneNone } = useTheme();\n const viewportConfig = useViewportConfig();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const styles: any = useStyles();\n\n const { ref, inView } = useInView({\n threshold: 0,\n });\n const inline = inView && !fixed && !absolute;\n useEffect(() => {\n onShow?.({\n inView,\n display: inline ? \"inline\" : \"footer\",\n });\n }, [inView, inline, onShow]);\n\n const footerWrapperClasses = clsx({\n [styles.footerWrapper]: true,\n [styles.footerWrapperNoPadding]:\n removePadding === \"always\" ||\n (removePadding === \"inline\" && inline) ||\n (removePadding === \"footer\" && !inline),\n });\n\n const footerStyles = {\n zIndex: zIndex.AppBar,\n bottom: `${viewportConfig.anchor?.offsetBottom ?? 0}px`,\n left: `${viewportConfig.anchor?.offsetLeft ?? 0}px`,\n right: `${viewportConfig.anchor?.offsetRight ?? 0}px`,\n ...documentbodyNoneNone,\n backgroundColor: documentbodyNoneNone?.backgroundColor ?? \"#fff\",\n borderTopColor: panelcontainerNoneNone?.borderTopColor || \"#ccc\",\n borderTopWidth: panelcontainerNoneNone?.borderTopWidth || \"1px\",\n borderTopStyle: panelcontainerNoneNone?.borderTopStyle || \"solid\",\n };\n\n return (\n
\n {inline &&
{children}
}\n {absolute && (\n
\n {children}\n
\n )}\n {!inline && !absolute && (\n
\n {children}\n
\n )}\n
\n );\n};\n\nexport default withThemeProvider(StickyFooter, {\n themeTokens: [\"documentbodyNoneNone\", \"panelcontainerNoneNone\"],\n});\n","import { makeRootStyles } from \"../../../theme/styles\";\n\nconst useStyles = makeRootStyles(\n {\n backdropContainer: {\n position: \"fixed\",\n backgroundColor: \"rgba(255, 255, 255, 0.5)\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n },\n { name: \"N0Backdrop\" },\n);\n\nexport { useStyles };\n","import React, { FC, ReactNode, CSSProperties } from \"react\";\nimport { zIndex } from \"../../consts/theme\";\nimport { useStyles } from \"./BackdropStyles\";\nimport { useViewportConfig } from \"@narvar/nth-kit-returns-headless\";\n\ntype Props = {\n s?: CSSProperties;\n children: ReactNode;\n};\n\nconst Backdrop: FC = ({ s, children }) => {\n const viewportConfig = useViewportConfig();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const styles: any = useStyles();\n\n return (\n \n {children}\n \n );\n};\n\nexport default Backdrop;\n","import { makeRootStyles } from \"../../../theme/styles\";\n\nconst itemStyles = {\n flexGrow: 1,\n display: \"flex\",\n justifyContent: \"center\",\n};\n\nconst useStyles = makeRootStyles(\n {\n footer: {\n display: \"flex\",\n flexDirection: \"column\",\n width: \"100%\",\n },\n buttonWrapper: {\n display: \"flex\",\n width: \"100%\",\n padding: \"16px 24px\",\n columnGap: \"16px\",\n rowGap: \"8px\",\n boxSizing: \"border-box\",\n },\n item: itemStyles,\n leftItem: {\n ...itemStyles,\n justifyContent: \"end\",\n },\n rightItem: {\n ...itemStyles,\n justifyContent: \"start\",\n },\n divider: {\n margin: 0,\n width: \"100%\",\n borderStyle: \"none\",\n borderWidth: 0,\n },\n },\n { name: \"N0Footer\" },\n);\n\nexport { useStyles };\n","import React, { FC, isValidElement, forwardRef } from \"react\";\nimport { useTheme, withThemeProvider } from \"@narvar/nth-hook-theme\";\nimport { default as Button } from \"@narvar/nth-block-button\";\nimport {\n ButtonData,\n FooterButtonProps,\n FooterButtonType,\n FooterProps,\n} from \"./types\";\nimport { useStyles } from \"./FooterStyles\";\nimport { CommonEvent } from \"@narvar/nth-kit-returns-headless\";\n\nconst ButtonItem = ({\n button,\n onEvent,\n}: {\n button: FooterButtonProps;\n onEvent?: CommonEvent;\n}) => {\n if (isValidElement(button)) return button;\n\n const buttonData = button as ButtonData;\n\n const handleClick = () =>\n onEvent?.({ value: buttonData.type, area: \"navigation\", event: \"click\" });\n\n return (\n \n {buttonData.label ?? buttonData.type}\n \n );\n};\n\nconst ButtonRow: FC = ({ buttons, onEvent }) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const styles: any = useStyles();\n return (\n \n );\n};\n\nconst FooterC = forwardRef(\n (\n {\n children,\n buttons,\n onEvent,\n above,\n below,\n divider,\n progressiveStep,\n activeStep,\n },\n ref,\n ) => {\n const { panelcontainerNoneNone } = useTheme();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const styles: any = useStyles();\n\n const dividerThemeStyle = {\n borderTopColor: panelcontainerNoneNone?.borderTopColor ?? \"#ccc\",\n borderTopWidth: panelcontainerNoneNone?.borderTopWidth ?? \"1px\",\n borderTopStyle: panelcontainerNoneNone?.borderTopStyle ?? \"solid\",\n };\n\n const show = !progressiveStep || activeStep;\n return show ? (\n
\n {above}\n {divider && above && (\n
\n )}\n {children || }\n {divider && below && (\n
\n )}\n {below}\n
\n ) : null;\n },\n);\nFooterC.displayName = \"FooterC\";\n\nexport default withThemeProvider(FooterC, {\n themeTokens: [\n \"documentbodyNoneNone\",\n \"panelcontainerNoneNone\",\n \"buttonsPrimaryDefault\",\n \"buttonsPrimaryHover\",\n \"buttonsSecondaryDefault\",\n ],\n});\n","import React from \"react\";\nimport { useTheme, withThemeProvider } from \"@narvar/nth-hook-theme\";\nimport { Language } from \"../\";\nimport { LineItemsGroupProps } from \"./types\";\n\nconst LineItemsGroupC: React.FC = ({\n selectedGroup,\n itemsWereSelected,\n children,\n}) => {\n const { bodytextDefaultNone } = useTheme();\n\n return (\n <>\n {!selectedGroup && itemsWereSelected && (\n \n \n \n )}\n {children}\n \n );\n};\n\nexport const LineItemsGroup = withThemeProvider(LineItemsGroupC, {\n themeTokens: [\"bodytextDefaultNone\"],\n});\n","import { makeRootStyles } from \"../../../theme/styles\";\n\nconst useStyles = makeRootStyles(\n {\n backButtonWrapper: {\n position: \"relative\",\n width: \"40px\",\n height: \"40px\",\n background: \"transparent\",\n border: \"0 none\",\n cursor: \"pointer\",\n },\n bar: {\n width: \"10px\",\n height: \"2px\",\n background: \"black\",\n position: \"absolute\",\n transform: \"rotate(-45deg)\",\n borderRadius: \"2px\",\n top: \"15px\",\n left: \"14px\",\n },\n barReverse: {\n composes: \"$bar\",\n transform: \"rotate(45deg)\",\n top: \"21px\",\n },\n },\n { name: \"BackButton\" },\n);\n\nexport { useStyles };\n","import React, { FC } from \"react\";\nimport { useStyles } from \"./BackButtonStyles\";\n\nimport { BackButtonProps } from \"./types\";\n\nexport const BackButton: FC = ({ onBack }) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const styles: any = useStyles();\n const handleClick = () => {\n onBack();\n };\n return (\n \n );\n};\n","import React, { ChangeEvent, FC, useRef } from \"react\";\n\nimport Button, { ButtonProps } from \"@narvar/nth-block-button\";\n\nexport type FileUploadButtonProps = ButtonProps & {\n accept?: string;\n multiple?: boolean;\n maxSize?: number;\n onChange?: (\n acceptedFiles: File[],\n rejectedFiles: File[],\n event: ChangeEvent,\n ) => void;\n};\n\nconst FileUploadButton: FC = ({\n accept,\n multiple,\n maxSize,\n onChange,\n children,\n ...props\n}) => {\n const fileInput = useRef(null);\n\n const handleChange = (event: ChangeEvent) => {\n const files = event.target.files;\n const acceptedFiles: File[] = [];\n const rejectedFiles: File[] = [];\n if (files) {\n for (let i = 0; i < files.length; i++) {\n const file = files[i];\n if (maxSize && maxSize > 0 && file.size > maxSize) {\n rejectedFiles.push(file);\n continue;\n }\n acceptedFiles.push(file);\n }\n }\n onChange?.(acceptedFiles, rejectedFiles, event);\n };\n\n return (\n <>\n \n \n \n );\n};\n\nexport default FileUploadButton;\n","import React, { FC, ElementType, CSSProperties } from \"react\";\nimport { withThemeProvider, useTheme } from \"@narvar/nth-hook-theme\";\n\nimport IconButton from \"@narvar/nth-bit-icon-button\";\n\nexport type IconFilledButtonProps = {\n Icon: ElementType<{ s?: CSSProperties }>;\n hover?: boolean;\n onClick?: () => void;\n ariaLabel?: string;\n s?: CSSProperties;\n sHover?: CSSProperties;\n sIcon?: CSSProperties;\n};\n\nconst IconFilledButton: FC = ({\n Icon,\n s,\n sHover,\n sIcon,\n ...props\n}) => {\n const theme = useTheme();\n const { color, fill, ...iconStyle } = theme.iconsPrimaryNone ?? {};\n const backgroundColor: string = fill ?? color ?? \"#000\";\n\n return (\n \n \n \n );\n};\n\nexport default withThemeProvider(IconFilledButton, {\n themeTokens: [\"iconsPrimaryNone\"],\n});\n","import { makeRootStyles } from \"../../../theme/styles\";\n\nconst useStyles = makeRootStyles(\n {\n previews: {\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"center\",\n gap: \"24px\",\n flexWrap: \"wrap\",\n },\n preview: {\n position: \"relative\",\n },\n thumbnail: {\n width: \"150px\",\n display: \"block\",\n },\n },\n { name: \"FileUpload\" },\n);\n\nexport { useStyles };\n","import React, { FC, ReactNode, useState, useMemo, useEffect } from \"react\";\n\nimport { withThemeProvider, useTheme } from \"@narvar/nth-hook-theme\";\nimport Thumbnail from \"@narvar/nth-bit-thumbnail\";\nimport IconX from \"@narvar/nth-bit-icon-x\";\n\nimport LanguageKeys from \"../../consts/language_en_US\";\nimport Language from \"../Language\";\nimport FileUploadButton, { FileUploadButtonProps } from \"../FileUploadButton\";\nimport IconFilledButton from \"../IconFilledButton\";\nimport { useStyles } from \"./FileUploadStyles\";\n\nexport type FileUploadProps = FileUploadButtonProps & {\n label?: ReactNode | string;\n caption?: ReactNode | string;\n maxCount?: number;\n value?: File[];\n onChange?: (acceptedFiles: File[]) => void;\n};\n\nconst tempLanguageKeys = {\n returnsReasonsPicturesUploadErrorMaxSize:\n LanguageKeys.returnsReasonsPicturesUploadErrorMaxSize,\n returnsReasonsPicturesUploadErrorMaxCount:\n LanguageKeys.returnsReasonsPicturesUploadErrorMaxCount,\n};\n\nconst FileUpload: FC = ({\n label,\n caption,\n maxCount,\n value,\n onChange,\n ...props\n}) => {\n const {\n captiontextDefaultNone: captionStyle,\n captiontextErrorNone: captionStyleError,\n } = useTheme();\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const styles: any = useStyles();\n\n const {\n returnsReasonsPicturesUploadErrorMaxSize,\n returnsReasonsPicturesUploadErrorMaxCount,\n } = tempLanguageKeys;\n\n const [errorCode, setErrorCode] = useState<\"maxSize\" | \"maxCount\" | \"\">();\n const [files, setFiles] = useState([]);\n const previews = useMemo<\n { name: string; type: string; url: string; file: File }[]\n >(\n () =>\n files.map((file) => ({\n name: file.name,\n type: file.type,\n url: URL.createObjectURL(file),\n file,\n })),\n [files],\n );\n\n useEffect(() => {\n if (maxCount && maxCount > 0 && files.length > maxCount) {\n setErrorCode(\"maxCount\");\n }\n }, [maxCount, files]);\n\n useEffect(() => {\n setFiles(value ?? []);\n }, [value]);\n\n const handleChange = (acceptFiles: File[], rejectedFiles: File[]) => {\n const updates = [...files, ...acceptFiles];\n setFiles(updates);\n\n if (rejectedFiles?.length > 0) {\n setErrorCode(\"maxSize\");\n } else {\n setErrorCode(\"\");\n }\n onChange?.(updates);\n };\n\n const removeFile = (file: File) => {\n const updates = files.filter((f) => f !== file);\n setFiles(updates);\n setErrorCode(\"\");\n onChange?.(updates);\n };\n\n return (\n <>\n \n {label}\n \n {caption &&
{caption}
}\n
\n {previews.map((p, i) => (\n
\n \n removeFile(p.file)}\n />\n
\n ))}\n
\n {errorCode === \"maxSize\" && (\n
\n \n
\n )}\n {errorCode === \"maxCount\" && (\n
\n \n
\n )}\n \n );\n};\n\nexport default withThemeProvider(FileUpload, {\n themeTokens: [\"captiontextDefaultNone\", \"captiontextErrorNone\"],\n});\n","import { makeRootStyles } from \"../../../theme/styles\";\n\nconst useStyles = makeRootStyles(\n {\n wrapper: {\n width: \"100%\",\n display: \"flex\",\n gap: \"0.5rem\",\n flexWrap: \"wrap\",\n },\n label: {\n fontWeight: 700,\n },\n },\n { name: \"SwatchesList\" },\n);\n\nexport { useStyles };\n","import React, {\n FC,\n useMemo,\n useState,\n useEffect,\n useRef,\n CSSProperties,\n} from \"react\";\nimport { useTheme, withThemeProvider } from \"@narvar/nth-hook-theme\";\nimport { SelectList, SelectListOption } from \"@narvar/nth-block-select-list\";\nimport TextLink from \"../TextLink\";\nimport { SwatchesListProps, SwatchOption } from \"./types\";\nimport Language from \"../Language\";\nimport { useStyles } from \"./SwatchesListStyles\";\n\nconst GAP = 8;\nconst MAX_ROWS = 2;\n\nconst SwatchesList: FC = ({\n type,\n label,\n value,\n options = [],\n onChange,\n}) => {\n const { linksNoneDefault, linksNoneHover } = useTheme();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const styles: any = useStyles();\n\n const [expanded, setExpanded] = useState(false);\n const [containerHeight, setContainerHeight] = useState(0);\n const [hasMoreToggle, setHasMoreToggle] = useState(false);\n\n const selectedOption: SwatchOption | undefined = useMemo(\n () => options.find((o) => o.value === value),\n [options, value],\n );\n\n const selectListOptions = options.map((o) => ({\n value: o.value,\n ariaLabel: o.label?.toString() ?? \"\",\n label: type === \"image\" ? (o.imageUrl ?? \"\") : o.label,\n isDisabled: o.disabled ?? false,\n isGrayedOut: o.grayedOut ?? false,\n })) satisfies SelectListOption[];\n\n const listRef = useRef(null);\n\n useEffect(() => {\n const handleResize = () => {\n if (!listRef.current) return;\n\n const selectListContainer = listRef.current.firstChild as HTMLElement;\n const firstItem = selectListContainer.firstChild as HTMLElement;\n\n const calcContainerHeight =\n firstItem.offsetHeight * MAX_ROWS + GAP * (MAX_ROWS - 1);\n\n if (selectListContainer.offsetHeight / calcContainerHeight > 1) {\n setHasMoreToggle(true);\n }\n\n setContainerHeight(\n calcContainerHeight > selectListContainer.offsetHeight\n ? selectListContainer.offsetHeight\n : calcContainerHeight,\n );\n };\n\n handleResize();\n\n window.addEventListener(\"resize\", handleResize);\n\n return () => window.removeEventListener(\"resize\", handleResize);\n }, [listRef]);\n\n const handleChange = (newValue: string | string[] | null) => {\n if (!onChange) return;\n if (Array.isArray(newValue)) return;\n onChange(newValue === value || !newValue ? \"\" : newValue);\n };\n\n const handleToggleSeeMore = () => {\n setExpanded((d) => !d);\n };\n\n const wrapperStyles: CSSProperties =\n type === \"image\"\n ? {\n display: \"grid\",\n gridTemplateColumns: \"repeat(4, 1fr)\",\n gap: \"0.5rem\",\n }\n : {\n display: \"flex\",\n flexWrap: \"wrap\",\n gap: \"0.5rem\",\n };\n\n return (\n
\n {label && (\n
\n \n {selectedOption && selectedOption.label}\n
\n )}\n \n \n
\n {hasMoreToggle && (\n
\n \n \n \n
\n )}\n \n );\n};\n\nexport default withThemeProvider(SwatchesList, {\n themeTokens: [\"linksNoneDefault\", \"linksNoneHover\"],\n});\n","import { makeRootStyles } from \"../../../theme/styles\";\n\nconst useStyles = makeRootStyles(\n () => {\n const sizePhoto = 1584;\n const sizeCardPhoto = 1040;\n\n const shimmer = {\n backgroundImage:\n \"linear-gradient(to right, #ececec 0%, #ececec 45%, #f8f8f8 50%, #ececec 55%, #ececec 100%)\",\n animationDuration: \"2s\",\n animationFillMode: \"forwards\",\n animationIterationCount: \"infinite\",\n animationTimingFunction: \"linear\",\n };\n\n const shimmerPhoto = {\n backgroundSize: sizePhoto,\n animationName: \"$shimmerPhotoAnimation\",\n };\n\n const shimmerCardPhoto = {\n backgroundSize: sizeCardPhoto,\n animationName: \"$shimmerCardPhotoAnimation\",\n };\n\n const shimmerCardText = {\n backgroundSize: sizeCardPhoto,\n animationName: \"$shimmerCardTextAnimation\",\n };\n\n const shimmerDescription = {\n backgroundSize: sizePhoto,\n animationName: \"$shimmerDescriptionAnimation\",\n };\n\n const shimmerFee = {\n backgroundSize: sizePhoto,\n animationName: \"$shimmerFeeAnimation\",\n };\n\n return {\n shimmer,\n shimmerPhoto,\n shimmerCardPhoto,\n shimmerCardText,\n shimmerDescription,\n shimmerFee,\n line: {\n ...shimmer,\n ...shimmerPhoto,\n height: 24,\n maxWidth: 307,\n width: \"100%\",\n margin: 16,\n },\n container: {\n boxSizing: \"border-box\",\n borderColor: \"#cccccc\",\n width: \"100%\",\n marginTop: 32,\n },\n cardContainer: {\n boxSizing: \"border-box\",\n padding: 16,\n borderWidth: 1,\n borderStyle: \"solid\",\n borderRadius: 4,\n borderColor: \"#cccccc\",\n width: \"100%\",\n display: \"grid\",\n gridAutoFlow: \"column\",\n gridTemplateColumns: \"auto 2fr\",\n columnGap: 24,\n },\n textContainer: {\n display: \"flex\",\n flexDirection: \"column\",\n },\n photo: {\n ...shimmer,\n ...shimmerPhoto,\n height: 165,\n width: 165,\n },\n description: {\n ...shimmer,\n ...shimmerDescription,\n height: 24,\n maxWidth: 100,\n width: \"100%\",\n marginBottom: 24,\n },\n title: {\n ...shimmer,\n ...shimmerDescription,\n height: 24,\n maxWidth: 180,\n width: \"100%\",\n marginBottom: 24,\n },\n cardContainerPudo: {\n boxSizing: \"border-box\",\n padding: 16,\n borderWidth: 1,\n borderStyle: \"solid\",\n borderRadius: 4,\n borderColor: \"#cccccc\",\n display: \"grid\",\n gridAutoFlow: \"column\",\n width: \"100%\",\n gridTemplateAreas: \"'Photo Title Fee' 'Photo Description .'\",\n gridTemplateColumns: \"auto 2fr 1.25fr\",\n columnGap: 24,\n },\n cardPhoto: {\n ...shimmer,\n ...shimmerCardPhoto,\n height: 90,\n width: 90,\n gridArea: \"Photo\",\n },\n cardTitle: {\n ...shimmer,\n ...shimmerCardText,\n height: 24,\n maxWidth: 307,\n width: \"100%\",\n gridArea: \"Title\",\n alignSelf: \"start\",\n justifySelf: \"start\",\n },\n cardFee: {\n ...shimmer,\n ...shimmerFee,\n height: 24,\n maxWidth: 72,\n width: \"100%\",\n alignSelf: \"start\",\n justifySelf: \"end\",\n },\n cardDescription: {\n ...shimmer,\n ...shimmerCardText,\n height: 24,\n maxWidth: 156,\n width: \"100%\",\n gridArea: \"Description\",\n alignSelf: \"start\",\n justifySelf: \"start\",\n },\n \"@keyframes shimmerPhotoAnimation\": {\n from: { backgroundPosition: \"-1584px 0\" },\n to: { backgroundPosition: \"1584px 0\" },\n },\n \"@keyframes shimmerCardPhotoAnimation\": {\n from: { backgroundPosition: \"-1040px 0\" },\n to: { backgroundPosition: \"1040px 0\" },\n },\n \"@keyframes shimmerCardTextAnimation\": {\n from: { backgroundPosition: \"calc(-1040px - 140px) 0\" },\n to: { backgroundPosition: \"calc(1040px - 140px) 0\" },\n },\n \"@keyframes shimmerDescriptionAnimation\": {\n from: { backgroundPosition: \"calc(-1584px - 220px) 0\" },\n to: { backgroundPosition: \"calc(1584px - 220px) 0\" },\n },\n \"@keyframes shimmerFeeAnimation\": {\n from: { backgroundPosition: \"calc(-1040px - calc(520px - 100%)) 0\" },\n to: { backgroundPosition: \"calc(1040px - calc(520px - 100%)) 0\" },\n },\n };\n },\n {\n name: \"N0Skeleton\",\n },\n);\n\nexport { useStyles };\n","import React from \"react\";\nimport { useStyles } from \"./SkeletonStyles\";\n\nexport const ItemCardSkeleton = () => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const styles: any = useStyles();\n\n return (\n
\n
\n
\n
\n
\n
\n
\n
\n );\n};\n","import React from \"react\";\nimport { useStyles } from \"./SkeletonStyles\";\n\nexport const LineItemSkeleton = () => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const styles: any = useStyles();\n\n return (\n
\n
\n
\n );\n};\n","import { useCallback } from \"react\";\nimport { useApolloClient } from \"@apollo/client\";\nimport { useGrowthBook } from \"@growthbook/growthbook-react\";\n\nimport { memoObjectByKeyValues } from \"../../shared/modules/object\";\nimport { resetGrowthBookAttributes } from \"../../shared/modules/growthBook\";\nimport {\n useOrderFetchData,\n useReturnStepsActions,\n} from \"../contexts/returnSteps\";\n\nconst useLoginSession = () => {\n const { actions: orderFetchDataActions } = useOrderFetchData();\n const returnStepsActions = useReturnStepsActions();\n const apolloClient = useApolloClient();\n const growthBook = useGrowthBook();\n\n const logout = useCallback(() => {\n returnStepsActions.clearAll();\n orderFetchDataActions.clearOrderData();\n apolloClient.cache.reset();\n resetGrowthBookAttributes(growthBook);\n }, []);\n\n return memoObjectByKeyValues({\n logout,\n });\n};\n\nexport default useLoginSession;\n","import React, { useMemo } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport Dialog from \"@material-ui/core/Dialog\";\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\nimport DialogContent from \"@material-ui/core/DialogContent\";\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\nimport DialogActions from \"@material-ui/core/DialogActions\";\nimport Button from \"@material-ui/core/Button\";\nimport { makeStyles } from \"@material-ui/core/styles\";\n\nconst useStyles = makeStyles(\n (theme) => ({\n root: {},\n title: {\n \"& > .MuiTypography-root.MuiTypography-h6\": {\n ...theme.typography.h3,\n color: theme.palette.text.primary,\n },\n },\n }),\n { name: \"N0ConfirmationDialog\" },\n);\n\nfunction ConfirmationDialog(props) {\n const classes = useStyles();\n const {\n title,\n message,\n error,\n loading,\n color,\n open,\n onConfirm,\n onCancel,\n confirmText,\n cancelText,\n cancelButtonVariant,\n confirmButtonVariant,\n confirmOnly,\n confirmButtonAutoFocusDisabled,\n ...otherProps\n } = props;\n\n const hasContent = message || error;\n\n const messageNode = useMemo(\n () =>\n typeof message === \"string\" ? (\n \n ) : (\n message\n ),\n [message],\n );\n const errorNode = useMemo(\n () =>\n typeof error === \"string\" ? (\n \n ) : (\n error\n ),\n [error],\n );\n\n return (\n \n {title && {title}}\n {hasContent && (\n \n {messageNode}\n {errorNode}\n \n )}\n \n {!confirmOnly && (\n \n {cancelText}\n \n )}\n \n {confirmText}\n \n \n \n );\n}\n\nConfirmationDialog.propTypes = {\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n message: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n error: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n loading: PropTypes.bool,\n open: PropTypes.bool.isRequired,\n onConfirm: PropTypes.func,\n onCancel: PropTypes.func,\n color: PropTypes.string,\n confirmText: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n cancelText: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n cancelButtonVariant: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n confirmButtonVariant: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n confirmOnly: PropTypes.bool,\n confirmButtonAutoFocusDisabled: PropTypes.bool,\n};\n\nConfirmationDialog.defaultProps = {\n color: \"primary\",\n confirmText: \"Confirm\",\n cancelText: \"Cancel\",\n cancelButtonVariant: \"outlined\", // other options are outlined and text\n confirmButtonVariant: \"contained\", // other options are outlined and text\n};\n\nexport default ConfirmationDialog;\n","import React, { useRef, useMemo, useEffect, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\n\nimport { config } from \"../../config\";\nimport { makeRootStyles } from \"../../theme/styles\";\nimport { useEffectOnce } from \"../../../shared/modules/hooks\";\nimport { getBranding } from \"../../../shared/modules/config\";\nimport { useFrameDimensions } from \"../../contexts/frameDimensions\";\nimport useMediaQuery from \"@material-ui/core/useMediaQuery\";\nimport { useTheme } from \"@material-ui/core/styles\";\n\nexport const useStyles = makeRootStyles(\n (theme) => ({\n rootMargin: {\n marginTop: -getBranding(\"step_delimiter_position\"),\n },\n rootPadding: {\n paddingTop: getBranding(\"step_delimiter_position\"),\n },\n cover: {\n minHeight: theme.mixins.verticalHeight(100),\n },\n }),\n { name: \"N0TypeFormSection\" },\n);\n\nfunction TypeFormSection({ children, isNext, activeIndex, onRenderNext }) {\n const sectionRef = useRef(null);\n const theme = useTheme();\n const classes = useStyles();\n const isMobile = useMediaQuery(theme.breakpoints.down(\"sm\"));\n const { dimensions, initiated } = useFrameDimensions();\n const [firstRender, setFirstRender] = useState(true);\n\n useEffect(() => {\n if (isNext) onRenderNext(sectionRef.current, activeIndex, firstRender);\n setFirstRender(false);\n }, [isNext, firstRender]);\n\n // set min-height for steps after order lookup and item selection\n const style = useMemo(() => {\n const ret = {};\n if (isNext && activeIndex > 1 && initiated) {\n let minHeight = dimensions.windowHeight;\n minHeight -= isMobile\n ? 0\n : dimensions.footerHeight + getBranding(\"root_margin_bottom\");\n minHeight += getBranding(\"fixed_app_bar\")\n ? getBranding(\"step_delimiter_position\")\n : 0;\n ret.minHeight = minHeight;\n }\n return ret;\n }, [isNext, dimensions, isMobile]);\n\n return (\n \n {children}\n
\n );\n}\nTypeFormSection.propTypes = {\n children: PropTypes.node,\n isNext: PropTypes.bool,\n activeIndex: PropTypes.number,\n onRenderNext: PropTypes.func,\n};\nexport default TypeFormSection;\n","export const STATUS_PREAUTHORIZATION = \"preauthorization\";\nexport const STATUS_STARTED = \"started\";\nexport const STATUS_REQUESTED = \"requested\";\nexport const STATUS_INITIATED = \"initiated\";\nexport const STATUS_AWAITING_CLAIM_RESOLUTION = \"awaiting_claim_resolution\";\nexport const STATUS_CLAIM_DENIED = \"claim_denied\";\nexport const STATUS_DELIVERED_TO_RETAILER = \"delivered_to_retailer\";\nexport const STATUS_DELIVERED_BUT_NOT_RECEIVED = \"delivered_but_not_received\";\nexport const STATUS_ON_ITS_WAY_TO_RETAILER = \"on_its_way_to_retailer\";\nexport const STATUS_RECEIVED_BY_RETAILER = \"received_by_retailer\";\nexport const STATUS_PROCESSING = \"processing\";\nexport const STATUS_APPROVED = \"approved\";\nexport const STATUS_REJECTED = \"rejected\";\nexport const STATUS_RESOLVE_MANUALLY_WITHOUT_AUTOMATION =\n \"resolve_manually_without_automation\";\nexport const STATUS_REFUNDED = \"refunded\";\nexport const STATUS_REFUNDED_AND_EXCHANGED = \"refunded_and_exchanged\";\nexport const STATUS_REFUNDED_RETURN_AWAITING_EXCHANGE_COMPLETION =\n \"refunded_return_awaiting_exchange_completion\";\nexport const STATUS_EXCHANGE_PROCESSED = \"exchange_processed\";\nexport const STATUS_EXCEPTION = \"exception\";\nexport const STATUS_CANCELLED_BY_RETAILER = \"cancelled_by_retailer\";\nexport const STATUS_CANCELLED_BY_USER = \"cancelled_by_user\";\nexport const STATUS_OUT_OF_STOCK_EXCEPTION = \"out_of_stock_exception\";\nexport const STATUS_NEEDS_MANUAL_APPROVAL = \"needs_manual_approval\";\n\nexport const METHOD_KEEP_THE_ITEM = \"keep_the_item\";\nexport const METHOD_FEDEX = \"fedex\";\nexport const METHOD_XPO = \"xpo\";\nexport const METHOD_IN_STORE = \"return_in_store\";\nexport const METHOD_SHIP_ON_YOUR_OWN = \"ship_on_your_own\";\nexport const METHOD_BY_MAIL = \"byMail\";\nexport const METHOD_BY_MAIL_AND_IN_STORE = `${METHOD_BY_MAIL} ${METHOD_IN_STORE}`;\n\nexport const RETURN_CREDIT_METHOD_SHOPNOW = \"shop_now\";\nexport const RETURN_CREDIT_METHOD_GIFT_CARD = \"gift_card\";\nexport const RETURN_CREDIT_METHOD_RESHOP = \"reshop\";\nexport const RETURN_CREDIT_METHOD_REFUND = \"original_payment\";\nexport const RETURN_CREDIT_METHOD_REPLACEMENT = \"replacement\";\nexport const PRINTERLESS_METHOD = \"PRINTERLESS\";\nexport const BOXLESS_METHOD = \"BOXLESS\";\n\nexport const REFUND_METHOD_ORIGINAL_PAYMENT = \"original_payment\";\nexport const REFUND_METHOD_GIFT_CARD = \"gift_card\";\nexport const REFUND_METHOD_COUPON_CODE = \"coupon_code\";\n","import { useMemo } from \"react\";\nimport {\n get,\n set,\n merge,\n omitBy,\n isNil,\n curry,\n mapKeys,\n isEmpty,\n toPairs,\n sortBy,\n compose,\n flatten,\n fromPairs,\n mapValues,\n isString,\n trim,\n omit,\n isObject,\n isArray,\n map,\n} from \"lodash/fp\";\n\n/**\n * trim every string attributes of an object\n * @param {object}\n * @returns {object}\n */\nexport const trimObject = mapValues((v) => (isString(v) ? trim(v) : v));\n\n/**\n * clone and omit the `null` and `undefined` fields of an object\n * @param {object}\n * @returns {object}\n */\nexport const omitNullValues = omitBy(isNil);\n\n/**\n * merge two or more objects, while ignores or skips `null` and `undefined` fields\n * @param {...object} objects\n * @returns {object}\n * @example\n * const first = { a: 1, b: null }\n * const second = { a: null, b: 2, c: 2 }\n * const third = { a: 3, b: undefined, c: 3 }\n * mergeIgnoreNil(first, second) // { a: 1, b: 2, c: 2 }\n * mergeIgnoreNil(first, third) // { a: 3, b: null, c: 3 }\n * mergeIgnoreNil(first, second, third) // { a: 3, b: 2, c: 3 }\n */\nexport const mergeIgnoreNil = (a, b, ...others) => {\n if (a === undefined || b === undefined) return a;\n\n const merged = merge(a, omitNullValues(b));\n if (!others.length) {\n return merged;\n } else {\n const [next, ...remaining] = others;\n return mergeIgnoreNil(merged, next, ...remaining);\n }\n};\n\n/**\n * rename object keys\n * @param {object} mapping\n * @param {object} object\n * @returns {object}\n * @example\n * const data = { a: 1, b: 2 }\n * renameKeys({ a: 'foo', b: 'bar' }) // { foo: 1, bar: 2 }\n */\nexport const renameKeys = curry((mapping, object) =>\n mapKeys((key) => mapping[key] || key, object),\n);\n\n/**\n * check and return the original object, unless it is an empty object, it returns undefined\n * @param {object} object\n * @returns {object|undefined}\n */\nexport const ignoreEmpty = (object) => (isEmpty(object) ? undefined : object);\n\nexport const assertAnyFieldBy = curry((func, object) =>\n toPairs(object).some(([key, value]) => func(value, key)),\n);\n\nexport const assertAllFieldsBy = curry((func, object) =>\n toPairs(object).every(([key, value]) => func(value, key)),\n);\n\n/**\n * merge status flags from apollo statuses\n * @param {...object} statuses\n * @returns {object}\n * mergeRequestStatus(saved, mutated);\n * // {\n * // called: true,\n * // loading: false,\n * // data: false,\n * // error: \"first error message\",\n * // errors: [\"first error message\", \"second error message\"],\n * // }\n */\nexport const mergeRequestStatus = (...statuses) =>\n statuses.reduce(\n (p, c) => ({\n called: p.called || c.called,\n loading: p.loading || c.loading,\n data: p.data || c.data,\n error: p.error || c.error,\n errors: [].concat(p.errors || [], c.error || []),\n }),\n { called: false, loading: false, error: undefined, errors: [] },\n );\n\n/**\n * memo and merge status flags from apollo statuses\n * @param {...object} statuses\n * @returns {object}\n * useMergeRequestStatus(saved, mutated);\n * // {\n * // called: true,\n * // loading: false,\n * // data: false,\n * // error: \"first error message\",\n * // errors: [\"first error message\", \"second error message\"],\n * // }\n */\nexport const useMergeRequestStatus = (...statuses) =>\n useMemo(() => mergeRequestStatus(...statuses), statuses);\n\n/**\n * similar to _.toPairs, but sort the result by key\n * @param {object}\n */\nexport const toSortedPairs = compose(sortBy(get(0)), toPairs);\n\n/**\n * enhance of useMemo, do simple === check to each key value pairs of an object,\n * it return the previous object if the equal test pass.\n * @template T\n * @param {T} object\n * @returns {T}\n *\n * @example\n * const loading = saved.loading;\n * const called = saved.called;\n * const error = saved.error;\n * // before\n * const status = useMemo(\n * () => ({ loading, called, error }),\n * [loading, called, error],\n * );\n * // after\n * const status = memoObjectByKeyValues({ loading, called, error })\n */\nexport const memoObjectByKeyValues = (object) => {\n const pairs = toSortedPairs(object);\n const deps = flatten(pairs);\n return useMemo(() => fromPairs(pairs), deps);\n};\n\n/**\n * Clone and omit properties deeply.\n * @template T\n * @param {String[]} paths\n * @param {T} object\n * @returns {T}\n */\nexport const omitDeep = curry((paths, input) =>\n isArray(input)\n ? map(omitDeep(paths))(input)\n : isObject(input)\n ? compose(mapValues(omitDeep(paths)), omit(paths))(input)\n : input,\n);\n\n/**\n * Ensure and case a specific property on the object is a boolean.\n * @template T\n * @param {String} path\n * @param {T} object\n * @returns {T}\n */\nexport const ensureFieldIsBoolean = curry((path, obj) =>\n set(path, !!get(path, obj), obj),\n);\n\n/**\n * Ensure and case a specific property on the object is an array.\n * @template T\n * @param {String} path\n * @param {T} object\n * @returns {T}\n */\nexport const ensureFieldIsArray = curry((path, obj) =>\n isArray(get(path, obj)) ? obj : set(path, [], obj),\n);\n","export const USPS_RETURNS = \"usps_returns\";\nexport const FEDEX = \"fedex\";\nexport const BLUEDART = \"bluedart\";\nexport const UPS = \"ups\";\nexport const CANADA_POST = \"canadapost\";\nexport const DHL_EXPRESS = \"dhlexpress\";\nexport const DHL_PAKET = \"dhlpaket\";\nexport const DPD_UK = \"dpduk\";\nexport const AUS_POST = \"auspost\";\nexport const CYCLEON = \"cycleon\";\nexport const SWISS_POST = \"swisspost\";\nexport const ROYAL_MAIL = \"royal_mail\";\nexport const COLLECT_PLUS = \"collectplus\";\nexport const CORREOS_EXPRESS = \"correosexpress\";\nexport const COLISSIMO = \"colissimo\";\nexport const EVRI = \"evri\";\nexport const XPO = \"xpo\";\nexport const PITNEY_BOWES = \"pitneybowes\";\nexport const CHRONOPOST = \"chronopost\";\nexport const SHIP_ENGINE = \"ship_engine\";\nexport const POSTNORD = \"postnord\";\nexport const GLS = \"gls\";\nexport const GLSDK = \"gls-dk\";\nexport const GLSFR = \"gls-fr\";\nexport const GLSCA = \"glsca\";\nexport const DHL_GLOBAL = \"dhlglobal\";\nexport const YAMATO = \"yamato\";\nexport const DELIVERR = \"deliverr\";\nexport const INPOSTUK = \"inpostuk\";\nexport const DODDLE = \"doddle\";\nexport const HERMES = \"hermes\";\nexport const FEDEX_COMMERCIAL = \"fedex-commercial\";\nexport const APG = \"apg\";\nexport const MONDIAL_RELAY = \"mondial-relay\";\nexport const MAERSK_EU = \"maersk-eu\";\nexport const DHLPBENELUX = \"dhlpbenelux\";\nexport const BLECKMANN = \"bleckmann\";\nexport const SHOPLINE = \"shopline\";\nexport const PUROLATOR = \"purolator\";\nexport const BPOST = \"bpost\";\nexport const POSTNL = \"postnl\";\n\n// Carriers that support only boxless returns, but not paperless returns.\n// Frontend should treat paperless as boxless for these carriers.\nexport const BOXLESS_ONLY_CARRIERS = [DODDLE, FEDEX_COMMERCIAL];\n\nexport const carrierNames = {\n [USPS_RETURNS]: \"USPS Returns\",\n [FEDEX]: \"FedEx\",\n [BLUEDART]: \"BlueDart\",\n [UPS]: \"UPS\",\n [DHL_PAKET]: \"DHL Paket\",\n [DHL_EXPRESS]: \"DHL Express\",\n [CANADA_POST]: \"Canada Post\",\n [DPD_UK]: \"DPK UK\",\n [AUS_POST]: \"Australia Post\",\n [CYCLEON]: \"Cycleon\",\n [SWISS_POST]: \"Swiss Post\",\n [ROYAL_MAIL]: \"Royal Mail\",\n [COLLECT_PLUS]: \"Collect Plus\",\n [CORREOS_EXPRESS]: \"Correos Express\",\n [COLISSIMO]: \"Colissimo\",\n [EVRI]: \"Evri\",\n [XPO]: \"Xpo\",\n [PITNEY_BOWES]: \"Pitney Bowes\",\n [CHRONOPOST]: \"Chronopost\",\n [SHIP_ENGINE]: \"Ship Engine\",\n [POSTNORD]: \"Post Nord\",\n [GLS]: \"GLS\",\n};\n\nexport const incoterms = [\n { name: \"EXW\", description: \"Ex Works\" },\n { name: \"FCA\", description: \"Free Carrier\" },\n { name: \"FAS\", description: \"Free Alongside Ship\" },\n { name: \"FOB\", description: \"Free on Board\" },\n { name: \"CPT\", description: \"Carriage Paid\" },\n { name: \"CIP\", description: \"Carriage and Insurance Paid\" },\n { name: \"CFR\", description: \"Cost and Freight\" },\n { name: \"CIF\", description: \"Cost, Insurance and Freight\" },\n { name: \"DAP\", description: \"Delivered at Place\" },\n { name: \"DPU\", description: \"Delivered at Place Unloaded\" },\n { name: \"DDP\", description: \"Delivered Duty Paid\" },\n { name: \"DDU\", description: \"Delivered Duty Unpaid\" },\n];\n\nexport const DHL_EXPESS_SERVICE_TYPES = {};\n\nexport const USPS_SERVICE_TYPES = {\n PARCEL_RETURN_SERVICE: \"Parcel Return Service\",\n PRS_FULL_NETWORK: \"PRS - Full Network\",\n GROUND_RETURN_SERVICE: \"Ground Return Service\",\n PRS_FULL_NETWORK_INSURANCE_LT_200: \"PRS - Full Network, Insurance <=200\",\n PRS_FULL_NETWORK_INSURANCE_GT_200: \"PRS - Full Network, Insurance > 200\",\n PRIORITY_MAIL_RETURNS_SERVICE: \"Priority Mail Returns service\",\n PRIORITY_MAIL_RETURNS_SERVICE_INSURANCE_LT_200:\n \"Priority Mail Returns service, Insurance <= $200\",\n FIRST_CLASS_PACKAGE_RETURN_SERVICE: \"First-Class Package Return service\",\n FIRST_CLASS_PACKAGE_RETURN_SERVICE_INSURANCE_LT_200:\n \"First-Class Package Return service, Insurance <= $200\",\n};\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport { makeStyles } from \"@material-ui/styles\";\nimport Button from \"@material-ui/core/Button\";\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\n\nconst SMALL = 12;\nconst MEDIUM = 14;\nconst LARGE = 16;\n\nconst useStyle = makeStyles(\n (theme) => ({\n spinner: {\n display: \"flex\",\n alignItems: \"center\",\n marginLeft: theme.spacing(0.5),\n },\n wrapper: {\n display: \"flex\",\n alignItems: \"center\",\n },\n }),\n { name: \"N0ButtonBusy\" },\n);\n\nfunction ButtonBusy({ isBusy, disabled, size, component, children, ...props }) {\n const classes = useStyle();\n const Component = component;\n const iconSizes = { small: SMALL, medium: MEDIUM, large: LARGE };\n return (\n \n
\n {children}\n {isBusy && (\n \n )}\n
\n
\n );\n}\n\nButtonBusy.propTypes = {\n isBusy: PropTypes.bool,\n size: PropTypes.oneOf([\"small\", \"medium\", \"large\"]),\n component: PropTypes.elementType,\n ...Button.propTypes,\n};\n\nButtonBusy.defaultProps = {\n isBusy: false,\n size: \"medium\",\n component: Button,\n};\n\nexport default ButtonBusy;\n","import React from \"react\";\nimport clsx from \"clsx\";\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\nimport { makeStyles } from \"@material-ui/styles\";\n\nconst useStyles = makeStyles(\n (theme) => ({\n root: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n padding: theme.spacing(4),\n },\n disablePadding: {\n padding: 0,\n },\n }),\n { name: \"N0Spinner\" },\n);\n\nfunction Spinner({ color = \"secondary\", disablePadding = false }) {\n const classes = useStyles();\n\n return (\n \n \n
\n );\n}\nexport default Spinner;\n","import React, { useRef } from \"react\";\nimport Accordion from \"@material-ui/core/Accordion\";\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\nimport Typography from \"@material-ui/core/Typography\";\nimport clsx from \"clsx\";\n\nimport { makeRootStyles } from \"../../../theme/styles\";\n\nexport const useStyles = makeRootStyles(\n (theme) => {\n return {\n root: {\n flex: 1,\n display: \"flex\",\n flexDirection: \"column\",\n },\n accordion: {\n borderRadius: 0,\n flex: 1,\n marginTop: 0,\n marginBottom: 0,\n \"&:before\": {\n content: \"none\",\n },\n \"&:after\": {\n display: \"block\",\n opacity: 1,\n height: 3,\n backgroundColor: theme.palette.primary.main,\n position: \"absolute\",\n bottom: -2,\n left: 0,\n right: 0,\n content: \"' '\",\n zIndex: 1,\n },\n \"&:last-child:after\": {\n content: \"none\",\n },\n \"&.Mui-expanded:before\": {\n opacity: 1,\n },\n },\n accordionSummary: {\n padding: theme.spacing(2, 3),\n width: \"100%\",\n boxSizing: \"border-box\",\n // When closed, the summary text will not wrap so may horizontally overflow.\n overflow: \"hidden\",\n },\n expansionPanelSummaryContent: {\n maxWidth: \"100%\",\n margin: 0,\n },\n expansionPanelSummaryValid: {\n color: theme.palette.primary.main,\n },\n accordionDetails: {\n minHeight: \"300px\",\n height: \"auto\",\n padding: 0,\n },\n heading: {},\n };\n },\n { name: \"N0CollapsibleOptions\" },\n);\n\nconst CollapsibleOptions = ({\n className,\n children,\n expanded,\n height,\n onChange,\n}) => {\n const classes = useStyles();\n const buttonRefs = useRef({});\n\n return (\n
\n {React.Children.map(children, (element) => {\n if (!element) return null;\n\n const {\n buttonRef,\n collapseId,\n collapseLabel,\n collapseSummary,\n highlight,\n } = element.props;\n\n const isExpanded = collapseId === expanded;\n const summary =\n (isExpanded && collapseLabel) || collapseSummary || collapseLabel;\n\n return (\n onChange(collapseId)}>\n {\n buttonRefs.current[collapseId] = ref;\n if (buttonRef) {\n buttonRef.current = ref;\n }\n }}\n classes={{\n root: clsx(classes.accordionSummary, {\n [classes.expansionPanelSummaryValid]:\n !isExpanded && highlight,\n }),\n content: classes.expansionPanelSummaryContent,\n }}>\n {typeof summary === \"string\" ? (\n \n {summary}\n \n ) : (\n summary\n )}\n \n \n \n \n \n );\n })}\n
\n );\n};\n\nexport default CollapsibleOptions;\n\nexport const CollapsibleOptionItem = ({\n buttonRef,\n children,\n collapseId,\n collapseLabel,\n collapseSummary,\n highlight,\n}) => children;\n","import CollapsibleOptions, {\n CollapsibleOptionItem,\n} from \"./CollapsibleOptions\";\n\nexport default CollapsibleOptions;\nexport { CollapsibleOptionItem };\n","import React, { useState } from \"react\";\nimport Button from \"@material-ui/core/Button\";\nimport TextField from \"@material-ui/core/TextField\";\nimport Typography from \"@material-ui/core/Typography\";\nimport { makeRootStyles } from \"../../../theme/styles\";\nimport { config } from \"../../../config\";\n\nexport const useStyles = makeRootStyles(\n (theme) => ({\n root: {\n width: \"100%\",\n padding: theme.spacing(0, 3, 3),\n display: \"flex\",\n flexDirection: \"column\",\n flexGrow: 1,\n backgroundColor: theme.palette.common.white,\n },\n helperText: {},\n input: {\n margin: theme.spacing(2, 0),\n flex: 1,\n },\n inputMultiline: {\n height: \"100%\",\n alignItems: \"flex-start\",\n },\n submitButton: {},\n }),\n { name: \"N0ReturnComment\" },\n);\n\nconst ReturnComment = ({ item, onContinue, required, value }) => {\n const classes = useStyles();\n const [comment, setComment] = useState(value || \"\");\n\n return (\n {\n event.preventDefault();\n onContinue(comment);\n }}>\n \n {config.translations.choose_items_comment_helper_text}:\n \n setComment(value)}\n placeholder={\n required\n ? config.translations.choose_items_comment_required_placeholder\n : config.translations.choose_items_comment_optional_placeholder\n }\n value={comment}\n variant=\"outlined\"\n />\n \n \n {config.translations.choose_items_comment_continue_label}\n \n \n \n );\n};\n\nexport default ReturnComment;\n","import React, { useState, useCallback, useEffect, useMemo } from \"react\";\nimport { makeRootStyles } from \"../../../theme/styles\";\nimport Typography from \"@material-ui/core/Typography\";\nimport CloseIcon from \"@material-ui/icons/Close\";\n\nexport const useStyles = makeRootStyles(\n (theme) => ({\n previewImage: {\n maxWidth: 100,\n maxHeight: 100,\n marginLeft: \"auto\",\n marginRight: \"auto\",\n display: \"block\",\n },\n previewWrapper: {\n width: 100,\n height: 100,\n marginRight: 10,\n position: \"relative\",\n },\n icon: {\n position: \"absolute\",\n right: 5,\n top: 5,\n backgroundColor: \"white\",\n opacity: 0.7,\n mixBlendMode: \"normal\",\n height: 20,\n borderRadius: 20,\n },\n }),\n { name: \"N0PicturePreview\" },\n);\nconst PicturePreview = ({ picture, removePicture }) => {\n const classes = useStyles();\n const lUrl = URL.createObjectURL(picture);\n return (\n
\n removePicture(picture)}\n />\n \n
\n );\n};\n\nexport default PicturePreview;\n","import React, { useState, useCallback, useMemo } from \"react\";\nimport { makeRootStyles } from \"../../../theme/styles\";\nimport Typography from \"@material-ui/core/Typography\";\nimport { useDropzone } from \"react-dropzone\";\nimport PicturePreview from \"./PicturePreview\";\nimport PhotoLibraryIcon from \"@material-ui/icons/PhotoLibrary\";\nimport uniq from \"lodash/uniq\";\nimport Button from \"@material-ui/core/Button\";\nimport { config } from \"../../../config\";\nimport { flatten } from \"lodash/fp\";\n\nexport const useStyles = makeRootStyles(\n (theme) => ({\n root: {\n width: \"100%\",\n padding: theme.spacing(0, 3, 3),\n display: \"flex\",\n flexDirection: \"column\",\n flexGrow: 1,\n backgroundColor: theme.palette.common.white,\n },\n previewSection: {\n display: \"flex\",\n marginBottom: 20,\n },\n helperText: {\n marginBottom: 15,\n },\n dropzoneText: {\n marginTop: 10,\n color: \"#999\",\n },\n errorText: {\n color: \"red\",\n marginTop: 20,\n },\n submitButton: {},\n }),\n { name: \"N0PictureUpload\" },\n);\n\nconst errorDictionary = {\n \"file-invalid-type\":\n config.translations.choose_items_upload_pictures_error_invalid_type,\n \"file-too-large\":\n config.translations.choose_items_upload_pictures_error_file_size,\n \"too-many-files\":\n config.translations.choose_items_upload_pictures_error_too_many,\n};\n\nconst PictureUpload = ({\n pictures = [],\n setPicturesForItem,\n onContinue,\n required,\n}) => {\n const classes = useStyles();\n // const [pictures, setPictures] = useState([])\n const [errorMessage, setErrorMessage] = useState();\n\n const onDrop = useCallback(\n (acceptedFiles, rejectedFiles) => {\n if (pictures.length > 2) {\n setErrorMessage(errorDictionary[\"too-many-files\"]);\n } else {\n const newPics = [...pictures, ...acceptedFiles];\n setPicturesForItem(newPics);\n }\n if (rejectedFiles.length > 0) {\n const msg = uniq(\n flatten(rejectedFiles.map((file) => file.errors.map((e) => e.code))),\n ).reduce((memo, error) => {\n return memo + errorDictionary[error] + \" \";\n }, \"\");\n setErrorMessage(msg);\n } else {\n setErrorMessage(null);\n }\n },\n [pictures, setPicturesForItem, setErrorMessage],\n );\n\n const { getRootProps, getInputProps, isDragActive } = useDropzone({\n onDrop,\n accept: \"image/*\",\n maxFiles: 2,\n maxSize: 10000000,\n });\n\n const removePicture = (picture) => {\n const newPics = pictures.filter((oldpic) => picture != oldpic);\n setPicturesForItem(newPics);\n };\n\n const baseDropzoneStyle = {\n display: \"flex\",\n height: 150,\n backgroundColor: \"#f6f6f6\",\n borderColor: \"#999\",\n borderWidth: 2,\n borderStyle: \"dashed\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n color: \"#999\",\n marginBottom: 20,\n };\n\n const smallerDropZoneStyle = {\n height: 80, // The thumbnails take some space, so make it shorter\n };\n\n const activeDropzoneStyle = {\n backgroundColor: \"#ccc\",\n };\n\n const dropzoneStyle = useMemo(\n () => ({\n ...baseDropzoneStyle,\n ...(isDragActive ? activeDropzoneStyle : {}),\n ...(pictures.length > 0 ? smallerDropZoneStyle : {}),\n }),\n [isDragActive, pictures],\n );\n\n return (\n
\n {pictures.length < 2 && (\n \n {config.translations.choose_items_upload_pictures_error_too_many}\n \n )}\n {pictures.length < 2 && (\n
\n \n {\n <>\n \n \n {config.translations.choose_items_upload_add_photos}\n \n \n }\n
\n )}\n
\n {pictures &&\n pictures.map((picture) => (\n \n ))}\n
\n {errorMessage && (\n {errorMessage}\n )}\n\n \n \n {config.translations.choose_items_comment_continue_label}\n \n \n
\n );\n};\n\nexport default PictureUpload;\n","import React, { useState, useMemo, useEffect } from \"react\";\nimport clsx from \"clsx\";\nimport sortBy from \"lodash/sortBy\";\n\nimport Button from \"@material-ui/core/Button\";\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\nimport Grid from \"@material-ui/core/Grid\";\nimport MenuItem from \"@material-ui/core/MenuItem\";\nimport TextField from \"@material-ui/core/TextField\";\nimport Link from \"@material-ui/core/Link\";\nimport Typography from \"@material-ui/core/Typography\";\nimport { config } from \"../../../config\";\nimport { getMostSimilarVariantsForSelection } from \"../../../modules/items\";\nimport { makeRootStyles } from \"../../../theme/styles\";\n\nimport Sparsem, {\n UNAVAILABLE_IN_THIS_SET,\n UNAVAILABLE_IN_ANY_SET,\n} from \"../../../modules/sparsem\";\nimport { useFrameDimensions } from \"../../../contexts/frameDimensions\";\n\nexport const useStyles = makeRootStyles(\n (theme) => ({\n root: {\n height: \"calc(100% - 3.125em)\",\n display: \"flex\",\n flexDirection: \"column\",\n width: \"100%\",\n },\n select: {\n marginTop: theme.spacing(2),\n },\n content: {\n paddingTop: theme.spacing(2),\n paddingBottom: theme.spacing(3),\n },\n helperText: {},\n availabilityStatus: {},\n optionInputValue: {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n },\n optionMenuItem: {\n whiteSpace: \"normal\",\n },\n optionUnavailable: {\n color: theme.palette.text.hint,\n },\n shopNowContainer: {},\n }),\n { name: \"N0ExchangeItemDetails\" },\n);\n\nconst ExchangeItemDetails = ({\n item,\n loading,\n onConfirm,\n onChange,\n selectedItem,\n variants,\n variantsOptions,\n}) => {\n const classes = useStyles();\n const { initiated, dimensions, bottomOfViewport, topOfViewport } =\n useFrameDimensions();\n\n const [localVariants, setLocalVariants] = useState({});\n\n // It is possible for an item to have no variant options, when a Shopify\n // product does not have any variant options and we set\n // `shop.variant_option_exclusion = ['title']` in our backend.\n const hasOptions = variantsOptions?.length > 0;\n\n // HACK:\n // Fixing the jumping focus issue of select menu input in consumer app.\n //\n // Due to the dimension of iframe's viewport refers to the width and height of\n // iframe (not the window's width and height). The initial position of popover\n // content (the select menu) might be rendered out of the visible area of the\n // window, which causes the jumping focus. For web accessibility, material UI\n // components should always auto-focus to the popover / modal / select menu,\n // the following hack is going to perform the auto-focus manually and to\n // adjust the initial position of the popover content.\n //\n // Events flow:\n // Select.onOpen > Menu.onEnter > Menu.onEntering > Menu.onEntered\n const [activeSelectInputEl, setActiveSelectInputEl] = useState(null);\n const [popoverEl, setPopoverEl] = useState(null);\n const [popoverPosition, setPopoverPosition] = useState({});\n const selectInputProps = useMemo(\n () => ({\n onOpen: (event) =>\n setActiveSelectInputEl(event.target.closest(\".MuiSelect-root\")), // remember the TextField(select input) on UI\n onClose: (event) => {\n // cleanup\n setActiveSelectInputEl(null);\n setPopoverEl(null);\n },\n MenuProps: {\n autoFocus: false, // disable auto-focus on menu item, this cause MUI to focus on the menu (.MuiMenu-paper) instead\n TransitionProps: {\n onEnter: (popover) => {\n popover.parentElement.style.top = `${\n window.parentData?.scrollY || 0\n }px`; // adjust the initial position of the popover backdrop (.MuiPopover-root[role=presentation])\n },\n onEntering: (popover) => {\n popover.parentElement.style.top = \"0px\"; // reset the backdrop position\n activeSelectInputEl?.focus(); // focus on the select input, so that if the select menu is closed, there is no jumping focus when MUI tries to focus back to the select input.\n popover.focus(); // focus on the popover menu\n popover.querySelector('[tabindex=\"0\"]')?.focus(); // focus on any selected option\n setPopoverEl(popover);\n\n // HACK:\n // when popover select menu show up, manually adjust the vertical position so\n // that it won't go outside the viewport.\n const top = parseInt(popover.style.top || 0);\n const height =\n popover.querySelector(\"ul\")?.clientHeight || popover.clientHeight;\n const bottomFromTop = top + height;\n const padding = 20;\n const viewportHeight = dimensions.viewportHeight;\n if (height + padding * 2 > viewportHeight) {\n setPopoverPosition({\n top: `${topOfViewport(padding)}px`,\n bottom: `${bottomOfViewport(padding)}px`,\n });\n } else {\n const viewportTop = topOfViewport(padding);\n const viewportBottomFromTop = topOfViewport(viewportHeight);\n if (top < viewportTop) {\n setPopoverPosition({\n top: `${viewportTop}px`,\n bottom: \"\",\n });\n } else if (bottomFromTop > viewportBottomFromTop) {\n const diff = bottomFromTop - viewportBottomFromTop + padding;\n setPopoverPosition({\n top: `${top - diff}px`,\n bottom: \"\",\n });\n }\n }\n },\n },\n },\n }),\n [activeSelectInputEl],\n );\n\n // Apply popover position style when dimensions change (eg. scrolling), fix\n // popover to a specific location to prevent MUI adjust it. Thus, improve the\n // flicking/jumping UI cause by the incompatible of MUI and long iframe.\n useEffect(() => {\n if (popoverEl && initiated) {\n const popover = popoverEl;\n for (let key in popoverPosition) {\n popover.style[key] = popoverPosition[key];\n }\n }\n }, [popoverEl, popoverPosition, initiated, dimensions]);\n\n useEffect(() => {\n setLocalVariants(selectedItem?.variantInfoMap || {});\n }, [selectedItem]);\n\n const variantSelected = useMemo(\n () =>\n variants.find((v) =>\n v.variantInfo.every((i) => localVariants[i.name] === i.value),\n ),\n [localVariants, variants],\n );\n const isValidVariant = variantSelected && variantSelected.available;\n const areAllVariantsOutOfStock = variants.every(\n (variant) => !variant.available,\n );\n\n const variantPreview = useMemo(() => {\n const filtered = getMostSimilarVariantsForSelection(\n variants,\n variantsOptions,\n localVariants,\n );\n\n return filtered[0] || item;\n }, [item, localVariants, variants, variantsOptions]);\n\n const sparsemVariants = variants\n .filter((variant) => variant.available)\n .map((variant) => {\n return variant.variantInfo.map((v) => v.value);\n });\n const sparsemOptions = variantsOptions.map((option) => option.values);\n\n const sparsem = new Sparsem();\n sparsem.setArr(sparsemVariants, sparsemOptions);\n\n const getVariantValueForOption = (optionName) => {\n const value = localVariants[optionName];\n if (\n value &&\n variantsOptions.some(\n (option) => option.name === optionName && option.values.includes(value),\n )\n ) {\n return value;\n }\n return \"\";\n };\n\n const createChangeVariantHandler =\n (name) =>\n ({ target }) => {\n const { value } = target;\n const newVariants = {\n ...localVariants,\n [name]: value,\n };\n setLocalVariants(newVariants);\n onChange(newVariants);\n };\n\n const handleShopNow = (e) => {\n if (e) e.stopPropagation();\n onConfirm({\n available: true,\n isStoreCredit: true,\n variantInfo: [],\n variantInfoMap: {},\n });\n };\n\n const handleConfirm = (e) => {\n if (e) e.stopPropagation();\n if (!isValidVariant) return;\n\n onConfirm(variantSelected);\n };\n\n const variantSelectedAvailable = variantSelected && variantSelected.available;\n const title = variantPreview.option0 || item.productTitle || item.name;\n\n return (\n
\n
\n {hasOptions &&\n config.translations\n .choose_items_choose_exchange_variant_helper_text && (\n \n {\n config.translations\n .choose_items_choose_exchange_variant_helper_text\n }\n \n )}\n {variantPreview.availabilityStatus && (\n \n {variantPreview.availabilityStatus}\n \n )}\n\n {variantsOptions.map((variant) => {\n const value = getVariantValueForOption(variant.name);\n\n const sparsemQuery = variantsOptions.map((v) =>\n v.name === variant.name ? null : localVariants[v.name],\n );\n const sparsemResult = sparsem.search(sparsemQuery);\n\n const availability = variant.values.reduce((acc, value) => {\n acc[value] =\n sparsemResult[value] == UNAVAILABLE_IN_THIS_SET ||\n sparsemResult[value] == UNAVAILABLE_IN_ANY_SET;\n return acc;\n }, {});\n const unavailableText = variant.values.reduce((acc, value) => {\n if (sparsemResult[value] == UNAVAILABLE_IN_THIS_SET) {\n acc[value] =\n \" \" +\n config.translations\n .choose_items_choose_exchange_variant_not_available_in_selected;\n } else if (sparsemResult[value] == UNAVAILABLE_IN_ANY_SET) {\n acc[value] =\n \" \" +\n config.translations\n .choose_items_choose_exchange_variant_not_available;\n }\n return acc;\n }, {});\n\n const sortedVariantValues = config.sortExchangeVariantsByAvailability\n ? sortBy(variant.values, (v) => !!availability[v])\n : variant.values;\n\n const variantHeader = `${config.translations.choose_items_choose_exchange_variant_label_general} ${variant.name}`;\n\n return (\n \n loading ? (\n \n ) : (\n \n {val || variantHeader}\n {unavailableText && unavailableText[val] && (\n \n {unavailableText[val]}\n \n )}\n \n ),\n ...selectInputProps,\n }}>\n \n {variantHeader}\n \n {sortedVariantValues.map((val) => (\n \n {val}\n {unavailableText && unavailableText[val]}\n \n ))}\n \n );\n })}\n {hasOptions &&\n config.isShopNowEnabled &&\n config.isShopNowWithCreditEnabled && (\n
\n \n {\n config.translations\n .choose_items_choose_exchange_variant_shopnow_action_description\n }\n \n \n {\n config.translations\n .choose_items_choose_exchange_variant_shopnow_action_link\n }\n \n
\n )}\n
\n \n \n \n \n \n \n \n
\n );\n};\nexport default ExchangeItemDetails;\n","import React, { useState, useEffect, useMemo, useCallback } from \"react\";\nimport Typography from \"@material-ui/core/Typography\";\nimport {\n compose,\n defaultTo,\n find,\n fromPairs,\n get,\n map,\n toPairs,\n} from \"lodash/fp\";\n\nimport { config } from \"../../../config\";\nimport useEvenExchangeProduct from \"../../../data/evenExchangeProduct\";\nimport { makeRootStyles } from \"../../../theme/styles\";\nimport ExchangeItemDetails from \"./ExchangeItemDetails\";\nimport {\n buildVariantInfoMap,\n buildVariants,\n buildVariantsOptionsFallback,\n} from \"../../../modules/items\";\nimport locale from \"../../../../shared/modules/lang\";\n\nexport const useStyles = makeRootStyles(\n (theme) => ({\n unavailableContent: {\n paddingTop: theme.spacing(2),\n paddingBottom: theme.spacing(2),\n paddingLeft: theme.spacing(1),\n paddingRight: theme.spacing(1),\n },\n }),\n { name: \"N0ExchangeItemWizard\" },\n);\n\nconst ExchangeItemWizard = ({\n exchangeItem,\n lineItem,\n onConfirm,\n onChange,\n orderFetchData,\n}) => {\n const classes = useStyles();\n const orderPresentmentCurrency = get(\n \"order.presentmentCurrency\",\n orderFetchData,\n );\n\n const productId = lineItem.productId;\n const productVariantName = lineItem.productTitle;\n const { result, status } = useEvenExchangeProduct({\n query: productVariantName,\n price: lineItem.priceAmount,\n compareAtPrice: lineItem.compareAtPriceAmount,\n productId: productId || \"\",\n variantId: lineItem.variantId,\n currency: orderPresentmentCurrency,\n locale: locale,\n displayPrice: lineItem.displayPrice,\n });\n\n const isUnavailableForSale = !status.loading && !result;\n\n const item = useMemo(\n () => ({\n ...lineItem,\n variantInfoMap: buildVariantInfoMap(lineItem.variantInfo),\n }),\n [lineItem],\n );\n\n const selectedItem = result;\n\n const variants = useMemo(\n () => (result ? buildVariants(result) : [item]),\n [item, result],\n );\n const variantsOptions = useMemo(\n () =>\n selectedItem ? selectedItem.options : buildVariantsOptionsFallback(item),\n [item, selectedItem],\n );\n\n const onChangeHandler = useCallback(\n (variants) => {\n const variantsPairs = toPairs(variants);\n const filter = compose(\n fromPairs,\n map(([key, value]) =>\n compose(\n (pos) => [`option${pos}`, value],\n get(\"position\"),\n defaultTo({}),\n find({ name: key }),\n )(selectedItem.options),\n ),\n )(variantsPairs);\n const selectedVariants = find(filter)(selectedItem.variantInfo || []);\n if (selectedVariants) {\n onChange({\n ...selectedVariants,\n name: selectedVariants.displayName,\n productImageAltTxt: selectedVariants.imageAlt,\n productImageUrl: selectedVariants.imageSrc,\n variantInfo: map(([name, value]) => ({ name, value }))(variantsPairs),\n });\n }\n },\n [selectedItem],\n );\n\n if (isUnavailableForSale) {\n return (\n
\n \n {config.translations.choose_items_exchange_wizard_unavailable_title}\n \n
\n );\n }\n\n return (\n \n );\n};\nexport default ExchangeItemWizard;\n","import React, { useMemo, forwardRef, useState, useEffect } from \"react\";\nimport Button from \"@material-ui/core/Button\";\nimport Link from \"@material-ui/core/Link\";\nimport List from \"@material-ui/core/List\";\nimport ListItem from \"@material-ui/core/ListItem\";\nimport Typography from \"@material-ui/core/Typography\";\nimport map from \"lodash/map\";\nimport startCase from \"lodash/startCase\";\nimport clsx from \"clsx\";\n\nimport { config } from \"../../../config\";\nimport { makeRootStyles } from \"../../../theme/styles\";\nimport ExchangeItemThumbnail from \"../ExchangeItemWizard/ExchangeItemThumbnail\";\nimport ItemThumbnail from \"./ItemThumbnail\";\nimport { ACTION_HEIGHT_SPACING, getPadding } from \"../utils\";\nimport {\n useReturnStepsActions,\n useReturnStepsState,\n} from \"../../../contexts/returnSteps\";\nimport ExchangeItemWizard from \"../ExchangeItemWizard/ExchangeItemWizard\";\nimport PictureUpload from \"./PictureUpload\";\n\nexport const useStyles = makeRootStyles(\n (theme) => ({\n thumbContainer: {\n position: \"relative\",\n },\n disabledOpacity: {\n opacity: 0.5,\n },\n thumb: {},\n details: {\n display: \"flex\",\n flexGrow: 1,\n backgroundColor: theme.palette.common.white,\n padding: getPadding(theme),\n boxSizing: \"border-box\",\n position: \"relative\",\n maxWidth: \"100%\",\n },\n detailsSelected: {\n cursor: \"auto\",\n },\n sm: {\n flexDirection: \"column\",\n \"& $thumbContainer\": {\n marginBottom: getPadding(theme),\n },\n \"& $thumb\": {\n width: \"100%\",\n height: theme.spacing(36),\n [theme.breakpoints.up(\"sm\")]: {\n height: theme.spacing(52),\n },\n [theme.breakpoints.up(\"md\")]: {\n height: theme.spacing(26),\n },\n },\n \"& $typePickerContainer\": {\n background:\n \"linear-gradient(to top, rgba(255, 255, 255, 1) 66%, rgba(255, 255, 255, 0.75) 100%)\",\n },\n },\n lg: {\n flexDirection: \"row\",\n paddingRight: 38, // hotfix, make select menu in single item view won't overlap the \"close\" icon\n \"& $thumbContainer\": {\n marginRight: getPadding(theme),\n },\n \"& $thumb\": {\n width: theme.spacing(30),\n height: theme.spacing(30),\n [theme.breakpoints.up(\"md\")]: {\n width: theme.spacing(35),\n height: theme.spacing(35),\n },\n },\n },\n descriptionContainer: {\n flex: 1,\n flexDirection: \"column\",\n display: \"flex\",\n position: \"relative\",\n },\n description: {\n flex: 1,\n maxWidth: \"100%\",\n },\n exchangeTitle: {},\n name: {\n marginBottom: theme.spacing(2),\n },\n price: {},\n variant: {},\n ineligibleReason: {\n marginTop: theme.spacing(1),\n },\n editCommentButton: {\n height: theme.spacing(3),\n marginTop: theme.spacing(1),\n },\n editPictureButton: {\n height: theme.spacing(3),\n marginTop: theme.spacing(1),\n },\n fullSizeContainer: {\n position: \"absolute\",\n zIndex: 1,\n left: 0,\n top: 0,\n width: \"100%\",\n height: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"flex-end\",\n alignItems: \"center\",\n },\n commentContainer: {\n backgroundColor: theme.palette.background.paper,\n },\n pictureUploadContainer: {\n backgroundColor: theme.palette.background.paper,\n marginTop: theme.spacing(2),\n },\n typePickerContainer: {},\n typePickerContainerRow: {\n [theme.breakpoints.up(\"md\")]: {\n flexDirection: \"row\",\n justifyContent: \"center\",\n alignItems: \"flex-end\",\n \"& $typePickerButton\": {\n marginBottom: theme.spacing(0),\n marginRight: theme.spacing(2),\n },\n },\n },\n typePickerButton: {\n marginBottom: theme.spacing(1),\n },\n actions: {\n display: \"flex\",\n flexDirection: \"column\",\n minHeight: theme.spacing(ACTION_HEIGHT_SPACING),\n marginTop: theme.spacing(2),\n marginBottom: -theme.spacing(0.5),\n gap: theme.spacing(1),\n [theme.breakpoints.up(\"md\")]: {\n flexDirection: \"row\",\n flexWrap: \"wrap\",\n },\n },\n ineligibleReasonItem: {\n fontWeight: \"bold\",\n },\n }),\n { name: \"N0ItemDetails\" },\n);\n\nconst ItemDetails = forwardRef(\n (\n {\n className,\n disabled,\n enableExchange,\n item,\n onToggleExchangeVariants,\n onChoose,\n onShowComment,\n openComment,\n openPictures,\n setOpenPictures,\n setPicturesForItem,\n photoUploadEnabled,\n photoUploadRequired,\n renderComment,\n renderSelectors,\n setUserHasContinuedPastPictures,\n size,\n state,\n style,\n orderFetchData,\n },\n ref,\n ) => {\n const classes = useStyles();\n const appState = useReturnStepsState() || {};\n const actions = useReturnStepsActions();\n\n const [showExchangeVariants, setShowExchangeVariants] = useState(false);\n const [exchangeVariants, setExchangeVariants] = useState(state.exchange); // intermediate item while selection exchange variants\n const localItem = useMemo(\n () =>\n (showExchangeVariants && exchangeVariants) || state.exchange || item,\n [item, state.exchange, showExchangeVariants, exchangeVariants],\n );\n useEffect(() => {\n setShowExchangeVariants(\n (showExchangeVariants) => state.selected && showExchangeVariants,\n );\n }, [state.selected]);\n useEffect(() => {\n setExchangeVariants(state.exchange);\n }, [state.exchange]);\n\n useEffect(() => {\n onToggleExchangeVariants(showExchangeVariants);\n }, [showExchangeVariants]);\n\n const isReturn = state.type === \"return\";\n const isExchange = state.type === \"exchange\";\n const isExchangeStoreCredit = state.isStoreCredit;\n const isUnknown = !isReturn && !isExchange;\n\n const handleChooseReturn = (e) => {\n if (e) e.stopPropagation();\n\n if (disabled) return;\n\n onChoose(\n item,\n item.returnableQuantity === 1\n ? { quantity: 1, type: \"return\" }\n : { type: \"return\" },\n );\n };\n\n const handleChooseExchange = (exchange) => {\n if (disabled) return;\n\n const selection = { type: \"exchange\", exchange };\n if (item.returnableQuantity === 1) selection.quantity = 1;\n onChoose(item, selection);\n setShowExchangeVariants(false);\n };\n\n const handleChoose = () => {\n if (disabled) return;\n\n if (openComment || openPictures) return;\n\n if (enableExchange) {\n if (!isUnknown) {\n if (isExchange) {\n setShowExchangeVariants(true);\n }\n return;\n }\n\n return onChoose(item, { type: null });\n }\n\n handleChooseReturn();\n };\n\n const returnButtonText = appState.guestReturn\n ? config.translations.choose_items_return_item_button_label_gift\n : config.translations.choose_items_return_item_button_label;\n const price = localItem.priceFormatted || localItem.displayPrice;\n\n const itemSelectors = renderSelectors && size === \"lg\" && renderSelectors();\n\n return (\n \n \n {isExchange || isExchangeStoreCredit ? (\n \n ) : (\n \n )}\n
\n\n
\n
\n {showExchangeVariants && (\n \n {config.translations.choose_items_exchange_wizard_title}\n \n )}\n \n \n {!localItem.hideDisplayPrice && (\n \n {price}\n \n )}\n {map(localItem.variantInfo, (variantInfo, i) => (\n \n {startCase(variantInfo.name)}: {variantInfo.value}\n \n ))}\n
\n {!state.eligible && (\n \n {state.ineligibleReason.map((r) => (\n \n \n \n ))}\n \n )}\n {renderComment && state.selected && state.comment != null && (\n \n {\n event.stopPropagation();\n onShowComment(true);\n }}>\n {state.comment\n ? config.translations.choose_items_edit_comment\n : config.translations.choose_items_add_comment}\n \n
\n )}\n {photoUploadEnabled && state.selected && (\n \n {\n event.stopPropagation();\n setOpenPictures(true);\n }}>\n {state.pictures.length > 0\n ? `${config.translations.choose_items_upload_pictures_edit_pictures} (${state.pictures.length})`\n : config.translations\n .choose_items_upload_pictures_add_pictures}\n \n
\n )}\n {state.selected && isUnknown && !showExchangeVariants && (\n \n {item.allowReturn && !showExchangeVariants && (\n \n \n \n )}\n {item.allowExchange && !showExchangeVariants && (\n {\n setShowExchangeVariants(true);\n }}\n size=\"medium\"\n variant=\"contained\"\n fullWidth>\n \n \n )}\n
\n )}\n {showExchangeVariants && (\n \n )}\n \n {itemSelectors && (\n e.stopPropagation()}>\n {itemSelectors}\n \n )}\n \n {renderComment && openComment && (\n \n {renderComment({ state })}\n \n )}\n {photoUploadEnabled && openPictures && (\n \n \n setPicturesForItem(state, pictures)\n }\n onContinue={() => {\n setOpenPictures(false);\n setUserHasContinuedPastPictures(true);\n }}\n required={photoUploadRequired}\n />\n \n )}\n \n );\n },\n);\nItemDetails.displayName = \"ItemDetails\";\nexport default ItemDetails;\n","import React from \"react\";\nimport { alpha } from \"@material-ui/core/styles\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport clsx from \"clsx\";\n\nimport { makeRootStyles } from \"../../../theme/styles\";\n\nexport const useStyles = makeRootStyles(\n (theme) => ({\n root: {\n display: \"flex\",\n position: \"relative\",\n \"&:hover\": {\n cursor: \"pointer\",\n },\n },\n removeButton: {\n position: \"absolute\",\n top: theme.spacing(1),\n right: theme.spacing(1),\n zIndex: 2,\n backgroundColor: alpha(theme.palette.common.white, 0.75),\n },\n card: {\n display: \"flex\",\n flexDirection: \"column\",\n width: \"100%\",\n height: \"100%\",\n },\n sm: {\n minHeight: theme.spacing(49),\n },\n lg: {\n minHeight: theme.spacing(25),\n },\n }),\n { name: \"N0ItemBase\" },\n);\n\nconst ItemBase = ({ children, item, onRemove, size = \"sm\", state }) => {\n const classes = useStyles();\n\n return (\n
\n {state.selected && (\n onRemove(item)}>\n \n \n )}\n
{children}
\n
\n );\n};\nexport default ItemBase;\n","import React from \"react\";\nimport MenuList from \"@material-ui/core/MenuList\";\nimport MenuItem from \"@material-ui/core/MenuItem\";\nimport clsx from \"clsx\";\n\nimport { makeRootStyles } from \"../../../theme/styles\";\nimport { ACTION_HEIGHT_SPACING, getBorderSelected, getPadding } from \"../utils\";\n\nexport const useStyles = makeRootStyles(\n (theme) => ({\n root: {\n width: \"100%\",\n maxHeight: 300,\n overflowY: \"auto\",\n },\n disabled: {},\n action: {\n border: getBorderSelected(theme),\n boxSizing: \"border-box\",\n backgroundColor: theme.palette.common.white,\n },\n menuList: {\n borderTop: getBorderSelected(theme),\n },\n menuListItemRoot: {\n minHeight: theme.spacing(ACTION_HEIGHT_SPACING),\n whiteSpace: \"normal\",\n },\n menuListItemGutters: {\n paddingLeft: getPadding(theme),\n paddingRight: getPadding(theme),\n },\n itemLabel: {\n color: theme.palette.primary.main,\n padding: 0,\n \"&$disabled\": {\n opacity: 1,\n },\n },\n actionsSmall: {\n borderTopWidth: 0,\n },\n }),\n { name: \"N0ItemMenuList\" },\n);\n\nconst ItemMenuList = ({ onChange, options, placeholder, value }) => {\n const classes = useStyles();\n\n const selectItemClasses = {\n root: classes.menuListItemRoot,\n gutters: classes.menuListItemGutters,\n };\n\n return (\n \n {placeholder && (\n \n {placeholder}\n \n )}\n {options.map((option) => (\n onChange(option.value)}\n selected={option.value === value}\n value={option.value}>\n {option.label}\n \n ))}\n \n );\n};\nexport default ItemMenuList;\n","import { useMemo } from \"react\";\n\nconst useReturnState = ({\n disabled,\n item,\n itemIneligibleReasons,\n selectedState,\n}) => {\n const state = useMemo(\n () => ({\n eligible: item.someReasonsEligible,\n ineligibleReason: itemIneligibleReasons || [],\n returnReason: null,\n childReturnReason: { returnReason: null },\n comment: null,\n quantity: null,\n pictures: [],\n ...selectedState,\n selected: !!selectedState,\n }),\n [item.someReasonsEligible, itemIneligibleReasons, selectedState],\n );\n\n const eligible = disabled ? false : state.eligible;\n const isReturn = state.type === \"return\";\n const isExchange = state.type === \"exchange\";\n const isUnknown = !isReturn && !isExchange;\n\n return {\n eligible,\n isExchange,\n isReturn,\n isUnknown,\n state,\n };\n};\nexport default useReturnState;\n","import { useState, useEffect, useMemo } from \"react\";\nimport range from \"lodash/range\";\nimport get from \"lodash/get\";\nimport sortBy from \"lodash/sortBy\";\nimport keyBy from \"lodash/keyBy\";\nimport find from \"lodash/find\";\n\nconst isEscKey = (e) =>\n (e.key === \"Escape\" || e.key === \"Esc\" || e.keyCode === 27) &&\n e.target.nodeName === \"BODY\";\n\nconst useItemSelectors = ({\n isReturn,\n isExchange,\n item,\n onChangeChildReason,\n onChangeComment,\n onChangeQuantity,\n onChangeReason,\n selectedState,\n state,\n orderFetchData = {},\n}) => {\n const isUnknown = !isReturn && !isExchange;\n const photoUploadEnabled =\n orderFetchData[\"returnReasonsById\"] &&\n orderFetchData.returnReasonsById[state.returnReason] &&\n orderFetchData.returnReasonsById[state.returnReason].enableCustomerPictures;\n const photoUploadRequired =\n orderFetchData[\"returnReasonsById\"] &&\n orderFetchData.returnReasonsById[state.returnReason] &&\n orderFetchData.returnReasonsById[state.returnReason]\n .requireCustomerPictures;\n\n const isCommentMandatory = useMemo(() => {\n if (!orderFetchData) return false;\n\n const parentReason = find(orderFetchData.returnReasons, {\n id: state.returnReason,\n });\n\n const childReason =\n parentReason &&\n find(orderFetchData.returnReasons, {\n id: state.childReturnReason?.returnReason,\n });\n\n return parentReason?.isCommentMandatory || childReason?.isCommentMandatory;\n }, [state.returnReason, state.childReturnReason?.returnReason]);\n\n const childrenReturnReason = useMemo(() => {\n const childrenReasons = item.eligibilityCriteria.filter(\n (i) => i.returnReasonParent === state.returnReason,\n );\n if (childrenReasons.length) return childrenReasons;\n return null;\n }, [item.eligibilityCriteria, state.returnReason]);\n\n const [openReasonsSelect, setOpenReasonsSelect] = useState(false);\n const [openChildReasonsSelect, setOpenChildReasonsSelect] = useState(false);\n const [openQuantitySelect, setOpenQuantitySelect] = useState(false);\n const [openPictures, setOpenPictures] = useState(false);\n const [openComment, setOpenComment] = useState(false);\n const [confirmedInComment, setConfirmedInComment] = useState(false);\n const [userHasContinuedPastPictures, setUserHasContinuedPastPictures] =\n useState(false);\n\n const handleChangeReason = (returnReason) => {\n onChangeReason(\n item,\n item.eligibilityCriteria.find((c) => c.returnReason === returnReason),\n );\n };\n\n const handleChangeChildReason = (returnReason) => {\n onChangeChildReason(\n item,\n item.eligibilityCriteria.find((c) => c.returnReason === returnReason),\n );\n };\n\n const handleChangeQuantity = (quantity) => {\n onChangeQuantity(item, quantity);\n };\n\n const handleChangeComment = (comment) => {\n setConfirmedInComment(true);\n onChangeComment(item, comment);\n };\n\n // Return & Exchange types\n useEffect(() => {\n if (!state) return;\n\n setOpenPictures(() => {\n if (state.pictures.length > 0) return false;\n if (!state.returnReason) return false;\n if (state.childReturnReason && !state.childReturnReason.returnReason) {\n return false;\n }\n if (!photoUploadEnabled) return false;\n if (!photoUploadRequired && userHasContinuedPastPictures) return false;\n if (!state.quantity) return false;\n if (!state.eligible) return false;\n\n return true;\n });\n }, [state]);\n\n // Return & Exchange types\n useEffect(() => {\n if (!state) return;\n if (!orderFetchData) return;\n\n setOpenComment(() => {\n if (!state.returnReason) return false;\n if (state.childReturnReason && !state.childReturnReason.returnReason) {\n return false;\n }\n\n if (!state.quantity) return false;\n if (!state.eligible) return false;\n if (item.requirePicture && state.pictures.length == 0) return false;\n\n if (!confirmedInComment) return true;\n if (isCommentMandatory) {\n if (\n !state.comment ||\n typeof state.comment !== \"string\" ||\n !state.comment.trim()\n ) {\n return true;\n }\n }\n\n return false;\n });\n }, [state]);\n\n // Return & Exchange types\n useEffect(() => {\n if (!state || isUnknown || !state.selected) {\n setOpenReasonsSelect(false);\n setOpenChildReasonsSelect(false);\n setOpenQuantitySelect(false);\n setOpenPictures(false);\n setOpenComment(false);\n return;\n }\n\n if (!state.returnReason) {\n return setOpenReasonsSelect(true);\n }\n setOpenReasonsSelect(false);\n\n if (childrenReturnReason && !state.childReturnReason?.returnReason) {\n return setOpenChildReasonsSelect(true);\n }\n setOpenChildReasonsSelect(false);\n\n if (!state.quantity && item.returnableQuantity > 1 && state.eligible) {\n return setOpenQuantitySelect(true);\n }\n setOpenQuantitySelect(false);\n }, [isUnknown, childrenReturnReason, item.returnableQuantity, state]);\n\n const returnReasonsById = keyBy(get(orderFetchData, \"returnReasons\"), \"id\");\n\n const buildReturnReasonsOptions = () => {\n if (!state.selected || isUnknown) return;\n\n const options = item.eligibilityCriteria\n .filter((i) => !i.returnReasonParent)\n .map((criteria) => ({\n label: criteria.returnReasonTitle,\n value: criteria.returnReason,\n }));\n return sortBy(options, (o) => {\n return returnReasonsById[o.value] && returnReasonsById[o.value].priority;\n });\n };\n\n const buildChildReturnReasonsOptions = () => {\n if (\n !state.selected ||\n isUnknown ||\n !state.returnReason ||\n !childrenReturnReason\n ) {\n return;\n }\n\n const options = childrenReturnReason.map((criteria) => ({\n label: criteria.returnReasonTitle,\n value: criteria.returnReason,\n }));\n return sortBy(options, (o) => {\n return returnReasonsById[o.value].priority;\n });\n };\n\n const buildQuantityOptions = () => {\n if (!state.selected || isUnknown || item.returnableQuantity <= 1) {\n return;\n }\n\n return range(1, item.returnableQuantity + 1).map((qty) => ({\n label: qty,\n value: qty,\n }));\n };\n\n const returnReasonsOptions = buildReturnReasonsOptions();\n const childReturnReasonsOptions = buildChildReturnReasonsOptions();\n const quantityOptions = buildQuantityOptions();\n\n return {\n childReturnReasonsOptions,\n isUnknown,\n isCommentMandatory,\n openChildReasonsSelect,\n openComment,\n openPictures,\n openQuantitySelect,\n openReasonsSelect,\n confirmedInComment,\n quantityOptions,\n returnReasonsOptions,\n setUserHasContinuedPastPictures,\n setOpenChildReasonsSelect,\n setOpenComment,\n setOpenPictures,\n setOpenQuantitySelect,\n setOpenReasonsSelect,\n setConfirmedInComment,\n onChangeChildReason: handleChangeChildReason,\n onChangeComment: handleChangeComment,\n onChangeQuantity: handleChangeQuantity,\n onChangeReason: handleChangeReason,\n photoUploadEnabled,\n photoUploadRequired,\n };\n};\nexport default useItemSelectors;\n","import React, {\n useRef,\n useMemo,\n useState,\n useCallback,\n useEffect,\n} from \"react\";\nimport Typography from \"@material-ui/core/Typography\";\nimport clsx from \"clsx\";\n\nimport { config } from \"../../../config\";\nimport { makeRootStyles } from \"../../../theme/styles\";\nimport CollapsibleOptions, {\n CollapsibleOptionItem,\n} from \"../CollapsibleOptions\";\nimport ReturnComment from \"./ReturnComment\";\nimport PictureUpload from \"./PictureUpload\";\nimport ItemDetails from \"./ItemDetails\";\nimport ItemBase from \"./ItemBase\";\nimport { getBorderSelected, getBorderUnselected, getPadding } from \"../utils\";\nimport ItemMenuList from \"./ItemMenuList\";\nimport useReturnState from \"./use-return-state\";\nimport useItemSelectors from \"./use-item-selectors\";\n\nexport const useStyles = makeRootStyles(\n (theme) => ({\n collapsibleOption: {\n \"&:after\": {\n content: \"' '\",\n display: \"block\",\n position: \"absolute\",\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n border: getBorderUnselected(theme),\n pointerEvents: \"none\",\n },\n },\n collapsibleOptionSelected: {\n \"&:after\": {\n border: getBorderSelected(theme),\n },\n },\n optionLabel: {\n paddingRight: theme.spacing(2),\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n },\n }),\n { name: \"N0ItemCollapsible\" },\n);\n\nconst ItemCollapsible = ({\n addExtraSpace,\n enableExchange,\n disabled,\n item,\n itemIneligibleReasons,\n onChangeContinuePending,\n onChangeQuantity,\n onChangeReason,\n onChangeChildReason,\n onChangeComment,\n onChoose,\n onRemove,\n setPicturesForItem,\n selectedState,\n size = \"sm\",\n orderFetchData,\n}) => {\n const classes = useStyles();\n const detailsSummaryRef = useRef();\n const itemDetailsRef = useRef();\n\n const { eligible, isExchange, isReturn, isUnknown, state } = useReturnState({\n disabled,\n item,\n itemIneligibleReasons,\n selectedState,\n });\n\n const {\n childReturnReasonsOptions,\n isCommentMandatory,\n openChildReasonsSelect,\n openComment,\n openPictures,\n openQuantitySelect,\n openReasonsSelect,\n confirmedInComment,\n quantityOptions,\n returnReasonsOptions,\n setOpenChildReasonsSelect,\n setOpenComment,\n setOpenPictures,\n setOpenQuantitySelect,\n setOpenReasonsSelect,\n setConfirmedInComment,\n onChangeChildReason: handleChangeChildReason,\n onChangeComment: handleChangeComment,\n onChangeQuantity: handleChangeQuantity,\n onChangeReason: handleChangeReason,\n setUserHasContinuedPastPictures,\n photoUploadEnabled,\n photoUploadRequired,\n } = useItemSelectors({\n isReturn,\n isExchange,\n item,\n onChangeChildReason,\n onChangeComment,\n onChangeQuantity,\n onChangeReason,\n selectedState,\n state,\n orderFetchData,\n });\n const { returnReasonsById = {} } = orderFetchData || {};\n\n const returnReasonSummary = useMemo(() => {\n const reason = returnReasonsById[state.returnReason];\n return reason && reason.reasonTitle;\n }, [returnReasonsById, state.returnReason]);\n\n const childReturnReasonSummary = useMemo(() => {\n const reason =\n state.childReturnReason &&\n returnReasonsById[state.childReturnReason.returnReason];\n return reason && reason.reasonTitle;\n }, [returnReasonsById, state.childReturnReason]);\n\n const quantitySummary =\n state.quantity &&\n `${config.translations.choose_items_quantity_label}: ${state.quantity}`;\n\n const pictureSummary =\n state.pictures.length > 0 &&\n `${config.translations.choose_items_upload_pictures_summary}: ${state.pictures.length}`;\n\n const expanded = useMemo(() => {\n if (openReasonsSelect) return \"return-reason\";\n if (openChildReasonsSelect) return \"return-child-reason\";\n if (openQuantitySelect) return \"quantity\";\n if (openPictures) return \"upload-pictures\";\n if (openComment) return \"comments\";\n return \"details\";\n }, [\n openReasonsSelect,\n openChildReasonsSelect,\n openQuantitySelect,\n openPictures,\n openComment,\n ]);\n\n const isSelected = state.selected && !isUnknown;\n\n const detailsSummaryHeight = useMemo(() => {\n if (!detailsSummaryRef.current) return;\n return detailsSummaryRef.current.offsetHeight;\n }, [detailsSummaryRef.current]);\n\n const requiredConfirm =\n expanded === \"upload-pictures\" || expanded === \"comments\";\n useEffect(() => {\n onChangeContinuePending(item, requiredConfirm);\n }, [item, requiredConfirm]);\n\n const handleChangeExpanded = (expandedId) => {\n setOpenReasonsSelect(expandedId === \"return-reason\");\n setOpenChildReasonsSelect(expandedId === \"return-child-reason\");\n setOpenQuantitySelect(expandedId === \"quantity\");\n setOpenPictures(expandedId === \"upload-pictures\");\n setOpenComment(expandedId === \"comments\");\n };\n\n const handleToggleExchangeVariants = useCallback(\n (toggle) => onChangeContinuePending(item, toggle),\n [item],\n );\n\n const handleOnRemove = useCallback(\n (...args) => {\n setConfirmedInComment(false);\n setUserHasContinuedPastPictures(false);\n return onRemove(...args);\n },\n [onRemove],\n );\n\n return (\n \n \n \n }\n highlight>\n \n \n\n {returnReasonsOptions && (\n \n \n \n )}\n\n {childReturnReasonsOptions && (\n \n \n \n )}\n\n {quantityOptions && (\n \n \n \n )}\n\n {photoUploadEnabled && isSelected && (\n \n \n setPicturesForItem(state, pictures)\n }\n onContinue={() => {\n setOpenPictures(false);\n setUserHasContinuedPastPictures(true); // don't keep popping this up if user has declined to upload picture initially\n setPicturesForItem(state, state.pictures); // update the state, trigger recompute of `useItemSelectors` hook\n }}\n required={photoUploadRequired}\n />\n \n )}\n\n {isSelected && (\n \n {\n handleChangeExpanded(\"details\");\n handleChangeComment(comment || \"\");\n }}\n required={isCommentMandatory}\n value={state.comment}\n />\n \n )}\n \n \n );\n};\nexport default ItemCollapsible;\n","import React, { useCallback, useRef, useMemo } from \"react\";\nimport Collapse from \"@material-ui/core/Collapse\";\nimport FormControl from \"@material-ui/core/FormControl\";\nimport MenuList from \"@material-ui/core/MenuList\";\nimport OutlinedInput from \"@material-ui/core/OutlinedInput\";\nimport ArrowDropDownIcon from \"@material-ui/icons/ArrowDropDown\";\nimport PropTypes from \"prop-types\";\n\nimport { useElementSize } from \"../../../shared/modules/hooks\";\nimport { makeRootStyles } from \"../../theme/styles\";\n\nconst useStyles = makeRootStyles(\n (theme) => ({\n menuContainer: {\n position: \"absolute\",\n left: -3,\n bottom: 0,\n width: \"100%\",\n zIndex: 2,\n },\n }),\n { name: \"N0Select\" },\n);\n\nconst useInputStyles = makeRootStyles(\n (theme) => ({\n root: {\n height: \"100%\",\n lineHeight: `${theme.spacing(3)}px`,\n position: \"relative\",\n borderRadius: 0,\n fontFamily: theme.typography.secondaryFontFamily,\n },\n input: {\n paddingTop: theme.spacing(1),\n paddingBottom: theme.spacing(1),\n paddingLeft: theme.spacing(3) - 3,\n paddingRight: theme.spacing(0.5),\n fontWeight: \"bold\",\n fontFamily: \"inherit\",\n },\n notchedOutline: {\n border: \"0 none\",\n },\n }),\n { name: \"N0SelectInput\" },\n);\n\nfunction Select({\n children,\n classes: parentClasses,\n onChange,\n onClose,\n onOpen,\n open,\n value,\n ...props\n}) {\n const anchorRef = useRef(null);\n const classes = useStyles();\n const inputClasses = useInputStyles();\n const { width } = useElementSize(anchorRef.current);\n\n const handleChange = useCallback(\n function handleChange(selectedValue) {\n onChange(selectedValue);\n onClose();\n },\n [onChange, onClose],\n );\n\n const mappedChildren = useMemo(\n () =>\n React.Children.map(children, (element) => {\n if (element.props.disabled) return element;\n\n return (\n handleChange(element.props.value)}\n selected={element.props.value === value}\n />\n );\n }),\n [children, handleChange, value],\n );\n\n const label = useMemo(() => {\n const element = mappedChildren.find((el) => el.props.value === value);\n return element.props.children;\n }, [mappedChildren, value]);\n\n return (\n \n }\n onClick={onOpen}\n value={label}\n readOnly\n />\n
\n \n \n {mappedChildren}\n \n \n
\n \n );\n}\nSelect.propTypes = {\n children: PropTypes.node,\n classes: PropTypes.shape({\n root: PropTypes.string,\n menuList: PropTypes.string,\n }),\n onChange: PropTypes.func,\n onClose: PropTypes.func,\n onOpen: PropTypes.func,\n open: PropTypes.bool,\n value: PropTypes.any,\n};\nexport default React.memo(Select);\n","import Select from \"./Select\";\nexport default Select;\n","import React, { Fragment } from \"react\";\nimport MenuItem from \"@material-ui/core/MenuItem\";\nimport clsx from \"clsx\";\n\nimport Select from \"../../../components/select\";\nimport { config } from \"../../../config\";\nimport { makeRootStyles } from \"../../../theme/styles\";\nimport { getBorderSelected } from \"../utils\";\n\nconst BORDER_WIDTH_SELECTED = 3;\nconst ACTION_HEIGHT_SPACING = 6;\n\nexport const useStyles = makeRootStyles(\n (theme) => ({\n disabled: {},\n action: {\n border: getBorderSelected(theme),\n boxSizing: \"border-box\",\n backgroundColor: theme.palette.common.white,\n },\n menuList: {\n borderTop: getBorderSelected(theme),\n borderRight: getBorderSelected(theme),\n borderLeft: getBorderSelected(theme),\n backgroundColor: theme.palette.common.white,\n maxHeight: theme.spacing(43), // about 350px on desktop. ItemCollapsible is used on smaller devices\n overflowY: \"auto\",\n },\n menuListItemRoot: {\n minHeight:\n theme.spacing(ACTION_HEIGHT_SPACING) - BORDER_WIDTH_SELECTED * 2,\n },\n menuListItemGutters: {\n paddingLeft: theme.spacing(3) - BORDER_WIDTH_SELECTED,\n paddingRight: theme.spacing(3) - BORDER_WIDTH_SELECTED,\n whiteSpace: \"normal\",\n },\n itemLabel: {\n color: theme.palette.primary.main,\n \"&$disabled\": {\n opacity: 1,\n },\n },\n actionsLarge: {\n height: theme.spacing(ACTION_HEIGHT_SPACING),\n width: `calc(50% - ${theme.spacing(0.5)}px)`,\n },\n actionsSmall: {\n height: theme.spacing(ACTION_HEIGHT_SPACING) - BORDER_WIDTH_SELECTED,\n borderTopWidth: 0,\n },\n }),\n { name: \"N0ItemSelectors\" },\n);\n\nconst ItemSelectors = ({\n childReturnReasonsOptions,\n onChangeChildReason,\n onChangeQuantity,\n onChangeReason,\n openChildReasonsSelect,\n openQuantitySelect,\n openReasonsSelect,\n quantityOptions,\n returnReasonsOptions,\n setOpenChildReasonsSelect,\n setOpenQuantitySelect,\n setOpenReasonsSelect,\n state,\n variant,\n}) => {\n const classes = useStyles();\n\n const toggleQuantitySelect = () =>\n setOpenQuantitySelect((current) => !current);\n\n const toggleReasonsSelect = () => setOpenReasonsSelect((current) => !current);\n\n const toggleChildReasonsSelect = () =>\n setOpenChildReasonsSelect((current) => !current);\n\n const showChildReason = state.returnReason && childReturnReasonsOptions;\n const showQuantity =\n state.returnReason &&\n (!showChildReason || state.childReturnReason?.returnReason) &&\n quantityOptions;\n\n const selectClasses = {\n root: clsx(classes.action, {\n [classes.actionsLarge]: variant === \"large\",\n [classes.actionsSmall]: variant === \"small\",\n }),\n menuList: classes.menuList,\n };\n\n const selectItemClasses = {\n root: classes.menuListItemRoot,\n gutters: classes.menuListItemGutters,\n };\n\n return (\n \n \n \n {config.translations.choose_items_select_reason_prompt}\n \n {returnReasonsOptions.map((option) => (\n \n {option.label}\n \n ))}\n \n {showChildReason && (\n <>\n \n \n {config.translations.choose_items_select_subreason_prompt}\n \n {childReturnReasonsOptions.map((option) => (\n \n {option.label}\n \n ))}\n \n \n )}\n {showQuantity && (\n \n \n {config.translations.choose_items_select_quantity_prompt}\n \n {quantityOptions.map((option) => (\n \n {option.label}\n \n ))}\n \n )}\n \n );\n};\nexport default ItemSelectors;\n","import React, { useCallback, useEffect } from \"react\";\nimport Typography from \"@material-ui/core/Typography\";\nimport clsx from \"clsx\";\nimport { makeRootStyles } from \"../../../theme/styles\";\nimport ReturnComment from \"./ReturnComment\";\nimport {\n ACTION_HEIGHT_SPACING,\n getBorderSelected,\n getBorderUnselected,\n} from \"../utils\";\nimport ItemDetails from \"./ItemDetails\";\nimport ItemSelectors from \"./ItemSelectors\";\nimport ItemBase from \"./ItemBase\";\nimport useItemSelectors from \"./use-item-selectors\";\nimport useReturnState from \"./use-return-state\";\nimport { config } from \"../../../config\";\n\nexport const useStyles = makeRootStyles(\n (theme) => ({\n collapsibleOption: {\n \"&:after\": {\n content: \"' '\",\n display: \"block\",\n position: \"absolute\",\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n border: getBorderUnselected(theme),\n pointerEvents: \"none\",\n zIndex: 1,\n },\n },\n collapsibleOptionSelected: {\n \"&:after\": {\n border: getBorderSelected(theme),\n },\n },\n actions: {\n minHeight: theme.spacing(ACTION_HEIGHT_SPACING),\n },\n actionsExtraSpace: {\n minHeight: theme.spacing(12),\n },\n additionalCommentsTitle: {\n width: \"100%\",\n padding: theme.spacing(3, 3, 1),\n },\n }),\n { name: \"N0ItemDefault\" },\n);\n\nconst ItemDefault = ({\n addExtraSpace,\n enableExchange,\n disabled,\n item,\n itemIneligibleReasons,\n onChangeContinuePending,\n onChangeQuantity,\n onChangeReason,\n onChangeChildReason,\n onChangeComment,\n onChoose,\n onRemove,\n setPicturesForItem,\n selectedState,\n size = \"sm\",\n orderFetchData,\n}) => {\n const classes = useStyles();\n\n const { eligible, isExchange, isReturn, isUnknown, state } = useReturnState({\n disabled,\n item,\n itemIneligibleReasons,\n selectedState,\n });\n const {\n isCommentMandatory,\n childReturnReasonsOptions,\n openChildReasonsSelect,\n openComment,\n openPictures,\n openQuantitySelect,\n openReasonsSelect,\n confirmedInComment,\n quantityOptions,\n returnReasonsOptions,\n setUserHasContinuedPastPictures,\n setOpenChildReasonsSelect,\n setOpenComment,\n setOpenPictures,\n setOpenQuantitySelect,\n setOpenReasonsSelect,\n setConfirmedInComment,\n onChangeChildReason: handleChangeChildReason,\n onChangeComment: handleChangeComment,\n onChangeQuantity: handleChangeQuantity,\n onChangeReason: handleChangeReason,\n photoUploadEnabled,\n photoUploadRequired,\n } = useItemSelectors({\n isReturn,\n isExchange,\n item,\n onChangeChildReason,\n onChangeComment,\n onChangeQuantity,\n onChangeReason,\n selectedState,\n state,\n orderFetchData,\n });\n\n const isSelected = state.selected && !isUnknown;\n\n const requiredConfirm = openPictures || openComment;\n useEffect(() => {\n onChangeContinuePending(item, requiredConfirm);\n }, [item, requiredConfirm]);\n\n const renderSelectors = ({ variant }) => {\n if (!isSelected) return null;\n\n return (\n \n );\n };\n\n const handleToggleExchangeVariants = useCallback(\n (toggle) => onChangeContinuePending(item, toggle),\n [item],\n );\n\n const onRemoveHandler = useCallback(\n (...args) => {\n setConfirmedInComment(false);\n setUserHasContinuedPastPictures(false);\n return onRemove(...args);\n },\n [onRemove],\n );\n\n return (\n \n \n (\n <>\n \n {config.translations.choose_items_comment_title}\n \n {\n setOpenComment(false);\n handleChangeComment(comment);\n }}\n required={isCommentMandatory}\n value={state.comment}\n />\n \n )}\n renderSelectors={() => renderSelectors({ variant: \"large\" })}\n size={size}\n state={state}\n />\n \n \n );\n};\nexport default ItemDefault;\n","import React from \"react\";\n\nimport ItemCollapsible from \"./ItemCollapsible\";\nimport ItemDefault from \"./ItemDefault\";\n\nconst Item = ({ size = \"sm\", ...rest }) => {\n const Component = size === \"sm\" ? ItemCollapsible : ItemDefault;\n return ;\n};\nexport default Item;\n","import Item from \"./Item\";\n\nexport default Item;\n","import React, { FunctionComponent, ReactNode } from \"react\";\nimport Typography from \"@material-ui/core/Typography\";\nimport { makeStyles } from \"@material-ui/core/styles\";\n\nconst useStyles = makeStyles(\n () => ({\n root: {\n marginBottom: 8,\n display: \"block\",\n },\n }),\n { name: \"N0FieldLabel\" },\n);\n\nconst FieldLabel = ({ children, className, ...props }) => {\n const classes = useStyles();\n\n return (\n \n {children}\n \n );\n};\nexport default FieldLabel;\n","import escapeStringRegexp from \"escape-string-regexp\";\nimport maxBy from \"lodash/maxBy\";\nimport { flatten } from \"lodash/fp\";\n\nexport const IN_STOCK = \"in-stock\";\nexport const UNAVAILABLE_IN_THIS_SET = \"not available in this set\";\nexport const UNAVAILABLE_IN_ANY_SET = \"not available in any set\";\n\nexport default class Sparsem {\n constructor() {\n this.SEP = \"\\t\";\n this.BLANK = \"__BLANK__\";\n }\n\n setArr(inp, opts) {\n const patchBlankOptions = (opts) => opts.map((opt) => opt ?? this.BLANK);\n this.inp = inp;\n this.arr = inp.map((x) => patchBlankOptions(x).join(this.SEP));\n this.opts = opts;\n this.num = opts.length;\n }\n\n search(options = []) {\n const str = flatten(\n options.map((option, i) => {\n if (i >= this.num) return;\n if (option) return escapeStringRegexp(option);\n return \".{1,}\";\n }),\n ).join(this.SEP);\n\n const out = this.arr\n .filter((x) => x.match(new RegExp(`^${str}$`)))\n .map((x) => x.split(this.SEP));\n\n const missingIdx = options.indexOf(null);\n\n // TODO: remove\n if (!this.opts[missingIdx]) return {};\n\n const result = this.opts[missingIdx].reduce((ret, val) => {\n ret[val ?? \"\"] = out.some((x) => x[missingIdx] === val)\n ? IN_STOCK\n : this.inp.some((x) => x[missingIdx] === val)\n ? UNAVAILABLE_IN_THIS_SET\n : UNAVAILABLE_IN_ANY_SET;\n return ret;\n }, {});\n\n return result;\n }\n\n /**\n * Select an available item which matches the most given options, then return\n * its options.\n * @param {string[]} options The selected options, e.g. ['Graphic Tee', 'Navy Stripe', null]\n * @returns {string[]}\n */\n select(options) {\n const result = maxBy(this.inp, (availableItem) =>\n availableItem.reduce((score, itemOption, index) => {\n const match = options[index] === itemOption;\n return match ? score + 1 : score;\n }, 0),\n );\n return result;\n }\n}\n","import React, { useCallback, useEffect, useState } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport Link from \"@material-ui/core/Link\";\nimport Typography from \"@material-ui/core/Typography\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\n\nimport { config } from \"../../config\";\nimport { makeRootStyles } from \"../../theme/styles\";\nimport { useCancelReturn } from \"../../data/cancelReturn\";\nimport ConfirmationDialog from \"../../../shared/components/modal/ConfirmationDialog\";\n\nconst useStyles = makeRootStyles(\n (theme) => ({\n orderNumber: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n orderNumberText: {},\n exitButton: {\n display: \"flex\",\n },\n exitIcon: {},\n cancelReturnsContainer: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexDirection: \"row\",\n marginTop: theme.spacing(2),\n },\n cancel: {},\n }),\n { name: \"N0OrderLookupDetails\" },\n);\n\nfunction OrderLookupDetails({ details, email, returnHistory, onExitScreen }) {\n const classes = useStyles();\n const { cancelReturn, cancelStatus } = useCancelReturn();\n const [open, setOpen] = useState(false);\n\n const hasCancellableReturns =\n (!config.isNthUi && returnHistory?.length > 0) ||\n (config.isNthUi && returnHistory?.filter((r) => r.cancellable)?.length > 0);\n\n useEffect(() => {\n // TODO: cancelStatus loading and error handling\n if (!cancelStatus.loading && cancelStatus.data) {\n onExitScreen();\n }\n }, [cancelStatus, onExitScreen]);\n\n const showCancelReturn = () => setOpen(true);\n\n const cancelCancelReturn = () => setOpen(false);\n\n const confirmCancelReturn = useCallback(\n function confirmCancelReturn() {\n setOpen(false);\n\n cancelReturn({\n orderNumber: details.orderNumber,\n email,\n });\n },\n [details.orderNumber, cancelReturn],\n );\n\n return (\n <>\n
\n \n {config.translations.order_lookup_order_number} {details.orderNumber}\n \n {!cancelStatus.loading && (\n \n \n \n )}\n
\n {\n !cancelStatus.loading && cancelStatus.error && (\n Error\n ) // TODO: have a global consumer app error snackbar.\n }\n {hasCancellableReturns && (\n
\n {cancelStatus.loading && (\n \n )}\n {!cancelStatus.loading && !cancelStatus.data && (\n <>\n \n {config.translations.order_lookup_option_return_progress}\n  \n \n \n \n \n )}\n {cancelStatus.data && (\n \n )}\n
\n )}\n \n );\n}\nOrderLookupDetails.propTypes = {\n details: PropTypes.object,\n email: PropTypes.string,\n returnHistory: PropTypes.array,\n onExitScreen: PropTypes.func,\n};\nexport default React.memo(OrderLookupDetails);\n","const n3 = {\n example: \"123\",\n regex: /^[0-9]{3}$/,\n};\nconst n4 = {\n example: \"1234\",\n regex: /^[0-9]{4}$/,\n};\nconst n5 = {\n example: \"12345\",\n regex: /^[0-9]{5}$/,\n};\nconst n6 = {\n example: \"123456\",\n regex: /^[0-9]{6}$/,\n};\nconst n7 = {\n example: \"1234567\",\n regex: /^[0-9]{7}$/,\n};\n\nexport default {\n AD: {\n example: \"12345, AA123\",\n regex: /^[0-9A-Za-z]{2}[0-9]{3}$/,\n },\n AM: n4,\n AR: n4,\n AS: n5,\n AT: n4,\n AU: n4,\n AZ: {\n example: \"1234, 123456\",\n regex: /^([0-9]{4}|[0-9]{6})$/,\n },\n BA: n5,\n BD: n4,\n BE: n4,\n BG: n4,\n BN: {\n example: \"AB1234\",\n regex: /^[a-zA-Z]{2}[0-9]{4}$/,\n },\n BR: {\n example: \"12345, 12345-678, 12345678\",\n regex: /^([0-9]{5}-[0-9]{3}|[0-9]{8}|[0-9]{5})$/,\n },\n BY: n6,\n CA: {\n example: \"A1B 2C, A1B 2C3\",\n regex: /^[a-zA-Z][0-9][a-zA-Z] [0-9][a-zA-Z][0-9]?$/,\n },\n CH: n4,\n CN: n6,\n CO: n6,\n CU: n5,\n CY: n4,\n CZ: {\n example: \"123 45\",\n regex: /^[0-9]{3} [0-9]{2}$/,\n },\n DE: n5,\n DK: n4,\n DZ: n5,\n EC: n6,\n EE: n5,\n ES: n5,\n FI: n5,\n FM: n5,\n FO: n3,\n FR: n5,\n GB: {\n example: \"EC1A 1BB\",\n regex: /^([a-zA-Z][a-zA-Z]?[0-9][0-9]?[a-zA-Z]?) [0-9][a-zA-Z]{2}$/,\n },\n GE: n4,\n GF: n5,\n GG: {\n example: \"EC1A 1BB\",\n regex: /^([a-zA-Z][a-zA-Z]?[0-9][0-9]?[a-zA-Z]?) [0-9][a-zA-Z]{2}$/,\n },\n GU: {\n example: \"12345, 12345-1234\",\n regex: /^[0-9]{5}(-[0-9]{4})?$/,\n },\n HR: n5,\n HU: n4,\n IC: n5,\n ID: n5,\n IL: n7,\n IN: n6,\n IS: n3,\n IT: n5,\n JE: {\n example: \"EC1 1BB\",\n regex: /^([a-zA-Z][a-zA-Z]?[0-9][0-9]?[a-zA-Z]?) [0-9][a-zA-Z]{2}$/,\n },\n JP: {\n example: \"123-1234\",\n regex: /^[0-9]{3}-[0-9]{4}$/,\n },\n KG: n6,\n KH: n6,\n KR: n5,\n KV: n5,\n KZ: n6,\n LI: n4,\n LT: n5,\n LU: n4,\n LV: n4,\n MA: n5,\n MC: n5,\n MD: n4,\n ME: n5,\n MG: n3,\n MH: n5,\n MK: n4,\n MN: {\n example: \"12345, 123456\",\n regex: /^[0-9]{5}[0-9]?$/,\n },\n MP: n5,\n MQ: n5,\n MV: {\n example: \"1234, 12345\",\n regex: /^([0-9]{4}|[0-9]{5})$/,\n },\n MX: n5,\n MY: n5,\n NC: n5,\n NL: {\n example: \"1234, 1234 AB\",\n regex: /^[0-9]{4}( [a-zA-Z]{2})?$/,\n },\n NO: n4,\n NZ: n4,\n PF: n5,\n PG: n3,\n PH: n4,\n PK: n5,\n PL: {\n example: \"12-123\",\n regex: /^[0-9]{2}-[0-9]{3}$/,\n },\n PR: n5,\n PT: {\n example: \"1234-123\",\n regex: /^[0-9]{4}-[0-9]{3}$/,\n },\n PW: n5,\n RE: n5,\n RO: n6,\n RS: n5,\n RU: n6,\n SE: {\n example: \"123 12\",\n regex: /^[0-9]{3} [0-9]{2}$/,\n },\n SG: n6,\n SH: {\n example: \"ABCD 1AB\",\n regex: /^[a-zA-Z]{4} [0-9][a-zA-Z]{2}$/,\n },\n SI: n4,\n SK: {\n example: \"123 12\",\n regex: /^[0-9]{3} [0-9]{2}$/,\n },\n SM: n5,\n SZ: {\n example: \"A1234\",\n regex: /^[a-zA-Z][0-9]{4}$/,\n },\n TH: n5,\n TM: n6,\n TN: n4,\n TR: n5,\n TW: {\n example: \"123, 12345\",\n regex: /^([0-9]{3}|[0-9]{5})$/,\n },\n UA: n5,\n US: {\n example: \"12345, 12345-1234\",\n regex: /^[0-9]{5}(-[0-9]{4})?$/,\n },\n UZ: n6,\n VI: n5,\n XY: n5,\n YT: n5,\n ZA: n4,\n};\n","import React, { useState, useMemo, useEffect, useCallback } from \"react\";\nimport PropTypes from \"prop-types\";\nimport isEmpty from \"lodash/isEmpty\";\nimport isObject from \"lodash/isObject\";\nimport { difference, isFunction, negate, pick, noop } from \"lodash/fp\";\n\nimport Grid from \"@material-ui/core/Grid\";\nimport TextField from \"@material-ui/core/TextField\";\nimport Autocomplete from \"@material-ui/lab/Autocomplete\";\nimport Typography from \"@material-ui/core/Typography\";\n\nimport { makeRootStyles } from \"../../theme/styles\";\nimport { useStatesList } from \"../../../shared/modules/regions\";\nimport { countryCodes, getConfig } from \"../../../shared/modules/config\";\nimport { config } from \"../../config\";\nimport ZipValidation from \"./ZipValidation\";\nimport ButtonBusy from \"../../../shared/components/form/ButtonBusy\";\nimport { getCountryNameByCode, mergeAddress } from \"../../modules/address\";\nimport { assertAllFieldsBy } 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 autocompleteInputField: {\n marginBottom: 0,\n paddingBottom: 0,\n },\n autocompleteEndAdornment: {\n top: 0,\n paddingBottom: 0,\n },\n autocompleteInputRoot: {\n paddingBottom: 0,\n maxHeight: \"48px\",\n },\n }),\n { name: \"N0MailingAddressForm\" },\n);\n\nconst MailingAddressForm = ({\n address: initialAddress,\n onSubmit,\n onChange,\n disable,\n exclude,\n submitLabel,\n extraValidation,\n validateZip,\n isBusy,\n notesEnabled,\n size,\n}) => {\n const classes = useStyles();\n const [fromAddress, updateFromAddress] = useState(\n mergeAddress(initialAddress),\n );\n const [autoCompleteNames, setAutoCompleteNames] = useState({});\n\n // TODO: use useLazyQuery here to only make an API call when countryCode is entered by the user\n const { state: states } = useStatesList(fromAddress.countryCode || \"\");\n\n const handleInput =\n (key) =>\n (event, ...args) => {\n const updates = isFunction(key)\n ? key(event, ...args)\n : { [key]: event.target.value };\n updateFromAddress(mergeAddress(fromAddress, updates));\n };\n\n const {\n firstName = \"\",\n lastName = \"\",\n phone = \"\",\n address1 = \"\",\n address2 = \"\",\n city = \"\",\n province = \"\",\n provinceCode = \"\",\n zip = \"\",\n country = \"\",\n countryCode = \"\",\n notes = \"\",\n } = fromAddress;\n\n const countryCodesList =\n getConfig(\"country_codes\").length > 0\n ? getConfig(\"country_codes\")\n : countryCodes;\n\n useEffect(() => {\n const genRan = () => Math.random().toString(36).substring(7);\n setAutoCompleteNames({\n country: \"cc\" + genRan(),\n firstName: \"fn\" + genRan(),\n lastName: \"ln\" + genRan(),\n phone: \"ph\" + genRan(),\n line1: \"add1\" + genRan(),\n line2: \"add2\" + genRan(),\n city: \"cty\" + genRan(),\n province: \"pvnc\" + genRan(),\n state: \"st\" + genRan(),\n zip: \"zp\" + genRan(),\n });\n }, []);\n\n const firstRowWidth =\n 12 / difference([\"firstName\", \"lastName\", \"phone\"], exclude).length;\n\n const zipExampleText =\n validateZip &&\n countryCode &&\n ZipValidation[countryCode] &&\n ZipValidation[countryCode].example;\n const lastRowWidth = zipExampleText ? 3 : 4;\n const zipValidate = useCallback(\n ({ zip, countryCode }) =>\n !validateZip ||\n !zip ||\n !countryCode ||\n !ZipValidation[countryCode] ||\n ZipValidation[countryCode].regex.test(zip),\n [validateZip, ZipValidation],\n );\n\n const validate = useCallback(\n (address) => {\n const statePresentWhenInUS =\n !(address?.countryCode == \"US\") || !isEmpty(address?.province);\n const requiredFields = difference(\n [\"firstName\", \"lastName\", \"address1\", \"city\", \"zip\", \"countryCode\"],\n exclude,\n );\n return (\n zipValidate(address) &&\n extraValidation() &&\n statePresentWhenInUS &&\n assertAllFieldsBy(negate(isEmpty), pick(requiredFields, address))\n );\n },\n [zipValidate, extraValidation, exclude],\n );\n\n const isZipValid = useMemo(\n () => zipValidate(fromAddress),\n [fromAddress, zipValidate],\n );\n const isValid = useMemo(() => validate(fromAddress), [fromAddress, validate]);\n\n // check disable flags from props or feature flags\n const disableCountry =\n disable?.includes(\"countryCode\") ||\n (config.isAddressProvinceDisabled && !!countryCode);\n\n // check disable flags from props or feature flags or country is filled\n const disableProvince =\n disable?.includes(\"province\") ||\n !fromAddress.countryCode ||\n (config.isAddressProvinceDisabled && !!province) ||\n (config.isAddressProvinceDisabled && !states.listStates?.length);\n\n useEffect(() => {\n onChange({ fromAddress, isValid: validate(fromAddress) });\n }, [fromAddress]);\n\n const handleSubmit = (event) => {\n event.preventDefault();\n onSubmit({ fromAddress, isValid });\n };\n\n // Disabled form auto-complete using combination of unique name, id, autoComplete field\n // https://adamsilver.io/blog/stopping-chrome-from-ignoring-autocomplete-off/\n return (\n
\n \n \n {\n if (isObject(countryCode)) return countryCode.country;\n return countryCode;\n }}\n renderInput={(params) => {\n const mutatedParams = {\n ...params,\n inputProps: {\n ...params.inputProps,\n autoComplete: autoCompleteNames[\"country\"],\n },\n InputProps: {\n ...params.InputProps,\n autoComplete: autoCompleteNames[\"country\"],\n },\n };\n return (\n \n );\n }}\n value={getCountryNameByCode(countryCode)}\n onChange={handleInput((event, newValue) => ({\n countryCode: newValue.country_code,\n }))}\n disableClearable\n classes={{\n root: classes.input,\n endAdornment: classes.autocompleteEndAdornment,\n inputRoot: classes.autocompleteInputRoot,\n }}\n ListboxProps={{\n style: { maxHeight: \"15rem\" },\n position: \"bottom-start\",\n }}\n disabled={disableCountry}\n />\n \n\n {!exclude.includes(\"firstName\") && (\n \n \n \n )}\n {!exclude.includes(\"lastName\") && (\n \n \n \n )}\n\n {!exclude.includes(\"phone\") && (\n \n \n \n )}\n\n \n \n \n\n \n \n \n\n \n \n \n\n \n {!disable?.includes(\"province\") &&\n fromAddress.countryCode &&\n states ? (\n {\n const mutatedParams = {\n ...params,\n inputProps: {\n ...params.inputProps,\n autoComplete: autoCompleteNames[\"province\"],\n },\n InputProps: {\n ...params.InputProps,\n autoComplete: autoCompleteNames[\"province\"],\n },\n };\n return (\n \n );\n }}\n options={states.listStates.map(({ region }) => region)}\n classes={{\n root: classes.input,\n endAdornment: classes.autocompleteEndAdornment,\n inputRoot: classes.autocompleteInputRoot,\n }}\n value={province}\n onChange={handleInput((event, newValue) => ({\n province: newValue || \"\",\n provinceCode:\n states?.listStates?.find((state) => state.region === newValue)\n ?.regionCode || \"\",\n }))}\n disabled={disableProvince}\n />\n ) : (\n \n )}\n \n\n \n \n \n\n {zipExampleText && (\n \n \n Format: {zipExampleText}\n \n \n )}\n\n {notesEnabled && (\n \n \n \n )}\n\n {!exclude.includes(\"submit\") && (\n \n \n {submitLabel}\n \n \n )}\n \n
\n );\n};\n\nMailingAddressForm.propTypes = {\n address: PropTypes.object.isRequired,\n onSubmit: PropTypes.func.isRequired,\n onChange: PropTypes.func,\n disable: PropTypes.arrayOf(\n PropTypes.oneOf([\n \"countryCode\",\n \"firstName\",\n \"lastName\",\n \"phone\",\n \"address1\",\n \"address2\",\n \"city\",\n \"province\",\n \"zip\",\n \"submit\",\n ]),\n ),\n exclude: PropTypes.arrayOf(\n PropTypes.oneOf([\"phone\", \"firstName\", \"lastName\", \"submit\"]),\n ),\n submitLabel: PropTypes.string,\n extraValidation: PropTypes.func,\n validateZip: PropTypes.bool,\n isBusy: PropTypes.bool,\n notesEnabled: PropTypes.bool,\n size: PropTypes.oneOf([\"small\", \"medium\", \"large\"]),\n};\n\nMailingAddressForm.defaultProps = {\n address: {},\n onChange: noop,\n disable: [],\n exclude: [\"phone\"],\n submitLabel: \"Submit\",\n extraValidation: () => true,\n validateZip: false,\n isBusy: false,\n notesEnabled: false,\n size: \"medium\",\n};\n\nexport default MailingAddressForm;\n","import { compose, fromPairs, map, toPairs } from \"lodash/fp\";\nimport errorNotifier from \"../../shared/modules/error-notifier\";\nimport { TEMPLATE_VAR_REGEX } from \"../../shared/modules/template\";\n\nexport const toNthTemplateString = (string, variableRenames = {}) => {\n try {\n string = string ?? \"\";\n let ret = string.replace(TEMPLATE_VAR_REGEX, \"{{$1}}\");\n toPairs(variableRenames).forEach(([from, to]) => {\n ret = ret.replace(new RegExp(`{{${from}}}`, \"g\"), `{{${to}}}`);\n });\n return ret;\n } catch (err) {\n console.warn(err);\n console.warn(`NTH Template conversion error: \"${string}\"`);\n err.message = \"NTH Template conversion error\";\n errorNotifier.warn(err, { template: string });\n return string;\n }\n};\n\nexport const toNthTemplateConfig = (config, variableRenames = {}) =>\n compose(\n fromPairs,\n map(([key, value]) => {\n return [key, toNthTemplateString(value, variableRenames[key])];\n }),\n toPairs,\n )(config);\n","import React, { useCallback, useMemo } from \"react\";\nimport {\n ViewportConfigProvider,\n ReturnsConfigProvider,\n useReturns,\n} from \"@narvar/nth-kit-returns-headless\";\n\nimport { darken, lighten } from \"@material-ui/core/styles\";\nimport { getBranding, getTranslation } from \"../../shared/modules/config\";\nimport { buildSansFontFamily } from \"../../shared/modules/fonts\";\nimport { useFrameDimensions } from \"./frameDimensions\";\nimport { openLabel } from \"../../shared/modules/frame\";\nimport { computeFontStyle } from \"../../shared/theme/styles\";\nimport { toNthTemplateConfig } from \"../modules/template\";\nimport { interpolate } from \"../../shared/modules/template\";\nimport { omit, snakeCase, startsWith } from \"lodash/fp\";\nimport {\n CONFIRMATION_STEP,\n useReturnStepIsActive,\n useReturnStepsState,\n} from \"./returnSteps\";\nimport noflake from \"../../shared/modules/noflake\";\nimport { config } from \"../config\";\nimport { featureFlaggedHook } from \"../../shared/modules/hooks\";\nimport {\n METHOD_KEEP_THE_ITEM,\n METHOD_SHIP_ON_YOUR_OWN,\n RETURN_CREDIT_METHOD_RESHOP,\n} from \"../../retailer-app/constants/returns\";\nimport {\n COMPLETE_PROFILE_CLICKED_EVENT,\n MANAGE_PROFILE_CLICKED_EVENT,\n MANAGE_PROFILE_CONFIRMATION_CLICKED_EVENT,\n countingEvent,\n useAbTesting,\n} from \"../data/abTesting\";\nimport { memoObjectByKeyValues } from \"../../shared/modules/object\";\nimport useConsumerSettings from \"../hooks/useConsumerSettings\";\nimport useClaims from \"../hooks/useClaims\";\n\nconst lomaUrl =\n config.environment === \"production\"\n ? \"https://loma.narvar.com/graphql\"\n : \"https://loma-st01.narvar.qa/graphql\";\n\nexport function NthContextProvider({ children }) {\n if (!config.isNthUi && !config.isNthLoginUi) return children; // skip all nth providers' specific data mapping\n\n const state = useReturnStepsState();\n const abTesting = useAbTesting();\n const { hasClaimItems, claimType } = useClaims();\n const isConfirmationStep = useReturnStepIsActive(CONFIRMATION_STEP);\n const { bottomOfViewport, topOfViewport } = useFrameDimensions();\n const externalLinkHandler = useCallback(\n (event) => {\n openLabel(event.url);\n\n if (startsWith(config.userPreferencesEndpoint, event.url)) {\n const event = !isConfirmationStep\n ? MANAGE_PROFILE_CLICKED_EVENT\n : state.savePreferences\n ? COMPLETE_PROFILE_CLICKED_EVENT\n : MANAGE_PROFILE_CONFIRMATION_CLICKED_EVENT;\n abTesting.trackResult(countingEvent(event));\n }\n },\n [openLabel, isConfirmationStep, state.savePreferences],\n );\n const viewportConfig = useMemo(\n () => ({\n anchor: {\n offsetTop: topOfViewport(0),\n offsetBottom: bottomOfViewport(0),\n },\n externalLinkHandler,\n }),\n [topOfViewport, bottomOfViewport, externalLinkHandler],\n );\n\n const translations = useMemo(() => {\n const isTrack = state.mode === \"track\";\n const isExchanging = state.selectingItem?.type === \"exchange\";\n const asyncLabel = state.submitReturnResultCode === \"label_retry_enqueued\";\n const noRefund = state.refundTotal === 0;\n const isGiftReturn = state.guestReturn;\n\n const confirmationTranslationsFactory = (type, carrier) => {\n const ts = {\n [`returnsConfirmation${type}ActionsPanelHeader`]:\n type === METHOD_SHIP_ON_YOUR_OWN || type === \"store\"\n ? getTranslation(\"return_confirmation_print_packing_slip_header\")\n : getTranslation(\"return_confirmation_print_label_header\"),\n [`returnsConfirmation${type}ActionsPanelMainButton`]:\n type === METHOD_SHIP_ON_YOUR_OWN || type === \"store\"\n ? getTranslation(\"return_confirmation_print_packing_slip\")\n : getTranslation(\"return_confirmation_print_label\"),\n [`returnsConfirmation${type}ActionsPanelTitle`]:\n type === METHOD_KEEP_THE_ITEM\n ? getTranslation(\"return_confirmation_title_keep_item\")\n : getTranslation(\"return_confirmation_title\"),\n [`returnsConfirmation${type}ActionsPanelDescription`]: getTranslation(\n asyncLabel\n ? \"return_confirmation_subtitle_label_retry_enqueued\"\n : type === METHOD_KEEP_THE_ITEM && noRefund\n ? \"return_confirmation_subtitle_keep_item_no_refund\"\n : type === METHOD_KEEP_THE_ITEM && !noRefund\n ? \"return_confirmation_subtitle_keep_item\"\n : \"return_confirmation_subtitle\",\n ),\n [`returnsConfirmation${type}Step1Title`]: interpolate(\n getTranslation(\n `return_confirmation_instructions_${type}_step_1_title`,\n ),\n { carrier_name: carrier },\n ),\n [`returnsConfirmation${type}Step1Details`]: interpolate(\n getTranslation(\n `return_confirmation_instructions_${type}_step_1_subtitle`,\n ),\n { carrier_name: carrier },\n ),\n [`returnsConfirmation${type}Step2Title`]: interpolate(\n getTranslation(\n `return_confirmation_instructions_${type}_step_2_title`,\n ),\n { carrier_name: carrier },\n ),\n [`returnsConfirmation${type}Step2Details`]: interpolate(\n getTranslation(\n `return_confirmation_instructions_${type}_step_2_subtitle`,\n ),\n { carrier_name: carrier },\n ),\n [`returnsConfirmation${type}Step3Title`]: interpolate(\n getTranslation(\n `return_confirmation_instructions_${type}_step_3_title`,\n ),\n { carrier_name: carrier },\n ),\n [`returnsConfirmation${type}Step3Details`]: interpolate(\n getTranslation(\n `return_confirmation_instructions_${type}_step_3_subtitle`,\n ),\n { carrier_name: carrier },\n ),\n [`returnsConfirmation${type}LocationPanelHeader`]: getTranslation(\n \"return_confirmation_drop_off_location_header\",\n ),\n [`returnsConfirmation${type}InstructionsPanelHeader`]: getTranslation(\n \"return_confirmation_instructions_header\",\n ),\n [`returnsConfirmation${type}ItemsPanelHeader`]: getTranslation(\n \"return_confirmation_items_returning_header\",\n ),\n };\n return ts;\n };\n\n let translations = {\n returnsOrderLoginAbove: getTranslation(\n isTrack\n ? \"track_app_order_lookup_supplementary_text1\"\n : \"order_lookup_supplementary_text1\",\n ),\n returnsOrderLoginBelow: getTranslation(\n isTrack\n ? \"track_app_order_lookup_supplementary_text2\"\n : \"order_lookup_supplementary_text2\",\n ),\n returnsOrderLoginFormAbove: \"\",\n returnsOrderLoginFormBelow: \"\",\n returnsOrderLoginSubmitAbove: \"\",\n returnsOrderLoginSubmitBelow: \"\",\n returnsOrderLoginTitleBelow: \"\",\n returnsOrderLoginFieldsAbove: \"\",\n returnsOrderLoginTitle: getTranslation(\n isTrack\n ? isGiftReturn\n ? \"track_app_order_lookup_gift_title\"\n : \"track_app_order_lookup_title\"\n : isGiftReturn\n ? \"order_lookup_gift_title_start_return\"\n : \"order_lookup_title_start_return\",\n ),\n returnsOrderLoginDescription: getTranslation(\n isTrack\n ? isGiftReturn\n ? \"track_app_order_lookup_gift_start_instructions\"\n : \"track_app_order_lookup_start_return_instructions\"\n : isGiftReturn\n ? \"order_lookup_gift_start_instructions\"\n : \"order_lookup_start_return_instructions\",\n ),\n returnsOrderLoginFormSubmit: getTranslation(\n isTrack ? \"track_app_order_lookup_submit\" : \"order_lookup_submit\",\n ),\n returnsOrderLoginFormLabelEmail: getTranslation(\n isGiftReturn ? \"order_lookup_gift_email\" : \"order_lookup_email\",\n ),\n returnsOrderLoginFormLabelOrder: getTranslation(\n isGiftReturn\n ? \"order_lookup_gift_order_number\"\n : \"order_lookup_order_number\",\n ),\n returnsOrderLoginFormLabelGiftCode: getTranslation(\n config.isGiftZipEnabled\n ? \"order_lookup_gift_shipping_zip\"\n : \"order_lookup_gift_code\",\n ),\n returnsOrderLoginFormCaptionEmail: getTranslation(\n isTrack\n ? \"track_app_order_lookup_gift_email_helper\"\n : \"order_lookup_gift_email_helper\",\n ),\n returnsOrderLoginFormCaptionOrder: \"\",\n returnsOrderLoginFormCaptionGiftCode: getTranslation(\n isTrack\n ? \"track_app_order_lookup_gift_code_helper\"\n : \"order_lookup_gift_code_helper\",\n ),\n returnsOrderLoginReturnPolicy: \"\", // \"Read our Return Policy\"\n returnsOrderLoginError: getTranslation(\n isGiftReturn ? \"order_lookup_not_found_gift\" : \"order_lookup_not_found\",\n ),\n returnsOrderLoginFormValidationErrorEmail: getTranslation(\n \"order_lookup_email_invalid\",\n ),\n returnsOrderLoginToggleGiftReturnTitle: getTranslation(\n isTrack ? \"track_app_order_lookup_gift_link\" : \"order_lookup_gift_link\",\n ),\n returnsOrderLoginToggleGiftReturnLinkText: getTranslation(\n isTrack\n ? \"track_app_order_lookup_gift_title\"\n : \"order_lookup_gift_title_start_return\",\n ),\n returnsOrderLoginToggleGiftReturnTitle_giftReturn: getTranslation(\n isTrack\n ? \"track_app_order_lookup_not_gift_link\"\n : \"order_lookup_not_gift_link\",\n ),\n returnsOrderLoginToggleGiftReturnLinkText_giftReturn: getTranslation(\n isTrack\n ? \"track_app_order_lookup_title\"\n : \"order_lookup_title_start_return\",\n ),\n\n returnsItemListTitle: getTranslation(\n isTrack ? \"track_app_choose_items_title\" : \"choose_items_title\",\n ),\n returnsItemListTitleDirty: getTranslation(\n isTrack\n ? \"track_app_choose_items_title\"\n : claimType\n ? `choose_items_title_claim_${snakeCase(claimType).toLowerCase()}`\n : \"choose_items_title\",\n ),\n returnsItemListIneligibleTitle: getTranslation(\n isTrack ? \"track_app_choose_items_title\" : \"choose_items_none_eligible\",\n ),\n returnsItemListReturnInitiatedTitle: getTranslation(\n \"return_status_simplified_to_consumer_initiated\",\n ),\n returnsItemListPendingpacking_slip_and_shipping_labelLink: getTranslation(\n \"choose_items_rma_action_reprint_labels\",\n ),\n returnsItemListPendingqr_codeLink: getTranslation(\n \"choose_items_rma_action_reprint_qr_code\",\n ),\n returnsItemListPendingCancelReturnLink: getTranslation(\n \"choose_items_rma_action_cancel_return\",\n ),\n returnsItemListIneligibleDescription: getTranslation(\n \"choose_items_return_not_eligible_for_return\",\n ),\n returnsItemListSubmit: getTranslation(\"choose_items_next_button_label\"),\n returnsItemListItemInfoskuLabel:\n getTranslation(\"choose_items_sku_label\") + \": \",\n returnsItemListItemInfoqtyLabel:\n getTranslation(\"choose_items_quantity_label\") + \": \",\n returnsItemListItemInfopriceLabel:\n getTranslation(\"choose_items_price_label\") + \": \",\n returnsItemListItemInforeasonLabel:\n getTranslation(\"choose_items_reason_label\") + \": \",\n returnsItemListItemTagReturning: getTranslation(\n \"choose_items_tag_returning\",\n ),\n returnsItemListItemTagExchanging: getTranslation(\n \"choose_items_tag_exchanging\",\n ),\n returnsItemListItemTagExchangingForCredit: getTranslation(\n \"choose_items_tag_exchanging_for_credit\",\n ),\n returnsItemListItemTagClaiming: getTranslation(\n \"choose_items_tag_claiming\",\n ),\n returnsItemListItemTagHasShippingProtection: getTranslation(\n \"choose_items_tag_has_claim_protection\",\n ),\n returnsItemListItemTagHasShippingProtectionTooltip: getTranslation(\n \"choose_items_tag_has_claim_protection_tooltip\",\n ),\n returnsLineItemGroupIneligibleDescription: getTranslation(\n \"choose_items_group_ineligible_description\",\n ),\n returnsReasonsItemInfoQuantitySelectPlaceholder: getTranslation(\n \"choose_items_select_quantity_placeholder\",\n ),\n returnsReasonsTypeTitle: getTranslation(\"choose_items_select_type_title\"),\n returnsReasonsTypeReturn: getTranslation(\n state.guestReturn\n ? \"choose_items_return_item_button_label_gift\"\n : \"choose_items_return_item_button_label\",\n ),\n returnsReasonsTypeExchange: getTranslation(\n \"choose_items_exchange_item_button_label\",\n ),\n returnsReasonsTypeClaim: getTranslation(\n \"choose_items_claim_item_button_label\",\n ),\n returnsReasonsListTitle: getTranslation(\n \"choose_items_select_reason_prompt\",\n ),\n returnsReasonsListTitleSecondary: getTranslation(\n \"choose_items_select_subreason_prompt\",\n ),\n returnsReasonsQuantityTitle: getTranslation(\n isExchanging\n ? \"choose_items_select_quantity_prompt_exchange\"\n : \"choose_items_select_quantity_prompt\",\n ),\n returnsReasonsPicturesTitle: getTranslation(\n \"choose_items_upload_pictures_title\",\n ),\n returnsReasonsPicturesUploadButton: getTranslation(\n \"choose_items_upload_add_photos\",\n ),\n returnsReasonsPicturesUploadDescription: getTranslation(\n \"choose_items_upload_pictures_error_too_many\",\n ),\n returnsReasonsPicturesUploadErrorMaxSize: getTranslation(\n \"choose_items_upload_pictures_error_file_size\",\n ),\n returnsReasonsPicturesUploadErrorMaxCount: getTranslation(\n \"choose_items_upload_pictures_error_too_many\",\n ),\n returnsReasonsCommentsTitle: getTranslation(\"choose_items_comment_title\"), // TODO: `choose_items_comment_helper_text` seems better?\n returnsReasonsCommentsPlaceholder: getTranslation(\n \"choose_items_comment_optional_placeholder\",\n ),\n returnsReasonsCommentsPlaceholderRequired: getTranslation(\n \"choose_items_comment_required_placeholder\",\n ),\n returnsReasonsEditTitle: getTranslation(\"choose_items_remove_item_title\"),\n returnsReasonsEditRemoveLabel: getTranslation(\n \"choose_items_remove_item_confirm\",\n ),\n returnsReasonsEditContinueLabel: getTranslation(\n isExchanging\n ? \"choose_items_remove_item_cancel_exchange\"\n : \"choose_items_remove_item_cancel\",\n ),\n returnsReasonsExchangeTitle: getTranslation(\n \"choose_items_choose_exchange_variant_helper_text\",\n ),\n returnsReasonsExchangeUnavailable: getTranslation(\n \"choose_items_exchange_wizard_unavailable_title\",\n ),\n returnsReasonsExchangeUpsellTitle: getTranslation(\n \"choose_items_choose_exchange_variant_title_upsell\",\n ),\n returnsReasonsExchangeUpsellNoThanks: getTranslation(\n \"choose_items_choose_exchange_variant_skip_upsell\",\n ),\n returnsReasonsShopNowDescription: getTranslation(\n \"choose_items_choose_exchange_variant_shopnow_action_description\",\n ),\n returnsReasonsShopNowLink: getTranslation(\n \"choose_items_choose_exchange_variant_shopnow_action_link\",\n ),\n returnsSwatchesListSeeMore: getTranslation(\n \"choose_items_choose_exchange_variant_see_more\",\n ),\n returnsSwatchesListSeeLess: getTranslation(\n \"choose_items_choose_exchange_variant_see_less\",\n ),\n returnsActionsNext: getTranslation(\"next\"),\n returnsActionsBack: getTranslation(\"back\"),\n returnsActionsCancel: getTranslation(\"cancel\"),\n returnsActionsSubmit: getTranslation(\"submit\"),\n\n // returnsItemListEligibleDescription: \"These items can be returned until {{returnDate}}\",\n // returnsItemListPendingpacking_slipLink: 'Reprint Packing Slip',\n // returnsItemListPendingshipping_labelLink: 'Reprint Shipping Label',\n // returnsItemListItemInfoTitle: '{{name}}',\n // returnsItemListItemInfocolorLabel: 'Color: ',\n // returnsItemListItemInfosizeLabel: 'Size: ',\n // returnsItemListItemInfoqtyTransactionSeparator: ' -> ',\n // returnsItemListNoItemError: 'No valid items in this order to be returned.',\n returnsItemListBannererror: \"\",\n // returnsItemListBannersuccess: 'Your return was successfully cancelled. ',\n // returnsReasonsItemInfoTitle: '{{name}}',\n // returnsReasonsItemInfoColor: 'Color: {{color}}',\n // returnsReasonsItemInfoColorLabel: 'Color:',\n // returnsReasonsItemInfoSize: 'Size: {{size}}',\n // returnsReasonsItemInfoSizeLabel: 'Size:',\n // returnsReasonsItemInfoQuantity: 'Quantity: {{quantity}}',\n // returnsReasonsItemInfoQuantityLabel: 'Quantity:',\n // returnsReasonsNoReasonsError: 'No return reasons available.',\n\n returnsPudoListTitle: getTranslation(\"choose_method_title\"), // choose_method_substep_concierge_title, choose_method_substep_in_store_title?\n returnsPudoListFeeLabelFree: config.hideReturnMethodPrice\n ? \"\"\n : getTranslation(\"FREE\"),\n returnsPudoListSwitchCategory: getTranslation(\n \"choose_method_select_different_method\",\n ),\n returnsPudoLocationsPostalcodeTitle: getTranslation(\n \"choose_method_substep_in_store_form_find_stores_near\",\n ),\n returnsPudoLocationsPostalcodeSearch: getTranslation(\"search\"),\n returnsPudoLocationsPostalcodeCancel: getTranslation(\"cancel\"),\n returnsPudoLocationsDistanceNounit: \"Directions\",\n returnsPudoLocationsSkipLink: getTranslation(\n \"choose_method_substep_concierge_skip\",\n ),\n returnsPudoSubmit: getTranslation(\"submit\"),\n returnsPudoErrorNopudooptions: getTranslation(\n \"choose_method_substep_no_locations_found\",\n ),\n\n // returnsPudoListItem*Title, Subtitle // static translations for different pudo options, since we have dynamic return method translations, we don't need to set\n returnsPudoListItemmailFree: getTranslation(\n \"choose_method_card_free_mail_it\",\n ),\n returnsPudoListItemconciergeFree: getTranslation(\n \"choose_method_card_free_mail_it\",\n ),\n returnsPudoListItemprinterlessmailFree: getTranslation(\n \"choose_method_card_free_mail_it\",\n ),\n returnsPudoListItemboxlessFree: getTranslation(\n \"choose_method_card_free_mail_it\",\n ),\n returnsPudoListItempickupFree: getTranslation(\n \"choose_method_card_free_mail_it\",\n ),\n returnsPudoListItemstoreFree: getTranslation(\n \"choose_method_card_free_in_store\",\n ),\n returnsPudoListItemselfFree: getTranslation(\n \"choose_method_card_free_ship_on_your_own\",\n ),\n returnsPudoListItem: getTranslation(\"choose_method_card_keep_item\"),\n returnsPudoMultiLabelsTitle: getTranslation(\n \"choose_method_multi_labels_title\",\n ),\n returnsPudoMultiLabelsDescription: getTranslation(\n \"choose_method_multi_labels_copy\",\n ),\n returnsPudoMultiLabelsInputPlaceholder: getTranslation(\n \"choose_method_multi_labels_input_placeholder\",\n ),\n returnsPudoMultiLabelsRemarks: getTranslation(\n \"choose_method_multi_labels_disclaimer\",\n ),\n\n // returnsPudoListShowall: \"< Back to All Methods\",\n // returnsPudoListFeeLabellabelfee: \"Label Fee\",\n // returnsPudoListFeeLabelshippingfee: \"Shipping Fee\",\n // returnsPudoListFeeLabelpickupfee: \"Pickup Fee\",\n // returnsPudoLocationsDistanceUnitmiles: \"mi\",\n // returnsPudoLocationsDistanceUnitkilometers: \"km\",\n // returnsPudoLocationsSortedbyOptionrecommended: \"Recommended\",\n // returnsPudoLocationsSortedbyOptiondistance: \"Distance\",\n // returnsPudoLocationsSortedbyTitle: \"Sort By\",\n // returnsPudoPickupTimeslotTitle: \"We can pick up your return\",\n // returnsPudoPickupTimeslotDescription:\n // \"The pickup window will be from {{earliestHour}} to {{latestHour}}.
Hand your package directly to courier or leave your package in a safe place for pickup.\",\n // returnsPudoPickupLocationTitle: \"Pickup Location\",\n // returnsPudoPickupLocationDescription:\n // \"Returns can only be picked up from the original delivery address.\",\n // returnsPudoPickupInstructionsToggle: \"Add Pickup Instructions\",\n // returnsPudoPickupFeeTitle: \"{{pickupFee}} Pickup Convenience Fee\",\n // returnsPudoPickupFeeDescription:\n // \"This is a non-refundable fee in addition to any return shipping fees deducted from your return.
Once the pickup is scheduled, it cannot be canceled.\",\n // returnsPudoPickupInstructionsPlaceholder:\n // \"Take the lobby elevator up to the 3rd floor.\",\n // returnsPudoPickupInstructionsHandoffTitle:\n // \"How will the courier pick up your package?\",\n // returnsPudoErrorNotimeslots:\n // \"No available pickup timeslots. Please go back and choose a different return method.\",\n\n returnsRefundMethodsTitle: hasClaimItems\n ? getTranslation(\"claims_resolution_title\")\n : getTranslation(\"choose_refund_method_title\"),\n returnsRefundMethodsDisclaimer:\n state.selectedReturnCreditMethod?.id === RETURN_CREDIT_METHOD_RESHOP\n ? getTranslation(\"choose_refund_method_reshop_disclaimer\")\n : \"\",\n returnsRefundMethodsOptionIncentiveChip: getTranslation(\n \"choose_refund_method_incentive_amount\",\n ),\n\n returnsReviewError: getTranslation(\n \"return_review_error_contact_retailer\",\n ),\n returnsReviewHeader: getTranslation(\"return_review_title_new\"),\n returnsReviewSubHeader: hasClaimItems\n ? getTranslation(\"return_review_title_claim\")\n : getTranslation(\"return_review_title\"),\n returnsReviewSubHeaderExchange: hasClaimItems\n ? getTranslation(\"return_review_title_claim\")\n : getTranslation(\"return_review_title_exchange\"),\n returnsReviewSubHeaderReturnAndExchange: hasClaimItems\n ? getTranslation(\"return_review_title_claim\")\n : getTranslation(\"return_review_title_return_and_exchange\"),\n returnsReviewTotalsSubtotal: getTranslation(\"return_review_subtotal\"),\n returnsReviewTotalsShippingFee: getTranslation(\n \"return_review_shipping_fee\",\n ),\n returnsReviewTotalsEstimatedRefund:\n getTranslation(\"return_review_estimated_refund\") + \"*\",\n returnsReviewTotalsEstimatedCharge: getTranslation(\n \"return_review_charge_total\",\n ),\n returnsReviewTotalsHelpText:\n state.selectedReturnCreditMethod?.id === RETURN_CREDIT_METHOD_RESHOP\n ? \"*\" + getTranslation(\"return_review_disclaimer_reshop\")\n : \"*\" + getTranslation(\"return_review_disclaimer\"),\n returnsReviewDropOffLocationHeader: getTranslation(\n \"return_review_drop_off_location\",\n ),\n returnsReviewRefundTo_giftCard: interpolate(\n getTranslation(\"return_review_gift_card\"),\n { shop_name: config.shopName },\n ),\n returnsReviewRefundTo_originalPayment: getTranslation(\n \"return_review_original_payment\",\n ),\n returnsReviewRefundTo_reshop: getTranslation(\"return_review_reshop\"),\n returnsReviewReshopTitle: getTranslation(\n \"return_review_reshop_options_title\",\n ),\n returnsReviewReshopCheckboxLabel: getTranslation(\n \"return_review_reshop_options_sms_updates\",\n ),\n returnsReviewReshopPhoneInputLabel: getTranslation(\n \"return_review_reshop_options_customer_phone\",\n ),\n returnsReviewReshopDisclaimer: getTranslation(\n \"return_review_reshop_options_disclaimer\",\n ),\n returnsReviewSubmittingReturn: getTranslation(\"return_review_submitting\"),\n returnsReviewSubmittingError: getTranslation(\n \"return_review_submit_error\",\n ),\n\n claimsAttestationTitle: getTranslation(\"claims_attestation_part_1_title\"),\n claimsAttestationRemarks1: getTranslation(\n \"claims_attestation_part_1_remarks_1\",\n ),\n claimsAttestationRemarks2: getTranslation(\n \"claims_attestation_part_1_remarks_2\",\n ),\n claimsAttestationUseSignature: getTranslation(\n \"claims_attestation_part_2_title\",\n ),\n claimsAttestationSignaturePlaceholder: getTranslation(\n \"claims_attestation_part_2_placeholder\",\n ),\n claimsAttestationCertifyStatement: getTranslation(\n \"claims_attestation_part_3_certify_statement\",\n ),\n claimsReviewSubmittingClaim: getTranslation(\"claims_review_submitting\"),\n\n ...confirmationTranslationsFactory(\n \"mail\",\n state.selectedReturnMethod?.carrierName,\n ),\n ...confirmationTranslationsFactory(\n \"store\",\n state.selectedReturnMethod?.carrierName,\n ),\n ...confirmationTranslationsFactory(\n \"ship_on_your_own\",\n state.selectedReturnMethod?.carrierName,\n ),\n ...confirmationTranslationsFactory(\n \"home_pickup\",\n state.selectedReturnMethod?.carrierName,\n ),\n ...confirmationTranslationsFactory(\n \"keep_the_item\",\n state.selectedReturnMethod?.carrierName,\n ),\n ...confirmationTranslationsFactory(\n \"boxless\",\n state.selectedReturnMethod?.carrierName,\n ),\n ...confirmationTranslationsFactory(\n \"printerless\",\n state.selectedReturnMethod?.carrierName,\n ),\n returnsConfirmationreshopStepTitle: getTranslation(\n \"return_confirmation_instructions_reshop_step_title\",\n ),\n returnsConfirmationreshopStepDetails: getTranslation(\n \"return_confirmation_instructions_reshop_step_subtitle\",\n ),\n returnsConfirmationreshopStepAppStoreLink: getTranslation(\n \"return_confirmation_instructions_reshop_step_app_store_link\",\n ),\n returnsConfirmationreshopStepAppStoreLinkText: getTranslation(\n \"return_confirmation_instructions_reshop_step_app_store_link_text\",\n ),\n returnsConfirmationreshopStepGooglePlayLink: getTranslation(\n \"return_confirmation_instructions_reshop_step_google_play_link\",\n ),\n returnsConfirmationreshopStepGooglePlayLinkText: getTranslation(\n \"return_confirmation_instructions_reshop_step_google_play_link_text\",\n ),\n\n returnsReviewPreferencesCheckboxLabel: getTranslation(\n \"return_review_preferences_checkbox_label\",\n ),\n returnsReviewPreferencesInputLabel: getTranslation(\n \"return_review_preferences_input_label\",\n ),\n returnsPreferencesStatusDesc: getTranslation(\n \"return_user_preferences_status_desc\",\n ),\n returnsPreferencesStatusDesc_error: getTranslation(\n \"return_user_preferences_status_desc_error\",\n ),\n returnsPreferencesStatusDesc_pending: getTranslation(\n \"return_user_preferences_status_desc_pending\",\n ),\n returnsPreferencesStatusLinkText: getTranslation(\n \"return_user_preferences_status_lint_text\",\n ),\n returnsPreferencesStatusLinkText_error: getTranslation(\n \"return_user_preferences_status_lint_text_error\",\n ),\n returnsPreferencesStatusLinkText_pending: getTranslation(\n \"return_user_preferences_status_lint_text_pending\",\n ),\n\n returnsStepsGeneralError: getTranslation(\"general_loading_error\"),\n };\n\n // nth use `{{var}}` as translation variable, we use `%{var}`\n translations = toNthTemplateConfig(translations, {\n // eg.\n // returnsItemListTitle: { customerName: \"customer\" },\n });\n return translations;\n }, [\n window?.nvo_config?.translations,\n state.guestReturn,\n state.selectingItem?.type,\n state.refundTotal,\n state.submitReturnResultCode,\n state.selectedReturnMethod?.carrierName,\n state.selectedReturnCreditMethod,\n hasClaimItems,\n claimType,\n ]);\n\n const theme = useMemo(() => {\n const branding = {\n primary_font: buildSansFontFamily(\n getBranding(\"primary_font\") || \"Oswald\",\n ),\n secondary_font: buildSansFontFamily(\n getBranding(\"secondary_font\") || \"Lato\",\n ),\n base_body_text_size: getBranding(\"base_body_text_size\") ?? 14,\n border_radius: Math.min(getBranding(\"border_radius\"), 24), // max. border radius is 24 only\n brand_primary: `#${getBranding(\"brand_primary\") || \"000000\"}`,\n brand_secondary: `#${getBranding(\"brand_secondary\") || \"000000\"}`,\n body_text: `#${getBranding(\"body_text\") || \"000000\"}`,\n body_background: `#${getBranding(\"body_background\") || \"FFFFFF\"}`,\n error_color: `#${getBranding(\"error_color\") || \"E63935\"}`,\n error_text_color: `#${getBranding(\"error_text_color\") || \"FFFFFF\"}`,\n is_link_underlined: getBranding(\"is_link_underlined\") ?? true,\n is_link_all_caps: getBranding(\"is_link_all_caps\") ?? false,\n root_margin_top: 0,\n root_margin_bottom: 0,\n step_delimiter_position: 90,\n fixed_app_bar: true,\n };\n branding.brand_primary_darker = darken(branding.brand_primary, 0.1);\n branding.brand_primary_lighter = lighten(branding.brand_primary, 0.95);\n branding.brand_secondary_darker = darken(branding.brand_secondary, 0.1);\n branding.brand_secondary_lighter = lighten(branding.brand_secondary, 0.95);\n\n const BG_WHITE = \"#fff\";\n const DISABLED_COLOR = \"#ccc\";\n const BORDER_COLOR = \"#ccc\";\n\n const defaultTextStyle = {\n fontFamily: branding.secondary_font,\n fontSize: branding.base_body_text_size,\n color: branding.body_text,\n };\n const headerTextStyle = {\n ...defaultTextStyle,\n fontFamily: branding.primary_font,\n fontWeight: 700,\n };\n const errorTextStyle = {\n color: branding.error_color,\n };\n const emphasisTextStyle = {\n fontWeight: \"bold\",\n };\n const linkStyle = {\n ...defaultTextStyle,\n color: branding.brand_primary,\n // fontWeight: 700, // TODO: uncomment this nth style\n // textDecoration: \"none\", // TODO: uncomment this nth style\n };\n const buttonStyle = {\n ...defaultTextStyle,\n fontFamily: branding.primary_font,\n fontWeight: 700,\n textTransform: \"uppercase\", // TODO: remove this SHOPZ style\n backgroundColor: branding.brand_primary,\n color: \"#fff\",\n borderWidth: 0,\n borderStyle: \"none\",\n borderColor: \"transparent\",\n borderRadius: branding.border_radius,\n paddingTop: 8,\n paddingBottom: 8,\n paddingLeft: 20,\n paddingRight: 20,\n };\n const buttonOutlineStyle = {\n ...defaultTextStyle,\n fontFamily: branding.primary_font,\n fontWeight: 700,\n textTransform: \"uppercase\", // TODO: remove this SHOPZ style\n backgroundColor: BG_WHITE,\n color: branding.brand_primary,\n borderWidth: 1,\n borderStyle: \"solid\",\n borderColor: branding.brand_primary,\n borderRadius: branding.border_radius,\n paddingTop: 7,\n paddingBottom: 7,\n paddingLeft: 19,\n paddingRight: 19,\n };\n const iconStyle = {\n color: branding.brand_secondary,\n fill: branding.brand_secondary,\n };\n const panelStyle = {\n backgroundColor: BG_WHITE,\n borderWidth: 1,\n borderStyle: \"solid\",\n borderTopColor: BORDER_COLOR,\n borderBottomColor: BORDER_COLOR,\n borderLeftColor: BORDER_COLOR,\n borderRightColor: BORDER_COLOR,\n borderRadius: 4,\n marginBottom: 8,\n };\n const panelHoverStyle = {\n ...omit([\"backgroundColor\"], panelStyle),\n borderTopColor: branding.brand_primary, // TODO: map to secondary color when all others component is using nth\n borderBottomColor: branding.brand_primary,\n borderLeftColor: branding.brand_primary,\n borderRightColor: branding.brand_primary,\n };\n const panelActiveStyle = {\n ...panelStyle,\n borderTopColor: branding.brand_primary, // TODO: map to secondary color when all others component is using nth\n borderBottomColor: branding.brand_primary,\n borderLeftColor: branding.brand_primary,\n borderRightColor: branding.brand_primary,\n borderWidth: 2,\n backgroundColor: branding.brand_primary_lighter,\n };\n const panelBodyStyle = {\n padding: 24,\n };\n const inputStyle = {\n ...defaultTextStyle,\n backgroundColor: BG_WHITE,\n borderWidth: 1,\n borderStyle: \"solid\",\n };\n const inputFocusStyle = {\n ...inputStyle,\n borderColor: branding.brand_primary, // TODO: map to secondary color when all others component is using nth\n outlineColor: branding.brand_primary,\n };\n const inputErrorStyle = {\n ...inputStyle,\n borderColor: branding.error_color,\n outlineColor: branding.error_color,\n };\n\n // TODO: map theme\n const theme = {\n documentbodyNoneNone: {\n ...defaultTextStyle,\n backgroundColor: BG_WHITE,\n },\n bodytextDefaultNone: { ...defaultTextStyle },\n bodytextEmphasisNone: { ...defaultTextStyle, ...emphasisTextStyle },\n smalltextDefaultNone: {\n ...defaultTextStyle,\n ...computeFontStyle(\"caption\", branding.base_body_text_size),\n },\n smalltextEmphasisNone: {\n ...defaultTextStyle,\n ...emphasisTextStyle,\n ...computeFontStyle(\"caption\", branding.base_body_text_size),\n },\n captiontextDefaultNone: {\n ...defaultTextStyle,\n ...computeFontStyle(\"caption\", branding.base_body_text_size),\n },\n captiontextErrorNone: {\n ...defaultTextStyle,\n ...errorTextStyle,\n ...computeFontStyle(\"caption\", branding.base_body_text_size),\n },\n headersHugeNone: {\n ...headerTextStyle,\n ...computeFontStyle(\"h1\", branding.base_body_text_size),\n },\n headersBigNone: {\n ...headerTextStyle,\n ...computeFontStyle(\"h1\", branding.base_body_text_size), // TODO: review this later, we need to match existing font size for now\n },\n headersSemibigNone: {\n ...headerTextStyle,\n ...computeFontStyle(\"h1\", branding.base_body_text_size), // TODO: review this later, we need to match existing font size for now\n },\n headersMediumNone: {\n ...headerTextStyle,\n ...computeFontStyle(\"h4\", branding.base_body_text_size),\n },\n headersSmallNone: {\n ...headerTextStyle,\n ...computeFontStyle(\"h5\", branding.base_body_text_size),\n },\n buttonsDismissNone: { ...defaultTextStyle },\n buttonsPrimaryDefault: { ...buttonStyle },\n buttonsPrimaryDisabled: {\n ...buttonStyle,\n backgroundColor: DISABLED_COLOR,\n },\n buttonsPrimaryHover: {\n ...buttonStyle,\n backgroundColor: branding.brand_primary_darker,\n },\n buttonsSecondaryDefault: { ...buttonOutlineStyle },\n buttonsSecondaryDisabled: {\n ...buttonOutlineStyle,\n color: DISABLED_COLOR,\n borderColor: DISABLED_COLOR,\n },\n buttonsSecondaryHover: {\n ...buttonOutlineStyle,\n color: branding.brand_primary_darker,\n borderColor: branding.brand_primary_darker,\n },\n iconsPrimaryNone: { ...iconStyle },\n iconsSecondaryNone: {},\n spinnerPrimaryNone: { ...iconStyle },\n linksNoneDefault: { ...linkStyle },\n linksNoneHover: { ...linkStyle },\n linksNoneVisited: { ...linkStyle },\n // linksLegalDefault: {},\n // linksLegalHover: {},\n // linksTrackingDefault: {},\n // linksTrackingHover: {},\n footertextNoneNone: { ...defaultTextStyle },\n // narvarfooterNoneNone: {},\n // iconsFooterNone: {},\n alertNoneNone: { fontFamily: branding.secondary_font },\n panelbodyNoneNone: { ...panelBodyStyle },\n panelcontainerNoneNone: { ...panelStyle },\n panelcontainerNoneHover: { ...panelHoverStyle },\n panelcontainerNoneActive: { ...panelActiveStyle },\n panelfooterNoneNone: {},\n panelheaderNoneNone: {},\n selecteditemNoneNone: { ...panelActiveStyle },\n\n // inputlabelNoneDisabled: {},\n // inputlabelNoneNone: {},\n // inputratingstarsNoneDefault: {},\n // inputratingstarsNoneSelected: {},\n inputtextareasNoneDisabled: {},\n inputtextareasNoneFocus: { ...inputFocusStyle },\n inputtextareasNoneNone: { ...inputStyle },\n inputtextinputsNoneDisabled: {},\n inputtextinputsNoneError: { ...inputErrorStyle },\n inputtextinputsNoneFocus: { ...inputFocusStyle },\n inputtextinputsNoneNone: { ...inputStyle },\n // selectNoneNone: {},\n // inputcheckboxesNoneDefault: {},\n // inputcheckboxesNoneSelected: {},\n // telephoneinputNoneNone: {},\n // floatingpillNoneNone: {},\n // imgPrimaryNone: {},\n // calendarInputDefault: {},\n // calendarInputDisabled: {},\n // calendarInputSelected: {},\n // calendarStaticDefault: {},\n // calendarStaticSelected: {},\n // chatbubbleImageNone: {},\n // chatbubbleMeNone: {},\n // chatbubbleThemNone: {},\n\n // assetpanelcontainerNoneNone: {},\n // dividerPrimaryNone: {},\n // sectiondividerPrimaryNone: {},\n // gradientNoneNone: {},\n // eddcalculatorcontainerNoneNone: {},\n // productrecspanelcontainerNoneNone: {},\n // productrecsarrowcontainerNextNone: {},\n // productrecsarrowcontainerPrevNone: {},\n // productrecsarrowNoneDefault: {},\n // productrecsarrowNoneDisabled: {},\n // productrecsarrowNoneHover: {},\n // productrecscarouseltitleNoneNone: {},\n // productrecsdotcontainerNoneNone: {},\n // productrecsdotNoneActive: {},\n // productrecsdotNoneDefault: {},\n // productrecsdotNoneHover: {},\n // productrecsreccontainerNoneNone: {},\n // productrecsrecimageNoneNone: {},\n // productrecsrecpriceCentsNone: {},\n // productrecsrecpriceNoneNone: {},\n // productrecsrecpriceOldNone: {},\n // productrecsrecpricePriceNone: {},\n // productrecsrecpriceSaleNone: {},\n // productrecsrecpriceStrikethroughcentsNone: {},\n // productrecsrecpriceUsdNone: {},\n // productrecsrecratingcontainerNoneNone: {},\n // productrecsrecratingstarEmptyNone: {},\n // productrecsrecratingstarFullNone: {},\n // productrecsrectextBrandNone: {},\n // productrecsrectextNameNone: {},\n // productrecsrectextNoneNone: {},\n // productrecsrectextReviewsNone: {},\n // productrecsrectextStaticNone: {},\n // productrecsrectextStrikethroughNone: {},\n // progressbarmarkerDeliveredDefault: {},\n // progressbarmarkerEddDefault: {},\n // progressbarmarkerShippedAfter: {},\n // progressbarmarkerShippedBefore: {},\n\n // panelcontainerNoneNone: {\n // backgroundColor: \"#FFFFFF\",\n // borderBottomColor: \"#CCCCCC\",\n // borderBottomStyle: \"solid\",\n // borderBottomWidth: \"1px\",\n // borderLeftColor: \"#CCCCCC\",\n // borderLeftStyle: \"solid\",\n // borderLeftWidth: \"1px\",\n // borderRightColor: \"#CCCCCC\",\n // borderRightStyle: \"solid\",\n // borderRightWidth: \"1px\",\n // borderTopColor: \"#CCCCCC\",\n // borderTopStyle: \"solid\",\n // borderTopWidth: \"1px\",\n // marginBottom: \"0.5rem\",\n // marginLeft: \"0\",\n // marginRight: \"0\",\n // marginTop: \"0\",\n // },\n };\n return theme;\n }, [window?.nvo_config?.branding]);\n\n const { language, country } = useConsumerSettings();\n\n const globalSettings = memoObjectByKeyValues({\n retailerName: config.shopName,\n defaultLanguage: language,\n defaultCountry: country,\n defaultVersionName: \"\",\n fallbackVersionName: \"\",\n returnsWorkflowActiveVersion: \"\",\n returnsWorkflowDefaultVersion: \"\",\n // dynamicTrackEnabled?: '',\n // valid_country_list?: Maybe>>;\n // smsSupportedCountries?: Maybe>>;\n // smsDefaultCountry?: Maybe;\n // orderLevelOptInEnabled?: Maybe;\n // retailerLevelOptInEnabled?: Maybe;\n // hipaaCompliant?: Maybe;\n // internationalDateFormatting?: Maybe;\n // giftSharingEnabled?: Maybe;\n });\n\n const localConfig = useMemo(\n () => ({\n queryTheme: () => theme,\n queryTranslations: () => translations,\n queryGlobalSettings: () => globalSettings,\n }),\n [theme, translations, globalSettings],\n );\n\n const handleAnalyticsError = useCallback((error) => {\n console.error(error);\n }, []);\n\n return (\n \n \n {children}\n \n \n );\n}\n\nexport const useNthReturnsActions = featureFlaggedHook(\n config.isNthUi || config.isNthLoginUi,\n {},\n)(() => {\n const nthReturnsActions = useReturns();\n return nthReturnsActions;\n});\n","import { useState } from \"react\";\nimport { v4 } from \"uuid\";\n\nexport const randomIdString = (length = 0) => {\n const rand = () => Math.random().toString(36).substring(2);\n if (!length) return rand();\n\n let ret = \"\";\n while (ret.length < length) {\n ret += rand();\n }\n return ret.substring(0, length);\n};\n\nconst autoIncrementIds = {};\n\nexport const autoIncrementId = (group) => {\n autoIncrementIds[group] = autoIncrementIds[group] ?? 0;\n return ++autoIncrementIds[group];\n};\n\nexport const useElementId = (prefix = \"\") => {\n const [id] = useState(prefix + randomIdString());\n return id;\n};\n\nexport const uuid = () => v4();\n\nexport const useUuid = () => {\n const [id] = useState(uuid());\n return id;\n};\n","import { GrowthBook } from \"@growthbook/growthbook-react\";\n// FIXME: rudder-sdk-js will throw fatal error during import on incognito mode,\n// because it would access local storage with our ifrmae.\n// import * as rudder from \"rudder-sdk-js\";\nimport { safeLocalStorage } from \"./localStorage\";\nimport { randomIdString } from \"./localId\";\nimport sessionTracking from \"./sessionTracking\";\n\nconst GB_API_HOST = \"https://cdn.growthbook.io\";\nconst GB_API_KEY = \"sdk-ow4DG1Yy8SUTad99\";\nconst GB_DECRYP_KEY = \"LuPQKx9+tsIo1I3fk/PAhA==\";\nconst GB_API_KEY_DEV = \"sdk-IcniNcaWcDp3BNFw\";\nconst GB_DECRYP_KEY_DEV = \"\";\n\nlet defaultAttributes = {};\n\nexport const initGrowthBook = (cfg) => {\n const dev = cfg?.enableDevMode;\n defaultAttributes = {\n ...cfg?.attributes,\n sessionId: sessionTracking.sessionId,\n anonymousId: sessionTracking.anonymousId,\n userId: sessionTracking.anonymousId,\n };\n\n return new GrowthBook({\n apiHost: GB_API_HOST,\n ...(dev\n ? {\n clientKey: GB_API_KEY_DEV,\n decryptionKey: GB_DECRYP_KEY_DEV,\n }\n : {\n clientKey: GB_API_KEY,\n decryptionKey: GB_DECRYP_KEY,\n }),\n ...cfg,\n attributes: defaultAttributes,\n });\n};\n\nexport const updateGrowthBookAttributes = (growthBook, attrs) => {\n return growthBook?.setAttributes({\n ...growthBook?.getAttributes(),\n ...attrs,\n });\n};\n\nexport const resetGrowthBookAttributes = (growthBook) => {\n return growthBook?.setAttributes({\n ...defaultAttributes,\n sessionId: sessionTracking.reset(),\n anonymousId: sessionTracking.anonymousId,\n userId: sessionTracking.anonymousId,\n });\n};\n","import React, {\n useMemo,\n useRef,\n useCallback,\n forwardRef,\n useImperativeHandle,\n useState,\n} from \"react\";\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\nimport { useTheme } from \"@material-ui/core/styles\";\nimport NavigateBefore from \"@material-ui/icons/NavigateBefore\";\nimport NavigateNext from \"@material-ui/icons/NavigateNext\";\n\nimport { Swiper as ReactSwiper, SwiperSlide } from \"swiper/react\";\nimport { Keyboard, FreeMode, Navigation } from \"swiper\";\nimport \"swiper/css\";\nimport \"swiper/css/free-mode\";\nimport \"swiper/css/keyboard\";\nimport \"swiper/css/navigation\";\n\nimport { makeRootStyles } from \"../../theme/styles\";\n\nconst useStyles = makeRootStyles(\n (theme) => {\n const iconSize = theme.spacing(5);\n const navPadding = theme.spacing(1);\n const containerNavPadding = iconSize + navPadding * 2;\n\n return {\n root: {\n [theme.breakpoints.ie11()]: { height: theme.spacing(68) },\n [theme.breakpoints.edge()]: { height: theme.spacing(68) },\n position: \"relative\",\n marginLeft: -theme.spacing(2),\n marginRight: -theme.spacing(2),\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n\n [theme.breakpoints.up(\"sm\")]: {\n marginLeft: -theme.spacing(3),\n marginRight: -theme.spacing(3),\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3),\n },\n\n \"&$nav\": {\n [theme.breakpoints.up(\"md\")]: {\n paddingLeft: containerNavPadding,\n paddingRight: containerNavPadding,\n },\n },\n\n \"& .swiper\": {\n overflow: \"visible\",\n },\n },\n nav: {},\n\n whiteOverlay: {\n position: \"absolute\",\n top: 0,\n bottom: 0,\n left: \"90%\",\n right: 0,\n pointerEvents: \"none\",\n zIndex: 2,\n background:\n \"linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 100%)\",\n\n \"&$begin\": {\n left: 0,\n right: \"90%\",\n background:\n \"linear-gradient(to left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 100%)\",\n [theme.breakpoints.up(\"md\")]: {\n right: `calc(100% - ${containerNavPadding + theme.spacing(3)}px)`,\n },\n },\n },\n begin: {},\n end: {},\n navButton: {\n display: \"inline-block\",\n position: \"absolute\",\n top: theme.spacing(20),\n zIndex: theme.zIndex.appBar,\n width: iconSize,\n height: iconSize,\n borderRadius: iconSize,\n padding: theme.spacing(1),\n backgroundColor: theme.palette.secondary.main,\n color: theme.palette.common.white,\n cursor: \"pointer\",\n textAlign: \"center\",\n \"&.swiper-button-disabled\": {\n cursor: \"default\",\n backgroundColor: theme.palette.action.disabledBackground,\n color: theme.palette.action.disabled,\n display: \"none\",\n },\n [theme.breakpoints.up(\"sm\")]: {\n top: theme.spacing(30),\n },\n [theme.breakpoints.up(\"md\")]: {\n top: theme.spacing(20),\n },\n },\n navPrev: {\n left: navPadding,\n },\n navNext: {\n right: navPadding,\n },\n };\n },\n {\n name: \"N0Swiper\",\n },\n);\n\nconst Swiper = forwardRef(\n ({ className, children, slidesPerView, spacing, nav, ...other }, ref) => {\n const classes = useStyles();\n\n const slides = children instanceof Array ? children : [children];\n const [isBeginning, setIsBeginning] = useState(true);\n const [isEnd, setIsEnd] = useState(false);\n const swiperRef = useRef(null);\n const navPrevRef = useRef(null);\n const navNextRef = useRef(null);\n const theme = useTheme();\n const spaceBetween = useMemo(\n () => theme.spacing(spacing),\n [spacing, theme],\n );\n const isSingleSlide = slidesPerView < 2;\n\n // on swiper init\n const handleSwiper = useCallback(function handleSwiper(ref) {\n swiperRef.current = ref;\n }, []);\n\n function slideToIndex(index) {\n swiperRef.current.slideTo(index);\n }\n\n const handleSlideChange = useCallback(() => {\n setIsBeginning(swiperRef.current.isBeginning);\n setIsEnd(swiperRef.current.isEnd);\n }, []);\n\n useImperativeHandle(\n ref,\n () => ({\n slideTo: (index) => {\n swiperRef.current.slideTo(index);\n },\n }),\n [],\n );\n\n return (\n
\n {nav && (\n \n \n \n )}\n {nav && (\n \n \n \n )}\n\n {slidesPerView < slides.length && !isBeginning && (\n
\n )}\n {slidesPerView < slides.length && !isEnd && (\n
\n )}\n \n {React.Children.map(slides, (node, index) => (\n {\n slideToIndex(index);\n }}>\n {node}\n \n ))}\n \n
\n );\n },\n);\nSwiper.displayName = \"Swiper\";\nSwiper.propTypes = {\n className: PropTypes.string,\n children: PropTypes.node,\n slidesPerView: PropTypes.number,\n spacing: PropTypes.number,\n nav: PropTypes.bool,\n};\nSwiper.defaultProps = {\n spacing: 0,\n nav: false,\n};\nexport default Swiper;\n","import Swiper from \"./Swiper\";\nexport default Swiper;\n","import React, { useMemo, forwardRef } from \"react\";\nimport useMediaQuery from \"@material-ui/core/useMediaQuery\";\nimport { useTheme } from \"@material-ui/core/styles\";\nimport PropTypes from \"prop-types\";\n\nimport Swiper from \"../../components/swiper\";\n\nconst ItemsCarousel = forwardRef(({ children }, ref) => {\n const theme = useTheme();\n const isLgUp = useMediaQuery(theme.breakpoints.up(\"lg\"));\n const isMdUp = useMediaQuery(theme.breakpoints.up(\"md\"));\n const isSmUp = useMediaQuery(theme.breakpoints.up(\"sm\"));\n const itemsLength = useMemo(() => {\n if (children instanceof Array) return children.length;\n return 1;\n }, [children]);\n const itemsNode = useMemo(\n function renderItemsNode() {\n return React.Children.map(children, (element) => {\n if (isLgUp) {\n return (\n \n );\n }\n\n if (isSmUp && itemsLength === 1) {\n return ;\n }\n\n return ;\n });\n },\n [children, isLgUp, isSmUp, itemsLength],\n );\n\n if (isMdUp) {\n return (\n \n {itemsNode}\n \n );\n }\n\n return (\n \n {itemsNode}\n \n );\n});\nItemsCarousel.displayName = \"ItemsCarousel\";\nItemsCarousel.propTypes = {\n children: PropTypes.node,\n};\nexport default ItemsCarousel;\n","import { AvailableReturnItemReason } from \"@narvar/nth-kit-returns-headless\";\n\nconst displayReasons = ({\n reasons,\n selection,\n}: {\n reasons: AvailableReturnItemReason[];\n selection: AvailableReturnItemReason[];\n}): AvailableReturnItemReason[] => {\n const childNodes: AvailableReturnItemReason[] = reasons.reduce(\n (acc: AvailableReturnItemReason[], cur: AvailableReturnItemReason) =>\n cur.childIds && cur.childIds.length > 0\n ? ([\n ...acc,\n ...cur.childIds.map((id) =>\n reasons.find((reason) => id === reason.id),\n ),\n ] as AvailableReturnItemReason[])\n : acc,\n [],\n );\n\n const rootNodes: AvailableReturnItemReason[] = reasons.filter((reason) =>\n reason.id ? !childNodes.map(({ id }) => id).includes(reason.id) : true,\n );\n\n if (selection.length === 0) return rootNodes;\n\n const currentSelection = selection[selection.length - 1].id\n ? reasons.find((reason) => reason.id === selection[selection.length - 1].id)\n : reasons.find(\n (reason) => reason.name === selection[selection.length - 1].name,\n );\n\n if (\n (currentSelection && !currentSelection.childIds) ||\n currentSelection?.childIds?.length === 0\n ) {\n return [currentSelection];\n }\n\n return currentSelection?.childIds\n ?.map((childId) => childNodes.find(({ id }) => id === childId))\n .filter(Boolean) as AvailableReturnItemReason[];\n};\n\nexport default displayReasons;\n","import { makeRootStyles } from \"../../../theme/styles\";\n\nconst useStyles = makeRootStyles(\n {\n selectList: {\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"8px\",\n },\n selectListOption: {\n padding: \"0.875rem 1rem\",\n fontSize: \"14px\",\n flexGrow: 1,\n textAlign: \"start\",\n fontWeight: \"inherit\",\n margin: 0,\n },\n },\n {\n name: \"N0SelectList\",\n },\n);\n\nexport { useStyles };\n","import React, { FC } from \"react\";\nimport { useTheme, withThemeProvider } from \"@narvar/nth-hook-theme\";\nimport { useStyles } from \"./SelectListStyles\";\nimport { ListProps, SelectListOption } from \"./types\";\nimport StyledMarkup from \"../StyledMarkup\";\nimport SelectItem from \"../SelectItem/SelectItem\";\n\nconst SelectListButton: FC = ({\n onChange,\n option: { value, label, disabled },\n selection,\n}) => {\n const { panelcontainerNoneNone, bodytextDefaultNone } = useTheme();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const styles: any = useStyles();\n\n const handleClick: (e: string) => void = (e) => {\n onChange?.(e);\n };\n\n return (\n handleClick(value)}\n selected={selection === value}\n disabled={disabled}>\n \n \n );\n};\n\nconst SelectList: FC = ({\n options,\n onChange,\n selection,\n}) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const styles: any = useStyles();\n return (\n
\n {options.map((option) => (\n \n ))}\n
\n );\n};\n\nexport default withThemeProvider(SelectList, {\n themeTokens: [\"panelcontainerNoneNone\", \"bodytextDefaultNone\"],\n});\n","import React, { FC } from \"react\";\nimport { MediumHeader } from \"@narvar/nth-bit-header\";\nimport { useTranslations } from \"@narvar/nth-hook-translations\";\nimport displayReasons from \"./displayReasons\";\nimport { ReturnReasonsListProps } from \"./types\";\nimport LanguageKeys from \"../../ReviewSummary/consts/language_en_US\";\nimport { Language } from \"../../ReviewSummary/components\";\nimport SelectList from \"../../ReviewSummary/components/SelectList/SelectList\";\nimport { LanguageProvider } from \"@narvar/nth-kit-returns-headless\";\nimport { SelectListOption } from \"../../ReviewSummary/components/types\";\n\nconst tempLanguageKeys = {\n returnsReasonsListTitle: LanguageKeys.returnsReasonsListTitle,\n returnsReasonsListTitleSecondary:\n LanguageKeys.returnsReasonsListTitleSecondary,\n};\n\nconst ReturnReasonsList: FC = ({\n reasons,\n onChange,\n selection,\n}) => {\n const reasonNodes: SelectListOption[] = displayReasons({\n reasons,\n selection,\n }).map(({ id, name }, i) => ({\n label: `${name || id || i}`,\n value: `${id ?? name ?? \"\"}`,\n }));\n\n const handleChange = (e: string) => {\n const selectedReason =\n reasons.find((reason) => reason.id === e) ||\n reasons.find((reason) => reason.name === e);\n\n if (selectedReason) {\n onChange(selectedReason);\n }\n };\n\n const currentSelection = reasons.find(\n (reason) => reason?.id === selection[selection.length - 1]?.id,\n );\n\n return (\n <>\n \n {selection.length === 0 ? (\n \n ) : (\n \n )}\n \n \n \n );\n};\n\nconst ReturnReasonsListWrapped = (props: ReturnReasonsListProps) => {\n const { returnsReasonsListTitle, returnsReasonsListTitleSecondary } =\n useTranslations();\n\n const title =\n returnsReasonsListTitle ?? tempLanguageKeys.returnsReasonsListTitle;\n const secondaryTitle =\n returnsReasonsListTitleSecondary ??\n tempLanguageKeys.returnsReasonsListTitleSecondary;\n\n return (\n \n \n \n );\n};\n\nexport default ReturnReasonsListWrapped;\n","import React, { ChangeEventHandler } from \"react\";\nimport { MediumHeader } from \"@narvar/nth-bit-header\";\nimport SelectList from \"@narvar/nth-select-list\";\nimport LanguageKeys from \"../../ReviewSummary/consts/language_en_US\";\nimport { Language } from \"../../ReviewSummary/components\";\n\nconst tempLanguageKeys = {\n returnsReasonsQuantityTitle: LanguageKeys.returnsReasonsQuantityTitle,\n returnsReasonsItemInfoQuantitySelectPlaceholder:\n LanguageKeys.returnsReasonsItemInfoQuantitySelectPlaceholder,\n};\n\nconst ReturnReasonsQuantity = ({\n quantity,\n onChange,\n totalQuantity,\n}: {\n quantity?: number;\n onChange: (e: number) => void;\n totalQuantity: number | null;\n}) => {\n const {\n returnsReasonsQuantityTitle,\n returnsReasonsItemInfoQuantitySelectPlaceholder,\n } = tempLanguageKeys;\n\n if (!totalQuantity) return null;\n\n const handleChange: ChangeEventHandler = (e) => {\n onChange(Number.parseInt(e.target.value, 10));\n };\n\n return (\n <>\n \n \n \n \n \n {Array(totalQuantity)\n .fill(undefined)\n .map((_, i) => {\n const value = i + 1;\n return (\n \n );\n })}\n \n \n );\n};\n\nexport default ReturnReasonsQuantity;\n","import React, { useState } from \"react\";\nimport { MediumHeader } from \"@narvar/nth-bit-header\";\nimport { useTranslations } from \"@narvar/nth-hook-translations\";\nimport LanguageKeys from \"../../ReviewSummary/consts/language_en_US\";\nimport {\n LanguageProvider,\n useReturnsConfig,\n} from \"@narvar/nth-kit-returns-headless\";\nimport { ErrorBanner, Language } from \"../../ReviewSummary/components\";\nimport SelectList from \"../../ReviewSummary/components/SelectList/SelectList\";\n\nconst ZERO_VALUE = 0;\n\nconst tempLanguageKeys = {\n returnsReasonsQuantityAllError: LanguageKeys.returnsReasonsQuantityAllError,\n returnsReasonsQuantityAllTitle: LanguageKeys.returnsReasonsQuantityAllTitle,\n returnsReasonsQuantityAllTitleHipaa:\n LanguageKeys.returnsReasonsQuantityAllTitleHipaa,\n returnsReasonsQuantityAllYesLabel:\n LanguageKeys.returnsReasonsQuantityAllYesLabel,\n returnsReasonsQuantityAllNoLabel:\n LanguageKeys.returnsReasonsQuantityAllNoLabel,\n};\n\nconst ReturnReasonsQuantityAll = ({\n onChange,\n totalQuantity,\n}: {\n onChange: (e: number) => void;\n totalQuantity: number | null;\n}) => {\n const { isHipaaCompliant } = useReturnsConfig();\n const [selection, setSelection] = useState(null);\n const [isErrorShown, setErrorShown] = useState(false);\n\n const {\n returnsReasonsQuantityAllError,\n returnsReasonsQuantityAllTitle,\n returnsReasonsQuantityAllTitleHipaa,\n returnsReasonsQuantityAllYesLabel,\n returnsReasonsQuantityAllNoLabel,\n } = useTranslations();\n\n if (!totalQuantity) return null;\n\n const handleChange = (e: string) => {\n // set the selected value\n setSelection(e);\n\n // make sure the value is of type number\n const valueAsNumber = Number.parseInt(e, 10);\n\n // if the value is 0, we show the error and return early\n if (valueAsNumber === ZERO_VALUE) {\n setErrorShown(true);\n return;\n } else {\n setErrorShown(false);\n }\n\n // if the value is not zero, we set the quantity and proceed to the next step via the parent component's onChange\n onChange(Number.parseInt(e, 10));\n };\n\n const langKeySuffix = isHipaaCompliant ? \"Hipaa\" : \"\";\n\n return (\n \n {isErrorShown && (\n \n \n \n )}\n \n \n \n \n \n );\n};\n\nexport default ReturnReasonsQuantityAll;\n","import { makeRootStyles } from \"../../theme/styles\";\n\nconst useStyles = makeRootStyles(\n {\n textarea: {\n width: \"100%\",\n minHeight: \"200px\",\n display: \"flex\",\n },\n commentWrapper: {\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"8px\",\n },\n },\n { name: \"ReturnReasonsComments\" },\n);\n\nexport { useStyles };\n","import React, { ChangeEventHandler, useState } from \"react\";\nimport { MediumHeader } from \"@narvar/nth-bit-header\";\nimport Button from \"@narvar/nth-block-button\";\nimport TextArea from \"@narvar/nth-block-text-area\";\nimport { useTranslations } from \"@narvar/nth-hook-translations\";\nimport LanguageKeys from \"../../ReviewSummary/consts/language_en_US\";\nimport { useStyles } from \"./ReturnReasonsCommentsStyles\";\nimport { useLanguage } from \"@narvar/nth-kit-returns-headless\";\nimport Checkbox from \"@narvar/nth-block-checkbox\";\nimport { Language } from \"../../ReviewSummary/components\";\nimport { ReturnReasonsCommentsProps } from \"./types\";\n\nconst tempLanguageKeys = {\n returnsReasonsCommentsPlaceholderRequired:\n LanguageKeys.returnsReasonsCommentsPlaceholderRequired,\n};\n\nconst ReturnReasonsComments = ({\n onChange,\n customerComments,\n required,\n attestation,\n attested,\n hideSubmit,\n onSubmit,\n}: ReturnReasonsCommentsProps) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const styles: any = useStyles();\n const {\n returnsReasonsCommentsTitle,\n returnsReasonsCommentsPlaceholder,\n returnsActionsNext,\n } = useTranslations();\n const { returnsReasonsCommentsPlaceholderRequired } = tempLanguageKeys;\n const [elId] = useState(`customer-comment-${Math.random()}`);\n\n const handleCommentChange: ChangeEventHandler = (\n event,\n ) => {\n onChange({\n customerComments: event.target.value,\n attested,\n });\n };\n const handleAttestedChange: ChangeEventHandler = (\n event,\n ) => {\n onChange({\n customerComments: customerComments,\n attested: event.target.checked,\n });\n };\n const handleSubmit = () => {\n onSubmit();\n };\n\n const { rawValue: returnsReasonsCommentsPlaceholderRaw } = useLanguage({\n langKey: \"returnsReasonsCommentsPlaceholder\",\n });\n const requiredPlaceholder = useLanguage({\n langKey: \"returnsReasonsCommentsPlaceholderRequired\",\n defaultString: returnsReasonsCommentsPlaceholderRequired,\n }).rawValue;\n\n const textAreaLabel = required\n ? requiredPlaceholder\n : (returnsReasonsCommentsPlaceholder ??\n returnsReasonsCommentsPlaceholderRaw);\n\n const isValid =\n (!required || customerComments.length > 0) && (!attestation || attested);\n\n return (\n <>\n \n \n \n
\n {attestation && (\n \n {attestation}\n \n )}\n \n
\n {!hideSubmit && (\n \n )}\n \n );\n};\n\nexport default ReturnReasonsComments;\n","import React, { FC } from \"react\";\nimport { MediumHeader } from \"@narvar/nth-bit-header\";\nimport { ReturnReasonsEditProps } from \"./types\";\nimport { useLanguage } from \"@narvar/nth-kit-returns-headless\";\nimport { Language } from \"../../ReviewSummary/components\";\nimport SelectList from \"../../ReviewSummary/components/SelectList/SelectList\";\n\nconst ReturnReasonsEdit: FC = ({ onChange }) => {\n const { rawValue: removeLabel = \"\" } = useLanguage({\n langKey: \"returnsReasonsEditRemoveLabel\",\n asString: true,\n });\n const { rawValue: continueLabel = \"\" } = useLanguage({\n langKey: \"returnsReasonsEditContinueLabel\",\n asString: true,\n });\n\n return (\n <>\n \n \n \n \n \n );\n};\n\nexport default ReturnReasonsEdit;\n","import { RetailerTranslations } from \"@narvar/nth-hook-loma\";\nimport { RetailerThemeStyles } from \"@narvar/nth-hook-theme\";\n\nexport const themeTokens: (keyof RetailerThemeStyles)[] = [\n \"panelcontainerNoneNone\",\n \"selecteditemNoneNone\",\n \"buttonsPrimaryDefault\",\n \"buttonsSecondaryDefault\",\n \"bodytextDefaultNone\",\n \"documentbodyNoneNone\",\n];\n\nexport const translationKeys: (keyof RetailerTranslations)[] = [\n \"returnsReasonsItemInfoTitle\",\n \"returnsReasonsItemInfoColor\",\n \"returnsReasonsItemInfoColorLabel\",\n \"returnsReasonsItemInfoSize\",\n \"returnsReasonsItemInfoSizeLabel\",\n \"returnsReasonsItemInfoQuantity\",\n \"returnsReasonsItemInfoQuantityLabel\",\n \"returnsReasonsItemInfoQuantitySelectPlaceholder\",\n \"returnsReasonsListTitle\",\n \"returnsReasonsListTitleSecondary\",\n \"returnsReasonsCommentsTitle\",\n \"returnsReasonsCommentsPlaceholder\",\n \"returnsReasonsEditTitle\",\n \"returnsReasonsEditRemoveLabel\",\n \"returnsReasonsEditContinueLabel\",\n \"returnsReasonsQuantityAllTitle\",\n \"returnsReasonsQuantityAllTitleHipaa\",\n \"returnsReasonsQuantityAllYesLabel\",\n \"returnsReasonsQuantityAllNoLabel\",\n \"returnsReasonsQuantityAllError\",\n \"returnsReasonsQuantityTitle\",\n \"returnsActionsNext\",\n];\n","import React, { FC, useMemo } from \"react\";\nimport { MediumHeader } from \"@narvar/nth-bit-header\";\nimport { ReturnReasonsTypeProps } from \"./types\";\nimport LanguageKeys from \"../../ReviewSummary/consts/language_en_US\";\nimport { ReturnReasonsReturnType } from \"../types\";\nimport {\n SelectListOption,\n useLanguage,\n} from \"@narvar/nth-kit-returns-headless\";\nimport { Language } from \"../../ReviewSummary/components\";\nimport SelectList from \"../../ReviewSummary/components/SelectList/SelectList\";\n\nconst tempLanguageKeys = {\n returnsReasonsTypeTitle: LanguageKeys.returnsReasonsTypeTitle,\n returnsReasonsTypeReturn: LanguageKeys.returnsReasonsTypeReturn,\n returnsReasonsTypeExchange: LanguageKeys.returnsReasonsTypeExchange,\n};\n\nconst ReturnReasonsType: FC = ({\n allowReturn,\n allowExchange,\n allowClaim,\n claimIneligibleReason,\n onChange,\n}) => {\n const {\n returnsReasonsTypeTitle,\n returnsReasonsTypeReturn,\n returnsReasonsTypeExchange,\n } = tempLanguageKeys;\n\n const returnLabel =\n useLanguage({\n langKey: \"returnsReasonsTypeReturn\",\n defaultString: returnsReasonsTypeReturn,\n }).rawValue ?? \"\";\n const exchangeLabel =\n useLanguage({\n langKey: \"returnsReasonsTypeExchange\",\n defaultString: returnsReasonsTypeExchange,\n }).rawValue ?? \"\";\n const claimLabel =\n useLanguage({\n langKey: \"returnsReasonsTypeClaim\",\n }).rawValue ?? \"\";\n\n const options: SelectListOption[] = useMemo(() => {\n const ret = [];\n if (allowReturn) {\n ret.push({\n label: returnLabel,\n value: \"return\",\n });\n }\n if (allowExchange) {\n ret.push({\n label: exchangeLabel,\n value: \"exchange\",\n });\n }\n if (allowClaim) {\n const label = claimIneligibleReason\n ? `
${claimLabel}
\n
${claimIneligibleReason}
`\n : claimLabel;\n\n ret.push({\n label,\n value: \"claim\",\n disabled: !!claimIneligibleReason,\n });\n }\n return ret;\n }, [\n allowReturn,\n allowExchange,\n allowClaim,\n claimIneligibleReason,\n returnLabel,\n exchangeLabel,\n claimLabel,\n ]);\n\n const handleChange = (e: string) => {\n onChange(e as ReturnReasonsReturnType);\n };\n\n return (\n <>\n \n \n \n \n \n );\n};\n\nexport default ReturnReasonsType;\n","import { useMemo, useState, useCallback } from \"react\";\nimport {\n ExchangeVariant,\n ExtendedOrderItem,\n ExtendedReturnItemInput,\n ReturnReasonsDefaultType,\n ReturnReasonsReturnType,\n ReturnReasonsStepsProps,\n VariantInfo,\n} from \"./types\";\nimport { AvailableReturnItemReason } from \"@narvar/nth-kit-returns-headless\";\n\nexport type ReturnReasonsFormDataValues = {\n type?: ReturnReasonsReturnType;\n selection: AvailableReturnItemReason[];\n quantity?: number;\n pictures?: File[];\n customerComments?: string;\n attested?: boolean;\n exchangeSelections?: VariantInfo;\n exchangeTo?: ExchangeVariant;\n};\n\nexport type ReturnReasonsFormDataOptions = {\n orderItem: ExtendedOrderItem;\n selectedItem?: ExtendedReturnItemInput;\n stepsProps?: ReturnReasonsStepsProps;\n defaultType?: ReturnReasonsReturnType;\n};\n\nexport type ReturnReasonsFormData = {\n values: ReturnReasonsFormDataValues;\n update: (\n values: Partial,\n ) => ReturnReasonsFormDataValues;\n reset: () => void;\n};\n\nexport type SupportedTypes = {\n return: boolean;\n exchange: boolean;\n claim: boolean;\n defaultType?: ReturnReasonsDefaultType;\n};\n\nexport const getSupportedTypes = ({\n orderItem,\n stepsProps,\n}: {\n orderItem: ExtendedOrderItem;\n stepsProps?: ReturnReasonsStepsProps;\n}): SupportedTypes => {\n const returnEnabled = !!orderItem.eligibilities.return?.isEligible;\n const exchangeEnabled =\n !!stepsProps?.exchanges?.enabled &&\n !!orderItem.eligibilities.exchange?.isEligible;\n // When claims ineligible reasons is provided, \"file claim\" option is still\n // showing on UI, but it's disabled. The ineligible reason will be shown.\n const claimEnabled =\n !!orderItem.hasShippingProtection &&\n !!(\n orderItem.eligibilities.claims?.isEligible ||\n orderItem.eligibilities?.claims?.message\n );\n const noNonReturnTypes = !(exchangeEnabled || claimEnabled);\n return {\n return: returnEnabled,\n exchange: exchangeEnabled,\n claim: claimEnabled,\n defaultType: returnEnabled && noNonReturnTypes ? \"return\" : undefined,\n };\n};\n\nexport const useReturnReasonsFormData: (\n options: ReturnReasonsFormDataOptions,\n) => ReturnReasonsFormData = ({\n orderItem,\n selectedItem,\n stepsProps,\n defaultType,\n}) => {\n defaultType =\n defaultType ?? getSupportedTypes({ orderItem, stepsProps }).defaultType;\n const initialValues: ReturnReasonsFormDataValues = useMemo(\n () => ({\n type: selectedItem?.exchangeTo\n ? \"exchange\"\n : selectedItem\n ? \"return\"\n : defaultType,\n selection: selectedItem\n ? ([\n orderItem.availableReasons?.find(\n (reason) => reason.id === selectedItem?.reason.id,\n ),\n ].filter((e) => e) as AvailableReturnItemReason[])\n : [],\n quantity:\n selectedItem?.quantity ??\n (orderItem.remainingQuantity === 1 ? 1 : undefined),\n pictures: selectedItem?.pictures,\n customerComments: selectedItem?.customerComments ?? \"\",\n attested: selectedItem?.attested ?? false,\n exchangeSelections: selectedItem?.exchangeTo?.variantInfo,\n exchangeTo: selectedItem?.exchangeTo,\n }),\n [selectedItem, orderItem, defaultType],\n );\n\n const [values, setValues] =\n useState(initialValues);\n\n const reset = useCallback(() => {\n setValues(initialValues);\n }, [initialValues]);\n\n const update: (\n updates: Partial,\n ) => ReturnReasonsFormDataValues = useCallback(\n (updates) => {\n const hasUpdate = Object.entries(updates).some(\n ([key, newValue]) =>\n values[key as keyof ReturnReasonsFormDataValues] !== newValue,\n );\n if (hasUpdate) {\n const newValues: ReturnReasonsFormDataValues = {\n ...values,\n ...updates,\n };\n setValues(newValues);\n return newValues;\n }\n return values;\n },\n [values],\n );\n\n return useMemo(() => ({ values, update, reset }), [values, update, reset]);\n};\n","import { makeRootStyles } from \"../../theme/styles\";\n\nconst useStyles = makeRootStyles(\n {\n shopNowWrapper: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n },\n },\n { name: \"ReturnReasonsExchange\" },\n);\n\nexport { useStyles };\n","import React, { FC, useEffect, useMemo, useCallback } from \"react\";\nimport { MediumHeader } from \"@narvar/nth-bit-header\";\nimport Panel from \"@narvar/nth-block-panel\";\nimport Paragraph from \"@narvar/nth-bit-paragraph\";\nimport Button from \"@narvar/nth-block-button\";\nimport { ReturnReasonsExchangeProps } from \"./types\";\nimport LanguageKeys from \"../../ReviewSummary/consts/language_en_US\";\nimport {\n Language,\n Spinner,\n SwatchesList,\n TextLink,\n} from \"../../ReviewSummary/components\";\nimport { ExchangeVariant, VariantInfo, VariantOption } from \"../types\";\nimport Sparsem, {\n IN_STOCK,\n SparsemSearchToken,\n SparsemOption,\n} from \"../../ReviewSummary/utils/Sparsem\";\nimport { useStyles } from \"./ReturnReasonsExchangeStyles\";\nimport { SwatchOption } from \"../../ReviewSummary/components/SwatchesList/types\";\n\nconst tempLanguageKeys = {\n returnsReasonsExchangeTitle: LanguageKeys.returnsReasonsExchangeTitle,\n returnsReasonsExchangeUpsellTitle:\n LanguageKeys.returnsReasonsExchangeUpsellTitle,\n returnsReasonsExchangeUpsellNoThanks:\n LanguageKeys.returnsReasonsExchangeUpsellNoThanks,\n returnsActionsNext: LanguageKeys.returnsActionsNext,\n};\n\nconst findBestMatch: (\n variants: ExchangeVariant[],\n variantInfo?: { [optionId: string]: { value: string } },\n) => ExchangeVariant | undefined = (variants, variantInfo) => {\n const entries = Object.entries(variantInfo ?? {});\n return entries.length\n ? variants.find((variant) =>\n entries.every(\n ([key, optInfo]) =>\n variant.variantInfo?.[key]?.value === optInfo?.value,\n ),\n )\n : undefined;\n};\n\nconst findExactMatch: (\n variants: ExchangeVariant[],\n variantInfo?: VariantInfo,\n) => ExchangeVariant | undefined = (variants, variantInfo) => {\n const bestMatch = findBestMatch(variants, variantInfo);\n if (!bestMatch) return undefined;\n\n const same = Object.entries(bestMatch.variantInfo ?? {}).every(\n ([key, optInfo]) => variantInfo?.[key]?.value === optInfo.value,\n );\n return same ? bestMatch : undefined;\n};\n\nconst positionSorterFactory =\n (defaultValue: number) =>\n (a: { position?: number }, b: { position?: number }) =>\n (a.position ?? defaultValue) - (b.position ?? defaultValue);\n\nconst sparsemFactory = (\n exchangeVariants: ExchangeVariant[],\n exchangeOptions: VariantOption[],\n): Sparsem => {\n const sparsem = new Sparsem();\n // Construct available options' values. Noted that it may not be start from 0\n const optionsSize =\n Math.max(...exchangeOptions.map((o) => o.position ?? -1), -1) + 1 ||\n exchangeOptions.length;\n const opts: SparsemOption[][] = new Array(optionsSize).fill(\n [],\n ) as SparsemOption[][];\n exchangeOptions.forEach((option, i) => {\n const pos = option.position ?? i;\n opts[pos] = option.values.map((v) => v.value);\n });\n // Construct available exchange variants and corresponding option values\n const variants = exchangeVariants\n .filter((variant) => variant.available)\n .map((variant) => {\n const values = Object.values(variant.variantInfo ?? {}).filter(Boolean);\n const ret: SparsemOption[] = new Array(opts.length).fill(\n undefined,\n ) as SparsemOption[];\n values.forEach((info, i) => {\n ret[info.optionPosition ?? i] = info.value;\n });\n return ret;\n });\n sparsem.setArr(variants, opts);\n return sparsem;\n};\n\nconst ReturnReasonsExchange: FC = ({\n orderItem,\n upsell,\n shopNow,\n exchangeOptions = [] as VariantOption[],\n exchangeVariants = [] as ExchangeVariant[],\n exchangeSelections,\n loading,\n hideSubmit,\n onSkip,\n onChange,\n onSubmit,\n}) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const styles: any = useStyles();\n\n const MAIN_EXCHANGE_OPTION_ID = \"PRODUCT\";\n const {\n returnsReasonsExchangeTitle,\n returnsReasonsExchangeUpsellTitle,\n returnsReasonsExchangeUpsellNoThanks,\n returnsActionsNext,\n } = tempLanguageKeys;\n\n const sortedExchangeOptions = useMemo(\n () =>\n exchangeOptions\n .sort(positionSorterFactory(exchangeOptions.length))\n .map((option) => ({\n ...option,\n values: option.values.sort(\n positionSorterFactory(option.values.length),\n ),\n })),\n [exchangeOptions],\n );\n\n const sparsem = useMemo(\n () => sparsemFactory(exchangeVariants, sortedExchangeOptions),\n [exchangeVariants, sortedExchangeOptions],\n );\n\n const handleChangeFactory: (opt: VariantOption) => (value: string) => void =\n useCallback(\n (opt) => (value) => {\n // reset (unselect) other options when user clicks on a product\n // (i.e., filter out all fields that are not 'product')\n // toUpperCase() added because this field name is not standardized\n const filteredKeys =\n Object.entries(exchangeSelections || {}).find(\n ([key]) => key.toUpperCase() === MAIN_EXCHANGE_OPTION_ID,\n ) || [];\n const filteredObj = filteredKeys.length\n ? Object.fromEntries([filteredKeys])\n : {};\n const variantInfo =\n opt.id.toUpperCase() === MAIN_EXCHANGE_OPTION_ID\n ? filteredObj\n : { ...exchangeSelections };\n\n const selected = opt.values.find((v) => v.value === value);\n if (selected) {\n variantInfo[opt.id] = {\n optionId: opt.id,\n optionName: opt.name,\n optionPosition: opt.position,\n ...selected,\n };\n } else {\n delete variantInfo[opt.id];\n }\n const event = {\n exchangeTo: findExactMatch(exchangeVariants, variantInfo),\n variantInfo: variantInfo,\n };\n if (onChange) onChange(event);\n },\n [exchangeSelections, exchangeVariants, onChange],\n );\n\n const exactMatch: ExchangeVariant | undefined = useMemo(\n () => findExactMatch(exchangeVariants, exchangeSelections),\n [exchangeVariants, exchangeSelections],\n );\n\n type SwatchesProps = VariantOption & {\n options: SwatchOption[];\n };\n\n const swatches: Array = useMemo(() => {\n const swatchesOptions = sortedExchangeOptions.map((opt, i) => {\n let values = Object.values(exchangeSelections ?? {});\n values = values\n .map((info, j) => ({\n ...info,\n position: info.optionPosition ?? j,\n }))\n .sort(positionSorterFactory(values.length));\n const searchTokens: SparsemSearchToken[] = new Array(sparsem.num).fill(\n undefined,\n ) as SparsemSearchToken[];\n values.forEach((v, j) => (searchTokens[v?.position ?? j] = v.value));\n searchTokens[opt.position ?? i] = null;\n const availability = sparsem.search(searchTokens);\n\n const swatchOption: SwatchesProps = {\n ...opt,\n options: opt.values.map((v) => {\n const bestMatchOfCurrentOption = findBestMatch(exchangeVariants, {\n [opt.id]: v,\n });\n return {\n value: v.value,\n label: v.name ?? v.value,\n color: v.color,\n imageUrl: v.imageUrl ?? bestMatchOfCurrentOption?.imageUrl,\n grayedOut: availability[v.value] !== IN_STOCK,\n };\n }),\n };\n return swatchOption;\n });\n return swatchesOptions;\n }, [sparsem, sortedExchangeOptions, exchangeVariants, exchangeSelections]);\n\n // auto select the first available \"product\" option during initialization\n useEffect(() => {\n if (upsell) return;\n if (exchangeSelections) return;\n\n const key = swatches[0]?.id;\n const swatch = /^product$/i.test(key) ? swatches[0] : undefined;\n if (!swatch) return;\n\n const defaultSelection = swatch.options.find((opt) => !opt.disabled);\n if (defaultSelection) {\n handleChangeFactory(swatch)(defaultSelection.value);\n }\n }, [upsell, swatches, exchangeSelections, handleChangeFactory]);\n\n const noThanks =\n upsell &&\n Object.values(exchangeSelections ?? {}).filter((d) => d).length === 0;\n\n const unavailable =\n !loading && exchangeOptions.length === 0 && exchangeVariants.length === 0;\n\n const handleShopNow = () => {\n const event =\n exchangeVariants.find((v) => v.variantId === orderItem.variantId) ??\n findBestMatch(exchangeVariants, orderItem.variantInfo) ??\n exchangeVariants[0];\n\n const exchangeTo = { ...event, exchangeForCredit: true };\n onChange?.({\n type: \"exchangeForCredit\",\n exchangeTo,\n variantInfo: exchangeTo.variantInfo,\n });\n onSubmit?.(exchangeTo);\n };\n\n const handleSubmit = () => {\n if (exactMatch && exactMatch.available) {\n const event = exactMatch;\n onSubmit?.(event);\n }\n };\n\n return (\n <>\n \n {upsell ? (\n \n ) : (\n \n )}\n \n {!unavailable &&\n swatches.map((opt) => (\n \n ))}\n {unavailable && (\n \n \n \n )}\n {!upsell && shopNow && (\n \n
\n \n \n \n \n
\n
\n )}\n {hideSubmit || unavailable ? null : noThanks ? (\n \n ) : (\n \n )}\n {loading && }\n \n );\n};\n\nexport default ReturnReasonsExchange;\n","import React from \"react\";\n\nimport { useTranslations } from \"@narvar/nth-hook-translations\";\nimport Button from \"@narvar/nth-block-button\";\nimport { MediumHeader } from \"@narvar/nth-bit-header\";\n\nimport LanguageKeys from \"../../ReviewSummary/consts/language_en_US\";\nimport { useLanguage } from \"@narvar/nth-kit-returns-headless\";\nimport Icon from \"../../ReviewSummary/components/Icon\";\nimport { FileUpload, Language } from \"../../ReviewSummary/components\";\n\nconst tempLanguageKeys = {\n returnsReasonsPicturesTitle: LanguageKeys.returnsReasonsPicturesTitle,\n returnsReasonsPicturesUploadButton:\n LanguageKeys.returnsReasonsPicturesUploadButton,\n returnsReasonsPicturesUploadDescription:\n LanguageKeys.returnsReasonsPicturesUploadDescription,\n};\n\nconst ReturnReasonsPictures = ({\n pictures,\n maxSize,\n minCount,\n maxCount,\n hideSubmit,\n onChange,\n onSubmit,\n}: {\n pictures?: File[];\n maxSize?: number;\n minCount?: number;\n maxCount?: number;\n hideSubmit?: boolean;\n onChange?: (pictures: File[]) => void;\n onSubmit?: () => void;\n}) => {\n const {\n returnsReasonsPicturesTitle,\n returnsReasonsPicturesUploadButton,\n returnsReasonsPicturesUploadDescription,\n } = tempLanguageKeys;\n const { returnsActionsNext } = useTranslations();\n\n const uploadButtonLabel = useLanguage({\n langKey: \"returnsReasonsPicturesUploadButton\",\n defaultString: returnsReasonsPicturesUploadButton,\n }).value;\n\n const uploadCaption = useLanguage({\n langKey: \"returnsReasonsPicturesUploadDescription\",\n defaultString: returnsReasonsPicturesUploadDescription,\n }).value;\n\n const isValid =\n (!maxCount || maxCount >= (pictures?.length ?? 0)) &&\n (!minCount || minCount <= (pictures?.length ?? 0));\n\n const handleChange = (acceptedFiles: File[]) => {\n onChange?.(acceptedFiles);\n };\n const handleSubmit = () => {\n onSubmit?.();\n };\n\n return (\n <>\n \n \n \n\n \n \n\n {!hideSubmit && (\n \n )}\n \n );\n};\n\nexport default ReturnReasonsPictures;\n","import { makeRootStyles } from \"../theme/styles\";\n\nconst useStyles = makeRootStyles(\n {\n rootWrapper: {\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n flexGrow: 1,\n },\n wrapper: {\n display: \"flex\",\n justifyContent: \"center\",\n gap: \"20px\",\n width: \"80%\",\n paddingTop: \"50px\",\n },\n userActions: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n gap: \"20px\",\n minWidth: \"50%\",\n width: \"100%\",\n },\n backButtonWrapper: {\n position: \"absolute\",\n top: \"20px\",\n left: 0,\n padding: \"20px\",\n },\n },\n { name: \"ReturnReasons\" },\n);\n\nexport { useStyles };\n","import React, {\n FC,\n useMemo,\n useRef,\n useState,\n useEffect,\n useCallback,\n RefObject,\n CSSProperties,\n} from \"react\";\nimport { useContainerQuery } from \"react-container-query\";\nimport { Query } from \"react-container-query/lib/interfaces\";\nimport useResizeObserver from \"@react-hook/resize-observer\";\nimport { useTheme, withThemeProvider } from \"@narvar/nth-hook-theme\";\nimport { useSettings, withSettingsProvider } from \"@narvar/nth-hook-settings\";\nimport { withTranslationsProvider } from \"@narvar/nth-hook-translations\";\nimport ReturnReasonsList from \"./ReturnReasonsList\";\nimport {\n ReturnOptionPayload,\n ReturnReasonsPayload,\n ReturnReasonsRawProps,\n} from \"./types\";\nimport ReturnReasonsQuantity from \"./ReturnReasonsQuantity\";\nimport ReturnReasonsQuantityAll from \"./ReturnReasonsQuantityAll\";\nimport ReturnReasonsComments from \"./ReturnReasonsComments/ReturnReasonsComments\";\nimport ReturnReasonsEdit from \"./ReturnReasonsEdit\";\nimport { themeTokens, translationKeys } from \"./tokens\";\nimport ReturnReasonsType from \"./ReturnReasonsType\";\nimport { useReturnReasonsPath } from \"./path\";\nimport ReturnReasonsExchange from \"./ReturnReasonsExchange/ReturnReasonsExchange\";\nimport ReturnReasonsPictures from \"./ReturnReasonsPictures/index\";\nimport {\n useReturnReasonsFormData,\n ReturnReasonsFormDataValues,\n} from \"./formData\";\nimport {\n ButtonData,\n FooterButtonType,\n} from \"../ReviewSummary/components/Footer/types\";\nimport { useStyles } from \"./ReturnReasonsStyles\";\nimport { CommonEvent, useLanguage } from \"@narvar/nth-kit-returns-headless\";\nimport {\n BackButton,\n Footer,\n ItemCard,\n StickyFooter,\n} from \"../ReviewSummary/components\";\nimport {\n getItemAttrs,\n getItemProps,\n} from \"../ReviewSummary/utils/itemSelectorHelper\";\nimport { getBorderColor } from \"../ReviewSummary/transformers/style\";\nimport { ReturnReasonsCommentsChangeEvent } from \"./ReturnReasonsComments/types\";\n\nconst reasonOptionPayload: (\n payload: ReturnOptionPayload,\n) => ReturnReasonsPayload = ({\n type,\n selection,\n customerComments = \"\",\n attested = false,\n pictures,\n quantity,\n item,\n exchangeTo,\n exchangeSelections = {},\n}) => {\n const selectionNode = selection[selection.length - 1];\n const parent = selection.length > 1 ? selection[selection.length - 2].id : \"\";\n\n return {\n type,\n selectedReason: {\n id: selectionNode?.id || \"\",\n name: selectionNode?.name || \"\",\n category: selectionNode?.name,\n parent,\n },\n pictures,\n customerComments,\n attested,\n path: selection,\n quantity,\n item,\n exchangeTo,\n selectedExchangeOptions: exchangeSelections,\n };\n};\n\nconst query: Query = {\n above700: {\n minWidth: 700,\n },\n};\n\nconst noop = () => {};\n\nconst ReturnReasonsRawComponent: FC = ({\n locale,\n includeCurrency,\n orderItem,\n selectedItem,\n stepsProps,\n exchangeOptions,\n exchangeVariants,\n value,\n layout,\n loading,\n defaultType,\n onNext,\n onChange,\n onSubmit,\n onBack,\n onClose,\n onError,\n}) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const styles: any = useStyles();\n\n const { itemDisplay, returnReasons } = useSettings();\n const { returnQuantityMustBeAll } = returnReasons ?? {};\n const { buttonsPrimaryDefault, selecteditemNoneNone, bodytextDefaultNone } =\n useTheme();\n\n // No exchange options is provided, probably there is only one variant, which\n // is the original product.\n const skipExchangeSelection =\n !loading &&\n !stepsProps?.exchanges?.shopNow &&\n exchangeOptions?.length === 0 &&\n exchangeVariants &&\n exchangeVariants?.length > 0;\n // If there is no exchange options, or no available exchange variants, or\n // every variants are from the returning product, hide exchange upsell in the\n // last step of the return flow.\n const availableExchangeVariants =\n exchangeVariants?.filter((variant) => variant.available) ?? [];\n const skipUpsellSelection =\n !loading &&\n (exchangeOptions?.length === 0 ||\n availableExchangeVariants.length === 0 ||\n availableExchangeVariants.every(\n (variant) => variant.productId === orderItem.productId,\n ));\n\n const statefulValues = !value;\n const _formData = useReturnReasonsFormData({\n orderItem,\n selectedItem,\n stepsProps,\n defaultType,\n });\n const valueWithFallback = statefulValues ? _formData.values : value;\n const {\n type,\n selection,\n quantity,\n pictures,\n customerComments,\n attested,\n exchangeSelections,\n exchangeTo,\n } = valueWithFallback;\n const resetValue = statefulValues ? _formData.reset : noop;\n const updateValue = statefulValues ? _formData.update : noop;\n\n const stepsState = useReturnReasonsPath({\n returnQuantityMustBeAll,\n orderItem,\n selectedItem,\n skipExchangeSelection,\n skipUpsellSelection,\n stepsProps,\n value: valueWithFallback,\n defaultType,\n });\n const {\n isLastStep,\n isCompleted,\n path,\n next: goNext,\n back: goBack,\n } = stepsState;\n const currentStepData = path[path.length - 1];\n const currentStep = currentStepData.step;\n\n useEffect(() => {\n if (skipExchangeSelection && type === \"exchange\" && !exchangeSelections) {\n updateValue({\n exchangeTo: exchangeVariants[0],\n exchangeSelections: {},\n });\n }\n }, [\n skipExchangeSelection,\n type,\n exchangeVariants,\n exchangeSelections,\n updateValue,\n ]);\n\n const [params, containerRef] = useContainerQuery(query, {}) as [\n Query,\n RefObject,\n ];\n const selectedQuantity = selectedItem?.quantity || quantity;\n\n const footerButtons = useMemo(() => {\n const ret: {\n leftButton?: ButtonData;\n centerButton?: ButtonData;\n rightButton?: ButtonData;\n } = {};\n const convertButtonProps = (nav: ButtonData) => ({\n outline: nav.type === \"back\" || nav.type === \"cancel\",\n ...nav,\n big: !params.above700,\n });\n const current = path[path.length - 1];\n const buttons = current.navigation.map(convertButtonProps);\n if (buttons.length === 1) {\n ret.centerButton = buttons[0];\n } else if (buttons.length === 2) {\n ret.leftButton = buttons[0];\n ret.rightButton = buttons[1];\n } else if (buttons.length >= 3) {\n ret.leftButton = buttons[0];\n ret.centerButton = buttons[1];\n ret.rightButton = buttons[2];\n }\n return ret;\n }, [path, params.above700]);\n\n // When we have `footerNav` layout and it is a mobile view. We need extra\n // padding bottom to make sure the main content won't be covered by the sticky\n // footer. Since the footer height varies based on the state of return item\n // (eg. number of variant options), we compute the padding dynamically with\n // min. 200px (ItemCard's height(~160px) + height of button row(40px))\n const min200 = (x: number) => Math.max(x, 200);\n const [paddingBottom, setPaddingBottom] = useState();\n const rootStyle = useMemo(\n () => ({\n paddingBottom,\n position: layout === \"footerAbsolute\" ? \"static\" : \"relative\",\n }),\n [paddingBottom, layout],\n );\n const footerRef = useRef(null);\n const resizeHandler = () => {\n if (\n params.above700 ||\n (layout !== \"footerNav\" && layout !== \"footerAbsolute\")\n )\n return;\n\n const { height = 0 } = footerRef?.current?.getBoundingClientRect?.() ?? {};\n setPaddingBottom(min200(height) + 24);\n };\n useResizeObserver(footerRef, resizeHandler);\n useEffect(resizeHandler, [params.above700, layout, footerRef]);\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: priceLabel } = useLanguage({\n langKey: \"returnsItemListItemInfopriceLabel\",\n });\n const { rawValue: reasonLabel } = useLanguage({\n langKey: \"returnsItemListItemInforeasonLabel\",\n });\n\n const selectedNode = selection[selection.length - 1];\n\n const cancelEvent = () => {\n onClose?.({\n value: null,\n event: \"cancel\",\n area: \"returnReason\",\n });\n resetValue();\n };\n\n const handleChangeFactory =\n (\n subComponent:\n | \"type\"\n | \"reasons\"\n | \"quantity\"\n | \"pictures\"\n | \"customerComments\"\n | \"exchanges\",\n submitOnChange?: boolean,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n overrideFunc?: (event?: any) => object,\n ) =>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (event?: any) => {\n let updates: ReturnReasonsFormDataValues = {\n type,\n selection,\n quantity,\n pictures,\n customerComments,\n attested,\n exchangeSelections,\n exchangeTo,\n };\n if (overrideFunc) {\n updates = {\n ...updates,\n ...overrideFunc(event),\n };\n } else {\n // @ts-expect-error\n\n updates[subComponent] = event;\n }\n updateValue(updates);\n\n const payload = reasonOptionPayload({\n item: orderItem,\n ...updates,\n });\n onChange?.({\n value: payload,\n event: \"change\",\n area: \"returnReason\",\n subComponent,\n });\n if (submitOnChange) {\n goNext(payload);\n onNext?.({\n value: payload,\n event: \"next\",\n area: \"returnReason\",\n subComponent,\n });\n }\n };\n\n const handleSubmitFactory = useCallback(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (overrideFunc?: (event?: any) => object) => (event?: any) => {\n const override = overrideFunc?.(event);\n\n onSubmit?.({\n value: reasonOptionPayload({\n ...valueWithFallback,\n item: orderItem,\n ...override,\n }),\n event: \"submit\",\n area: \"returnReason\",\n });\n },\n [valueWithFallback, orderItem, onSubmit],\n );\n\n const handleBack = () => {\n if (selectedItem) {\n onClose?.({\n value:\n reasonOptionPayload({\n type,\n selection,\n customerComments,\n pictures,\n quantity,\n item: orderItem,\n exchangeTo,\n }) || null,\n event: \"back\",\n area: \"returnReason\",\n subComponent: \"edit\",\n });\n resetValue();\n }\n\n const result = goBack();\n if (!result) {\n cancelEvent();\n } else {\n onBack?.({\n value: result.payload,\n event: \"back\",\n area: \"returnReason\",\n subComponent: result.step,\n });\n updateValue({\n ...result.payload,\n selection: result.payload.path,\n exchangeSelections: result.payload.exchangeTo?.variantInfo,\n });\n }\n };\n\n const handleNext = () => {\n const payload = reasonOptionPayload({\n type,\n selection,\n customerComments,\n pictures,\n quantity,\n item: orderItem,\n exchangeTo,\n });\n goNext(payload);\n onNext?.({\n value: payload,\n event: \"next\",\n area: \"returnReason\",\n subComponent: currentStep,\n });\n };\n\n const handleEditChange = (e: string) => {\n onSubmit?.({\n value: reasonOptionPayload({\n type,\n selection,\n customerComments,\n attested,\n pictures,\n item: orderItem,\n quantity: e === \"remove\" ? 0 : selectedItem?.quantity,\n exchangeTo,\n }),\n event: \"change\",\n area: \"returnReason\",\n subComponent: \"edit\",\n });\n };\n\n const handleFooterEvent: CommonEvent = (e) => {\n if (e.value === \"back\") {\n return handleBack();\n }\n if (e.value === \"next\") {\n return handleNext();\n }\n if (e.value === \"submit\") {\n return handleSubmitFactory(() => {\n if (currentStep === \"upsellSelector\" && valueWithFallback.exchangeTo) {\n return { type: \"exchange\" };\n }\n return {};\n })();\n }\n };\n\n useEffect(() => {\n if (isCompleted) {\n handleSubmitFactory()();\n }\n }, [isCompleted, handleSubmitFactory]);\n\n const getPreviewItemCard = (footerPreview?: boolean) => {\n return (\n \n );\n };\n\n const reasons = orderItem?.availableReasons;\n\n useEffect(() => {\n if (reasons) return;\n\n onError?.({\n area: \"returnReason\",\n error: {\n code: \"noReasonsFound\",\n description: \"No reasons associated with this item\",\n },\n event: \"init\",\n });\n }, [onError, reasons]);\n\n if (!reasons) return null;\n\n return (\n \n
\n {params.above700 && getPreviewItemCard()}\n
\n {(() => {\n if (currentStep === \"editSelector\")\n return ;\n if (currentStep === \"typeSelector\") {\n return (\n d === \"return\",\n )}\n allowExchange={currentStepData.options.types?.some(\n (d) => d === \"exchange\",\n )}\n allowClaim={currentStepData.options.types?.some(\n (d) => d === \"claim\",\n )}\n claimIneligibleReason={\n orderItem.eligibilities.claims?.message ?? undefined\n }\n onChange={handleChangeFactory(\"type\", true)}\n />\n );\n }\n if (currentStep === \"reasonSelector\")\n return (\n ({\n selection: [...selection, event],\n }))}\n selection={selection}\n reasons={currentStepData.options.reasons ?? []}\n />\n );\n if (currentStep === \"quantityAll\")\n return (\n ({ quantity: e })) // simple exchange with remainingQuantity > 1, or when comments are not allowed\n : handleChangeFactory(\"quantity\", true)\n } // We use the quantity subComponent in handleChangeFactory, as this component only returns totalQuantity or 0.\n totalQuantity={\n currentStepData.options.totalQuantity ??\n orderItem.remainingQuantity\n }\n />\n );\n if (currentStep === \"quantitySelector\")\n return (\n ({ quantity: e })) // simple exchange with remainingQuantity > 1\n : handleChangeFactory(\"quantity\", true)\n }\n totalQuantity={\n currentStepData.options.totalQuantity ??\n orderItem.remainingQuantity\n }\n quantity={quantity}\n />\n );\n if (currentStep === \"picturesUploader\")\n return (\n \n );\n if (currentStep === \"commentsForm\") {\n const selectedReasonHasCommentRequired = selection.some(\n (reason) => reason?.comments?.required,\n );\n // We use || instead of ??, because we want any instance of \"true\" to set isRequired.\n const isRequired =\n stepsProps?.comments?.required ||\n selectedReasonHasCommentRequired ||\n false;\n return (\n event,\n )}\n customerComments={customerComments ?? \"\"}\n required={isRequired}\n attestation={stepsProps?.comments?.attestation}\n attested={attested ?? false}\n hideSubmit={\n layout === \"footerNav\" || layout === \"footerAbsolute\"\n }\n onSubmit={isLastStep ? handleSubmitFactory() : handleNext}\n />\n );\n }\n if (\n currentStep === \"exchangeItemSelector\" ||\n currentStep === \"upsellSelector\"\n )\n return (\n {\n const update: Partial = {\n exchangeSelections: event.variantInfo,\n\n exchangeTo: event.exchangeTo,\n };\n\n if (event.type) update.type = event.type;\n return update;\n })}\n loading={loading}\n onSubmit={\n isLastStep\n ? handleSubmitFactory(() => ({\n type: \"exchange\",\n }))\n : handleNext\n }\n />\n );\n return <>;\n })()}\n {layout === \"footerNav\" && (\n \n \n \n )}\n {layout === \"footerAbsolute\" && (\n \n \n \n )}\n
\n
\n {(layout === \"default\" || !layout) && (\n
\n \n
\n )}\n \n );\n};\n\nexport const ReturnReasonsRaw = withSettingsProvider(\n withTranslationsProvider(\n withThemeProvider(ReturnReasonsRawComponent, { themeTokens }),\n { translationKeys },\n ),\n {\n settingsRequested: `\n returnReasons {\n returnQuantityMustBeAll\n }\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 { useMemo, useState, useCallback } from \"react\";\nimport {\n AvailableReturnItemReason,\n ReturnItemInput,\n useLanguage,\n ButtonData,\n ExtendedOrderItem,\n} from \"@narvar/nth-kit-returns-headless\";\nimport { ReturnReasonsStepsProps } from \"./types\";\nimport { getSupportedTypes, ReturnReasonsFormDataValues } from \"./formData\";\nimport {\n ReturnReasonsReturnType,\n ReturnReasonsStep,\n ReturnReasonsPayload,\n ReturnReasonsDefaultType,\n} from \"./types\";\n\nexport type ReturnReasonsPathHistory = {\n step: ReturnReasonsStep;\n stepIndex: number;\n payload: ReturnReasonsPayload;\n};\n\nexport type ReturnReasonsPathData = {\n step: ReturnReasonsStep;\n options: {\n types?: ReturnReasonsReturnType[];\n reasons?: AvailableReturnItemReason[];\n totalQuantity?: number;\n pictures?: {\n minCount?: number;\n maxCount?: number;\n maxSize?: number;\n };\n consumerCommentsRequired?: boolean;\n };\n navigation: ButtonData[];\n};\n\nexport type ReturnReasonsPathState = {\n path: ReturnReasonsPathData[];\n isLastStep: boolean;\n isCompleted: boolean;\n history: ReturnReasonsPathHistory[];\n next: (payload: ReturnReasonsPayload) => void;\n back: () => ReturnReasonsPathHistory;\n};\n\nexport const useReturnReasonsPath: (options: {\n orderItem: ExtendedOrderItem;\n selectedItem?: ReturnItemInput;\n value: ReturnReasonsFormDataValues;\n returnQuantityMustBeAll?: boolean | null;\n skipExchangeSelection?: boolean;\n skipUpsellSelection?: boolean;\n stepsProps?: ReturnReasonsStepsProps;\n defaultType?: ReturnReasonsDefaultType;\n}) => ReturnReasonsPathState = ({\n orderItem,\n selectedItem,\n value,\n returnQuantityMustBeAll = false,\n skipExchangeSelection,\n skipUpsellSelection,\n stepsProps,\n defaultType,\n}) => {\n const {\n return: returnEnabled,\n exchange: exchangeEnabled,\n claim: claimEnabled,\n defaultType: suggestedDefaultType,\n } = getSupportedTypes({ orderItem, stepsProps });\n defaultType = defaultType ?? suggestedDefaultType;\n const backLabel = useLanguage({ langKey: \"returnsActionsBack\" }).value ?? \"\";\n const nextLabel = useLanguage({ langKey: \"returnsActionsNext\" }).value ?? \"\";\n const submitLabel = nextLabel;\n const noThanksLabel =\n useLanguage({\n langKey: \"returnsReasonsExchangeUpsellNoThanks\",\n }).value ?? \"\";\n\n // compute the steps / flow required in the return reasons form\n const steps = useMemo(() => {\n if (selectedItem) return [\"editSelector\"];\n\n const ret: ReturnReasonsStep[] = [];\n const isExchangeFlow =\n value?.type === \"exchange\" || value?.type === \"exchangeForCredit\";\n\n if (!defaultType) ret.push(\"typeSelector\");\n if (isExchangeFlow) {\n if (!skipExchangeSelection) ret.push(\"exchangeItemSelector\");\n\n if (stepsProps?.exchanges?.simpleFlow && orderItem.remainingQuantity > 1)\n ret.push(\"quantitySelector\");\n\n // simple exchange flow would not ask for reasons, comments, etc\n if (stepsProps?.exchanges?.simpleFlow) return ret;\n }\n\n // remaining steps are return flow or exchange flow with details\n ret.push(\"reasonSelector\");\n\n if (orderItem.remainingQuantity > 1) {\n if (\n returnQuantityMustBeAll &&\n orderItem.remainingQuantity === orderItem.orderedQuantity\n ) {\n ret.push(\"quantityAll\");\n } else {\n ret.push(\"quantitySelector\");\n }\n }\n\n if (stepsProps?.pictures?.enabled) ret.push(\"picturesUploader\");\n\n // If the comments config is undefined OR set as allowed, we add the commentsForm as a step.\n if (\n !value?.selection?.[0]?.comments ||\n value?.selection?.[0]?.comments?.allowed\n ) {\n ret.push(\"commentsForm\");\n }\n\n if (exchangeEnabled && !isExchangeFlow && !skipUpsellSelection)\n ret.push(\"upsellSelector\");\n\n return ret;\n }, [\n orderItem,\n selectedItem,\n defaultType,\n value,\n exchangeEnabled,\n returnQuantityMustBeAll,\n skipExchangeSelection,\n skipUpsellSelection,\n stepsProps,\n ]);\n\n const [history, setHistory] = useState([]);\n\n const [currentStepIndex, setCurrentStepIndex] = useState(0);\n const currentStep: ReturnReasonsStep = steps[currentStepIndex];\n const isLastStep = currentStepIndex >= steps.length - 1;\n const isCompleted = currentStepIndex >= steps.length;\n\n const path = useMemo(\n () =>\n steps\n .filter((d, i) => i <= currentStepIndex)\n .map((step) => {\n const data: ReturnReasonsPathData = {\n step,\n options: {},\n navigation: [],\n };\n\n const nextButton: ButtonData = {\n type: isLastStep ? \"submit\" : \"next\",\n label: isLastStep ? submitLabel : nextLabel,\n disabled: true,\n };\n\n if (step !== \"editSelector\") {\n data.navigation.push({\n type: \"back\",\n label: backLabel,\n disabled: false,\n outline: true,\n });\n }\n\n switch (step) {\n case \"typeSelector\": {\n data.options.types = [];\n if (returnEnabled) data.options.types.push(\"return\");\n if (exchangeEnabled) data.options.types.push(\"exchange\");\n if (claimEnabled) data.options.types.push(\"claim\");\n break;\n }\n case \"reasonSelector\": {\n data.options.reasons = orderItem.availableReasons ?? [];\n break;\n }\n case \"quantityAll\": {\n data.options.totalQuantity = orderItem.remainingQuantity;\n break;\n }\n case \"quantitySelector\": {\n data.options.totalQuantity = orderItem.remainingQuantity;\n break;\n }\n case \"picturesUploader\": {\n data.options.pictures = {\n minCount: stepsProps?.pictures?.enabled ? 1 : 0,\n maxCount: stepsProps?.pictures?.maxCount,\n maxSize: stepsProps?.pictures?.maxSize,\n };\n const maxCount =\n stepsProps?.pictures?.maxCount ?? Number.MAX_VALUE;\n const minCount = stepsProps?.pictures?.required ? 1 : 0;\n const count = value.pictures?.length ?? 0;\n data.navigation.push({\n ...nextButton,\n disabled: count < minCount || count > maxCount,\n });\n break;\n }\n case \"commentsForm\": {\n data.options.consumerCommentsRequired =\n stepsProps?.comments?.required;\n data.navigation.push({\n ...nextButton,\n disabled:\n (!!stepsProps?.comments?.required &&\n !value.customerComments) ||\n (!!stepsProps?.comments?.attestation && !value.attested),\n });\n break;\n }\n case \"exchangeItemSelector\":\n case \"upsellSelector\": {\n const upsell = step === \"upsellSelector\";\n const skipExchange =\n upsell &&\n Object.entries(value.exchangeSelections ?? {}).length === 0;\n const notSelected =\n !value.exchangeTo || !value.exchangeTo?.available;\n data.navigation.push({\n type: isLastStep ? \"submit\" : \"next\",\n label: !isLastStep\n ? nextLabel\n : skipExchange\n ? noThanksLabel\n : submitLabel,\n disabled: !skipExchange && notSelected,\n });\n break;\n }\n }\n\n return data;\n }),\n [\n orderItem,\n value,\n returnEnabled,\n exchangeEnabled,\n claimEnabled,\n stepsProps,\n steps,\n currentStepIndex,\n isLastStep,\n backLabel,\n nextLabel,\n submitLabel,\n noThanksLabel,\n ],\n );\n\n const next = useCallback(\n (payload: ReturnReasonsPayload) => {\n let saveState = { ...payload };\n let nextStepIndex = currentStepIndex + 1;\n\n const _currentStep = [\"quantityAll\", \"quantitySelector\"].includes(\n currentStep,\n )\n ? \"quantity\"\n : currentStep;\n\n switch (_currentStep) {\n case \"typeSelector\": {\n // we don't need to remember the current type selection, so we won't\n // show a returning/exchanging tag in item preview\n saveState = {\n ...saveState,\n type: undefined,\n };\n break;\n }\n case \"reasonSelector\": {\n const reason = saveState.path[saveState.path.length - 1];\n const hasChild = (reason?.childIds?.length ?? 0) > 0;\n if (reason && hasChild) {\n nextStepIndex = currentStepIndex;\n }\n\n // we don't need to remember the current reason selection, otherwise\n // when user go back, it brings user to the child reason page.\n const newPath = saveState.path.slice(0, -1);\n const parent = newPath[newPath.length - 1];\n const grandparent = newPath[newPath.length - 2];\n saveState = {\n ...saveState,\n path: newPath,\n selectedReason: {\n id: parent?.id ?? \"\",\n name: parent?.name ?? \"\",\n category: parent?.name,\n parent: grandparent?.id,\n },\n };\n break;\n }\n case \"quantity\": {\n saveState = {\n ...saveState,\n quantity: undefined,\n };\n break;\n }\n }\n\n setHistory((h) => [\n ...h,\n { step: currentStep, stepIndex: currentStepIndex, payload: saveState },\n ]);\n setCurrentStepIndex(nextStepIndex);\n },\n [currentStep, currentStepIndex],\n );\n\n const back = useCallback(() => {\n const previousStep = history[history.length - 1];\n const updates = history.slice(0, -1);\n if (previousStep) {\n setHistory(updates);\n setCurrentStepIndex(previousStep?.stepIndex);\n }\n return previousStep;\n }, [history]);\n\n return useMemo(\n () => ({\n path,\n isLastStep,\n isCompleted,\n history,\n next,\n back,\n }),\n [path, isLastStep, isCompleted, history, next, back],\n );\n};\n","import { CSSProperties } from \"react\";\n\nexport const getBorderColor: (style?: CSSProperties) => string | undefined = (\n style,\n) =>\n style?.borderColor ??\n style?.borderTopColor ??\n style?.borderLeftColor ??\n style?.borderBottomColor ??\n style?.borderRightColor;\n\nexport const getBordersColor = (\n style: CSSProperties | undefined,\n defaultColor: string,\n) => ({\n borderTopColor: style?.borderTopColor ?? defaultColor,\n borderLeftColor: style?.borderLeftColor ?? defaultColor,\n borderBottomColor: style?.borderBottomColor ?? defaultColor,\n borderRightColor: style?.borderRightColor ?? defaultColor,\n});\n\nexport const getBorderWidth: (\n style?: CSSProperties,\n) => string | number | undefined = (style) =>\n style?.borderWidth ??\n style?.borderTopWidth ??\n style?.borderLeftWidth ??\n style?.borderBottomWidth ??\n style?.borderRightWidth;\n\nexport const getBorderRadius: (\n style?: CSSProperties,\n defaultRadius?: number,\n) => string | number | undefined = (style, defaultRadius) =>\n style?.borderRadius ??\n style?.borderTopLeftRadius ??\n style?.borderTopRightRadius ??\n style?.borderBottomLeftRadius ??\n style?.borderBottomRightRadius ??\n style?.borderStartStartRadius ??\n style?.borderStartEndRadius ??\n style?.borderEndStartRadius ??\n style?.borderEndEndRadius ??\n defaultRadius;\n\ntype FontStyles = {\n fontSize?: number | string;\n lineHeight?: number | string;\n letterSpacing?: number | string;\n};\nexport const getFontSizing: (\n style?: CSSProperties,\n defaultStyles?: FontStyles,\n) => FontStyles = (style, defaultStyles = {}) => {\n const ret: FontStyles = { ...defaultStyles };\n if (style?.fontSize) ret.fontSize = style.fontSize;\n if (style?.lineHeight) ret.lineHeight = style.lineHeight;\n if (style?.letterSpacing) ret.letterSpacing = style.letterSpacing;\n return ret;\n};\n","import React, { FC } from \"react\";\nimport { ReturnReasonsRaw } from \"./ReturnReasonsRaw\";\nimport { CommonEvent } from \"@narvar/nth-kit-returns-headless\";\nimport { ReturnReasonsPayload, ReturnReasonsProps } from \"./types\";\nimport useCurrencyConfig from \"../ReviewSummary/hooks/useCurrencyConfig\";\n\nexport const ReturnReasons: FC = ({\n onNext,\n onBack,\n onChange,\n onSubmit,\n onClose,\n ...props\n}) => {\n const { locale, includeCurrency } = useCurrencyConfig();\n const handleChange: CommonEvent = (e) => {\n onChange?.(e);\n };\n\n const handleNext: CommonEvent = (e) => {\n onNext?.(e);\n };\n\n const handleBack: CommonEvent = (e) => {\n onBack?.(e);\n };\n\n const handleSubmit: CommonEvent = (e) => {\n onSubmit?.(e);\n };\n\n const handleClose: CommonEvent = (e) => {\n onClose?.(e);\n };\n\n return (\n \n );\n};\n\nexport { ReturnReasonsRaw };\n","import every from \"lodash/every\";\nimport { find, pick, set, sortBy } from \"lodash/fp\";\nimport intersection from \"lodash/intersection\";\nimport isEmpty from \"lodash/isEmpty\";\nimport keyBy from \"lodash/keyBy\";\nimport some from \"lodash/some\";\nimport React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nimport Link from \"@material-ui/core/Link\";\nimport Button from \"@material-ui/core/Button\";\nimport Grid from \"@material-ui/core/Grid\";\nimport Typography from \"@material-ui/core/Typography\";\nimport { ItemSelector } from \"@narvar/nth-kit-returns-headless\";\n\nimport { config } from \"../../config\";\nimport { useFrameDimensions } from \"../../contexts/frameDimensions\";\nimport { useNthReturnsActions } from \"../../contexts/nthContext\";\nimport {\n CHOOSE_ITEMS_STEP,\n CHOOSE_METHOD_STEP,\n ORDER_LOOKUP_STEP,\n useRegisterStepStatus,\n useReturnStepIsActive,\n useReturnStepsActions,\n useReturnStepsState,\n} from \"../../contexts/returnSteps\";\nimport { useTypeForm } from \"../../contexts/typeForm\";\nimport useCustomer from \"../../hooks/useCustomer\";\nimport useLoginSession from \"../../hooks/useLoginSession\";\nimport {\n buildCarouselItems,\n createCarouselItemKey,\n eventDataToNewSelectedItem,\n isSameCarouselItem,\n itemIneligibleReasons,\n newSelectedItemToState,\n useNthAllItems,\n useNthExchangeProps,\n useNthSubmittedReturns,\n useReturnReasonOrderItem,\n} from \"../../modules/items\";\nimport { makeRootStyles } from \"../../theme/styles\";\nimport Item from \"./Item\";\nimport ItemsCarousel from \"./ItemsCarousel\";\nimport { ReturnReasons } from \"../../ReturnReasons\";\n\nexport const useStyles = makeRootStyles(\n (theme) => ({\n root: {\n paddingBottom: theme.spacing(4),\n },\n title: {\n marginBottom: theme.spacing(3),\n },\n supplementaryText: {\n marginBottom: theme.spacing(3),\n },\n chooseButton: {\n marginTop: theme.spacing(1),\n },\n newUiDisclaimer: {\n padding: theme.spacing(1.5, 1.5, 0, 1.5),\n },\n }),\n { name: \"N0ChooseItems\" },\n);\n\nconst isEligibleItem = (item, returnReasons) => {\n if (!item) return false;\n\n const {\n quantity,\n returnReason,\n childReturnReason,\n comment,\n pictures = [],\n } = item;\n\n // quantity\n if (!quantity || quantity <= 0) return false;\n\n // picture required\n const rrLookup = returnReasons.reduce((memo, rr) => {\n memo[rr.id] = rr;\n return memo;\n }, {});\n // source of data maybe dirty (pictures disabled but required)\n if (\n rrLookup?.[returnReason]?.enableCustomerPictures &&\n rrLookup?.[returnReason]?.requireCustomerPictures &&\n pictures.length < 1\n )\n return false;\n\n // test on childReturnReason if it is given\n const target = childReturnReason || item;\n if (!target.eligible) return false; // return reason / child reason is eligible\n if (!rrLookup[target.returnReason]) return false; // reason code exists\n // comment required\n if (rrLookup[target.returnReason]?.isCommentMandatory) {\n if (!comment || typeof comment !== \"string\" || !comment.trim()) {\n return false;\n }\n }\n\n return true;\n};\n\nconst ChooseItems = ({ orderFetchData }) => {\n const itemsCarouselRef = useRef(null);\n const classes = useStyles();\n const state = useReturnStepsState();\n const actions = useReturnStepsActions();\n const loginSession = useLoginSession();\n const [localSelected, setLocalSelected] = useState([]);\n\n const { order, returnReasons, returnHistory = [] } = orderFetchData;\n const selectedByKey = useMemo(\n () => keyBy(localSelected, createCarouselItemKey),\n [localSelected],\n );\n const [continuePendingByKey, setContinuePendingByKey] = useState({});\n const localItems = useMemo(\n () => buildCarouselItems(order.items, localSelected),\n [localSelected, order.items],\n );\n const sortedLocalItems = useMemo(() => {\n return sortBy((i) => !i.someReasonsEligible, localItems);\n }, [localItems]);\n const addExtraSpace = useMemo(\n () =>\n some(localSelected, (item) => {\n const found = order.items.find((i) => i.id === item.id);\n return found.returnableQuantity > 1;\n }),\n [order.items, localSelected],\n );\n const hasStoreCredit = some(state.items, \"isStoreCredit\");\n const showItemsLimitDisclaimer = order.items.length >= 100;\n\n const isActiveStep = useReturnStepIsActive(CHOOSE_ITEMS_STEP);\n const showNextBtn = isActiveStep;\n\n const isGiftReturnsEnabled =\n config.isGiftZipEnabled || config.isGiftReceiptEnabled;\n const showCreateGiftReturn =\n isGiftReturnsEnabled && !state.guestReturn && !!state.csid;\n\n const handleCreateGiftReturn = () => {\n const zip = order.fromZip || order.billingZip;\n const { orderNumber } = state;\n loginSession.logout();\n actions.setOrderNumber(orderNumber);\n actions.setEmail(\"\");\n actions.setGiftField(zip);\n actions.setIsGuestReturn(true);\n };\n\n const getSelectedItem = useCallback(\n (item) => selectedByKey[createCarouselItemKey(item)],\n [selectedByKey],\n );\n\n const addLocalItem = useCallback(\n (item) => {\n setLocalSelected((items) => [\n ...items.filter(\n (i) =>\n !!i.type &&\n !isSameCarouselItem(i, item) &&\n order.items.findIndex((s) => s.id === i.id) > -1,\n ),\n item,\n ]);\n },\n [order.items],\n );\n\n const removeLocalItem = useCallback((item) => {\n setLocalSelected((items) =>\n items.filter((i) => !isSameCarouselItem(i, item)),\n );\n actions.clearLineItemIntension({\n lineItemId: item.id,\n localId: item.localId,\n });\n }, []);\n\n const setStateToLocalItem = useCallback(\n (item, data = {}) => {\n let localItem = {\n id: item.id,\n localId: item.localId,\n ...getSelectedItem(item),\n ...data,\n };\n // TODO: isStoreCredit items will come in as return items in submit_return\n if (localItem?.exchange?.isStoreCredit) {\n localItem.type = \"return\";\n localItem.exchange = undefined;\n localItem.isStoreCredit = true;\n }\n addLocalItem(localItem);\n actions.setLineItemInitialIntension({\n lineItemId: item.id,\n localId: item.localId,\n type: localItem.type,\n exchangeEnabled: item.allowExchange,\n });\n },\n [addLocalItem, getSelectedItem],\n );\n\n const setPicturesForItem = useCallback(\n (item, pictures) => {\n setStateToLocalItem(item, { pictures });\n },\n [setStateToLocalItem],\n );\n\n const handleRemoveItem = useCallback(\n (item) => removeLocalItem(item),\n [removeLocalItem],\n );\n\n useEffect(() => {\n const keys = Object.keys(selectedByKey);\n setContinuePendingByKey(pick(keys));\n }, [selectedByKey]);\n\n const handleChangeContinuePending = useCallback((item, isContinuePending) => {\n const key = createCarouselItemKey(item);\n setContinuePendingByKey(set(key, isContinuePending));\n }, []);\n\n const handleChangeReason = useCallback(\n (item, reason) => {\n const { eligible, ineligibleReason, returnReason } = reason;\n\n const hasChildReturnReason = item.eligibilityCriteria.some(\n (i) => i.returnReasonParent === returnReason,\n );\n\n setStateToLocalItem(item, {\n eligible,\n ineligibleReason,\n returnReason,\n childReturnReason: hasChildReturnReason ? { returnReason: null } : null,\n });\n },\n [setStateToLocalItem],\n );\n\n const handleChangeChildReason = useCallback(\n (item, reason) => {\n const { eligible, ineligibleReason, returnReason } = reason;\n\n setStateToLocalItem(item, {\n eligible,\n ineligibleReason,\n childReturnReason: { eligible, ineligibleReason, returnReason },\n });\n },\n [setStateToLocalItem],\n );\n\n const handleChangeQuantity = useCallback(\n (item, quantity) => {\n setStateToLocalItem(item, { quantity });\n },\n [setStateToLocalItem],\n );\n\n const handleChangeComment = useCallback(\n (item, comment) => {\n setStateToLocalItem(item, { comment: (comment || \"\").trim() });\n },\n [setStateToLocalItem],\n );\n\n const handleNextStep = useCallback(() => {\n actions.goToStep(CHOOSE_METHOD_STEP);\n }, []);\n\n const isValidSelected = useMemo(() => {\n if (state.items.length < 1) return false;\n if (Object.values(continuePendingByKey).some((d) => d)) return false; // no pending (eg. opened exchange variants, pictures upload or comment)\n\n const allItemsEligible = every(localSelected, (item) =>\n isEligibleItem(item, returnReasons),\n );\n return allItemsEligible;\n }, [returnReasons, state, localSelected, continuePendingByKey]);\n\n const actionNode = useMemo(() => {\n return (\n \n \n {config.translations.choose_items_next_button_label}\n \n \n );\n }, [handleNextStep, isValidSelected]);\n\n const commonIneligibleReasons = intersection(\n ...sortedLocalItems.map(itemIneligibleReasons),\n );\n\n useEffect(() => {\n const eligibleItems = localSelected.filter((item) =>\n isEligibleItem(item, returnReasons),\n );\n actions.setSelectedItems(eligibleItems);\n }, [actions, localSelected, returnReasons]);\n\n const supplementaryText =\n config.translations.choose_items_supplementary &&\n config.translations.choose_items_supplementary !== \"\" &&\n config.translations.choose_items_supplementary !== \" \";\n\n // TODO: fix the backend then use order.eligible instead\n const orderEligible = useMemo(\n () => order.items.some((item) => item.someReasonsEligible),\n [order],\n );\n\n /***************************************************************************************************************\n * New design with `nth` components\n ***************************************************************************************************************/\n const useNewDesign = config.isNthUi;\n const isTrack = state.mode === \"track\";\n useRegisterStepStatus(ORDER_LOOKUP_STEP, { skipped: useNewDesign });\n\n const typeForm = useTypeForm();\n const { bottomOfViewport, topOfViewport } = useFrameDimensions();\n const viewportAnchor = useMemo(\n () => ({\n offsetTop: topOfViewport(0),\n offsetBottom: bottomOfViewport(0),\n }),\n [topOfViewport, bottomOfViewport],\n );\n const nthReturnsActions = useNthReturnsActions();\n const [selectingReasonId, setSelectingReasonId] = useState();\n const [newSelectingItem, setNewSelectingItem] = useState();\n const [newSelectedItems, setNewSelectedItems] = useState([]);\n const customer = useCustomer();\n const newLineItems = useNthAllItems({ localItems: sortedLocalItems });\n const {\n exchangeVariants,\n exchangeOptions,\n status: exchangeStatus,\n setExchangeVariantInfo,\n } = useNthExchangeProps({ selectingItem: newSelectingItem });\n const { submittedReturns, returnActionStatus, cancelStatus } =\n useNthSubmittedReturns({\n allItems: newLineItems,\n });\n\n const stepsProps = useMemo(() => {\n if (!newSelectingItem) return {};\n const reason = orderFetchData.returnReasonsById[selectingReasonId];\n const parentReason = orderFetchData.returnReasonsById[reason?.parentId];\n return {\n exchanges: {\n enabled: newSelectingItem?.eligibilities?.exchange?.isEligible,\n shopNow: config.isShopNowEnabled && config.isShopNowWithCreditEnabled,\n },\n pictures: {\n // picture requirements are set in parent reason\n enabled: (parentReason ?? reason)?.enableCustomerPictures,\n required: (parentReason ?? reason)?.requireCustomerPictures,\n maxCount: 2,\n maxSize: 10 << 20, // 10MB\n },\n comments: {\n required: reason?.isCommentMandatory,\n attestation: reason?.attestation,\n },\n };\n }, [newSelectingItem, selectingReasonId, orderFetchData.returnReasonsById]);\n\n const orderIneligibleReason =\n orderEligible || isTrack\n ? undefined\n : (order.ineligibleDisplayText ??\n commonIneligibleReasons.join(\"
\") ??\n config.translations.choose_items_none_eligible);\n\n const disclaimerNew = useMemo(() => {\n if (!showItemsLimitDisclaimer && !showCreateGiftReturn) return null;\n\n return (\n <>\n {showItemsLimitDisclaimer && (\n
\n \n {config.translations.choose_items_line_items_limit_remarks}\n \n
\n )}\n\n {showCreateGiftReturn && (\n
\n \n {config.translations.choose_items_cs_create_gift_return}\n \n
\n )}\n \n );\n }, [showItemsLimitDisclaimer, showCreateGiftReturn]);\n\n const loading = exchangeStatus.loading || cancelStatus.loading;\n\n const returnReasonOrderItem = useReturnReasonOrderItem({\n newSelectingItem,\n });\n\n const handleNthNextStep = (selectedItems) => {\n nthReturnsActions.setOrderData({\n orderId: order.orderNumber,\n items: newLineItems,\n });\n nthReturnsActions.setSelectedItems(selectedItems);\n handleNextStep();\n };\n\n return (\n \n {useNewDesign ? (\n \n {!newSelectingItem && (\n {\n setNewSelectingItem(event.value.item);\n actions.setSelectedItems(state.items); // reset step, clean up the UI when user clicking from a later step back to item selection\n\n const newSelected = find({\n itemId: event.value.item.itemId,\n sku: event.value.item.sku,\n localId: event.value.item.localId,\n })(newSelectedItems);\n if (newSelected) {\n const selecting = newSelectedItemToState(newSelected);\n actions.setSelectingItem(selecting);\n }\n\n typeForm.scrollToActive();\n }}\n onSubmit={() => handleNthNextStep(newSelectedItems)}\n />\n )}\n {isTrack && submittedReturns.length === 0 && (\n \n {config.translations.track_app_choose_items_not_found}\n \n )}\n {newSelectingItem && (\n \n i.itemId === newSelectingItem.itemId &&\n i.localId === newSelectingItem.localId,\n )}\n stepsProps={stepsProps}\n exchangeVariants={exchangeVariants}\n exchangeOptions={exchangeOptions}\n onChange={(event) => {\n const { item, selectedReason, selectedExchangeOptions } =\n event.value;\n const selected = eventDataToNewSelectedItem(event.value);\n const selecting = newSelectedItemToState(selected);\n\n setExchangeVariantInfo(selectedExchangeOptions);\n setSelectingReasonId(selectedReason.id);\n actions.setLineItemInitialIntension({\n lineItemId: item.itemId,\n localId: item.localId,\n type: selecting.type, // `event.value.type` may have \"exchangeForCredit\" which we don't want\n exchangeEnabled: item.eligibilities.exchange?.isEligible,\n });\n actions.setSelectingItem(selecting);\n }}\n onNext={(event) => {\n typeForm.scrollToActive();\n }}\n onBack={(event) => {\n typeForm.scrollToActive();\n }}\n onClose={(event) => {\n setNewSelectingItem(null);\n setSelectingReasonId(null);\n actions.setSelectingItem(null);\n actions.clearLineItemIntension({\n lineItemId: newSelectingItem.itemId,\n localId: newSelectingItem.localId,\n });\n typeForm.scrollToActive();\n }}\n onSubmit={(event) => {\n const { item, quantity, type } = event.value;\n\n const isEdit = event.subComponent === \"edit\";\n // clicked on \"No, continue with return\"\n if (isEdit && quantity > 0) {\n setNewSelectingItem(null);\n actions.setSelectingItem(null);\n typeForm.scrollToActive();\n return;\n }\n\n let updates = newSelectedItems.filter(\n (i) => i.itemId !== item.itemId || i.localId !== item.localId,\n );\n if (quantity) {\n updates = []\n .concat(updates)\n .concat(eventDataToNewSelectedItem(event.value));\n }\n setNewSelectedItems(updates);\n setNewSelectingItem(null);\n\n const selectedItems = updates.map(newSelectedItemToState);\n\n actions.setSelectedItems(selectedItems);\n actions.setSelectingItem(null);\n if (isEdit && quantity === 0) {\n actions.clearLineItemIntension({\n lineItemId: item.itemId,\n localId: item.localId,\n });\n } else {\n actions.confirmLineItemIntension({\n lineItemId: item.itemId,\n localId: item.localId,\n type,\n });\n }\n typeForm.scrollToActive();\n }}\n />\n )}\n \n ) : (\n <>\n \n {!orderEligible ? (\n order.ineligibleDisplayText ? (\n \n ) : (\n <>\n {isEmpty(commonIneligibleReasons) && (\n \n )}\n {commonIneligibleReasons.map((commonIneligibleReason) => (\n \n ))}\n \n )\n ) : (\n <>\n \n {config.translations.choose_items_title}\n \n {supplementaryText && (\n \n )}\n \n )}\n \n {sortedLocalItems.map((item) => {\n const key = createCarouselItemKey(item);\n\n return (\n \n );\n })}\n \n \n {showCreateGiftReturn && (\n \n \n Create Gift Return\n \n \n )}\n {showNextBtn && actionNode}\n {hasStoreCredit && (\n \n \n {config.translations.choose_items_shopnow_remarks}\n \n \n )}\n {showItemsLimitDisclaimer && (\n \n \n {config.translations.choose_items_line_items_limit_remarks}\n \n \n )}\n \n )}\n
\n );\n};\nexport default ChooseItems;\n","import { dinero, toDecimal } from \"dinero.js\";\n/*eslint import/namespace: [2, { allowComputed: true }]*/\nimport * as currencies from \"@dinero.js/currencies\";\n\nexport const getDineroCurrency = (currency = \"USD\") =>\n currencies[currency.toUpperCase()] || currencies.USD;\n\nexport const getCurrencyMultiplier = (currency = \"USD\") =>\n 10 ** getDineroCurrency(currency).exponent;\n\nexport const subunitToAmount = (subunit = 0, currency = \"USD\") =>\n subunit / getCurrencyMultiplier(currency);\n\nexport const amountToSubunit = (amount = 0, currency = \"USD\") =>\n amount * getCurrencyMultiplier(currency);\n\nexport const stringToSubunit = (amount = \"0\") =>\n parseInt(amount.replace(/[^0-9-]/g, \"\"));\n\nexport const stringToAmount = (amount = \"0\", currency = \"USD\") =>\n typeof amount === \"string\"\n ? subunitToAmount(stringToSubunit(amount), currency)\n : isNaN(amount)\n ? 0\n : amount || 0;\n\nexport const formattedStringToAmount = (\n formattedString = \"0\",\n currency = \"USD\",\n locale = \"en\",\n) => {\n const format = getCurrencyFormat(currency, locale);\n const str = formattedString\n .replace(new RegExp(\"\\\\\" + format.thousandSeparator, \"g\"), \"\")\n .replace(new RegExp(\"\\\\\" + format.decimalSeparator, \"g\"), \".\");\n return parseFloat(str);\n};\n\nexport const formattedStringToSubunit = (\n formattedString = \"0\",\n currency = \"USD\",\n locale = \"en\",\n) =>\n amountToSubunit(\n formattedStringToAmount(formattedString, currency, locale),\n currency,\n );\n\nexport const formatCurrency = (amount = 0, currency = \"USD\", locale = \"en\") => {\n const amountNumber = stringToAmount(amount, currency);\n\n try {\n const formatter = new Intl.NumberFormat(locale, {\n style: \"currency\",\n currency,\n });\n return formatter.format(amountNumber);\n } catch (e) {\n const value = dinero({\n currency: getDineroCurrency(currency),\n amount: amountNumber * getCurrencyMultiplier(currency),\n });\n return toDecimal(value);\n }\n};\n\nexport const getCurrencyFormat = (currency = \"USD\", locale = \"en\") => {\n const cur = getDineroCurrency(currency);\n const testStr = formatCurrency(1000, currency, locale);\n const reg = new RegExp(\n `^(.*)1(.*)000${\n cur.exponent > 0\n ? \"(.*)\" + new Array(cur.exponent).fill(\"0\").join(\"\")\n : \"\"\n }(.*)$`,\n );\n const matches = testStr.match(reg) || [];\n const thousandSeparator = matches[2] || \",\";\n const decimalSeparator = cur.exponent > 0 ? matches[3] || \".\" : \"\";\n const symbol = ((matches[1] || \"\") + (matches[4] || \"\")).trim() || \"$\";\n const ret = {\n ...cur,\n thousandSeparator,\n decimalSeparator,\n symbol,\n code: currency,\n };\n return ret;\n};\n","import { useMemo, useCallback } from \"react\";\nimport { useMutation, gql } from \"@apollo/client\";\nimport {\n compose,\n toPairs,\n map,\n snakeCase,\n groupBy,\n mapValues,\n sumBy,\n get,\n filter,\n fromPairs,\n} from \"lodash/fp\";\nimport { memoObjectByKeyValues } from \"../../shared/modules/object\";\nimport { useRequestStatus } from \"../../shared/modules/hooks\";\n\nconst EMIT_METRICS = gql`\n mutation emitMetrics($metrics: [MetricEmissionInput!]!) {\n emitMetrics(metricEmissions: $metrics)\n }\n`;\n\nexport const toMetric = (key, value, currencyCode, usdConversionRate) => ({\n metricType: \"count\",\n metricNameSuffix: `consumer.${snakeCase(key)}`,\n value:\n usdConversionRate > 0\n ? Math.round(value * usdConversionRate)\n : Math.round(value),\n currencyCode: usdConversionRate ? \"USD\" : currencyCode,\n});\n\n// emit datadog metrics\nexport function useEmitMetrics() {\n const [mutate, mutated] = useMutation(EMIT_METRICS);\n const emitMetrics = useCallback(\n (metrics) => mutate({ variables: { metrics } }),\n [mutate],\n );\n\n const status = useRequestStatus(mutated);\n\n return memoObjectByKeyValues({\n emitMetrics,\n status,\n });\n}\n\nexport const calculateReturnMetrics = (\n order,\n refundMethod,\n items = [],\n lineItemIntensions = {},\n theOnlyRefundMethodIsOriginalPayment = false,\n) => {\n const positiveOnly = (num) => Math.max(0, num);\n const accumulateValues = (p, c) =>\n compose(\n fromPairs,\n map(([key, value]) => [key, value + (c[key] ?? 0)]),\n toPairs,\n )(p);\n const currencyCode = order.presentmentCurrency ?? \"USD\";\n const usdConversionRate = order.presentmentCurrencyEstimatedUsdConversionRate;\n\n let metrics = items\n .map((item) => {\n const ri = item;\n const ei = item.exchange;\n const intension = get([ri.id, ri.localId], lineItemIntensions);\n const riItem = order.itemsById[ri.id];\n const originalValue = (riItem?.priceAmount ?? 0) * ri.quantity;\n const originalValueExchangeable = intension?.exchangeEnabled\n ? originalValue\n : 0;\n let exchangeRetention = ei ? ei.priceAmount * ri.quantity : 0;\n let returnValue = 0;\n let giftCardRetention = 0;\n let shopNowRetention = 0;\n if (refundMethod === \"gift_card\") {\n giftCardRetention = positiveOnly(originalValue - exchangeRetention);\n } else if (refundMethod === \"shop_now\") {\n shopNowRetention = positiveOnly(originalValue - exchangeRetention);\n } else {\n returnValue = positiveOnly(originalValue - exchangeRetention);\n }\n let upsellValue = 0;\n if (intension?.changedTo === \"exchange\") {\n upsellValue = exchangeRetention;\n exchangeRetention = 0;\n }\n\n // This metric `returnValueNonexchangable` is a subset of `returnValue`\n // (refunded to original payment). It counts the return value which has no\n // choice, because the line item which is return only and refunded to\n // original payment only due to rule settings.\n const returnValueNonexchangable =\n theOnlyRefundMethodIsOriginalPayment && !riItem?.allowExchange\n ? returnValue\n : 0;\n\n return {\n originalValue, // line item original return value\n originalValueExchangeable, // line item original return value (excluding non-exchangeable)\n returnValue, // total refunded to original payment (including non-refundable)\n returnValueNonexchangable, // refunded to original payment (non-refundable)\n exchangeRetention, // exchanging new line item price at first place\n giftCardRetention, // amount issued as gift card\n shopNowRetention, // amount issued as shop now store credit\n upsellValue, // exchanging new line item price converted in upsell flow\n };\n })\n .reduce(accumulateValues, {\n originalValue: 0,\n originalValueExchangeable: 0,\n returnValue: 0,\n returnValueNonexchangable: 0,\n exchangeRetention: 0,\n giftCardRetention: 0,\n shopNowRetention: 0,\n upsellValue: 0,\n });\n metrics = compose(\n map(([key, value]) =>\n toMetric(key, value, currencyCode, usdConversionRate),\n ),\n toPairs,\n )(metrics);\n\n let behaviorMetrics = items.map((item) => {\n const ri = item;\n const ei = item.exchange;\n const intension = get([ri.id, ri.localId], lineItemIntensions);\n\n // skip counting non-exchangeable line item\n if (!intension?.exchangeEnabled) return null;\n\n let group = null;\n if (intension.changedTo === \"exchange\") {\n group = \"line_item_return_upsell\";\n } else {\n group = `line_item_${intension.initial}_as_${intension.initial}`;\n }\n // group = \"line_item_exchange_deflection\"; // @deprecated new intention tracking can not track this event\n\n return [group, ri.quantity];\n });\n behaviorMetrics = compose(\n mapValues(sumBy(get(1))),\n groupBy(get(0)),\n filter((d) => d?.[1] > 0),\n )(behaviorMetrics);\n metrics = metrics.concat(\n toPairs(behaviorMetrics).map(([key, value]) => toMetric(key, value)),\n );\n\n const rmaBehavior =\n behaviorMetrics.line_item_return_upsell > 0\n ? \"rma_return_upsell\"\n : behaviorMetrics.line_item_exchange_as_exchange > 0\n ? \"rma_exchange_as_exchange\"\n : behaviorMetrics.line_item_exchange_deflection > 0\n ? \"rma_exchange_deflection\"\n : behaviorMetrics.line_item_return_as_return > 0\n ? \"rma_return_as_return\"\n : \"\";\n if (rmaBehavior) {\n metrics.push(toMetric(rmaBehavior, 1));\n }\n\n return metrics;\n};\n","import React, { Fragment, useState, useEffect } from \"react\";\nimport ImageIcon from \"@material-ui/icons/BrokenImage\";\nimport Typography from \"@material-ui/core/Typography\";\nimport { CSSTransition } from \"react-transition-group\";\nimport clsx from \"clsx\";\n\nimport { makeRootStyles } from \"../../../theme/styles\";\n\nexport const useStyles = makeRootStyles(\n (theme) => ({\n root: {\n width: \"100%\",\n height: \"100%\",\n color: theme.palette.grey[400],\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n backgroundSize: \"contain\",\n backgroundRepeat: \"no-repeat\",\n backgroundPosition: \"center center\",\n backgroundColor: theme.palette.white,\n minHeight: \"min(120px, 12vh)\",\n \"&.N0ItemThumbnail-root-enter\": {\n opacity: 0,\n },\n \"&.N0ItemThumbnail-root-enter-active\": {\n opacity: 1,\n transition: `opacity ${theme.transitions.duration.complex}ms ${theme.transitions.easing.easeInOut}`,\n },\n \"&.N0ItemThumbnail-root-exit\": {\n opacity: 1,\n },\n \"&.N0ItemThumbnail-root-exit-active\": {\n opacity: 0,\n transition: `opacity ${theme.transitions.duration.complex}ms ${theme.transitions.easing.easeInOut}`,\n },\n },\n imageBroken: {\n backgroundColor: theme.palette.grey[50],\n },\n altText: {\n marginTop: theme.spacing(1),\n padding: theme.spacing(0, 2),\n },\n }),\n { name: \"N0ItemThumbnail\" },\n);\n\nfunction ItemThumbnail({ fade, className, imageAltText, imageUrl, ...rest }) {\n const classes = useStyles();\n const [error, setError] = useState(null);\n const [ready, setReady] = useState(false);\n const imageBroken = error || !imageUrl;\n\n const content = (\n \n {imageBroken && (\n <>\n \n {imageAltText && (\n \n {imageAltText}\n \n )}\n \n )}\n \n );\n\n useEffect(() => {\n const preloadImage = (url) => {\n const img = new Image();\n img.onload = () => {\n setReady(true);\n setError(null);\n };\n img.onerror = setError;\n img.src = url;\n return img;\n };\n\n let img = null;\n if (imageUrl) {\n img = preloadImage(imageUrl);\n }\n\n // remove the onload handler\n // avoid error occurs when thumbnail is removed before the image is loaded\n return () => {\n if (img) img.onload = null;\n };\n }, [imageUrl]);\n\n if (fade) {\n return (\n \n {content}\n \n );\n }\n\n return content;\n}\nexport default ItemThumbnail;\n"],"names":["getAnonymousId","anonymousId","safeLocalStorage","getItem","randomIdString","setItem","newSessionId","createSessionTracking","sessionId","cfg","sid","getAid","reset","useStyles","makeStyles","root","required","display","alignCenter","textAlign","alignRight","name","TextField","forwardRef","fullWidth","id","inputProps","_inputProps","labelProps","label","_label","onBlur","onChange","_required","shrink","type","_type","value","other","ref","useRef","classes","isNewPassword","pattern","result","validate","isNumber","parseInt","min","max","isAbsoluteUrl","uid","useElementId","elId","undefined","inputClassName","clsx","handleBlur","event","useImperativeHandle","React","MuiTextField","_extends","error","className","InputLabelProps","variant","FormControl","FieldLabel","htmlFor","Select","displayEmpty","OutlinedInput","displayName","defaultProps","locale","match","RegExp","exec","window","location","search","decodeURIComponent","replace","ACTION_HEIGHT_SPACING","getBorderSelected","theme","palette","primary","main","getBorderUnselected","getPadding","spacing","LIST_COUNTRIES","gql","LIST_STATES","useCountriesList","countriesResponse","useQuery","data","listCountries","countriesTextMap","useMemo","reduce","acc","countryCode","country","queryStatus","called","loading","state","useStatesList","statesResponse","variables","listStatesOfCountryCode","listStates","statesTextMap","regionCode","region","Autocomplete","multiple","options","placeholder","autoFill","hideOptions","PopperComponent","inputValue","setInputValue","useState","randomID","Popper","MuiAutocomplete","handleChange","selectedValue","onInputChange","handleInputChange","newValue","renderInput","params","autoComplete","anchorOrigin","vertical","horizontal","transformOrigin","menuRoot","marginTop","ButtonSelect","children","disabled","autoClose","open","setOpen","anchorRef","menuWidth","current","offsetWidth","handleToggle","prevOpen","useEffect","_children","Array","isArray","map","c","onClick","props","cloneElement","func","args","res","ButtonGroup","color","Button","size","ArrowDropDownIcon","Menu","MenuListProps","dense","style","width","anchorEl","elevation","getContentAnchorEl","onClose","contains","target","keepMounted","marginBottom","flexDirection","container","justifyContent","alignItems","height","overflow","imageContainer","image","imageIcon","fontSize","buttonContainer","button","action","marginLeft","ImageUploadLarge","helperText","errorText","preview","inputRef","handleClick","click","Paper","alt","src","ImageIcon","CloudUploadIcon","Typography","component","marginRight","backgroundColor","background","default","ImageUploadSmall","ImageUploadNormal","cursor","position","inputContainer","transform","ImageUpload","setPreview","inputNode","accept","file","files","reader","FileReader","onload","readAsDataURL","input","borderRadius","common","white","border","padding","minHeight","borderColor","multiline","counter","TextFieldWithCharacterCount","maxCount","endAdornment","length","maxLength","labelStrong","typography","h4","Checkbox","checked","classesOverride","FormControlLabel","control","MuiCheckbox","adornedEnd","paddingRight","maxDate","minDate","format","date","d","moment","isValid","toDate","KeyboardDatePicker","autoOk","disableToolbar","InputProps","inputVariant","margin","returnsCsrSignInError401","returnsCsrSignInError500","returnsCsrSignInTitle","returnsCsrSignInDetails","returnsCsrSignInOrderPlaceholder","returnsCsrSignInPrimaryButton","returnsPudoListTitle","returnsPudoListItemhomepickupTitle","returnsPudoListItemhomepickupSubtitle","returnsPudoListItemstoreTitle","returnsPudoListItemstoreSubtitle","returnsPudoListItemstoreLinktext","returnsPudoListItemconciergepartnershipTitle","returnsPudoListItemconciergepartnershipSubtitle","returnsPudoListItemprinterlessmailTitle","returnsPudoListItemprinterlessmailSubtitle","returnsPudoListItemmailTitle","returnsPudoListItemmailSubtitle","returnsPudoListItemmailLinktext","returnsPudoListShowall","returnsPudoListFeeLabellabelfee","returnsPudoListFeeLabelshippingfee","returnsPudoListFeeLabelpickupfee","returnsPudoListFeeLabelFree","returnsPudoListSwitchCategory","returnsPudoLocationsPostalcodeTitle","returnsPudoLocationsPostalcodeSearch","returnsPudoLocationsPostalcodeCancel","returnsPudoLocationsDistanceUnitmiles","returnsPudoLocationsDistanceUnitkilometers","returnsPudoLocationsDistanceNounit","returnsPudoPickupTimeslotTitle","returnsPudoPickupTimeslotDescription","returnsPudoPickupLocationTitle","returnsPudoPickupLocationDescription","returnsPudoPickupInstructionsToggle","returnsPudoPickupFeeTitle","returnsPudoPickupFeeDescription","returnsPudoPickupInstructionsPlaceholder","returnsPudoPickupInstructionsHandoffTitle","returnsPudoSubmit","returnsPudoLocationsSortedbyOptionrecommended","returnsPudoLocationsSortedbyOptiondistance","returnsPudoLocationsSortedbyTitle","returnsPudoLocationsSkipLink","returnsPudoMultiLabelsTitle","returnsPudoMultiLabelsDescription","returnsPudoMultiLabelsInputPlaceholder","returnsPudoMultiLabelsRemarks","returnsPudoErrorNopudooptions","returnsPudoErrorNotimeslots","returnsOrderLoginAbove","returnsOrderLoginBelow","returnsOrderLoginFormAbove","returnsOrderLoginFormBelow","returnsOrderLoginSubmitAbove","returnsOrderLoginSubmitBelow","returnsOrderLoginTitleBelow","returnsOrderLoginFieldsAbove","returnsOrderLoginTitle","returnsOrderLoginDescription","returnsOrderLoginFormSubmit","returnsOrderLoginFormLabelEmail","returnsOrderLoginFormLabelOrder","returnsOrderLoginFormLabelGiftCode","returnsOrderLoginFormCaptionEmail","returnsOrderLoginFormCaptionOrder","returnsOrderLoginFormCaptionGiftCode","returnsOrderLoginReturnPolicy","returnsOrderLoginError","returnsOrderLoginFormValidationErrorEmail","returnsOrderLoginToggleGiftReturnTitle","returnsOrderLoginToggleGiftReturnLinkText","returnsOrderLoginToggleGiftReturnTitle_giftReturn","returnsOrderLoginToggleGiftReturnLinkText_giftReturn","returnsReasonsItemInfoTitle","returnsReasonsItemInfoColor","returnsReasonsItemInfoColorLabel","returnsReasonsItemInfoSize","returnsReasonsItemInfoSizeLabel","returnsReasonsItemInfoQuantity","returnsReasonsItemInfoQuantityLabel","returnsReasonsItemInfoQuantitySelectPlaceholder","returnsReasonsTypeTitle","returnsReasonsTypeReturn","returnsReasonsTypeExchange","returnsReasonsTypeClaim","returnsReasonsListTitle","returnsReasonsListTitleSecondary","returnsReasonsQuantityTitle","returnsReasonsQuantityAllTitle","returnsReasonsQuantityAllTitleHipaa","returnsReasonsQuantityAllYesLabel","returnsReasonsQuantityAllNoLabel","returnsReasonsQuantityAllError","returnsReasonsPicturesTitle","returnsReasonsPicturesUploadButton","returnsReasonsPicturesUploadDescription","returnsReasonsPicturesUploadErrorMaxSize","returnsReasonsPicturesUploadErrorMaxCount","returnsReasonsCommentsTitle","returnsReasonsCommentsPlaceholder","returnsReasonsCommentsPlaceholderRequired","returnsReasonsEditTitle","returnsReasonsEditRemoveLabel","returnsReasonsEditContinueLabel","returnsReasonsNoReasonsError","returnsReasonsExchangeTitle","returnsReasonsExchangeUnavailable","returnsReasonsExchangeUpsellTitle","returnsReasonsExchangeUpsellNoThanks","returnsReasonsShopNowDescription","returnsReasonsShopNowLink","returnsConfirmationstoreActionsPanelHeader","returnsConfirmationstoreActionsPanelTitle","returnsConfirmationstoreActionsPanelTitleHipaa","returnsConfirmationstoreActionsPanelMainButton","returnsConfirmationstoreActionsPanelDescription","returnsConfirmationstoreActionsPanelDescriptionHipaa","returnsConfirmationstoreActionsPanelEmailButton","returnsConfirmationActionsPanelEmailStatusidle","returnsConfirmationActionsPanelEmailStatuserror","returnsConfirmationActionsPanelEmailStatusloading","returnsConfirmationActionsPanelEmailStatussuccess","returnsConfirmationActionsPanelEmailStatusvalidationerror","returnsConfirmationActionsPanelEmailInputPlaceholder","returnsConfirmationstoreInstructionsPanelHeader","returnsConfirmationstoreStep1Title","returnsConfirmationstoreStep1Details","returnsConfirmationstoreStep2Title","returnsConfirmationstoreStep2Details","returnsConfirmationstoreItemsPanelHeader","returnsConfirmationmailActionsPanelHeader","returnsConfirmationmailActionsPanelTitle","returnsConfirmationmailActionsPanelTitleHipaa","returnsConfirmationmailActionsPanelMainButton","returnsConfirmationmailActionsPanelDescription","returnsConfirmationmailActionsPanelDescriptionHipaa","returnsConfirmationmailActionsPanelEmailButton","returnsConfirmationmailInstructionsPanelHeader","returnsConfirmationmailStep1Title","returnsConfirmationmailStep2Title","returnsConfirmationmailStep2Details","returnsConfirmationmailStep3Title","returnsConfirmationmailStep3Details","returnsConfirmationmailItemsPanelHeader","returnsConfirmationprinterless_mailActionsPanelHeader","returnsConfirmationprinterless_mailActionsPanelTitle","returnsConfirmationprinterless_mailActionsPanelTitleHipaa","returnsConfirmationprinterless_mailActionsPanelDescription","returnsConfirmationprinterless_mailActionsPanelDescriptionHipaa","returnsConfirmationprinterless_mailActionsPanelEmailButton","returnsConfirmationprinterless_mailLocationPanelHeader","returnsConfirmationprinterless_mailInstructionsPanelHeader","returnsConfirmationprinterless_mailStep1Title","returnsConfirmationprinterless_mailStep1Details","returnsConfirmationprinterless_mailStep2Title","returnsConfirmationprinterless_mailStep2TitleHipaa","returnsConfirmationprinterless_mailStep3Title","returnsConfirmationprinterless_mailStep3Details","returnsConfirmationprinterless_mailItemsPanelHeader","returnsConfirmationprinterless_mailSecondaryActionsPanelTitle","returnsConfirmationprinterless_mailSecondaryActionsPanelDescription","returnsConfirmationprinterless_mailSecondaryActionsPanelMainButton","returnsConfirmationconciergeActionsPanelHeader","returnsConfirmationconciergeActionsPanelTitle","returnsConfirmationconciergeActionsPanelTitleHipaa","returnsConfirmationconciergeActionsPanelMainButton","returnsConfirmationconciergeActionsPanelDescription","returnsConfirmationconciergeActionsPanelEmailButton","returnsConfirmationconciergeLocationPanelHeader","returnsConfirmationconciergeInstructionsPanelHeader","returnsConfirmationconciergeStep1Title","returnsConfirmationconciergeStep2Title","returnsConfirmationconciergeStep2Details","returnsConfirmationconciergeStep3Title","returnsConfirmationconciergeStep3Details","returnsConfirmationreshopStepTitle","returnsConfirmationreshopStepDetails","returnsConfirmationreshopStepAppStoreLink","returnsConfirmationreshopStepAppStoreLinkText","returnsConfirmationreshopStepGooglePlayLink","returnsConfirmationreshopStepGooglePlayLinkText","returnsConfirmationconciergeItemsPanelHeader","returnsConfirmationError","returnsMonikerfedexDisplayName","returnsMonikerfedexLinkText","returnsMonikerfedexLinkUrl","returnsMonikerupsDisplayName","returnsMonikerupsLinkText","returnsMonikerupsLinkUrl","returnsMonikeruspsDisplayName","returnsItemListTitle","returnsItemListTitleHipaa","returnsItemListTitleDirty","returnsItemListTitleDirtyHipaa","returnsItemListIneligibleTitle","returnsItemListEligibleDescription","returnsItemListReturnInitiatedTitle","returnsItemListPendingpacking_slip_and_shipping_labelLink","returnsItemListPendingqr_codeLink","returnsItemListPendingpacking_slipLink","returnsItemListPendingshipping_labelLink","returnsItemListPendingCancelReturnLink","returnsItemListIneligibleDescription","returnsItemListSubmit","returnsItemListItemInfoTitle","returnsItemListItemInfocolorLabel","returnsItemListItemInfoskuLabel","returnsItemListItemInfoqtyLabel","returnsItemListItemInfosizeLabel","returnsItemListItemInfoqtyTransactionSeparator","returnsItemListItemInfopriceLabel","returnsItemListItemInforeasonLabel","returnsItemListItemTagReturning","returnsItemListItemTagExchanging","returnsItemListItemTagClaiming","returnsItemListItemTagHasShippingProtection","returnsItemListItemTagHasShippingProtectionTooltip","returnsItemListItemTagExchangingForCredit","returnsItemListNoItemError","returnsItemListBannererror","returnsItemListBannersuccess","returnsLineItemGroupIneligibleDescription","returnsLineItemGroupTitle","returnsReviewError","returnsReviewHeader","returnsReviewDescriptionmail","returnsReviewDescriptionconcierge","returnsReviewDescriptionprinterless_mail","returnsReviewDescriptionstore","returnsReviewDescriptionself","returnsReviewSubHeader","returnsReviewSubHeaderExchange","returnsReviewSubHeaderReturnAndExchange","returnReviewTitleShopNow","returnsReviewItemCardSize","returnsReviewItemCardQuantity","returnsReviewTotalsSubtotal","returnsReviewTotalsShippingFee","returnsReviewTotalsEstimatedRefund","returnsReviewTotalsEstimatedCharge","returnsReviewTotalsHelpText","returnsReviewDropOffLocationHeader","returnsReviewAddEmailHeader","returnsReviewAddEmailDescription","returnsReviewUpdateEmailDescription","returnsReviewAddEmailInputLabel","returnsReviewSubmittingReturn","returnsReviewSubmittingError","returnsReviewPolicyCheckbox","returnsReviewRefundTo_originalPayment","returnsReviewRefundTo_giftCard","returnsReviewPreferencesCheckboxLabel","returnsReviewPreferencesInputLabel","returnsReviewReshopTitle","returnsReviewReshopCheckboxLabel","returnsReviewReshopPhoneInputLabel","returnsReviewReshopDisclaimer","returnsRefundMethodsTitle","returnsRefundMethodsDisclaimer","returnsRefundMethodsOptionOriginalPaymentTitle","returnsRefundMethodsOptionOriginalPaymentDescription","returnsRefundMethodsOptionGiftCardTitle","returnsRefundMethodsOptionGiftCardDescription","returnsRefundMethodsOptionReshopTitle","returnsRefundMethodsOptionReshopDescription","returnsRefundMethodsOptionIncentiveChip","returnsSwatchesListSeeMore","returnsSwatchesListSeeLess","returnsPreferencesStatusDesc","returnsPreferencesStatusDesc_error","returnsPreferencesStatusDesc_pending","returnsPreferencesStatusLinkText","returnsPreferencesStatusLinkText_error","returnsPreferencesStatusLinkText_pending","returnsStepsGeneralError","returnsActionsNext","returnsActionsBack","returnsActionsCancel","returnsActionsSubmit","returnsActionsBackToLogin","PAGE_VIEW_EVENT","EXPERIMENT_VIEW_EVENT","LOGIN_SUCCESS_EVENT","SUBMIT_RETURN_SUCCESS_EVENT","SAVE_PREFERENCES_CHECKED_EVENT","MANAGE_PROFILE_CLICKED_EVENT","MANAGE_PROFILE_CONFIRMATION_CLICKED_EVENT","COMPLETE_PROFILE_CLICKED_EVENT","countingEvent","eventType","measureValue","asyncNoop","async","convertFromDatadogMetrics","metrics","overrides","filter","metric","_last","metricNameSuffix","split","currencyCode","toLowerCase","batchSubmit","events","_isArray","noflake","log","Promise","all","abTestingTrackResult","growthBook","testId","resolve","config","isNthUi","userAttributes","getAttributes","variantKey","getFeatureValue","_isNil","JSON","stringify","patchDefaultValue","_merge","useAbTesting","useGrowthBook","trackResult","useCallback","memoObjectByKeyValues","useEffectOnce","fn","useElementSize","element","setSize","offsetHeight","useLayoutEffect","updateSize","addEventListener","removeEventListener","useModal","initialValue","register","handleCancel","handleConfirm","onCancel","onConfirm","toggle","useRequestStatus","requestState","customErrorsPath","showRawData","customErrors","_get","errors","concat","useSnackbarEffect","status","snackbars","enqueueSnackbar","useSnackbar","errorMsg","success","successMsg","autoHideDuration","featureFlaggedHook","isEnabled","defaultValue","hook","useDebounceCallback","_noop","wait","deps","_debounce","titan","constructor","endpoint","retailerMoniker","product","defaults","this","sessionTracking","userId","channel","context","extra","payload","console","Error","now","Date","toISOString","retailer_moniker","sentAt","originalTimestamp","properties","narvar_product_context","extra_properties","fetch","method","headers","Authorization","btoa","body","then","text","catch","err","warn","identify","rest","page","track","useClaims","useReturnStepsState","fetchData","useOrderFetchData","order","returnReasonsById","selectedClaimReason","items","find","item","isClaim","hasClaimItems","claimReasonCode","returnReason","claimType","isClaimReplacement","selectedReturnCreditMethod","RETURN_CREDIT_METHOD_REPLACEMENT","transformClaimItemsToExchangeItems","returnItems","exchangeItems","returnReasonId","isNotClaim","_negate","_flatten","transformReturnItemToExchangeItem","returnItemInput","itemsById","lineItemId","returnItem","newProductId","productId","newProductVariantId","variantId","newProductVariantInfo","variantInfo","_omit","newProductSku","sku","newProductName","productTitle","newProductImage","productImageUrl","newProductPriceAmount","priceAmount","newProductPriceCurrency","presentmentCurrency","_range","quantity","_set","decorateClaimsSubmitPayload","transformClaimSelectedItemsForNth","selectedItems","exchangeTo","price","imageUrl","available","availabilityStatus","exchangeForCredit","arrows","arrow","arrowDisabled","pointerEvents","disableDown","disableUp","onMoveDown","onMoveUp","e","stopPropagation","KeyboardArrowUp","KeyboardArrowDown","viewBox","fill","xmlns","clipPath","FrameDimensionsContext","createContext","setActiveSection","htmlElement","scrollToActiveNow","scrollToActive","useTypeForm","useContext","TypeFormProvider","activeSectionRef","top","getBoundingClientRect","scrollTop","pageYOffset","document","documentElement","getBranding","scrollToPosition","useTypeFormHook","Provider","positiveOnly","num","Math","useFrameDimensions","FrameDimensionsProvider","dimensions","setDimensions","windowHeight","parentData","innerHeight","offsetTop","scrollY","headerHeight","footerHeight","frameHeight","initiated","isFixed","viewportHeight","bottom","eventHandler","isTrusted","updateField","observer","ResizeObserver","entries","contentRect","observe","querySelector","disconnect","bottomOfViewport","topOfViewport","useFrameDimensionsHook","schema","tag","event_ts","ingestion_timestamp","_mapKeys","_snakeCase","ok","IN_STOCK","Sparsem","SEP","BLANK","arr","inp","opts","setArr","availableItems","optionsConfig","x","y","join","str","option","i","escapeStringRegexp","Boolean","out","missingIdx","indexOf","ret","val","some","select","list","getScore","maxScore","forEach","score","maxBy","availableItem","itemOption","index","TEMPLATE_VAR_REGEX","templateSettings","interpolate","string","_unescape","_template","message","errorNotifier","template","isGiftZipEnabled","isGiftReceiptEnabled","makeRootStyles","form","instructions","lineHeight","formFieldContainer","submitButton","errorSnackbar","giftReturnTitle","fontWeight","borderTop","paddingTop","giftReturnLink","giftEmailHelperText","OrderLookupLogin","orderNumber","email","giftField","onChangeOrderNumber","onChangeEmail","onChangeGiftField","onSubmitForm","isTrack","isGift","onChangeIsGift","buttonDisabled","translations","track_app_order_lookup_not_gift_link","track_app_order_lookup_gift_link","order_lookup_not_gift_link","order_lookup_gift_link","track_app_order_lookup_title","track_app_order_lookup_gift_title","order_lookup_title_start_return","order_lookup_gift_title_start_return","track_app_order_lookup_gift_start_instructions","track_app_order_lookup_start_return_instructions","order_lookup_gift_start_instructions","order_lookup_start_return_instructions","input3","order_lookup_gift_shipping_zip","order_lookup_gift_code","orderNumberTranslation","order_lookup_gift_order_number","order_lookup_order_number","emailTranslation","order_lookup_gift_email","order_lookup_email","notFoundErrorMessage","track_app_order_lookup_not_found_gift","track_app_order_lookup_not_found","order_lookup_not_found_gift","order_lookup_not_found","giftEmailHelper","track_app_order_lookup_gift_email_helper","order_lookup_gift_email_helper","giftCodeHelper","track_app_order_lookup_gift_code_helper","order_lookup_gift_code_helper","submitLabel","track_app_order_lookup_submit","order_lookup_submit","onSubmit","Grid","xs","md","align","dangerouslySetInnerHTML","__html","autoFocus","switchReturnType","href","debug","SnackbarContent","paddingBottom","title","wordWrap","cancel","textTransform","ShopNowExpiration","code","cancelStatus","confirmCancelReturn","shopnow_outstanding_credit_alert","amount","Link","showCancelReturn","ConfirmationDialog","cancelButtonVariant","shopnow_cancel_session_confirm_message","cancelCancelReturn","Spinner","shopnow_cancel_session_success","supplementaryText1","supplementaryText2","OrderLookup","onOrderFetch","orderFetchData","orderFetchError","orderFetchLoading","shopNowData","checkShopNow","cancelShopNow","shopNowCancelData","shopNowCancelError","shopNowCancelLoading","actions","useReturnStepsActions","growthbook","abTesting","loginSession","useLoginSession","orderFetchDataRef","setOrderNumber","setEmail","setGiftField","guestReturn","isGiftReturnsEnabled","shopNowCode","setShopNowCode","csid","useNewDesign","isNthLoginUi","newDesignLayout","mode","newUIValues","details","returnHistory","ineligible","eligible","handleChangeOrderNumber","handleChangeEmail","handleChangeGiftField","handleChangeIsGift","setIsGuestReturn","handleSubmitForm","preventDefault","loginNode","isShopNowEnabled","localStorage","removeItem","shopNowValue","get","isShopNowExpired","setGuestEmail","goToStep","CHOOSE_ITEMS_STEP","trackingSetPerson","shopDomain","updateGrowthBookAttributes","loggedIn","toggleContainerClass","searchString","URL","URLSearchParams","translation1","track_app_order_lookup_supplementary_text1","order_lookup_supplementary_text1","translation2","track_app_order_lookup_supplementary_text2","order_lookup_supplementary_text2","shopNowSessionReminder","stepStatus","ORDER_LOOKUP_STEP","skipped","NthOrderLookup","giftReturnEnabled","layout","values","stateSetter","setter","v","toggleGiftReturn","subComponent","OrderLookupDetails","onExitScreen","handleExit","logout","Spacer","selectItem","boxSizing","fontFamily","hoverBorder","borderWidth","borderStyle","noBorder","borderTopColor","borderLeftColor","borderRightColor","borderBottomColor","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","withThemeProvider","SelectItem","selected","readOnly","borderless","transparent","customStyle","styles","documentbodyNoneNone","bodytextDefaultNone","panelcontainerNoneNone","selecteditemNoneNone","buttonsSecondaryDisabled","useTheme","hover","setHover","defaultBackgroundColor","onMouseEnter","onMouseLeave","themeTokens","buildToolbarHeightForProp","muiTheme","cssProp","negative","breakpoints","up","controlGridSize","mapping","medium","small","large","dir","isNaN","sm","lg","xl","modify","abs","omitNullValues","joinHumanize","array","connectiveText","last","pop","joinAnd","joinOr","SIZE_MULTIPLIER_MAP","K","KB","M","MB","G","GB","T","TB","parseSize","matches","parseFloat","unit","toUpperCase","formatSize","decimals","dm","floor","pow","toFixed","isValidHttpUrl","url","_","protocol","isPresentString","obj","_isString","trim","useCurrencyConfig","localeCountry","localeLanguage","includeCurrency","useReturnsConfig","ADDRESS_DEFAULT","firstName","lastName","address1","address2","city","zip","province","provinceCode","countryCodeV2","getCountryNameByCode","countryNamesByCode","sharedConfig","country_code","mergeAddress","address","updates","addr","mergeIgnoreNil","patchZipCode","normalizeAddressKeys","attrPrefix","attrSuffix","_compose","_fromPairs","_map","key","oldKey","_camelCase","Object","keys","CANCEL_RETURN","useCancelReturn","mutate","useMutation","cancelReturn","icons","Truck","stroke","strokeWidth","strokeMiterlimit","strokeLinecap","Locate","fillRule","clipRule","Store","Package","opacity","Clock","Phone","CheckMark","PlaceholderThumbnail","ArrowRight","Exchange","cx","cy","r","filterUnits","colorInterpolationFilters","floodOpacity","in","stdDeviation","in2","operator","PlaceholderPictures","OriginalPayment","strokeLinejoin","GiftCard","Reshop","StoreCredit","ShippingLabel","Printerless","NarvarBadge","Favorite","CheckCircle","ShippingProtection","HelpCircle","Icon","icon","CHANGE_REFUND_METHOD","hasExchangeForShopNowCredit","isStoreCredit","buildReturnItem","lineItem","comment","pictures","childReturnReasonId","childReturnReason","reasonTitle","buildItemsByType","lineItemsById","buildExchangeItem","exchange","priceCurrency","buildCarouselItems","orderItems","remapped","matching","_sortBy","returningQuantity","_sumBy","_getOr","returnableQuantity","localId","additionalCarouselItems","maxExId","_max","push","buildVariantInfoMap","getMostSimilarVariantsForSelection","variants","variantsOptions","selection","filtered","optionName","variantInfoMap","filterByOption","buildVariantName","buildVariants","availableForSale","displayPrice","option0","productImageAltTxt","imageAlt","imageSrc","priceFormatted","hideDisplayPrice","buildVariantsOptionsFallback","createCarouselItemKey","isSameCarouselItem","itemA","itemB","mapVariantInfo","variantInfoArray","optionId","optionPosition","opt","mapShipmentActionStatus","newSelectedItemToState","parentId","reason","parent","childId","parentReason","_find","availableReasons","childReason","isShopNow","itemId","_sku","ineligibleReason","customerComments","attested","eventDataToNewSelectedItem","selectedReason","others","EMPTY_ARRAY","itemIneligibleReasons","someReasonsEligible","reasonsMatrix","eligibilityCriteria","ec","_uniq","ary","_reduce","_intersection","useNthAllItems","localItems","isNotInsurancePolicy","sortByReasonPriority","criteria","priority","getClaimIneligibleReason","_first","_identity","ineligibleClaimReason","showItemSku","presentmentCurrencySubunitToUnit","currency","eligibilities","return","isEligible","allowReturn","allowExchange","repair","claims","allowClaim","returnReasonTitle","childIds","returnReasonParent","_filter","renameKeys","hasClaimProtection","useNthExchangeProps","selectingItem","exchangeVariantInfo","setExchangeVariantInfo","hideExchangeOptions","isReturnUpsellDisabled","exchangeCurrency","exchangeResult","useEvenExchangeProduct","query","compareAtPrice","compareAtPriceAmount","fromCountryCode","showProduct","exchangeVariants","exchangeOptions","sparsem","sparsemVariants","infos","info","sparsemOptions","_stubTrue","sortExchangeVariantsByAvailability","sparsemQuery","o","sparsemResult","availability","UNAVAILABLE_IN_THIS_SET","UNAVAILABLE_IN_ANY_SET","vs","displayType","test","isReasonTypeMatched","_curry","isEligibleReason","isEligibleForClaim","hasEligibleChildReason","filterAvailableChildIds","useReturnReasonOrderItem","newSelectingItem","nonEmptyCart","includes","choose_items_claim_mix_cart_error","useNthSubmittedReturns","allItems","customer","useCustomer","changeRefundMethod","changeRefundMethodStatus","useChangeRefundMethod","returnAction","setReturnAction","returnActionStatus","returnId","reshopCancelError","getReshopCancelError","reshopCancelErrorMessage","choose_items_rma_action_reshop_cancel_error","refund_id","reshop_refund_id","choose_items_rma_action_cancel_error","submittedReturns","history","returnLabels","returnShipmentActions","returnLabel","dataUrl","labelType","labelUrl","mimeType","getTranslation","qrCodeUrl","isMultiLabel","returnShipments","ship","returnTrackingLink","letter","tracking_number","returnTrackingNumber","refundMethod","currentStatus","note","cancellable","displayStatus","simplifyReturnStatus","canBeCancelled","localItem","childReturnReasonCode","returnReasonCode","itemName","itemsWithSameId","_groupBy","returnTracking","carrierTrackingNumber","carrierMoniker","returnMethod","carrierName","narvarTrackingUrl","trackingNumber","useInventoryCheck","hooks","exchangeResults","statuses","useMergeRequestStatus","results","resultsById","matchingVariants","allItemsAvailableForSale","every","adornment","gap","NumberField","unitPosition","showLimit","currencyFormat","getCurrencyFormat","symbol","adornmentProps","startAdornment","nodes","adornmentNode","InputAdornment","node","_toPairs","iProps","NumericFormat","getInputRef","decimalScale","exponent","decimalSeparator","thousandSeparator","fixedDecimalScale","allowNegative","_isNumber","onValueChange","customInput","SIMPLIFIED_RETURN_STATUS","out_of_stock_exception","exception","started","requested","on_its_way_to_retailer","delivered_to_retailer","received_by_retailer","processing","approved","rejected","refunded","cancelled_by_retailer","cancelled_by_user","resolve_manually_without_automation","awaiting_claim_resolution","claim_denied","_unknown","RETURN_STATUSES","_keys","compareReturnStatus","toNumber","eq","a","b","gt","gte","lt","lte","memberOf","_includes","countryCodeToCurrency","AF","AL","DZ","AS","AD","AO","AI","AQ","AG","AR","AM","AW","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BQ","BA","BW","BV","BR","IO","BN","BG","BF","BI","CV","KH","CM","CA","KY","CF","TD","CL","CN","CX","CC","CO","KM","CD","CG","CK","CR","HR","CU","CW","CY","CZ","CI","DK","DJ","DM","DO","EC","EG","SV","GQ","ER","EE","SZ","ET","FK","FO","FJ","FI","FR","GF","PF","TF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GU","GT","GG","GN","GW","GY","HT","HM","VA","HN","HK","HU","IS","IN","ID","IR","IQ","IE","IM","IL","IT","JM","JP","JE","JO","KZ","KE","KI","KP","KR","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","ME","MS","MA","MZ","MM","NA","NR","NP","NL","NC","NZ","NI","NE","NG","NU","NF","MK","MP","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","RO","RU","RW","RE","BL","SH","KN","LC","MF","PM","VC","WS","SM","ST","SA","SN","RS","SC","SL","SG","SX","SK","SI","SB","SO","ZA","GS","SS","ES","LK","SD","SR","SJ","SE","CH","SY","TW","TJ","TZ","TH","TL","TG","TK","TO","TT","TN","TR","TM","TC","TV","UG","UA","AE","UM","US","UY","UZ","VU","VE","VN","VG","VI","WF","EH","YE","ZM","ZW","AX","formatCurrency","needsExponent","_locale","_currency","getCurrencyExponent","getCurrencyDP","BHD","BIF","CLF","CLP","DJF","GNF","IQD","ISK","JOD","JPY","KMF","KRW","KWD","LYD","OMR","PYG","RWF","TND","UGX","UYI","UYW","VND","VUV","XAF","XOF","XPF","formatted","Intl","NumberFormat","Currency","flex","StyledMarkup","content","noWrap","tagName","Markup","DEFAULT_ITEM_ATTR_CONFIG","getTransformedAttribute","transformType","additionalItemAttrs","additionalItemAttributeConfig","thisAdditionalItemAttributeConfig","attribute","thisProperty","concatenatedAttributeConfig","concatKey","transformedConcatValue","concatPosition","toString","getItemAttrs","itemDisplay","selectedQuantity","labels","itemAttributeConfig","ITEM_ATTR_CONFIG","hasVariantInfo","VARIANT_ATTR_CONFIG","sort","entriesLength","variantEntry","REDUCED_ITEM_ATTR_CONFIG","variantInfoIndex","DISPLAY_ITEM_ATTR_CONFIG","slice","attributes","displayQuantity","hasQuantity","quantityIndex","qtyLabel","colorIncludedInVariant","sizeIncludedInVariant","transaction","before","after","colorIndex","colorLabel","sizeIndex","sizeLabel","skuIndex","skuLabel","priceIndex","priceItem","discountedPrice","priceLabel","additionalProperties","attr","attrNameArray","joinedName","charAt","word","n","getItemProps","returnType","thumbnail","old","new","prevImageContainer","left","zIndex","prevImageUsingIcon","right","imageAltTxt","imageStyle","prevImageAltTxt","prevImageUrl","storeCredit","sizeMapping","Image","disableSpinner","animationDuration","transitions","duration","complex","IconButton","LoopIcon","RedoIcon","ItemThumbnail","fade","calculateChecksum","reject","FileChecksum","create","checksum","getFileMetadata","filename","content_type","byte_size","directUpload","upload","BlobUpload","directUploadData","response","isInAppLabelEnabled","RETURN_HISTORY_DATA","buildOrderDataQuery","giftFieldParam","shopifyCollectiveEnabled","CHOOSE_METHOD_STEP","CHOOSE_METHOD_SUBSTEP","CONFIRM_MAILING_ADDRESS_STEP","CHOOSE_SHOP_NOW_STEP","CHOOSE_RETURN_CREDIT_METHOD_STEP","REVIEW_STEP","CONFIRMATION_STEP","STEPS","getStepIndex","step","useReturnStepIsActive","isReturnStepActive","currentStepIndex","ReturnStepsState","ACTIONS","clearAll","setSelectingItem","setSelectedItems","setKeepItemIds","setReturnMethod","setRequestedLabelCount","setStoreLocation","setSubmitSuccess","setConfirmedMailingAddress","setReturnCreditMethod","setAvailableReturnCreditMethods","setFallbackReturnCreditMethod","setFromCountryCode","setCorrectedAddress","setShopNowRedirect","setSavePreferences","setSubmitReturnResultCode","setLineItemInitialIntension","confirmLineItemIntension","clearLineItemIntension","setStepStatus","goBack","setReshopOptions","nvo_urlParams","initialState","decodedGuestEmail","keepItemIds","selectedReturnMethod","locationId","requestedLabelCount","submitted","submitResult","refundTotal","fromAddress","availableReturnCreditMethods","shopNowSession","savePreferences","isUserPreferencesEnabled","homePickupInstructions","lineItemIntension","reshopOptions","reducer","carrier","newLocation","qr","redirectingToShop","customerPhone","submitReturnResultCode","exchangeEnabled","initial","intension","_unset","ReturnStepsActions","OrderFetchData","buildInitialState","dispatch","useReducer","dispatcher","useReturnSteps","orderFetch","setCalled","setData","setError","setLoading","client","useApolloClient","showNonRemoved","orderedQuantity","removedQuantity","mappedData","keyBy","returnReasons","attestationText","flag","ineligibleReasonForReturn","ineligibleReasonForExchange","clearOrderData","getOrderData","fetchPolicy","shopUrl","shopName","host","shid","setUser","orderEmail","getOrderDataAsync","useOrderData","useRegisterStepStatus","useConsumerSettings","billingCountryCode","localeFromUrl","language","Locale","fallback","substring","localeFull","isIncludeCurrency","displayEmail","fromFirstName","fromLastName","fullName","EVEN_EXCHANGE_PRODUCT","skip","evenExchangeProduct","isShopNowWithCreditEnabled","isUnevenExchangesEnabled","groupedVariantInfo","_mapValues","_pick","someVariantsCollided","variantsCollied","_pickBy","someAvailable","sortedValues","Language","langKey","replacementTokens","defaultString","useLanguage","spinner","animationName","animationIterationCount","animationTimingFunction","dayMap","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY","amPmTime","time","hours","minutesString","compressDayGroups","timeSpan","days","timeConversion","timeGroup","openingHours","hasOwn","day","hoursGrouping","locationItemIcon","gridArea","gridRow","alignSelf","maxWidth","gridAutoFlow","locationItemTitle","locationItemSubtitle","justifySelf","locationItemHours","locationItemAddress","fontStyle","locationItemDistance","TextLink","externalLinkHandler","useViewportConfig","isExternal","t","TextLinkTargetType","SELF","onClickHandler","NthTextLink","DistanceItem","DistanceItemC","linksNoneDefault","linksNoneHover","hasExactLocation","latitude","longitude","distance","encodeURIComponent","postalCode","linkStyle","sDefault","sHover","AddressItem","LocationCardC","active","headersSmallNone","openingHoursDisplay","openingHoursDisplayString","openingConversion","gridTemplateColumns","gridColumnGap","gridRowGap","gridTemplateAreas","logoUrls","storeName","locationType","img","ItemImage","sFallback","fit","objectPosition","usePlaceholder","setUsePlaceholder","objectFit","onError","tagRoot","tagContent","Tag","anchor","s","itemInfo","itemInfoDetail","chipRoot","chipWrapper","computeBorderRadius","rounded","Chip","tooltipContainer","visibility","tooltipText","transition","alignContent","boxShadow","Tooltip","tooltipElId","random","onKeyDown","role","tabIndex","typeKey","claim","ItemCard","ItemCardC","subtitle","additionalInfo","clickable","sTag","hasShippingProtection","headersMediumNone","fitItemThumbnail","fitItemThumbnailPosition","errorBanner","ErrorBannerC","footerWrapper","footerWrapperNoPadding","absoluteContainer","stickyContainer","StickyFooter","absolute","fixed","removePadding","onShow","viewportConfig","inView","useInView","threshold","inline","footerWrapperClasses","footerStyles","offsetBottom","offsetLeft","offsetRight","borderTopStyle","backdropContainer","Backdrop","itemStyles","flexGrow","footer","buttonWrapper","columnGap","rowGap","leftItem","rightItem","divider","ButtonItem","onEvent","isValidElement","buttonData","area","outline","big","ButtonRow","buttons","leftButton","centerButton","rightButton","FooterC","above","below","progressiveStep","activeStep","dividerThemeStyle","LineItemsGroupC","selectedGroup","itemsWereSelected","backButtonWrapper","bar","barReverse","composes","BackButton","onBack","FileUploadButton","maxSize","fileInput","acceptedFiles","rejectedFiles","IconFilledButton","sIcon","iconStyle","iconsPrimaryNone","previews","flexWrap","tempLanguageKeys","LanguageKeys","FileUpload","caption","captiontextDefaultNone","captionStyle","captiontextErrorNone","captionStyleError","errorCode","setErrorCode","setFiles","createObjectURL","acceptFiles","p","Thumbnail","IconX","f","removeFile","wrapper","SwatchesList","expanded","setExpanded","containerHeight","setContainerHeight","hasMoreToggle","setHasMoreToggle","selectedOption","selectListOptions","ariaLabel","isDisabled","isGrayedOut","grayedOut","listRef","handleResize","selectListContainer","firstChild","calcContainerHeight","GAP","wrapperStyles","SelectList","isRequired","limit","handleToggleSeeMore","sizePhoto","shimmer","backgroundImage","animationFillMode","shimmerPhoto","backgroundSize","shimmerCardPhoto","shimmerCardText","shimmerDescription","shimmerFee","line","cardContainer","textContainer","photo","description","cardContainerPudo","cardPhoto","cardTitle","cardFee","cardDescription","from","backgroundPosition","to","ItemCardSkeleton","LineItemSkeleton","orderFetchDataActions","returnStepsActions","apolloClient","cache","resetGrowthBookAttributes","h3","confirmText","cancelText","confirmButtonVariant","confirmOnly","confirmButtonAutoFocusDisabled","otherProps","hasContent","messageNode","DialogContentText","errorNode","Dialog","DialogTitle","DialogContent","DialogActions","rootMargin","rootPadding","cover","mixins","verticalHeight","isNext","activeIndex","onRenderNext","sectionRef","isMobile","useMediaQuery","down","firstRender","setFirstRender","STATUS_PREAUTHORIZATION","STATUS_STARTED","STATUS_REQUESTED","STATUS_INITIATED","STATUS_AWAITING_CLAIM_RESOLUTION","STATUS_CLAIM_DENIED","STATUS_DELIVERED_TO_RETAILER","STATUS_ON_ITS_WAY_TO_RETAILER","STATUS_RECEIVED_BY_RETAILER","STATUS_APPROVED","STATUS_REJECTED","STATUS_RESOLVE_MANUALLY_WITHOUT_AUTOMATION","STATUS_EXCEPTION","STATUS_CANCELLED_BY_RETAILER","STATUS_CANCELLED_BY_USER","STATUS_OUT_OF_STOCK_EXCEPTION","STATUS_NEEDS_MANUAL_APPROVAL","METHOD_KEEP_THE_ITEM","METHOD_XPO","METHOD_IN_STORE","METHOD_SHIP_ON_YOUR_OWN","METHOD_BY_MAIL","METHOD_BY_MAIL_AND_IN_STORE","RETURN_CREDIT_METHOD_SHOPNOW","RETURN_CREDIT_METHOD_GIFT_CARD","RETURN_CREDIT_METHOD_RESHOP","RETURN_CREDIT_METHOD_REFUND","PRINTERLESS_METHOD","BOXLESS_METHOD","REFUND_METHOD_ORIGINAL_PAYMENT","REFUND_METHOD_GIFT_CARD","trimObject","_trim","_omitBy","merged","next","remaining","object","ignoreEmpty","_isEmpty","assertAnyFieldBy","assertAllFieldsBy","mergeRequestStatus","toSortedPairs","pairs","omitDeep","paths","_isObject","ensureFieldIsBoolean","path","ensureFieldIsArray","USPS_RETURNS","FEDEX","BLUEDART","UPS","CANADA_POST","DHL_EXPRESS","DHL_PAKET","DPD_UK","AUS_POST","CYCLEON","SWISS_POST","ROYAL_MAIL","COLLECT_PLUS","CORREOS_EXPRESS","COLISSIMO","EVRI","XPO","PITNEY_BOWES","CHRONOPOST","SHIP_ENGINE","POSTNORD","GLS","GLSDK","GLSFR","GLSCA","DHL_GLOBAL","YAMATO","DELIVERR","INPOSTUK","DODDLE","HERMES","FEDEX_COMMERCIAL","APG","MONDIAL_RELAY","MAERSK_EU","DHLPBENELUX","BLECKMANN","SHOPLINE","PUROLATOR","BPOST","POSTNL","BOXLESS_ONLY_CARRIERS","carrierNames","incoterms","useStyle","ButtonBusy","isBusy","Component","iconSizes","CircularProgress","disablePadding","accordion","accordionSummary","expansionPanelSummaryContent","expansionPanelSummaryValid","accordionDetails","heading","CollapsibleOptionItem","buttonRef","collapseId","collapseLabel","collapseSummary","highlight","CollapsibleOptions","buttonRefs","isExpanded","summary","Accordion","AccordionSummary","AccordionDetails","inputMultiline","ReturnComment","onContinue","setComment","choose_items_comment_helper_text","choose_items_comment_required_placeholder","choose_items_comment_optional_placeholder","choose_items_comment_continue_label","previewImage","maxHeight","previewWrapper","mixBlendMode","PicturePreview","picture","removePicture","lUrl","CloseIcon","previewSection","dropzoneText","errorDictionary","choose_items_upload_pictures_error_invalid_type","choose_items_upload_pictures_error_file_size","choose_items_upload_pictures_error_too_many","PictureUpload","setPicturesForItem","errorMessage","setErrorMessage","onDrop","newPics","msg","uniq","memo","getRootProps","getInputProps","isDragActive","useDropzone","maxFiles","oldpic","baseDropzoneStyle","smallerDropZoneStyle","activeDropzoneStyle","dropzoneStyle","PhotoLibraryIcon","choose_items_upload_add_photos","optionInputValue","textOverflow","optionMenuItem","whiteSpace","optionUnavailable","hint","shopNowContainer","ExchangeItemDetails","selectedItem","localVariants","setLocalVariants","hasOptions","activeSelectInputEl","setActiveSelectInputEl","popoverEl","setPopoverEl","popoverPosition","setPopoverPosition","selectInputProps","onOpen","closest","MenuProps","TransitionProps","onEnter","popover","parentElement","onEntering","focus","clientHeight","bottomFromTop","viewportTop","viewportBottomFromTop","variantSelected","isValidVariant","areAllVariantsOutOfStock","variantPreview","choose_items_choose_exchange_variant_helper_text","getVariantValueForOption","unavailableText","choose_items_choose_exchange_variant_not_available_in_selected","choose_items_choose_exchange_variant_not_available","sortedVariantValues","sortBy","variantHeader","choose_items_choose_exchange_variant_label_general","newVariants","SelectProps","renderValue","MenuItem","choose_items_choose_exchange_variant_shopnow_action_description","choose_items_choose_exchange_variant_shopnow_action_link","choose_items_exchange_item_button_out_of_stock","choose_items_exchange_item_button_label","unavailableContent","paddingLeft","ExchangeItemWizard","exchangeItem","orderPresentmentCurrency","productVariantName","isUnavailableForSale","onChangeHandler","variantsPairs","pos","_defaultTo","selectedVariants","choose_items_exchange_wizard_unavailable_title","thumbContainer","disabledOpacity","thumb","detailsSelected","descriptionContainer","exchangeTitle","editCommentButton","editPictureButton","fullSizeContainer","commentContainer","paper","pictureUploadContainer","typePickerContainer","typePickerContainerRow","typePickerButton","ineligibleReasonItem","ItemDetails","enableExchange","onToggleExchangeVariants","onChoose","onShowComment","openComment","openPictures","setOpenPictures","photoUploadEnabled","photoUploadRequired","renderComment","renderSelectors","setUserHasContinuedPastPictures","appState","showExchangeVariants","setShowExchangeVariants","setExchangeVariants","isReturn","isExchange","isExchangeStoreCredit","isUnknown","handleChooseReturn","returnButtonText","choose_items_return_item_button_label_gift","choose_items_return_item_button_label","itemSelectors","handleChoose","ExchangeItemThumbnail","gutterBottom","choose_items_exchange_wizard_title","startCase","List","ListItem","disableGutters","choose_items_edit_comment","choose_items_add_comment","choose_items_upload_pictures_edit_pictures","choose_items_upload_pictures_add_pictures","actionsBig","removeButton","alpha","card","ItemBase","onRemove","overflowY","menuList","menuListItemRoot","menuListItemGutters","itemLabel","actionsSmall","ItemMenuList","selectItemClasses","gutters","MenuList","useReturnState","selectedState","useItemSelectors","onChangeChildReason","onChangeComment","onChangeQuantity","onChangeReason","enableCustomerPictures","requireCustomerPictures","isCommentMandatory","childrenReturnReason","childrenReasons","openReasonsSelect","setOpenReasonsSelect","openChildReasonsSelect","setOpenChildReasonsSelect","openQuantitySelect","setOpenQuantitySelect","setOpenComment","confirmedInComment","setConfirmedInComment","userHasContinuedPastPictures","requirePicture","returnReasonsOptions","buildReturnReasonsOptions","childReturnReasonsOptions","buildChildReturnReasonsOptions","quantityOptions","buildQuantityOptions","range","qty","collapsibleOption","collapsibleOptionSelected","optionLabel","ItemCollapsible","addExtraSpace","onChangeContinuePending","detailsSummaryRef","itemDetailsRef","handleChangeChildReason","handleChangeComment","handleChangeQuantity","handleChangeReason","returnReasonSummary","childReturnReasonSummary","quantitySummary","choose_items_quantity_label","pictureSummary","choose_items_upload_pictures_summary","isSelected","detailsSummaryHeight","requiredConfirm","handleChangeExpanded","expandedId","handleToggleExchangeVariants","handleOnRemove","choose_items_select_reason_prompt_exchange","choose_items_select_reason_prompt","choose_items_select_subreason_prompt","choose_items_select_quantity_prompt_exchange","choose_items_select_quantity_prompt","choose_items_upload_pictures_prompt","choose_items_comment_title","menuContainer","useInputStyles","secondaryFontFamily","notchedOutline","parentClasses","inputClasses","mappedChildren","el","Collapse","mountOnEnter","borderRight","borderLeft","BORDER_WIDTH_SELECTED","actionsLarge","ItemSelectors","toggleQuantitySelect","toggleReasonsSelect","toggleChildReasonsSelect","showChildReason","showQuantity","selectClasses","Fragment","actionsExtraSpace","additionalCommentsTitle","ItemDefault","onRemoveHandler","Item","patchBlankOptions","orderNumberText","exitButton","exitIcon","cancelReturnsContainer","hasCancellableReturns","edge","order_lookup_option_return_progress","order_lookup_option_cancel_return","order_lookup_cancel_return_modal","order_lookup_return_has_been_cancelled","n3","example","regex","n4","n5","n6","IC","KV","XY","autocompleteInputField","autocompleteEndAdornment","autocompleteInputRoot","MailingAddressForm","initialAddress","disable","exclude","extraValidation","validateZip","notesEnabled","updateFromAddress","autoCompleteNames","setAutoCompleteNames","states","handleInput","_isFunction","phone","notes","countryCodesList","getConfig","countryCodes","genRan","line1","line2","firstRowWidth","_difference","zipExampleText","ZipValidation","lastRowWidth","zipValidate","statePresentWhenInUS","isEmpty","requiredFields","isZipValid","disableCountry","isAddressProvinceDisabled","disableProvince","autoHighlight","autoSelect","getOptionLabel","isObject","mutatedParams","mailing_address_form_country","disableClearable","inputRoot","ListboxProps","mailing_address_form_first_name","mailing_address_form_last_name","mailing_address_form_phone","mailing_address_form_address_line_1","mailing_address_form_address_line_2","mailing_address_form_city","mailing_address_form_state","mailing_address_form_zip","rows","mailing_address_form_notes","toNthTemplateString","variableRenames","toNthTemplateConfig","lomaUrl","environment","NthContextProvider","isConfirmationStep","openLabel","_startsWith","userPreferencesEndpoint","isExchanging","asyncLabel","noRefund","isGiftReturn","confirmationTranslationsFactory","carrier_name","hideReturnMethodPrice","returnsPudoListItemmailFree","returnsPudoListItemconciergeFree","returnsPudoListItemprinterlessmailFree","returnsPudoListItemboxlessFree","returnsPudoListItempickupFree","returnsPudoListItemstoreFree","returnsPudoListItemselfFree","returnsPudoListItem","shop_name","returnsReviewRefundTo_reshop","claimsAttestationTitle","claimsAttestationRemarks1","claimsAttestationRemarks2","claimsAttestationUseSignature","claimsAttestationSignaturePlaceholder","claimsAttestationCertifyStatement","claimsReviewSubmittingClaim","nvo_config","branding","primary_font","buildSansFontFamily","secondary_font","base_body_text_size","border_radius","brand_primary","brand_secondary","body_text","body_background","error_color","error_text_color","is_link_underlined","is_link_all_caps","root_margin_top","root_margin_bottom","step_delimiter_position","fixed_app_bar","brand_primary_darker","darken","brand_primary_lighter","lighten","brand_secondary_darker","brand_secondary_lighter","BG_WHITE","DISABLED_COLOR","BORDER_COLOR","defaultTextStyle","headerTextStyle","errorTextStyle","emphasisTextStyle","buttonStyle","buttonOutlineStyle","panelStyle","panelHoverStyle","panelActiveStyle","inputStyle","inputFocusStyle","outlineColor","inputErrorStyle","bodytextEmphasisNone","smalltextDefaultNone","computeFontStyle","smalltextEmphasisNone","headersHugeNone","headersBigNone","headersSemibigNone","buttonsDismissNone","buttonsPrimaryDefault","buttonsPrimaryDisabled","buttonsPrimaryHover","buttonsSecondaryDefault","buttonsSecondaryHover","iconsSecondaryNone","spinnerPrimaryNone","linksNoneVisited","footertextNoneNone","alertNoneNone","panelbodyNoneNone","panelcontainerNoneHover","panelcontainerNoneActive","panelfooterNoneNone","panelheaderNoneNone","inputtextareasNoneDisabled","inputtextareasNoneFocus","inputtextareasNoneNone","inputtextinputsNoneDisabled","inputtextinputsNoneError","inputtextinputsNoneFocus","inputtextinputsNoneNone","globalSettings","retailerName","defaultLanguage","defaultCountry","defaultVersionName","fallbackVersionName","returnsWorkflowActiveVersion","returnsWorkflowDefaultVersion","localConfig","queryTheme","queryTranslations","queryGlobalSettings","handleAnalyticsError","ReturnsConfigProvider","noflakeUrl","handleError","returnsHeadlessUrl","moniker","isCropItemThumbnail","ViewportConfigProvider","useNthReturnsActions","useReturns","rand","prefix","useUuid","v4","defaultAttributes","initGrowthBook","dev","enableDevMode","GrowthBook","apiHost","clientKey","decryptionKey","attrs","setAttributes","iconSize","navPadding","containerNavPadding","ie11","nav","whiteOverlay","begin","end","navButton","appBar","secondary","disabledBackground","navPrev","navNext","Swiper","slidesPerView","slides","isBeginning","setIsBeginning","isEnd","setIsEnd","swiperRef","navPrevRef","navNextRef","spaceBetween","isSingleSlide","handleSwiper","handleSlideChange","slideTo","NavigateBefore","NavigateNext","ReactSwiper","modules","Keyboard","FreeMode","Navigation","freeMode","sticky","grabCursor","navigation","nextEl","prevEl","preventClicksPropagation","shortSwipes","keyboard","enabled","centeredSlides","touchStartPreventDefault","onSwiper","onSlideChange","onSliderMove","SwiperSlide","onClickCapture","slideToIndex","ItemsCarousel","isLgUp","isMdUp","isSmUp","itemsLength","itemsNode","slidesPerGroup","displayReasons","reasons","childNodes","cur","rootNodes","currentSelection","selectList","selectListOption","SelectListButton","ReturnReasonsList","reasonNodes","MediumHeader","useTranslations","secondaryTitle","LanguageProvider","ReturnReasonsQuantity","totalQuantity","Number","ReturnReasonsQuantityAll","isHipaaCompliant","setSelection","isErrorShown","setErrorShown","langKeySuffix","ErrorBanner","textarea","commentWrapper","ReturnReasonsComments","attestation","hideSubmit","rawValue","returnsReasonsCommentsPlaceholderRaw","requiredPlaceholder","textAreaLabel","TextArea","handleSubmit","ReturnReasonsEdit","removeLabel","asString","continueLabel","ReturnReasonsType","claimIneligibleReason","exchangeLabel","claimLabel","getSupportedTypes","orderItem","stepsProps","returnEnabled","exchanges","claimEnabled","defaultType","shopNowWrapper","findBestMatch","optInfo","findExactMatch","bestMatch","positionSorterFactory","ReturnReasonsExchange","upsell","shopNow","exchangeSelections","onSkip","MAIN_EXCHANGE_OPTION_ID","sortedExchangeOptions","sparsemFactory","optionsSize","handleChangeFactory","filteredKeys","filteredObj","fromEntries","exactMatch","swatches","j","searchTokens","bestMatchOfCurrentOption","swatch","defaultSelection","noThanks","unavailable","Paragraph","Panel","header","handleShopNow","ReturnReasonsPictures","minCount","uploadButtonLabel","uploadCaption","rootWrapper","userActions","minWidth","reasonOptionPayload","selectionNode","category","selectedExchangeOptions","above700","noop","ReturnReasonsRaw","withSettingsProvider","withTranslationsProvider","ReturnReasonsRawComponent","onNext","useSettings","returnQuantityMustBeAll","skipExchangeSelection","availableExchangeVariants","skipUpsellSelection","statefulValues","_formData","useReturnReasonsFormData","initialValues","remainingQuantity","setValues","update","newValues","valueWithFallback","resetValue","updateValue","stepsState","useReturnReasonsPath","suggestedDefaultType","backLabel","nextLabel","noThanksLabel","steps","isExchangeFlow","simpleFlow","comments","allowed","setHistory","setCurrentStepIndex","currentStep","isLastStep","isCompleted","nextButton","types","MAX_VALUE","count","consumerCommentsRequired","skipExchange","notSelected","saveState","nextStepIndex","newPath","grandparent","h","stepIndex","back","previousStep","goNext","currentStepData","containerRef","useContainerQuery","footerButtons","setPaddingBottom","rootStyle","footerRef","resizeHandler","useResizeObserver","reasonLabel","selectedNode","submitOnChange","overrideFunc","handleSubmitFactory","override","handleBack","handleNext","handleEditChange","handleFooterEvent","getPreviewItemCard","footerPreview","borderBottomRightRadius","selectedReasonHasCommentRequired","Footer","translationKeys","settingsRequested","ReturnReasons","supplementaryText","chooseButton","newUiDisclaimer","isEligibleItem","rrLookup","rr","ChooseItems","itemsCarouselRef","localSelected","setLocalSelected","selectedByKey","continuePendingByKey","setContinuePendingByKey","sortedLocalItems","hasStoreCredit","showItemsLimitDisclaimer","isActiveStep","showNextBtn","showCreateGiftReturn","handleCreateGiftReturn","fromZip","billingZip","getSelectedItem","addLocalItem","findIndex","removeLocalItem","setStateToLocalItem","handleRemoveItem","handleChangeContinuePending","isContinuePending","hasChildReturnReason","handleNextStep","isValidSelected","actionNode","choose_items_next_button_label","commonIneligibleReasons","intersection","eligibleItems","choose_items_supplementary","orderEligible","typeForm","viewportAnchor","nthReturnsActions","selectingReasonId","setSelectingReasonId","setNewSelectingItem","newSelectedItems","setNewSelectedItems","newLineItems","exchangeStatus","orderIneligibleReason","ineligibleDisplayText","choose_items_none_eligible","disclaimerNew","choose_items_line_items_limit_remarks","choose_items_cs_create_gift_return","returnReasonOrderItem","ItemSelector","splitSelectedItems","cancelReturnStatus","showOfflineReturns","lineItemGroupings","orderLineItemGroupings","itemGroupingModeEnabled","disclaimer","newSelected","selecting","handleNthNextStep","setOrderData","orderId","track_app_choose_items_not_found","isEdit","choose_items_title","commonIneligibleReason","isExchangesEnabled","choose_items_shopnow_remarks","getDineroCurrency","currencies","getCurrencyMultiplier","subunitToAmount","subunit","stringToAmount","stringToSubunit","formattedStringToSubunit","formattedString","amountToSubunit","formattedStringToAmount","testStr","amountNumber","dinero","toDecimal","reg","EMIT_METRICS","toMetric","usdConversionRate","metricType","round","useEmitMetrics","mutated","emitMetrics","calculateReturnMetrics","lineItemIntensions","theOnlyRefundMethodIsOriginalPayment","presentmentCurrencyEstimatedUsdConversionRate","ri","ei","riItem","originalValue","originalValueExchangeable","exchangeRetention","returnValue","giftCardRetention","shopNowRetention","upsellValue","changedTo","returnValueNonexchangable","accumulateValues","behaviorMetrics","group","rmaBehavior","line_item_return_upsell","line_item_exchange_as_exchange","line_item_exchange_deflection","line_item_return_as_return","grey","backgroundRepeat","easing","easeInOut","imageBroken","altText","imageAltText","ready","setReady","onerror","preloadImage","CSSTransition","timeout","classNames"],"sourceRoot":""}