{"version":3,"file":"LoadingScreen.BiyLDFbe.mjs","names":["React.useState"],"sources":["https:/framerusercontent.com/modules/A5qEUnDhxneonNNkDSyu/WhtLbfvIzc8s2IYhIcb1/LoadingScreen.js"],"sourcesContent":["import{jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType}from\"framer\";export function LoadingScreen({backgroundColor,textColor,steps,fontFamily,fontSize}){const[progress,setProgress]=React.useState(0);const[isVisible,setIsVisible]=React.useState(true);const[overlayStyle,setOverlayStyle]=React.useState({opacity:1,pointerEvents:\"all\",transition:\"opacity 0.5s ease\"});React.useEffect(()=>{if(typeof window===\"undefined\"||typeof document===\"undefined\"){return;}// 랜덤 숫자 배열 생성\nconst generateSteps=stepCount=>{const values=[0]// 최소값 0 포함\n;for(let i=1;i<stepCount-1;i++){values.push(Math.floor(Math.random()*(99-values[i-1])+values[i-1]))// 이전 값보다 큰 값 생성\n;}values.push(99)// 최대값 99 포함\n;return values;};const randomSteps=generateSteps(steps);// 두 번째 숫자를 즉시 설정\nif(randomSteps.length>1){setProgress(randomSteps[1])// 첫 번째 숫자(0)를 건너뛰고 두 번째 숫자 설정\n;}// 나머지 숫자 업데이트\nlet index=2// 두 번째 숫자 이후부터 시작\n;const interval=setInterval(()=>{if(index<randomSteps.length){setProgress(randomSteps[index]);index++;}else{clearInterval(interval);}},100)// 0.1초 간격으로 업데이트\n;// 리소스 로드 완료 시 처리\nconst handleWindowLoad=()=>{clearInterval(interval)// 숫자 증가 중지\n;setProgress(100)// 최종값 100으로 설정\n;setOverlayStyle(prev=>({...prev,opacity:0,pointerEvents:\"none\"}));setTimeout(()=>{setIsVisible(false);},500);};if(document.readyState===\"complete\"){handleWindowLoad();}else{window.addEventListener(\"load\",handleWindowLoad);}return()=>{clearInterval(interval)// interval 정리\n;window.removeEventListener(\"load\",handleWindowLoad)// 이벤트 정리\n;};},[steps]);if(!isVisible){return null;}return /*#__PURE__*/_jsxs(\"div\",{style:{position:\"fixed\",top:0,left:0,width:\"100%\",height:\"100%\",backgroundColor:backgroundColor,color:textColor,display:\"flex\",justifyContent:\"flex-start\",alignItems:\"flex-end\",fontSize:`${fontSize}px`,fontFamily:fontFamily.fontFamily,fontWeight:\"bold\",zIndex:9999,...overlayStyle},children:[progress,\"%\"]});}// === 프레이머 속성 정의 ===\naddPropertyControls(LoadingScreen,{backgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"#000000\"},textColor:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#FFFFFF\"},steps:{type:ControlType.Number,title:\"Steps\",defaultValue:3,min:2,max:10,step:1},fontFamily:{type:ControlType.Font,title:\"Font Family\",defaultValue:\"Arial\"},fontSize:{type:ControlType.Number,title:\"Font Size\",defaultValue:36,min:10,max:100,step:1}});\nexport const __FramerMetadata__ = {\"exports\":{\"LoadingScreen\":{\"type\":\"reactComponent\",\"name\":\"LoadingScreen\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./LoadingScreen.map"],"mappings":"gMAA6H,SAAgB,EAAc,CAAC,kBAAgB,YAAU,QAAM,aAAW,YAAU,CAAC,GAAK,CAAC,EAAS,GAAaA,EAAe,EAAE,CAAM,CAAC,EAAU,GAAcA,EAAe,GAAK,CAAM,CAAC,EAAa,GAAiBA,EAAe,CAAC,QAAQ,EAAE,cAAc,MAAM,WAAW,oBAAoB,CAAC,CAc3X,OAd4X,MAAoB,CAAC,GAAU,IAAS,QAAa,OAAO,SAAW,IAAa,OAIze,IAAM,GAHH,GAAW,CAAC,IAAM,EAAO,CAAC,EAAE,CAC/C,IAAI,IAAI,EAAE,EAAE,EAAE,EAAU,EAAE,IAAK,EAAO,KAAK,KAAK,MAAM,KAAK,QAAQ,EAAE,GAAG,EAAO,EAAE,IAAI,EAAO,EAAE,GAAG,CAAC,CAElG,OADC,EAAO,KAAK,GAAG,CACT,IAAyC,EAAM,CACpD,EAAY,OAAO,GAAG,EAAY,EAAY,GAAG,CAEpD,IAAI,EAAM,EACH,EAAS,gBAAgB,CAAI,EAAM,EAAY,QAAQ,EAAY,EAAY,GAAO,CAAC,KAAc,cAAc,EAAS,EAAI,IAAI,CAErI,MAAqB,CAAC,cAAc,EAAS,CAClD,EAAY,IAAI,CAChB,EAAgB,IAAO,CAAC,GAAG,EAAK,QAAQ,EAAE,cAAc,OAAO,EAAE,CAAC,eAAe,CAAC,EAAa,GAAM,EAAG,IAAI,EAAmH,OAA7G,SAAS,aAAa,WAAY,GAAkB,CAAO,EAAO,iBAAiB,OAAO,EAAiB,KAAY,CAAC,cAAc,EAAS,CACjQ,EAAO,oBAAoB,OAAO,EAAiB,GAC/C,CAAC,EAAM,CAAC,CAAK,EAA4C,EAAM,MAAM,CAAC,MAAM,CAAC,SAAS,QAAQ,IAAI,EAAE,KAAK,EAAE,MAAM,OAAO,OAAO,OAAuB,kBAAgB,MAAM,EAAU,QAAQ,OAAO,eAAe,aAAa,WAAW,WAAW,SAAS,GAAG,EAAS,IAAI,WAAW,EAAW,WAAW,WAAW,OAAO,OAAO,KAAK,GAAG,EAAa,CAAC,SAAS,CAAC,EAAS,IAAI,CAAC,CAAC,CAA1V,0BAdS,IAA4B,IAAoD,CAe7H,EAAoB,EAAc,CAAC,gBAAgB,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,aAAa,UAAU,CAAC,UAAU,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,aAAa,UAAU,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,WAAW,CAAC,KAAK,EAAY,KAAK,MAAM,cAAc,aAAa,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,aAAa,GAAG,IAAI,GAAG,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC"}