1!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="4a1a10d4-91bd-4c90-aaea-abf39920392d",e._sentryDebugIdIdentifier="sentry-dbid-4a1a10d4-91bd-4c90-aaea-abf39920392d")}catch(e){}}(),(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[76430],{35666:(e,t,r)=>{"use strict";r.d(t,{$i:()=>u,K3:()=>p,am:()=>i,hO:()=>l,j9:()=>c});var a=r(21980),o=r(61321),s=r(36317),n=r(14012);let i=(0,o.xP)({reducerPath:"fileManagementApi",baseQuery:(0,s.cw)({baseUrl:`${a.Mw}/fileExplorer`,prepareHeaders:n.GO}),endpoints:e=>({moveFileOrFolder:e.mutation({query:e=>({url:"/move-file-or-folder",method:"PUT",body:e})}),getFilesAndFolders:e.query({query:e=>{let{projectId:t,category:r}=e;return{url:"/files-and-folders",method:"GET",params:{projectId:t,category:r}}}}),renameFile:e.mutation({query:e=>{let{fileId:t,newFileName:r}=e;return{url:"/rename-file",method:"PUT",body:{fileId:t,newFileName:r}}}}),shareAccess:e.mutation({query:e=>({url:"/share-access",method:"POST",body:e})})})}),{useMoveFileOrFolderMutation:l,useGetFilesAndFoldersQuery:d,useLazyGetFilesAndFoldersQuery:c,useRenameFileMutation:u,useShareAccessMutation:p}=i},38197:(e,t,r)=>{"use strict";r.d(t,{Ay:()=>n,G5:()=>s,_1:()=>o});let a=(0,r(26286).Z0)({name:"modal",initialState:{activeModal:null,loginStaus:!1},reducers:{setActiveModal:(e,t)=>{e.activeModal=t.payload},setLoginStatus:(e,t)=>{e.loginStaus=t.payload}}}),{setActiveModal:o,setLoginStatus:s}=a.actions,n=a.reducer},45682:()=>{},56919:(e,t,r)=>{"use strict";r.d(t,{Ay:()=>l,d_:()=>o,hV:()=>i,qe:()=>s});let a=(0,r(26286).Z0)({name:"notification",initialState:{viewed:[],unviewed:[]},reducers:{setNotifications:(e,t)=>{e.viewed=t.payload?.viewed||[],e.unviewed=t.payload?.unviewed||[]},markAsViewed:(e,t)=>{let r=t.payload,a=e.unviewed.findIndex(e=>e.guid===r);if(-1!==a){let[t]=e.unviewed.splice(a,1);t.viewed=!0,e.viewed.unshift(t)}},markAllAsViewed(e){e.viewed=[...e.unviewed.map(e=>({...e,viewed:!0})),...e.viewed],e.unviewed=[]},clearNotifications:e=>{e.unviewed=[],e.viewed=[]}}}),{setNotifications:o,markAsViewed:s,clearNotifications:n,markAllAsViewed:i}=a.actions,l=a.reducer},65684:(e,t,r)=>{"use strict";r.d(t,{OT:()=>d,Z6:()=>p,jH:()=>u});var a=r(21980),o=r(36317),s=r(61321),n=r(14012);let i=a.Mw||"",l=(0,o.cw)({baseUrl:i,prepareHeaders:n.GO}),d=(0,s.xP)({reducerPath:"notificationApi",baseQuery:l,endpoints:e=>({getNotification:e.query({query:e=>({url:`notification?userId=${e}`,method:"GET"})}),updateNotification:e.mutation({query:e=>({url:"notification",method:"PUT",body:e})}),pushNotification:e.mutation({query:e=>({url:"pushNotification",method:"POST",body:e})}),convertFileWithZoho:e.mutation({query:e=>({url:"conversion/convertOfficeFileToZoho",method:"POST",body:e})})})}),{useLazyGetNotificationQuery:c,useGetNotificationQuery:u,useUpdateNotificationMutation:p,usePushNotificationMutation:h,useConvertFileWithZohoMutation:g}=d},65866:(e,t,r)=>{"use strict";r.d(t,{LD:()=>v,bG:()=>w});var a=r(95155),o=r(12115),s=r(42917),n=r(94987),i=r(35943),l=r(96518),d=r(20063),c=r(28079),u=r(39670),p=r(5016);let h=e=>{if(!e)return"Sign-in process interrupted. Please try again.";let t="string"==typeof e?e:e?.errorMessage||e?.message||JSON.stringify(e);if(!t)return"Sign-in process interrupted. Please try again.";let r=t.toString();try{r.includes("%")&&(r=decodeURIComponent(r))}catch(e){}return r.includes("PreSignUp failed")||r.includes("An account with this email already exists")?"An account with this email already exists. Please try another email.":r.includes("User cancelled")||r.includes("cancelled")?"Sign-in was cancelled. Please try again.":r.includes("Network")||r.includes("NETWORK")||r.includes("timeout")?"Network error. Please check your connection and try again.":r.split("\n")[0]};var g=r(70753);let m={UserPoolId:"us-east-2_eGuyuibpw",ClientId:"38v7n04j91aaja204llvfvmojs"};new g.NE(m);var f=r(84718);let y=(0,o.createContext)(null),w=()=>{let e=(0,o.useContext)(y);if(!e)throw Error("useOAuth must be used within OAuthProvider");return e},v=e=>{let{children:t,onSuccess:r,onError:w}=e,v=(0,d.useRouter)(),[b,P]=(0,o.useState)(null),[k,S]=(0,o.useState)(!1),[T,A]=(0,o.useState)(!1),[O,j]=(0,o.useState)(!1),[I,C]=(0,o.useState)(null),[E]=(0,l.Z)(),{errorNotify:_}=(0,c.A)(),N=(0,o.useCallback)(()=>C(null),[]),U=(0,o.useCallback)(e=>{e.toLowerCase().includes("already exists")||e.toLowerCase().includes("email already")?C(e):_(e)},[_]),x=(0,o.useCallback)(async e=>{try{j(!0),console.log("\uD83D\uDD10 Starting OAuth session handling...");let t=e,a=5;for(;(!t||!t.tokens?.idToken||!t.tokens?.accessToken)&&a>0;)await new Promise(e=>setTimeout(e,500)),t=await (0,s.$)(),console.log(`â³ Retrying session fetch... (${a} retries left)`),a--;let o=t?.tokens?.idToken?.toString(),n=t?.tokens?.accessToken?.toString();if(!o||!n)throw Error(`Sign-in failed. Missing tokens. idToken: ${!!o}, accessToken: ${!!n}`);console.log("â
Tokens acquired, proceeding with user setup.",t);let i=localStorage.getItem("shotProvider");i||(i=t.tokens.accessToken.payload.username.includes("Apple")?"AP":"GL"),console.log("\uD83D\uDCE1 Making API call to save user...");let l=await E({id_token:o,provider:i});if(console.log("\uD83D\uDCE5 Lambda response:"),l.error){let e=h(l.error);throw console.error("â Lambda error:",e),Error(e)}if(r?.(),!(0,f.X)()){let e=sessionStorage.getItem("pendingInviteUrl");e?(sessionStorage.removeItem("pendingInviteUrl"),window.location.href=e):v.push("/dashboard")}}catch(t){let e=h(t);U(e),w?.(e),(()=>{let e=new g.NE(m).getCurrentUser();return e&&e.signOut()})()}finally{P(null),j(!1),localStorage.removeItem("shotProvider")}},[E,r,w,v,U]),D=(0,o.useCallback)(async e=>{P(e),localStorage.setItem("shotProvider",`${"Google"===e?"GL":"AP"}`);try{let t=await (0,s.$)();t.tokens?.accessToken?await x(t):await (0,n.$)({provider:e,options:{prompt:"SELECT_ACCOUNT"}})}catch(t){let e=h(t);U(e),w?.(e),P(null),localStorage.removeItem("shotProvider")}},[x,U,w]);return(0,o.useEffect)(()=>
1{if(k)return;let e=(()=>{let e=new URLSearchParams(window.location.search),t=e.get("error_description"),r=e.get("error");return t||r?h(t||r):null})();e&&(U(e),(()=>{let e=new URLSearchParams(window.location.search);if(e.has("error")||e.has("error_description")){let e=window.location.pathname;window.history.replaceState({},"",e)}})(),S(!0))},[k,U]),(0,o.useEffect)(()=>{(async()=>{let e=new URLSearchParams(window.location.search),t=e.has("code"),r=e.has("error")&&e.get("error_description")?.includes("OAuth");if(!(t||r))return console.log("â¹ï¸ Not an OAuth redirect (manual login or other flow)");try{await new Promise(e=>setTimeout(e,1e3));let e=await (0,s.$)();console.log("\uD83D\uDCCB Session after OAuth redirect:",{hasIdToken:!!e?.tokens?.idToken,hasAccessToken:!!e?.tokens?.accessToken}),e?.tokens?.idToken&&e?.tokens?.accessToken?(console.log("\uD83D\uDD04 Tokens found after OAuth, processing session..."),await x(e)):console.log("â³ No tokens yet, waiting for Hub event...")}catch(e){console.error("â Error checking OAuth return:",e)}})()},[x]),(0,o.useEffect)(()=>{if(T)return;console.log("\uD83D\uDD17 Setting up Amplify Hub listener for OAuth completion");let e=i.YZ.listen("auth",e=>{let{payload:t}=e;switch(console.log("\uD83C\uDFAF Auth Hub event:",t.event),t.event){case"signedIn":if(console.log("â
Hub: signedIn - User authenticated"),!localStorage.getItem("shotProvider")){console.log("â¹ï¸ Manual login â skipping OAuth session handling");break}console.log("â±ï¸ Waiting 500ms before processing session..."),setTimeout(()=>x(),500);break;case"signInWithRedirect":console.log("â
Hub: signInWithRedirect - User returned from provider"),console.log("â±ï¸ Waiting 500ms before processing session..."),setTimeout(()=>x(),500);break;case"signInWithRedirect_failure":console.error("â Hub: signInWithRedirect_failure");let r="OAuth sign-in failed";U(h(r)),w?.(r),P(null);break;case"signedOut":console.log("\uD83D\uDEAA Hub: User signed out"),P(null);break;default:console.log("â¹ï¸ Hub: Other auth event",t.event)}});return A(!0),()=>{console.log("\uD83D\uDD17 Cleaning up Hub listener"),e()}},[T,x,U,w]),(0,a.jsxs)(y.Provider,{value:{loading:b,urlErrorHandled:k,hubListenerSetup:T,oauthInProgress:O,oauthError:I,clearOauthError:N,handleOAuthSignIn:D,handleOAuthSession:x,onSuccess:r,onError:w},children:[t,(0,a.jsx)(u.A,{open:!!I,onClose:N,title:"Email Already Registered",size:"sm",footer:(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(p.Ay,{variant:"outline",size:"sm",type:"button",onClick:N,title:"Cancel"}),(0,a.jsx)(p.Ay,{variant:"yellow",size:"sm",type:"button",onClick:()=>{N(),v.push("/login")},title:"Sign In Instead"})]}),children:(0,a.jsx)("p",{className:"text-base text-dark-2 dark:text-light-0",children:I})})]})}},66137:(e,t,r)=>{"use strict";r.d(t,{Az:()=>p,Dl:()=>f,EE:()=>g,JG:()=>l,gm:()=>m,hp:()=>h,rF:()=>d,x3:()=>c,xP:()=>y});var a=r(97412);let o="folder",s=new Set(["feed","fileviewer","billing","profile","ModelDownloads","new-project","shared-links"]),n=e=>(e||"").split("/").filter(Boolean),i=new Set(["files","images","videos","renderings","drawings","panorama","panoramas","3dmodels","sidebyside","specifications","moodboard"]),l=e=>{let t=n(e);return"dashboard"===t[0]&&t.length>=3&&!s.has(t[1])&&i.has((t[2]||"").toLowerCase())},d=e=>{let t=n(e);return"dashboard"===t[0]&&t[1]&&!s.has(t[1])?t[1]:null},c=e=>{let t=n(e);return"dashboard"===t[0]&&!!t[1]&&s.has(t[1])},u=e=>{let t=String(e||"");try{t=decodeURIComponent(t)}catch{}return t.replace(/[\s-]+/g,"").toLowerCase()},p=(e,t)=>{if(!e||!t)return!1;let r=u(t);return!!r&&(r===u(e.projectName||"")||r===u(`${e.projectNumber||""}${e.projectName||""}`))},h=e=>{let t=n(e);if(!l(e))return e||"/";let r="panoramas"===t[2]?"panorama":t[2];return`/${t[0]}/${t[1]}/${r}`},g=(e,t)=>t?`${e}?${o}=${encodeURIComponent(t)}`:e,m=()=>new URLSearchParams(window.location.search).get(o),f=(e,t,r)=>{l(t)&&e.replace(g(h(t),r))},y=(e,t)=>{if(!Array.isArray(e)||!t)return null;for(let r of e){if(!r||r.fileCategory!==a.NL.FOLDER)continue;if(r.fileId===t)return[r];let e=y(r.children,t);if(e)return[r,...e]}return null}},66788:(e,t,r)=>{"use strict";r.d(t,{$0:()=>i,AA:()=>p,Ay:()=>y,NX:()=>f,P7:()=>d,Pb:()=>m,X$:()=>u,h1:()=>c,lK:()=>s,m5:()=>n,nw:()=>l,r$:()=>o,rh:()=>h,s6:()=>g});let a=(0,r(26286).Z0)({name:"projects",initialState:{projects:[],currentProject:null,userDetails:{}
1,projectCount:0,isProjectModalOpen:!1,isProjectCreatedModalOpen:!1,createdProjectName:"",parentFolderId:"ROOT",surveyDetails:[],projectIds:"",isTabletSidebarOpen:!1,isRightPanelVisible:!1,storageStats:{}},reducers:{setProjects(e,t){e.projects=t.payload},setCurrentProject(e,t){e.currentProject=t.payload},setUserDetails:(e,t)=>{e.userDetails=t.payload},setProjectCount:(e,t)=>{e.projectCount=t.payload},openProjectModal:e=>{e.isProjectModalOpen=!0},closeProjectModal:e=>{e.isProjectModalOpen=!1},openProjectCreatedModal:(e,t)=>{e.isProjectCreatedModalOpen=!0,e.createdProjectName=t.payload?.projectName??""},closeProjectCreatedModal:e=>{e.isProjectCreatedModalOpen=!1,e.createdProjectName=""},SetParentFolderId:(e,t)=>{e.parentFolderId=t.payload},SetSurveyDetails:(e,t)=>{e.surveyDetails=t.payload},setProjectIds:(e,t)=>{e.projectIds=t.payload},setIsTabletSidebarOpen:(e,t)=>{e.isTabletSidebarOpen=t.payload},setIsRightPanelVisible:(e,t)=>{e.isRightPanelVisible=t.payload}}}),{setProjects:o,setCurrentProject:s,setUserDetails:n,setProjectCount:i,openProjectModal:l,closeProjectModal:d,openProjectCreatedModal:c,closeProjectCreatedModal:u,SetParentFolderId:p,SetSurveyDetails:h,setProjectIds:g,setIsTabletSidebarOpen:m,setIsRightPanelVisible:f}=a.actions,y=a.reducer},75711:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>y});var a=r(95155),o=r(44517),s=r(41731),n=r(77e3),i=r(65866),l=r(20063),d=r(70631),c=r(64666);function u(){let e=(0,l.usePathname)()||"";return e.startsWith("/blogs")||(0,d.M0)(e)?(0,a.jsx)(c.default,{}):null}var p=r(12115),h=r(78028);let g="https://accounts.google.com/gsi/client",m="384108713820-6vevee931pdbloel4f92rcvtjvdoka5e.apps.googleusercontent.com",f=()=>{let e=(0,l.usePathname)()||"",{authStatus:t}=(0,h.A)(e=>[e.authStatus]),{handleOAuthSignIn:r}=(0,i.bG)(),a=(0,p.useRef)(!1),o=(0,d.M0)(e)||e.startsWith("/blogs"),s="unauthenticated"===t&&o;return(0,p.useEffect)(()=>{if(!m)return void console.warn("[GoogleOneTap] NEXT_PUBLIC_GOOGLE_CLIENT_ID__COGNITO_NEW is empty â restart the dev server after editing .env. One Tap disabled.");let e=()=>window.google?.accounts?.id;if(!s)return void e()?.cancel();let t=()=>{let t=e();t&&(a.current||(t.initialize({client_id:m,callback:()=>r("Google"),use_fedcm_for_prompt:!0,auto_select:!1,cancel_on_tap_outside:!1}),a.current=!0),t.prompt())};if(e())return void t();let o=document.querySelector(`script[src="${g}"]`);return o||((o=document.createElement("script")).src=g,o.async=!0,o.defer=!0,document.head.appendChild(o)),o.addEventListener("load",t,{once:!0}),()=>o?.removeEventListener("load",t)},[s,r]),null};function y(e){let{children:t}=e;return(0,a.jsx)(s.O,{children:(0,a.jsx)(n.A,{children:(0,a.jsxs)(i.LD,{children:[(0,a.jsx)(u,{}),(0,a.jsx)(f,{}),(0,a.jsx)(o.l$,{position:"bottom-right",reverseOrder:!0,containerStyle:{zIndex:1e5}}),t]})})})}},87036:(e,t,r)=>{"use strict";r.d(t,{Ay:()=>u,Kp:()=>d,Ri:()=>n,TO:()=>c,bp:()=>s,ki:()=>o,yA:()=>i});let a=(0,r(26286).Z0)({name:"partner",initialState:{accessToken:null,modelsData:[],previewTagData:[],searchQuery:"",authRedirectUrl:"",aboutToBuy:null},reducers:{setAccessToken:(e,t)=>{e.accessToken=t.payload},setModelsData:(e,t)=>{e.modelsData=[...e.modelsData,...t.payload]},clearModelsData(e){e.modelsData=[]},setSelectedTagsData(e,t){e.previewTagData=t.payload},setSearchQuery:(e,t)=>{e.searchQuery=t.payload},setAuthRedirectUrl:(e,t)=>{e.authRedirectUrl=t.payload},setAboutToBuy:(e,t)=>{e.aboutToBuy=t.payload}}}),{setAccessToken:o,setModelsData:s,setSearchQuery:n,clearModelsData:i,setSelectedTagsData:l,setAuthRedirectUrl:d,setAboutToBuy:c}=a.actions,u=a.reducer},96518:(e,t,r)=>{"use strict";r.d(t,{Z:()=>c,u:()=>d});var a=r(21980),o=r(36317),s=r(61321),n=r(14012);let i=a.Mw||"",l=(0,o.cw)({baseUrl:i,prepareHeaders:n.GO}),d=(0,s.xP)({reducerPath:"oAuthApi",baseQuery:l,endpoints:e=>({createOAuthUserDetails:e.mutation({query:e=>({url:"oAuth/userdetails",method:"POST",body:e}),transformResponse:e=>{try{let t=e;if(e?.body&&(t=JSON.parse(e.body)),t?.data)return t.data;return t}catch(t){return e}}})})}),{useCreateOAuthUserDetailsMutation:c}=d},97473:(e,t,r)=>{"use strict";r.d(t,{AS:()=>l,Df:()=>u,H_:()=>i,aM:()=>p,hS:()=>c});var a=r(21980),o=r(61321),s=r(36317),n=r(14012);let i=(0,o.xP)({reducerPath:"archiveApi",baseQuery:(0,s.cw)({baseUrl:`${a.Mw}/filesandfolders`,prepareHeaders:n.GO}),endpoints:e=>({getArchivedItems:e.query({query:e=>({url:"/archive",method:"GET",params:e||void 0})}),archiveItems:e.mutation({query:e=>({url:"/archive",method:"POST",body:e})}),restoreItems:e.mutation({query:e=>({url:"/archive",method:"PUT",body:e})}),permanentDeleteItems:e.mutation({query:e=>({url:"/archive",method:"DELETE",body:e})})})}),{useGetArchivedItemsQuery:l,useLazyGetArchivedItemsQuery:d,useArchiveItemsMutation:c,useRestoreItemsMutation:u,usePermanentDeleteItemsMutation:p}=i}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.