{"version":3,"file":"3135.684e1348b34307c14b3f.js?ssi=0","mappings":"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","sources":["webpack://@logos/commerceweb-frontend/./Scripts/site/cart/services/checkoutservice.js","webpack://@logos/commerceweb-frontend/./Scripts/site/components/checkout-shared/useCartEffect.js","webpack://@logos/commerceweb-frontend/./Scripts/site/components/shared/enhanced-image-tag/image.tsx","webpack://@logos/commerceweb-frontend/./Scripts/site/components/shared/utc-date-time-display/index.jsx","webpack://@logos/commerceweb-frontend/./Scripts/site/components/shopping-cart-items/PricingLink.jsx","webpack://@logos/commerceweb-frontend/./Scripts/site/components/shopping-cart-items/ShoppingCartItem.jsx","webpack://@logos/commerceweb-frontend/./Scripts/site/components/shopping-cart-items/SubscriptionPriceBlock.jsx","webpack://@logos/commerceweb-frontend/./Scripts/site/components/shopping-cart-items/ShoppingCartSubscribableItem.jsx","webpack://@logos/commerceweb-frontend/./Scripts/site/components/shopping-cart-items/index.jsx"],"sourcesContent":["'use strict';\n\nconst $ = require('jquery');\n\nmodule.exports = {\n\tupdateCart: function (url, changeSet) {\n\t\treturn $.ajax({\n\t\t\turl: url,\n\t\t\tdata: JSON.stringify(changeSet),\n\t\t\tcontentType: 'application/json',\n\t\t\tmethod: 'POST',\n\t\t});\n\t},\n\tgetUpsellDetails: function (url, changeSet) {\n\t\treturn $.ajax({\n\t\t\turl: url,\n\t\t\tdata: JSON.stringify(changeSet),\n\t\t\tcontentType: 'application/json',\n\t\t\tmethod: 'POST',\n\t\t});\n\t},\n\tfetchCart: function (url) {\n\t\treturn $.ajax({\n\t\t\turl: url,\n\t\t\tcontentType: 'application/json',\n\t\t\tmethod: 'POST',\n\t\t});\n\t},\n\tcreateProfiles: function (url, data) {\n\t\treturn $.ajax({\n\t\t\ttype: 'POST',\n\t\t\turl: url,\n\t\t\tdata: data,\n\t\t\tdataType: 'json',\n\t\t});\n\t},\n};\n","import React, { useContext, useEffect, useRef } from 'react';\nimport eventAggregator from '../../cart/utility/eventaggregator';\n\nconst CartContext = React.createContext({ cart: null, hasContext: false });\n\nexport function useCartEffect(callback) {\n\tconst { cart, hasContext } = useContext(CartContext);\n\tconst callbackRef = useRef();\n\tcallbackRef.current = callback;\n\tuseEffect(() => {\n\t\tif (hasContext) {\n\t\t\treturn;\n\t\t}\n\t\tfunction cartUpdated(event, data) {\n\t\t\tcallbackRef.current?.(data);\n\t\t}\n\t\teventAggregator.on('cart:updated', cartUpdated);\n\t\treturn () => {\n\t\t\teventAggregator.off('cart:updated', cartUpdated);\n\t\t};\n\t}, [hasContext]);\n\tuseEffect(() => {\n\t\tif (!cart) {\n\t\t\treturn;\n\t\t}\n\t\tcallbackRef.current?.(cart);\n\t}, [cart]);\n}\n\nexport function CartContextProvider({ cart, children }) {\n\treturn <CartContext.Provider value={{ cart, hasContext: true }}>{children}</CartContext.Provider>;\n}\n","import React, { useMemo } from 'react';\nimport { mobileCutoffWidth, desktopMinWidth } from '../../../util/mobile-utility';\nimport { extraLargeDesktopMinWidth, largeDesktopMinWidth } from '../../../util/hooks/use-screensize';\n\ninterface SizeDescriptor {\n\twidth: number | string;\n\theight?: number;\n}\n\ntype SizeValue = number | string | SizeDescriptor;\n\ninterface ImageSizes {\n\tmobile?: SizeValue;\n\ttablet?: SizeValue;\n\tdesktop?: SizeValue;\n\tlargeDesktop?: SizeValue;\n\textraLargeDesktop?: SizeValue;\n}\n\ninterface ImageProps {\n\tsrc: string;\n\talt?: string;\n\twidth?: number | string;\n\theight?: number | string;\n\tsizes?: ImageSizes;\n\tbelowTheFold?: boolean;\n\tfetchPriority?: 'high' | 'low' | 'auto';\n\tclassName?: string;\n\tstyle?: React.CSSProperties;\n\ttargetAspectRatio?: [number, number];\n}\n\ntype ImageElementProps = React.ImgHTMLAttributes<HTMLImageElement> & {\n\tfetchpriority?: ImageProps['fetchPriority'];\n};\n\ninterface ProcessedSize {\n\twidth: number | string;\n\theight?: number;\n}\n\ninterface ProcessedSizes {\n\t[key: string]: ProcessedSize;\n}\n\ninterface SizeResult {\n\tsize: number | string;\n\tmaxWidth: number | null;\n}\n\nconst breakPointNames = ['mobile', 'tablet', 'desktop', 'largeDesktop', 'extraLargeDesktop'] as const;\nconst breakPoints: (number | null)[] = [\n\tmobileCutoffWidth,\n\tdesktopMinWidth,\n\tlargeDesktopMinWidth,\n\textraLargeDesktopMinWidth,\n\tnull,\n];\n\nconst standardDeviceWidths = [360, 640, 768, 1024, 1366, 1600, 1920, 2560];\n\nfunction formatSizeValue(size: number | string): string {\n\treturn typeof size === 'string' ? size : `${size}px`;\n}\n\nfunction createSizesAttribute(inputSizes: ProcessedSizes): string {\n\tconst sizeResults: SizeResult[] = [];\n\n\tlet currentResult: SizeResult | undefined = undefined;\n\tfor (let i = 0; i < breakPointNames.length; i++) {\n\t\tconst breakPointName = breakPointNames[i];\n\t\tconst sizeEntry = inputSizes[breakPointName];\n\t\tconst size = sizeEntry?.width ?? null;\n\t\tconst breakPoint = breakPoints[i];\n\t\tif (size !== null) {\n\t\t\tcurrentResult = { size, maxWidth: breakPoint === null ? null : breakPoint - 1 };\n\t\t\tsizeResults.push(currentResult);\n\t\t} else if (currentResult) {\n\t\t\tcurrentResult.maxWidth = breakPoint === null ? null : breakPoint - 1;\n\t\t}\n\t}\n\tif (currentResult) {\n\t\tcurrentResult.maxWidth = null;\n\t}\n\n\treturn sizeResults\n\t\t.map(({ size, maxWidth }) => {\n\t\t\tif (maxWidth !== null) {\n\t\t\t\treturn `(max-width: ${maxWidth}px) ${formatSizeValue(size)}`;\n\t\t\t}\n\t\t\treturn formatSizeValue(size);\n\t\t})\n\t\t.join(',');\n}\n\nfunction computeSrcSetWidths(nominalWidths: number[], deviceWidths: number[]): number[] {\n\tconst widthSet = new Set(deviceWidths);\n\tfor (const nominalWidth of nominalWidths) {\n\t\twidthSet.add(nominalWidth);\n\t\twidthSet.add(nominalWidth * 2);\n\t}\n\treturn [...widthSet].sort((a, b) => a - b);\n}\n\nfunction createSrcSetAttribute(srcSetWidths: number[], src: string, aspectRatio?: number): string | undefined {\n\tconst entries: string[] = [];\n\tfor (const width of srcSetWidths) {\n\t\tconst url = new URL(src);\n\t\turl.searchParams.set('w', String(width));\n\t\tif (aspectRatio) {\n\t\t\turl.searchParams.set('h', String(Math.round(width / aspectRatio)));\n\t\t}\n\t\turl.searchParams.set('m', 'limit');\n\t\tentries.push(`${url.toString()} ${width}w`);\n\t}\n\treturn entries.length > 0 ? entries.join(',') : undefined;\n}\n\nfunction getNominalWidths(processedSizes: ProcessedSizes | undefined, widthProp?: number | string): number[] {\n\tif (processedSizes) {\n\t\tconst numericWidths = Object.values(processedSizes)\n\t\t\t.map(s => s.width)\n\t\t\t.filter((w): w is number => typeof w === 'number');\n\t\treturn numericWidths;\n\t}\n\tif (typeof widthProp === 'number') {\n\t\treturn [widthProp];\n\t}\n\treturn [];\n}\n\nconst amberCdnHost = 'files.logoscdn.com';\nconst amberUrls = ['internal.files.logos.com', 'files.logos.com', amberCdnHost, 'files.amberfile.com'];\n\n// Only production hosts; test/internal hosts serve a different environment's assets and must not be pointed at the production CDN.\nconst amberCdnUpgradableHosts = ['files.logos.com', 'files.amberfile.com'];\n\nfunction isAmberHost(host: string): boolean {\n\treturn amberUrls.includes(host);\n}\n\nfunction detectIsAmberOptimizedUrl(urlAsString: string): boolean {\n\ttry {\n\t\tconst url = new URL(urlAsString);\n\t\tconst isAmberCdn = isAmberHost(url.host);\n\t\tconst isOptimized = url.pathname.endsWith('optimized');\n\t\treturn isAmberCdn && isOptimized;\n\t} catch {\n\t\treturn false;\n\t}\n}\n\n// Amber link signatures are generated against a fixed host, so rewriting the host to the CDN keeps signed links valid.\nfunction toAmberCdnUrl(url: URL): string {\n\tif (!amberCdnUpgradableHosts.includes(url.host)) {\n\t\treturn url.toString();\n\t}\n\tconst cdnUrl = new URL(url.toString());\n\tcdnUrl.host = amberCdnHost;\n\tcdnUrl.protocol = 'https:';\n\tcdnUrl.port = '';\n\treturn cdnUrl.toString();\n}\n\nfunction tryUpgradeAmberUrlToCdn(urlAsString: string): string {\n\ttry {\n\t\treturn toAmberCdnUrl(new URL(urlAsString));\n\t} catch {\n\t\treturn urlAsString;\n\t}\n}\n\nfunction tryAddAmberLimit(urlAsString: string): string {\n\ttry {\n\t\tconst url = new URL(urlAsString);\n\t\tif (!isAmberHost(url.host) || !url.pathname.endsWith('optimized')) {\n\t\t\treturn urlAsString;\n\t\t}\n\t\turl.searchParams.set('m', 'limit');\n\t\treturn url.toString();\n\t} catch {\n\t\treturn urlAsString;\n\t}\n}\n\nfunction processSizes(inputSizes: ImageSizes | undefined, aspectRatio?: number): ProcessedSizes | undefined {\n\tif (!inputSizes) {\n\t\treturn undefined;\n\t}\n\tconst processedSizes: ProcessedSizes = {};\n\tfor (const [sizeName, size] of Object.entries(inputSizes)) {\n\t\tif (typeof size === 'string') {\n\t\t\tprocessedSizes[sizeName] = { width: size };\n\t\t} else if (size !== null && size !== undefined && typeof size === 'object') {\n\t\t\tprocessedSizes[sizeName] = {\n\t\t\t\twidth: size.width,\n\t\t\t\theight:\n\t\t\t\t\tsize.height ??\n\t\t\t\t\t(aspectRatio && typeof size.width === 'number' ? Math.floor(size.width / aspectRatio) : undefined),\n\t\t\t};\n\t\t} else if (typeof size === 'number') {\n\t\t\tprocessedSizes[sizeName] = { width: size, height: aspectRatio ? Math.floor(size / aspectRatio) : undefined };\n\t\t}\n\t}\n\treturn processedSizes;\n}\n\nconst Image = ({\n\tsrc: srcProp,\n\talt,\n\twidth,\n\theight,\n\tsizes: inputSizes,\n\tbelowTheFold = false,\n\tfetchPriority,\n\tclassName,\n\tstyle,\n\ttargetAspectRatio,\n}: ImageProps) => {\n\tconst numericAspectRatio = targetAspectRatio ? targetAspectRatio[0] / targetAspectRatio[1] : undefined;\n\n\tconst src = useMemo(() => tryAddAmberLimit(tryUpgradeAmberUrlToCdn(srcProp)), [srcProp]);\n\tconst processedSizes = processSizes(inputSizes, numericAspectRatio);\n\tconst isAmberOptimizedUrl = detectIsAmberOptimizedUrl(src);\n\n\tconst srcSetAttribute = useMemo(() => {\n\t\tif (!isAmberOptimizedUrl) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (!processedSizes) {\n\t\t\tconst nominalWidths = getNominalWidths(undefined, width);\n\t\t\tconst srcSetWidths = computeSrcSetWidths(nominalWidths, []);\n\t\t\treturn createSrcSetAttribute(srcSetWidths, src, numericAspectRatio);\n\t\t}\n\n\t\tconst containsResponsiveWidth = Object.values(processedSizes).some(\n\t\t\tx => typeof x.width === 'string' && x.width.endsWith('vw')\n\t\t);\n\t\tconst nominalWidths = getNominalWidths(processedSizes, width);\n\t\tconst srcSetWidths = computeSrcSetWidths(nominalWidths, containsResponsiveWidth ? standardDeviceWidths : []);\n\t\treturn createSrcSetAttribute(srcSetWidths, src, numericAspectRatio);\n\t}, [isAmberOptimizedUrl, processedSizes, src, width, numericAspectRatio]);\n\n\tconst sizesAttribute = useMemo(() => {\n\t\tif (srcSetAttribute && processedSizes) {\n\t\t\treturn createSizesAttribute(processedSizes);\n\t\t}\n\t\treturn undefined;\n\t}, [srcSetAttribute, processedSizes]);\n\n\tconst widthAttribute = width ?? targetAspectRatio?.[0];\n\tconst heightAttribute = height ?? targetAspectRatio?.[1];\n\n\tconst imageProps: ImageElementProps = {\n\t\tsrc,\n\t\tsrcSet: srcSetAttribute,\n\t\tsizes: sizesAttribute,\n\t\twidth: widthAttribute,\n\t\theight: heightAttribute,\n\t\tloading: belowTheFold ? 'lazy' : undefined,\n\t\tfetchpriority: fetchPriority,\n\t\tclassName,\n\t\tstyle,\n\t};\n\n\treturn <img {...imageProps} alt={alt} />;\n};\n\nexport {\n\tImage,\n\tdetectIsAmberOptimizedUrl,\n\tisAmberHost,\n\ttoAmberCdnUrl,\n\ttryAddAmberLimit,\n\ttryUpgradeAmberUrlToCdn,\n\tamberCdnHost,\n};\nexport type { ImageProps, ImageSizes, SizeDescriptor };\n","import React from 'react';\nimport { CommandSentence } from '@faithlife/command-sentence-control';\nimport { useLocalization } from '../../../localization';\n\nexport const UtcDateTimeDisplayFormatType = {\n\tEnclosed: 'Enclosed',\n\tPlain: 'Plain',\n};\n\nconst UtcDateTimeDisplay = ({ formattedDateTime, formatType = UtcDateTimeDisplayFormatType.Enclosed }) => {\n\tconst resources = useLocalization('CommerceWeb.Resources.Layout');\n\tconst template = resources[`UtcDateTimeDisplayFormat${formatType}`];\n\n\tif (!template) {\n\t\treturn formattedDateTime;\n\t}\n\n\treturn (\n\t\t<CommandSentence Container={React.Fragment} template={template}>\n\t\t\t<CommandSentence.Field name=\"FORMATTEDDATETIME\">{formattedDateTime}</CommandSentence.Field>\n\t\t</CommandSentence>\n\t);\n};\n\nexport default UtcDateTimeDisplay;\n","import React from 'react';\nimport { InfoIcon } from '@faithlife/commerce-components';\nimport Tooltip from '../shared/tooltip';\n\nexport default function PricingLink({ description, link }) {\n\treturn (\n\t\t<Tooltip\n\t\t\tclassName=\"dynamically-priced-tooltip\"\n\t\t\tplacement=\"bottom\"\n\t\t\tlink={<InfoIcon size={12} className=\"ml-1\" />}\n\t\t\tcontentStyles={{ maxWidth: ['calc(100vw - 24px)', '300px'] }}\n\t\t>\n\t\t\t<div className=\"dynamically-priced-tooltip-content ui3\">\n\t\t\t\t{description}\n\t\t\t\t<span dangerouslySetInnerHTML={{ __html: link }} />\n\t\t\t</div>\n\t\t</Tooltip>\n\t);\n}\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { CommandSentence } from '@faithlife/command-sentence-control';\nimport { useDebouncedCallback } from '@faithlife/react-ui';\nimport { Button, TrashIcon, StepperControl, Typography } from '@faithlife/commerce-components';\nimport checkoutService from '../../cart/services/checkoutservice';\nimport eventAggregator from '../../cart/utility/eventaggregator';\nimport { useLocalization } from '../../localization';\nimport { Image } from '../shared/enhanced-image-tag/image';\nimport PricingLink from './PricingLink';\n\nconst QuantityStatus = {\n\tInvalid: 'invalid',\n\tUpToDate: 'up-to-date',\n\tUpdating: 'updating',\n};\n\nexport function ShoppingCartItem({\n\tautoRenews,\n\tcartItems,\n\tcontainsBundledItems,\n\tisInCheckout,\n\tisDeliveredToGroup,\n\tisModifiable,\n\titem,\n\tshowCartSaveForLater,\n\tupdateUrl,\n\tusesForeignCurrency,\n\tshouldShowYoursForever,\n\tisMiniCart,\n\tremoveWishListItem,\n\taddWishListItemToCart,\n}) {\n\tconst resources = useLocalization('Logos.CommerceWeb.ShoppingCarts.Resources.ShoppingCart');\n\tconst [enteredQuantity, setEnteredQuantity] = useState(item.quantity);\n\tconst [quantityStatus, setQuantityStatus] = useState(QuantityStatus.UpToDate);\n\tconst commitQuantityUpdateRef = useRef(null);\n\n\tconst intraCartItems =\n\t\titem.intraCartDynamicPriceContributingCartItemIds?.length > 0\n\t\t\t? cartItems.filter(({ cartItemIds }) =>\n\t\t\t\t\tcartItemIds.find(id => item.intraCartDynamicPriceContributingCartItemIds.includes(id))\n\t\t\t\t)\n\t\t\t: [];\n\n\tconst handleRemoveItemFromCart = useCallback(\n\t\t(saveForLater = false) => {\n\t\t\tcommitQuantityUpdateRef.current?.cancel();\n\t\t\teventAggregator.trigger('cart:updating');\n\t\t\tif (updateUrl) {\n\t\t\t\tcheckoutService\n\t\t\t\t\t.updateCart(updateUrl, { quantityByCartItemId: item.cartItemQuantitiesAfterRemoval, saveForLater })\n\t\t\t\t\t.then(\n\t\t\t\t\t\tfunction onRemoveSuccess(data) {\n\t\t\t\t\t\t\teventAggregator.trigger('cart:updated', data);\n\t\t\t\t\t\t\teventAggregator.trigger(saveForLater ? 'cart:savedForLater' : 'cart:removed', item.quantity);\n\t\t\t\t\t\t\tdocument.dispatchEvent(new CustomEvent('faithlife.sites.cart.updated', { detail: { cart: data } }));\n\t\t\t\t\t\t\tfor (const item of data.order.analyticsTelemetry ?? []) {\n\t\t\t\t\t\t\t\twindow.dataLayer.push(item);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfunction onRemoveFailure(e) {\n\t\t\t\t\t\t\teventAggregator.trigger('cart:error');\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t[updateUrl, item]\n\t);\n\n\tconst commitQuantityUpdate = useDebouncedCallback(newQuantity => {\n\t\tif (newQuantity < 1) {\n\t\t\thandleRemoveItemFromCart();\n\t\t\treturn;\n\t\t}\n\n\t\tsetQuantityStatus(QuantityStatus.Updating);\n\t\teventAggregator.trigger('cart:updating');\n\n\t\tconst quantityByCartItemId = {};\n\t\tquantityByCartItemId[item.id] = newQuantity;\n\n\t\tcheckoutService\n\t\t\t.updateCart(updateUrl, { quantityByCartItemId })\n\t\t\t.done(function (data) {\n\t\t\t\teventAggregator.trigger('cart:updated', data);\n\t\t\t})\n\t\t\t.fail(function () {\n\t\t\t\teventAggregator.trigger('cart:error');\n\t\t\t})\n\t\t\t.always(function () {\n\t\t\t\tsetQuantityStatus(QuantityStatus.UpToDate);\n\t\t\t});\n\t}, 300);\n\n\tcommitQuantityUpdateRef.current = commitQuantityUpdate;\n\n\tuseEffect(() => () => commitQuantityUpdateRef.current?.cancel(), []);\n\n\tconst updateQuantity = useCallback(\n\t\tnewQuantity => {\n\t\t\tsetEnteredQuantity(newQuantity);\n\t\t\tcommitQuantityUpdate(newQuantity);\n\t\t},\n\t\t[commitQuantityUpdate]\n\t);\n\n\tconst handleRemoveWishListItem = useCallback(async () => {\n\t\tawait removeWishListItem(item.id);\n\t\teventAggregator.trigger('wishlist:updating');\n\t}, [removeWishListItem, item]);\n\n\tconst handleAddWishListItemToCart = useCallback(() => {\n\t\tif (!addWishListItemToCart) {\n\t\t\treturn;\n\t\t}\n\t\taddWishListItemToCart(item.id, item.skuIds);\n\t}, [addWishListItemToCart, item]);\n\n\tfunction foreignCurrency(text, isNegative) {\n\t\treturn (\n\t\t\tusesForeignCurrency && (\n\t\t\t\t<Typography\n\t\t\t\t\ttag=\"span\"\n\t\t\t\t\tvariant=\"ui4\"\n\t\t\t\t\tclassName={`${isNegative ? 'before:content-[\"(-\"]' : 'before:content-[\"(\"]'} after:content-[')']`}\n\t\t\t\t>\n\t\t\t\t\t{text}\n\t\t\t\t</Typography>\n\t\t\t)\n\t\t);\n\t}\n\n\tconst amountTodayBefore = item.prepubInfo ? resources.AmountToday.replace(/\\{0\\}.*/, '') : '';\n\tconst amountTodayAfter = item.prepubInfo ? resources.AmountToday.replace(/.*\\{0\\}/, '') : '';\n\n\tfunction renderPriceAndActions() {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName={`flex flex-col ${\n\t\t\t\t\tisMiniCart ? 'items-start' : 'items-start md:items-end'\n\t\t\t\t} gap-4 justify-start text-[#00042F] flex-shrink-0`}\n\t\t\t>\n\t\t\t\t<div className={`flex flex-col gap-1 ${isMiniCart ? 'items-start' : 'items-start md:items-end'}`}>\n\t\t\t\t\t{(item.isDiscounted && item.discountPercent > 0) || Boolean(item.anchorPriceCurrencyText) ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName={`text-[#CC3333] flex flex-col gap-1 ${\n\t\t\t\t\t\t\t\t\tisMiniCart ? 'items-start' : 'items-start md:items-end'\n\t\t\t\t\t\t\t\t}`}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Typography variant=\"ui2\" tag=\"span\" className=\"font-[700]\">\n\t\t\t\t\t\t\t\t\t{item.extendedPriceUsdCurrencyText}\n\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t{usesForeignCurrency && foreignCurrency(item.extendedPriceCurrencyText, false)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<Typography tag=\"div\" className=\"text-primary-500\" variant=\"ui4\">\n\t\t\t\t\t\t\t\t<CommandSentence template={resources.PercentOff}>\n\t\t\t\t\t\t\t\t\t<CommandSentence.Field name=\"DISCOUNT_PERCENT\">{item.discountPercent}</CommandSentence.Field>\n\t\t\t\t\t\t\t\t</CommandSentence>\n\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t<div className=\"line-through flex flex-row text-primary-500 gap-1 items-end justify-end\">\n\t\t\t\t\t\t\t\t<Typography tag=\"span\" variant=\"ui4\">\n\t\t\t\t\t\t\t\t\t{item.anchorPriceUsdCurrencyText || item.extendedPreDiscountPriceUsdCurrencyText}\n\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t{usesForeignCurrency &&\n\t\t\t\t\t\t\t\t\tforeignCurrency(item.anchorPriceCurrencyText || item.extendedPreDiscountPriceCurrencyText, false)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<div className=\"flex flex-row gap-1 items-end justify-end\">\n\t\t\t\t\t\t\t\t{item.prepubInfo && amountTodayBefore && (\n\t\t\t\t\t\t\t\t\t<Typography tag=\"span\" variant=\"ui2\">\n\t\t\t\t\t\t\t\t\t\t{amountTodayBefore}\n\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t<Typography variant=\"ui2\" className=\"font-bold\">\n\t\t\t\t\t\t\t\t\t{item.extendedPriceUsdCurrencyText}\n\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t{item.prepubInfo && amountTodayAfter && (\n\t\t\t\t\t\t\t\t\t<Typography tag=\"span\" variant=\"ui2\">\n\t\t\t\t\t\t\t\t\t\t{amountTodayAfter}\n\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{usesForeignCurrency && foreignCurrency(item.extendedPriceCurrencyText, false)}\n\t\t\t\t\t\t\t{item.prepubInfo && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<Typography variant=\"ui2\" className=\"flex flex-row gap-1 text-[16px] items-end justify-end\">\n\t\t\t\t\t\t\t\t\t\t<CommandSentence template={resources.DueWhenShipped}>\n\t\t\t\t\t\t\t\t\t\t\t<CommandSentence.Field name=\"PREORDER_AMOUNT\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"font-bold\"> {item.prepubInfo.dynamicPriceUsdCurrencyText}</span>\n\t\t\t\t\t\t\t\t\t\t\t</CommandSentence.Field>\n\t\t\t\t\t\t\t\t\t\t</CommandSentence>\n\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t\t{usesForeignCurrency && foreignCurrency(item.prepubInfo.dynamicPriceCurrencyText, false)}\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t\t<div className={`flex flex-row justify-between items-center ${isMiniCart ? 'gap-6' : 'gap-6 md:gap-8'}`}>\n\t\t\t\t\t{showCartSaveForLater && !containsBundledItems && item.isDisplayable && !item.prepubInfo && isModifiable && (\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tclassName=\"bg-transparent border-0 text-[var(--heading-color)] text-[16px] cursor-pointer outline-none underline\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\tonClick={() => handleRemoveItemFromCart(true)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Typography tag=\"span\" variant=\"ui2\">\n\t\t\t\t\t\t\t\t{resources.SaveForLater}\n\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t)}\n\t\t\t\t\t{(isModifiable || removeWishListItem) && (\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tclassName=\"bg-transparent border-0 text-[var(--link)] text-[16px] cursor-pointer outline-none\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\ttitle={resources.Remove}\n\t\t\t\t\t\t\taria-label={resources.Remove}\n\t\t\t\t\t\t\tdata-testid=\"remove-item-button\"\n\t\t\t\t\t\t\tonClick={() => (removeWishListItem ? handleRemoveWishListItem() : handleRemoveItemFromCart())}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<TrashIcon className=\"h-[18px] w-[18px] text-primary-500\" />\n\t\t\t\t\t\t</button>\n\t\t\t\t\t)}\n\t\t\t\t\t{addWishListItemToCart && (\n\t\t\t\t\t\t<Button scale={`medium`} variant={`secondary`} onClick={handleAddWishListItemToCart} textStyle={`ui.12`}>\n\t\t\t\t\t\t\t<Typography tag=\"span\" variant=\"ui1\">\n\t\t\t\t\t\t\t\t{resources.AddToCart}\n\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)}\n\t\t\t\t\t{item.allowsMultipleQuantity && isModifiable && (\n\t\t\t\t\t\t<StepperControl\n\t\t\t\t\t\t\tscale=\"sm\"\n\t\t\t\t\t\t\tvalue={enteredQuantity}\n\t\t\t\t\t\t\tmin={0}\n\t\t\t\t\t\t\tdisabled={quantityStatus === QuantityStatus.Updating}\n\t\t\t\t\t\t\tonValueChange={updateQuantity}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tclassName={`flex flex-col ${\n\t\t\t\t\tisMiniCart ? '' : 'md:flex-row md:justify-between md:gap-0'\n\t\t\t\t} border-0 ${isInCheckout ? 'border-b pb-[12px] ' : 'border-t pt-[24px]'} border-solid border-[#00042F] text-[#00042F]`}\n\t\t\t>\n\t\t\t\t<div className={`flex flex-row items-start ${isMiniCart ? '' : 'md:flex-1'}`}>\n\t\t\t\t\t{isModifiable && item.url && item.isDisplayable ? (\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\tdata-testid=\"line-item-image\"\n\t\t\t\t\t\t\thref={item.url}\n\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\t\t\tclassName={`shrink-0 ${isMiniCart ? 'w-20 mr-3' : 'w-20 mr-3 md:w-[96px] md:mr-0'}`}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\t\tsrc={item.thumbnailUrl}\n\t\t\t\t\t\t\t\talt=\"\"\n\t\t\t\t\t\t\t\tsizes={{ mobile: 80, desktop: 80 }}\n\t\t\t\t\t\t\t\ttargetAspectRatio={[1613, 2475]}\n\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\tisMiniCart ? 'w-20 h-auto' : 'w-20 h-auto md:h-[120px] md:w-auto md:max-w-[80px] md:object-contain'\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</a>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<div className={`shrink-0 ${isMiniCart ? 'w-20 mr-3' : 'w-20 mr-3 md:w-[96px] md:mr-0'}`}>\n\t\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\t\tsrc={item.thumbnailUrl}\n\t\t\t\t\t\t\t\talt=\"\"\n\t\t\t\t\t\t\t\tsizes={{ mobile: 80, desktop: 80 }}\n\t\t\t\t\t\t\t\ttargetAspectRatio={[1613, 2475]}\n\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\tisMiniCart ? 'w-20 h-auto' : 'w-20 h-auto md:h-[120px] md:w-auto md:max-w-[80px] md:object-contain'\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={`flex flex-col items-start gap-1 max-w-[480px] ${\n\t\t\t\t\t\t\tisMiniCart ? '' : 'md:grid md:flex-1 md:max-w-none md:grid-cols-[minmax(0,1fr)_auto]'\n\t\t\t\t\t\t}`}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className={`flex flex-col items-start gap-1 ${isMiniCart ? '' : 'md:min-w-0 md:max-w-[480px]'}`}>\n\t\t\t\t\t\t\t{item.url && item.isDisplayable && isModifiable ? (\n\t\t\t\t\t\t\t\t<Typography\n\t\t\t\t\t\t\t\t\ttag=\"a\"\n\t\t\t\t\t\t\t\t\thref={item.url}\n\t\t\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\t\t\t\t\tdata-testid=\"line-item-description\"\n\t\t\t\t\t\t\t\t\tclassName=\"font-[700] no-underline hover:underline text-inherit hover:text-inherit\"\n\t\t\t\t\t\t\t\t\tvariant=\"ui2\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{item.description}\n\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<Typography tag=\"span\" data-testid=\"line-item-description\" className=\"font-[700]\" variant=\"ui2\">\n\t\t\t\t\t\t\t\t\t{item.description}\n\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t<div className=\"my-2 flex flex-col items-start\">\n\t\t\t\t\t\t\t\t{(item.prepubStatus || item.prepubInfo) && (\n\t\t\t\t\t\t\t\t\t<div className=\"flex flex-row gap-1 items-center text-[#00042F]\">\n\t\t\t\t\t\t\t\t\t\t<Typography tag=\"span\" variant=\"ui4\">\n\t\t\t\t\t\t\t\t\t\t\t{resources.PreOrderItem}\n\t\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t\t\t<Typography tag=\"span\" variant=\"ui4\">\n\t\t\t\t\t\t\t\t\t\t\t{item.prepubStatus || item.prepubInfo.status}\n\t\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{(item.isIntraCartDynamicallyPriced || item.isOwnershipDynamicallyPriced) && (\n\t\t\t\t\t\t\t\t\t<span className=\"flex flex-row justify-center items-center mt-0.5\">\n\t\t\t\t\t\t\t\t\t\t<Typography tag=\"span\" variant=\"ui4\">\n\t\t\t\t\t\t\t\t\t\t\t{resources.CartDynamicPricingMessage}\n\t\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t\t\t{item.isIntraCartDynamicallyPriced && (\n\t\t\t\t\t\t\t\t\t\t\t<PricingLink\n\t\t\t\t\t\t\t\t\t\t\t\tlink={resources.CartDynamicPricingLearnMoreLink}\n\t\t\t\t\t\t\t\t\t\t\t\tdescription={\n\t\t\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{intraCartItems.length > 0 ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Typography tag=\"p\" variant=\"ui4\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{resources.DetailedIntraCartDynamicPricingMessage}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ul>{intraCartItems.map(item => item && <li key={item.id}>{item.description}</li>)}</ul>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Typography tag=\"span\" variant=\"ui4\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{resources.IntraCartDynamicPricingMessage}{' '}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t{item.isOwnershipDynamicallyPriced && (\n\t\t\t\t\t\t\t\t\t\t\t<PricingLink\n\t\t\t\t\t\t\t\t\t\t\t\tlink={resources.CartDynamicPricingLearnMoreLink}\n\t\t\t\t\t\t\t\t\t\t\t\tdescription={\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Typography tag=\"span\" variant=\"ui4\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{resources.OwnershipDynamicPricingMessage}{' '}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{shouldShowYoursForever && item.isDigitallyFulfilled && item.isPermanentlyAccessible && (\n\t\t\t\t\t\t\t\t\t<span className=\"flex flex-row justify-center items-center mt-0.5\">\n\t\t\t\t\t\t\t\t\t\t<Typography tag=\"span\" variant=\"ui4\">\n\t\t\t\t\t\t\t\t\t\t\t{resources.YoursForever}\n\t\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t\t\t<PricingLink\n\t\t\t\t\t\t\t\t\t\t\tlink=\"\"\n\t\t\t\t\t\t\t\t\t\t\tdescription={\n\t\t\t\t\t\t\t\t\t\t\t\t<Typography tag=\"span\" variant=\"ui4\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{resources.YoursForeverDescription}\n\t\t\t\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{item.isDiscounted && item.discountDescription && (\n\t\t\t\t\t\t\t\t\t<Typography tag=\"span\" variant=\"ui4\" className=\"text-[12px] font-[400] text-[#00042F]\">\n\t\t\t\t\t\t\t\t\t\t{item.discountDescription}\n\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{item.restrictionMessageHtml && (\n\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\tclassName=\"block mt-0.5 text-(--invalid-color)\"\n\t\t\t\t\t\t\t\t\t\tdangerouslySetInnerHTML={{ __html: item.restrictionMessageHtml }}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t<span className=\"block mt-0.5 text-(--invalid-color)\">{item.expiredExtendedPriceCurrencyHtml}</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{renderPriceAndActions()}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t{item.prepubInfo && item.prepubInfo.isDynamicPricingInEffect && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={`flex flex-col ${\n\t\t\t\t\t\tisMiniCart ? '' : 'md:flex-row md:justify-between'\n\t\t\t\t\t} border-0 border-solid border-[#00042F] pt-4 text-[#00042F]`}\n\t\t\t\t>\n\t\t\t\t\t<Typography variant=\"bodySmall\">\n\t\t\t\t\t\t{resources.PrepubDynamicPriceNotification.replace(\n\t\t\t\t\t\t\t'{0}',\n\t\t\t\t\t\t\titem.prepubInfo.priceUsdCurrencyText +\n\t\t\t\t\t\t\t\t(usesForeignCurrency ? ' (' + item.prepubInfo.priceCurrencyText + ')' : '')\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Typography>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</>\n\t);\n}\n","import React from 'react';\nimport { Typography } from '@faithlife/commerce-components';\nimport { CommandSentence } from '@faithlife/command-sentence-control';\nimport { useLocalization } from '../../localization';\n\nexport default function SubscriptionPriceBlock({ usesForeignCurrency, item, isContentChange, isMiniCart }) {\n\tconst resources = useLocalization('Logos.CommerceWeb.ShoppingCarts.Resources.ShoppingCart');\n\tconst renewalKind = renewalKindType => {\n\t\tswitch (renewalKindType) {\n\t\t\tcase 'Day':\n\t\t\t\treturn resources.Day;\n\t\t\tcase 'Month':\n\t\t\t\treturn resources.Month;\n\t\t\tcase 'Year':\n\t\t\t\treturn resources.Year;\n\t\t}\n\t};\n\n\tfunction foreignCurrency(text, isNegative) {\n\t\treturn (\n\t\t\tusesForeignCurrency && (\n\t\t\t\t<Typography\n\t\t\t\t\ttag=\"span\"\n\t\t\t\t\tvariant=\"ui4\"\n\t\t\t\t\tclassName={`${isNegative ? 'before:content-[\"(-\"]' : 'before:content-[\"(\"]'} after:content-[')']`}\n\t\t\t\t>\n\t\t\t\t\t{text}\n\t\t\t\t</Typography>\n\t\t\t)\n\t\t);\n\t}\n\n\tconst discountBlock =\n\t\titem.isDiscounted &&\n\t\titem.discounts.map(discount => (\n\t\t\t<div\n\t\t\t\tkey={discount.discountId}\n\t\t\t\tclassName={`flex flex-col w-full ${\n\t\t\t\t\tisMiniCart ? 'items-start' : 'items-start md:items-end'\n\t\t\t\t} justify-center gap-1 my-1 text-[#00042F]`}\n\t\t\t>\n\t\t\t\t<Typography tag=\"span\" variant=\"ui4\">\n\t\t\t\t\t{isMiniCart ? (\n\t\t\t\t\t\tresources.DiscountApplied\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<span className=\"md:hidden\">{resources.DiscountApplied}</span>\n\t\t\t\t\t\t\t<span className=\"hidden md:inline\">{discount.description}</span>\n\t\t\t\t\t\t</>\n\t\t\t\t\t)}\n\t\t\t\t</Typography>\n\t\t\t\t{discount.isImmediateDiscountAmountNonZero && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<div className=\"flex flex-row gap-1 items-center\">\n\t\t\t\t\t\t\t<Typography tag=\"span\" variant=\"ui4\">\n\t\t\t\t\t\t\t\t{resources.Original}\n\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t<div className=\"line-through flex flex-row gap-1 items-center\">\n\t\t\t\t\t\t\t\t<Typography tag=\"span\" variant=\"ui4\">\n\t\t\t\t\t\t\t\t\t{item.anchorPricePreDiscountUsdText}\n\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t{foreignCurrency(item.anchorPricePreDiscountCurrencyText, false)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div className=\"flex flex-row gap-1 items-center\">\n\t\t\t\t\t\t\t<Typography tag=\"span\" variant=\"ui4\">\n\t\t\t\t\t\t\t\t{resources.Discount}\n\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t<div className=\"flex flex-row gap-1 items-center\">\n\t\t\t\t\t\t\t\t<Typography tag=\"span\" variant=\"ui4\">\n\t\t\t\t\t\t\t\t\t{'-' + discount.discountAmountUsdText}\n\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t{foreignCurrency(discount.discountAmountText, true)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t));\n\n\treturn (\n\t\t<div className={`flex flex-col ${isMiniCart ? 'items-start' : 'items-start md:items-end'} text-primary-500`}>\n\t\t\t{isContentChange ? (\n\t\t\t\t<>\n\t\t\t\t\t{item.totalProratedBalanceAppliedValue !== null && item.totalProratedBalanceAppliedValue >= 0 ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Typography tag=\"div\" className=\"font-bold\" variant=\"ui2\">\n\t\t\t\t\t\t\t\t{item.extendedPriceUsdText}\n\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t{foreignCurrency(item.extendedPriceCurrencyText, false)}\n\t\t\t\t\t\t</>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Typography tag=\"div\" className=\"font-bold\" variant=\"ui2\">\n\t\t\t\t\t\t\t\t<CommandSentence\n\t\t\t\t\t\t\t\t\ttemplate={\n\t\t\t\t\t\t\t\t\t\titem.quantity > 1\n\t\t\t\t\t\t\t\t\t\t\t? resources.RenewalStatementMultiTerm\n\t\t\t\t\t\t\t\t\t\t\t: item.term === 'Year'\n\t\t\t\t\t\t\t\t\t\t\t\t? resources.RenewalStatementYearly\n\t\t\t\t\t\t\t\t\t\t\t\t: resources.RenewalStatementMonthly\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<CommandSentence.Field name=\"RENEWAL_AMOUNT\">{item.extendedPriceUsdText}</CommandSentence.Field>\n\t\t\t\t\t\t\t\t</CommandSentence>\n\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t{foreignCurrency(item.extendedPriceCurrencyText, false)}\n\t\t\t\t\t\t</>\n\t\t\t\t\t)}\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\tisMiniCart\n\t\t\t\t\t\t\t\t? 'mt-2 flex flex-col justify-center items-start gap-1 text-[16px]'\n\t\t\t\t\t\t\t\t: 'mt-2 flex flex-col justify-center items-start md:mt-1 md:items-end gap-1 text-[16px]'\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{discountBlock}\n\t\t\t\t\t</div>\n\t\t\t\t</>\n\t\t\t) : item.isFreeTrial ? (\n\t\t\t\t<>\n\t\t\t\t\t<Typography tag=\"div\" variant=\"bodySmall\" className=\"font-bold text-[16px]\">\n\t\t\t\t\t\t<CommandSentence template={resources.FreeTrialStatement}>\n\t\t\t\t\t\t\t<CommandSentence.Field name=\"TRIAL_COUNT\">{item.freeTrialPeriod}</CommandSentence.Field>\n\t\t\t\t\t\t\t<CommandSentence.Field name=\"TRIAL_PERIOD_KIND\">\n\t\t\t\t\t\t\t\t{renewalKind(item.freeTrialPeriodKind)}\n\t\t\t\t\t\t\t</CommandSentence.Field>\n\t\t\t\t\t\t</CommandSentence>\n\t\t\t\t\t</Typography>\n\n\t\t\t\t\t<Typography tag=\"div\" variant=\"finePrint\">\n\t\t\t\t\t\t<CommandSentence\n\t\t\t\t\t\t\ttemplate={\n\t\t\t\t\t\t\t\titem.quantity > 1\n\t\t\t\t\t\t\t\t\t? resources.RenewalStatementFreeTrialMultiTerm\n\t\t\t\t\t\t\t\t\t: item.term === 'Year'\n\t\t\t\t\t\t\t\t\t\t? resources.RenewalStatementFreeTrialYearly\n\t\t\t\t\t\t\t\t\t\t: resources.RenewalStatementFreeTrialMonthly\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<CommandSentence.Field name=\"RENEWAL_AMOUNT\">{item.nextRenewalPriceUsdText}</CommandSentence.Field>\n\t\t\t\t\t\t</CommandSentence>\n\t\t\t\t\t</Typography>\n\n\t\t\t\t\t{discountBlock}\n\t\t\t\t</>\n\t\t\t) : (\n\t\t\t\t<>\n\t\t\t\t\t{item.isDiscounted && (\n\t\t\t\t\t\t<div className=\"line-through\">\n\t\t\t\t\t\t\t{usesForeignCurrency ? item.anchorPricePreDiscountCurrencyText : item.anchorPricePreDiscountUsdText}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{discountBlock}\n\n\t\t\t\t\t<Typography tag=\"div\" variant=\"bodySmall\" className=\"font-bold\">\n\t\t\t\t\t\t<CommandSentence\n\t\t\t\t\t\t\ttemplate={\n\t\t\t\t\t\t\t\titem.quantity > 1\n\t\t\t\t\t\t\t\t\t? resources.RenewalStatementMultiTerm\n\t\t\t\t\t\t\t\t\t: item.term === 'Year'\n\t\t\t\t\t\t\t\t\t\t? resources.RenewalStatementYearly\n\t\t\t\t\t\t\t\t\t\t: resources.RenewalStatementMonthly\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<CommandSentence.Field name=\"RENEWAL_AMOUNT\">\n\t\t\t\t\t\t\t\t{isContentChange ? item.anchorPricePreDiscountUsdText : item.extendedPriceUsdText}\n\t\t\t\t\t\t\t</CommandSentence.Field>\n\t\t\t\t\t\t</CommandSentence>\n\t\t\t\t\t</Typography>\n\n\t\t\t\t\t{foreignCurrency(item.extendedPriceCurrencyText, false)}\n\t\t\t\t</>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { CommandSentence } from '@faithlife/command-sentence-control';\nimport { useDebouncedCallback } from '@faithlife/react-ui';\nimport {\n\tReplaceIcon,\n\tTrashIcon,\n\tSubscriptionIcon,\n\tNewPageIcon,\n\tStepperControl,\n\tInfoIcon,\n\tCheckbox,\n\tTypography,\n} from '@faithlife/commerce-components';\nimport checkoutService from '../../cart/services/checkoutservice';\nimport eventAggregator from '../../cart/utility/eventaggregator';\nimport { useLocalization } from '../../localization';\nimport UtcDateTimeDisplay from '../shared/utc-date-time-display';\nimport { Image } from '../shared/enhanced-image-tag/image';\nimport SubscriptionPriceBlock from './SubscriptionPriceBlock';\n\nconst QuantityStatus = {\n\tInvalid: 'invalid',\n\tUpToDate: 'up-to-date',\n\tUpdating: 'updating',\n};\n\nexport function ShoppingCartSubscribableItem({\n\tisInCheckout,\n\tisModifiable,\n\titem,\n\tupdateUrl,\n\tupsellDetailsUrl,\n\tusesForeignCurrency,\n\tisMiniCart,\n}) {\n\tconst resources = useLocalization('Logos.CommerceWeb.ShoppingCarts.Resources.ShoppingCart');\n\tconst [enteredQuantity, setEnteredQuantity] = useState(item.quantity);\n\tconst [quantityStatus, setQuantityStatus] = useState(QuantityStatus.UpToDate);\n\tconst commitQuantityUpdateRef = useRef(null);\n\tconst [logosSubTitle, logosSubTerm] = item.isLogosSubscription\n\t\t? item.description.split(' - ', 2)\n\t\t: [undefined, undefined];\n\tconst renewalStatementTemplate =\n\t\titem.quantity > 1\n\t\t\t? resources.RenewalStatementMultiTerm\n\t\t\t: item.existingSubscribedToOption?.term === 'Year'\n\t\t\t\t? resources.RenewalStatementYearly\n\t\t\t\t: resources.RenewalStatementMonthly;\n\n\tfunction handleRemove(saveForLater = false) {\n\t\tcommitQuantityUpdateRef.current?.cancel();\n\t\teventAggregator.trigger('cart:updating');\n\t\tcheckoutService\n\t\t\t.updateCart(updateUrl, {\n\t\t\t\tquantityByCartSubscribableItemId: { [item.cartSubscribableItemId]: 0 },\n\t\t\t\tsaveForLater,\n\t\t\t})\n\t\t\t.then(\n\t\t\t\tfunction onRemoveSuccess(data) {\n\t\t\t\t\teventAggregator.trigger('cart:updated', data);\n\t\t\t\t\teventAggregator.trigger(saveForLater ? 'cart:savedForLater' : 'cart:removed', item.quantity);\n\t\t\t\t\tdocument.dispatchEvent(new CustomEvent('faithlife.sites.cart.updated', { detail: { cart: data } }));\n\t\t\t\t\tfor (const item of data.order.analyticsTelemetry ?? []) {\n\t\t\t\t\t\twindow.dataLayer.push(item);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tfunction onRemoveFailure(e) {\n\t\t\t\t\teventAggregator.trigger('cart:error');\n\t\t\t\t}\n\t\t\t);\n\t}\n\n\tconst [upsell, setUpsell] = useState(item.upsell);\n\tconst isUpsellUpdatingRef = useRef(false);\n\tconst handleUpsell = useCallback(\n\t\tasync event => {\n\t\t\tif (isUpsellUpdatingRef.current) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tisUpsellUpdatingRef.current = true;\n\t\t\tconst isUpsellSelected = event.target.checked;\n\t\t\teventAggregator.trigger('cart:updating');\n\t\t\tsetUpsell(state => ({ ...state, isUpsellSelected }));\n\n\t\t\tfunction onRemoveFailure(e) {\n\t\t\t\tisUpsellUpdatingRef.current = false;\n\t\t\t\tsetUpsell(state => ({ ...state, isUpsellSelected: !isUpsellSelected }));\n\t\t\t\teventAggregator.trigger('cart:error');\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcheckoutService\n\t\t\t\t\t.updateCart(updateUrl, isUpsellSelected ? upsell.updateTo : upsell.updateFrom)\n\t\t\t\t\t.then(function onRemoveSuccess(data) {\n\t\t\t\t\t\tisUpsellUpdatingRef.current = false;\n\t\t\t\t\t\teventAggregator.trigger('cart:updated', data);\n\t\t\t\t\t\tfor (const item of data.order.analyticsTelemetry ?? []) {\n\t\t\t\t\t\t\twindow.dataLayer.push(item);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, onRemoveFailure);\n\t\t\t} catch (e) {\n\t\t\t\tonRemoveFailure(e);\n\t\t\t}\n\t\t},\n\t\t[updateUrl, upsell?.updateFrom, upsell?.updateTo]\n\t);\n\n\tuseEffect(() => {\n\t\tif (upsell?.updateTo && upsell.updateFrom) {\n\t\t\tcheckoutService\n\t\t\t\t.getUpsellDetails(upsellDetailsUrl, {\n\t\t\t\t\tupdateTo: upsell.updateTo,\n\t\t\t\t\tupdateFrom: upsell.updateFrom,\n\t\t\t\t})\n\t\t\t\t.then(upsellUpdate => setUpsell(state => ({ ...state, ...upsellUpdate })));\n\t\t}\n\t}, [upsellDetailsUrl, upsell?.updateFrom, upsell?.updateTo]);\n\n\tconst debounceCartQuantityUpdate = useDebouncedCallback(quantity => {\n\t\tif (quantity < 1) {\n\t\t\thandleRemove();\n\t\t\treturn;\n\t\t}\n\n\t\tsetQuantityStatus(QuantityStatus.Updating);\n\t\teventAggregator.trigger('cart:updating');\n\t\tcheckoutService\n\t\t\t.updateCart(updateUrl, {\n\t\t\t\tquantityByCartSubscribableItemId: { [item.cartSubscribableItemId]: quantity },\n\t\t\t})\n\t\t\t.then(\n\t\t\t\tfunction onUpdateSuccess(data) {\n\t\t\t\t\teventAggregator.trigger('cart:updated', data);\n\t\t\t\t\tsetQuantityStatus(QuantityStatus.UpToDate);\n\t\t\t\t},\n\t\t\t\tfunction onUpdateFailure(e) {\n\t\t\t\t\teventAggregator.trigger('cart:error');\n\t\t\t\t\tsetQuantityStatus(QuantityStatus.UpToDate);\n\t\t\t\t}\n\t\t\t);\n\t}, 300);\n\n\tcommitQuantityUpdateRef.current = debounceCartQuantityUpdate;\n\n\tuseEffect(() => () => commitQuantityUpdateRef.current?.cancel(), []);\n\n\tconst updateQuantity = useCallback(\n\t\tnewQuantity => {\n\t\t\tsetEnteredQuantity(newQuantity);\n\t\t\tdebounceCartQuantityUpdate(newQuantity);\n\t\t},\n\t\t[debounceCartQuantityUpdate]\n\t);\n\n\tfunction appStoreSubscriptionLink(paymentTerm) {\n\t\tif (paymentTerm === 'GoogleInAppPurchase') {\n\t\t\treturn (\n\t\t\t\t<a\n\t\t\t\t\thref=\"https://play.google.com/store/account/subscriptions\"\n\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\tclassName=\"inline-flex items-center gap-1 text-[#1E6AFE]\"\n\t\t\t\t>\n\t\t\t\t\t<span className=\"underline\">{resources.GooglePlayStore}</span>\n\t\t\t\t\t<NewPageIcon className=\"inline-block h-[18px] w-[18px]\" />\n\t\t\t\t</a>\n\t\t\t);\n\t\t}\n\n\t\tif (paymentTerm === 'AppleInAppPurchase') {\n\t\t\treturn (\n\t\t\t\t<a\n\t\t\t\t\thref=\"https://buy.itunes.apple.com/WebObjects/MZFinance.woa/wa/manageSubscriptions\"\n\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\tclassName=\"inline-flex items-center gap-1 text-[#1E6AFE]\"\n\t\t\t\t>\n\t\t\t\t\t<span className=\"underline\">{resources.AppleAppStore}</span>\n\t\t\t\t\t<NewPageIcon className=\"inline-block h-[16px] w-[16px]\" />\n\t\t\t\t</a>\n\t\t\t);\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tfunction formatUpsellMessage(message) {\n\t\tconst text = message ?? '';\n\t\tconst saveMatch = /^(.*?)(\\bsave\\s+\\d+%.*)$/i.exec(text);\n\n\t\tif (!saveMatch) {\n\t\t\treturn text;\n\t\t}\n\n\t\tconst [, prefix, savePart] = saveMatch;\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{prefix}\n\t\t\t\t<strong>{savePart}</strong>\n\t\t\t</>\n\t\t);\n\t}\n\n\tfunction renderUpsell() {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName={`flex ${\n\t\t\t\t\tisMiniCart ? 'w-full justify-start' : 'w-full justify-start md:w-auto md:justify-end'\n\t\t\t\t} items-center bg-[#F5FBFF] py-3 px-4 mt-2 gap-2 text-primary-500`}\n\t\t\t>\n\t\t\t\t<Checkbox\n\t\t\t\t\tchecked={upsell.isUpsellSelected}\n\t\t\t\t\tonChange={handleUpsell}\n\t\t\t\t\tdata-testid=\"subscription-upsell\"\n\t\t\t\t\tid={`subscription-upsell-${item.cartSubscribableItemId}`}\n\t\t\t\t\tlabel={formatUpsellMessage(upsell.message)}\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tclassName={isMiniCart ? undefined : 'md:flex-row-reverse'}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tfunction renderTrashAndQuantity() {\n\t\treturn (\n\t\t\t<div className=\"flex flex-row gap-[24px] justify-center mt-3 text-primary-500\">\n\t\t\t\t<button\n\t\t\t\t\tclassName=\"bg-transparent text-[16px] cursor-pointer outline-hidden\"\n\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\ttitle={resources.Remove}\n\t\t\t\t\taria-label={resources.Remove}\n\t\t\t\t\tonClick={() => handleRemove()}\n\t\t\t\t>\n\t\t\t\t\t<TrashIcon className=\"h-[18px] w-[18px]\" />\n\t\t\t\t</button>\n\t\t\t\t{item.isMultipleQuantityAllowed && (\n\t\t\t\t\t<StepperControl\n\t\t\t\t\t\tscale=\"sm\"\n\t\t\t\t\t\tvalue={enteredQuantity}\n\t\t\t\t\t\tmin={0}\n\t\t\t\t\t\tdisabled={quantityStatus === QuantityStatus.Updating}\n\t\t\t\t\t\tonValueChange={updateQuantity}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t}\n\n\tfunction renderPriceAndActions() {\n\t\treturn (\n\t\t\t<div className={`contents ${isMiniCart ? '' : 'md:flex md:flex-col md:gap-2 md:items-end'}`}>\n\t\t\t\t<SubscriptionPriceBlock\n\t\t\t\t\titem={item}\n\t\t\t\t\tusesForeignCurrency={usesForeignCurrency}\n\t\t\t\t\tisContentChange={!!item.existingSubscribedToOption}\n\t\t\t\t\tisMiniCart={isMiniCart}\n\t\t\t\t/>\n\t\t\t\t{upsell && isModifiable && renderUpsell()}\n\t\t\t\t{isModifiable && renderTrashAndQuantity()}\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div className={`${isInCheckout ? 'pb-4 border-b border-solid border-[#00042F]' : ''}`}>\n\t\t\t<div\n\t\t\t\tclassName={`flex flex-col gap-2 ${\n\t\t\t\t\tisMiniCart ? '' : 'md:flex-row md:justify-between md:gap-0'\n\t\t\t\t} border-0 ${isInCheckout ? '' : 'border-t border-solid border-[#00042F] pt-[24px]'} mb-4`}\n\t\t\t>\n\t\t\t\t<div className={`flex flex-row items-start ${isMiniCart ? '' : 'md:flex-1'}`}>\n\t\t\t\t\t<div className={`relative shrink-0 mr-4 ${isMiniCart ? 'w-20' : 'w-20 md:w-[96px]'}`}>\n\t\t\t\t\t\t{item.isLogosSubscription ? (\n\t\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\t\tsrc={item.thumbnailUrl}\n\t\t\t\t\t\t\t\talt=\"\"\n\t\t\t\t\t\t\t\tsizes={{ mobile: 80, desktop: 80 }}\n\t\t\t\t\t\t\t\ttargetAspectRatio={[1, 1]}\n\t\t\t\t\t\t\t\tclassName=\"relative w-[80px] h-[80px] object-contain block rounded-lg\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\t\tsrc={item.thumbnailUrl}\n\t\t\t\t\t\t\t\talt=\"\"\n\t\t\t\t\t\t\t\tsizes={{ mobile: 80, desktop: 80 }}\n\t\t\t\t\t\t\t\ttargetAspectRatio={[1613, 2475]}\n\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\tisMiniCart\n\t\t\t\t\t\t\t\t\t\t? 'relative w-full h-auto block rounded-lg'\n\t\t\t\t\t\t\t\t\t\t: 'relative w-full h-auto block rounded-lg md:relative md:h-[120px] md:w-auto md:max-w-[80px] md:object-contain'\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={`flex flex-col items-start gap-2 w-full ${\n\t\t\t\t\t\t\tisMiniCart ? '' : 'md:grid md:grid-cols-[minmax(0,1fr)_auto]'\n\t\t\t\t\t\t}`}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className=\"flex flex-col items-start gap-2 md:min-w-0\">\n\t\t\t\t\t\t\t<div className=\"flex flex-row items-center gap-3 font-bold\">\n\t\t\t\t\t\t\t\t{logosSubTitle && (\n\t\t\t\t\t\t\t\t\t<div className=\"inline-flex items-center gap-1.5 border-2 border-solid border-[#00042F] rounded-full px-1\">\n\t\t\t\t\t\t\t\t\t\t<SubscriptionIcon className=\"w-[22px] h-[22px] text-[#00042F]\" />\n\t\t\t\t\t\t\t\t\t\t<span className=\"text-[22px] text-[#00042F] pr-1 font-[Alaska]\">{logosSubTitle}</span>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t<Typography className=\"text-primary-500 font-bold\" variant=\"ui2\" tag=\"span\">\n\t\t\t\t\t\t\t\t\t{logosSubTerm ? (\n\t\t\t\t\t\t\t\t\t\t<span data-testid=\"subscription-term\" className=\"hidden min-[375px]:inline\">\n\t\t\t\t\t\t\t\t\t\t\t{logosSubTerm}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\titem.description\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"text-primary-500\">\n\t\t\t\t\t\t\t\t{item.isAnnualBilledMonthly ? (\n\t\t\t\t\t\t\t\t\t<Typography variant=\"ui3\" tag=\"span\">\n\t\t\t\t\t\t\t\t\t\t{resources.AnnualBilledMonthly}\n\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t) : item.isMonthlyCommitmentMultiTerm ? (\n\t\t\t\t\t\t\t\t\t<Typography variant=\"ui3\" tag=\"span\">\n\t\t\t\t\t\t\t\t\t\t<CommandSentence template={resources.MonthlySubscriptionNonAnnualTerm}>\n\t\t\t\t\t\t\t\t\t\t\t<CommandSentence.Field name=\"RENEWAL_TERM\">{item.commitmentTermDisplay}</CommandSentence.Field>\n\t\t\t\t\t\t\t\t\t\t</CommandSentence>\n\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t) : item.term === 'Year' ? (\n\t\t\t\t\t\t\t\t\t<Typography variant=\"ui3\">{resources.AnnualSubscription}</Typography>\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<Typography variant=\"ui3\">{resources.MonthlySubscription}</Typography>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"pt-2 text-[14px] text-primary-500\">\n\t\t\t\t\t\t\t\t<div className=\"flex flex-row flex-wrap gap-1\">\n\t\t\t\t\t\t\t\t\t<Typography tag=\"span\" variant=\"ui3\">\n\t\t\t\t\t\t\t\t\t\t{item.isFreeTrial ? resources.FirstCharge : resources.NextCharge}\n\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t\t<Typography tag=\"span\" variant=\"ui3\">\n\t\t\t\t\t\t\t\t\t\t<CommandSentence template={resources.NextChargeValues}>\n\t\t\t\t\t\t\t\t\t\t\t<CommandSentence.Field name=\"CHARGE\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"font-bold\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{usesForeignCurrency ? item.nextRenewalPriceCurrencyText : item.nextRenewalPriceUsdText}\n\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t</CommandSentence.Field>\n\t\t\t\t\t\t\t\t\t\t\t<CommandSentence.Field name=\"CHARGE_DATE\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"font-bold\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<UtcDateTimeDisplay formattedDateTime={item.nextPaymentDate} />\n\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t</CommandSentence.Field>\n\t\t\t\t\t\t\t\t\t\t</CommandSentence>\n\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t{item.quantity > 1 && (\n\t\t\t\t\t\t\t\t\t<Typography tag=\"div\" variant=\"ui3\">\n\t\t\t\t\t\t\t\t\t\t<CommandSentence template={resources.AnnualAfter} className={'flex justify-start gap-1 py-0.5'}>\n\t\t\t\t\t\t\t\t\t\t\t<CommandSentence.Field name=\"RENEWAL_DATE\">\n\t\t\t\t\t\t\t\t\t\t\t\t<UtcDateTimeDisplay formattedDateTime={item.multiTermRenewalDate} />\n\t\t\t\t\t\t\t\t\t\t\t</CommandSentence.Field>\n\t\t\t\t\t\t\t\t\t\t</CommandSentence>\n\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t{item.isAnnualBilledMonthly && (\n\t\t\t\t\t\t\t\t\t<Typography tag=\"div\" variant=\"ui3\">\n\t\t\t\t\t\t\t\t\t\t<CommandSentence template={resources.AnnualCommitmentRenewal}>\n\t\t\t\t\t\t\t\t\t\t\t<CommandSentence.Field name=\"RENEWAL_DATE\">\n\t\t\t\t\t\t\t\t\t\t\t\t<UtcDateTimeDisplay formattedDateTime={item.nextRenewalDate} />\n\t\t\t\t\t\t\t\t\t\t\t</CommandSentence.Field>\n\t\t\t\t\t\t\t\t\t\t</CommandSentence>\n\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t{item.isMonthlyCommitmentMultiTerm && (\n\t\t\t\t\t\t\t\t\t<Typography tag=\"div\" variant=\"ui3\">\n\t\t\t\t\t\t\t\t\t\t<CommandSentence template={resources.NonAnnualCommitmentRenewal}>\n\t\t\t\t\t\t\t\t\t\t\t<CommandSentence.Field name=\"RENEWAL_TERM\">{item.commitmentTermDisplay}</CommandSentence.Field>\n\t\t\t\t\t\t\t\t\t\t\t<CommandSentence.Field name=\"RENEWAL_DATE\">\n\t\t\t\t\t\t\t\t\t\t\t\t<UtcDateTimeDisplay formattedDateTime={item.nextRenewalDate} />\n\t\t\t\t\t\t\t\t\t\t\t</CommandSentence.Field>\n\t\t\t\t\t\t\t\t\t\t</CommandSentence>\n\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{renderPriceAndActions()}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{item.existingSubscribedToOption && !item.isExistingSubscriptionExpired && (\n\t\t\t\t<div className=\"flex flex-col gap-2 items-start bg-[#F5FBFF] p-4 text-primary-500\">\n\t\t\t\t\t<div className=\"flex flex-row items-center justify-start gap-2\">\n\t\t\t\t\t\t<ReplaceIcon className=\"w-6 h-6 mx-auto\" />\n\t\t\t\t\t\t<Typography variant=\"bodySmall\" className=\"font-bold text-[16px]\">\n\t\t\t\t\t\t\t<CommandSentence template={resources.ReplacingSubscription}>\n\t\t\t\t\t\t\t\t<CommandSentence.Field name=\"SUBSCRIPTION_STATUS\">\n\t\t\t\t\t\t\t\t\t{resources.CurrentSubscriptionLower}\n\t\t\t\t\t\t\t\t</CommandSentence.Field>\n\t\t\t\t\t\t\t</CommandSentence>\n\t\t\t\t\t\t</Typography>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"flex flex-col border border-solid border-(--ui-border-color) w-full p-4 gap-1\">\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={`flex flex-col justify-center items-start gap-1 ${\n\t\t\t\t\t\t\t\tisMiniCart ? '' : 'md:flex-row md:justify-between md:items-center md:gap-0'\n\t\t\t\t\t\t\t}`}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Typography variant=\"ui2\">{item.existingSubscribedToOption.name}</Typography>\n\t\t\t\t\t\t\t<div className={`flex flex-col ${isMiniCart ? 'items-start' : 'items-start md:items-end'}`}>\n\t\t\t\t\t\t\t\t<Typography tag=\"div\" className=\"font-bold\" variant=\"ui2\">\n\t\t\t\t\t\t\t\t\t<CommandSentence key={renewalStatementTemplate} Container=\"span\" template={renewalStatementTemplate}>\n\t\t\t\t\t\t\t\t\t\t<CommandSentence.Field name=\"RENEWAL_AMOUNT\">\n\t\t\t\t\t\t\t\t\t\t\t{item.existingSubscribedToOption.anchorPricePreDiscountUsdText}\n\t\t\t\t\t\t\t\t\t\t</CommandSentence.Field>\n\t\t\t\t\t\t\t\t\t</CommandSentence>\n\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t{usesForeignCurrency && (\n\t\t\t\t\t\t\t\t\t<Typography tag=\"span\" variant=\"ui4\" className=\"before:content-['('] after:content-[')']\">\n\t\t\t\t\t\t\t\t\t\t{item.existingSubscribedToOption.anchorPricePreDiscountCurrencyText}\n\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{item.existingSubscriptionCurrentExpirationDate && (\n\t\t\t\t\t\t\t<Typography variant=\"ui4\" className=\"text-[#7A7A7A]\">\n\t\t\t\t\t\t\t\t<CommandSentence template={resources.SetToRenewOn}>\n\t\t\t\t\t\t\t\t\t<CommandSentence.Field name=\"RENEWAL_DATE\">\n\t\t\t\t\t\t\t\t\t\t<UtcDateTimeDisplay formattedDateTime={item.existingSubscriptionCurrentExpirationDate} />\n\t\t\t\t\t\t\t\t\t</CommandSentence.Field>\n\t\t\t\t\t\t\t\t</CommandSentence>\n\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t{isInCheckout &&\n\t\t\t\t!item.isExistingSubscriptionExpired &&\n\t\t\t\t(item.existingSubscriptionPaymentTerm === 'GoogleInAppPurchase' ||\n\t\t\t\t\titem.existingSubscriptionPaymentTerm === 'AppleInAppPurchase') && (\n\t\t\t\t\t<div className=\"flex flex-row gap-2 items-start mt-2\">\n\t\t\t\t\t\t<InfoIcon className=\"w-[14px] h-[14px] text-primary-500\" />\n\t\t\t\t\t\t<Typography variant=\"ui2\" className=\"text-primary-500\">\n\t\t\t\t\t\t\t<CommandSentence template={resources.AppManagedSubscription}>\n\t\t\t\t\t\t\t\t<CommandSentence.Field name=\"APP_STORE\">\n\t\t\t\t\t\t\t\t\t{item.existingSubscriptionPaymentTerm === 'GoogleInAppPurchase' ? resources.Google : resources.Apple}\n\t\t\t\t\t\t\t\t</CommandSentence.Field>\n\t\t\t\t\t\t\t\t<CommandSentence.Field name=\"APP_STORE_LINK\">\n\t\t\t\t\t\t\t\t\t{appStoreSubscriptionLink(item.existingSubscriptionPaymentTerm)}\n\t\t\t\t\t\t\t\t</CommandSentence.Field>\n\t\t\t\t\t\t\t</CommandSentence>\n\t\t\t\t\t\t</Typography>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t</div>\n\t);\n}\n","import React, { useState } from 'react';\nimport { Typography } from '@faithlife/commerce-components';\nimport { useCartEffect } from '../checkout-shared/useCartEffect';\nimport { useLocalization } from '../../localization';\nimport { ShoppingCartItem } from './ShoppingCartItem';\nimport { ShoppingCartSubscribableItem } from './ShoppingCartSubscribableItem';\n\nexport default function ShoppingCartItems({\n\tupdateUrl,\n\tupsellDetailsUrl,\n\tcartItems: initialCartItems,\n\tisInCheckout = false,\n\tisModifiable,\n\tisDeliveredToGroup,\n\tshowCartSaveForLater,\n\tcontainsBundledItems: initialContainsBundledItems,\n\tusesForeignCurrency,\n\tshopMoreUrl,\n\tcartSubscribableItems: initialCartSubscribableItems,\n\tisMiniCart,\n}) {\n\tconst resources = useLocalization('Logos.CommerceWeb.ShoppingCarts.Resources.ShoppingCart');\n\tconst [cartItems, setCartItems] = useState(initialCartItems);\n\tconst [cartSubscribableItems, setCartSubscribableItems] = useState(initialCartSubscribableItems);\n\tconst [containsBundledItems, setContainsBundledItems] = useState(initialContainsBundledItems);\n\n\tuseCartEffect(cart => {\n\t\tsetCartItems(cart.order.lineItems);\n\t\tsetCartSubscribableItems(cart.order.subscribableLineItems);\n\t\tsetContainsBundledItems(cart.order.containsBundledItems);\n\t});\n\n\tif (!cartItems.length && !cartSubscribableItems.length) {\n\t\treturn (\n\t\t\t<div data-testid=\"empty-cart-copy\" className=\"pt-[10px] text-center\">\n\t\t\t\t<Typography tag=\"h3\" variant=\"headingH5\" className=\"mt-[130px]\">\n\t\t\t\t\t{resources.EmptyCart}\n\t\t\t\t</Typography>\n\t\t\t\t<Typography tag=\"p\" variant=\"bodySmall\" className=\"w-[74%] mx-auto mt-4 font-sans leading-[1.4rem]\">\n\t\t\t\t\t{resources.EmptyCartSummary}{' '}\n\t\t\t\t\t<a href={shopMoreUrl} title={resources.ProductsPageLinkText}>\n\t\t\t\t\t\t<Typography tag=\"span\" variant=\"bodySmall\">\n\t\t\t\t\t\t\t{resources.ProductsPageLinkText}\n\t\t\t\t\t\t</Typography>\n\t\t\t\t\t</a>\n\t\t\t\t\t{'.'}\n\t\t\t\t</Typography>\n\t\t\t\t<Typography tag=\"p\" variant=\"bodySmall\" className=\"w-[74%] mx-auto mt-4 font-sans text-base\">\n\t\t\t\t\t<a\n\t\t\t\t\t\tclassName=\"inline-block rounded-sm bg-[#1E6AFE] px-[10px] py-2 text-center text-[16px] font-normal text-white hover:text-white hover:bg-blue-400 transition-[background-color] duration-200 mt-[10px] shadow-[0_2px_4px_0_rgba(0,0,0,0.2)]\"\n\t\t\t\t\t\thref={shopMoreUrl}\n\t\t\t\t\t\ttitle={resources.GoShop}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Typography tag=\"span\" variant=\"bodySmall\" className=\"text-white hover:text-white\">\n\t\t\t\t\t\t\t{resources.GoShop}\n\t\t\t\t\t\t</Typography>\n\t\t\t\t\t</a>\n\t\t\t\t</Typography>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div className={`tw-preflight flex flex-col gap-[24px] ${isMiniCart ? 'px-4' : ''}`}>\n\t\t\t{cartSubscribableItems.length > 0 &&\n\t\t\t\tcartSubscribableItems.map(item => (\n\t\t\t\t\t<ShoppingCartSubscribableItem\n\t\t\t\t\t\tkey={item.stableId}\n\t\t\t\t\t\tisInCheckout={isInCheckout}\n\t\t\t\t\t\tisModifiable={isModifiable}\n\t\t\t\t\t\tisMiniCart={isMiniCart}\n\t\t\t\t\t\titem={item}\n\t\t\t\t\t\tupdateUrl={updateUrl}\n\t\t\t\t\t\tupsellDetailsUrl={upsellDetailsUrl}\n\t\t\t\t\t\tusesForeignCurrency={usesForeignCurrency}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\t\t\t{cartItems.length > 0 &&\n\t\t\t\tcartItems.map((item, index) => (\n\t\t\t\t\t<ShoppingCartItem\n\t\t\t\t\t\tkey={item.stableId ?? item.id ?? index}\n\t\t\t\t\t\tcartItems={cartItems}\n\t\t\t\t\t\tcontainsBundledItems={containsBundledItems}\n\t\t\t\t\t\tisInCheckout={isInCheckout}\n\t\t\t\t\t\tisDeliveredToGroup={isDeliveredToGroup}\n\t\t\t\t\t\tisModifiable={isModifiable}\n\t\t\t\t\t\titem={item}\n\t\t\t\t\t\tshowCartSaveForLater={showCartSaveForLater}\n\t\t\t\t\t\tupdateUrl={updateUrl}\n\t\t\t\t\t\tusesForeignCurrency={usesForeignCurrency}\n\t\t\t\t\t\tshouldShowYoursForever={cartSubscribableItems.length > 0}\n\t\t\t\t\t\tisMiniCart={isMiniCart}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\t\t</div>\n\t);\n}\n"],"names":["$","require","module","exports","updateCart","url","changeSet","ajax","data","JSON","stringify","contentType","method","getUpsellDetails","fetchCart","createProfiles","type","dataType","CartContext","React","cart","hasContext","useCartEffect","callback","_useContext","useContext","callbackRef","useRef","current","useEffect","eventAggregator","cartUpdated","event","_callbackRef$current","call","_callbackRef$current2","CartContextProvider","_ref","children","Provider","value","breakPointNames","breakPoints","mobileCutoffWidth","desktopMinWidth","largeDesktopMinWidth","extraLargeDesktopMinWidth","standardDeviceWidths","formatSizeValue","size","concat","computeSrcSetWidths","nominalWidths","deviceWidths","widthSet","Set","nominalWidth","add","sort","a","b","createSrcSetAttribute","srcSetWidths","src","aspectRatio","entries","width","URL","searchParams","set","String","Math","round","push","toString","length","join","undefined","getNominalWidths","processedSizes","widthProp","Object","values","map","s","filter","w","amberCdnHost","amberUrls","amberCdnUpgradableHosts","isAmberHost","host","includes","detectIsAmberOptimizedUrl","urlAsString","isAmberCdn","isOptimized","pathname","endsWith","_unused","toAmberCdnUrl","cdnUrl","protocol","port","_ref4","srcProp","alt","height","inputSizes","sizes","_ref4$belowTheFold","belowTheFold","fetchPriority","className","style","targetAspectRatio","numericAspectRatio","useMemo","_unused3","tryAddAmberLimit","_unused2","tryUpgradeAmberUrlToCdn","_ref2","_ref3","_slicedToArray","sizeName","_size$height","floor","processSizes","isAmberOptimizedUrl","srcSetAttribute","containsResponsiveWidth","some","x","sizesAttribute","sizeResults","currentResult","i","_sizeEntry$width","sizeEntry","breakPoint","maxWidth","createSizesAttribute","widthAttribute","heightAttribute","imageProps","srcSet","loading","fetchpriority","_extends","UtcDateTimeDisplayFormatType","Enclosed","Plain","formattedDateTime","_ref$formatType","formatType","template","useLocalization","CommandSentence","Container","Field","name","PricingLink","description","link","Tooltip","placement","InfoIcon","contentStyles","dangerouslySetInnerHTML","__html","QuantityStatus","ShoppingCartItem","_item$intraCartDynami","autoRenews","cartItems","containsBundledItems","isInCheckout","isModifiable","isDeliveredToGroup","item","showCartSaveForLater","updateUrl","usesForeignCurrency","shouldShowYoursForever","isMiniCart","removeWishListItem","addWishListItemToCart","resources","_useState","useState","quantity","_useState2","enteredQuantity","setEnteredQuantity","_useState3","_useState4","quantityStatus","setQuantityStatus","commitQuantityUpdateRef","intraCartItems","intraCartDynamicPriceContributingCartItemIds","cartItemIds","find","id","handleRemoveItemFromCart","useCallback","_commitQuantityUpdate","saveForLater","arguments","cancel","checkoutService","quantityByCartItemId","cartItemQuantitiesAfterRemoval","then","document","dispatchEvent","CustomEvent","detail","_data$order$analytics","order","analyticsTelemetry","window","dataLayer","e","commitQuantityUpdate","useDebouncedCallback","newQuantity","done","fail","always","_commitQuantityUpdate2","updateQuantity","handleRemoveWishListItem","async","handleAddWishListItemToCart","skuIds","foreignCurrency","text","isNegative","Typography","tag","variant","amountTodayBefore","prepubInfo","AmountToday","replace","amountTodayAfter","isDisplayable","href","target","rel","Image","thumbnailUrl","mobile","desktop","prepubStatus","PreOrderItem","status","isIntraCartDynamicallyPriced","isOwnershipDynamicallyPriced","CartDynamicPricingMessage","CartDynamicPricingLearnMoreLink","DetailedIntraCartDynamicPricingMessage","key","IntraCartDynamicPricingMessage","OwnershipDynamicPricingMessage","isDigitallyFulfilled","isPermanentlyAccessible","YoursForever","YoursForeverDescription","isDiscounted","discountDescription","restrictionMessageHtml","expiredExtendedPriceCurrencyHtml","discountPercent","Boolean","anchorPriceCurrencyText","extendedPriceUsdCurrencyText","extendedPriceCurrencyText","PercentOff","anchorPriceUsdCurrencyText","extendedPreDiscountPriceUsdCurrencyText","extendedPreDiscountPriceCurrencyText","DueWhenShipped","dynamicPriceUsdCurrencyText","dynamicPriceCurrencyText","onClick","SaveForLater","title","Remove","TrashIcon","Button","scale","textStyle","AddToCart","allowsMultipleQuantity","StepperControl","min","disabled","onValueChange","isDynamicPricingInEffect","PrepubDynamicPriceNotification","priceUsdCurrencyText","priceCurrencyText","SubscriptionPriceBlock","isContentChange","discountBlock","discounts","discount","discountId","DiscountApplied","isImmediateDiscountAmountNonZero","Original","anchorPricePreDiscountUsdText","anchorPricePreDiscountCurrencyText","Discount","discountAmountUsdText","discountAmountText","totalProratedBalanceAppliedValue","extendedPriceUsdText","RenewalStatementMultiTerm","term","RenewalStatementYearly","RenewalStatementMonthly","isFreeTrial","FreeTrialStatement","freeTrialPeriod","renewalKindType","Day","Month","Year","renewalKind","freeTrialPeriodKind","RenewalStatementFreeTrialMultiTerm","RenewalStatementFreeTrialYearly","RenewalStatementFreeTrialMonthly","nextRenewalPriceUsdText","ShoppingCartSubscribableItem","_item$existingSubscri","upsellDetailsUrl","isLogosSubscription","split","logosSubTitle","logosSubTerm","renewalStatementTemplate","existingSubscribedToOption","handleRemove","quantityByCartSubscribableItemId","cartSubscribableItemId","_useState5","upsell","_useState6","setUpsell","isUpsellUpdatingRef","handleUpsell","isUpsellSelected","checked","onRemoveFailure","state","_objectSpread","updateTo","updateFrom","_data$order$analytics2","upsellUpdate","debounceCartQuantityUpdate","SubscriptionIcon","isAnnualBilledMonthly","AnnualBilledMonthly","isMonthlyCommitmentMultiTerm","MonthlySubscriptionNonAnnualTerm","commitmentTermDisplay","AnnualSubscription","MonthlySubscription","FirstCharge","NextCharge","NextChargeValues","nextRenewalPriceCurrencyText","UtcDateTimeDisplay","nextPaymentDate","AnnualAfter","multiTermRenewalDate","AnnualCommitmentRenewal","nextRenewalDate","NonAnnualCommitmentRenewal","Checkbox","onChange","label","message","saveMatch","exec","_saveMatch","prefix","savePart","formatUpsellMessage","isMultipleQuantityAllowed","isExistingSubscriptionExpired","ReplaceIcon","ReplacingSubscription","CurrentSubscriptionLower","existingSubscriptionCurrentExpirationDate","SetToRenewOn","existingSubscriptionPaymentTerm","AppManagedSubscription","Google","Apple","paymentTerm","GooglePlayStore","NewPageIcon","AppleAppStore","ShoppingCartItems","initialCartItems","_ref$isInCheckout","initialContainsBundledItems","shopMoreUrl","initialCartSubscribableItems","cartSubscribableItems","setCartItems","setCartSubscribableItems","setContainsBundledItems","lineItems","subscribableLineItems","stableId","index","_item$stableId","EmptyCart","EmptyCartSummary","ProductsPageLinkText","GoShop"],"sourceRoot":""}