{"version":3,"file":"3135.eeecb84c60c4c2ad9517.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/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, { 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\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\twidthSet.add(nominalWidth * 3);\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 amberUrls = ['internal.files.logos.com', 'files.logos.com', 'files.logoscdn.com', 'files.amberfile.com'];\nfunction detectIsAmberOptimizedUrl(urlAsString: string): boolean {\n\ttry {\n\t\tconst url = new URL(urlAsString);\n\t\tconst isAmberCdn = amberUrls.includes(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\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,\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 processedSizes = processSizes(inputSizes, numericAspectRatio);\n\tconst isAmberOptimizedUrl = detectIsAmberOptimizedUrl(src);\n\n\tconst srcSetAttribute = useMemo(() => {\n\t\tif (!isAmberOptimizedUrl || !processedSizes) {\n\t\t\treturn undefined;\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\treturn (\n\t\t<img\n\t\t\tsrc={src}\n\t\t\talt={alt}\n\t\t\tsrcSet={srcSetAttribute}\n\t\t\tsizes={sizesAttribute}\n\t\t\twidth={widthAttribute}\n\t\t\theight={heightAttribute}\n\t\t\tloading={belowTheFold ? 'lazy' : undefined}\n\t\t\tfetchPriority={fetchPriority}\n\t\t\tclassName={className}\n\t\t\tstyle={style}\n\t\t/>\n\t);\n};\n\nexport { Image, detectIsAmberOptimizedUrl };\nexport type { ImageProps, ImageSizes, SizeDescriptor };\n","import React from 'react';\nimport { CommandSentence } from '@faithlife/command-sentence-control';\nimport { useLocalization } from '../../../localization';\n\nconst UtcDateTimeDisplay = ({ formattedDateTime }) => {\n\tconst resources = useLocalization('CommerceWeb.Resources.Layout');\n\tif (!resources.UtcDateTimeDisplayFormat) {\n\t\treturn formattedDateTime;\n\t}\n\n\treturn (\n\t\t<CommandSentence Container={React.Fragment} template={resources.UtcDateTimeDisplayFormat}>\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, LegacyTypography } 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 useScreensize from '../../util/hooks/use-screensize';\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 { isMobile } = useScreensize();\n\tconst isSmallViewport = isMobile || isMiniCart;\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\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<LegacyTypography\n\t\t\t\t\ttag=\"span\"\n\t\t\t\t\tvariant=\"ui5\"\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</LegacyTypography>\n\t\t\t)\n\t\t);\n\t}\n\n\tfunction renderPriceAndActions() {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName={`flex flex-col ${isSmallViewport ? 'items-start' : 'items-end'} 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 ${isSmallViewport ? 'items-start' : '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 className={`text-[#CC3333] flex flex-col gap-1 ${isSmallViewport ? 'items-start' : 'items-end'}`}>\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 && (\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{resources.AmountToday.replace(/\\{0\\}.*/, '')}\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 && (\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{resources.AmountToday.replace(/.*\\{0\\}/, '')}\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<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<CommandSentence template={resources.DueWhenShipped}>\n\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<span className=\"font-bold\"> {item.prepubInfo.priceCurrencyText}</span>\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)}\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 ${isSmallViewport ? 'gap-6' : '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 ${isSmallViewport ? 'flex-col' : 'justify-between'} 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\">\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\tclassName={`shrink-0 ${isSmallViewport ? 'w-20 mr-3' : 'w-[96px]'}`}\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={isSmallViewport ? 'w-20 h-auto' : 'h-[120px] w-auto max-w-[80px] object-contain'}\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 ${isSmallViewport ? 'w-20 mr-3' : 'w-[96px]'}`}>\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={isSmallViewport ? 'w-20 h-auto' : 'h-[120px] w-auto max-w-[80px] object-contain'}\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 className=\"flex flex-col items-start gap-1 max-w-[480px]\">\n\t\t\t\t\t\t{item.url && item.isDisplayable && isModifiable ? (\n\t\t\t\t\t\t\t<Typography\n\t\t\t\t\t\t\t\ttag=\"a\"\n\t\t\t\t\t\t\t\thref={item.url}\n\t\t\t\t\t\t\t\tdata-testid=\"line-item-description\"\n\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\tvariant=\"ui2\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{item.description}\n\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t) : (\n\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{item.description}\n\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<div className=\"my-2 flex flex-col items-start\">\n\t\t\t\t\t\t\t{(item.prepubStatus || item.prepubInfo) && (\n\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<Typography tag=\"span\" variant=\"ui4\">\n\t\t\t\t\t\t\t\t\t\t{resources.PreOrderItem}\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=\"ui4\">\n\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</Typography>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{(item.isIntraCartDynamicallyPriced || item.isOwnershipDynamicallyPriced) && (\n\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<Typography tag=\"span\" variant=\"ui4\">\n\t\t\t\t\t\t\t\t\t\t{resources.CartDynamicPricingMessage}\n\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t\t{item.isIntraCartDynamicallyPriced && (\n\t\t\t\t\t\t\t\t\t\t<PricingLink\n\t\t\t\t\t\t\t\t\t\t\tlink={resources.CartDynamicPricingLearnMoreLink}\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<>\n\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<>\n\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{resources.DetailedIntraCartDynamicPricingMessage}\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\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</>\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<Typography tag=\"span\" variant=\"ui4\">\n\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</Typography>\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)}\n\t\t\t\t\t\t\t\t\t{item.isOwnershipDynamicallyPriced && (\n\t\t\t\t\t\t\t\t\t\t<PricingLink\n\t\t\t\t\t\t\t\t\t\t\tlink={resources.CartDynamicPricingLearnMoreLink}\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.OwnershipDynamicPricingMessage}{' '}\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)}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{shouldShowYoursForever && item.isDigitallyFulfilled && item.isPermanentlyAccessible && (\n\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<Typography tag=\"span\" variant=\"ui4\">\n\t\t\t\t\t\t\t\t\t\t{resources.YoursForever}\n\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t\t<PricingLink\n\t\t\t\t\t\t\t\t\t\tlink=\"\"\n\t\t\t\t\t\t\t\t\t\tdescription={\n\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{resources.YoursForeverDescription}\n\t\t\t\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{item.isDiscounted && item.discountDescription && (\n\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{item.discountDescription}\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{item.restrictionMessageHtml && (\n\t\t\t\t\t\t\t\t<span\n\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\tdangerouslySetInnerHTML={{ __html: item.restrictionMessageHtml }}\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<span className=\"block mt-0.5 text-(--invalid-color)\">{item.expiredExtendedPriceCurrencyHtml}</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{isSmallViewport && renderPriceAndActions()}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t{!isSmallViewport && renderPriceAndActions()}\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 ${isSmallViewport ? 'flex-col' : 'justify-between'} 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, LegacyTypography } from '@faithlife/commerce-components';\nimport { CommandSentence } from '@faithlife/command-sentence-control';\nimport { useLocalization } from '../../localization';\n\nexport default function SubscriptionPriceBlock({ usesForeignCurrency, item, isContentChange, isMobile }) {\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<LegacyTypography\n\t\t\t\t\ttag=\"span\"\n\t\t\t\t\tvariant=\"ui5\"\n\t\t\t\t\tclassName={`${isNegative ? 'before:content-[\"(-\"]' : 'before:content-[\"(\"]'} after:content-[')'] pt-[4px]`}\n\t\t\t\t>\n\t\t\t\t\t{text}\n\t\t\t\t</LegacyTypography>\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 ${isMobile ? 'items-start' : 'items-end'} justify-center gap-1 my-1 text-[#00042F]`}\n\t\t\t>\n\t\t\t\t<LegacyTypography tag=\"span\" variant=\"ui5\">\n\t\t\t\t\t{isMobile ? resources.DiscountApplied : discount.description}\n\t\t\t\t</LegacyTypography>\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<LegacyTypography tag=\"span\" variant=\"ui5\">\n\t\t\t\t\t\t\t\t{resources.Original}\n\t\t\t\t\t\t\t</LegacyTypography>\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<LegacyTypography tag=\"span\" variant=\"ui5\">\n\t\t\t\t\t\t\t\t\t{item.anchorPricePreDiscountUsdText}\n\t\t\t\t\t\t\t\t</LegacyTypography>\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<LegacyTypography tag=\"span\" variant=\"ui5\">\n\t\t\t\t\t\t\t\t{resources.Discount}\n\t\t\t\t\t\t\t</LegacyTypography>\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<LegacyTypography tag=\"span\" variant=\"ui5\">\n\t\t\t\t\t\t\t\t\t{'-' + discount.discountAmountUsdText}\n\t\t\t\t\t\t\t\t</LegacyTypography>\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 ${isMobile ? 'items-start' : '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\tisMobile\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-1 flex flex-col justify-center 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\tLegacyTypography,\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 useScreensize from '../../util/hooks/use-screensize';\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 { isMobile, htmlElementWidth } = useScreensize();\n\tconst isSmallViewport = isMobile || isMiniCart;\n\tconst isVerySmallViewport = htmlElementWidth < 375;\n\tconst [logosSubTitle, logosSubTerm] = item.isLogosSubscription\n\t\t? item.description.split(' - ', 2)\n\t\t: [undefined, undefined];\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\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 handleUpsell = useCallback(\n\t\tasync event => {\n\t\t\tconst isUpsellSelected = event.target.checked;\n\t\t\teventAggregator.trigger('cart:updating');\n\t\t\tcheckoutService.updateCart(updateUrl, isUpsellSelected ? upsell.updateTo : upsell.updateFrom).then(\n\t\t\t\tfunction onRemoveSuccess(data) {\n\t\t\t\t\teventAggregator.trigger('cart:updated', 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\t\tsetUpsell(state => ({ ...state, isUpsellSelected }));\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 ${isSmallViewport ? 'w-full justify-start' : 'justify-end'} 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={isSmallViewport ? undefined : '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\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 ${isSmallViewport ? 'flex-col' : 'justify-between'} 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\">\n\t\t\t\t\t<div className={`relative shrink-0 mr-4 ${isSmallViewport ? 'w-20' : '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\tisSmallViewport\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 h-[120px] w-auto max-w-[80px] object-contain block rounded-lg'\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 className=\"flex flex-col items-start gap-2 w-full\">\n\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{logosSubTitle && (\n\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<SubscriptionIcon className=\"w-[22px] h-[22px] text-[#00042F]\" />\n\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</div>\n\t\t\t\t\t\t\t)}\n\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{logosSubTerm ? (!isVerySmallViewport ? logosSubTerm : null) : item.description}\n\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div className=\"text-primary-500\">\n\t\t\t\t\t\t\t{item.isAnnualBilledMonthly ? (\n\t\t\t\t\t\t\t\t<Typography variant=\"ui3\" tag=\"span\">\n\t\t\t\t\t\t\t\t\t{resources.AnnualBilledMonthly}\n\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t) : item.isMonthlyCommitmentMultiTerm ? (\n\t\t\t\t\t\t\t\t<Typography variant=\"ui3\" tag=\"span\">\n\t\t\t\t\t\t\t\t\t<CommandSentence template={resources.MonthlySubscriptionNonAnnualTerm}>\n\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</CommandSentence>\n\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t) : item.term === 'Year' ? (\n\t\t\t\t\t\t\t\t<Typography variant=\"ui3\">{resources.AnnualSubscription}</Typography>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<Typography variant=\"ui3\">{resources.MonthlySubscription}</Typography>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div className=\"pt-2 text-[14px] text-primary-500\">\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName={`${isVerySmallViewport || (isInCheckout && isMobile) ? 'flex-col' : 'flex-row'} flex gap-1`}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Typography tag=\"span\" variant=\"ui3\">\n\t\t\t\t\t\t\t\t\t{item.isFreeTrial ? resources.FirstCharge : resources.NextCharge}\n\t\t\t\t\t\t\t\t</Typography>\n\t\t\t\t\t\t\t\t<Typography tag=\"span\" variant=\"ui3\">\n\t\t\t\t\t\t\t\t\t<CommandSentence template={resources.NextChargeValues}>\n\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<span className=\"font-bold\">\n\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</span>\n\t\t\t\t\t\t\t\t\t\t</CommandSentence.Field>\n\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<span className=\"font-bold\">\n\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</span>\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</div>\n\t\t\t\t\t\t\t{item.quantity > 1 && (\n\t\t\t\t\t\t\t\t<Typography tag=\"div\" variant=\"ui3\">\n\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<CommandSentence.Field name=\"RENEWAL_DATE\">{item.multiTermRenewalDate}</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)}\n\n\t\t\t\t\t\t\t{item.isAnnualBilledMonthly && (\n\t\t\t\t\t\t\t\t<Typography tag=\"div\" variant=\"ui3\">\n\t\t\t\t\t\t\t\t\t<CommandSentence template={resources.AnnualCommitmentRenewal}>\n\t\t\t\t\t\t\t\t\t\t<CommandSentence.Field name=\"RENEWAL_DATE\">{item.nextRenewalDate}</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)}\n\n\t\t\t\t\t\t\t{item.isMonthlyCommitmentMultiTerm && (\n\t\t\t\t\t\t\t\t<Typography tag=\"div\" variant=\"ui3\">\n\t\t\t\t\t\t\t\t\t<CommandSentence template={resources.NonAnnualCommitmentRenewal}>\n\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.Field name=\"RENEWAL_DATE\">{item.nextRenewalDate}</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)}\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{isSmallViewport && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<SubscriptionPriceBlock\n\t\t\t\t\t\t\t\t\titem={item}\n\t\t\t\t\t\t\t\t\tusesForeignCurrency={usesForeignCurrency}\n\t\t\t\t\t\t\t\t\tisContentChange={!!item.existingSubscribedToOption}\n\t\t\t\t\t\t\t\t\tisMobile={true}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{upsell && isModifiable && renderUpsell()}\n\t\t\t\t\t\t\t\t{isModifiable && renderTrashAndQuantity()}\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t{!isSmallViewport && (\n\t\t\t\t\t<div className=\"flex flex-col gap-2 items-end\">\n\t\t\t\t\t\t<SubscriptionPriceBlock\n\t\t\t\t\t\t\titem={item}\n\t\t\t\t\t\t\tusesForeignCurrency={usesForeignCurrency}\n\t\t\t\t\t\t\tisContentChange={!!item.existingSubscribedToOption}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{upsell && isModifiable && renderUpsell()}\n\t\t\t\t\t\t{isModifiable && renderTrashAndQuantity()}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t{item.existingSubscribedToOption && (\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{item.isExistingSubscriptionExpired\n\t\t\t\t\t\t\t\t\t\t? resources.ExpiredSubscriptionLower\n\t\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 ${isSmallViewport ? 'flex-col justify-center items-start gap-1' : 'flex-row justify-between items-center'}`}\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 ${isMobile ? 'items-start' : '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\n\t\t\t\t\t\t\t\t\t\ttemplate={\n\t\t\t\t\t\t\t\t\t\t\titem.quantity > 1\n\t\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\t: item.existingSubscribedToOption.term === 'Year'\n\t\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\t: resources.RenewalStatementMonthly\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t>\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<LegacyTypography\n\t\t\t\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\t\t\t\tvariant=\"ui5\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"before:content-['('] after:content-[')'] pt-[4px]\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{item.existingSubscribedToOption.anchorPricePreDiscountCurrencyText}\n\t\t\t\t\t\t\t\t\t</LegacyTypography>\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 && !item.isExistingSubscriptionExpired && (\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{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.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\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}\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","breakPointNames","breakPoints","mobileCutoffWidth","desktopMinWidth","largeDesktopMinWidth","extraLargeDesktopMinWidth","standardDeviceWidths","formatSizeValue","size","concat","amberUrls","detectIsAmberOptimizedUrl","urlAsString","URL","isAmberCdn","includes","host","isOptimized","pathname","endsWith","_unused","_ref4","src","alt","width","height","inputSizes","sizes","_ref4$belowTheFold","belowTheFold","fetchPriority","className","style","targetAspectRatio","numericAspectRatio","undefined","processedSizes","aspectRatio","_ref2","Object","entries","_ref3","_slicedToArray","sizeName","_size$height","Math","floor","processSizes","isAmberOptimizedUrl","srcSetAttribute","useMemo","containsResponsiveWidth","values","some","x","nominalWidths","widthProp","map","s","filter","w","getNominalWidths","srcSetWidths","deviceWidths","widthSet","Set","nominalWidth","add","sort","a","b","computeSrcSetWidths","searchParams","set","String","round","push","toString","length","join","createSrcSetAttribute","sizesAttribute","sizeResults","currentResult","i","_sizeEntry$width","sizeEntry","breakPoint","maxWidth","_ref","createSizesAttribute","widthAttribute","heightAttribute","React","srcSet","loading","formattedDateTime","resources","useLocalization","UtcDateTimeDisplayFormat","CommandSentence","Container","template","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","_useState","useState","quantity","_useState2","enteredQuantity","setEnteredQuantity","_useState3","_useState4","quantityStatus","setQuantityStatus","commitQuantityUpdateRef","useRef","isSmallViewport","useScreensize","isMobile","intraCartItems","intraCartDynamicPriceContributingCartItemIds","cartItemIds","find","id","handleRemoveItemFromCart","useCallback","_commitQuantityUpdate","saveForLater","arguments","current","cancel","eventAggregator","checkoutService","quantityByCartItemId","cartItemQuantitiesAfterRemoval","then","_data$order$analytics","order","analyticsTelemetry","window","dataLayer","e","commitQuantityUpdate","useDebouncedCallback","newQuantity","done","fail","always","useEffect","_commitQuantityUpdate2","updateQuantity","handleRemoveWishListItem","async","handleAddWishListItemToCart","skuIds","foreignCurrency","text","isNegative","LegacyTypography","tag","variant","renderPriceAndActions","isDiscounted","discountPercent","Boolean","anchorPriceCurrencyText","Typography","extendedPriceUsdCurrencyText","extendedPriceCurrencyText","PercentOff","anchorPriceUsdCurrencyText","extendedPreDiscountPriceUsdCurrencyText","extendedPreDiscountPriceCurrencyText","prepubInfo","AmountToday","replace","DueWhenShipped","priceCurrencyText","isDisplayable","onClick","SaveForLater","title","Remove","TrashIcon","Button","scale","textStyle","AddToCart","allowsMultipleQuantity","StepperControl","value","min","disabled","onValueChange","href","Image","thumbnailUrl","mobile","desktop","prepubStatus","PreOrderItem","status","isIntraCartDynamicallyPriced","isOwnershipDynamicallyPriced","CartDynamicPricingMessage","CartDynamicPricingLearnMoreLink","DetailedIntraCartDynamicPricingMessage","key","IntraCartDynamicPricingMessage","OwnershipDynamicPricingMessage","isDigitallyFulfilled","isPermanentlyAccessible","YoursForever","YoursForeverDescription","discountDescription","restrictionMessageHtml","expiredExtendedPriceCurrencyHtml","isDynamicPricingInEffect","PrepubDynamicPriceNotification","priceUsdCurrencyText","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","upsellDetailsUrl","_useScreensize","htmlElementWidth","isVerySmallViewport","isLogosSubscription","split","logosSubTitle","logosSubTerm","handleRemove","quantityByCartSubscribableItemId","cartSubscribableItemId","_useState5","upsell","_useState6","setUpsell","handleUpsell","isUpsellSelected","event","target","checked","updateTo","updateFrom","_data$order$analytics2","state","_objectSpread","upsellUpdate","debounceCartQuantityUpdate","formatUpsellMessage","message","saveMatch","exec","_saveMatch","prefix","savePart","renderUpsell","Checkbox","onChange","label","renderTrashAndQuantity","isMultipleQuantityAllowed","SubscriptionIcon","isAnnualBilledMonthly","AnnualBilledMonthly","isMonthlyCommitmentMultiTerm","MonthlySubscriptionNonAnnualTerm","commitmentTermDisplay","AnnualSubscription","MonthlySubscription","FirstCharge","NextCharge","NextChargeValues","nextRenewalPriceCurrencyText","UtcDateTimeDisplay","nextPaymentDate","AnnualAfter","multiTermRenewalDate","AnnualCommitmentRenewal","nextRenewalDate","NonAnnualCommitmentRenewal","existingSubscribedToOption","ReplaceIcon","ReplacingSubscription","isExistingSubscriptionExpired","ExpiredSubscriptionLower","CurrentSubscriptionLower","existingSubscriptionCurrentExpirationDate","SetToRenewOn","existingSubscriptionPaymentTerm","AppManagedSubscription","Google","Apple","paymentTerm","rel","GooglePlayStore","NewPageIcon","AppleAppStore","ShoppingCartItems","initialCartItems","_ref$isInCheckout","initialContainsBundledItems","shopMoreUrl","initialCartSubscribableItems","cartSubscribableItems","setCartItems","setCartSubscribableItems","setContainsBundledItems","useCartEffect","cart","lineItems","subscribableLineItems","stableId","index","EmptyCart","EmptyCartSummary","ProductsPageLinkText","GoShop"],"sourceRoot":""}