{"version":3,"file":"alternativeProductPod.ad659378ce2dd0a61b47.js","sources":["webpack:///./Source/FECOM.Web.UI/Scripts/apps/product/components/PriceBreaks.tsx","webpack:///./Source/FECOM.Web.UI/Scripts/components/AlternativeProductPod.tsx"],"sourcesContent":["import { ReactElement } from 'react';\r\nimport {\r\n PriceBreak,\r\n TransactionalCurrency,\r\n Website\r\n} from '../../../types/generated';\r\nimport formatCurrency from '../../../utilities/formatCurrency';\r\n\r\ninterface PriceBreaksProps {\r\n priceBreaks: PriceBreak[] | null;\r\n transactionalCurrency: TransactionalCurrency;\r\n website: Website;\r\n showSecondaryPrice: boolean;\r\n updateQuantity: (value: number) => void;\r\n}\r\n\r\nexport default function PriceBreaks({\r\n priceBreaks,\r\n transactionalCurrency,\r\n showSecondaryPrice,\r\n updateQuantity\r\n}: PriceBreaksProps): ReactElement {\r\n function formatPriceBreakPrices(priceBreak: PriceBreak) {\r\n return (\r\n <>\r\n
\r\n \r\n {formatCurrency(\r\n priceBreak.pricingInfo.primaryPrice.value,\r\n transactionalCurrency\r\n )}{' '}\r\n each\r\n \r\n
\r\n \r\n );\r\n }\r\n const onHandleClick = (units: number) => {\r\n updateQuantity(units);\r\n };\r\n\r\n function formatTotalOfferPrice(priceBreak: PriceBreak) {\r\n var totalPrice =\r\n priceBreak.pricingInfo.primaryPrice.value * priceBreak.units;\r\n var totalSecondaryPrice =\r\n priceBreak.pricingInfo.secondaryPrice.value * priceBreak.units;\r\n return (\r\n <>\r\n
\r\n {'GBP'}\r\n \r\n {formatCurrency(totalPrice, transactionalCurrency)}\r\n \r\n {!showSecondaryPrice && (\r\n \r\n {priceBreak.pricingInfo.primaryPriceText}\r\n \r\n )}\r\n
\r\n\r\n {showSecondaryPrice && (\r\n
\r\n {'GBP'}\r\n \r\n {formatCurrency(totalSecondaryPrice, transactionalCurrency)}\r\n {' '}\r\n \r\n {priceBreak.pricingInfo.secondaryPriceText}\r\n \r\n
\r\n )}\r\n \r\n );\r\n }\r\n\r\n return (\r\n
\r\n
Buy More Save More
\r\n
\r\n
\r\n {priceBreaks?.map((priceBreak: PriceBreak) => (\r\n onHandleClick(priceBreak.units)}\r\n >\r\n
\r\n
\r\n \r\n Buy {priceBreak.units}\r\n {` (or more)`}\r\n \r\n \r\n {formatPriceBreakPrices(priceBreak)} {' '}\r\n \r\n
\r\n
\r\n \r\n Save up to{' '}\r\n {Math.floor(priceBreak.pricingInfo.savingsPercentage)}%\r\n \r\n
\r\n
\r\n
\r\n {formatTotalOfferPrice(priceBreak)} {' '}\r\n
\r\n
\r\n ))}\r\n
\r\n
\r\n \r\n );\r\n}\r\n","import { FunctionComponent } from 'react';\r\nimport {\r\n AlternativeProductViewModel,\r\n AlternativeProductType\r\n} from '../types/generated';\r\nimport { TransactionalCurrency } from '../types/enums';\r\nimport formatCurrency from '../utilities/formatCurrency';\r\n\r\ninterface AlternativeProductPodProps {\r\n alternativeProducts: AlternativeProductViewModel[] | null;\r\n transactionalCurrency?: TransactionalCurrency;\r\n}\r\n\r\nconst AlternativeProductPod: FunctionComponent = ({\r\n transactionalCurrency,\r\n alternativeProducts\r\n}) => {\r\n if (!alternativeProducts) {\r\n return null;\r\n }\r\n\r\n return (\r\n
\r\n {alternativeProducts.map((product) => {\r\n if (\r\n product.alternativeProductType !== AlternativeProductType.classmates\r\n ) {\r\n return null;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Save{' '}\r\n \r\n {formatCurrency(\r\n product.savingsAmount,\r\n transactionalCurrency\r\n )}\r\n {' '}\r\n by switching to Classmates\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n

\r\n {product.name}\r\n

\r\n
\r\n {formatCurrency(product.priceExcVat, transactionalCurrency)}{' '}\r\n ex VAT\r\n
\r\n
\r\n \r\n Switch Now\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n If you're not happy we'll give you your money back\r\n
\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n );\r\n};\r\n\r\nexport default AlternativeProductPod;\r\n"],"mappings":";;;;;;;;;;;;;;;;;;AAMA;;;;AAUA;AAKA;AAAA;AAAA;AAAA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAKA;AAAA;AAAA;AALA;AADA;AADA;AAYA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAIA;AAAA;AAAA;AANA;AAaA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAGA;AAAA;AAAA;AALA;AAdA;AA0BA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAGA;AACA;AAAA;AAAA;AAHA;AAKA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AAAA;AAFA;AAIA;AAAA;AAAA;AALA;AASA;AAAA;AACA;AAAA;AAAA;AADA;AAVA;AAiBA;AAAA;AAAA;AAtBA;AADA;AADA;AADA;AAFA;AAoCA;;;;;;;;;;;;;;;;;;;;;;;AC/GA;AAKA;;;;AAOA;AAGA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AAGA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AAEA;AAAA;AAAA;AAFA;AAFA;AAcA;AAAA;AAEA;AACA;AAFA;AADA;AAOA;AAAA;AAAA;AAGA;AAAA;AAEA;AAAA;AAAA;AAFA;AAIA;AAAA;AAEA;AACA;AAFA;AAAA;AADA;AA7BA;AAsCA;AAAA;AACA;AAAA;AAEA;AACA;AAFA;AADA;AAMA;AAAA;AAAA;AAPA;AAvCA;AAoDA;AA7DA;AAgEA;AACA;AACA;;;;A","sourceRoot":""}