{"version":3,"file":"TrackPurchaseEvents.CZaybwoN.mjs","names":["useState","useState"],"sources":["https:/framerusercontent.com/modules/vj7bFUjvEQFgEzNBkdoG/vf3CKm378wlVcBk7IhSU/createStore.js","https:/framer.com/m/framer/store.js@^1.0.0","https:/framerusercontent.com/modules/3Qgk86eqqrzDjw2coBCV/LOlOKrI2XTg3uVn9Iprj/TrackPurchaseEvents.js"],"sourcesContent":["import{useState,useEffect}from\"react\";import{Data,useObserveData}from\"framer\";export function createStore(state1){// Use Data so that a Preview reload resets the state\nconst dataStore=Data({state:Object.freeze({...state1})});// Create a set function that updates the state\nconst setDataStore=newState=>{// If the state is an object, make sure we copy it\nif(typeof newState===\"function\"){newState=newState(dataStore.state);}dataStore.state=Object.freeze({...dataStore.state,...newState});};// Store the initial state, copy the object if it's an object\nlet storeState=typeof state1===\"object\"?Object.freeze({...state1}):state1;// Keep a list of all the listeners, in the form of React hook setters\nconst storeSetters=new Set();// Create a set function that updates all the listeners / setters\nconst setStoreState=newState=>{// If the state is an object, make sure we copy it\nif(typeof newState===\"function\"){newState=newState(storeState);}storeState=typeof newState===\"object\"?Object.freeze({...storeState,...newState}):newState;// Update all the listeners / setters with the new value\nstoreSetters.forEach(setter=>setter(storeState));};// Create the actual hook based on everything above\nfunction useStore(){// Create the hook we are going to use as a listener\nconst[state,setState]=useState(storeState);// If we unmount the component using this hook, we need to remove the listener\n// @ts-ignore\nuseEffect(()=>{// But right now, we need to add the listener\nstoreSetters.add(setState);return()=>storeSetters.delete(setState);},[]);// If Data context exists, use Data, otherwise use vanilla React state\nif(useObserveData()===true){useObserveData();return[dataStore.state,setDataStore];}else{// Return the state and a function to update the central store\nreturn[state,setStoreState];}}return useStore;}\nexport const __FramerMetadata__ = {\"exports\":{\"createStore\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./createStore.map","/*\n * createStore (framer/store@1.0.1)\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/vj7bFUjvEQFgEzNBkdoG/vf3CKm378wlVcBk7IhSU/createStore.js\"\n","import{jsx as _jsx}from\"react/jsx-runtime\";import{forwardRef,useEffect,useState}from\"react\";import{createStore}from\"https://framer.com/m/framer/store.js@^1.0.0\";const navTransportMethod={transport:\"sendBeacon\",send_instantly:true};const PURCHASE_PRODUCT_ADDED=\"purchase-product-added\";const PURCHASE_ORDER_COMPLETE=\"purchase-order-complete\";const PURCHASE_LINK_FOLLOWED=\"purchase-link-followed\";const HANDOVER_TOKEN_QUERY_PARAM=\"handoverToken\";const PURCHASE_SUCCESS_CUSTOMER_ID_QUERY_PARAM=\"customerId\";const PURCHASE_COMPLETE_IDENTIFY_GUARD_KEY=\"purchase-complete-identify-ran\";const GAME_ID=\"RSDW\";const SOURCE=\"WEB\";const PURCHASE_CATEGORY={GAME:\"GAME\",DLC:\"DLC\",UNKNOWN:\"UNKNOWN\"};const SKU={STANDARD:\"DRAGONWILDS_BASEGAME\",DELUXE:\"DRAGONWILDS_DELUXE\",UPGRADE:\"DRAGONWILDS_DELUXE_UPGRADE\",UNKNOWN:\"UNKNOWN\"};const PURCHASE_PLATFORM={JAGEX:\"JAGEX\",STEAM:\"STEAM\",EPIC_GAMES:\"EPIC-GAMES\",PLAYSTATION:\"PLAYSTATION\",XBOX:\"XBOX\",SWITCH_2:\"SWITCH-2\"};const PURCHASE_NAME={STANDARD:\"RUNESCAPE DRAGONWILDS - STANDARD EDITION\",DELUXE:\"RUNESCAPE DRAGONWILDS - DELUXE EDITION\",UPGRADE:\"RUNESCAPE DRAGONWILDS - DELUXE UPGRADE\",UNKNOWN:\"UNKNOWN\"};const PURCHASE_VARIANT={STANDARD:\"STANDARD\",DELUXE:\"DELUXE\",UNKNOWN:\"UNKNOWN\"};const TRACKING_TO_PURCHASE_VARIANT={\"buy-now-standard\":PURCHASE_VARIANT.STANDARD,\"buy-now-deluxe\":PURCHASE_VARIANT.DELUXE};let purchaseHandoverMetadataToken=null;let hasTrackedPurchaseOrderComplete=false;/**\n * Shared state between all overrides in this file.\n *\n * null means the visitor has not selected an edition yet.\n */const usePurchaseStore=createStore({purchaseVariant:null});function resetPurchaseVariant(setStore){setStore({purchaseVariant:null});}function selectPurchaseVariant(setStore,purchaseVariant){setStore({purchaseVariant});}function getPurchaseVariantFromTracking(tracking){if(typeof tracking!==\"string\"){return PURCHASE_VARIANT.UNKNOWN;}return TRACKING_TO_PURCHASE_VARIANT[tracking]??PURCHASE_VARIANT.UNKNOWN;}function useJagexPurchaseHref(props){const[href,setHref]=useState(null);useEffect(()=>{let isMounted=true;const baseUrl=resolveJagexPurchaseUrl(props);if(!baseUrl){setHref(null);return;}setHref(baseUrl);runWhenAthenaReady(()=>{getPurchaseHandoverMetadataToken(GAME_ID,tokenResult=>{if(!isMounted){return;}setHref(appendHandoverToken(baseUrl,tokenResult));});});return()=>{isMounted=false;};},[props.href,props.jagexLink,props.link,props.playStore]);return href;}/**\n * Apply this override to the modal close button\n * so a fresh visit starts with no selected edition.\n */export function resetPurchaseVariantOnClose(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const[,setStore]=usePurchaseStore();const handleClick=event=>{resetPurchaseVariant(setStore);props.onClick?.(event);};return /*#__PURE__*/_jsx(Component,{ref:ref,...props,onClick:handleClick});});}/**\n * Apply this single override to both Standard and Deluxe\n * \"Buy Now\" buttons. It reads the instance's Tracking field\n * to determine which edition was selected.\n */export function setCurrentVariantFromTracking(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const[,setStore]=usePurchaseStore();const handleClick=event=>{const purchaseVariant=getPurchaseVariantFromTracking(props.tracking);selectPurchaseVariant(setStore,purchaseVariant);// Preserve the button's existing overlay interaction.\nprops.onClick?.(event);};return /*#__PURE__*/_jsx(Component,{ref:ref,...props,onClick:handleClick});});}/**\n * Build the payload when the purchase link is clicked.\n *\n * This ensures the payload uses the current store value rather\n * than a value captured when the override was initialised.\n */function createPurchasePayload(purchaseVariant,purchasePlatform){const purchaseMetadata=(()=>{switch(purchaseVariant){case PURCHASE_VARIANT.DELUXE:return{sku:SKU.DELUXE,purchaseName:PURCHASE_NAME.DELUXE};case PURCHASE_VARIANT.STANDARD:return{sku:SKU.STANDARD,purchaseName:PURCHASE_NAME.STANDARD};default:return{sku:SKU.UNKNOWN,purchaseName:PURCHASE_NAME.UNKNOWN};}})();return{sku:purchaseMetadata.sku,purchase_category:PURCHASE_CATEGORY.GAME,purchase_name:purchaseMetadata.purchaseName,game_id:GAME_ID,purchase_variant:purchaseVariant,source:SOURCE,purchase_platform:purchasePlatform};}function trackEvent(eventProperties,eventName){if(typeof window===\"undefined\")return;if(typeof window.athena!==\"function\")return;window.athena(\"analytics\",\"track\",undefined,eventName,eventProperties,navTransportMethod);}/**\n * Creates an analytics override for a purchase platform.\n */function withPurchaseAnalytics(purchasePlatform){return function(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const[store]=usePurchaseStore();const handleClick=event=>{try{if(!store.purchaseVariant)return;const payload=createPurchasePayload(store.purchaseVariant,purchasePlatform);trackEvent(payload,PURCHASE_LINK_FOLLOWED);}finally{/*\n                     * Always preserve the original click handler so\n                     * Framer's link/navigation still runs.\n                     */props.onClick?.(event);}};return /*#__PURE__*/_jsx(Component,{ref:ref,...props,onClick:handleClick});});};}/**\n * Apply this override to the Jagex purchase link\n * inside the shared overlay.\n */export function buyViaJagex(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const[store]=usePurchaseStore();const href=useJagexPurchaseHref(props);const handleClick=event=>{try{if(!store.purchaseVariant)return;const payload=createPurchasePayload(store.purchaseVariant,PURCHASE_PLATFORM.JAGEX);trackEvent(payload,PURCHASE_PRODUCT_ADDED);}finally{props.onClick?.(event);}};if(!href){return /*#__PURE__*/_jsx(Component,{ref:ref,...props,onClick:handleClick});}return renderPurchaseTarget(Component,props,ref,href,handleClick);});}/**\n * Apply this override to the Steam purchase link\n * inside the shared overlay.\n */export function upgradeViaJagex(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const handleClick=event=>{try{const payload={sku:SKU.UPGRADE,purchase_category:PURCHASE_CATEGORY.DLC,purchase_name:PURCHASE_NAME.UPGRADE,game_id:GAME_ID,purchase_variant:PURCHASE_VARIANT.DELUXE,source:SOURCE,purchase_platform:PURCHASE_PLATFORM.JAGEX};trackEvent(payload,PURCHASE_PRODUCT_ADDED);}finally{props.onClick?.(event);}};return /*#__PURE__*/_jsx(Component,{ref:ref,...props,onClick:handleClick});});}/**\n * Apply this override to the Steam purchase link\n * inside the shared overlay.\n */export function buyViaSteam(Component){return withPurchaseAnalytics(PURCHASE_PLATFORM.STEAM)(Component);}/**\n * Apply this override to the Epic Games purchase link\n * inside the shared overlay.\n */export function buyViaEpic(Component){return withPurchaseAnalytics(PURCHASE_PLATFORM.EPIC_GAMES)(Component);}/**\n * Apply this override to the PlayStation purchase link\n * inside the shared overlay.\n */export function buyViaPlaystation(Component){return withPurchaseAnalytics(PURCHASE_PLATFORM.PLAYSTATION)(Component);}/**\n * Apply this override to the Xbox purchase link\n * inside the shared overlay.\n */export function buyViaXbox(Component){return withPurchaseAnalytics(PURCHASE_PLATFORM.XBOX)(Component);}/**\n * Apply this override to the Nintendo Switch 2 purchase link\n * inside the shared overlay.\n */export function buyViaSwitch(Component){return withPurchaseAnalytics(PURCHASE_PLATFORM.SWITCH_2)(Component);}function resolveJagexPurchaseUrl(props){if(typeof props.link===\"string\"&&props.link.length>0){return props.link;}if(typeof props.playStore===\"string\"&&props.playStore.length>0){return props.playStore;}if(typeof props.jagexLink===\"string\"&&props.jagexLink.length>0){return props.jagexLink;}if(typeof props.href===\"string\"&&props.href.length>0){return props.href;}return null;}function renderPurchaseTarget(Component,props,ref,href,onClick){if(\"link\"in props){return /*#__PURE__*/_jsx(Component,{ref:ref,...props,link:href,onClick:onClick},href);}if(\"playStore\"in props){return /*#__PURE__*/_jsx(Component,{ref:ref,...props,playStore:href,onClick:onClick},href);}if(\"jagexLink\"in props){return /*#__PURE__*/_jsx(Component,{ref:ref,...props,jagexLink:href,onClick:onClick},href);}if(\"href\"in props){return /*#__PURE__*/_jsx(Component,{ref:ref,...props,href:href,onClick:onClick},href);}return /*#__PURE__*/_jsx(\"a\",{href:href,onClick:onClick,children:/*#__PURE__*/_jsx(Component,{ref:ref,...props})},href);}function getPurchaseHandoverMetadataToken(game,callback){if(purchaseHandoverMetadataToken){callback(purchaseHandoverMetadataToken);return;}generatePurchaseHandoverMetadataToken(game,token=>{purchaseHandoverMetadataToken=token;callback(token);});}function generatePurchaseHandoverMetadataToken(game,callback){window.athena(\"base\",\"generateHandoverMetadataToken\",token=>callback(typeof token===\"string\"?token:\"\"),{game});}function appendHandoverToken(url,tokenResult){if(!tokenResult){return url;}try{const parsedTokenResult=JSON.parse(tokenResult);const handoverToken=parsedTokenResult?.token;if(!handoverToken){return url;}const parsedUrl=new URL(url,url);parsedUrl.searchParams.set(HANDOVER_TOKEN_QUERY_PARAM,handoverToken);return parsedUrl.toString();}catch{return url;}}function runWhenAthenaReady(callback,retryNo=0){if(typeof window!==\"undefined\"&&window.athena){window.athena(\"analytics\",\"getPosthogId\",distinctID=>{if(distinctID){callback();return;}if(retryNo<10){setTimeout(()=>runWhenAthenaReady(callback,retryNo+1),100);}});return;}if(retryNo<10){setTimeout(()=>runWhenAthenaReady(callback,retryNo+1),100);}}function getPurchaseSuccessParams(){if(typeof window===\"undefined\"){return{jagexId:null};}const searchParams=new URLSearchParams(window.location.search);return{jagexId:searchParams.get(PURCHASE_SUCCESS_CUSTOMER_ID_QUERY_PARAM)??null};}function identifyWithAthena(jagexId){if(typeof window===\"undefined\")return;if(typeof window.athena!==\"function\")return;window.athena(\"analytics\",\"identify\",undefined,jagexId,{source:SOURCE});}function trackPurchaseOrderComplete(){if(typeof window===\"undefined\")return;if(typeof window.athena!==\"function\")return;window.athena(\"analytics\",\"track\",undefined,PURCHASE_ORDER_COMPLETE,{purchase_platform:PURCHASE_PLATFORM.JAGEX,game_id:GAME_ID,source:SOURCE});}function identifySuccessfulJagexPurchase(){if(typeof window===\"undefined\")return;if(typeof window.athena!==\"function\")return;const{jagexId}=getPurchaseSuccessParams();if(!jagexId){return;}if(sessionStorage.getItem(PURCHASE_COMPLETE_IDENTIFY_GUARD_KEY)===\"1\"){return;}sessionStorage.setItem(PURCHASE_COMPLETE_IDENTIFY_GUARD_KEY,\"1\");hasTrackedPurchaseOrderComplete=true;identifyWithAthena(jagexId);trackPurchaseOrderComplete();}export function raisePurchaseCompleteEvent(Component){return /*#__PURE__*/forwardRef((props,ref)=>{useEffect(()=>{if(hasTrackedPurchaseOrderComplete){return;}runWhenAthenaReady(()=>{identifySuccessfulJagexPurchase();});},[]);return /*#__PURE__*/_jsx(Component,{ref:ref,...props});});}\nexport const __FramerMetadata__ = {\"exports\":{\"raisePurchaseCompleteEvent\":{\"type\":\"reactHoc\",\"name\":\"raisePurchaseCompleteEvent\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"buyViaPlaystation\":{\"type\":\"reactHoc\",\"name\":\"buyViaPlaystation\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"upgradeViaJagex\":{\"type\":\"reactHoc\",\"name\":\"upgradeViaJagex\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"buyViaSwitch\":{\"type\":\"reactHoc\",\"name\":\"buyViaSwitch\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"buyViaXbox\":{\"type\":\"reactHoc\",\"name\":\"buyViaXbox\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"buyViaSteam\":{\"type\":\"reactHoc\",\"name\":\"buyViaSteam\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"buyViaJagex\":{\"type\":\"reactHoc\",\"name\":\"buyViaJagex\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"resetPurchaseVariantOnClose\":{\"type\":\"reactHoc\",\"name\":\"resetPurchaseVariantOnClose\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"setCurrentVariantFromTracking\":{\"type\":\"reactHoc\",\"name\":\"setCurrentVariantFromTracking\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"buyViaEpic\":{\"type\":\"reactHoc\",\"name\":\"buyViaEpic\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./TrackPurchaseEvents.map"],"mappings":"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"}