{"version":3,"file":"static/js/eef19152424217012781.bundle.js","mappings":"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","sources":["webpack://mattressfirm/./src/Utilities/analytics/utagCaller.ts?3814","webpack://mattressfirm/./src/Utilities/select-financing-offer.tsx?5f53","webpack://mattressfirm/./src/Utilities/splitPrice.ts?0ea8","webpack://mattressfirm/./src/actions/trigger-special-synchrony-financing.action.ts?1948","webpack://mattressfirm/./src/data-actions/financing-offer-state.action.ts?9faa","webpack://mattressfirm/./src/modules/mfrm-cc-offer-modal/components/CTA-Button/CTA-Button.tsx?2aa0","webpack://mattressfirm/./src/modules/mfrm-cc-offer-modal/components/action-card.tsx?27fe","webpack://mattressfirm/./src/modules/mfrm-cc-offer-modal/mfrm-cc-offer-modal.tsx?155a","webpack://mattressfirm/./src/modules/mfrm-cc-offer-modal/mfrm-cc-offer-modal.view.tsx?44e6","webpack://mattressfirm/./lib/mfrm-cc-offer-modal/module-registration.js?c606","webpack://mattressfirm/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.string.match.js?a69e","webpack://mattressfirm/external var \"React\"?0d3b","webpack://mattressfirm/external var \"ReactDOM\"?853b"],"sourcesContent":["import { IAnalyticsConfiguration } from './clickTrack';\r\n\r\n// Interface for 3rd-party function. AKA utag.\r\ninterface ITealium {\r\n link(data: {}): void | false;\r\n view(data: {}): void | false;\r\n data(data: {}): void | false;\r\n}\r\n\r\nexport interface IPromotionConfig {\r\n event?: string | null;\r\n event_name?: string | null;\r\n search_term?: string | null;\r\n search_type?: string | null;\r\n event_category?: string | null;\r\n event_action?: string | null;\r\n event_label?: string | null;\r\n event_type?: string | null;\r\n event_noninteraction?: string;\r\n enhanced_action?: string | null;\r\n customer_email?: string | undefined;\r\n customer_phone_number?: string | undefined;\r\n first_name?: string | undefined;\r\n last_name?: string | undefined;\r\n address1?: string | undefined;\r\n address2?: string | undefined;\r\n city?: string | undefined;\r\n state?: string | undefined;\r\n zip_code?: string | undefined;\r\n order_subtotal?: string | undefined;\r\n order_currency?: string | undefined;\r\n country?: string | undefined;\r\n // productConfig?: IProductDataConfig;\r\n checkout_step?: string;\r\n checkout_option?:(string | undefined)[];\r\n checkout_type?:(string | undefined)[];\r\n product_id?: (string | undefined)[];\r\n product_name?: (string | undefined)[];\r\n product_category?: (string | undefined)[];\r\n product_brand?: (string | undefined)[];\r\n product_variant?: (string | undefined | number)[];\r\n product_price?: (string | undefined)[];\r\n product_quantity?: (string | undefined)[];\r\n product_url?: (string | undefined)[];\r\n product_size?: (string | undefined)[];\r\n product_image_url?: (string | undefined)[];\r\n core_item_flag?: string | null;\r\n funnel_type?: string | null;\r\n ga_title?: string | null;\r\n ga_location?: string | null;\r\n order_quantity?: string | null;\r\n master_customer_code?: string | null;\r\n order_number?: string | null;\r\n}\r\n\r\ninterface IProductDataConfig {\r\n product_variant?: (string | undefined)[];\r\n product_price?: (string | undefined)[];\r\n}\r\n\r\nexport interface IAnalyticsConfigurationData {\r\n productConfig?: IProductDataConfig;\r\n}\r\n\r\n\r\n// Legacy function\r\nexport const callUtag = async (objToCall: IPromotionConfig) => {\r\n void await callUtagLink(objToCall);\r\n};\r\n\r\n/**\r\n * Tealium dispatch click tracking.\r\n * @param objToCall\r\n */\r\nexport const callUtagLink = async (objToCall: IPromotionConfig | IAnalyticsConfiguration) => {\r\n try {\r\n Object.keys(objToCall).forEach(\r\n key => {\r\n if (objToCall[key] === null) {\r\n delete objToCall[key];\r\n }\r\n }\r\n );\r\n // If utag doesn't exist in the global scope, set as false.\r\n const utag: ITealium = global.hasOwnProperty('utag') ? global[\"utag\"] : false;\r\n if(utag) { utag.link(objToCall); }\r\n\r\n } catch (e) {\r\n console.log('Utag Error', e);\r\n }\r\n};\r\n\r\n/**\r\n * Tealium dispatch view tracking.\r\n * @param objToCall\r\n */\r\nexport const callUtagView = async (objToCall: {}) => {\r\n try {\r\n // If utag doesn't exist in the global scope, set as false.\r\n const utag: ITealium = global.hasOwnProperty('utag') ? global[\"utag\"] : false;\r\n if(utag) { utag.view(objToCall); }\r\n } catch (e) {\r\n console.log('utag View Error', e);\r\n }\r\n};\r\n\r\n/**\r\n * Not currently implemented.\r\n * @param objToCall\r\n * @param dataType\r\n */\r\nexport const callUtagData = ({ productConfig = {} }: IAnalyticsConfigurationData , dataType: string) => {\r\n try {\r\n // If utag doesn't exist in the global scope, set as false.\r\n const utag: ITealium = global.hasOwnProperty('utag') ? global[\"utag\"] : false;\r\n switch (dataType) {\r\n case 'data':\r\n // @ts-ignore\r\n if('utag' in window) { utag.data = {...utag.data, ...productConfig}; }\r\n break;\r\n case '_data':\r\n // @ts-ignore\r\n utag_data = {...utag_data , ...productConfig};\r\n break;\r\n default:\r\n null;\r\n }\r\n } catch (e) {\r\n console.log('Utag Error', e);\r\n }\r\n};","import { RichText } from '@msdyn365-commerce/core';\r\n\r\nimport dayjs from 'dayjs';\r\nimport tz from 'dayjs/plugin/timezone';\r\nimport utc from 'dayjs/plugin/utc';\r\nimport isBetween from 'dayjs/plugin/isBetween';\r\ndayjs.extend(tz);\r\ndayjs.extend(utc);\r\ndayjs.extend(isBetween);\r\nconst format = 'M/D/YYYY';\r\n\r\nexport interface IFinancingOffer {\r\n offerName?: string;\r\n noInterestFor: number;\r\n minPurchase: number;\r\n everydayFinancingOfferMessage: string,\r\n limitedFinancingOfferMessage: string,\r\n lowCostFinancingOfferMessage: string,\r\n cashbackFinancingOfferMessage: string,\r\n monthlyOfferDetails?: RichText;\r\n financingOfferDescription: RichText;\r\n disclaimer: RichText;\r\n offerValidStartDate?: string;\r\n offerValidEndDate?: string;\r\n specialCampaignOffer?: IFinancingOfferCampaign;\r\n checkoutDisplay?: { heading: string; details: string; specialOffer?: string},\r\n FinancingOfferDataOnPage?: RichText;\r\n cashBackPercentageAmount?: number;\r\n cashbackBannerDetails?: RichText;\r\n}\r\nexport interface ILowCostOffer {\r\n offerName?: string;\r\n maxPurchase: number;\r\n lowCostFinancingOfferMessage: string,\r\n financingOfferDescription: RichText;\r\n disclaimer: RichText;\r\n defaultNumberOfMonths: number;\r\n lowCostOfferDetailsOnCart?: RichText;\r\n}\r\n\r\n\r\nexport interface IFinancingOfferFormatted {\r\n lowCostOfferDetailsOnCart?: RichText;\r\n numOfMonths: number;\r\n costPerMonth: number;\r\n startDate?: string;\r\n endDate?: string;\r\n isLTO: boolean;\r\n monthlyOfferDetails?: RichText;\r\n minPurchase: number;\r\n lowCostFinancingOfferMessage?: string;\r\n everydayFinancingOfferMessage?: string;\r\n limitedFinancingOfferMessage?: string;\r\n cashbackFinancingOfferMessage?: string;\r\n financingOfferDescription: RichText;\r\n disclaimer: RichText;\r\n specialCampaign?: IFinancingOfferCampaign;\r\n offerName?: string;\r\n checkoutDisplay?: { heading: string; details: string; specialOffer?: string },\r\n FinancingOfferDataOnPage?: RichText;\r\n isCashBack?: boolean;\r\n cashBackPercentageAmount?: number;\r\n cashbackBannerDetails?: RichText;\r\n}\r\n\r\nexport interface IFinancingOfferCampaign {\r\n initialMonthlyAmount: number;\r\n numOfDiscountedMonths: number;\r\n campaignValidStartDate: string;\r\n campaignValidEndDate: string;\r\n enableCampaign: boolean;\r\n showEverydayFlag: boolean;\r\n}\r\n\r\nexport interface ISelectFinancingOfferData {\r\n limitedTimeFinancingOffers: IFinancingOffer[];\r\n everydayFinancingOffers: IFinancingOffer[];\r\n lowCostOffer?: ILowCostOffer[]\r\n totalPrice: number | undefined;\r\n specialFinancingOffer?: IFinancingOffer[];\r\n synchronySpecialFinancingCondition?: boolean;\r\n specialFinancingEnable?: boolean;\r\n checkoutShowEveryDayOffers?: boolean;\r\n cashbackFinancingEnable?: boolean;\r\n cashBackFinancingOffer?: IFinancingOffer[];\r\n}\r\n\r\nexport interface ICampaignRemainingCost {\r\n cost: number;\r\n months: number;\r\n}\r\n\r\nexport const getValidSpecialCampaign = (financingOffer: IFinancingOfferFormatted): IFinancingOfferCampaign | undefined => {\r\n if (\r\n financingOffer.specialCampaign &&\r\n financingOffer.specialCampaign.enableCampaign &&\r\n financingOffer.specialCampaign.initialMonthlyAmount &&\r\n financingOffer.specialCampaign.numOfDiscountedMonths &&\r\n isCampaignScheduled(financingOffer)\r\n ) {\r\n return financingOffer.specialCampaign;\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\nexport const getCampaignRemainingCost = (\r\n campaign: IFinancingOfferCampaign,\r\n financingOffer: IFinancingOfferFormatted,\r\n totalPrice: number | undefined\r\n): ICampaignRemainingCost | undefined => {\r\n if (!totalPrice) {\r\n return undefined;\r\n }\r\n\r\n const initialCost = campaign.initialMonthlyAmount * campaign.numOfDiscountedMonths;\r\n const remainingCost = totalPrice - initialCost;\r\n const remainingMonths = financingOffer.numOfMonths - campaign.numOfDiscountedMonths;\r\n const monthlyCost = remainingCost / remainingMonths;\r\n\r\n return {\r\n cost: monthlyCost,\r\n months: remainingMonths\r\n };\r\n};\r\nexport const isValidLimitedTimeOffer = (offer: IFinancingOffer): boolean => {\r\n const startDate = dayjs(offer.offerValidStartDate, format);\r\n const endDate = dayjs(offer.offerValidEndDate, format).add(1, 'd');\r\n\r\n const startDateCentralTime = startDate.isValid() && dayjs(startDate.format(format), format).tz('America/Chicago').local();\r\n const endDateCentralTime = endDate.isValid() && dayjs(endDate.format(format), format).tz('America/Chicago').local();\r\n\r\n const now = dayjs();\r\n return startDateCentralTime && endDateCentralTime && now.isBetween(startDateCentralTime, endDateCentralTime);\r\n};\r\n\r\nexport const isCampaignScheduled = (offer: IFinancingOfferFormatted): boolean => {\r\n const tempOffer = Object.create(offer);\r\n if (tempOffer.specialCampaign?.campaignValidStartDate && tempOffer.specialCampaign?.campaignValidEndDate) {\r\n tempOffer.startDate = tempOffer.specialCampaign?.campaignValidStartDate;\r\n tempOffer.endDate = tempOffer.specialCampaign?.campaignValidEndDate;\r\n\r\n return isScheduled(tempOffer);\r\n }\r\n\r\n return false;\r\n};\r\n\r\nexport const isScheduled = (offer: IFinancingOfferFormatted): boolean => {\r\n const startDate = dayjs(offer.startDate, format);\r\n const endDate = dayjs(offer.endDate, format).add(1, 'd');\r\n\r\n const startDateCentralTime = startDate.isValid() && dayjs(startDate.format(format), format).tz('America/Chicago').local();\r\n const endDateCentralTime = endDate.isValid() && dayjs(endDate.format(format), format).tz('America/Chicago').local();\r\n\r\n const now = dayjs();\r\n\r\n return startDateCentralTime && endDateCentralTime && now.isBetween(startDateCentralTime, endDateCentralTime);\r\n};\r\n\r\nexport const selectFinancingOffer = ({ limitedTimeFinancingOffers = [], everydayFinancingOffers = [], lowCostOffer = [], totalPrice = 0, specialFinancingOffer = [], synchronySpecialFinancingCondition = false, specialFinancingEnable = false, checkoutShowEveryDayOffers, cashbackFinancingEnable = false, cashBackFinancingOffer = [] }: ISelectFinancingOfferData, returnCustomOfferArray?: boolean): IFinancingOfferFormatted | undefined => {\r\n let highestMinimumPurchase: number = 0;\r\n let bestOffer: IFinancingOfferFormatted = {\r\n numOfMonths: 0,\r\n costPerMonth: 0,\r\n isLTO: false,\r\n minPurchase: 0,\r\n everydayFinancingOfferMessage: '',\r\n limitedFinancingOfferMessage: '',\r\n cashbackFinancingOfferMessage: '',\r\n monthlyOfferDetails: '',\r\n financingOfferDescription: '',\r\n disclaimer: ''\r\n };\r\n let offerFound = false;\r\n\r\n let campaignFound: IFinancingOfferFormatted | undefined;\r\n\r\n const everydayOffers: IFinancingOfferFormatted[] | undefined = [];\r\n const specialOffer: IFinancingOfferFormatted[] | undefined = [];\r\n\r\n const validLimitedTimeFinancingOffers = limitedTimeFinancingOffers.filter((offer) => {\r\n return isValidLimitedTimeOffer(offer) && offer;\r\n });\r\n\r\n if (synchronySpecialFinancingCondition && specialFinancingEnable) {\r\n if (!offerFound || (!isScheduled(bestOffer) && specialFinancingOffer.length)) {\r\n // try default offer\r\n offerFound = false;\r\n highestMinimumPurchase = 0;\r\n specialFinancingOffer.forEach((offer: IFinancingOffer) => {\r\n const minPurchase = offer.minPurchase ? offer.minPurchase : 0;\r\n let currentOfferAccepted = false;\r\n if (totalPrice >= minPurchase && minPurchase >= highestMinimumPurchase) {\r\n bestOffer = {\r\n numOfMonths: offer.noInterestFor,\r\n costPerMonth: Math.ceil(totalPrice / offer.noInterestFor),\r\n startDate: offer.offerValidStartDate,\r\n endDate: offer.offerValidEndDate,\r\n isLTO: false,\r\n minPurchase: offer.minPurchase || 0,\r\n offerName: offer.offerName,\r\n financingOfferDescription: offer.financingOfferDescription,\r\n disclaimer: offer.disclaimer,\r\n FinancingOfferDataOnPage: offer?.FinancingOfferDataOnPage,\r\n checkoutDisplay: offer?.checkoutDisplay\r\n };\r\n highestMinimumPurchase = offer.minPurchase;\r\n offerFound = true;\r\n currentOfferAccepted = true;\r\n }\r\n if (returnCustomOfferArray && (totalPrice >= minPurchase)) {\r\n specialOffer?.push({\r\n numOfMonths: offer.noInterestFor,\r\n costPerMonth: Math.ceil(totalPrice / offer.noInterestFor),\r\n startDate: offer.offerValidStartDate,\r\n endDate: offer.offerValidEndDate,\r\n isLTO: false,\r\n minPurchase: offer.minPurchase || 0,\r\n everydayFinancingOfferMessage: offer.everydayFinancingOfferMessage,\r\n limitedFinancingOfferMessage: offer.limitedFinancingOfferMessage,\r\n cashbackFinancingOfferMessage: offer.cashbackFinancingOfferMessage,\r\n financingOfferDescription: offer.financingOfferDescription,\r\n disclaimer: offer.disclaimer,\r\n offerName: offer.offerName\r\n });\r\n highestMinimumPurchase = offer.minPurchase;\r\n offerFound = true;\r\n currentOfferAccepted = true;\r\n // @ts-ignore\r\n bestOffer = specialOffer;\r\n }\r\n // Do not use default if end date is defined and has expired\r\n if (currentOfferAccepted && offer.offerValidEndDate) {\r\n const endDate = dayjs(offer.offerValidEndDate, format);\r\n const now = dayjs();\r\n if (endDate.isValid() && now.isAfter(endDate)) {\r\n offerFound = false;\r\n }\r\n }\r\n });\r\n }\r\n } else {\r\n // if cashback enabled and has length check for cashback offer\r\n if (cashbackFinancingEnable && cashBackFinancingOffer?.length) {\r\n cashBackFinancingOffer.forEach((offer) => {\r\n const minPurchase = offer.minPurchase ? offer.minPurchase : 0;\r\n // if minimum purchase criteria is met, then create best offer\r\n if (totalPrice >= minPurchase) {\r\n const cashBackOffer = {\r\n numOfMonths: offer?.noInterestFor,\r\n costPerMonth: Math.ceil(totalPrice / offer?.noInterestFor),\r\n startDate: offer?.offerValidStartDate,\r\n endDate: offer?.offerValidEndDate,\r\n isLTO: false,\r\n minPurchase: offer?.minPurchase || 0,\r\n offerName: offer?.offerName,\r\n financingOfferDescription: offer?.financingOfferDescription,\r\n disclaimer: offer?.disclaimer,\r\n FinancingOfferDataOnPage: offer?.FinancingOfferDataOnPage,\r\n isCashBack: cashbackFinancingEnable,\r\n checkoutDisplay: offer?.checkoutDisplay,\r\n cashBackPercentageAmount: offer?.cashBackPercentageAmount,\r\n cashbackBannerDetails: offer?.cashbackBannerDetails,\r\n cashbackFinancingOfferMessage: offer?.cashbackFinancingOfferMessage\r\n };\r\n offerFound = true;\r\n bestOffer = cashBackOffer;\r\n }\r\n\r\n // check if current offer expired\r\n if (offerFound && offer?.offerValidEndDate) {\r\n const endDate = dayjs(offer?.offerValidEndDate, format);\r\n const now = dayjs();\r\n if (endDate?.isValid() && now.isAfter(endDate)) {\r\n offerFound = false;\r\n }\r\n }\r\n });\r\n }\r\n // if no offer found then check limited time financing offers\r\n if (!offerFound || !isScheduled(bestOffer)) {\r\n validLimitedTimeFinancingOffers.forEach((offer: IFinancingOffer) => {\r\n const minPurchase = offer.minPurchase ? offer.minPurchase : 0;\r\n\r\n if (totalPrice >= minPurchase && minPurchase > highestMinimumPurchase) {\r\n const currentOffer: IFinancingOfferFormatted = {\r\n numOfMonths: offer.noInterestFor,\r\n costPerMonth: Math.ceil(totalPrice / offer.noInterestFor),\r\n startDate: offer.offerValidStartDate,\r\n endDate: offer.offerValidEndDate,\r\n isLTO: true,\r\n minPurchase: offer.minPurchase,\r\n everydayFinancingOfferMessage: offer.everydayFinancingOfferMessage,\r\n limitedFinancingOfferMessage: offer.limitedFinancingOfferMessage,\r\n cashbackFinancingOfferMessage: offer.cashbackFinancingOfferMessage,\r\n monthlyOfferDetails: offer.monthlyOfferDetails,\r\n financingOfferDescription: offer.financingOfferDescription,\r\n disclaimer: offer.disclaimer,\r\n specialCampaign: offer.specialCampaignOffer,\r\n checkoutDisplay: offer.checkoutDisplay,\r\n offerName: offer.offerName\r\n };\r\n bestOffer = currentOffer;\r\n highestMinimumPurchase = offer.minPurchase;\r\n offerFound = true;\r\n\r\n // check if campaign schedule is scheduled, otherwise fall back to parent offer\r\n const validCampaign = getValidSpecialCampaign(currentOffer);\r\n if (validCampaign) {\r\n currentOffer.startDate = validCampaign.campaignValidStartDate;\r\n currentOffer.endDate = validCampaign.campaignValidEndDate;\r\n campaignFound = currentOffer;\r\n }\r\n else {\r\n campaignFound = undefined;\r\n }\r\n }\r\n });\r\n }\r\n // if no offer found then check everyday financing offer\r\n if (!offerFound || (!isScheduled(bestOffer) && everydayFinancingOffers.length)) {\r\n // try default offer\r\n offerFound = false;\r\n highestMinimumPurchase = 0;\r\n\r\n everydayFinancingOffers.forEach((offer: IFinancingOffer) => {\r\n const minPurchase = checkoutShowEveryDayOffers ? 0 : offer.minPurchase ? offer.minPurchase : 0;\r\n let currentOfferAccepted = false;\r\n if (totalPrice >= minPurchase && minPurchase >= highestMinimumPurchase) {\r\n bestOffer = {\r\n numOfMonths: offer.noInterestFor,\r\n costPerMonth: Math.ceil(totalPrice / offer.noInterestFor),\r\n isLTO: false,\r\n minPurchase: offer.minPurchase || 0,\r\n everydayFinancingOfferMessage: offer.everydayFinancingOfferMessage,\r\n limitedFinancingOfferMessage: offer.limitedFinancingOfferMessage,\r\n cashbackFinancingOfferMessage: offer.cashbackFinancingOfferMessage,\r\n offerName: offer.offerName,\r\n monthlyOfferDetails: offer.monthlyOfferDetails,\r\n financingOfferDescription: offer.financingOfferDescription,\r\n disclaimer: offer.disclaimer\r\n };\r\n highestMinimumPurchase = offer.minPurchase;\r\n offerFound = true;\r\n currentOfferAccepted = true;\r\n }\r\n\r\n if (returnCustomOfferArray && (totalPrice >= minPurchase)) {\r\n everydayOffers?.push({\r\n numOfMonths: offer.noInterestFor,\r\n costPerMonth: Math.ceil(totalPrice / offer.noInterestFor),\r\n isLTO: false,\r\n minPurchase: offer.minPurchase || 0,\r\n everydayFinancingOfferMessage: offer.everydayFinancingOfferMessage,\r\n limitedFinancingOfferMessage: offer.limitedFinancingOfferMessage,\r\n cashbackFinancingOfferMessage: offer.cashbackFinancingOfferMessage,\r\n monthlyOfferDetails: offer.monthlyOfferDetails,\r\n financingOfferDescription: offer.financingOfferDescription,\r\n disclaimer: offer.disclaimer,\r\n offerName: offer.offerName\r\n });\r\n highestMinimumPurchase = offer.minPurchase;\r\n offerFound = true;\r\n currentOfferAccepted = true;\r\n // @ts-ignore\r\n bestOffer = everydayOffers;\r\n }\r\n // Do not use default if end date is defined and has expired\r\n if (currentOfferAccepted && offer.offerValidEndDate) {\r\n const endDate = dayjs(offer.offerValidEndDate, format);\r\n const now = dayjs();\r\n if (endDate.isValid() && now.isAfter(endDate)) {\r\n offerFound = false;\r\n }\r\n }\r\n });\r\n }\r\n if (lowCostOffer?.length) {\r\n lowCostOffer.forEach((offer: ILowCostOffer) => {\r\n if (totalPrice <= offer.maxPurchase && offer.offerName?.toLowerCase() === 'low cost offer') {\r\n const LCO = {\r\n offerName: offer.offerName,\r\n maxPurchase: offer.maxPurchase || 0,\r\n lowCostFinancingOfferMessage: offer.lowCostFinancingOfferMessage,\r\n financingOfferDescription: offer?.financingOfferDescription?.replace(/{defaultNumOfMonths}/g, `${offer?.defaultNumberOfMonths?.toString() || 6}`),\r\n disclaimer: offer.disclaimer,\r\n lowCostOfferDetailsOnCart: offer.lowCostOfferDetailsOnCart\r\n };\r\n highestMinimumPurchase = offer.maxPurchase;\r\n offerFound = true;\r\n // @ts-ignore\r\n bestOffer = LCO;\r\n }\r\n });\r\n }\r\n }\r\n\r\n if (!offerFound) {\r\n return undefined;\r\n }\r\n if (campaignFound) {\r\n return campaignFound;\r\n }\r\n return bestOffer;\r\n};\r\n","const splitPrice = (price: number = 0) => {\r\n if (price === 0) {\r\n return { dollars: '0', cents: '' };\r\n }\r\n const formattedPrice = price.toLocaleString('en-US', {\r\n style: 'currency',\r\n currency: 'USD'\r\n });\r\n\r\n const priceArr = formattedPrice.match(/(\\d|,)+/g);\r\n\r\n const dollars = priceArr?.[0] || '0';\r\n const cents = priceArr?.[1] || '00';\r\n\r\n return { dollars, cents };\r\n};\r\n\r\nexport default splitPrice;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\n/**\r\n * TriggerSpecialSynchronyFinancing Input Action\r\n */\r\nexport class TriggerSpecialSynchronyFinancingInput implements Msdyn365.IActionInput {\r\n // Construct the input needed to run the action\r\n constructor() {}\r\n\r\n // Determine if the results of this get action should cache the results and if so provide\r\n // a cache object type and an appropriate cache key\r\n public getCacheKey = () => `TriggerSpecialSynchronyFinancing`;\r\n public getCacheObjectType = () => 'TriggerSpecialSynchronyFinancing';\r\n public dataCacheType = (): Msdyn365.CacheType => 'application';\r\n}\r\n\r\n// Create a data model here or import one to capture the response of the action\r\nexport interface ITriggerSpecialSynchronyFinancingData {\r\n triggerSpecialFinancing: boolean;\r\n}\r\n\r\n/**\r\n * Use this function to create the input required to make the action call\r\n */\r\nconst createInput = (args: Msdyn365.ICreateActionContext): Msdyn365.IActionInput => {\r\n return new TriggerSpecialSynchronyFinancingInput();\r\n};\r\n\r\n/**\r\n * Use this function to call your action and process the results as needed\r\n */\r\nasync function action(input: TriggerSpecialSynchronyFinancingInput, ctx: Msdyn365.IActionContext): Promise {\r\n // const apiSettings = Msdyn365.msdyn365Commerce.apiSettings;\r\n\r\n // Uncomment the below line to get the value from a service\r\n // const response = await Msdyn365.sendRequest('/get/example/id/1', 'get');\r\n return { triggerSpecialFinancing: false };\r\n}\r\n\r\nexport default Msdyn365.createObservableDataAction({\r\n action: >action,\r\n // Give your data action a unique id\r\n id: 'TriggerSpecialSynchronyFinancing',\r\n input: createInput\r\n // Uncomment the below line if this is a meant to be a batched data action\r\n // isBatched: true\r\n});\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\nimport { IFinancingOfferFormatted } from '../Utilities/select-financing-offer';\r\n\r\n/**\r\n * FinancingOfferState Input Action\r\n */\r\n\r\nexport class FinancingOfferStateInput implements Msdyn365.IActionInput {\r\n // Determine if the results of this get action should cache the results and if so provide\r\n // a cache object type and an appropriate cache key\r\n public getCacheKey = () => `FinancingOfferState`;\r\n public getCacheObjectType = () => 'FinancingOfferState';\r\n public dataCacheType = (): Msdyn365.CacheType => 'application';\r\n}\r\n\r\n// Create a data model here or import one to capture the response of the action\r\nexport interface IFinancingOfferStateData {\r\n isOpen: boolean;\r\n totalPrice?: number;\r\n financingOffer?: IFinancingOfferFormatted;\r\n}\r\n\r\n/**\r\n * Use this function to create the input required to make the action call\r\n */\r\nconst createInput = (args: Msdyn365.ICreateActionContext): Msdyn365.IActionInput => {\r\n return new FinancingOfferStateInput();\r\n};\r\n\r\n/**\r\n * Use this function to call your action and process the results as needed\r\n */\r\nasync function action(input: FinancingOfferStateInput, ctx: Msdyn365.IActionContext): Promise {\r\n return { isOpen: false };\r\n}\r\n\r\nexport default Msdyn365.createObservableDataAction({\r\n action: >action,\r\n id: 'FinancingOfferState',\r\n input: createInput\r\n});\r\n","import React from 'react';\r\n\r\ninterface ICTAButton {\r\n linkData: {\r\n linkUrl?: string;\r\n openInNewTab?: boolean;\r\n linkText?: string;\r\n };\r\n actionClick: () => void;\r\n actionKeyUp: any;\r\n labelText: string;\r\n}\r\n\r\nconst CTAButton: React.FC = (props) => {\r\n return (\r\n
\r\n {props.linkData && (\r\n props.actionClick()}\r\n onKeyUp={() => props.actionKeyUp()}\r\n className='mfrm-financing-modal__button'\r\n >\r\n {props.linkData.linkText}\r\n \r\n )}\r\n

\r\n {props.labelText}\r\n

\r\n
\r\n );\r\n};\r\n\r\nexport default CTAButton;\r\n","import * as React from 'react';\r\n\r\nexport interface IActionCardProps {\r\n className?: string;\r\n href?: string;\r\n target?: string;\r\n description?: string;\r\n heading: string;\r\n showIcon?: boolean;\r\n iconClassName?: string;\r\n onClick?(): void;\r\n onKeyUp?(): void;\r\n}\r\n\r\nclass ActionCard extends React.PureComponent {\r\n\r\n public render(): JSX.Element {\r\n const { className, href, target, heading, description, iconClassName, showIcon } = this.props;\r\n const actionCardClassName = className ? `${className} ${'mfrm-action-card'}` : 'mfrm-action-card';\r\n const actionCardDefaultClassName = 'mfrm-action-card';\r\n\r\n return (\r\n \r\n
{`${heading}, ${description}`}
\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default ActionCard;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport * as React from 'react';\r\n\r\nimport { Modal, ModalBody, ModalHeader, format } from '@msdyn365-commerce-modules/utilities';\r\nimport { IImageSettings, Image, RichTextComponent, msdyn365Commerce, getRichTextHtml } from '@msdyn365-commerce/core';\r\n\r\nimport { FinancingOfferStateInput } from '../../data-actions/financing-offer-state.action';\r\nimport {\r\n getCampaignRemainingCost,\r\n getValidSpecialCampaign,\r\n IFinancingOfferCampaign,\r\n IFinancingOfferFormatted\r\n} from '../../Utilities/select-financing-offer';\r\nimport splitPrice from '../../Utilities/splitPrice';\r\nimport { IMfrmCcOfferModalData } from './mfrm-cc-offer-modal.data';\r\nimport { IMfrmCcOfferModalProps } from './mfrm-cc-offer-modal.props.autogenerated';\r\nimport ActionCard from './components/action-card';\r\nimport CTAButton from './components/CTA-Button';\r\nimport { callUtagLink } from '../../Utilities/analytics/utagCaller';\r\n\r\nexport interface IMfrmCcOfferModalViewProps extends IMfrmCcOfferModalProps {\r\n content: React.ReactNode;\r\n}\r\n\r\n/**\r\n *\r\n * MfrmCcOfferModal component\r\n * @extends {React.PureComponent>}\r\n */\r\n\r\nclass MfrmCcOfferModal extends React.PureComponent> {\r\n private totalPrice: number = 0;\r\n private timer: NodeJS.Timeout | null;\r\n private moduleClassName: string = 'mfrm-financing-modal';\r\n\r\n constructor(props: IMfrmCcOfferModalProps) {\r\n super(props);\r\n this.timer = null;\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n if (this.timer) {\r\n clearTimeout(this.timer);\r\n }\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n if (!this.props.data.financingOfferState.result?.financingOffer) {\r\n return null;\r\n } else {\r\n const { totalPrice, financingOffer } = this.props.data.financingOfferState.result;\r\n if (totalPrice) {\r\n this.totalPrice = totalPrice;\r\n }\r\n const viewProps: IMfrmCcOfferModalViewProps = {\r\n ...this.props,\r\n content: this._buildContent(financingOffer)\r\n };\r\n return this.props.renderView(viewProps);\r\n }\r\n }\r\n\r\n\r\n private onCallClick = () => {\r\n // @ts-ignore\r\n if ('utag' in window) {\r\n // @ts-ignore\r\n // tslint:disable-next-line: object-literal-key-quotes\r\n utag.link({\r\n event: 'call_engagement',\r\n event_type: 'call_engagement',\r\n event_category: 'call',\r\n event_action: 'synchrony modal click',\r\n event_label: 'call engagement',\r\n event_noninteraction: 'false'\r\n });\r\n }\r\n };\r\n\r\n private onCallKeyUp = (e: React.KeyboardEvent) => {\r\n if (e.keyCode === 13) {\r\n this.onCallClick;\r\n }\r\n };\r\n\r\n private onChatClick = (event: React.SyntheticEvent) => {\r\n event.preventDefault();\r\n this.timer = setTimeout(function () {\r\n // eslint-disable-next-line no-eval, security/detect-eval-with-expression\r\n eval(\r\n `var elems = document.querySelectorAll('.uiButton.helpButtonEnabled, .minimizedContainer.helpButton, .sidebarHeader.minimizedContainer'); if(elems != undefined && elems.length > 0) { if(elems.length > 1){elems[1].click()} else {elems[0].click()}}`\r\n );\r\n // eslint-disable-next-line no-eval\r\n // eval(\r\n // `document.querySelectorAll('.embeddedServiceHelpButton')?.[0]?.classList.add('show-chat');`\r\n // );\r\n }, 1000);\r\n\r\n // @ts-ignore\r\n if ('utag' in window) {\r\n // @ts-ignore\r\n // tslint:disable-next-line: object-literal-key-quotes\r\n utag.link({\r\n event: 'chat-widget-initiated',\r\n event_type: 'chat_click',\r\n event_category: 'chat',\r\n event_action: 'click',\r\n event_label: 'chat engagement'\r\n });\r\n }\r\n\r\n this._toggleModal();\r\n };\r\n\r\n private onChatKeyUp = (e: React.KeyboardEvent) => {\r\n if (e.keyCode === 13) {\r\n this.onChatClick;\r\n }\r\n };\r\n\r\n private applyNowClick = () => {\r\n /* VSI customization START - 61856 Tracking */\r\n const {\r\n context: {\r\n actionContext: {\r\n requestContext: { url: requestUrl }\r\n }\r\n }\r\n } = this.props;\r\n if (requestUrl.requestUrl.href.includes('cart')) {\r\n void callUtagLink({\r\n event: 'Cart-Synchrony-Apply',\r\n event_category: 'Financing',\r\n event_action: 'Cart page Apply Now button click',\r\n event_label: 'Synchrony - Apply Now',\r\n event_noninteraction: 'false',\r\n event_type: 'synch_button'\r\n });\r\n } else if (requestUrl.requestUrl.href.includes('checkout')) {\r\n void callUtagLink({\r\n event: 'Payment-Synchrony-Apply',\r\n event_category: 'Financing',\r\n event_action: 'Payment page Apply Now button click',\r\n event_label: 'Synchrony - Apply Now',\r\n event_noninteraction: 'false',\r\n event_type: 'synch_button'\r\n });\r\n } else {\r\n void callUtagLink({\r\n event: 'PDP-Synchrony-Apply',\r\n event_category: 'Financing',\r\n event_action: 'Button',\r\n event_label: 'Synchrony - Apply Now',\r\n event_noninteraction: 'false',\r\n event_type: 'synch_button'\r\n });\r\n }\r\n /* VSI customization END - 61856 Tracking */\r\n };\r\n\r\n private prequalifyNowClick = () => {\r\n // @ts-ignore\r\n // tslint:disable-next-line: object-literal-key-quotes\r\n 'utag' in window && utag.link({\r\n event: 'PDP-Synchrony-Prequalify',\r\n event_category: 'Financing',\r\n event_action: 'Button',\r\n event_label: 'Synchrony - Prequalify Now',\r\n event_noninteraction: 'false',\r\n event_type: 'synch_button'\r\n });\r\n };\r\n\r\n private applyNowKeyUp = (e: React.KeyboardEvent) => {\r\n if (e.keyCode === 13) {\r\n this.applyNowClick;\r\n }\r\n };\r\n\r\n private prequalifyNowKeyUp = (e: React.KeyboardEvent) => {\r\n if (e.keyCode === 13) {\r\n this.prequalifyNowClick;\r\n }\r\n };\r\n\r\n private _toggleModal = (): void => {\r\n if (this.props.data.financingOfferState.result) {\r\n this.props.context.actionContext.update(new FinancingOfferStateInput(), {\r\n isOpen: !this.props.data.financingOfferState.result.isOpen\r\n });\r\n }\r\n };\r\n\r\n private _focusModal = (): void => {\r\n if (msdyn365Commerce.isBrowser && this.props.data.financingOfferState.result?.isOpen) {\r\n document.getElementById('financingModal')?.focus();\r\n }\r\n };\r\n private _getLogo(): React.ReactNode {\r\n const img = this.props.config.logoImage;\r\n\r\n const defaultImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: 'w=238&h=85&m=8', w: 0, h: 0 },\r\n sm: { q: 'w=238&h=85&m=8', w: 0, h: 0 },\r\n md: { q: 'w=322&h=115&m=8', w: 0, h: 0 },\r\n lg: { q: 'w=322&h=115&m=8', w: 0, h: 0 }\r\n },\r\n lazyload: true\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n private _getHeading(): React.ReactNode {\r\n const { header, subheader } = this.props.config;\r\n\r\n return (\r\n
\r\n
{header}
\r\n

{subheader}

\r\n
\r\n );\r\n }\r\n\r\n private _getCashBackBanner(financingOffer: IFinancingOfferFormatted): React.ReactNode {\r\n const { cashbackBannerDetails } = financingOffer;\r\n const { subTitleText, cashBackPercentageHeader } = this.props.config;\r\n return (\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{cashBackPercentageHeader}

\r\n

\r\n

\r\n \r\n

\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n
\r\n );\r\n\r\n }\r\n\r\n private _getStarted(): React.ReactNode {\r\n const { resources,\r\n config: { applyLink, phoneNo }\r\n } = this.props;\r\n\r\n const applyLinkData = applyLink && {\r\n linkText: applyLink.linkText || 'Link',\r\n linkUrl: applyLink.linkUrl?.destinationUrl,\r\n ariaLabel: applyLink.ariaLabel,\r\n openInNewTab: applyLink.openInNewTab\r\n };\r\n\r\n return (\r\n
\r\n
\r\n {resources.ccModalGetStartedText}\r\n
\r\n
\r\n \r\n this.onCallClick}\r\n onKeyUp={() => this.onCallKeyUp}\r\n />\r\n \r\n
\r\n