{"version":3,"file":"Collection_variant_preference.DNMuPRnN.mjs","names":["useState","useMemo","useCallback","useContext"],"sources":["https:/framerusercontent.com/modules/Vu8sM3DwKDdSi2bltsPi/2mjSGl09jm7uUVww2OJ4/Parse_shopify_data.js","https:/framerusercontent.com/modules/i7ZQIq8WO7VzqaEGgq3A/rPdbdxj6dhOjzJYEaBer/Collection_variant_preference_context.js","https:/framerusercontent.com/modules/Ep4l0IXbghfZTQHUUsaQ/2ydcKli7zrf0qcCBe8RI/Collection_variant_preference.js"],"sourcesContent":["import{SHARED_IMAGES}from\"https://framerusercontent.com/modules/KV16nQZJzK2PakIJS3ds/mMwI0Z7Bn85AP14ADxu9/Shared_images.js\";export const parseShopifyData=shopifyData=>{const parsedShopifyData=shopifyData?JSON.parse(shopifyData):EXAMPLE_DATA;return parsedShopifyData;};export function tryParseShopifyData(shopifyData){if(!shopifyData?.trim()){return null;}try{return parseShopifyData(shopifyData);}catch{return null;}}const EXAMPLE_DATA={id:\"15176683880773\",title:\"Green Polo\",handle:\"green-polo\",variants:[{id:\"55218501157189\",title:\"Variant Title\",price:{amount:\"99\",currencyCode:\"USD\"},priceByMarket:{US:{amount:\"99\",currencyCode:\"USD\"},GB:{amount:\"79\",currencyCode:\"GBP\"},CA:{amount:\"129\",currencyCode:\"CAD\"},EU:{amount:\"89\",currencyCode:\"EUR\"},AU:{amount:\"139\",currencyCode:\"AUD\"}},compareAtPriceByMarket:{US:{amount:\"120\",currencyCode:\"USD\"},GB:{amount:\"95\",currencyCode:\"GBP\"},CA:{amount:\"155\",currencyCode:\"CAD\"},EU:{amount:\"109\",currencyCode:\"EUR\"},AU:{amount:\"169\",currencyCode:\"AUD\"}},weight:0,weightUnit:\"KILOGRAMS\",availableForSale:true,sku:\"sku-untracked-1\",image:{id:\"gid://shopify/ProductImage/77445152801093\",url:SHARED_IMAGES.defaultProductImage,altText:\"Product image\",width:3097,height:3908}}]};\nexport const __FramerMetadata__ = {\"exports\":{\"tryParseShopifyData\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"parseShopifyData\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Parse_shopify_data.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{createContext,useCallback,useContext,useMemo,useState}from\"react\";const DEFAULT_COLLECTION_VARIANT_PREFERENCE={criteria:Object.freeze([]),explicitVariantOverrideByProductId:Object.freeze({}),setExplicitVariantOverride:()=>undefined};const CollectionVariantPreferenceContext=/*#__PURE__*/createContext(DEFAULT_COLLECTION_VARIANT_PREFERENCE);export function CollectionVariantPreferenceProvider({children,value}){const[variantOverrides,setVariantOverrides]=useState({});const explicitVariantOverrideByProductId=useMemo(()=>{const activeOverrides={};for(const[productId,override]of Object.entries(variantOverrides)){if(override.criteria===value.criteria){activeOverrides[productId]=override.variantId;}}return activeOverrides;},[value.criteria,variantOverrides]);const setExplicitVariantOverride=useCallback((productId,variantId)=>{if(!productId||!variantId)return;setVariantOverrides(currentOverrides=>({...currentOverrides,[productId]:{criteria:value.criteria,variantId}}));},[value.criteria]);const contextValue=useMemo(()=>({...value,explicitVariantOverrideByProductId,setExplicitVariantOverride}),[explicitVariantOverrideByProductId,setExplicitVariantOverride,value]);return /*#__PURE__*/_jsx(CollectionVariantPreferenceContext.Provider,{value:contextValue,children:children});}export function useCollectionVariantPreference(){return useContext(CollectionVariantPreferenceContext);}\nexport const __FramerMetadata__ = {\"exports\":{\"useCollectionVariantPreference\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CollectionVariantPreferenceProvider\":{\"type\":\"reactComponent\",\"name\":\"CollectionVariantPreferenceProvider\",\"slots\":[\"children\"],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Collection_variant_preference_context.map","export function normalizeCollectionVariantText(value){return typeof value===\"string\"?value.trim().toLowerCase():\"\";}export function doesProductVariantMatchCriteria(variant,criteria){if(!variant||criteria.length===0){return criteria.length===0;}if(!Array.isArray(variant.selectedOptions)){return false;}return criteria.every(criterion=>{const normalizedGroupName=normalizeCollectionVariantText(criterion.groupName);const selectedValues=new Set(criterion.selectedValues.map(normalizeCollectionVariantText).filter(Boolean));if(!normalizedGroupName||selectedValues.size===0){return false;}return variant.selectedOptions?.some(option=>normalizeCollectionVariantText(option?.name)===normalizedGroupName&&selectedValues.has(normalizeCollectionVariantText(option?.value)));});}export function resolveEffectiveProductVariant({variants,explicitVariant,criteria}){if(criteria.length===0){return explicitVariant;}if(doesProductVariantMatchCriteria(explicitVariant,criteria)){return explicitVariant;}return variants.find(variant=>doesProductVariantMatchCriteria(variant,criteria))??null;}\nexport const __FramerMetadata__ = {\"exports\":{\"ProductVariantWithSelectedOptions\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"resolveEffectiveProductVariant\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"normalizeCollectionVariantText\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"doesProductVariantMatchCriteria\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CollectionVariantCriterion\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Collection_variant_preference.map"],"mappings":"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"}