@dropins/storefront-cart 0.2.0-alpha77 → 0.2.0-beta2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api/initialize/initialize.d.ts.map +1 -1
- package/api/resetCart/resetCart.d.ts.map +1 -1
- package/api.js +3 -3
- package/api.js.map +1 -1
- package/chunks/getEstimatedTotals.js +1 -1
- package/chunks/getEstimatedTotals.js.map +1 -1
- package/chunks/getStoreConfig.js +257 -2
- package/chunks/getStoreConfig.js.map +1 -1
- package/chunks/updateProductsFromCart.js +1 -1
- package/chunks/updateProductsFromCart.js.map +1 -1
- package/containers/Cart.js +1 -1
- package/containers/Cart.js.map +1 -1
- package/containers/MiniCart.js +1 -1
- package/containers/MiniCart.js.map +1 -1
- package/data/models/cart-model.d.ts +0 -1
- package/data/models/cart-model.d.ts.map +1 -1
- package/data/transforms/transform-cart.d.ts.map +1 -1
- package/lib/state.d.ts.map +1 -1
- package/package.json +1 -1
- package/render.js +1 -1
- package/render.js.map +1 -1
- package/chunks/initializeCart.js +0 -40
- package/chunks/initializeCart.js.map +0 -1
- package/chunks/resetCart.js +0 -219
- package/chunks/resetCart.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MiniCart.js","sources":["../../src/components/MiniCart/MiniCart.tsx","../../src/containers/MiniCart/MiniCart.tsx"],"sourcesContent":["import { FunctionComponent, VNode } from 'preact';\nimport { HTMLAttributes } from 'preact/compat';\nimport { VComponent, classes } from '@adobe/elsie/lib';\nimport { Divider } from '@adobe/elsie/components';\nimport { useText } from '@adobe/elsie/i18n';\n\nimport '@/cart/components/MiniCart/MiniCart.css';\n\nexport interface MiniCartProps extends HTMLAttributes<HTMLDivElement> {\n emptyCart: VNode;\n heading?: VNode;\n products?: VNode;\n subtotal?: VNode;\n subtotalExcludingTaxes?: VNode;\n ctas?: VNode;\n}\n\nexport const MiniCart: FunctionComponent<MiniCartProps> = ({\n className,\n children,\n emptyCart,\n heading,\n products,\n subtotal,\n subtotalExcludingTaxes,\n ctas,\n ...props\n}) => {\n const dictionary = useText({\n subtotal: 'Cart.MiniCart.subtotal',\n subtotalExcludingTaxes: 'Cart.MiniCart.subtotalExcludingTaxes',\n });\n\n return (\n <div {...props} className={classes(['cart-mini-cart', className])}>\n {/* Heading */}\n {products && heading && (\n <div className=\"cart-mini-cart__heading\">\n <VComponent node={heading} className=\"cart-mini-cart__heading-text\" />\n\n <Divider\n variant=\"primary\"\n className=\"cart-mini-cart__heading-divider\"\n />\n </div>\n )}\n\n {/* Content */}\n {products ? (\n <>\n <div className=\"cart-mini-cart__products\">{products}</div>\n\n <div className=\"cart-mini-cart__footer\">\n {subtotal && (\n <div className=\"cart-mini-cart__footer__estimated-total\">\n {dictionary.subtotal}\n <VComponent node={subtotal} />\n </div>\n )}\n {subtotalExcludingTaxes && (\n <div className=\"cart-mini-cart__footer__estimated-total-excluding-taxes\">\n {dictionary.subtotalExcludingTaxes}\n <VComponent\n node={subtotalExcludingTaxes}\n className={classes([\n 'dropin-price-summary__price',\n 'dropin-price-summary__price--muted',\n ])}\n />\n </div>\n )}\n\n {ctas && (\n <VComponent\n node={ctas}\n className=\"cart-mini-cart__footer__ctas\"\n />\n )}\n </div>\n </>\n ) : (\n <VComponent node={emptyCart} className=\"cart-mini-cart__empty-cart\" />\n )}\n </div>\n );\n};\n","import { HTMLAttributes, useEffect, useState } from 'preact/compat';\nimport { Container } from '@adobe/elsie/lib';\nimport { CartModel } from '@/cart/data/models';\nimport { getPersistedData } from '@/cart/lib/persisted-data';\nimport { events } from '@adobe/event-bus';\nimport { EmptyCart, MiniCart as MiniCartComponent } from '@/cart/components';\nimport { useText } from '@adobe/elsie/i18n';\nimport {\n Button,\n CartItem,\n CartList,\n Image,\n Price,\n} from '@adobe/elsie/components';\nimport { updateProductsFromCart } from '@/cart/api';\nimport { publishShoppingCartViewEvent } from '@/cart/lib/acdl';\nimport { state } from '@/cart/lib/state';\n\nexport interface MiniCartProps extends HTMLAttributes<HTMLDivElement> {\n routeProduct?: (item: CartModel['items'][0]) => string;\n routeCart?: () => string;\n routeCheckout?: () => string;\n routeEmptyCartCTA?: () => string;\n}\n\nexport const MiniCart: Container<MiniCartProps, CartModel | null> = ({\n children,\n initialData = null,\n routeProduct,\n routeCart,\n routeCheckout,\n routeEmptyCartCTA,\n ...props\n}) => {\n const [data, setData] = useState<CartModel | null>(initialData);\n const [itemsLoading, setItemLoading] = useState<Set<string>>(new Set());\n const cartTaxesConfig = state.config?.shoppingCartDisplaySetting;\n\n const handleItemsLoading = (state: boolean, uid: string) => {\n setItemLoading((prev) => {\n state ? prev.add(uid) : prev.delete(uid);\n return new Set(prev);\n });\n };\n\n useEffect(() => {\n const event = events.on(\n 'cart/data',\n (payload) => {\n setData(payload);\n },\n { eager: true }\n );\n\n return () => {\n event?.off();\n };\n }, []);\n\n const dictionary = useText({\n cartLink: 'Cart.MiniCart.cartLink',\n checkoutLink: 'Cart.MiniCart.checkoutLink',\n discountedPrice: 'Cart.CartItem.discountedPrice',\n heading: 'Cart.MiniCart.heading',\n message: 'Cart.CartItem.message',\n recipient: 'Cart.CartItem.recipient',\n regularPrice: 'Cart.CartItem.regularPrice',\n sender: 'Cart.CartItem.sender',\n file: 'Cart.CartItem.file',\n files: 'Cart.CartItem.files',\n });\n\n const handleItemQuantityUpdate = (uid: string, quantity: number) => {\n handleItemsLoading(true, uid);\n\n updateProductsFromCart([{ uid, quantity }]).finally(() => {\n handleItemsLoading(false, uid);\n });\n };\n\n // Publish shopping cart view event only once when the component is mounted and initialData is available\n useEffect(() => {\n if (initialData && Object.keys(initialData).length > 0) {\n publishShoppingCartViewEvent(initialData, state.locale || 'en-US');\n }\n }, [initialData]);\n\n return (\n <MiniCartComponent\n {...props}\n heading={\n <div>\n {dictionary.heading.replace(\n '{count}',\n (data?.totalQuantity ?? 0).toString()\n )}\n </div>\n }\n emptyCart={<EmptyCart ctaLinkURL={routeEmptyCartCTA?.()} />}\n subtotal={\n data?.subtotal &&\n (cartTaxesConfig?.subtotal === 'INCLUDING_TAX' ||\n cartTaxesConfig?.subtotal === 'INCLUDING_EXCLUDING_TAX' ? (\n <Price\n amount={data?.subtotal.includingTax.value}\n currency={data?.subtotal.includingTax.currency}\n data-testid=\"subtotal-including-tax\"\n style={{ font: 'inherit' }}\n />\n ) : (\n <Price\n amount={data?.subtotal.excludingTax.value}\n currency={data?.subtotal.excludingTax.currency}\n data-testid=\"subtotal-excluding-tax\"\n style={{ font: 'inherit' }}\n />\n ))\n }\n subtotalExcludingTaxes={\n data?.subtotal &&\n (cartTaxesConfig?.subtotal === 'INCLUDING_EXCLUDING_TAX' ? (\n <Price\n amount={data?.subtotal.excludingTax.value}\n currency={data?.subtotal.excludingTax.currency}\n data-testid=\"subtotal-including-excluding-tax\"\n style={{ font: 'inherit' }}\n />\n ) : undefined)\n }\n ctas={\n <div>\n {routeCheckout && (\n <Button variant=\"primary\" href={routeCheckout()}>\n {dictionary.checkoutLink}\n </Button>\n )}\n {routeCart && (\n <Button variant=\"tertiary\" href={routeCart()}>\n {dictionary.cartLink}\n </Button>\n )}\n </div>\n }\n products={\n data?.totalQuantity ?? 0 ? (\n <CartList>\n {data?.miniCartMaxItems?.map((item, index) => {\n const isLoading = itemsLoading.has(item.uid);\n\n const configurations = {\n ...(item.bundleOptions ?? {}),\n ...(item.selectedOptions ?? {}),\n ...item.customizableOptions,\n ...(item.recipient\n ? { [dictionary.recipient]: item.recipient }\n : {}),\n ...(item.recipientEmail && item.recipient\n ? {\n [dictionary.recipient]: `${item.recipient} (${item.recipientEmail})`,\n }\n : {}),\n ...(item.sender ? { [dictionary.sender]: item.sender } : {}),\n ...(item.senderEmail && item.sender\n ? {\n [dictionary.sender]: `${item.sender} (${item.senderEmail})`,\n }\n : {}),\n ...(item.message ? { [dictionary.message]: item.message } : {}),\n ...(item.links && item.links.count\n ? item.links.count > 1\n ? {\n [dictionary.files.replace(\n '{count}',\n item.links.count.toString()\n )]: item.links.result,\n }\n : {\n [dictionary.file.replace(\n '{count}',\n item.links.count.toString()\n )]: item.links.result,\n }\n : {}),\n };\n\n return (\n <CartItem\n data-testid=\"cart-item\"\n key={item.uid}\n updating={isLoading}\n taxIncluded={cartTaxesConfig?.price === 'INCLUDING_TAX'}\n taxExcluded={\n cartTaxesConfig?.price === 'INCLUDING_EXCLUDING_TAX'\n }\n image={\n routeProduct ? (\n <a href={routeProduct(item)}>\n <Image\n loading={index < 4 ? 'eager' : 'lazy'}\n src={item.image.src}\n alt={item.image.alt}\n width=\"300\"\n height=\"300\"\n params={{ width: 300 }}\n />\n </a>\n ) : (\n <Image\n loading={index < 4 ? 'eager' : 'lazy'}\n src={item.image.src}\n alt={item.image.alt}\n width=\"300\"\n height=\"300\"\n params={{ width: 300 }}\n />\n )\n }\n title={\n <span>\n {routeProduct ? (\n <a href={routeProduct(item)}>{item.name}</a>\n ) : (\n item.name\n )}\n </span>\n }\n sku={<span>{item.sku}</span>}\n configurations={\n Object.keys(configurations).length > 0\n ? configurations\n : undefined\n }\n quantity={item.quantity}\n price={\n cartTaxesConfig?.price === 'INCLUDING_TAX' ? (\n <Price\n amount={\n item.discounted\n ? item.regularPrice?.value\n : item.taxedPrice?.value\n }\n currency={\n item.discounted\n ? item.regularPrice?.currency\n : item.taxedPrice?.currency\n }\n style={{ font: 'inherit' }}\n data-testid=\"including-tax-item-price\"\n />\n ) : (\n <Price\n amount={item.regularPrice?.value}\n currency={item.regularPrice?.currency}\n style={{ font: 'inherit' }}\n data-testid=\"regular-item-price\"\n />\n )\n }\n total={\n cartTaxesConfig?.price === 'INCLUDING_EXCLUDING_TAX' ||\n cartTaxesConfig?.price === 'INCLUDING_TAX' ? (\n <>\n {item.discounted ? (\n <>\n <Price\n amount={item.total.value}\n currency={item.total.currency}\n variant={'strikethrough'}\n data-testid=\"including-tax-row-total\"\n aria-label={dictionary.regularPrice}\n />\n <Price\n amount={item.rowTotalIncludingTax?.value}\n currency={item.rowTotalIncludingTax?.currency}\n sale={item.discounted}\n data-testid=\"discount-total\"\n aria-label={dictionary.discountedPrice}\n />\n </>\n ) : (\n <Price\n amount={item.rowTotalIncludingTax.value}\n currency={item.rowTotalIncludingTax.currency}\n data-testid=\"including-tax-row-total\"\n aria-label={dictionary.regularPrice}\n />\n )}\n </>\n ) : (\n <>\n <Price\n amount={item.total.value}\n currency={item.total.currency}\n variant={\n item.discounted ? 'strikethrough' : 'default'\n }\n data-testid=\"regular-total\"\n aria-label={dictionary.regularPrice}\n />\n\n {item.discounted && (\n <Price\n amount={item.discountedTotal?.value}\n currency={item.discountedTotal?.currency}\n sale={item.discounted}\n data-testid=\"discount-total\"\n aria-label={dictionary.discountedPrice}\n />\n )}\n </>\n )\n }\n totalExcludingTax={\n cartTaxesConfig?.price === 'INCLUDING_EXCLUDING_TAX' ? (\n <Price\n amount={item.rowTotal.value}\n currency={item.rowTotal.currency}\n data-testid=\"excluding-tax-total\"\n aria-label={dictionary.regularPrice}\n />\n ) : undefined\n }\n onRemove={() => {\n handleItemQuantityUpdate(item.uid, 0);\n }}\n />\n );\n })}\n </CartList>\n ) : undefined\n }\n />\n );\n};\n\nMiniCart.getInitialData = async function () {\n return getPersistedData();\n};\n"],"names":["MiniCart","className","children","emptyCart","heading","products","subtotal","subtotalExcludingTaxes","ctas","props","dictionary","useText","_jsxs","classes","_jsx","VComponent","node","Divider","variant","_Fragment","initialData","routeProduct","routeCart","routeCheckout","routeEmptyCartCTA","data","setData","useState","itemsLoading","setItemLoading","Set","cartTaxesConfig","state","config","shoppingCartDisplaySetting","handleItemsLoading","uid","prev","add","delete","useEffect","event","events","on","payload","eager","off","cartLink","checkoutLink","discountedPrice","message","recipient","regularPrice","sender","file","files","handleItemQuantityUpdate","quantity","updateProductsFromCart","finally","Object","keys","length","locale","MiniCartComponent","replace","totalQuantity","toString","EmptyCart","ctaLinkURL","Price","amount","includingTax","value","currency","style","font","excludingTax","undefined","Button","href","CartList","miniCartMaxItems","map","item","index","isLoading","has","configurations","bundleOptions","selectedOptions","customizableOptions","recipientEmail","senderEmail","links","count","result","CartItem","updating","taxIncluded","price","taxExcluded","image","Image","loading","src","alt","width","height","params","title","name","sku","discounted","taxedPrice","total","rowTotalIncludingTax","sale","discountedTotal","totalExcludingTax","rowTotal","onRemove","getInitialData","getPersistedData"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MiniCart.js","sources":["../../src/components/MiniCart/MiniCart.tsx","../../src/containers/MiniCart/MiniCart.tsx"],"sourcesContent":["import { FunctionComponent, VNode } from 'preact';\nimport { HTMLAttributes } from 'preact/compat';\nimport { VComponent, classes } from '@adobe/elsie/lib';\nimport { Divider } from '@adobe/elsie/components';\nimport { useText } from '@adobe/elsie/i18n';\n\nimport '@/cart/components/MiniCart/MiniCart.css';\n\nexport interface MiniCartProps extends HTMLAttributes<HTMLDivElement> {\n emptyCart: VNode;\n heading?: VNode;\n products?: VNode;\n subtotal?: VNode;\n subtotalExcludingTaxes?: VNode;\n ctas?: VNode;\n}\n\nexport const MiniCart: FunctionComponent<MiniCartProps> = ({\n className,\n children,\n emptyCart,\n heading,\n products,\n subtotal,\n subtotalExcludingTaxes,\n ctas,\n ...props\n}) => {\n const dictionary = useText({\n subtotal: 'Cart.MiniCart.subtotal',\n subtotalExcludingTaxes: 'Cart.MiniCart.subtotalExcludingTaxes',\n });\n\n return (\n <div {...props} className={classes(['cart-mini-cart', className])}>\n {/* Heading */}\n {products && heading && (\n <div className=\"cart-mini-cart__heading\">\n <VComponent node={heading} className=\"cart-mini-cart__heading-text\" />\n\n <Divider\n variant=\"primary\"\n className=\"cart-mini-cart__heading-divider\"\n />\n </div>\n )}\n\n {/* Content */}\n {products ? (\n <>\n <div className=\"cart-mini-cart__products\">{products}</div>\n\n <div className=\"cart-mini-cart__footer\">\n {subtotal && (\n <div className=\"cart-mini-cart__footer__estimated-total\">\n {dictionary.subtotal}\n <VComponent node={subtotal} />\n </div>\n )}\n {subtotalExcludingTaxes && (\n <div className=\"cart-mini-cart__footer__estimated-total-excluding-taxes\">\n {dictionary.subtotalExcludingTaxes}\n <VComponent\n node={subtotalExcludingTaxes}\n className={classes([\n 'dropin-price-summary__price',\n 'dropin-price-summary__price--muted',\n ])}\n />\n </div>\n )}\n\n {ctas && (\n <VComponent\n node={ctas}\n className=\"cart-mini-cart__footer__ctas\"\n />\n )}\n </div>\n </>\n ) : (\n <VComponent node={emptyCart} className=\"cart-mini-cart__empty-cart\" />\n )}\n </div>\n );\n};\n","import { HTMLAttributes, useEffect, useState } from 'preact/compat';\nimport { Container } from '@adobe/elsie/lib';\nimport { CartModel } from '@/cart/data/models';\nimport { getPersistedData } from '@/cart/lib/persisted-data';\nimport { events } from '@adobe/event-bus';\nimport { EmptyCart, MiniCart as MiniCartComponent } from '@/cart/components';\nimport { useText } from '@adobe/elsie/i18n';\nimport {\n Button,\n CartItem,\n CartList,\n Image,\n Price,\n} from '@adobe/elsie/components';\nimport { updateProductsFromCart } from '@/cart/api';\nimport { publishShoppingCartViewEvent } from '@/cart/lib/acdl';\nimport { state } from '@/cart/lib/state';\n\nexport interface MiniCartProps extends HTMLAttributes<HTMLDivElement> {\n routeProduct?: (item: CartModel['items'][0]) => string;\n routeCart?: () => string;\n routeCheckout?: () => string;\n routeEmptyCartCTA?: () => string;\n}\n\nexport const MiniCart: Container<MiniCartProps, CartModel | null> = ({\n children,\n initialData = null,\n routeProduct,\n routeCart,\n routeCheckout,\n routeEmptyCartCTA,\n ...props\n}) => {\n const [data, setData] = useState<CartModel | null>(initialData);\n const [itemsLoading, setItemLoading] = useState<Set<string>>(new Set());\n const cartTaxesConfig = state.config?.shoppingCartDisplaySetting;\n\n const handleItemsLoading = (state: boolean, uid: string) => {\n setItemLoading((prev) => {\n state ? prev.add(uid) : prev.delete(uid);\n return new Set(prev);\n });\n };\n\n useEffect(() => {\n const event = events.on(\n 'cart/data',\n (payload) => {\n setData(payload);\n },\n { eager: true }\n );\n\n return () => {\n event?.off();\n };\n }, []);\n\n const dictionary = useText({\n cartLink: 'Cart.MiniCart.cartLink',\n checkoutLink: 'Cart.MiniCart.checkoutLink',\n discountedPrice: 'Cart.CartItem.discountedPrice',\n heading: 'Cart.MiniCart.heading',\n message: 'Cart.CartItem.message',\n recipient: 'Cart.CartItem.recipient',\n regularPrice: 'Cart.CartItem.regularPrice',\n sender: 'Cart.CartItem.sender',\n file: 'Cart.CartItem.file',\n files: 'Cart.CartItem.files',\n });\n\n const handleItemQuantityUpdate = (uid: string, quantity: number) => {\n handleItemsLoading(true, uid);\n\n updateProductsFromCart([{ uid, quantity }]).finally(() => {\n handleItemsLoading(false, uid);\n });\n };\n\n // Publish shopping cart view event only once when the component is mounted and initialData is available\n useEffect(() => {\n if (initialData && Object.keys(initialData).length > 0) {\n publishShoppingCartViewEvent(initialData, state.locale || 'en-US');\n }\n }, [initialData]);\n\n return (\n <MiniCartComponent\n {...props}\n heading={\n <div>\n {dictionary.heading.replace(\n '{count}',\n (data?.totalQuantity ?? 0).toString()\n )}\n </div>\n }\n emptyCart={<EmptyCart ctaLinkURL={routeEmptyCartCTA?.()} />}\n subtotal={\n data?.subtotal &&\n (cartTaxesConfig?.subtotal === 'INCLUDING_TAX' ||\n cartTaxesConfig?.subtotal === 'INCLUDING_EXCLUDING_TAX' ? (\n <Price\n amount={data?.subtotal.includingTax.value}\n currency={data?.subtotal.includingTax.currency}\n data-testid=\"subtotal-including-tax\"\n style={{ font: 'inherit' }}\n />\n ) : (\n <Price\n amount={data?.subtotal.excludingTax.value}\n currency={data?.subtotal.excludingTax.currency}\n data-testid=\"subtotal-excluding-tax\"\n style={{ font: 'inherit' }}\n />\n ))\n }\n subtotalExcludingTaxes={\n data?.subtotal &&\n (cartTaxesConfig?.subtotal === 'INCLUDING_EXCLUDING_TAX' ? (\n <Price\n amount={data?.subtotal.excludingTax.value}\n currency={data?.subtotal.excludingTax.currency}\n data-testid=\"subtotal-including-excluding-tax\"\n style={{ font: 'inherit' }}\n />\n ) : undefined)\n }\n ctas={\n <div>\n {routeCheckout && (\n <Button variant=\"primary\" href={routeCheckout()}>\n {dictionary.checkoutLink}\n </Button>\n )}\n {routeCart && (\n <Button variant=\"tertiary\" href={routeCart()}>\n {dictionary.cartLink}\n </Button>\n )}\n </div>\n }\n products={\n data?.totalQuantity ?? 0 ? (\n <CartList>\n {data?.miniCartMaxItems?.map((item, index) => {\n const isLoading = itemsLoading.has(item.uid);\n\n const configurations = {\n ...(item.bundleOptions ?? {}),\n ...(item.selectedOptions ?? {}),\n ...item.customizableOptions,\n ...(item.recipient\n ? { [dictionary.recipient]: item.recipient }\n : {}),\n ...(item.recipientEmail && item.recipient\n ? {\n [dictionary.recipient]: `${item.recipient} (${item.recipientEmail})`,\n }\n : {}),\n ...(item.sender ? { [dictionary.sender]: item.sender } : {}),\n ...(item.senderEmail && item.sender\n ? {\n [dictionary.sender]: `${item.sender} (${item.senderEmail})`,\n }\n : {}),\n ...(item.message ? { [dictionary.message]: item.message } : {}),\n ...(item.links && item.links.count\n ? item.links.count > 1\n ? {\n [dictionary.files.replace(\n '{count}',\n item.links.count.toString()\n )]: item.links.result,\n }\n : {\n [dictionary.file.replace(\n '{count}',\n item.links.count.toString()\n )]: item.links.result,\n }\n : {}),\n };\n\n return (\n <CartItem\n data-testid=\"cart-item\"\n key={item.uid}\n updating={isLoading}\n taxIncluded={cartTaxesConfig?.price === 'INCLUDING_TAX'}\n taxExcluded={\n cartTaxesConfig?.price === 'INCLUDING_EXCLUDING_TAX'\n }\n image={\n routeProduct ? (\n <a href={routeProduct(item)}>\n <Image\n loading={index < 4 ? 'eager' : 'lazy'}\n src={item.image.src}\n alt={item.image.alt}\n width=\"300\"\n height=\"300\"\n params={{ width: 300 }}\n />\n </a>\n ) : (\n <Image\n loading={index < 4 ? 'eager' : 'lazy'}\n src={item.image.src}\n alt={item.image.alt}\n width=\"300\"\n height=\"300\"\n params={{ width: 300 }}\n />\n )\n }\n title={\n <span>\n {routeProduct ? (\n <a href={routeProduct(item)}>{item.name}</a>\n ) : (\n item.name\n )}\n </span>\n }\n sku={<span>{item.sku}</span>}\n configurations={\n Object.keys(configurations).length > 0\n ? configurations\n : undefined\n }\n quantity={item.quantity}\n price={\n cartTaxesConfig?.price === 'INCLUDING_TAX' ? (\n <Price\n amount={\n item.discounted\n ? item.regularPrice?.value\n : item.taxedPrice?.value\n }\n currency={\n item.discounted\n ? item.regularPrice?.currency\n : item.taxedPrice?.currency\n }\n style={{ font: 'inherit' }}\n data-testid=\"including-tax-item-price\"\n />\n ) : (\n <Price\n amount={item.regularPrice?.value}\n currency={item.regularPrice?.currency}\n style={{ font: 'inherit' }}\n data-testid=\"regular-item-price\"\n />\n )\n }\n total={\n cartTaxesConfig?.price === 'INCLUDING_EXCLUDING_TAX' ||\n cartTaxesConfig?.price === 'INCLUDING_TAX' ? (\n <>\n {item.discounted ? (\n <>\n <Price\n amount={item.total.value}\n currency={item.total.currency}\n variant={'strikethrough'}\n data-testid=\"including-tax-row-total\"\n aria-label={dictionary.regularPrice}\n />\n <Price\n amount={item.rowTotalIncludingTax?.value}\n currency={item.rowTotalIncludingTax?.currency}\n sale={item.discounted}\n data-testid=\"discount-total\"\n aria-label={dictionary.discountedPrice}\n />\n </>\n ) : (\n <Price\n amount={item.rowTotalIncludingTax.value}\n currency={item.rowTotalIncludingTax.currency}\n data-testid=\"including-tax-row-total\"\n aria-label={dictionary.regularPrice}\n />\n )}\n </>\n ) : (\n <>\n <Price\n amount={item.total.value}\n currency={item.total.currency}\n variant={\n item.discounted ? 'strikethrough' : 'default'\n }\n data-testid=\"regular-total\"\n aria-label={dictionary.regularPrice}\n />\n\n {item.discounted && (\n <Price\n amount={item.discountedTotal?.value}\n currency={item.discountedTotal?.currency}\n sale={item.discounted}\n data-testid=\"discount-total\"\n aria-label={dictionary.discountedPrice}\n />\n )}\n </>\n )\n }\n totalExcludingTax={\n cartTaxesConfig?.price === 'INCLUDING_EXCLUDING_TAX' ? (\n <Price\n amount={item.rowTotal.value}\n currency={item.rowTotal.currency}\n data-testid=\"excluding-tax-total\"\n aria-label={dictionary.regularPrice}\n />\n ) : undefined\n }\n onRemove={() => {\n handleItemQuantityUpdate(item.uid, 0);\n }}\n />\n );\n })}\n </CartList>\n ) : undefined\n }\n />\n );\n};\n\nMiniCart.getInitialData = async function () {\n return getPersistedData();\n};\n"],"names":["MiniCart","className","children","emptyCart","heading","products","subtotal","subtotalExcludingTaxes","ctas","props","dictionary","useText","_jsxs","classes","_jsx","VComponent","node","Divider","variant","_Fragment","initialData","routeProduct","routeCart","routeCheckout","routeEmptyCartCTA","data","setData","useState","itemsLoading","setItemLoading","Set","cartTaxesConfig","state","config","shoppingCartDisplaySetting","handleItemsLoading","uid","prev","add","delete","useEffect","event","events","on","payload","eager","off","cartLink","checkoutLink","discountedPrice","message","recipient","regularPrice","sender","file","files","handleItemQuantityUpdate","quantity","updateProductsFromCart","finally","Object","keys","length","locale","MiniCartComponent","replace","totalQuantity","toString","EmptyCart","ctaLinkURL","Price","amount","includingTax","value","currency","style","font","excludingTax","undefined","Button","href","CartList","miniCartMaxItems","map","item","index","isLoading","has","configurations","bundleOptions","selectedOptions","customizableOptions","recipientEmail","senderEmail","links","count","result","CartItem","updating","taxIncluded","price","taxExcluded","image","Image","loading","src","alt","width","height","params","title","name","sku","discounted","taxedPrice","total","rowTotalIncludingTax","sale","discountedTotal","totalExcludingTax","rowTotal","onRemove","getInitialData","getPersistedData"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cart-model.d.ts","sourceRoot":"","sources":["../../../src/data/models/cart-model.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,gBAAgB,EAAE,IAAI,EAAE,CAAC;IACzB,KAAK,EAAE;QACL,YAAY,EAAE,KAAK,CAAC;QACpB,YAAY,EAAE,KAAK,CAAC;KACrB,CAAC;IACF,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,QAAQ,EAAE;QACR,YAAY,EAAE,KAAK,CAAC;QACpB,YAAY,EAAE,KAAK,CAAC;QACpB,qBAAqB,EAAE,KAAK,CAAC;KAC9B,CAAC;IACF,YAAY,EAAE,kBAAkB,EAAE,CAAC;IACnC,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,gBAAgB,EAAE,kBAAkB,EAAE,CAAC;IACvC,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE;QACT,QAAQ,CAAC,EAAE;YACT,WAAW,EAAE,MAAM,CAAC;YACpB,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,UAAU,CAAC,EAAE,MAAM,CAAC;SACrB,EAAE,CAAC;KACL,CAAC;
|
|
1
|
+
{"version":3,"file":"cart-model.d.ts","sourceRoot":"","sources":["../../../src/data/models/cart-model.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,gBAAgB,EAAE,IAAI,EAAE,CAAC;IACzB,KAAK,EAAE;QACL,YAAY,EAAE,KAAK,CAAC;QACpB,YAAY,EAAE,KAAK,CAAC;KACrB,CAAC;IACF,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,QAAQ,EAAE;QACR,YAAY,EAAE,KAAK,CAAC;QACpB,YAAY,EAAE,KAAK,CAAC;QACpB,qBAAqB,EAAE,KAAK,CAAC;KAC9B,CAAC;IACF,YAAY,EAAE,kBAAkB,EAAE,CAAC;IACnC,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,gBAAgB,EAAE,kBAAkB,EAAE,CAAC;IACvC,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE;QACT,QAAQ,CAAC,EAAE;YACT,WAAW,EAAE,MAAM,CAAC;YACpB,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,UAAU,CAAC,EAAE,MAAM,CAAC;SACrB,EAAE,CAAC;KACL,CAAC;CACH;AAED,UAAU,kBAAkB;IAC1B,MAAM,EAAE,KAAK,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,IAAI;IACnB,UAAU,EAAE,KAAK,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC;IAChB,oBAAoB,EAAE,KAAK,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,OAAO,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;IACb,eAAe,CAAC,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,YAAY,EAAE,KAAK,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IACvC,eAAe,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IACzC,mBAAmB,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,SAAS;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,SAAS;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED,UAAU,KAAK;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,OAAO;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,UAAU,SAAS;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform-cart.d.ts","sourceRoot":"","sources":["../../../src/data/transforms/transform-cart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C,wBAAgB,aAAa,CAAC,IAAI,EAAE,GAAG,GAAG,SAAS,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"transform-cart.d.ts","sourceRoot":"","sources":["../../../src/data/transforms/transform-cart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C,wBAAgB,aAAa,CAAC,IAAI,EAAE,GAAG,GAAG,SAAS,GAAG,IAAI,CA4CzD"}
|
package/lib/state.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/lib/state.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/lib/state.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,KAAK,KAAK,GAAG;IACX,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;CAClC,CAAC;AAQF,eAAO,MAAM,KAAK,OA0ChB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name": "@dropins/storefront-cart", "version": "0.2.0-
|
|
1
|
+
{"name": "@dropins/storefront-cart", "version": "0.2.0-beta2", "@dropins/tools": "~0.24.1"}
|
package/render.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
(function(i,r){try{if(typeof document<"u"){const a=document.createElement("style"),n=r.styleId;for(const t in r.attributes)a.setAttribute(t,r.attributes[t]);a.setAttribute("data-dropin",n),a.appendChild(document.createTextNode(i));const e=document.querySelector('style[data-dropin="sdk"]');if(e)e.after(a);else{const t=document.querySelector('link[rel="stylesheet"], style');t?t.before(a):document.head.append(a)}}}catch(a){console.error("dropin-styles (injectCodeFunction)",a)}})(".cart-empty-cart{container-type:inline-size;container-name:cart}.cart-empty-cart__wrapper .dropin-card--secondary{display:grid;grid-auto-rows:min-content;justify-content:center;text-align:center}@container cart (width < 737px){.cart-empty-cart__wrapper .dropin-card{border:unset;border-style:hidden}}.cart-cart{container-type:inline-size;container-name:cart}.cart-cart__wrapper{display:grid;grid-template-rows:auto 1fr;grid-gap:var(--spacing-medium)}.cart-cart__heading{display:grid;row-gap:var(--spacing-xsmall);padding:var(--spacing-medium);padding-bottom:0;font:var(--type-headline-1-font);letter-spacing:var(--type-headline-1-letter-spacing);color:var(--color-neutral-800)}.cart-cart__heading-divider{width:100%;margin:var(--spacing-xxsmall) 0 0 0}.cart-cart__content{display:grid;grid-template-columns:1fr;padding:0 var(--spacing-medium)}.cart-cart__empty-cart{justify-self:center;align-self:center;width:100%;max-width:800px}.cart-cart__price-summary{padding:var(--spacing-small) var(--spacing-medium);background-color:var(--color-neutral-200)}.dropin-price-summary__shipping--zip,.dropin-price-summary__shipping--state{background-color:var(--color-neutral-50)}@container cart (width >= 1024px){.cart-cart__wrapper{grid-template-columns:repeat(var(--grid-3-columns),1fr);grid-column-gap:var(--grid-3-gutters);margin:0 var(--grid-3-margins)}.cart-cart__heading{padding:var(--spacing-medium) 0 0 0}.cart-cart__content{padding:0}.cart-cart__heading,.cart-cart__content{grid-column:1 / span 8}.cart-cart__price-summary{grid-row:1 / span 3;grid-column:9 / span 4;padding:var(--spacing-medium);height:min-content}.cart-cart__heading--full-width,.cart-cart__content--empty,.cart-cart__content--full-width{grid-column:1 / span 12}}.cart-mini-cart{display:flex;flex-direction:column;height:100%;padding:var(--spacing-small) var(--spacing-small) var(--spacing-medium);box-sizing:border-box}.cart-mini-cart__empty-cart{width:100%;max-width:800px;height:100%;display:flex;flex-direction:column;justify-content:center;align-self:center}.cart-mini-cart__heading{display:grid;row-gap:var(--spacing-xsmall);font:var(--type-headline-2-default-font);letter-spacing:var(--type-headline-2-default-letter-spacing)}.cart-mini-cart__heading-divider{width:100%;margin:var(--spacing-xxsmall) 0 0 0}.cart-mini-cart__products{flex:1;overflow-y:auto;max-height:100%;padding-top:var(--spacing-medium);padding-bottom:var(--spacing-medium)}.cart-mini-cart__products .dropin-cart-item__configurations li{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cart-mini-cart__footer{display:grid;grid-auto-flow:row;gap:var(--spacing-small);padding-top:var(--spacing-small);row-gap:var(--spacing-xsmall)}.cart-mini-cart__footer__estimated-total{font:var(--type-body-1-emphasized-font);letter-spacing:var(--type-body-1-emphasized-letter-spacing);display:grid;grid-template:max-content / 1fr auto;gap:var(--spacing-xsmall)}.cart-mini-cart__footer__estimated-total-excluding-taxes{font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing);display:grid;grid-template:max-content / 1fr auto;gap:var(--spacing-xsmall);color:var(--color-neutral-700)}.cart-mini-cart__footer__ctas{display:grid;grid-auto-flow:row;gap:var(--spacing-xsmall);padding-top:var(--spacing-small)}",{styleId:"Cart"});
|
|
2
|
-
import{deepmerge as
|
|
2
|
+
import{deepmerge as l,Render as p}from"@dropins/tools/lib.js";import{useState as u,useEffect as f}from"@dropins/tools/preact-hooks.js";import{UIProvider as g}from"@dropins/tools/components.js";import{events as m}from"@dropins/tools/event-bus.js";import{c as d}from"./chunks/getStoreConfig.js";import{jsx as r}from"@dropins/tools/preact-jsx-runtime.js";import"@dropins/tools/fetch-graphql.js";const h={Cart:{heading:"Shopping Cart"},MiniCart:{heading:"Shopping Cart ({count})",subtotal:"Subtotal",subtotalExcludingTaxes:"Subtotal excluding taxes",cartLink:"View Cart",checkoutLink:"Checkout"},EmptyCart:{heading:"Your cart is empty",cta:"Start shopping"},PriceSummary:{taxToBeDetermined:"TBD",checkout:"Checkout",estimatedShippingForm:{country:{placeholder:"Country"},state:{placeholder:"State"},zip:{placeholder:"Zip Code"},apply:{label:"Apply"}},freeShipping:"Free"},CartItem:{discountedPrice:"Discounted Price",download:"file",message:"Note",recipient:"To",regularPrice:"Regular Price",sender:"From",file:"{count} file",files:"{count} files"}},C={Cart:h},S={default:C},x=({children:n})=>{var o;const[e,a]=u(),c=(o=d.getConfig())==null?void 0:o.langDefinitions;f(()=>{const t=m.on("locale",i=>{i!==e&&a(i)},{eager:!0});return()=>{t==null||t.off()}},[e]);const s=l(S,c??{});return r(g,{lang:e,langDefinitions:s,children:n})},w=new p(r(x,{}));export{w as render};
|
|
3
3
|
//# sourceMappingURL=render.js.map
|
package/render.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sources":["../src/render/Provider.tsx","../src/render/render.tsx"],"sourcesContent":["import { FunctionComponent } from 'preact';\nimport { useState, useEffect } from 'preact/hooks';\nimport { UIProvider } from '@adobe/elsie/components';\nimport { Lang } from '@adobe/elsie/i18n';\nimport { events } from '@adobe/event-bus';\nimport { config } from '../api';\nimport { deepmerge } from '@adobe/elsie/lib';\n\nimport en_US from '../i18n/en_US.json';\n\n// Langs\nconst langDefinitions = {\n default: en_US,\n};\n\ninterface CartProviderProps {\n children?: any;\n}\n\nexport const Provider: FunctionComponent<CartProviderProps> = ({\n children,\n}) => {\n const [locale, setLang] = useState<Lang>();\n\n const userLangDefinitions = config.getConfig()?.langDefinitions;\n\n // Events\n useEffect(() => {\n const localeEvent = events.on(\n 'locale',\n (payload) => {\n if (payload !== locale) setLang(payload as Lang);\n },\n { eager: true }\n );\n return () => {\n localeEvent?.off();\n };\n }, [locale]);\n\n // Merge language definitions with user language definitions\n const definitions = deepmerge(langDefinitions, userLangDefinitions ?? {});\n\n return (\n <UIProvider lang={locale} langDefinitions={definitions}>\n {children}\n </UIProvider>\n );\n};\n","import { Render } from '@adobe/elsie/lib';\nimport { Provider } from './Provider';\n\nexport const render = new Render(<Provider />);\n"],"names":["langDefinitions","default","en_US","Provider","children","locale","setLang","useState","userLangDefinitions","config","getConfig","useEffect","localeEvent","events","on","payload","eager","off","definitions","deepmerge","_jsx","UIProvider","lang","render","Render"],"mappings":"
|
|
1
|
+
{"version":3,"file":"render.js","sources":["../src/render/Provider.tsx","../src/render/render.tsx"],"sourcesContent":["import { FunctionComponent } from 'preact';\nimport { useState, useEffect } from 'preact/hooks';\nimport { UIProvider } from '@adobe/elsie/components';\nimport { Lang } from '@adobe/elsie/i18n';\nimport { events } from '@adobe/event-bus';\nimport { config } from '../api';\nimport { deepmerge } from '@adobe/elsie/lib';\n\nimport en_US from '../i18n/en_US.json';\n\n// Langs\nconst langDefinitions = {\n default: en_US,\n};\n\ninterface CartProviderProps {\n children?: any;\n}\n\nexport const Provider: FunctionComponent<CartProviderProps> = ({\n children,\n}) => {\n const [locale, setLang] = useState<Lang>();\n\n const userLangDefinitions = config.getConfig()?.langDefinitions;\n\n // Events\n useEffect(() => {\n const localeEvent = events.on(\n 'locale',\n (payload) => {\n if (payload !== locale) setLang(payload as Lang);\n },\n { eager: true }\n );\n return () => {\n localeEvent?.off();\n };\n }, [locale]);\n\n // Merge language definitions with user language definitions\n const definitions = deepmerge(langDefinitions, userLangDefinitions ?? {});\n\n return (\n <UIProvider lang={locale} langDefinitions={definitions}>\n {children}\n </UIProvider>\n );\n};\n","import { Render } from '@adobe/elsie/lib';\nimport { Provider } from './Provider';\n\nexport const render = new Render(<Provider />);\n"],"names":["langDefinitions","default","en_US","Provider","children","locale","setLang","useState","userLangDefinitions","config","getConfig","useEffect","localeEvent","events","on","payload","eager","off","definitions","deepmerge","_jsx","UIProvider","lang","render","Render"],"mappings":"iiCAWMA,EAAkB,CACtBC,QAASC,CACX,EAMaC,EAAiDA,CAAC,CAC7DC,SAAAA,CACF,IAAM,OACJ,KAAM,CAACC,EAAQC,CAAO,EAAIC,EAAe,EAEnCC,GAAsBC,EAAAA,EAAOC,UAAAA,IAAPD,YAAAA,EAAoBT,gBAGhDW,EAAU,IAAM,CACd,MAAMC,EAAcC,EAAOC,GACzB,SACaC,GAAA,CACPA,IAAYV,GAAQC,EAAQS,CAAgB,CAAA,EAElD,CAAEC,MAAO,EAAA,CACX,EACA,MAAO,IAAM,CACXJ,GAAAA,MAAAA,EAAaK,KAAI,CACnB,EACC,CAACZ,CAAM,CAAC,EAGX,MAAMa,EAAcC,EAAUnB,EAAiBQ,GAAuB,CAAE,CAAA,EAExE,OACEY,EAACC,EAAU,CAACC,KAAMjB,EAAQL,gBAAiBkB,EAAYd,SAAAA,CAAAA,CAE3C,CAEhB,EC7CamB,EAAS,IAAIC,EAAOJ,EAACjB,EAAU,CAAA,CAAA,CAAC"}
|
package/chunks/initializeCart.js
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import{events as e}from"@dropins/tools/event-bus.js";import{s as a,e as g,i as h,C as u,a as d,f as i,h as C,t as s}from"./resetCart.js";import{g as I}from"./getStoreConfig.js";import{Initializer as T}from"@dropins/tools/lib.js";const l=new T({init:async t=>{const r={disableGuestCart:!1,...t};l.config.setConfig(r),o().catch(console.error)},listeners:()=>[e.on("authenticated",async t=>{a.authenticated&&!t?e.emit("cart/reset",void 0):t&&!a.authenticated&&(a.authenticated=t,o().catch(console.error))},{eager:!0}),e.on("locale",async t=>{t!==a.locale&&(a.locale=t,o().catch(console.error))}),e.on("cart/reset",()=>{g().catch(console.error),e.emit("cart/data",null)}),e.on("cart/data",t=>{h(t)})]}),_=l.config,R=`
|
|
2
|
-
query GUEST_CART_QUERY(
|
|
3
|
-
$cartId: String!,
|
|
4
|
-
${u}
|
|
5
|
-
) {
|
|
6
|
-
|
|
7
|
-
cart(cart_id: $cartId){
|
|
8
|
-
...CartFragment
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
${d}
|
|
13
|
-
`,E=`
|
|
14
|
-
query CUSTOMER_CART_QUERY(
|
|
15
|
-
${u}
|
|
16
|
-
) {
|
|
17
|
-
|
|
18
|
-
cart: customerCart {
|
|
19
|
-
...CartFragment
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
${d}
|
|
24
|
-
`,m=async()=>{const t=a.authenticated,r=a.cartId;if(t)return i(E,{method:"POST"}).then(({errors:n,data:c})=>n?C(n):s(c.cart));if(!r)throw new Error("No cart ID found");return i(R,{method:"POST",cache:"no-cache",variables:{cartId:r}}).then(({errors:n,data:c})=>n?C(n):s(c.cart))},y=`
|
|
25
|
-
mutation MERGE_CARTS_MUTATION(
|
|
26
|
-
$guestCartId: String!,
|
|
27
|
-
$customerCartId: String!,
|
|
28
|
-
${u}
|
|
29
|
-
) {
|
|
30
|
-
mergeCarts(
|
|
31
|
-
source_cart_id: $guestCartId,
|
|
32
|
-
destination_cart_id: $customerCartId
|
|
33
|
-
) {
|
|
34
|
-
...CartFragment
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
${d}
|
|
39
|
-
`,o=async()=>{a.config=await I();const t=a.authenticated?await A():await S();return e.emit("cart/initialized",t),e.emit("cart/data",t),t};async function A(){const t=a.cartId,r=await m();return r?(a.cartId=r.id,!t||r.id===t?r:await i(y,{variables:{guestCartId:t,customerCartId:r.id}}).then(({data:n})=>{const c=s(n.mergeCarts),f={oldCartItems:r.items,newCart:c};return e.emit("cart/merged",f),c}).catch(()=>(console.error("Could not merge carts"),r))):null}async function S(){if(_.getConfig().disableGuestCart===!0||!a.cartId)return null;try{return await m()}catch(t){return console.error(t),null}}export{o as a,_ as c,m as g,l as i};
|
|
40
|
-
//# sourceMappingURL=initializeCart.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"initializeCart.js","sources":["../../src/api/initialize/initialize.ts","../../src/api/getCartData/graphql/CartQuery.ts","../../src/api/getCartData/getCartData.ts","../../src/api/initializeCart/graphql/MergeCartsMutation.ts","../../src/api/initializeCart/initializeCart.ts"],"sourcesContent":["import { Initializer } from '@adobe/elsie/lib';\nimport { initializeCart, resetCart } from '@/cart/api';\nimport { state } from '@/cart/lib/state';\nimport { events } from '@adobe/event-bus';\nimport { Lang } from '@adobe/elsie/i18n';\nimport { setPersistedData } from '@/cart/lib/persisted-data';\n\ntype ConfigProps = {\n disableGuestCart?: boolean;\n langDefinitions?: Lang;\n};\n\nexport const initialize = new Initializer<ConfigProps>({\n init: async (_config) => {\n const config = { disableGuestCart: false, ..._config };\n\n // Set config\n initialize.config.setConfig(config);\n\n initializeCart().catch(console.error);\n },\n\n listeners: () => [\n events.on(\n 'authenticated',\n async (authenticated) => {\n if (state.authenticated && !authenticated) {\n // Reset cart if the user is no longer authenticated\n events.emit('cart/reset', undefined);\n }\n // Login event occurred\n else if (authenticated && !state.authenticated) {\n state.authenticated = authenticated;\n initializeCart().catch(console.error);\n }\n },\n { eager: true }\n ),\n\n events.on('locale', async (locale) => {\n if (locale !== state.locale) {\n state.locale = locale;\n initializeCart().catch(console.error);\n }\n }),\n\n events.on('cart/reset', () => {\n resetCart().catch(console.error);\n events.emit('cart/data', null);\n }),\n\n events.on('cart/data', (payload) => {\n setPersistedData(payload);\n }),\n ],\n});\n\nexport const config = initialize.config;\n","import {\n CART_FRAGMENT,\n CART_ITEMS_PAGINATION_ARGUMENTS,\n} from '@/cart/api/graphql/CartFragment';\n\nexport const GUEST_CART_QUERY = `\n query GUEST_CART_QUERY(\n $cartId: String!,\n ${CART_ITEMS_PAGINATION_ARGUMENTS}\n ) {\n\n cart(cart_id: $cartId){\n ...CartFragment\n }\n }\n\n ${CART_FRAGMENT}\n`;\n\nexport const CUSTOMER_CART_QUERY = `\n query CUSTOMER_CART_QUERY(\n ${CART_ITEMS_PAGINATION_ARGUMENTS}\n ) {\n\n cart: customerCart {\n ...CartFragment\n }\n }\n\n ${CART_FRAGMENT}\n`;\n","import { fetchGraphQl } from '@/cart/api';\nimport { handleFetchError } from '@/cart/lib/fetch-error';\nimport { state } from '@/cart/lib/state';\nimport { CartModel } from '@/cart/data/models';\nimport { transformCart } from '@/cart/data/transforms';\n\nimport { GUEST_CART_QUERY, CUSTOMER_CART_QUERY } from './graphql/CartQuery';\n\nexport const getCartData = async (): Promise<CartModel | null> => {\n const authenticated = state.authenticated;\n const cartId = state.cartId;\n\n // Customer Cart\n if (authenticated) {\n return fetchGraphQl(CUSTOMER_CART_QUERY, { method: 'POST' }).then(\n ({ errors, data }) => {\n if (errors) return handleFetchError(errors);\n\n return transformCart(data.cart);\n }\n );\n }\n\n // Guest Cart\n if (!cartId) throw new Error('No cart ID found');\n\n return fetchGraphQl(GUEST_CART_QUERY, {\n method: 'POST',\n cache: 'no-cache',\n variables: { cartId },\n }).then(({ errors, data }) => {\n if (errors) return handleFetchError(errors);\n\n return transformCart(data.cart);\n });\n};\n","import { CART_FRAGMENT, CART_ITEMS_PAGINATION_ARGUMENTS } from '@/cart/api/graphql/CartFragment';\n\nexport const MERGE_CARTS_MUTATION = `\n mutation MERGE_CARTS_MUTATION(\n $guestCartId: String!, \n $customerCartId: String!,\n ${CART_ITEMS_PAGINATION_ARGUMENTS}\n ) {\n mergeCarts(\n source_cart_id: $guestCartId,\n destination_cart_id: $customerCartId\n ) {\n ...CartFragment \n }\n }\n\n ${CART_FRAGMENT}\n`;\n","import { events } from '@adobe/event-bus';\nimport { state } from '@/cart/lib/state';\nimport { config, fetchGraphQl, getCartData, getStoreConfig } from '@/cart/api';\nimport { MERGE_CARTS_MUTATION } from './graphql/MergeCartsMutation';\nimport { CartModel } from '@/cart/data/models';\nimport { transformCart } from '@/cart/data/transforms/transform-cart';\n\nexport const initializeCart = async (): Promise<CartModel | null> => {\n // set config\n state.config = await getStoreConfig();\n\n const payload = state.authenticated\n ? await getCustomerCartPayload()\n : await getGuestCartPayload();\n\n events.emit('cart/initialized', payload);\n events.emit('cart/data', payload);\n\n return payload;\n};\n\nasync function getCustomerCartPayload() {\n const existingCartId = state.cartId;\n\n const cart = await getCartData();\n\n if (!cart) return null;\n\n // set cartid in the state\n state.cartId = cart.id;\n\n // If the existing cart is the same as the fetched cart, return the fetched cart\n if (!existingCartId || cart.id === existingCartId) return cart;\n\n // If the existing cart is not the same as the fetched cart, merge the carts\n return await fetchGraphQl(MERGE_CARTS_MUTATION, {\n variables: {\n guestCartId: existingCartId,\n customerCartId: cart.id,\n },\n })\n .then(({ data }) => {\n const transformedCartData = transformCart(data.mergeCarts);\n const payload = {\n oldCartItems: cart.items,\n newCart: transformedCartData,\n };\n events.emit('cart/merged', payload);\n return transformedCartData;\n })\n .catch(() => {\n // gracefully handle merge error, continue with existing cart\n console.error('Could not merge carts');\n return cart;\n });\n}\n\nasync function getGuestCartPayload() {\n // If guest cart is not enabled, return null\n if (config.getConfig().disableGuestCart === true) {\n return null;\n }\n\n // If there is not a cart id in the state, return null\n if (!state.cartId) {\n return null;\n }\n\n // If there is a cart id in the state, return the cart data\n try {\n return await getCartData();\n } catch (error) {\n console.error(error);\n return null;\n }\n}\n"],"names":["initialize","Initializer","init","_config","config","disableGuestCart","setConfig","initializeCart","catch","console","error","listeners","events","on","authenticated","state","emit","undefined","eager","locale","resetCart","payload","setPersistedData","GUEST_CART_QUERY","CART_ITEMS_PAGINATION_ARGUMENTS","CART_FRAGMENT","CUSTOMER_CART_QUERY","getCartData","cartId","fetchGraphQl","method","then","errors","data","handleFetchError","transformCart","cart","Error","cache","variables","MERGE_CARTS_MUTATION","getStoreConfig","getCustomerCartPayload","getGuestCartPayload","existingCartId","id","guestCartId","customerCartId","transformedCartData","mergeCarts","oldCartItems","items","newCart","getConfig"],"mappings":"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"}
|
package/chunks/resetCart.js
DELETED
|
@@ -1,219 +0,0 @@
|
|
|
1
|
-
import{FetchGraphQL as A}from"@dropins/tools/fetch-graphql.js";import"@dropins/tools/event-bus.js";function D(r){const n=document.cookie.split(";");for(let u=0;u<n.length;u++){const e=n[u].trim();if(e.indexOf(`${r}=`)===0)return e.substring(r.length+1)}return null}function q(r){r?sessionStorage.setItem("DROPIN__CART__CART__DATA",JSON.stringify(r)):sessionStorage.removeItem("DROPIN__CART__CART__DATA")}function w(){const r=sessionStorage.getItem("DROPIN__CART__CART__DATA");return r?JSON.parse(r):null}const R=(()=>{const r=w();return{cartId:null,authenticated:r?!r.isGuestCart:!1}})(),c=new Proxy(R,{set(r,n,u){var e;if(r[n]=u,n==="cartId"){if(u===c.cartId)return!0;if(u===null)return document.cookie="DROPIN__CART__CART-ID=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/",!0;const t=(e=c.config)==null?void 0:e.cartExpiresInDays;t||console.warn('Missing "expiresInDays" config. Cookie expiration will default to 30 days.');const l=new Date;l.setDate(l.getDate()+(t??30)),document.cookie=`DROPIN__CART__CART-ID=${u}; expires=${l.toUTCString()}; path=/`}return!0},get(r,n){return n==="cartId"?D("DROPIN__CART__CART-ID"):r[n]}}),{setEndpoint:Q,setFetchGraphQlHeader:B,removeFetchGraphQlHeader:V,setFetchGraphQlHeaders:j,fetchGraphQl:U,getConfig:H}=new A().getMethods();function J(r){var n,u,e,t,l,a,i;return r?{id:r.id,totalQuantity:k(r),errors:O(r==null?void 0:r.itemsV2),items:C(r==null?void 0:r.itemsV2),miniCartMaxItems:C(r==null?void 0:r.itemsV2).slice(0,((n=c.config)==null?void 0:n.miniCartMaxItemsDisplay)??10),total:{includingTax:{value:r.prices.grand_total.value,currency:r.prices.grand_total.currency},excludingTax:{value:r.prices.grand_total_excluding_tax.value,currency:r.prices.grand_total_excluding_tax.currency}},subtotal:{excludingTax:{value:(u=r.prices.subtotal_excluding_tax)==null?void 0:u.value,currency:(e=r.prices.subtotal_excluding_tax)==null?void 0:e.currency},includingTax:{value:(t=r.prices.subtotal_including_tax)==null?void 0:t.value,currency:(l=r.prices.subtotal_including_tax)==null?void 0:l.currency},includingDiscountOnly:{value:(a=r.prices.subtotal_with_discount_excluding_tax)==null?void 0:a.value,currency:(i=r.prices.subtotal_with_discount_excluding_tax)==null?void 0:i.currency}},appliedTaxes:x(r.prices.applied_taxes),totalTax:S(r.prices.applied_taxes),appliedDiscounts:x(r.prices.discounts),isVirtual:r.is_virtual,addresses:{shipping:r.shipping_addresses&&$(r.shipping_addresses)},isGuestCart:!c.authenticated}:null}function S(r){return r!=null&&r.length?r.reduce((n,u)=>({value:n.value+u.amount.value,currency:u.amount.currency}),{value:0,currency:""}):null}function C(r){var u;if(!((u=r==null?void 0:r.items)!=null&&u.length))return[];const n=c.config;return r.items.map(e=>{var t,l,a,i,s,_,p,g,m,d,y,f,b,v,h;return{itemType:e.__typename,uid:e.uid,url:{urlKey:e.product.url_key,categories:e.product.categories.map(T=>T.url_key)},quantity:e.quantity,sku:e.product.sku,name:e.product.name,image:{src:n!=null&&n.useConfigurableParentThumbnail?e.product.thumbnail.url:((l=(t=e.configured_variant)==null?void 0:t.thumbnail)==null?void 0:l.url)||e.product.thumbnail.url,alt:n!=null&&n.useConfigurableParentThumbnail?e.product.thumbnail.label:((i=(a=e.configured_variant)==null?void 0:a.thumbnail)==null?void 0:i.label)||e.product.thumbnail.label},price:{value:e.prices.price.value,currency:e.prices.price.currency},taxedPrice:{value:e.prices.price_including_tax.value,currency:e.prices.price_including_tax.currency},rowTotal:{value:e.prices.row_total.value,currency:e.prices.row_total.currency},rowTotalIncludingTax:{value:e.prices.row_total_including_tax.value,currency:e.prices.row_total_including_tax.currency},links:z(e.links),total:e.__typename==="SimpleCartItem"&&e.customizable_options.length!==0||e.__typename==="BundleCartItem"?{value:e.prices.row_total.value,currency:e.prices.row_total.currency}:{value:(s=e.prices.original_row_total)==null?void 0:s.value,currency:(_=e.prices.original_row_total)==null?void 0:_.currency},discount:{value:e.prices.total_item_discount.value,currency:e.prices.total_item_discount.currency},regularPrice:e.__typename==="ConfigurableCartItem"?{value:(g=(p=e.configured_variant)==null?void 0:p.price_range)==null?void 0:g.maximum_price.regular_price.value,currency:(d=(m=e.configured_variant)==null?void 0:m.price_range)==null?void 0:d.maximum_price.regular_price.currency}:e.__typename==="GiftCardCartItem"||e.__typename==="SimpleCartItem"&&e.customizable_options.length!==0||e.__typename==="BundleCartItem"?{value:e.prices.price.value,currency:e.prices.price.currency}:{value:(y=e.product.price_range)==null?void 0:y.maximum_price.regular_price.value,currency:(f=e.product.price_range)==null?void 0:f.maximum_price.regular_price.currency},discounted:e.__typename==="BundleCartItem"||e.__typename==="SimpleCartItem"&&e.customizable_options.length!==0?!1:e.__typename==="ConfigurableCartItem"?((v=(b=e.configured_variant)==null?void 0:b.price_range)==null?void 0:v.maximum_price.discount.amount_off)>0:((h=e.product.price_range)==null?void 0:h.maximum_price.discount.amount_off)>0,bundleOptions:e.__typename==="BundleCartItem"?E(e.bundle_options):null,selectedOptions:P(e.configurable_options),customizableOptions:G(e.customizable_options),sender:e.__typename==="GiftCardCartItem"?e.sender_name:null,senderEmail:e.__typename==="GiftCardCartItem"?e.sender_email:null,recipient:e.__typename==="GiftCardCartItem"?e.recipient_name:null,recipientEmail:e.__typename==="GiftCardCartItem"?e.recipient_email:null,message:e.__typename==="GiftCardCartItem"?e.message:null,discountedTotal:{value:e.prices.row_total.value,currency:e.prices.row_total.currency}}})}function O(r){var u;const n=(u=r==null?void 0:r.items)==null?void 0:u.reduce((e,t)=>{var l;return(l=t.errors)==null||l.forEach(a=>{e.push({uid:t.uid,text:a.message})}),e},[]);return n!=null&&n.length?n:null}function x(r){return r!=null&&r.length?r.map(n=>({amount:{value:n.amount.value,currency:n.amount.currency},label:n.label})):[]}function E(r){const n=r==null?void 0:r.map(e=>({uid:e.uid,label:e.label,value:e.values.map(t=>t.label).join(", ")})),u={};return n==null||n.forEach(e=>{u[e.label]=e.value}),Object.keys(u).length>0?u:null}function P(r){const n=r==null?void 0:r.map(e=>({uid:e.configurable_product_option_uid,label:e.option_label,value:e.value_label})),u={};return n==null||n.forEach(e=>{u[e.label]=e.value}),Object.keys(u).length>0?u:null}function G(r){const n=r==null?void 0:r.map(e=>({uid:e.customizable_option_uid,label:e.label,type:e.type,values:e.values.map(t=>({uid:t.customizable_option_value_uid,label:t.label,value:t.value}))})),u={};return n==null||n.forEach(e=>{switch(e.type){case"field":case"area":case"date_time":u[e.label]=e.values[0].value;break;case"radio":case"drop_down":u[e.label]=e.values[0].label;break;case"multiple":case"checkbox":u[e.label]=e.values.reduce((t,l)=>t?`${t}, ${l.label}`:l.label,"");break}}),u}function k(r){var n,u;return((n=c.config)==null?void 0:n.cartSummaryDisplayTotal)===0?r.itemsV2.items.length:((u=c.config)==null?void 0:u.cartSummaryDisplayTotal)===1?r.total_quantity:r.itemsV2.items.length}function z(r){return(r==null?void 0:r.length)>0?{count:r.length,result:r.map(n=>n.title).join(", ")}:null}function $(r){return r!=null&&r.length?r.map(n=>{var u,e;return{countryCode:(u=n.country)==null?void 0:u.code,zipCode:n.postcode,regionCode:(e=n.region)==null?void 0:e.code}}):null}const L=r=>{const n=r.findIndex(({extensions:t})=>(t==null?void 0:t.category)==="graphql-authorization")>-1,u=r.findIndex(({extensions:t})=>(t==null?void 0:t.category)==="graphql-no-such-entity")>-1,e=r.map(t=>t.message).join(" ");if(n||u)return N(),console.error(e),null;throw Error(e)},o=`
|
|
2
|
-
customizable_options {
|
|
3
|
-
type
|
|
4
|
-
customizable_option_uid
|
|
5
|
-
label
|
|
6
|
-
is_required
|
|
7
|
-
values {
|
|
8
|
-
label
|
|
9
|
-
value
|
|
10
|
-
price{
|
|
11
|
-
type
|
|
12
|
-
units
|
|
13
|
-
value
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
`,I=`
|
|
18
|
-
price_range {
|
|
19
|
-
minimum_price {
|
|
20
|
-
regular_price {
|
|
21
|
-
value
|
|
22
|
-
currency
|
|
23
|
-
}
|
|
24
|
-
final_price {
|
|
25
|
-
value
|
|
26
|
-
currency
|
|
27
|
-
}
|
|
28
|
-
discount {
|
|
29
|
-
percent_off
|
|
30
|
-
amount_off
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
maximum_price {
|
|
34
|
-
regular_price {
|
|
35
|
-
value
|
|
36
|
-
currency
|
|
37
|
-
}
|
|
38
|
-
final_price {
|
|
39
|
-
value
|
|
40
|
-
currency
|
|
41
|
-
}
|
|
42
|
-
discount {
|
|
43
|
-
percent_off
|
|
44
|
-
amount_off
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
`,K=`
|
|
49
|
-
fragment CartFragment on Cart {
|
|
50
|
-
id
|
|
51
|
-
total_quantity
|
|
52
|
-
is_virtual
|
|
53
|
-
prices {
|
|
54
|
-
subtotal_with_discount_excluding_tax {
|
|
55
|
-
currency
|
|
56
|
-
value
|
|
57
|
-
}
|
|
58
|
-
subtotal_including_tax {
|
|
59
|
-
currency
|
|
60
|
-
value
|
|
61
|
-
}
|
|
62
|
-
subtotal_excluding_tax {
|
|
63
|
-
currency
|
|
64
|
-
value
|
|
65
|
-
}
|
|
66
|
-
grand_total {
|
|
67
|
-
currency
|
|
68
|
-
value
|
|
69
|
-
}
|
|
70
|
-
grand_total_excluding_tax {
|
|
71
|
-
currency
|
|
72
|
-
value
|
|
73
|
-
}
|
|
74
|
-
applied_taxes {
|
|
75
|
-
label,
|
|
76
|
-
amount {
|
|
77
|
-
value
|
|
78
|
-
currency
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
discounts {
|
|
82
|
-
amount {
|
|
83
|
-
value
|
|
84
|
-
currency
|
|
85
|
-
}
|
|
86
|
-
label
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
itemsV2 (
|
|
90
|
-
pageSize:$pageSize,
|
|
91
|
-
currentPage:$currentPage,
|
|
92
|
-
sort: $itemsSortInput
|
|
93
|
-
) {
|
|
94
|
-
items {
|
|
95
|
-
__typename
|
|
96
|
-
uid
|
|
97
|
-
quantity
|
|
98
|
-
|
|
99
|
-
errors {
|
|
100
|
-
code
|
|
101
|
-
message
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
prices {
|
|
105
|
-
price {
|
|
106
|
-
value
|
|
107
|
-
currency
|
|
108
|
-
}
|
|
109
|
-
total_item_discount {
|
|
110
|
-
value
|
|
111
|
-
currency
|
|
112
|
-
}
|
|
113
|
-
row_total {
|
|
114
|
-
value
|
|
115
|
-
currency
|
|
116
|
-
}
|
|
117
|
-
row_total_including_tax {
|
|
118
|
-
value
|
|
119
|
-
currency
|
|
120
|
-
}
|
|
121
|
-
price_including_tax {
|
|
122
|
-
value
|
|
123
|
-
currency
|
|
124
|
-
}
|
|
125
|
-
fixed_product_taxes {
|
|
126
|
-
amount {
|
|
127
|
-
value
|
|
128
|
-
currency
|
|
129
|
-
}
|
|
130
|
-
label
|
|
131
|
-
}
|
|
132
|
-
original_row_total{
|
|
133
|
-
value
|
|
134
|
-
currency
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
product {
|
|
139
|
-
name
|
|
140
|
-
sku
|
|
141
|
-
thumbnail {
|
|
142
|
-
url
|
|
143
|
-
label
|
|
144
|
-
}
|
|
145
|
-
url_key
|
|
146
|
-
url_suffix
|
|
147
|
-
categories {
|
|
148
|
-
url_path
|
|
149
|
-
url_key
|
|
150
|
-
}
|
|
151
|
-
${I}
|
|
152
|
-
}
|
|
153
|
-
...on SimpleCartItem {
|
|
154
|
-
${o}
|
|
155
|
-
}
|
|
156
|
-
... on ConfigurableCartItem {
|
|
157
|
-
configurable_options {
|
|
158
|
-
configurable_product_option_uid
|
|
159
|
-
option_label
|
|
160
|
-
value_label
|
|
161
|
-
}
|
|
162
|
-
configured_variant {
|
|
163
|
-
uid
|
|
164
|
-
sku
|
|
165
|
-
thumbnail {
|
|
166
|
-
label
|
|
167
|
-
url
|
|
168
|
-
}
|
|
169
|
-
${I}
|
|
170
|
-
}
|
|
171
|
-
${o}
|
|
172
|
-
}
|
|
173
|
-
... on DownloadableCartItem {
|
|
174
|
-
links {
|
|
175
|
-
sort_order
|
|
176
|
-
title
|
|
177
|
-
}
|
|
178
|
-
${o}
|
|
179
|
-
}
|
|
180
|
-
... on BundleCartItem {
|
|
181
|
-
bundle_options {
|
|
182
|
-
uid
|
|
183
|
-
label
|
|
184
|
-
values {
|
|
185
|
-
uid
|
|
186
|
-
label
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
... on GiftCardCartItem {
|
|
191
|
-
message
|
|
192
|
-
recipient_email
|
|
193
|
-
recipient_name
|
|
194
|
-
sender_email
|
|
195
|
-
sender_name
|
|
196
|
-
amount{
|
|
197
|
-
currency
|
|
198
|
-
value
|
|
199
|
-
}
|
|
200
|
-
is_available
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
shipping_addresses {
|
|
205
|
-
country {
|
|
206
|
-
code
|
|
207
|
-
}
|
|
208
|
-
region {
|
|
209
|
-
code
|
|
210
|
-
}
|
|
211
|
-
postcode
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
`,Z=`
|
|
215
|
-
$pageSize: Int! = 100,
|
|
216
|
-
$currentPage: Int! = 1,
|
|
217
|
-
$itemsSortInput: QuoteItemsSortInput! = {field: CREATED_AT, order: DESC}
|
|
218
|
-
`,N=()=>(c.cartId=null,c.authenticated=!1,Promise.resolve(null));export{Z as C,K as a,Q as b,B as c,j as d,N as e,U as f,H as g,L as h,q as i,w as j,V as r,c as s,J as t};
|
|
219
|
-
//# sourceMappingURL=resetCart.js.map
|
package/chunks/resetCart.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resetCart.js","sources":["../../src/lib/cookies.ts","../../src/lib/persisted-data.ts","../../src/lib/state.ts","../../src/api/fetch-graphql/fetch-graphql.ts","../../src/data/transforms/transform-cart.ts","../../src/lib/fetch-error.ts","../../src/api/graphql/CartFragment.ts","../../src/api/resetCart/resetCart.ts"],"sourcesContent":["export function getCookie(cookieName: string) {\n // Split the cookie string into an array of individual cookies\n const cookies = document.cookie.split(';');\n\n // Loop through the cookies to find the one with the specified name\n for (let i = 0; i < cookies.length; i++) {\n const cookie = cookies[i].trim(); // Remove leading and trailing spaces\n\n // Check if this cookie starts with the name you're looking for\n if (cookie.indexOf(`${cookieName}=`) === 0) {\n // Extract and return the cookie's value\n return cookie.substring(cookieName.length + 1);\n }\n }\n\n // If the cookie is not found, return null\n return null;\n}\n","import { CartModel } from '@/cart/data/models';\n\nexport function setPersistedData(data: CartModel | null) {\n if (data) {\n sessionStorage.setItem('DROPIN__CART__CART__DATA', JSON.stringify(data));\n } else {\n sessionStorage.removeItem('DROPIN__CART__CART__DATA');\n }\n}\n\nexport function getPersistedData(): CartModel | null {\n const data = sessionStorage.getItem('DROPIN__CART__CART__DATA');\n\n if (data) return JSON.parse(data);\n\n return null;\n}\n","import { getCookie } from '@/cart/lib/cookies';\nimport { StoreConfigModel } from '@/cart/data/models/store-models';\nimport { getPersistedData } from './persisted-data';\n\ntype State = {\n cartId: string | null;\n authenticated: boolean;\n locale?: string;\n config?: StoreConfigModel | null;\n};\n\nconst _state: State = (() => {\n const persistedData = getPersistedData();\n const isAuthenticated = persistedData ? !persistedData.isGuestCart : false;\n return {\n cartId: null,\n authenticated: isAuthenticated,\n };\n})();\n\n// Proxy state to allow reactivity\nexport const state = new Proxy(_state, {\n set(target, key, value) {\n // @ts-ignore\n target[key] = value;\n\n if (key === 'cartId') {\n // only update cookie if value has changed\n if (value === state.cartId) return true;\n\n if (value === null) {\n // remove cookie\n document.cookie = `DROPIN__CART__CART-ID=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/`;\n return true;\n }\n\n // get expiration days from config\n const expiresInDays = state.config?.cartExpiresInDays;\n\n if (!expiresInDays) {\n console.warn(\n 'Missing \"expiresInDays\" config. Cookie expiration will default to 30 days.'\n );\n }\n\n // set expiration date\n const expires = new Date();\n expires.setDate(expires.getDate() + (expiresInDays ?? 30));\n\n // set cookie\n document.cookie = `DROPIN__CART__CART-ID=${value}; expires=${expires.toUTCString()}; path=/`;\n }\n\n return true;\n },\n get(target, key) {\n if (key === 'cartId') {\n // get value from cookie\n return getCookie('DROPIN__CART__CART-ID');\n }\n\n return target[key as keyof State];\n },\n});\n","import { FetchGraphQL } from '@adobe/fetch-graphql';\n\nexport const {\n setEndpoint,\n setFetchGraphQlHeader,\n removeFetchGraphQlHeader,\n setFetchGraphQlHeaders,\n fetchGraphQl,\n getConfig,\n} = new FetchGraphQL().getMethods();\n","import { CartModel } from '@/cart/data/models';\nimport { state } from '@/cart/lib/state';\n\nexport function transformCart(data: any): CartModel | null {\n if (!data) return null;\n return {\n id: data.id,\n totalQuantity: transformQuantity(data),\n errors: transformErrors(data?.itemsV2),\n items: transformItems(data?.itemsV2),\n miniCartMaxItems: transformItems(data?.itemsV2).slice(\n 0,\n state.config?.miniCartMaxItemsDisplay ?? 10\n ),\n total: {\n includingTax: {\n value: data.prices.grand_total.value,\n currency: data.prices.grand_total.currency,\n },\n excludingTax: {\n value: data.prices.grand_total_excluding_tax.value,\n currency: data.prices.grand_total_excluding_tax.currency,\n },\n },\n subtotal: {\n excludingTax: {\n value: data.prices.subtotal_excluding_tax?.value,\n currency: data.prices.subtotal_excluding_tax?.currency,\n },\n includingTax: {\n value: data.prices.subtotal_including_tax?.value,\n currency: data.prices.subtotal_including_tax?.currency,\n },\n includingDiscountOnly: {\n value: data.prices.subtotal_with_discount_excluding_tax?.value,\n currency: data.prices.subtotal_with_discount_excluding_tax?.currency,\n },\n },\n appliedTaxes: transformTotalPriceModifiers(data.prices.applied_taxes),\n totalTax: calculateTotalTax(data.prices.applied_taxes),\n appliedDiscounts: transformTotalPriceModifiers(data.prices.discounts),\n isVirtual: data.is_virtual,\n addresses: {\n shipping:\n data.shipping_addresses && transformAddresses(data.shipping_addresses),\n },\n isGuestCart: !state.authenticated,\n };\n}\n\n// Need to calculate total tax amount since it's not provided by GraphQL\nfunction calculateTotalTax(data: any[]) {\n if (!data?.length) return null;\n\n return data.reduce(\n (acc: any, item: any) => {\n return {\n value: acc.value + item.amount.value,\n currency: item.amount.currency,\n };\n },\n { value: 0, currency: '' }\n );\n}\n\nfunction transformItems(data: any) {\n if (!data?.items?.length) return [];\n\n const config = state.config;\n\n return data.items.map((item: any) => ({\n itemType: item.__typename,\n uid: item.uid,\n url: {\n urlKey: item.product.url_key,\n categories: item.product.categories.map(\n (category: any) => category.url_key\n ),\n },\n quantity: item.quantity,\n sku: item.product.sku,\n name: item.product.name,\n image: {\n // Use parent thumbnail if configured, otherwise use own variant. use the parent thumbnail as a fallback\n src: config?.useConfigurableParentThumbnail\n ? item.product.thumbnail.url\n : item.configured_variant?.thumbnail?.url || item.product.thumbnail.url,\n alt: config?.useConfigurableParentThumbnail\n ? item.product.thumbnail.label\n : item.configured_variant?.thumbnail?.label ||\n item.product.thumbnail.label,\n },\n price: {\n value: item.prices.price.value,\n currency: item.prices.price.currency,\n },\n taxedPrice: {\n value: item.prices.price_including_tax.value,\n currency: item.prices.price_including_tax.currency,\n },\n rowTotal: {\n value: item.prices.row_total.value,\n currency: item.prices.row_total.currency,\n },\n rowTotalIncludingTax: {\n value: item.prices.row_total_including_tax.value,\n currency: item.prices.row_total_including_tax.currency,\n },\n links: transformLinks(item.links),\n\n // Update BundleCartItem after USF-1221 is completed\n // Update SimpleWithCustomizableOptions after USF-1212 is completed\n total:\n (item.__typename === 'SimpleCartItem' &&\n item.customizable_options.length !== 0) ||\n item.__typename === 'BundleCartItem'\n ? {\n value: item.prices.row_total.value,\n currency: item.prices.row_total.currency,\n }\n : {\n value: item.prices.original_row_total?.value,\n currency: item.prices.original_row_total?.currency,\n },\n\n discount: {\n value: item.prices.total_item_discount.value,\n currency: item.prices.total_item_discount.currency,\n },\n\n // Add support for BundleCartItem after USF-1221 is completed\n // Add support for SimpleWithCustomizableOptions after USF-1212 is completed\n regularPrice:\n item.__typename === 'ConfigurableCartItem'\n ? {\n value:\n item.configured_variant?.price_range?.maximum_price.regular_price\n .value,\n currency:\n item.configured_variant?.price_range?.maximum_price.regular_price\n .currency,\n }\n : item.__typename === 'GiftCardCartItem' ||\n (item.__typename === 'SimpleCartItem' &&\n item.customizable_options.length !== 0) ||\n item.__typename === 'BundleCartItem'\n ? {\n value: item.prices.price.value,\n currency: item.prices.price.currency,\n }\n : {\n value: item.product.price_range?.maximum_price.regular_price.value,\n currency:\n item.product.price_range?.maximum_price.regular_price.currency,\n },\n\n // Add support for BundleCartItem after USF-1221 is completed\n // Add support for SimpleWithCustomizableOptions after USF-1212 is completed\n discounted:\n item.__typename === 'BundleCartItem' ||\n (item.__typename === 'SimpleCartItem' &&\n item.customizable_options.length !== 0)\n ? false\n : item.__typename === 'ConfigurableCartItem'\n ? item.configured_variant?.price_range?.maximum_price.discount\n .amount_off > 0\n : item.product.price_range?.maximum_price.discount.amount_off > 0,\n bundleOptions:\n item.__typename === 'BundleCartItem'\n ? transformBundleOptions(item.bundle_options)\n : null,\n selectedOptions: transformSelectedOptions(item.configurable_options),\n customizableOptions: transformCustomizableOptions(\n item.customizable_options\n ),\n sender: item.__typename === 'GiftCardCartItem' ? item.sender_name : null,\n senderEmail:\n item.__typename === 'GiftCardCartItem' ? item.sender_email : null,\n recipient:\n item.__typename === 'GiftCardCartItem' ? item.recipient_name : null,\n recipientEmail:\n item.__typename === 'GiftCardCartItem' ? item.recipient_email : null,\n message: item.__typename === 'GiftCardCartItem' ? item.message : null,\n\n discountedTotal: {\n value: item.prices.row_total.value,\n currency: item.prices.row_total.currency,\n },\n }));\n}\n\nfunction transformErrors(data: any) {\n const result = data?.items?.reduce((acc: any, item: any) => {\n item.errors?.forEach((error: Error) => {\n acc.push({ uid: item.uid, text: error.message });\n });\n\n return acc;\n }, []);\n\n return result?.length ? result : null;\n}\n\nfunction transformTotalPriceModifiers(data: any) {\n if (!data?.length) return [];\n\n return data.map((item: any) => ({\n amount: {\n value: item.amount.value,\n currency: item.amount.currency,\n },\n label: item.label,\n }));\n}\n\nfunction transformBundleOptions(data: any) {\n const bundle = data?.map((option: any) => ({\n uid: option.uid,\n label: option.label,\n value: option.values.map((value: any) => value.label).join(', '),\n }));\n\n const bundleOptions: { [key: string]: any } = {};\n\n bundle?.forEach((option: any) => {\n bundleOptions[option.label] = option.value;\n });\n\n return Object.keys(bundleOptions).length > 0 ? bundleOptions : null;\n}\n\nfunction transformSelectedOptions(data: any) {\n const selected = data?.map((option: any) => ({\n uid: option.configurable_product_option_uid,\n label: option.option_label,\n value: option.value_label,\n }));\n\n const selectedOptions: { [key: string]: any } = {};\n\n selected?.forEach((option: any) => {\n selectedOptions[option.label] = option.value;\n });\n\n return Object.keys(selectedOptions).length > 0 ? selectedOptions : null;\n}\n\nfunction transformCustomizableOptions(data: any) {\n const transformedOptions = data?.map((option: any) => ({\n uid: option.customizable_option_uid,\n label: option.label,\n type: option.type,\n values: option.values.map((value: any) => ({\n uid: value.customizable_option_value_uid,\n label: value.label,\n value: value.value,\n })),\n }));\n\n const result: { [key: string]: any } = {};\n\n transformedOptions?.forEach((option: any) => {\n switch (option.type) {\n case 'field':\n case 'area':\n case 'date_time':\n result[option.label] = option.values[0].value;\n break;\n case 'radio':\n case 'drop_down':\n result[option.label] = option.values[0].label;\n break;\n case 'multiple':\n case 'checkbox':\n result[option.label] = (option.values as Array<any>).reduce(\n (previous, current) => {\n if (previous) return `${previous}, ${current.label}`;\n return current.label;\n },\n ''\n );\n break;\n }\n });\n return result;\n}\n\nfunction transformQuantity(data: any) {\n if (state.config?.cartSummaryDisplayTotal === 0)\n return data.itemsV2.items.length;\n if (state.config?.cartSummaryDisplayTotal === 1) return data.total_quantity;\n // Default to items count if unexpected config value or error returned\n return data.itemsV2.items.length;\n}\n\nfunction transformLinks(links: any) {\n return links?.length > 0\n ? {\n count: links.length,\n result: links.map((link: any) => link.title).join(', '),\n }\n : null;\n}\n\nfunction transformAddresses(data: any[]) {\n if (!data?.length) return null;\n\n return data.map((address: any) => ({\n countryCode: address.country?.code,\n zipCode: address.postcode,\n regionCode: address.region?.code,\n }));\n}\n","import { resetCart } from '../api';\n\n/** Actions */\nexport const handleFetchError = (\n errors: Array<{ message: string; extensions: { category: string } }>\n) => {\n const unauthorized =\n errors.findIndex(\n ({ extensions }) => extensions?.category === 'graphql-authorization'\n ) > -1;\n\n const missingCart =\n errors.findIndex(\n ({ extensions }) => extensions?.category === 'graphql-no-such-entity'\n ) > -1;\n\n const errorMessage = errors.map((e: any) => e.message).join(' ');\n\n // Reset cart data if unauthorized or missing cart\n if (unauthorized || missingCart) {\n resetCart();\n console.error(errorMessage);\n return null;\n }\n\n throw Error(errorMessage);\n};\n","const CUSTOMIZABLE_OPTIONS_FRAGMENT = `\n customizable_options {\n type\n customizable_option_uid\n label\n is_required\n values {\n label\n value\n price{\n type\n units\n value\n }\n }\n }\n`;\n\nconst PRICE_RANGE_FRAGMENT = `\n price_range {\n minimum_price {\n regular_price {\n value\n currency\n }\n final_price {\n value\n currency\n }\n discount {\n percent_off\n amount_off\n }\n }\n maximum_price {\n regular_price {\n value\n currency\n }\n final_price {\n value\n currency\n }\n discount {\n percent_off\n amount_off\n }\n }\n }\n`;\n\nexport const CART_FRAGMENT = `\nfragment CartFragment on Cart {\n id\n total_quantity\n is_virtual\n prices {\n subtotal_with_discount_excluding_tax {\n currency\n value\n }\n subtotal_including_tax {\n currency\n value\n }\n subtotal_excluding_tax {\n currency\n value\n }\n grand_total {\n currency\n value\n }\n grand_total_excluding_tax {\n currency\n value\n }\n applied_taxes {\n label,\n amount {\n value\n currency\n }\n }\n discounts {\n amount {\n value\n currency\n }\n label\n }\n }\n itemsV2 (\n pageSize:$pageSize,\n currentPage:$currentPage,\n sort: $itemsSortInput\n ) {\n items {\n __typename\n uid\n quantity\n \n errors {\n code\n message\n }\n \n prices {\n price {\n value\n currency\n }\n total_item_discount {\n value\n currency\n }\n row_total {\n value\n currency\n }\n row_total_including_tax {\n value\n currency\n }\n price_including_tax {\n value\n currency\n }\n fixed_product_taxes {\n amount {\n value\n currency\n }\n label\n }\n original_row_total{\n value\n currency\n }\n }\n \n product {\n name\n sku\n thumbnail {\n url\n label\n }\n url_key\n url_suffix\n categories {\n url_path\n url_key\n }\n ${PRICE_RANGE_FRAGMENT}\n }\n ...on SimpleCartItem {\n ${CUSTOMIZABLE_OPTIONS_FRAGMENT}\n }\n ... on ConfigurableCartItem {\n configurable_options {\n configurable_product_option_uid\n option_label\n value_label\n }\n configured_variant {\n uid\n sku\n thumbnail {\n label\n url\n }\n ${PRICE_RANGE_FRAGMENT}\n }\n ${CUSTOMIZABLE_OPTIONS_FRAGMENT}\n }\n ... on DownloadableCartItem {\n links {\n sort_order\n title\n }\n ${CUSTOMIZABLE_OPTIONS_FRAGMENT}\n }\n ... on BundleCartItem {\n bundle_options {\n uid\n label\n values {\n uid\n label\n }\n }\n }\n ... on GiftCardCartItem {\n message\n recipient_email\n recipient_name\n sender_email\n sender_name\n amount{\n currency\n value\n }\n is_available\n }\n }\n }\n shipping_addresses {\n country {\n code\n }\n region {\n code\n }\n postcode\n }\n}\n`;\n\n// Default values for pagination and sorting for cart items\nexport const CART_ITEMS_PAGINATION_ARGUMENTS = `\n $pageSize: Int! = 100,\n $currentPage: Int! = 1,\n $itemsSortInput: QuoteItemsSortInput! = {field: CREATED_AT, order: DESC}\n`;\n","import { state } from '@/cart/lib/state';\nimport { CartModel } from '@/cart/data/models';\n\nexport const resetCart = (): Promise<CartModel | null> => {\n state.cartId = null;\n state.authenticated = false;\n\n return Promise.resolve(null);\n};\n"],"names":["getCookie","cookieName","cookies","document","cookie","split","i","length","trim","indexOf","substring","setPersistedData","data","sessionStorage","setItem","JSON","stringify","removeItem","getPersistedData","getItem","parse","_state","persistedData","cartId","authenticated","isGuestCart","isAuthenticated","state","Proxy","set","target","key","value","expiresInDays","config","cartExpiresInDays","console","warn","expires","Date","setDate","getDate","toUTCString","get","setEndpoint","setFetchGraphQlHeader","removeFetchGraphQlHeader","setFetchGraphQlHeaders","fetchGraphQl","getConfig","FetchGraphQL","getMethods","transformCart","id","totalQuantity","transformQuantity","errors","transformErrors","itemsV2","items","transformItems","miniCartMaxItems","slice","miniCartMaxItemsDisplay","total","includingTax","prices","grand_total","currency","excludingTax","grand_total_excluding_tax","subtotal","subtotal_excluding_tax","subtotal_including_tax","includingDiscountOnly","subtotal_with_discount_excluding_tax","appliedTaxes","transformTotalPriceModifiers","applied_taxes","totalTax","calculateTotalTax","appliedDiscounts","discounts","isVirtual","is_virtual","addresses","shipping","shipping_addresses","transformAddresses","reduce","acc","item","amount","map","itemType","__typename","uid","url","urlKey","product","url_key","categories","category","quantity","sku","name","image","src","useConfigurableParentThumbnail","thumbnail","configured_variant","alt","label","price","taxedPrice","price_including_tax","rowTotal","row_total","rowTotalIncludingTax","row_total_including_tax","links","transformLinks","customizable_options","original_row_total","discount","total_item_discount","regularPrice","price_range","maximum_price","regular_price","discounted","amount_off","bundleOptions","transformBundleOptions","bundle_options","selectedOptions","transformSelectedOptions","configurable_options","customizableOptions","transformCustomizableOptions","sender","sender_name","senderEmail","sender_email","recipient","recipient_name","recipientEmail","recipient_email","message","discountedTotal","result","forEach","error","push","text","bundle","option","values","join","Object","keys","selected","configurable_product_option_uid","option_label","value_label","transformedOptions","customizable_option_uid","type","customizable_option_value_uid","previous","current","cartSummaryDisplayTotal","total_quantity","count","link","title","address","countryCode","country","code","zipCode","postcode","regionCode","region","handleFetchError","unauthorized","findIndex","extensions","missingCart","errorMessage","e","resetCart","Error","CUSTOMIZABLE_OPTIONS_FRAGMENT","PRICE_RANGE_FRAGMENT","CART_FRAGMENT","CART_ITEMS_PAGINATION_ARGUMENTS","Promise","resolve"],"mappings":"mGAAO,SAASA,EAAUC,EAAoB,CAE5C,MAAMC,EAAUC,SAASC,OAAOC,MAAM,GAAG,EAGzC,QAASC,EAAI,EAAGA,EAAIJ,EAAQK,OAAQD,IAAK,CACvC,MAAMF,EAASF,EAAQI,CAAC,EAAEE,KAAK,EAG/B,GAAIJ,EAAOK,QAAS,GAAER,CAAW,GAAE,IAAM,EAEvC,OAAOG,EAAOM,UAAUT,EAAWM,OAAS,CAAC,CAEjD,CAGO,OAAA,IACT,CCfO,SAASI,EAAiBC,EAAwB,CACnDA,EACFC,eAAeC,QAAQ,2BAA4BC,KAAKC,UAAUJ,CAAI,CAAC,EAEvEC,eAAeI,WAAW,0BAA0B,CAExD,CAEO,SAASC,GAAqC,CAC7CN,MAAAA,EAAOC,eAAeM,QAAQ,0BAA0B,EAE1DP,OAAAA,EAAaG,KAAKK,MAAMR,CAAI,EAEzB,IACT,CCLA,MAAMS,GAAiB,IAAM,CAC3B,MAAMC,EAAgBJ,IAEf,MAAA,CACLK,OAAQ,KACRC,cAHsBF,EAAgB,CAACA,EAAcG,YAAc,EAGpDC,CAEnB,KAGaC,EAAQ,IAAIC,MAAMP,EAAQ,CACrCQ,IAAIC,EAAQC,EAAKC,EAAO,OAItB,GAFAF,EAAOC,CAAG,EAAIC,EAEVD,IAAQ,SAAU,CAEpB,GAAIC,IAAUL,EAAMJ,OAAe,MAAA,GAEnC,GAAIS,IAAU,KAEZ7B,gBAASC,OAAU,wEACZ,GAIH6B,MAAAA,GAAgBN,EAAAA,EAAMO,SAANP,YAAAA,EAAcQ,kBAE/BF,GACHG,QAAQC,KACN,4EACF,EAIIC,MAAAA,MAAcC,KACpBD,EAAQE,QAAQF,EAAQG,QAAQ,GAAKR,GAAiB,GAAG,EAGzD9B,SAASC,OAAU,yBAAwB4B,CAAM,aAAYM,EAAQI,aAAc,UACrF,CAEO,MAAA,EACT,EACAC,IAAIb,EAAQC,EAAK,CACf,OAAIA,IAAQ,SAEH/B,EAAU,uBAAuB,EAGnC8B,EAAOC,CAAmB,CACnC,CACF,CAAC,EC7DY,CACXa,YAAAA,EACAC,sBAAAA,EACAC,yBAAAA,EACAC,uBAAAA,EACAC,aAAAA,EACAC,UAAAA,CACF,EAAI,IAAIC,EAAa,EAAEC,WAAW,ECN3B,SAASC,EAAcxC,EAA6B,mBACzD,OAAKA,EACE,CACLyC,GAAIzC,EAAKyC,GACTC,cAAeC,EAAkB3C,CAAI,EACrC4C,OAAQC,EAAgB7C,GAAAA,YAAAA,EAAM8C,OAAO,EACrCC,MAAOC,EAAehD,GAAAA,YAAAA,EAAM8C,OAAO,EACnCG,iBAAkBD,EAAehD,GAAAA,YAAAA,EAAM8C,OAAO,EAAEI,MAC9C,IACAnC,EAAAA,EAAMO,SAANP,YAAAA,EAAcoC,0BAA2B,EAC3C,EACAC,MAAO,CACLC,aAAc,CACZjC,MAAOpB,EAAKsD,OAAOC,YAAYnC,MAC/BoC,SAAUxD,EAAKsD,OAAOC,YAAYC,QACpC,EACAC,aAAc,CACZrC,MAAOpB,EAAKsD,OAAOI,0BAA0BtC,MAC7CoC,SAAUxD,EAAKsD,OAAOI,0BAA0BF,QAClD,CACF,EACAG,SAAU,CACRF,aAAc,CACZrC,OAAOpB,EAAAA,EAAKsD,OAAOM,yBAAZ5D,YAAAA,EAAoCoB,MAC3CoC,UAAUxD,EAAAA,EAAKsD,OAAOM,yBAAZ5D,YAAAA,EAAoCwD,QAChD,EACAH,aAAc,CACZjC,OAAOpB,EAAAA,EAAKsD,OAAOO,yBAAZ7D,YAAAA,EAAoCoB,MAC3CoC,UAAUxD,EAAAA,EAAKsD,OAAOO,yBAAZ7D,YAAAA,EAAoCwD,QAChD,EACAM,sBAAuB,CACrB1C,OAAOpB,EAAAA,EAAKsD,OAAOS,uCAAZ/D,YAAAA,EAAkDoB,MACzDoC,UAAUxD,EAAAA,EAAKsD,OAAOS,uCAAZ/D,YAAAA,EAAkDwD,QAC9D,CACF,EACAQ,aAAcC,EAA6BjE,EAAKsD,OAAOY,aAAa,EACpEC,SAAUC,EAAkBpE,EAAKsD,OAAOY,aAAa,EACrDG,iBAAkBJ,EAA6BjE,EAAKsD,OAAOgB,SAAS,EACpEC,UAAWvE,EAAKwE,WAChBC,UAAW,CACTC,SACE1E,EAAK2E,oBAAsBC,EAAmB5E,EAAK2E,kBAAkB,CACzE,EACA9D,YAAa,CAACE,EAAMH,aAAAA,EA1CJ,IA4CpB,CAGA,SAASwD,EAAkBpE,EAAa,CACtC,OAAKA,GAAAA,MAAAA,EAAML,OAEJK,EAAK6E,OACV,CAACC,EAAUC,KACF,CACL3D,MAAO0D,EAAI1D,MAAQ2D,EAAKC,OAAO5D,MAC/BoC,SAAUuB,EAAKC,OAAOxB,QAAAA,GAG1B,CAAEpC,MAAO,EAAGoC,SAAU,EAAA,CACxB,EAV0B,IAW5B,CAEA,SAASR,EAAehD,EAAW,OAC7B,GAAA,GAACA,EAAAA,GAAAA,YAAAA,EAAM+C,QAAN/C,MAAAA,EAAaL,QAAQ,MAAO,GAEjC,MAAM2B,EAASP,EAAMO,OAErB,OAAOtB,EAAK+C,MAAMkC,IAAKF,GAAe,mCAAA,OACpCG,SAAUH,EAAKI,WACfC,IAAKL,EAAKK,IACVC,IAAK,CACHC,OAAQP,EAAKQ,QAAQC,QACrBC,WAAYV,EAAKQ,QAAQE,WAAWR,IACjCS,GAAkBA,EAASF,OAC9B,CACF,EACAG,SAAUZ,EAAKY,SACfC,IAAKb,EAAKQ,QAAQK,IAClBC,KAAMd,EAAKQ,QAAQM,KACnBC,MAAO,CAELC,IAAKzE,GAAAA,MAAAA,EAAQ0E,+BACTjB,EAAKQ,QAAQU,UAAUZ,MACvBN,GAAAA,EAAAA,EAAKmB,qBAALnB,YAAAA,EAAyBkB,YAAzBlB,YAAAA,EAAoCM,MAAON,EAAKQ,QAAQU,UAAUZ,IACtEc,IAAK7E,GAAAA,MAAAA,EAAQ0E,+BACTjB,EAAKQ,QAAQU,UAAUG,QACvBrB,GAAAA,EAAAA,EAAKmB,qBAALnB,YAAAA,EAAyBkB,YAAzBlB,YAAAA,EAAoCqB,QACpCrB,EAAKQ,QAAQU,UAAUG,KAC7B,EACAC,MAAO,CACLjF,MAAO2D,EAAKzB,OAAO+C,MAAMjF,MACzBoC,SAAUuB,EAAKzB,OAAO+C,MAAM7C,QAC9B,EACA8C,WAAY,CACVlF,MAAO2D,EAAKzB,OAAOiD,oBAAoBnF,MACvCoC,SAAUuB,EAAKzB,OAAOiD,oBAAoB/C,QAC5C,EACAgD,SAAU,CACRpF,MAAO2D,EAAKzB,OAAOmD,UAAUrF,MAC7BoC,SAAUuB,EAAKzB,OAAOmD,UAAUjD,QAClC,EACAkD,qBAAsB,CACpBtF,MAAO2D,EAAKzB,OAAOqD,wBAAwBvF,MAC3CoC,SAAUuB,EAAKzB,OAAOqD,wBAAwBnD,QAChD,EACAoD,MAAOC,EAAe9B,EAAK6B,KAAK,EAIhCxD,MACG2B,EAAKI,aAAe,kBACnBJ,EAAK+B,qBAAqBnH,SAAW,GACvCoF,EAAKI,aAAe,iBAChB,CACE/D,MAAO2D,EAAKzB,OAAOmD,UAAUrF,MAC7BoC,SAAUuB,EAAKzB,OAAOmD,UAAUjD,QAAAA,EAElC,CACEpC,OAAO2D,EAAAA,EAAKzB,OAAOyD,qBAAZhC,YAAAA,EAAgC3D,MACvCoC,UAAUuB,EAAAA,EAAKzB,OAAOyD,qBAAZhC,YAAAA,EAAgCvB,QAC5C,EAENwD,SAAU,CACR5F,MAAO2D,EAAKzB,OAAO2D,oBAAoB7F,MACvCoC,SAAUuB,EAAKzB,OAAO2D,oBAAoBzD,QAC5C,EAIA0D,aACEnC,EAAKI,aAAe,uBAChB,CACE/D,OACE2D,GAAAA,EAAAA,EAAKmB,qBAALnB,YAAAA,EAAyBoC,cAAzBpC,YAAAA,EAAsCqC,cAAcC,cACjDjG,MACLoC,UACEuB,GAAAA,EAAAA,EAAKmB,qBAALnB,YAAAA,EAAyBoC,cAAzBpC,YAAAA,EAAsCqC,cAAcC,cACjD7D,QAEPuB,EAAAA,EAAKI,aAAe,oBACnBJ,EAAKI,aAAe,kBACnBJ,EAAK+B,qBAAqBnH,SAAW,GACvCoF,EAAKI,aAAe,iBACpB,CACE/D,MAAO2D,EAAKzB,OAAO+C,MAAMjF,MACzBoC,SAAUuB,EAAKzB,OAAO+C,MAAM7C,QAAAA,EAE9B,CACEpC,OAAO2D,EAAAA,EAAKQ,QAAQ4B,cAAbpC,YAAAA,EAA0BqC,cAAcC,cAAcjG,MAC7DoC,UACEuB,EAAAA,EAAKQ,QAAQ4B,cAAbpC,YAAAA,EAA0BqC,cAAcC,cAAc7D,QAC1D,EAIN8D,WACEvC,EAAKI,aAAe,kBACnBJ,EAAKI,aAAe,kBACnBJ,EAAK+B,qBAAqBnH,SAAW,EACnC,GACAoF,EAAKI,aAAe,yBACpBJ,GAAAA,EAAAA,EAAKmB,qBAALnB,YAAAA,EAAyBoC,cAAzBpC,YAAAA,EAAsCqC,cAAcJ,SACjDO,YAAa,IAChBxC,EAAAA,EAAKQ,QAAQ4B,cAAbpC,YAAAA,EAA0BqC,cAAcJ,SAASO,YAAa,EACpEC,cACEzC,EAAKI,aAAe,iBAChBsC,EAAuB1C,EAAK2C,cAAc,EAC1C,KACNC,gBAAiBC,EAAyB7C,EAAK8C,oBAAoB,EACnEC,oBAAqBC,EACnBhD,EAAK+B,oBACP,EACAkB,OAAQjD,EAAKI,aAAe,mBAAqBJ,EAAKkD,YAAc,KACpEC,YACEnD,EAAKI,aAAe,mBAAqBJ,EAAKoD,aAAe,KAC/DC,UACErD,EAAKI,aAAe,mBAAqBJ,EAAKsD,eAAiB,KACjEC,eACEvD,EAAKI,aAAe,mBAAqBJ,EAAKwD,gBAAkB,KAClEC,QAASzD,EAAKI,aAAe,mBAAqBJ,EAAKyD,QAAU,KAEjEC,gBAAiB,CACfrH,MAAO2D,EAAKzB,OAAOmD,UAAUrF,MAC7BoC,SAAUuB,EAAKzB,OAAOmD,UAAUjD,QAClC,CACA,EAAA,CACJ,CAEA,SAASX,EAAgB7C,EAAW,OAClC,MAAM0I,GAAS1I,EAAAA,GAAAA,YAAAA,EAAM+C,QAAN/C,YAAAA,EAAa6E,OAAO,CAACC,EAAUC,IAAc,OACrDnC,OAAAA,EAAAA,EAAAA,SAAAA,MAAAA,EAAQ+F,QAASC,GAAiB,CACrC9D,EAAI+D,KAAK,CAAEzD,IAAKL,EAAKK,IAAK0D,KAAMF,EAAMJ,OAAAA,CAAS,CAAA,GAG1C1D,CACT,EAAG,CAAE,GAEE4D,OAAAA,GAAAA,MAAAA,EAAQ/I,OAAS+I,EAAS,IACnC,CAEA,SAASzE,EAA6BjE,EAAW,CAC/C,OAAKA,GAAAA,MAAAA,EAAML,OAEJK,EAAKiF,IAAKF,IAAe,CAC9BC,OAAQ,CACN5D,MAAO2D,EAAKC,OAAO5D,MACnBoC,SAAUuB,EAAKC,OAAOxB,QACxB,EACA4C,MAAOrB,EAAKqB,KACZ,EAAA,EARwB,EAS5B,CAEA,SAASqB,EAAuBzH,EAAW,CACzC,MAAM+I,EAAS/I,GAAAA,YAAAA,EAAMiF,IAAK+D,IAAiB,CACzC5D,IAAK4D,EAAO5D,IACZgB,MAAO4C,EAAO5C,MACdhF,MAAO4H,EAAOC,OAAOhE,IAAK7D,GAAeA,EAAMgF,KAAK,EAAE8C,KAAK,IAAI,CAC/D,IAEI1B,EAAwC,CAAA,EAEtCmB,OAAAA,GAAAA,MAAAA,EAAAA,QAASK,GAAgB,CACjBA,EAAAA,EAAO5C,KAAK,EAAI4C,EAAO5H,KAAAA,GAGhC+H,OAAOC,KAAK5B,CAAa,EAAE7H,OAAS,EAAI6H,EAAgB,IACjE,CAEA,SAASI,EAAyB5H,EAAW,CAC3C,MAAMqJ,EAAWrJ,GAAAA,YAAAA,EAAMiF,IAAK+D,IAAiB,CAC3C5D,IAAK4D,EAAOM,gCACZlD,MAAO4C,EAAOO,aACdnI,MAAO4H,EAAOQ,WACd,IAEI7B,EAA0C,CAAA,EAEtCgB,OAAAA,GAAAA,MAAAA,EAAAA,QAASK,GAAgB,CACjBA,EAAAA,EAAO5C,KAAK,EAAI4C,EAAO5H,KAAAA,GAGlC+H,OAAOC,KAAKzB,CAAe,EAAEhI,OAAS,EAAIgI,EAAkB,IACrE,CAEA,SAASI,EAA6B/H,EAAW,CAC/C,MAAMyJ,EAAqBzJ,GAAAA,YAAAA,EAAMiF,IAAK+D,IAAiB,CACrD5D,IAAK4D,EAAOU,wBACZtD,MAAO4C,EAAO5C,MACduD,KAAMX,EAAOW,KACbV,OAAQD,EAAOC,OAAOhE,IAAK7D,IAAgB,CACzCgE,IAAKhE,EAAMwI,8BACXxD,MAAOhF,EAAMgF,MACbhF,MAAOA,EAAMA,KAAAA,EACb,CACF,IAEIsH,EAAiC,CAAA,EAEnBC,OAAAA,GAAAA,MAAAA,EAAAA,QAASK,GAAgB,CAC3C,OAAQA,EAAOW,KAAI,CACjB,IAAK,QACL,IAAK,OACL,IAAK,YACHjB,EAAOM,EAAO5C,KAAK,EAAI4C,EAAOC,OAAO,CAAC,EAAE7H,MACxC,MACF,IAAK,QACL,IAAK,YACHsH,EAAOM,EAAO5C,KAAK,EAAI4C,EAAOC,OAAO,CAAC,EAAE7C,MACxC,MACF,IAAK,WACL,IAAK,WACI4C,EAAAA,EAAO5C,KAAK,EAAK4C,EAAOC,OAAsBpE,OACnD,CAACgF,EAAUC,IACLD,EAAkB,GAAEA,CAAS,KAAIC,EAAQ1D,KAAM,GAC5C0D,EAAQ1D,MAEjB,EACF,EACA,KACJ,CAAA,GAEKsC,CACT,CAEA,SAAS/F,EAAkB3C,EAAW,SAChCe,QAAAA,EAAAA,EAAMO,SAANP,YAAAA,EAAcgJ,2BAA4B,EACrC/J,EAAK8C,QAAQC,MAAMpD,SACxBoB,EAAAA,EAAMO,SAANP,YAAAA,EAAcgJ,2BAA4B,EAAU/J,EAAKgK,eAEtDhK,EAAK8C,QAAQC,MAAMpD,MAC5B,CAEA,SAASkH,EAAeD,EAAY,CAC3BA,OAAAA,GAAAA,YAAAA,EAAOjH,QAAS,EACnB,CACEsK,MAAOrD,EAAMjH,OACb+I,OAAQ9B,EAAM3B,IAAKiF,GAAcA,EAAKC,KAAK,EAAEjB,KAAK,IAAI,CAExD,EAAA,IACN,CAEA,SAAStE,EAAmB5E,EAAa,CACvC,OAAKA,GAAAA,MAAAA,EAAML,OAEJK,EAAKiF,IAAKmF,GAAkB,SAAA,OACjCC,aAAaD,EAAAA,EAAQE,UAARF,YAAAA,EAAiBG,KAC9BC,QAASJ,EAAQK,SACjBC,YAAYN,EAAAA,EAAQO,SAARP,YAAAA,EAAgBG,IAC5B,EAAA,EANwB,IAO5B,CCrTaK,MAAAA,EACXhI,GACG,CACGiI,MAAAA,EACJjI,EAAOkI,UACL,CAAC,CAAEC,WAAAA,CAAiBA,KAAAA,GAAAA,YAAAA,EAAYrF,YAAa,uBAC/C,EAAI,GAEAsF,EACJpI,EAAOkI,UACL,CAAC,CAAEC,WAAAA,CAAiBA,KAAAA,GAAAA,YAAAA,EAAYrF,YAAa,wBAC/C,EAAI,GAEAuF,EAAerI,EAAOqC,IAAKiG,GAAWA,EAAE1C,OAAO,EAAEU,KAAK,GAAG,EAG/D,GAAI2B,GAAgBG,EACR,OAAAG,IACV3J,QAAQoH,MAAMqC,CAAY,EACnB,KAGT,MAAMG,MAAMH,CAAY,CAC1B,EC1BMI,EAAiC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkBjCC,EAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiCjBC,EAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAuGpBD,CAAqB;AAAA;AAAA;AAAA,UAGrBD,CAA8B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAe5BC,CAAqB;AAAA;AAAA,UAEvBD,CAA8B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAO9BA,CAA8B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAuC3BG,EAAmC;AAAA;AAAA;AAAA;AAAA,ECzNnCL,EAAYA,KACvBpK,EAAMJ,OAAS,KACfI,EAAMH,cAAgB,GAEf6K,QAAQC,QAAQ,IAAI"}
|