{"version":3,"file":"ShopifyGroupAddToCart.CGZPnaFj.mjs","names":["useMemo","useState","useRef","__esmMin","init_npm_react_18_3_1","pe","ce","init_jsx_runtime","c","p","_e","de","init_framer_BL9pqxmF","addPropertyControls","ControlType","init_Market","init_ShopifyRuntime","useShopifyCart","init_useShopifyCart","init_TextStyle","init_Store_management","resolveTextStyle","resolveShopifyConfig","ShopifyButtonSlot","init_ShopifyButtonSlot","init_Currency","formatMoney","useMarketStore","isCanvasMode","buttonSlotControls","CMS_BINDING","init_DesignMode","getCartStoreKey","hasButtonSlot","init_FramerCmsBindings","emitAnalytics","init_Analytics","getStorefrontClient","init_ProductPurchase","getPurchaseController","usePurchaseState","init_PurchaseTotalContext","PurchaseTotalContext","resolveGroupProducts","inputs","selected","value","input","quantity","id","response","client","GROUP_PRODUCT_BY_NAME","matches","node","rawVariant","fixedVariant","after","GROUP_PRODUCT_BY_ID","product","variant","price","page","currencyCode","item","grouped","line","sum","init_GroupProducts","ShopifyGroupAddToCart","canvas","country","props","domain","token","configured","selection","key","scope","controller","shared","cart","quote","setQuote","status","setStatus","error","setError","timer","activeKey","cancelled","cause","currentQuote","plan","busy","disabled","money","label","message","activate","fresh","buttonStyle","init_ShopifyGroupAddToCart"],"sources":["https:/framerusercontent.com/modules/pESB6t6wPNCSgmKOEt2G/Pfod8y7XlUcZkS9tjwQh/GroupProducts.js","https:/framerusercontent.com/modules/Sh2T5rmaOPtoblEr5EW5/GzGzi136vqNqL1OATmW1/ShopifyGroupAddToCart.js"],"sourcesContent":["export const GROUP_PRODUCT_BY_ID=/* GraphQL */`\n  query GroupProductById($id: ID!, $after: String, $country: CountryCode) @inContext(country: $country) {\n    product(id: $id) {\n      id\n      title\n      variants(first: 250, after: $after) {\n        nodes { id availableForSale price { amount currencyCode } }\n        pageInfo { hasNextPage endCursor }\n      }\n    }\n  }\n`;export const GROUP_PRODUCT_BY_NAME=/* GraphQL */`\n  query GroupProductByName($query: String!, $country: CountryCode) @inContext(country: $country) {\n    products(first: 20, query: $query) {\n      nodes { id title }\n      pageInfo { hasNextPage }\n    }\n  }\n`;export async function resolveGroupProducts(client,inputs,country){if(!inputs.length||inputs.length>250)throw new Error(\"Choose between 1 and 250 products.\");const selected=await Promise.all(inputs.map(async input=>{const value=input.product?.trim()||\"\";const quantity=input.quantity??1;if(!value)throw new Error(\"Enter a product ID or name for each item.\");if(!Number.isInteger(quantity)||quantity<1)throw new Error(`${value}: enter a whole-number quantity of 1 or more.`);let id=/^\\d+$/.test(value)?`gid://shopify/Product/${value}`:value;if(!/^gid:\\/\\/shopify\\/Product\\/\\d+$/.test(id)){if(value.startsWith(\"gid://\"))throw new Error(\"Use a Shopify product ID, not a variant ID.\");const response=await client.request(GROUP_PRODUCT_BY_NAME,{query:`title:${JSON.stringify(value)}`,country});if(response.errors?.length)throw new Error(response.errors[0].message);const matches=response.data?.products?.nodes.filter(node=>node.title.trim().toLowerCase()===value.toLowerCase())??[];if(matches.length===0)throw new Error(`${value}: product not found. Check the name or use its product ID.`);if(matches.length!==1||response.data?.products.pageInfo.hasNextPage)throw new Error(`${value}: use its product ID to choose the correct product.`);id=matches[0].id;}const rawVariant=input.variantId?.trim()||\"\";const fixedVariant=/^\\d+$/.test(rawVariant)?`gid://shopify/ProductVariant/${rawVariant}`:rawVariant;if(fixedVariant&&!/^gid:\\/\\/shopify\\/ProductVariant\\/\\d+$/.test(fixedVariant))throw new Error(`${value}: enter a valid variant ID.`);let after;while(true){const response=await client.request(GROUP_PRODUCT_BY_ID,{id,after,country});if(response.errors?.length)throw new Error(response.errors[0].message);const product=response.data?.product;if(!product)throw new Error(`${value}: product not found in this market.`);const variant=product.variants.nodes.find(node=>fixedVariant?node.id===fixedVariant:node.availableForSale);if(variant){const price=Number(variant.price.amount);if(!variant.availableForSale)throw new Error(`${product.title}: the selected variant is unavailable.`);if(!Number.isFinite(price)||price<0||!variant.price.currencyCode)throw new Error(`${product.title}: could not load its price.`);return{id:variant.id,title:product.title,quantity,price,currencyCode:variant.price.currencyCode};}const page=product.variants.pageInfo;if(!page.hasNextPage||!page.endCursor||page.endCursor===after)throw new Error(`${product.title}: ${fixedVariant?\"the selected variant is unavailable\":\"this product is unavailable\"}.`);after=page.endCursor;}}));const currencyCode=selected[0].currencyCode;if(selected.some(item=>item.currencyCode!==currencyCode))throw new Error(\"Product currency changed. Wait for prices to refresh.\");const grouped=new Map;for(const item of selected){const line=grouped.get(item.id)??{merchandiseId:item.id,quantity:0};line.quantity+=item.quantity;grouped.set(item.id,line);}return{lines:[...grouped.values()],total:Math.round(selected.reduce((sum,item)=>sum+item.price*item.quantity,0)*100)/100,currencyCode,estimated:false,items:selected.map(item=>({id:item.id,name:item.title,price:item.price,quantity:item.quantity}))};}\nexport const __FramerMetadata__ = {\"exports\":{\"GroupProductInput\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"resolveGroupProducts\":{\"type\":\"function\",\"isAsync\":true,\"annotations\":{\"framerContractVersion\":\"1\"}},\"GROUP_PRODUCT_BY_NAME\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"GROUP_PRODUCT_BY_ID\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./GroupProducts.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useEffect,useMemo,useRef,useState}from\"react\";import{CMS_BINDING}from\"https://framerusercontent.com/modules/PcrK5Hrlv3yEDfze4YD1/Get93xkm57pETvwRlzsu/FramerCmsBindings.js\";import{formatMoney}from\"https://framerusercontent.com/modules/eQZ2S0JFNy1MjEqUv5mg/qNxMHvL19IU7VRgl5mlZ/Currency.js\";import{isCanvasMode}from\"https://framerusercontent.com/modules/skT5kra3lpeDtc4tCESo/rQl7eufIQ7n5T28j4hVB/DesignMode.js\";import{resolveGroupProducts}from\"https://framerusercontent.com/modules/pESB6t6wPNCSgmKOEt2G/Pfod8y7XlUcZkS9tjwQh/GroupProducts.js\";import{useMarketStore}from\"https://framerusercontent.com/modules/n4pEXifmRRV2jBne47dH/0CNYIFAioiRf25D20qFc/Market.js\";import{getPurchaseController,usePurchaseState}from\"https://framerusercontent.com/modules/Fxb5XnYm6SIhHcJeXebV/RkkyBb77jrhf558wihPI/ProductPurchase.js\";import{PurchaseTotalContext}from\"https://framerusercontent.com/modules/p6cNfksFuSTEteDQb6gF/J5g8bLAJnT9lMIoOnTyT/PurchaseTotalContext.js\";import ShopifyButtonSlot,{buttonSlotControls,hasButtonSlot}from\"https://framerusercontent.com/modules/wwF1v9un4qmNpQTZq898/EgCtqA7nuW8SQUtJU2Ww/ShopifyButtonSlot.js\";import{getStorefrontClient,resolveShopifyConfig}from\"https://framerusercontent.com/modules/iJlJ0ze9arRgUOwqYr0C/4LBNxKFWeQlYV09xn2ub/ShopifyRuntime.js\";import{getCartStoreKey}from\"https://framerusercontent.com/modules/3cuV78XTivw3pj8VWaej/yfpYWPEFT0dTl7brSfgb/Store_management.js\";import{resolveTextStyle}from\"https://framerusercontent.com/modules/4dEXtuJAteTghXS3wXHb/8FLETF8MyHYvno9xea2l/TextStyle.js\";import{useShopifyCart}from\"https://framerusercontent.com/modules/gqAGQeFicHJBA7Z8pi9i/59SZOsOMLkKIO1W61JYO/useShopifyCart.js\";import{emitAnalytics}from\"https://framerusercontent.com/modules/SyHUjbC55mcyQSvixNwD/9ypWeug07hmz2u2EoQNY/Analytics.js\";/**\n * Choose products by Shopify ID or exact name in this button's Products control.\n *\n * @framerIntrinsicWidth 180\n * @framerIntrinsicHeight 40\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n * @framerDisableUnlink\n */export default function ShopifyGroupAddToCart(props){const canvas=isCanvasMode();const{countryCode:country}=useMarketStore();const{domain,token,configured}=resolveShopifyConfig(props);const client=useMemo(()=>getStorefrontClient({domain,token,configured}),[domain,token,configured]);const selection=JSON.stringify(props.products??[]);const key=JSON.stringify([domain,token,country,selection]);const scope=JSON.stringify([\"group-button\",domain,token,getCartStoreKey(props.storeKey),selection]);const controller=getPurchaseController(scope);const shared=usePurchaseState(scope);const cart=useShopifyCart(props,getCartStoreKey(props.storeKey));const[quote,setQuote]=useState();const[status,setStatus]=useState(\"idle\");const[error,setError]=useState(\"\");const timer=useRef();const activeKey=useRef(key);useEffect(()=>{activeKey.current=key;setStatus(\"idle\");setError(\"\");if(timer.current)clearTimeout(timer.current);return()=>{activeKey.current=\"\";if(timer.current)clearTimeout(timer.current);};},[key]);useEffect(()=>{if(canvas||!client)return;let cancelled=false;resolveGroupProducts(client,JSON.parse(selection),country).then(plan=>{if(!cancelled)setQuote({key,plan});}).catch(cause=>{if(!cancelled)setQuote({key,error:cause instanceof Error?cause.message:\"Could not load these products.\"});});return()=>{cancelled=true;};},[canvas,client,country,selection,key]);const currentQuote=quote?.key===key?quote:undefined;const plan=currentQuote?.plan;const busy=status===\"loading\"||shared.submitting;const disabled=!canvas&&(!cart.ready||!plan||busy||cart.state.isLoading);const money=props.showTotal!==false&&plan?formatMoney({amount:plan.total,currencyCode:plan.currencyCode}):\"\";const label=status===\"loading\"?props.loadingLabel||\"Adding…\":status===\"success\"?props.successLabel||\"Added\":status===\"error\"?props.errorLabel||\"Try again\":`${props.buttonLabel||\"Add all\"}${money?` - ${money}`:\"\"}`;const message=error||currentQuote?.error||(!canvas&&!client?\"Connect your Shopify store.\":\"\");const activate=async()=>{if(canvas||disabled||!client||!controller.acquire())return;if(timer.current)clearTimeout(timer.current);setError(\"\");setStatus(\"loading\");try{// Recheck the chosen products before submitting; never add just part of the list.\nconst fresh=await resolveGroupProducts(client,JSON.parse(selection),country);if(activeKey.current!==key)return;setQuote({key,plan:fresh});await cart.addItems(fresh.lines,{throwOnError:true});cart.setOpen(true);emitAnalytics(\"add_to_cart\",{currency:fresh.currencyCode,value:fresh.total,items:fresh.items});if(activeKey.current!==key)return;setStatus(\"success\");timer.current=setTimeout(()=>setStatus(\"idle\"),2e3);}catch(cause){if(activeKey.current!==key)return;setError(cause instanceof Error?cause.message:\"Could not add these products. Try again.\");setStatus(\"error\");}finally{controller.release();}};const buttonStyle={width:\"100%\",height:\"100%\",minHeight:36,boxSizing:\"border-box\",background:props.backgroundColor||\"#fff\",color:props.textColor||\"#111\",border:\"1px solid #aaa\",...props.border,borderRadius:props.borderRadius??999,padding:props.padding??\"10px 16px\",cursor:disabled?\"not-allowed\":\"pointer\",opacity:disabled?.5:1,...resolveTextStyle(props.font,{fontFamily:\"Inter, sans-serif\",fontSize:12,fontWeight:500})};return /*#__PURE__*/_jsx(PurchaseTotalContext.Provider,{value:plan??null,children:/*#__PURE__*/_jsxs(\"div\",{style:props.style,children:[hasButtonSlot(props.useSlot,props.buttonSlot)?/*#__PURE__*/_jsx(ShopifyButtonSlot,{slot:props.buttonSlot,label:label,disabled:disabled,busy:busy,onActivate:activate}):/*#__PURE__*/_jsx(\"button\",{type:\"button\",disabled:disabled,\"aria-busy\":busy,onClick:activate,style:buttonStyle,children:label}),message&&/*#__PURE__*/_jsx(\"div\",{role:\"alert\",style:{marginTop:8,color:\"#b42318\",font:\"12px/1.4 Inter, sans-serif\"},children:message})]})});}addPropertyControls(ShopifyGroupAddToCart,{domain:{type:ControlType.String,title:\"Shop Domain\",defaultValue:\"\",description:CMS_BINDING.connectedStore},token:{type:ControlType.String,title:\"Storefront Token\",defaultValue:\"\",description:CMS_BINDING.storefrontToken},storeKey:{type:ControlType.String,title:\"Shared Cart\",defaultValue:\"auto\"},products:{type:ControlType.Array,title:\"Products\",maxCount:250,defaultValue:[],control:{type:ControlType.Object,controls:{product:{type:ControlType.String,title:\"ID or Name\",defaultValue:\"\",description:\"Enter a Shopify product ID or its exact product name.\"},quantity:{type:ControlType.Number,title:\"Quantity\",defaultValue:1,min:1,step:1},variantId:{type:ControlType.String,title:\"Variant ID\",defaultValue:\"\",description:\"Leave empty to use the first available variant.\"}}}},showTotal:{type:ControlType.Boolean,title:\"Show Total\",defaultValue:true},...buttonSlotControls,buttonLabel:{type:ControlType.String,title:\"Label\",defaultValue:\"Add all\"},loadingLabel:{type:ControlType.String,title:\"Loading Label\",defaultValue:\"Adding…\"},successLabel:{type:ControlType.String,title:\"Success Label\",defaultValue:\"Added\"},errorLabel:{type:ControlType.String,title:\"Error Label\",defaultValue:\"Try again\"},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\"},backgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"#FFFFFF\"},textColor:{type:ControlType.Color,title:\"Text\",defaultValue:\"#111111\"},border:{type:ControlType.Border,title:\"Border\"},borderRadius:{type:ControlType.Number,title:\"Radius\",defaultValue:999,min:0},padding:{type:ControlType.String,title:\"Padding\",defaultValue:\"10px 16px\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ShopifyGroupAddToCart\",\"slots\":[\"buttonSlot\"],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any\",\"framerIntrinsicWidth\":\"180\",\"framerDisableUnlink\":\"\",\"framerSupportedLayoutHeight\":\"any\",\"framerIntrinsicHeight\":\"40\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}