(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[185],{93400:function(e,t,n){Promise.resolve().then(n.t.bind(n,33652,23)),Promise.resolve().then(n.bind(n,95196)),Promise.resolve().then(n.t.bind(n,64013,23)),Promise.resolve().then(n.t.bind(n,15182,23)),Promise.resolve().then(n.bind(n,44959))},44959:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return S}});var r=n(58435);let i=new(n(32142)).S({defaultOptions:{mutations:{networkMode:"always"},queries:{staleTime:1e4,refetchOnMount:!0,structuralSharing:!0,refetchOnWindowFocus:!1,retryDelay:e=>Math.min(1e3*2**e,3e4)}}});var o=n(80001),a=n(62490),l=n(9944),u=n(14435),s=n(12829),c=n(16297),d=n(16410),m=n(92338),v=n(22471),p=n(98322),f=n(20762),g=n(8604),h=n.n(g);async function _(e){let t={useWebWorker:!1,maxWidthOrHeight:1e3,maxSizeMB:1,fileType:"image/jpeg"};if("image/heic"!==e.type)return await (0,f.Z)(e,t);{let n=await e.arrayBuffer(),r=await h()({blob:new Blob([n],{type:"image/heic"}),toType:"image/jpeg"}),i=Array.isArray(r)?new Blob(r,{type:"image/jpeg"}):r;return e=new File([i],e.name.replace(/\.heic$/,".jpg"),{type:"image/jpeg"}),await (0,f.Z)(e,t)}}var x=n(20212),y=n(77980),j=n(56865),b=n(92606);function w(e){let{children:t}=e,n=(0,b.useRouter)(),i=(0,b.usePathname)().includes("/"),o=(0,a.NL)(),[l,u]=(0,s.useState)(0),[c,m]=(0,s.useState)(!1),[f,g]=(0,s.useState)(!1),h=(0,y.b9)(j.z),{mutate:w,data:k,reset:S,isPending:O}=(0,x.Ss)({request:{onUploadProgress:e=>{let{total:t=0,loaded:n=0}=e;u(Math.round(100*n/t))}},mutation:{onMutate:()=>{u(0)},onSuccess:e=>{E({...e,isHistory:!0}),g(!0),o.invalidateQueries({queryKey:["GET_HISTORY_LIST"]}),o.invalidateQueries({queryKey:["GET_USER"]}),i&&n.push("/zoom")},onError:e=>{var t;g(!1),(null==e?void 0:null===(t=e.response)||void 0===t?void 0:t.status)===403&&m(!0),(0,d.yv)({message:"Upload was not successful!",variant:"error"})}}}),[q,E]=(0,s.useState)(k?{...k,isHistory:!0}:void 0),{mutate:C,data:T,reset:N,isPending:M}=(0,v.D)({mutationFn:async e=>e,onMutate:()=>{u(0)},onSuccess:e=>{h(null),E(void 0),w({data:{input_file:e}})},onError:()=>{h(null),E(void 0),(0,d.yv)({message:"Upload was not successful!",variant:"error"})}}),[P,B]=(0,s.useState)(!1),I=(0,s.useMemo)(()=>(null==q?void 0:q.input_image_url)?q.input_image_url:P?void 0:T?URL.createObjectURL(T):void 0,[P,null==q?void 0:q.input_image_url,T]),z=(0,s.useCallback)(async e=>{if(!e)return;let t=await _(e);B(!1),C(t)},[C]),D=(0,s.useCallback)(()=>{B(!0),g(!1),E(void 0)},[]),F=(0,s.useCallback)(()=>{N(),u(0),S(),g(!1)},[S,N]),R=(0,s.useMemo)(()=>({image:I,onCancel:F,onUpload:z,onDeleteImage:D,progress:l,needAuth:c,setNeedAuth:m,isUploadingFile:M,file:T,isFindingSimilarItems:O,isSuccessUpload:f,similarItems:q,setSimilarItems:E}),[I,F,z,D,l,M,T,O,f,q,c]);return(0,r.jsx)(p.F.Provider,{value:R,children:t})}let k=e=>{var t,n,r,i,o,a;t=window,n=document,r="script",t[i="dataLayer"]=t[i]||[],t[i].push({"gtm.start":new Date().getTime(),event:"gtm.js"}),o=n.getElementsByTagName(r)[0],(a=n.createElement(r)).async=!0,a.src="https://www.googletagmanager.com/gtm.js?id="+e,o.parentNode.insertBefore(a,o)};var S=e=>{let{children:t}=e,[n]=(0,s.useState)(i);return(0,s.useEffect)(()=>{k("GTM-MBLDWH68")},[]),(0,r.jsx)(a.aH,{client:n,children:(0,r.jsx)(m.w,{className:"h-full w-full",children:(0,r.jsxs)(u.rg,{clientId:"1053854217012-ah3g0pbbjjk6is00sr9o2dsav6em31rf.apps.googleusercontent.com",children:[(0,r.jsx)(o.V,{children:(0,r.jsx)(c.pn,{children:(0,r.jsx)(d.wT,{children:(0,r.jsx)(w,{children:t})})})}),(0,r.jsx)(l.t,{initialIsOpen:!1})]})})})}},56865:function(e,t,n){"use strict";n.d(t,{R:function(){return x},z:function(){return _}});var r=n(58435),i=n(87074),o=n(11429),a=n(12829),l=n(50601),u=n(98322),s=n(80191),c=n(16330),d=n(8086),m=n(22048),v=n(74144),p=n(27197),f=n(40196),g=n(77980);let h=e=>{var t,n,i,l,u,f;let{item:g,activeItem:h,setActiveItem:_,isLoading:x}=e,y=(0,s._)();(0,a.useEffect)(()=>{let e=setInterval(()=>{y.start({opacity:.2>Math.random()?.5:1})},500);return()=>{clearInterval(e)}},[y]);let j=(null==h?void 0:null===(t=h.object_location)||void 0===t?void 0:t.x)===(null===(n=g.object_location)||void 0===n?void 0:n.x);return(0,r.jsx)(c.E.span,{onClick:()=>{var e,t;if(x)return;if(h&&(null==h?void 0:null===(e=h.object_location)||void 0===e?void 0:e.x)===(null===(t=g.object_location)||void 0===t?void 0:t.x))return _(void 0);y.start("animate"),null==_||_(g);let n=document.getElementById("items-list");if(n){let e=n.getBoundingClientRect(),t=window.pageYOffset||document.documentElement.scrollTop,r=e.top+t-200;window.scrollTo({top:r,behavior:"smooth"})}},id:"button-select-item",className:(0,p.Z)("flex z-20 cursor-pointer text-center items-center justify-center w-5 h-5  border-1 rounded-full border-primary-08 bg-white absolute ",j&&"!bg-primary-08 border-white z-21"),style:{top:null===(i=g.object_location)||void 0===i?void 0:i.y,left:null===(l=g.object_location)||void 0===l?void 0:l.x},initial:"initial",animate:j?void 0:y,variants:j?void 0:{initial:{scale:1},animate:{scale:[1,.9,1],transition:{duration:.5}}},children:x?(0,r.jsx)(d.Z,{color:"#1C3D86"}):(null==h?void 0:null===(u=h.object_location)||void 0===u?void 0:u.x)===(null===(f=g.object_location)||void 0===f?void 0:f.x)?(0,r.jsx)(m.Z,{color:"#fff"}):(0,r.jsx)(v.Z,{color:"#1C3D86"})},(0,o.x0)())},_=(0,f.cn)(null),x=()=>{var e;let[t,n]=(0,g.KO)(_),{image:s,similarItems:c}=(0,u.B)(),d=null==c?void 0:null===(e=c.detected_objects)||void 0===e?void 0:e.at(0),{ref:m,height:v=0,width:p=0}=(0,l.Z)(),{data:{naturalHeight:f=0,naturalWidth:x=0}={}}=(0,i.a)({queryKey:["image",s],queryFn:async()=>{let{naturalHeight:e=0,naturalWidth:t=0}=await new Promise((e,t)=>{let n=new Image;n.onload=()=>e(n),n.onerror=e=>t(e),n.src=s});return{naturalHeight:e,naturalWidth:t}}}),y=(0,a.useMemo)(()=>{let e=x/p,t=f/v;return null==d?void 0:d.map(n=>{var r,i,a,l;return{...n,id:(0,o.x0)(),object_location:{x:(null!==(a=null===(r=n.object_location)||void 0===r?void 0:r.x)&&void 0!==a?a:0)/e,y:(null!==(l=null===(i=n.object_location)||void 0===i?void 0:i.y)&&void 0!==l?l:0)/t}}})},[d,v,f,x,p]),j=(0,a.useMemo)(()=>!(null==d?void 0:d.some(e=>{var t;return!!(null===(t=e.similar_items)||void 0===t?void 0:t.length)})),[d]);return(0,r.jsx)("div",{className:"flex justify-center  w-full items-stretch h-full relative z-[1]",children:(0,r.jsxs)("div",{ref:m,className:"relative",children:[(0,r.jsx)("img",{src:s,className:" top-0 max-h-[500px] max-w-[316px] rounded-md"}),y&&y.map(e=>{var n,i,o;return(0,r.jsx)("img",{src:e.object_image_url,className:"".concat((null==t?void 0:null===(n=t.object_location)||void 0===n?void 0:n.x)===(null===(i=e.object_location)||void 0===i?void 0:i.x)?"z-10 absolute top-0 rounded-md":"hidden"," max-h-[500px] max-w-[316px]")},null===(o=e.object_location)||void 0===o?void 0:o.x)}),j&&y&&(0,r.jsx)("div",{className:"absolute animate-pulse bg-primary-06 bg-opacity-70 inset-0 rounded-lg"}),y&&(null==y?void 0:y.map(e=>(0,r.jsx)(h,{item:e,activeItem:t,setActiveItem:n},(0,o.x0)())))]})})}},98322:function(e,t,n){"use strict";n.d(t,{B:function(){return o},F:function(){return i}});var r=n(12829);let i=(0,r.createContext)(null);function o(){let e=(0,r.useContext)(i);if(!e)throw Error("should render in <StartContext.Provider>");return e}},92503:function(e,t,n){"use strict";n.d(t,{e:function(){return r.e}});var r=n(15423)},15423:function(e,t,n){"use strict";n.d(t,{e:function(){return p}});var r,i,o=n(12628);function a(e){return e.headers["Accept-Language"]="fa-IR, fa;q=0.9,en;q=0.8,*;q=0.1",e}var l=n(87465),u=n.n(l),s=n(96644);(r=i||(i={})).mapEntries=s.V7,r.mapValues=s.Q8,r.mapKeys=s.Cw,r.get=s.U2,r.set=s.t8,r.omit=s.CE,r.pick=s.ei,r.merge=function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return u()(e,...n)},r.clone=s.d9,r.jsonClone=function(e){return JSON.parse(JSON.stringify(e))},r.getKeyByValue=function(e,t){let n=Object.values(e).indexOf(t);return Object.keys(e)[n]},r.removeEmpty=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return Object.fromEntries(Object.entries(e).filter(e=>{let[,n]=e;return!!t&&(0===n||!1===n)||!!n}))};var c=n(4967);function d(e){let t=(0,c.ej)("userCredential");if(t){let n=JSON.parse(t);e.headers.Authorization="Bearer ".concat(null==n?void 0:n.access_token)}return e}class m{get adaptor(){return this.adapter}constructor(e){this.adapter=o.Z.create(i.merge({timeout:12e4},e)),this.adapter.interceptors.request.use(a),this.adapter.interceptors.request.use(d)}}let v=new m({baseURL:"https://luxi.ai/"});function p(e,t){let n=o.Z.CancelToken.source(),r={...e,...t,cancelToken:n.token},i=v.adaptor(r).then(e=>e.data);return i.cancel=()=>{n.cancel("Query was cancelled")},i}},20212:function(e,t,n){"use strict";n.d(t,{Ss:function(){return l},sO:function(){return c}});var r=n(22471),i=n(92503);let o=(e,t)=>{let n=new FormData;return e.input_file&&n.append("input_file",e.input_file),(0,i.e)({url:e.request_token?"/api/find-similar-items?request_token=".concat(e.request_token)+"".concat(e.price_max?"&price_max=".concat(e.price_max):"")+"".concat(e.price_min?"&price_min=".concat(e.price_min):"")+"".concat(e.gender?"&gender=".concat(e.gender):"")+"".concat(e.color_key?"&color_key=".concat(e.color_key):""):"/api/find-similar-items",method:"POST",headers:{"Content-Type":"multipart/form-data"},data:e.request_token?void 0:n},t)},a=e=>{let{mutation:t,request:n}=null!=e?e:{};return{mutationFn:e=>{let{data:t}=null!=e?e:{};return o(t,n)},...t}},l=e=>{let t=a(e);return(0,r.D)(t)},u=(e,t)=>(0,i.e)({url:e.request_token?"/api/find-similar-sample?request_token=".concat(e.request_token)+"".concat(e.price_max?"&price_max=".concat(e.price_max):"")+"".concat(e.price_min?"&price_min=".concat(e.price_min):"")+"".concat(e.gender?"&gender=".concat(e.gender):"")+"".concat(e.color_key?"&color_key=".concat(e.color_key):""):"/api/find-similar-Sample",method:"POST",headers:{"Content-Type":"multipart/form-data"}},t),s=e=>{let{mutation:t,request:n}=null!=e?e:{};return{mutationFn:e=>{let{data:t}=null!=e?e:{};return u(t,n)},...t}},c=e=>{let t=s(e);return(0,r.D)(t)}},15182:function(){}},function(e){e.O(0,[657,826,823,980,498,748,53,942,757,627,744],function(){return e(e.s=93400)}),_N_E=e.O()}]);
//# sourceMappingURL=layout-91f6cc21fc12a6c1.js.map