{"version":3,"file":"static/chunks/4256-516e38844570c509.js","mappings":"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","sources":["webpack://_N_E/./components/applications/cart/helpers/atcCustomProduct.js","webpack://_N_E/./components/applications/cart/helpers/beginCheckoutAnalytics.js","webpack://_N_E/./components/applications/pip/contexts/ProductOptionReducer.js","webpack://_N_E/./components/applications/pip/contexts/ProductOptionContext.js","webpack://_N_E/./components/applications/pip/helpers/PIP.helpers.js","webpack://_N_E/./components/feedback/Alert/index.jsx","webpack://_N_E/./components/forms/CloseButton/index.jsx","webpack://_N_E/./components/icons/IconAlertTriangle.jsx","webpack://_N_E/./lib/Constants/fabricOptions.js","webpack://_N_E/./services/AuthenteakApi.js","webpack://_N_E/./services/bigcommerce/GetLoggedJwtToken.js","webpack://_N_E/./services/bigcommerce/getCustomerCheckoutUrl.js","webpack://_N_E/./thirdparty/Extend/components/OfferModal/index.jsx","webpack://_N_E/./thirdparty/Extend/components/Plans/AuthenteakExtendLogo.jsx","webpack://_N_E/./thirdparty/Extend/components/Plans/ExtendHelpText.jsx","webpack://_N_E/./thirdparty/Extend/icons/IconExtendCheck.jsx","webpack://_N_E/./thirdparty/Extend/components/Plans/Highlights/index.jsx","webpack://_N_E/./thirdparty/Extend/components/OfferButton/index.jsx","webpack://_N_E/./thirdparty/Extend/components/OfferButton/DeclineProtection.jsx","webpack://_N_E/./thirdparty/Extend/components/Plans/preloaders/LoadingPlans.jsx","webpack://_N_E/./thirdparty/Extend/components/Plans/index.jsx","webpack://_N_E/./thirdparty/Extend/context/OfferReducer.js","webpack://_N_E/./thirdparty/Extend/context/OfferContext.js","webpack://_N_E/./thirdparty/Extend/hooks/useExtendCart.js","webpack://_N_E/?5ddf","webpack://_N_E/./thirdparty/Extend/hooks/useGetExtendPlans.js","webpack://_N_E/./thirdparty/Extend/icons/ExtendLogo.jsx","webpack://_N_E/./thirdparty/Extend/icons/IconExtend.jsx","webpack://_N_E/./thirdparty/Google/helpers/event.helpers.js","webpack://_N_E/./components/applications/pip/components/Options/OptionsPreloader/OptionsPreloader.module.scss","webpack://_N_E/./components/feedback/Alert/Alert.module.scss","webpack://_N_E/./components/forms/CloseButton/CloseBtn.module.scss","webpack://_N_E/./thirdparty/Extend/components/OfferButton/OfferButton.module.scss","webpack://_N_E/./thirdparty/Extend/components/OfferModal/OfferModal.module.scss","webpack://_N_E/./thirdparty/Extend/components/Plans/Highlights/PlanHighlights.module.scss","webpack://_N_E/./thirdparty/Extend/components/Plans/Plans.module.scss","webpack://_N_E/./thirdparty/Extend/components/Plans/preloaders/PlanPreLoader.module.scss"],"sourcesContent":["/**\n * ATC a custom Single Product\n * https://developer.bigcommerce.com/docs/rest-management/carts/items#add-cart-line-items\n * \n * @param {object} itemMutation - mutation hook \n * @param {object} productData - product data\n * @param {function} errorCallback - error callback\n * @param {function} confirmationCallback - confirmation callback\n * @param {string} cartId - cart id (if we need to add it to a specific cart)\n * @param {boolean} buyNow - buy now\n */\n\nexport default function atcCustomProduct({ \n cartId = null,\n productData, \n buyNow = false,\n itemMutation, \n errorCallback = () => null, \n confirmationCallback = () => null, \n}){\n\n const { sku, name, quantity, list_price } = productData ?? {};\n\n const productBody = {\n custom_items: [{\n sku,\n name,\n quantity,\n list_price,\n }]\n }\n \n itemMutation.mutate({ type: \"add\", productBody, cartId, buyNow }, \n {\n onSuccess: (data) => { \n if( \n data?.response?.status === 404 ||\n data?.response?.status === 308\n ){\n errorCallback(data.response, productData) \n return null;\n } \n\n confirmationCallback(data);\n },\n\n onError: async (err) => {\n errorCallback(err, productData)\n }\n }\n )\n}","import { ga4EventData } from 'thirdparty/Google/helpers/event.helpers';\nimport { setRejoinerCheckout } from 'thirdparty/Rejoiner/Rejoiner.service';\nimport { trackProductsConverted } from 'services/plp/SearchApi.service';\nimport { sendGTMEvent } from '@next/third-parties/google'\n\n\n/**\n * Analytics helper on start of checkout\n * @param {object} cartData \n * @param {string} userId \n * @param {array} prodCat \n */\nexport function beginCheckoutAnalytics(cartData, userId, prodCat){\n\n try{\n // rejoiner tracking\n setRejoinerCheckout(cartData, prodCat);\n\n // search tracking\n trackProductsConverted(cartData)\n\n // GA4 data layer\n const checkoutData = ga4EventData(cartData, 'begin_checkout');\n sendGTMEvent({ event: 'reset_dl', ecommerce: null});\n sendGTMEvent({ event: 'begin_checkout', ecommerce: { ...checkoutData, user_id: userId } });\n \n }catch(err){ \n console.log(err)\n }\n}\n\n\nexport function cartAnalytics({ cartData, userId }){\n try{\n // GA4 data layer\n const viewCart = ga4EventData(cartData, 'view_cart');\n sendGTMEvent({ event: 'reset_dl', ecommerce: null});\n sendGTMEvent({ event: 'view_cart', ecommerce: { ...viewCart, user_id: userId }});\n\n }catch(err){\n console.log(err)\n }\n}","/**\n* Cart Item State Manager:\n*/\n\nexport const InitialState = {\n price: 0,\n qty: 1,\n\toptions: {},\n\tautoNoThanks: [],\n\tsets: {},\n\tcart: {},\n atcStatus: null,\n\tsetReceiverControl: \"\",\n\taddons: {},\n\terrorAttributes: [],\n customSelectIsOpen: false,\n ref: {},\n readyToAddToCart: false,\n hoverImage: null,\n reviewsRef: null,\n protectionPlans: null\n};\n \n \n export const ProductOptionReducer = ((state, action) => {\n switch(action.type){\n\n case \"haveProtectionPlan\": \n return{\n ...state,\n protectionPlans: action.data\n }\n \n\n case \"atc\":\n return{\n ...state,\n atcStatus: action.data\n }\n\n case \"setPrice\":\n return{\n ...state,\n price: action.data\n }\n \n\n case \"setReviewsRef\":\n return{\n ...state,\n reviewsRef: action.data\n }\n\n case \"setQty\":\n return{ \n ...state,\n qty: action.data\n }\n\n // set swatch or variant image on the main product image\n case \"setHoverImage\":\n return{\n ...state,\n hoverImage: action.data\n }\n\n\n case \"readyToAddToCart\":\n return {\n ...state,\n readyToAddToCart: action.data\n }\n\n\n // notify that our custom select box is open.\n // to allow overflow styling of the main option box cntr\n case \"customSelectIsOpen\":\n return{\n ...state,\n customSelectIsOpen: action.data\n }\n\n\n // set a component reference for addon product offsets\n case \"setRef\":\n return{\n ...state,\n ref: {\n ...state.ref,\n [ action.data.id ]: action.data.offsetTop\n }\n }\n \n // Sets our product's options\n case \"setOptions\":\n return{\n ...state,\n options:{\n ...state.options,\n ...action.data\n }\n };\n\n\n // library to set option no thanks automatically\n case \"setAutoNoThanks\":\n return{\n ...state,\n autoNoThanks:[\n ...action.data\n ]\n }\n\n\n // global set display name that has recently been updated by our global \n case \"setReceiverControl\":\n return{\n ...state,\n setReceiverControl: action.data\n }\n\n\n\n // set product set data\n case \"setSets\": \n return{\n ...state,\n sets: {\n\t\t\t\t\t...state.sets,\n\t\t\t\t\t...action.data\n }\n }\n\n \n // set product set data\n case \"setSetProducts\": \n return{\n ...state,\n sets: {\n ...state.sets,\n products: {\n ...action.data\n }\n }\n }\n\n\n // set addons product set data\n case \"setAddons\": \n return{\n ...state,\n addons: {\n ...state.addons,\n ...action.data\n }\n }\n\n\n // set cart product options\n case \"setCartProduct\":\n return{\n ...state,\n cart:{\n ...state.cart,\n ...action.data\n }\n }\n\n \n\n case \"updateOptions\":\n return{\n ...state,\n options:{\n ...state.options,\n [action.data?.key]: {\n ...state.options?.[action.data.key],\n attributeValue: action.data?.attributeValue,\n image: action.data?.image ?? null,\n title: action.data?.title,\n price: action.data?.price,\n }\n }\n }\n \n \n case \"updateSets\":\n return{\n ...state,\n sets: {\n ...state.sets,\n [action.data?.product_id]:{\n ...state.sets?.[action.data?.product_id],\n [action.data.key]: {\n ...state.sets?.[action.data.product_id]?.[action.data?.key],\n ...action?.data\n }\n }\n }\n }\n\n\n case \"updateAddons\":\n return{\n ...state,\n addons:{\n ...state.addons,\n [action.data?.product_id]: {\n ...state.addons?.[action.data?.product_id],\n [action.data.key]: {\n ...state.addons?.[action.data?.product_id]?.[action.data.key],\n attributeValue: action.data?.attributeValue,\n image: action.data?.image ?? null,\n title: action.data?.title,\n price: action.data?.price\n }\n }\n }\n }\n\n\n\n case \"updateCart\":\n return{\n ...state,\n cart:{\n ...state.cart,\n [action.data?.product_id]: {\n ...state.cart?.[action.data?.product_id],\n [action.data.key]: {\n ...state.cart?.[action.data?.product_id]?.[action.data.key],\n attributeValue: action.data?.attributeValue,\n }\n }\n }\n }\n \n\n case \"updateSetProductQuantity\":\n return{\n ...state,\n sets:{\n ...state.sets,\n products: {\n ...state.sets?.products,\n [action.data?.product_id]: {\n ...state.sets?.products?.[action.data?.product_id],\n quantity: action.data?.qty\n }\n }\n }\n }\n\n \n\n case \"setErrorAttributes\":\n return{\n ...state,\n errorAttributes: action.data\n }\n \n \n default: return state;\n }\n })","\"use client\"\n\nimport { useReducer, createContext } from 'react';\nimport { ProductOptionReducer, InitialState } from './ProductOptionReducer';\n\nexport const ProductOptionContext = createContext();\n\n// Create our Provider with our Reducer as our state manager\nexport const ProductOptionContextProvider = props => {\n const [state, dispatch] = useReducer(ProductOptionReducer, InitialState);\n \n return (\n \n {props.children}\n \n );\n}\n","import { fabricOptions } from \"lib/Constants/fabricOptions\";\n\n\n/** -------------------------------\n * PDP/PIP Utility Helper Methods\n * Call upon us when needed\n---------------------------------- */\n\n\n// creates the trade discount based on the % indicated in the product\nexport function getTradePrice(totalUpCharges, trade_discount = 0){\n const tradeDiscount = !!trade_discount ? trade_discount : 0;\n const discount = parseInt(tradeDiscount)/100\n const tradePrice = totalUpCharges - (totalUpCharges * discount);\n\n return tradePrice;\n}\n\n\n\n\n\n// Put No Thanks swatch first in the swatch list\nexport function noThanksFirst(swatches){\n const noThanks = swatches.find(swatch => swatch?.label && [\"thank\", \"Not\"].some(word => swatch?.label.toString().includes(word)))\n\n\n if( noThanks ){\n return [\n noThanks,\n ...swatches.filter(swatch => ![\"No \", \"Not\"].some(word => swatch?.label.toString().toLowerCase().includes(word.toLowerCase())))\n ];\n\n \n }else {\n return swatches\n }\n}\n\n\n\n\n// Sort optionally by 4 factors\nexport function sortSwatchesByThenBy(swatches = [], by, then, thenAgain, finallyBy){\n const compare = (a, b) => (a > b) - (a < b);\n\n return swatches.sort((a, b) => {\n return compare(a[by], b[by]) || \n compare(a[then], b[then]) || \n compare(a[thenAgain], b[thenAgain]) || \n compare(a[finallyBy], b[finallyBy])\n })\n}\n\n\n\n\n\n\n\n/**\n * build options to show and set in options context\n * @param {array} options \n * @returns options object\n */\n\nexport function buildOptions(options){\n const obj = {};\n\n if( Array.isArray(options) && options.length ){\n options.forEach((option, index) => {\n obj[option?.display_name] = {\n index: index,\n attribute: option?.option_group_id,\n attributeValue: null\n }\n });\n }\n\n return obj;\n}\n\n\n\n\n\n\n\n/**\n * build global set options to show and set in options context\n * @param {array} setOptions \n * @returns \n */\n\nfunction buildSetGlobalOptions(setOptions){\n const obj = {}\n\n setOptions.forEach((option, index) => {\n obj[option.product_id] = {\n ...obj[option.product_id],\n [option.display_name]: {\n index: index,\n attribute: option.option_group_id,\n attributeValue: null,\n variant_id: option.variant_id,\n product_id: option.product_id\n }\n }\n });\n\n\n return obj;\n}\n\n\n\n\n\n/**\n * Check for selected options\n * @param {string} type \n * @param {array} options \n * @param {string} product_id \n * @returns \n */\n\nfunction hasUpCharges({ type, options, product_id, state }){\n if( type === \"sets\" ){\n return options.some(option => state.sets?.[product_id]?.[option?.display_name]?.attributeValue !== null )\n\n }else if( type === \"options\" ){\n return options.some(option => state?.options?.[option?.display_name]?.attributeValue !== null )\n }\n}\n\n\n\n\n/**\n * Get the JSON Object to send to cart\n * @param {string} type - define the type of object\n * @param {string} qty \n * @param {string} productId \n * @param {string} variantId\n * @param {object} options\n * @returns JSON Object\n*/\n\nfunction getCartBody(type, \n { \n qty, \n productId, \n variantId, \n options = {}, \n customerId = 0\n }\n){\n \n if( type === \"cartBody\" ){\n const body = {\n \"customer_id\": parseInt(customerId),\n \"line_items\": [\n {\n \"quantity\": qty,\n \"product_id\": productId,\n \"variant_id\": variantId,\n }\n ]\n }\n\n if( Object.values(options).length ){ \n body.line_items[0][\"option_selections\"] = Object.values(options).map(item => {\n return {\n \"option_id\": item.attribute,\n \"option_value\": item.attributeValue,\n \"value_id\": item.attributeValue,\n \"name_id\": item.attributeValue\n }\n })\n }\n\n return body;\n\n \n }else if( type === \"itemBody\"){\n return {\n \"customer_id\": parseInt(customerId),\n \"line_item\": {\n \"quantity\": qty,\n \"product_id\": productId,\n \"variant_id\": variantId,\n }\n }\n }\n \n}\n\n\n\n\n\n\n /**\n * check if we can set the swatch request\n * @param {array} options \n * @returns boolean\n */\n\n export function canRequestSwatchChecker(options){\n let canRequest = false\n\n for (let i = 0; i < options.length; i++) {\n if( !fabricOptions.every(value => value !== options[i].display_name) ){\n canRequest = true;\n break;\n } \n }\n\n return canRequest;\n}\n\n\n\n\n\n\n\n\n/**\n * \n * @param {string} contextState \n * @returns - context string for product option reducer\n */\n\nfunction getUpdateReducerName(contextState){\n switch(contextState){\n case \"options\": return \"updateOptions\";\n case \"sets\": return \"updateSets\";\n case \"addons\": return \"updateAddons\"\n case \"cart\": return \"updateCart\"\n default: break;\n }\n}\n\n\n\n\n/**\n * Calculates product set total + any options added\n * @param {array} sets - set options array from context\n * @param {string} excludeGlobal - the actual set product id we are using for the global option\n * @param {number} qty - # of set of products (products in the set * qty)\n * @returns number\n */\n\nfunction calculateSetUpCharges({ sets, excludeGlobal, qty = 1 }){\n const totals = [];\n\n // Add Products\n Object.values(sets.products).forEach(product => {\n totals.push((product.price ?? 0) * product.quantity)\n })\n\n // add options\n const newSets = { ...sets };\n\n delete newSets.products;\n\n Object.keys(newSets).forEach(key => {\n if( key !== excludeGlobal ){\n const upCharges = Object.values(newSets[key]).map(option => option?.price ?? 0)\n const totalUpCharges = upCharges.reduce((prev, curr) => prev + curr);\n\n totals.push(totalUpCharges * qty)\n }\n })\n\n return totals.reduce((prev, curr) => prev + curr);\n}\n\n\n\n\n\n/**\n * Calculates product total + any options added\n * @param {number} price - product price\n * @param {number} qty - # of products\n * @param {array} options - options array from context\n * @returns number\n */\n\nfunction calculateUpCharges({ price, qty, options }){\n const upCharges = options.map(item => item?.price ?? 0)\n const totalUpCharges = upCharges.reduce((prev, curr) => prev + curr);\n\n return (totalUpCharges + price) * qty\n}\n\n\n\n\n\n\n/**\n * Validates product options\n * @param {Object} stateOptions - options array from context\n * @returns boolean\n */\n\nfunction validateOptions(stateOptions){\n if( stateOptions.hasOwnProperty(\"products\") ){ \n delete stateOptions.products \n }\n\n const nonValid = Object.keys(stateOptions).filter(opt => stateOptions[opt].attributeValue === null);\n\n return nonValid.map(item => {\n return { display_name: item }\n });\n}\n\n\n\n\n\n\n\n/**\n * \n * @param {object} obj \n * @returns \n */\n\nfunction getRatingPercent(obj) {\n const scoreByPercent = (obj) => {\n const total = Object.values(obj).reduce((a, b) => a + b, 0);\n\n let per = {}\n Object.keys(obj).map((key) => { \n per[key] = ((obj[key]/total)*100).toFixed()\n }\n )\n return per;\n }\n\n return scoreByPercent(obj); \n}\n\n\n\nexport{\n buildSetGlobalOptions,\n hasUpCharges,\n getCartBody,\n calculateSetUpCharges,\n calculateUpCharges,\n validateOptions,\n getUpdateReducerName,\n getRatingPercent,\n}","import React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport Link from 'next/link';\n\nimport Style from './Alert.module.scss';\nimport utils from 'styles/globals/utils.module.scss';\n\n\nfunction Alert({ color, className, href, title, children, center, noMargin }){\n \n return (\n
\n {href ? \n \n {children}\n \n :\n <>\n {children}\n \n }\n
\n );\n}\n\n\nAlert.propTypes = {\n center: PropTypes.bool,\n color: PropTypes.string,\n noMargin: PropTypes.bool,\n href: PropTypes.string,\n title: PropTypes.string,\n className: PropTypes.string,\n children: PropTypes.any\n};\n\n\nexport default Alert;","import { IconClose } from 'components/icons/IconClose';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport Style from './CloseBtn.module.scss'\n\n\nfunction CloseBtn({ \n shouldClose = () => null, \n className = \"\", \n noFlex = false,\n width = 30,\n height = 30 \n}){\n\n return(\n \n )\n}\n\nCloseBtn.propTypes = {\n shouldClose: PropTypes.func.isRequired,\n className: PropTypes.string,\n noFlex: PropTypes.bool\n}\n \nexport default CloseBtn","\nexport function IconAlertTriangle(props){\n return(\n \n \n \n \n \n )\n}","\n\n\n/**\n * These can be swatch ordered\n */\n\nexport const fabricOptions = [\n \"Select Head Cushion Fabric\",\n \"Select Canopy\",\n \"Select Optional Cushions\",\n \"Select Optional Cushion\",\n \"Select Fabric\",\n \"Select Cushion\",\n \"Select Throw Pillows Fabric\",\n \"Select Sling\", \n \"Select Sling Fabric\", \n \"Select Base Cushion\", \n \"Select Back Cushion\"\n];","import axios from 'axios';\n\n// axios instance with a dynamic base URL\nconst createApiInstance = (apiURL) => {\n return axios.create({\n baseURL: apiURL\n});\n};\n\n// Default Authenteak API base URL\nconst API = createApiInstance(process.env.NEXT_PUBLIC_api_endpoint + '/api');\n\n// proxy API base URL\nconst teakAPI = createApiInstance(process.env.NEXT_PUBLIC_siteUrl);\n\nexport { teakAPI, API };\n","/**\n * Get Url for logged in checkout \n * @param {int} customerId \n * @param {string} checkoutUrl\n * @returns {string} LoginUrl\n */\n\nimport { v4 as uuidv4 } from \"uuid\";\nimport { teakAPI } from 'services/AuthenteakApi';\n\n\nexport default function GetLoggedJwtToken(customerId, checkoutUrl){\n const clientId = process.env.NEXT_PUBLIC_bigCommerce_clientId;\n const clientSecret = process.env.NEXT_PUBLIC_bigCommerce_clientSecret;\n const storeHash = process.env.NEXT_PUBLIC_bigCommerce_storeHash;\n const storeUrl = process.env.NEXT_PUBLIC_checkoutUrl;\n const dateCreated = Math.round((new Date()). getTime() / 1000);\n \n const message = {\n \"iss\": clientId,\n \"iat\": dateCreated,\n \"jti\": uuidv4(),\n \"operation\": \"customer_login\",\n \"store_hash\": storeHash,\n \"customer_id\": customerId,\n \"checkout_url\": storeUrl,\n \"redirect_to\": checkoutUrl\n }\n\n const payload = {\n message: message,\n clientSecret: clientSecret,\n algorithm: 'HS256'\n }\n\n return teakAPI.post(\"/api/teakAPI/generateJwtToken\", payload);\n\n}\n","import GetLoggedJwtToken from 'services/bigcommerce/GetLoggedJwtToken';\nimport axios from 'axios';\n\n\nexport async function getCustomerCheckoutUrl(cartData){\n return axios.post(`/api/bigcommerce/cart/redirect_urls/${cartData?.id}`)\n .then( async (response) => {\n const newCheckoutUrl = response?.data?.data?.checkout_url;\n\n await GetLoggedJwtToken(cartData?.customer_id, newCheckoutUrl)\n .then(response => {\n const jwtToken = response?.data?.token;\n const loggedInCheckoutUrl = process.env.NEXT_PUBLIC_checkoutUrl + `/login/token/${jwtToken}`;\n\n window.location.href = loggedInCheckoutUrl;\n })\n .catch(err => {\n console.log(err)\n }); \n \n })\n .catch(err => {\n console.log(err)\n })\n}","\"use client\"\n\nimport CloseBtn from \"components/forms/CloseButton\";\nimport Style from \"./OfferModal.module.scss\";\nimport React, { useEffect } from \"react\";\nimport clsx from \"clsx\";\n\n\nconst OfferModal = React.forwardRef(({ \n children, \n canClose = true , \n className\n}, ref ) => {\n\n useEffect(() => {\n function preventClose(e){\n if( e.key === \"Escape\" && !canClose ){\n e.preventDefault()\n }\n }\n\n if(ref?.current) ref.current.addEventListener(\"keydown\", (e) => preventClose(e))\n\n return () => {\n if(ref?.current) ref?.current.removeEventListener(\"keydown\", (e) => preventClose(e))\n }\n\n }, [ ref ])\n\n\n return(\n \n {canClose && (\n ref.current.close()}\n />\n )}\n\n {children}\n \n )\n})\n\nOfferModal.displayName = 'OfferModal';\n\nexport default OfferModal;","import { IconLogoOcean } from 'components/icons/IconLogoOcean';\nimport Style from '../Plans/Highlights/PlanHighlights.module.scss';\nimport ExtendLogo from 'thirdparty/Extend/icons/ExtendLogo';\nimport { IconPlus } from 'components/icons/IconPlus';\nimport clsx from 'clsx';\n\n\nfunction AuthenteakExtendLogo({ className }){\n return( \n
\n \n \n \n
\n )\n}\n\nexport default AuthenteakExtendLogo;","\"use client\"\n\nimport Style from \"./Plans.module.scss\";\nimport { useRef } from \"react\";\nimport OfferModal from \"../OfferModal\";\nimport OfferHighlights from \"./Highlights\";\n\n\n\nfunction ExtendHelpText({ text, cta }){\n const modal = useRef(null)\n\n return(\n <>\n \n How does it work?  \n \n \n \n\n \n \n \n \n )\n}\n\nexport default ExtendHelpText;","\n\nfunction IconExtendCheck(props){\n return(\n \n \n \n \n \n \n )\n}\n\nexport default IconExtendCheck;","import Style from './PlanHighlights.module.scss';\nimport IconExtendCheck from 'thirdparty/Extend/icons/IconExtendCheck';\nimport { useMemo } from 'react';\nimport range from 'lib/Utils/range';\nimport AuthenteakExtendLogo from '../AuthenteakExtendLogo';\n\n\nfunction OfferHighlights({ text, cta = \"#\" }){\n const points = useMemo(() => {\n const totalPoints = range(1, 4)\n\n return totalPoints.map((index) => {\n if( index >= 4 ) return null\n\n return(\n
\n \n\n
\n {text?.[`benefitTitle${index}`] }\n
\n
\n {text?.[`benefitBody${index}`] }\n
\n
\n )\n })\n\n }, [ text ])\n\n\n return(\n
\n
\n \n\n

\n {text?.headline ?? \"Get Peace of Mind with Product Protection from Extend\"}\n

\n
\n\n
\n {points}\n
\n\n \n
\n )\n}\n\nexport default OfferHighlights;","// import IconExtend from \"thirdparty/Extend/icons/IconExtend\";\nimport Style from \"./OfferButton.module.scss\";\nimport { useContext, useRef } from \"react\";\nimport Skeleton from \"components/feedback/Skeleton\";\nimport { OfferContext } from \"thirdparty/Extend/context/OfferContext\";\nimport clsx from \"clsx\";\nimport { ProductOptionContext } from \"components/applications/pip/contexts/ProductOptionContext\";\n\nfunction OfferButton({ \n contract = null, \n price = null, \n planPrice = null,\n id = \"\", \n isLoading = false,\n sku = \"\",\n qty = 1,\n leadToken = null,\n isDisabled = false\n}){\n const [ state, dispatch ] = useContext(OfferContext);\n const [ productOptionState, productDispatch ] = useContext(ProductOptionContext);\n\n const termLength = useRef(contract?.termLength/12);\n const planSku = useRef(leadToken ? `${id};xtd;LEAD::${leadToken}::MAX::${qty}` : `${id};xtd;${sku}`)\n\n function add(){\n productDispatch({\n type: \"haveProtectionPlan\",\n data: planSku.current\n })\n\n dispatch({\n type: \"setPlan\",\n data: {\n id,\n name: `Extend Protection Plan - ${termLength.current} years`,\n price: price/100,\n sku: planSku.current,\n qty,\n product_sku: sku\n }\n })\n }\n\n return(\n
  • \n \n
  • \n )\n}\n\nexport default OfferButton;","// import IconExtend from \"thirdparty/Extend/icons/IconExtend\";\nimport Style from \"./OfferButton.module.scss\";\nimport { useContext } from \"react\";\nimport { IconClose } from \"components/icons/IconClose\";\nimport { OfferContext } from \"thirdparty/Extend/context/OfferContext\";\nimport clsx from \"clsx\";\n\n\nfunction DeclineProtection({ id = \"decline\", sku, onClick }){\n const [ state, dispatch ] = useContext(OfferContext);\n \n function decline(){\n onClick()\n \n dispatch({\n type: \"setPlan\",\n data: {\n id,\n product_sku: sku\n }\n })\n }\n\n\n return(\n
  • \n \n
  • \n )\n}\n\n\n\nexport default DeclineProtection;","import Skeleton from \"components/feedback/Skeleton\";\nimport Style from \"./PlanPreLoader.module.scss\";\n\nfunction LoadingPlans(){\n return(\n
    \n \n \n \n \n
    \n )\n}\n\nexport default LoadingPlans;\n","\"use client\"\n\nimport Style from \"./Plans.module.scss\";\nimport OfferButton from \"../OfferButton\";\nimport { useContext, useEffect, useState } from \"react\";\nimport formatPrice from \"lib/Utils/formatPrice\";\nimport DeclineProtection from \"../OfferButton/DeclineProtection\";\nimport { OfferContext } from \"thirdparty/Extend/context/OfferContext\";\nimport { useExtendCart } from \"thirdparty/Extend/hooks/useExtendCart\";\nimport LoadingPlans from \"./preloaders/LoadingPlans\";\nimport { useRouter } from \"next/navigation\";\nimport useButtonFeedback from \"components/forms/Button/useButtonFeedback\";\nimport clsx from \"clsx\";\nimport Loader from \"components/feedback/Loader\";\nimport Alert from \"components/feedback/Alert\";\nimport Button from \"components/forms/Button\";\n\n\nfunction Plans({ \n sku, \n context,\n autoAddPlan = false,\n plans,\n leadToken = null\n}){\n const [ state, dispatch ] = useContext(OfferContext);\n const extendCart = useExtendCart()\n const router = useRouter()\n const feedback = useButtonFeedback()\n const [ declined, setDeclined ] = useState(false)\n\n function undo(){\n setDeclined(false)\n\n dispatch({\n type: \"setPlan\",\n data: {\n id: null,\n product_sku: sku\n }\n })\n }\n\n\n useEffect(() => {\n if( autoAddPlan && state?.selected[sku]?.sku ){\n feedback.setLoading(true)\n\n extendCart.add({\n planSku: sku,\n name: state?.selected[sku]?.name,\n sku: state?.selected[sku]?.sku,\n price: state?.selected[sku]?.price,\n qty: context?.qty\n \n },(response) => {\n if( !window && response?.data ){ \n router.push(`/cart?id=${response?.data?.id}`) \n }\n\n const urlParams = window.location.search\n\n // if we are still on the PDP then push them to cart to add more plans\n if( urlParams.includes(\"product=\") && urlParams.includes(\"id=\") ){\n router.push(`/cart?id=${response?.data?.id}`)\n\n }else{\n router.refresh()\n }\n })\n }\n\n }, [ \n state?.selected[sku]?.sku,\n autoAddPlan,\n sku\n ])\n\n\n return(\n \n )\n}\n\n\n\nexport default Plans;","\n\n\nexport const initialState = {\n selected: {}\n}\n\nexport const OfferReducer = (state, action) => {\n switch(action.type){\n case \"init\":\n return {\n ...state,\n ...action.data\n }\n\n case \"setPlan\":\n const newState = { ...state.selected };\n delete newState[action?.data?.product_sku];\n\n return {\n ...state,\n selected: {\n ...newState,\n [action.data?.product_sku]: action.data\n }\n }\n\n default:\n return state;\n }\n}\n\n","\"use client\"\n\nimport { useReducer, createContext } from 'react';\nimport { initialState, OfferReducer } from './OfferReducer';\n\n\nexport const OfferContext = createContext();\n\n// Create our Provider with our Reducer as our state manager\nexport const OfferContextProvider = props => {\n const [state, dispatch] = useReducer(OfferReducer, initialState);\n\n return (\n \n {props.children}\n \n );\n};\n\n","\"use client\"\n\nimport atcCustomProduct from \"components/applications/cart/helpers/atcCustomProduct\";\nimport { removeCartItem } from \"components/applications/cart/helpers/Cart.helpers\";\nimport { useCart } from \"components/applications/cart/hooks/useCart\";\nimport { useRouter } from \"next/navigation\";\nimport { LocalStorage, storageKeys } from \"services/LocalStorage.service\";\n\n\nexport function useExtendCart() {\n const { itemMutation } = useCart()\n const router = useRouter()\n const errorCallback = () => null\n\n\n function reload(){\n setTimeout(() => router.refresh(), 1000)\n }\n\n\n /**\n * \n * @param {id} param0 \n */\n function updateCartPlan({ \n id, \n cartId, \n name, \n sku, \n qty, \n price, \n callback = () => null \n }){\n const productBody = {\n custom_items: [{\n sku,\n name,\n quantity: qty,\n list_price: price,\n }]\n }\n\n itemMutation.mutate({\n type: \"updateItem\",\n id,\n productBody,\n cartId\n }, {\n onSettled: (data) => callback(data),\n onSuccess: (data) => callback(data)\n })\n }\n\n\n\n\n\n /**\n * Remove Extend Plan from cart\n * @param {string} id - cart product id\n * @param {string} cartId - cart id\n * @param {function} callback - function to run after successful removal \n * @param {boolean} refresh - should we refresh the page after removal\n */\n\n function removePlanFromCart({ \n id, \n cartId, \n callback = () => null, \n refresh = true \n }) {\n itemMutation.mutate({\n productId: id,\n cartId,\n type: \"removePlan\",\n refresh\n }, {\n onSettled: () => callback(),\n onSuccess: () => callback()\n })\n }\n\n\n\n\n\n /**\n * Removes both the product and it's attached plan from the cart\n * @param {string} planCartId\n * @param {string} cartId\n * @param {string} id\n * @param {string} product_id \n */\n\n function removeProductAndPlanFromCart({ \n planCartId, \n cartId, \n id, \n product_id \n }) {\n removePlanFromCart({\n cartId,\n id: planCartId,\n refresh: false,\n callback: () => {\n removeCartItem({\n id,\n cartId,\n itemMutation,\n product_id,\n callback: () => reload()\n })\n }\n })\n }\n\n\n\n\n\n /**\n * Add Extend plan to cart\n * @param {string} - product sku \n * @param {string} - product name\n * @param {number} - product quantity\n * @param {number} - product price\n * @param {string} - cart id (if we need to add it to a specific cart)\n * @param {boolean} - buy now (if we want to redirect to checkout after adding)\n * @param {function} - callback function to run after successful addition \n */\n\n async function add(\n { \n sku, \n name, \n qty, \n price, \n cartId = null, \n buyNow = false \n }, callback = () => null\n ){\n atcCustomProduct({\n productData: {\n sku,\n name,\n quantity: qty,\n list_price: price\n },\n buyNow,\n cartId,\n itemMutation,\n errorCallback,\n confirmationCallback: (data) => callback(data)\n })\n }\n\n\n\n\n\n\n /**\n * Buy Protection Plan Now\n * @param {string} sku,\n * @param {string} name,\n * @param {number} qty,\n * @param {number} price,\n * @param {string} cartId\n * @returns redirect to checkout \n */\n\n function buyNow({ \n sku, \n name, \n qty, \n price, \n cartId = null \n }) {\n add({ sku, name, qty, price, cartId, buyNow: true }, (response) => {\n if( response?.data && window ){\n window.location.href = response.data?.redirect_urls?.checkout_url\n }\n })\n }\n\n\n\n\n /**\n * Check to see if the current cart has a plan with the same sku in the custom items array\n * @param {string} sku \n * @returns object\n */\n\n function checkForCurrentPlans(sku) {\n const currentCartPlans = LocalStorage.getStorage(storageKeys.cart)\n\n // if no cart\n if (!currentCartPlans) return null;\n\n const matchedPlan = currentCartPlans.line_items.custom_items.filter(item => item.sku.includes(sku))\n\n if (Array.isArray(matchedPlan) && matchedPlan.length) {\n return {\n id: matchedPlan[0].id,\n cartId: currentCartPlans.id\n }\n\n } else {\n return null\n }\n }\n\n\n\n\n /**\n * need to check cart to see if there is already an item for this product.\n * if so we need to remove it and add the new one.\n * @param {string} name \n * @param {string} sku\n * @param {number} qty\n * @param {number} price\n * @param {string} planSku\n * @param {function} callback\n */\n\n async function addToCart({\n name,\n sku,\n qty,\n price,\n planSku,\n callback = () => null\n }) {\n \n const havePlanAlready = checkForCurrentPlans(planSku)\n\n if (havePlanAlready && Object.keys(havePlanAlready).length) {\n updateCartPlan(\n {\n id: havePlanAlready.id,\n cartId: havePlanAlready.cartId,\n name, \n sku, \n qty, \n price\n }, \n (data) => {\n callback(data)\n refresh()\n }\n )\n\n } else {\n add({ name, sku, qty, price }, callback)\n }\n }\n\n\n\n\n return {\n add,\n buyNow,\n reload,\n addToCart,\n itemMutation,\n updateCartPlan,\n removePlanFromCart,\n removeProductAndPlanFromCart\n }\n}","import { createServerReference, callServer, findSourceMapURL } from 'private-next-rsc-action-client-wrapper'\nexport const getExtendOffer = /*#__PURE__*/createServerReference(\"40dd570fb441d6d3dc766d7b8e1ea3d7ebf11869a4\", callServer, undefined, findSourceMapURL, \"getExtendOffer\")","\"use client\"\n\nimport { useEffect, useState } from \"react\";\nimport { getExtendOffer } from \"../services/Extend.service\";\n\n\nexport function useGetExtendPlans({ context, sku, category, price }){\n const [ plans, setPlans ] = useState(null)\n const [ isLoading, setIsLoading ] = useState({\n buttons: false,\n addPlan: false\n });\n\n\n useEffect(() => {\n if( !context?.price ) return;\n\n setIsLoading({\n ...isLoading,\n buttons: true\n });\n\n getExtendOffer({ sku, category, price: context?.price ?? price }).then(resData => {\n const list = [].concat(resData?.plans?.adh, resData?.plans?.base);\n const marketing = resData?.marketing?.adh ?? resData.marketing?.base\n\n setPlans({\n marketing,\n list,\n qty: context?.qty\n })\n\n setTimeout(() => setIsLoading({ ...isLoading, buttons: false }), 2000);\n });\n\n }, [\n context?.price,\n context?.qty\n ])\n\n\n return{\n ...plans,\n isLoading\n }\n}","\nfunction ExtendLogo(props){\n return(\n \n \n \n \n \n )\n}\n\nexport default ExtendLogo;","\n\nfunction IconExtend(props){\n const { fill } = props;\n\n return(\n \n \n \n \n )\n}\n\nexport default IconExtend;","\nfunction ga4EventData(prodData, event_type) {\n\n // Send to GA4 ( 10 item-scoped custom dimensions for standard properties)\n\n switch (event_type) {\n \n // View cart. begin checkout\n case 'view_cart':\n case 'begin_checkout': \n const cartItems = prodData?.line_items?.physical_items.map((item,i) => {\n const options = {};\n let cartItem = {}\n const disc_amount = item?.discount_amount || (item?.discounts).reduce((n, {discounted_amount}) => n + discounted_amount, 0);\n \n if( Array.isArray(item?.options) ){\n item?.options.length && item?.options.map((opt, i) => {\n options[`option_selected${i+1}`] = `${opt.name} : ${opt.value}` //custom dim\n });\n \n cartItem = {\n item_id: item?.product_id,\n item_name: item?.name,\n index: i,\n discount: disc_amount, \n coupon: ((prodData?.coupons).find(obj => obj.discounted_amount === disc_amount)?.code) ?? \"\",\n item_variant: item?.variant_id,\n price: item?.sale_price || item?.list_price || item?.original_price,\n quantity: item?.quantity,\n //item_category: prodData?.categories,\n // item_brand: prodData?.brand?.name,\n }\n }\n\n return { ...cartItem, ...options}\n \n })\n \n const gift_certificates = prodData?.line_items?.gift_certificates.map((item,i) => { \n\n return {\n item_id: `gift_card_${item.amount}`,\n item_name: `Gift Card $${item.amount}`,\n index: i,\n price: item?.amount,\n quantity: item?.quantity,\n item_category: \"giftCertificates\",\n item_category2: `${item.name}`,\n item_variant: item?.id //the id of the item that comes from BC\n }\n })\n\n const extendItems = prodData?.line_items?.custom_items.map((item,i) => { \n \n return {\n item_id: item?.sku,\n item_name: item?.name,\n index: i,\n price: item?.extended_list_price || item?.list_price,\n quantity: item?.quantity,\n item_variant: item?.id //the id of the item that comes from BC\n }\n \n })\n\n const cartObj = {\n \"currency\": prodData?.currency?.code,\n \"value\": prodData?.cart_amount,\n \"items\": [ ...cartItems, ...extendItems, ...gift_certificates] \n }\n return cartObj; \n break;\n \n case 'view_item':\n\n let prodItems = {items:[]};\n\n if (prodData?.product_sets !== null && Object.keys(prodData?.product_sets)) {\n Object.entries(prodData?.product_sets).forEach(([id, item],i) => {\n\n prodItems['items'] = [...prodItems['items'], {\n item_id: id || item?.sku,\n item_name: item?.name,\n index: i,\n item_variant: item?.variant_id,\n price: item?.price,\n quantity: item?.quantity,\n item_category: (prodData.categories).map(c => c.name).join(', '),\n item_category2: prodData?.family_code,\n item_brand: prodData?.brand?.name,\n item_list_name: prodData?.name,\n item_list_id: prodData?.sku\n }]\n\n })\n \n }\n else {\n const itemCat = {};\n\n prodItems['items'] = [...prodItems['items'], {\n item_id: prodData?.product_id,\n item_name: prodData?.name,\n index: 0,\n item_variant: prodData?.variant_id,\n price: prodData?.price || prodData?.sale_price || prodData?.retail_price,\n quantity: 1,\n item_category2: prodData?.family_code,\n item_category: (prodData.categories).map(c => c.name).join(', '),\n item_brand: prodData?.brand?.name \n }]\n\n }\n\n const viewItem = {\n \"currency\": \"USD\",\n \"value\": prodData?.sale_price || prodData?.price || prodData?.retail_price, \n ...prodItems \n }\n\n return viewItem; \n break;\n \n default:\n break;\n\n } \n\n}\n\n\nexport {\n ga4EventData\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"optionsBlock\":\"OptionsPreloader_optionsBlock__qZHAp\",\"planBlock\":\"OptionsPreloader_planBlock__J_RdR\",\"fadeIn\":\"OptionsPreloader_fadeIn__nscTc\",\"block\":\"OptionsPreloader_block__94SA6\",\"name\":\"OptionsPreloader_name__ebaH_\",\"text\":\"OptionsPreloader_text__9Swvs\",\"options\":\"OptionsPreloader_options__f5Yfi\",\"row\":\"OptionsPreloader_row__Ua74z\",\"option\":\"OptionsPreloader_option__88fkf\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"block\":\"Alert_block__XjxtA\",\"color__ice\":\"Alert_color__ice__ZTtxo\",\"color__dove\":\"Alert_color__dove__8IA9J\",\"color__green\":\"Alert_color__green__dupVV\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"block\":\"CloseBtn_block__QBJBV\",\"noFlex\":\"CloseBtn_noFlex__lt8nr\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"block\":\"OfferButton_block__oaz7G\",\"item\":\"OfferButton_item__V_eyM\",\"period\":\"OfferButton_period__2_cn0\",\"price\":\"OfferButton_price__868pO\",\"control\":\"OfferButton_control__mDwV0\",\"selected\":\"OfferButton_selected__60TDs\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"arrow\":\"OfferModal_arrow__PyZHf\",\"popover\":\"OfferModal_popover__f_Hfw\",\"heading\":\"OfferModal_heading__5DGOh\",\"remodal-overlay-opening-keyframes\":\"OfferModal_remodal-overlay-opening-keyframes__6yA1c\",\"statusModal\":\"OfferModal_statusModal__mCGyJ\",\"closeBtn\":\"OfferModal_closeBtn__3xQsZ\",\"logos\":\"OfferModal_logos__1MP_I\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"heading\":\"PlanHighlights_heading__KfP7T\",\"term\":\"PlanHighlights_term__iexV9\",\"block\":\"PlanHighlights_block__SYTlH\",\"list\":\"PlanHighlights_list__SBz8j\",\"logos\":\"PlanHighlights_logos__XpVtr\",\"logo\":\"PlanHighlights_logo__MLaLR\",\"plus\":\"PlanHighlights_plus__emt5b\",\"header\":\"PlanHighlights_header__Rs1g1\",\"description\":\"PlanHighlights_description__49xow\",\"item\":\"PlanHighlights_item__LfzVm\",\"itemIcon\":\"PlanHighlights_itemIcon__BWONj\",\"footer\":\"PlanHighlights_footer__W_Raq\",\"footerLink\":\"PlanHighlights_footerLink__rD3pK\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"heading\":\"Plans_heading__Az136\",\"block\":\"Plans_block__7fSD_\",\"list\":\"Plans_list__K_NpP\",\"helpText\":\"Plans_helpText__DSzLW\",\"icon\":\"Plans_icon__FdUGX\",\"learnMore\":\"Plans_learnMore__Nk8cG\",\"header\":\"Plans_header__WiB8T\",\"logo\":\"Plans_logo__FiLhA\",\"headingText\":\"Plans_headingText__8h_kS\",\"atcPlanLoading\":\"Plans_atcPlanLoading__qelFu\",\"loader\":\"Plans_loader__Fo4ow\",\"undo\":\"Plans_undo__Kit8F\",\"declined\":\"Plans_declined__xJWsn\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"block\":\"PlanPreLoader_block__IZnrn\",\"loadingPlans\":\"PlanPreLoader_loadingPlans__AN7Gk\",\"attachedTextLoader\":\"PlanPreLoader_attachedTextLoader__VHBil\",\"attachedLoader\":\"PlanPreLoader_attachedLoader__XVeTu\",\"attachedLoaderText\":\"PlanPreLoader_attachedLoaderText__SXcQj\"};"],"names":["atcCustomProduct","cartId","productData","buyNow","itemMutation","errorCallback","confirmationCallback","sku","name","quantity","list_price","mutate","type","productBody","custom_items","onSuccess","data","response","status","onError","err","beginCheckoutAnalytics","cartData","userId","prodCat","setRejoinerCheckout","trackProductsConverted","checkoutData","ga4EventData","sendGTMEvent","event","ecommerce","user_id","console","log","cartAnalytics","viewCart","InitialState","price","qty","options","autoNoThanks","sets","cart","atcStatus","setReceiverControl","addons","errorAttributes","customSelectIsOpen","ref","readyToAddToCart","hoverImage","reviewsRef","protectionPlans","state","action","id","offsetTop","products","key","attributeValue","image","title","product_id","createContext","props","dispatch","useReducer","ProductOptionReducer","ProductOptionContext","Provider","value","children","getTradePrice","totalUpCharges","trade_discount","parseInt","discount","noThanksFirst","swatches","noThanks","find","swatch","label","some","word","toString","includes","toLowerCase","sortSwatchesByThenBy","by","then","thenAgain","finallyBy","compare","a","b","sort","buildOptions","obj","Array","isArray","length","forEach","option","index","display_name","attribute","option_group_id","buildSetGlobalOptions","setOptions","variant_id","getCartBody","productId","variantId","customerId","body","Object","values","line_items","map","item","canRequestSwatchChecker","canRequest","i","fabricOptions","every","getUpdateReducerName","contextState","calculateSetUpCharges","excludeGlobal","totals","product","push","newSets","keys","upCharges","reduce","prev","curr","calculateUpCharges","validateOptions","stateOptions","hasOwnProperty","nonValid","filter","opt","getRatingPercent","scoreByPercent","total","per","toFixed","Alert","color","className","href","center","noMargin","div","clsx","Style","class","utils","role","Link","propTypes","PropTypes","CloseBtn","shouldClose","noFlex","width","height","button","aria-label","onClick","IconClose","IconAlertTriangle","svg","viewBox","xmlSpace","path","d","createApiInstance","axios","create","baseURL","apiURL","process","teakAPI","getCustomerCheckoutUrl","post","newCheckoutUrl","checkout_url","GetLoggedJwtToken","checkoutUrl","message","clientId","Math","dateCreated","round","Date","getTime","uuidv4","storeHash","storeUrl","clientSecret","algorithm","customer_id","jwtToken","token","loggedInCheckoutUrl","window","location","catch","OfferModal","React","canClose","useEffect","preventClose","e","preventDefault","current","addEventListener","removeEventListener","dialog","close","displayName","AuthenteakExtendLogo","IconLogoOcean","IconPlus","ExtendLogo","ExtendHelpText","text","cta","modal","useRef","span","showModal","OfferHighlights","IconExtendCheck","g","transform","fill","points","useMemo","range","dt","dd","article","header","h4","headline","dl","footer","target","OfferButton","contract","planPrice","isLoading","leadToken","isDisabled","useContext","OfferContext","productOptionState","productDispatch","termLength","planSku","li","htmlFor","selected","add","product_sku","input","disabled","strong","small","Skeleton","DeclineProtection","decline","LoadingPlans","Plans","context","autoAddPlan","plans","extendCart","useExtendCart","router","useRouter","feedback","useButtonFeedback","declined","setDeclined","useState","setLoading","urlParams","search","refresh","aside","Loader","loading","isDark","list","Button","noAnimate","size","undo","u","menu","plan","buttons","formatPrice","initialState","newState","OfferContextProvider","OfferReducer","useCart","reload","setTimeout","updateCartPlan","callback","onSettled","removePlanFromCart","addToCart","havePlanAlready","checkForCurrentPlans","currentCartPlans","LocalStorage","getStorage","storageKeys","matchedPlan","redirect_urls","removeProductAndPlanFromCart","planCartId","removeCartItem","useGetExtendPlans","category","setPlans","setIsLoading","addPlan","getExtendOffer","resData","concat","adh","base","marketing","fillRule","clipRule","IconExtend","prodData","event_type","cartItems","physical_items","cartItem","disc_amount","discount_amount","discounts","n","discounted_amount","item_id","item_name","coupon","coupons","code","item_variant","sale_price","original_price","gift_certificates","amount","item_category","item_category2","extendItems","extended_list_price","currency","cart_amount","prodItems","items","product_sets","entries","categories","c","join","family_code","item_brand","brand","item_list_name","item_list_id","retail_price"],"sourceRoot":"","ignoreList":[]}