{"version":3,"file":"Overrides.AD-eKDct.mjs","names":["useState","p","__legacyOverrideHOC_DataObserverContext","_jsx"],"sources":["https:/framerusercontent.com/modules/NCeQ5JGtvcBkpykaRc7C/xhCL7BwTwJyhXV9ESifE/Overrides.js"],"sourcesContent":["// Get Started: https://www.framer.com/developers\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{useState,createContext,useEffect,forwardRef}from\"react\";const isBrowser=typeof window!==\"undefined\";export const isProduction=isBrowser&&(window?.location?.hostname?.includes(\"gymboxx.com\")||window?.location?.hostname?.includes(\"gymboxx.store\"));// export const BASE_URL = isProduction\n//     ? \"https://prod.supp.fitness\"\n//     : \"https://dev1.supp.fitness\"\nexport const BASE_URL=\"https://prod.supp.fitness\";// 짐박스 서버 Api 사용 가이드입니다\n// https://www.notion.so/supplies/Framer-API-2a0cac6c910d8006a199eddeaa24008a\n// Swagger API 문서\n// (앱서버 예시) https://prod.supp.fitness/app/swagger-api-docs/#/Gym/GymController_getGymPTTrainer\n// Apis 사용법 예시 - 아래 블럭을 복사해 사용하세요\nexport function withExample(Component){// 1. 이름 알맞게 수정\nreturn /*#__PURE__*/forwardRef((props,ref)=>{const[exampleData,setExampleData]=useState()// 2. 이름 알맞게 수정\n;const getExampleData=async()=>{// 3. 이름 알맞게 수정\ntry{fetch(`${BASE_URL}/app/gym`)// 4. (중요) 엔드포인트 수정\n.then(res=>res.json()).then(json=>setExampleData(// 2번에서 수정한 이름에 맞게 수정\n    json// 필요한 데이터에 맞게 수정 (스웨거 응답값 참고)\n    ));}catch(err){console.error(err);}};useEffect(()=>{getExampleData()// 3번에서 수정한 이름에 맞게 수정\n;},[]);return /*#__PURE__*/_jsx(Component,{...props,data:exampleData})// 빨간줄 수정 - 2번이름에 맞게 수정\n;})// 빨간줄 모두 없게 한 뒤 주석 모두 삭제해주세요.\n;}// 동적 Apis 사용법 예시 - 아래 블럭을 복사해 사용하세요\nexport function withExampleDynamic(Component){// 1. 이름 알맞게 수정\nreturn /*#__PURE__*/forwardRef((props,ref)=>{const[exampleData,setExampleData]=useState()// 2. 이름 알맞게 수정\n;const getExampleData=async()=>{// 3. 이름 알맞게 수정\ntry{const gymId=getGymIdFromPath()// 알맞게 수정\n;fetch(`${BASE_URL}/app/gym/${gymId}/name`)// 4. (중요) 엔드포인트 수정\n.then(res=>res.json()).then(json=>setExampleData(// 2번에서 수정한 이름에 맞게 수정\n    json.gym_name// (중요) 필요한 데이터에 맞게 수정\n    ));}catch(err){console.error(err);}};useEffect(()=>{getExampleData()// 3번에서 수정한 이름에 맞게 수정\n;},[]);return /*#__PURE__*/_jsx(Component,{...props,data:exampleData})// 빨간줄 수정 - 2번이름에 맞게 수정\n;})// 빨간줄 모두 없게 한 뒤 주석 모두 삭제해주세요.\n;}function parseCSVToJSON(csv){const lines=csv.split(\"\\n\").filter(line=>line.trim());if(lines.length<2)return[];// 헤더 파싱\nconst headers=lines[0].split(\",\").map(h=>h.trim());// 데이터 파싱\nconst data=lines.slice(1).map(line=>{const values=line.split(\",\").map(v=>v.trim());const obj={};headers.forEach((header,index)=>{obj[header]=values[index]||\"\";});return obj;});return data;}const CMS_SPREADSHEET_ID=\"1TLw08aYm89AClAWH1qfWBuZOpXBj8f8q-ldEK0s9aOg\";const CMS_SHEET_GID=\"1884952724\";export const CMSContext=isBrowser?/*#__PURE__*/createContext(\"\"):null;function convertSheetsAPIToJSON(rows){if(!rows||rows.length===0)return{};const headers=rows[0];const result={};for(let i=1;i<rows.length;i++){const row=rows[i];const rowData={};headers.forEach((header,index)=>{// 빈 셀도 undefined가 아닌 빈 문자열로 처리\nrowData[header]=row[index]!==undefined?row[index]:\"\";});// 첫 번째 컬럼을 key로 사용하는 경우\nconst key=row[0];if(key){result[key]=rowData;}}return result;}const DEFAULT_GYMID=48;function getGymIdFromPath(){if(!isBrowser)return 0;const path=typeof window!==undefined&&window?.location?.pathname;const match=path?.match(/\\/gym\\/(\\d+)/);const gymId=match?match[1]:0;return gymId?gymId:DEFAULT_GYMID;}function getTrainerIdFromQuery(key){if(!isBrowser)return\"\";const urlParams=new URLSearchParams(window.location.search);const value=urlParams.get(key);return value||\"\";}export function withGymIdFromPath(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const gymId=getGymIdFromPath();return /*#__PURE__*/_jsx(Component,{gymId:gymId});});}export function withGymList(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const[gymList,setGymList]=useState(\"default\");const getGymList=async()=>{try{fetch(`${BASE_URL}/app/gym`).then(res=>res.json()).then(json=>setGymList(Array.isArray(json?.gym_list)?json.gym_list:[]));}catch(err){console.error(err);}};useEffect(()=>{getGymList();},[]);return /*#__PURE__*/_jsx(Component,{...props,data:gymList});});}export function withGymOTavailability(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const[gymAvailablity,setGymAvailability]=useState(null);const getGymAvailablity=async()=>{try{fetch(`${BASE_URL}/app/gym/2/pt/ot/check`).then(res=>res.json()).then(json=>setGymAvailability(json.is_gym_ot_available));}catch(err){console.error(err);}};useEffect(()=>{getGymAvailablity();},[]);return /*#__PURE__*/_jsx(Component,{...props,data:gymAvailablity});});}//트레이너 리스트\nexport function withTrainerList(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const[trainerList,setTrainerList]=useState();const getTrainerList=async()=>{try{const gymId=getGymIdFromPath();fetch(`${BASE_URL}/public/gym/${gymId}/trainers`).then(res=>res.json()).then(json=>setTrainerList(json));}catch(err){console.error(err);}};useEffect(()=>{getTrainerList();},[]);return /*#__PURE__*/_jsx(Component,{...props,data:trainerList});});}//지점특징 리스트\nexport function withGymFeature(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const[GymFeature,setGymFeature]=useState();const getGymFeature=async()=>{try{const gymId=getGymIdFromPath();fetch(`${BASE_URL}/public/gym/${gymId}/features`).then(res=>res.json()).then(json=>setGymFeature(json));}catch(err){console.error(err);}};useEffect(()=>{getGymFeature();},[]);return /*#__PURE__*/_jsx(Component,{...props,data:GymFeature});});}export function withMachineList(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const[machineList,setMachineList]=useState();const getMachineList=async()=>{try{const gymId=getGymIdFromPath();fetch(`${BASE_URL}/public/gym/${gymId}/machines`).then(res=>res.json()).then(json=>setMachineList(json));}catch(err){console.error(err);}};useEffect(()=>{getMachineList();},[]);return /*#__PURE__*/_jsx(Component,{...props,data:machineList});});}export function withGeolocation(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const[coords,setCoords]=useState({latitude:0,longitude:0});const getCoords=()=>{try{window?.navigator?.geolocation?.getCurrentPosition(p=>{setCoords(p.coords);},err=>{console.log(\"get geolocation failed\",err);});}catch(err){console.log(\"get geolocation failed\",err);}};useEffect(()=>{getCoords();},[]);return /*#__PURE__*/_jsx(Component,{...props,data:coords});});}// 랙 타입디테일 count 합산 (RACK + PLATFORM_RACK + PLATFORM)\nexport function MachineRackPlatformTotalCount(){const[text,setText]=useState(\"\");const getGymIdFromPathSafe=()=>{if(typeof window===\"undefined\")return 0;const match=(window.location.pathname||\"\").match(/\\/gym\\/(\\d+)/);return match?Number(match[1]):0;};const fetchTotal=async()=>{try{const gymId=getGymIdFromPathSafe()||48;const url=`${BASE_URL}/public/gym/machines/summary?gymIdList=${gymId}`;const json=await fetch(url).then(r=>r.json());const list=json?.gymMachineSummaryList;const first=Array.isArray(list)&&list.length>0?list[0]:null;const details=Array.isArray(first?.typeDetail)?first.typeDetail:[];const targets=new Set([\"RACK\",\"PLATFORM_RACK\",\"PLATFORM\"]);const sum=details.reduce((acc,item)=>{const name=String(item?.name??\"\");const c=Number(item?.count??0);if(!targets.has(name))return acc;return acc+(Number.isFinite(c)?c:0);},0);setText(String(sum));}catch(e){console.error(\"MachineRackPlatformTotalCount error:\",e);setText(\"0\");}};useEffect(()=>{fetchTotal();const onPop=()=>fetchTotal();window.addEventListener(\"popstate\",onPop);return()=>window.removeEventListener(\"popstate\",onPop);},[]);return{text};}//트레이너별 링크 생성\n// export function NavigateWithTrainerId(props): Override {\n//     const href = props.trainerIdLink // TrainerListContainer에서 넘겨준 완성 URL\n//     return {\n//         // a/href가 있어도, 기본 이동을 막고 SPA 방식으로 처리\n//         onTap(event?: any) {\n//             try {\n//                 event?.preventDefault?.()\n//             } catch {}\n//             if (href) {\n//                 history.pushState({}, \"\", href) // URL만 변경 (리로드 없음)\n//                 window?.dispatchEvent?.(new Event(\"popstate\")) // URL 변경 신호 → 상세 패널 훅이 감지\n//             }\n//         },\n//         // 우클릭/복사/SEO를 위해 href는 유지할 수 있음\n//         href: href,\n//     }\n// }\n// 마우스 호버 효과\nexport function HoverGymIdTextWhite(){useEffect(()=>{const styleId=\"hover-gymid-white-style\";if(document.getElementById(styleId))return;const style=document.createElement(\"style\");style.id=styleId;style.textContent=`\n          /* 부모(gym) 호버 시 자식(gym_id) 텍스트 색 강제 */\n          [data-framer-name=\"gym\"]:hover [data-framer-name=\"gym_id\"],\n          [data-framer-name=\"gym\"]:hover [data-framer-name=\"gym_id\"] * {\n            color: #FCFCFC !important;\n            -webkit-text-fill-color: #FCFCFC !important;\n          }\n        `;document.head.appendChild(style);},[]);return{};}// ===== Presale OPEN 체크: 공유 캐시 + sessionStorage + TTL =====\nconst PRESALE_CACHE_TTL_MS=60*1e3;const presaleOpenCache={};function cacheKey(gymId){return`presaleOpen:${gymId}`;}function readSessionCache(gymId){if(typeof window===\"undefined\")return null;try{const raw=sessionStorage.getItem(cacheKey(gymId));if(!raw)return null;const parsed=JSON.parse(raw);if(typeof parsed?.value!==\"boolean\")return null;if(Date.now()-parsed.ts>PRESALE_CACHE_TTL_MS)return null;return parsed.value;}catch{return null;}}function writeSessionCache(gymId,value){if(typeof window===\"undefined\")return;try{sessionStorage.setItem(cacheKey(gymId),JSON.stringify({value,ts:Date.now()}));}catch{}}async function fetchPresaleHasOpenRound(gymId){const url=`${BASE_URL}/public/presale?status=OPEN&presaleRoundStatus=OPEN&gymId=${gymId}`;const json=await fetch(url).then(r=>r.json());const presaleList=Array.isArray(json?.presaleList)?json.presaleList:[];return presaleList.some(p=>(Array.isArray(p?.presaleRoundList)?p.presaleRoundList:[]).some(r=>r?.status===\"OPEN\"));}function getPresaleHasOpenRoundCached(gymId){const key=String(gymId);const now=Date.now();const existing=presaleOpenCache[key];if(existing&&now-existing.ts<=PRESALE_CACHE_TTL_MS){return Promise.resolve(existing.value);}if(existing?.promise)return existing.promise;const p=fetchPresaleHasOpenRound(gymId).then(value=>{presaleOpenCache[key]={value,ts:Date.now()};writeSessionCache(gymId,value);return value;}).catch(()=>{presaleOpenCache[key]={value:false,ts:Date.now()};return false;});presaleOpenCache[key]={value:existing?.value??false,ts:now,promise:p};return p;}export function PresaleRoundOpenSmartVisible(){const[state,setState]=useState(\"loading\");const apply=async()=>{const gymId=getGymIdFromPath();const cached=readSessionCache(gymId);if(cached!==null)setState(cached?\"open\":\"closed\");const latest=await getPresaleHasOpenRoundCached(gymId);setState(latest?\"open\":\"closed\");};useEffect(()=>{apply();const onPop=()=>apply();window.addEventListener(\"popstate\",onPop);return()=>window.removeEventListener(\"popstate\",onPop);},[]);if(state===\"closed\"){return{style:{display:\"none\"}};}if(state===\"loading\"){return{style:{visibility:\"hidden\",opacity:0,pointerEvents:\"none\"}};}return{style:{visibility:\"visible\",opacity:1}};}import{useContext as __legacyOverrideHOC_useContext}from\"react\";import{DataObserverContext as __legacyOverrideHOC_DataObserverContext}from\"framer\";export function withMachineRackPlatformTotalCount(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...MachineRackPlatformTotalCount(props)});};}withMachineRackPlatformTotalCount.displayName=\"MachineRackPlatformTotalCount\";export function withHoverGymIdTextWhite(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...HoverGymIdTextWhite(props)});};}withHoverGymIdTextWhite.displayName=\"HoverGymIdTextWhite\";export function withPresaleRoundOpenSmartVisible(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...PresaleRoundOpenSmartVisible(props)});};}withPresaleRoundOpenSmartVisible.displayName=\"PresaleRoundOpenSmartVisible\";\nexport const __FramerMetadata__ = {\"exports\":{\"MachineRackPlatformTotalCount\":{\"type\":\"override\",\"name\":\"MachineRackPlatformTotalCount\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withPresaleRoundOpenSmartVisible\":{\"type\":\"reactHoc\",\"name\":\"withPresaleRoundOpenSmartVisible\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withGymFeature\":{\"type\":\"reactHoc\",\"name\":\"withGymFeature\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withHoverGymIdTextWhite\":{\"type\":\"reactHoc\",\"name\":\"withHoverGymIdTextWhite\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withTrainerList\":{\"type\":\"reactHoc\",\"name\":\"withTrainerList\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withExampleDynamic\":{\"type\":\"reactHoc\",\"name\":\"withExampleDynamic\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CMSContext\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PresaleRoundOpenSmartVisible\":{\"type\":\"override\",\"name\":\"PresaleRoundOpenSmartVisible\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withGymOTavailability\":{\"type\":\"reactHoc\",\"name\":\"withGymOTavailability\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withGymIdFromPath\":{\"type\":\"reactHoc\",\"name\":\"withGymIdFromPath\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HoverGymIdTextWhite\":{\"type\":\"override\",\"name\":\"HoverGymIdTextWhite\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isProduction\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withGymList\":{\"type\":\"reactHoc\",\"name\":\"withGymList\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withMachineList\":{\"type\":\"reactHoc\",\"name\":\"withMachineList\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withExample\":{\"type\":\"reactHoc\",\"name\":\"withExample\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"BASE_URL\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withMachineRackPlatformTotalCount\":{\"type\":\"reactHoc\",\"name\":\"withMachineRackPlatformTotalCount\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withGeolocation\":{\"type\":\"reactHoc\",\"name\":\"withGeolocation\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Overrides.map"],"mappings":"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"}