{"version":3,"file":"static/js/63817599e67d0885370f.bundle.js","mappings":"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","sources":["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/external var \"React\"?0d3b","webpack://mattressfirm/external var \"ReactDOM\"?853b","webpack://mattressfirm/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.string.match.js?f0c8","webpack://mattressfirm/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.string.split.js?e6e1"],"sourcesContent":["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\nimport { calculateFinancing } from './checkout-utils';\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 planID?: number;\r\n specialCase36Months?: boolean;\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 specialCase36Months?: boolean;\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 if (totalPrice >= minPurchase && minPurchase > highestMinimumPurchase) {\r\n const updatedOffer = calculateFinancing(totalPrice , offer.noInterestFor, offer.monthlyOfferDetails);\r\n const currentOffer: IFinancingOfferFormatted = {\r\n numOfMonths: offer.noInterestFor,\r\n costPerMonth: updatedOffer?.monthlyPayment,\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: updatedOffer?.financingMessage,\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 specialCase36Months: offer.noInterestFor === 36\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 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