1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4859],{13420:(e,t,s)=>{"use strict";s.d(t,{Ay:()=>v});var r=s(78636),o=s(85264),a=s(65024),i=s(95125),n=s(36117),c=s.n(n),l=s(72378),u=s(42941),h=s(36489),d=s(94351);let p=async()=>{try{return await d.tP.ensureValidToken()}catch(e){return console.error("Failed to get guest token:",e),null}},m=i.A.create({baseURL:"https://suvd.nextstore.mn",headers:{Accept:"application/json","Content-Type":"application/json"},withCredentials:!1});m.interceptors.request.use(async e=>{try{let t=d.tP.getToken(),s=(0,r.g)(),i={...e};if(s&&!(e=>{try{let t=(0,u.A)(e)||null;return null!=t&&!!t.exp&&1>c().unix(t.exp).diff(c()())}catch(e){return console.warn("Invalid token format, treating as expired:",e),!0}})(s))e.headers.Authorization="Bearer ".concat(s),"patch"===e.method&&(e.headers["Content-Type"]="application/merge-patch+json");else if(s)try{let{projectName:e}=o.f;l.A.remove("".concat(e,"_token")),await (0,h.signOut)()}catch(e){console.error("Error during sign out:",e)}if(!s&&(0,a.A)(t))try{await p()}catch(e){console.warn("Failed to create guest token in interceptor:",e)}return i}catch(t){return console.error("Request interceptor error:",t),e}},async function(e){return console.error("Request interceptor rejection:",e),Promise.reject(e)});let v=m},20063:(e,t,s)=>{"use strict";s.r(t);var r=s(47260),o={};for(let e in r)"default"!==e&&(o[e]=()=>r[e]);s.d(t,o)},29418:(e,t,s)=>{"use strict";s.d(t,{DG:()=>h,Zn:()=>l,uD:()=>u});var r=s(95155),o=s(12115);let a={view:void 0,isOpen:!1,isClose:!1,data:null};function i(e,t){switch(t.type){case"open":return{...e,view:t.view,data:t.payload,isOpen:!0,isClose:!1};case"close":return{...e,view:void 0,data:null,isClose:!0,isOpen:!1};default:throw Error("Unknown Modal Action!")}}let n=o.createContext(a);n.displayName="ModalStateContext";let c=o.createContext(void 0);function l(e){let{children:t}=e,[s,l]=o.useReducer(i,a);return(0,r.jsx)(n.Provider,{value:s,children:(0,r.jsx)(c.Provider,{value:l,children:t})})}function u(){let e=o.useContext(n);if(void 0===e)throw Error("useModalState must be used within a ModalProvider");return e}function h(){let e=o.useContext(c);if(void 0===e)throw Error("useModalAction must be used within a ModalProvider");return{openModal(t,s){e({type:"open",view:t,payload:s})},closeModal(){e({type:"close"})}}}c.displayName="ModalActionContext"},38559:(e,t,s)=>{"use strict";s.d(t,{$:()=>n,s:()=>i});var r=s(74268),o=s(69781),a=s(93049),i=class extends o.k{#e;#t;#s;#r;constructor(e){super(),this.#e=e.client,this.mutationId=e.mutationId,this.#s=e.mutationCache,this.#t=[],this.state=e.state||n(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#t.includes(e)||(this.#t.push(e),this.clearGcTimeout(),this.#s.notify({type:"observerAdded",mutation:this,observer:e}))}removeObserver(e){this.#t=this.#t.filter(t=>t!==e),this.scheduleGc(),this.#s.notify({type:"observerRemoved",mutation:this,observer:e})}optionalRemove(){this.#t.length||("pending"===this.state.status?this.scheduleGc():this.#s.remove(this))}continue(){return this.#r?.continue()??this.execute(this.state.variables)}async execute(e){let t=()=>{this.#o({type:"continue"})},s={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#r=(0,a.II)({fn:()=>this.options.mutationFn?this.options.mutationFn(e,s):Promise.reject(Error("No mutationFn found")),onFail:(e,t)=>{this.#o({type:"failed",failureCount:e,error:t})},onPause:()=>{this.#o({type:"pause"})},onContinue:t,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#s.canRun(this)});let r="pending"===this.state.status,o=!this.#r.canStart();try{if(r)t();else{this.#o({type:"pending",variables:e,isPaused:o}),this.#s.config.onMutate&&await this.#s.config.onMutate(e,this,s);let t=await this.options.onMutate?.(e,s);t!==this.state.context&&this.#o({type:"pending",context:t,variables:e,isPaused:o})}let a=await this.#r.start();return await this.#s.config.onSuccess?.(a,e,this.state.context,this,s),await this.options.onSuccess?.(a,e,this.state.context,s),await this.#s.config.onSettled?.(a,null,this.state.variables,this.state.context,this,s),await this.options.onSettled?.(a,null,e,this.state.context,s),this.#o({type:"success",data:a}),a}catch(t){try{await this.#s.config.onError?.(t,e,this.state.context,this,s)}catch(e){Promise.reject(e)}try{await this.options.onError?.(t,e,this.state.context,s)}catch(e){Promise.reject(e)}try{await this.#s.config.onSettled?.(void 0,t,this.state.variables,this.state.context,this,s)}catch(e){Promise.reject(e)}try{await this.options.onSettled?.(void 0,t,e,this.state.context,s)}catch(e){Promise.reject(e)}throw this.#o({type:"error",error:t}),t}finally{this.#s.runNext(this)}}#o(e){this.state=(t=>{switch(e.type){case"failed":return{...t,failureCount:e.failureCount,failureReason:e.error};case"pause":return{...t,isPaused:!0};case"continue":return{...t,isPaused:!1};
1case"pending":return{...t,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:"pending",variables:e.variables,submittedAt:Date.now()};case"success":return{...t,data:e.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...t,data:void 0,error:e.error,failureCount:t.failureCount+1,failureReason:e.error,isPaused:!1,status:"error"}}})(this.state),r.jG.batch(()=>{this.#t.forEach(t=>{t.onMutationUpdate(e)}),this.#s.notify({mutation:this,type:"updated",action:e})})}};function n(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}},41904:(e,t,s)=>{Promise.resolve().then(s.bind(s,69504))},49751:(e,t,s)=>{"use strict";s.d(t,{Ay:()=>d,fi:()=>h,tE:()=>l});var r=s(95155),o=s(12115),a=s(93399),i=s(45614);let n=(0,o.createContext)(void 0),c=null,l=e=>{let{children:t}=e,[s,l]=(0,o.useState)([]),u=e=>{l(t=>t.filter(t=>t.id!==e))},h=(e,t)=>{let s="".concat(Date.now(),"-").concat(Math.random().toString(36).substr(2,9)),r={id:s,type:e,message:t,show:!0};l(e=>[...e,r]),setTimeout(()=>{u(s)},5e3)};return o.useEffect(()=>(c=h,()=>{c=null}),[]),(0,r.jsxs)(n.Provider,{value:{showToast:h},children:[t,(0,r.jsx)(a.A,{className:"position-fixed top-0 start-50 translate-middle-x p-3",style:{zIndex:9999},children:s.map(e=>(0,r.jsxs)(i.A,{show:e.show,onClose:()=>u(e.id),autohide:!0,delay:5e3,children:[(0,r.jsxs)(i.A.Header,{className:"d-flex align-items-center",children:[(0,r.jsx)("strong",{className:"me-auto",children:(e=>{switch(e){case"success":return"ÐмжилÑÑай";case"error":return"Ðлдаа";case"warning":return"ÐнÑ
ааÑÑÑлга";case"info":return"ÐÑдÑÑлÑл";default:return""}})(e.type)}),(0,r.jsx)("button",{type:"button",className:"btn-close p-2 d-flex align-items-center justify-content-center",onClick:()=>u(e.id),"aria-label":"Close",style:{background:"none",border:"none"}})]}),(0,r.jsx)(i.A.Body,{children:(0,r.jsx)("span",{className:"fw-semibold",children:e.message})})]},e.id))})]})},u=(e,t)=>{c?c(e,t):console.warn("ToastMessage: ToastProvider not found in component tree")},h={success:e=>{u("success",e)},error:e=>{u("error",e)},warning:e=>{u("warning",e)},info:e=>{u("info",e)}},d=e=>{let{type:t,message:s}=e;return u(t,s),null}},65024:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=e=>null==e||"object"==typeof e&&0===Object.keys(e).length||"string"==typeof e&&0===e.trim().length},69504:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>d,dynamic:()=>u});var r=s(95155),o=s(91057),a=s(20063),i=s(12115);let n=e=>{let{to:t,ssr:s}=e,r=(0,a.useRouter)();return(0,i.useEffect)(()=>{s?window.location.pathname=t:r.push(t)},[]),null};var c=s(36489),l=s(27308);let u="force-dynamic",h=()=>{let{data:e,status:t}=(0,c.useSession)(),s=(0,a.useSearchParams)().get("callbackUrl")||"/";return"loading"===t?(0,r.jsx)(o.default,{}):e?(0,r.jsx)(n,{ssr:!0,to:s}):(0,r.jsx)("main",{className:"",children:(0,r.jsx)("section",{className:"my-5 py-5",children:(0,r.jsx)("div",{className:"container maxw-980",children:(0,r.jsx)("div",{className:"row",children:(0,r.jsx)("div",{className:"offset-lg-3 col-lg-6 offset-sm-2 col-sm-8",children:(0,r.jsx)(l.A,{isPopup:!1,callbackUrl:s})})})})})})},d=()=>(0,r.jsx)(i.Suspense,{fallback:(0,r.jsx)(o.default,{}),children:(0,r.jsx)(h,{})})},78636:(e,t,s)=>{"use strict";s.d(t,{g:()=>a});var r=s(85264),o=s(72378);let a=()=>{let{projectName:e}=r.f;return o.A.get("".concat(e,"_token"))}},85264:(e,t,s)=>{"use strict";s.d(t,{f:()=>r});let r={name:"Suvd Online",projectName:"suvd",description:"Sovd Online - СолонгоÑÐ¾Ð¾Ñ ÐаÑÑ
анÑÑÑддаа",siteUrl:"http://localhost:3000/",author:{name:"Enkhbayar Wiki.",websiteUrl:"https://suvdstore.mn",address:""},logo:{url:"/images/logo.svg",alt:"hkmall",href:"/",width:163,height:36},defaultLanguage:"en",productDetailVersion:"3.0",categoryMenu:"1.0",addressForm:"2.0"}},91057:(e,t,s)=>{"use strict";s.d(t,{default:()=>o});var r=s(95155);s(12115);let o=()=>(0,r.jsx)("div",{className:"loaderContainer",children:(0,r.jsx)("div",{className:"loader"})})},94351:(e,t,s)=>{"use strict";s.d(t,{gZ:()=>c,tP:()=>u});var r=s(99039),o=s(85264),a=s(95125),i=s(72378);let n=null,c=e=>{n=e};class l{getToken(){return i.A.get("".concat(this.projectName,"_order_token"))}async createToken(){if(this.tokenCreationPromise)return this.tokenCreationPromise;let e=this.getToken();if(e&&this.isTokenValid(e))return e;this.tokenCreationPromise=this.performTokenCreation();try{return await this.tokenCreationPromise}finally{this.tokenCreationPromise=null}}async performTokenCreation(){try{let e=(await a.A.post("".concat(this.baseURL).concat(r.S.ORDER_TOKEN),{localeCode:"mn_MN"},{headers:{"Content-Type":"application/ld+json","Accept-Language":"mn_MN"},timeout:1e4})).data.tokenValue;if(!e)throw Error("No token received from server");return i.A.set("".concat(this.projectName,"_order_token"),e,{expires:1,secure:!0,sameSite:"strict"}),e}
1catch(s){if(console.error("Failed to create order token:",s),a.A.isAxiosError(s)){var e,t;if("ECONNABORTED"===s.code)throw Error("Token creation timeout - please try again");if((null==(e=s.response)?void 0:e.status)===429)throw Error("Too many requests - please wait before trying again");if((null==(t=s.response)?void 0:t.status)&&s.response.status>=500)throw Error("Server error - please try again later")}throw Error("Failed to create order token")}}removeToken(){i.A.remove("".concat(this.projectName,"_order_token"))}isTokenValid(e){if(!e||0===e.trim().length)return!1;try{let t=i.A.get("".concat(this.projectName,"_order_token"));if(!t||t!==e)return!1;return!0}catch(e){return console.warn("Token validation error:",e),!1}}async handleTokenError(){return console.warn("Order token error detected, creating new token..."),this.removeToken(),await this.createToken()}cleanupOnError(){this.removeToken()}cleanupOnSuccess(){this.removeToken(),n&&n()}async ensureValidToken(){try{let e=this.getToken();if(e&&this.isTokenValid(e))return e;return await this.createToken()}catch(e){console.error("Failed to ensure valid token:",e);try{return this.removeToken(),await this.createToken()}catch(e){throw console.error("Token creation retry failed:",e),Error("Unable to create order token. Please refresh the page.")}}}constructor(){this.tokenCreationPromise=null,this.projectName=o.f.projectName,this.baseURL="https://suvd.nextstore.mn"}}let u=new l},99039:(e,t,s)=>{"use strict";s.d(t,{S:()=>r});let r={LOGIN:"/api/v2/shop/customers/token",GMAIL_LOGIN:"/api/v2/shop/authentication-gmail",FACEBOOK_LOGIN:"/api/v2/shop/authentication-fb",REGISTER:"/api/v2/shop/customers",REGISTER_OTP:"/api/v2/shop/customers/phone",OTP_VERIFY:"/api/v2/shop/customers/phone/verify",FORGOT_VERIFY:"/api/v2/shop/customers/reset-password/",OTP_SENT:"/api/v2/shop/customers/reset-password",EMAIL_VERIFY:"/api/v2/shop/customers/verify",FORGOT_OTP_SENT:"/api/v2/shop/customers/phone/forget-password",FORGOT_VERIFY_RESET_CODE:"/api/v2/shop/customers/phone/verify-reset-code",PASSWORD_CHANGE:"/authentication/changePassword",PASSWORD_CHANGE_OTP:"/api/v2/shop/customers/phone/change-password",ME:"/api/v2/shop/me",LOGOUT:"/authentication/logout",ORDER_TOKEN:"/api/v2/shop/orders",CATEGORIES:"/api/v2/shop/taxons/category?withImage=1",TAXONS:"/api/v2/shop/taxons",TAXONS_FRONT:"api/v2/shop/taxons-frontpage",PRODUCT_TAXON:"/api/v2/shop/products",PRODUCT_DETAIL:"/api/v2/shop/products-by-slug",CART_DETAIL:"/api/v2/shop/orders",WISHLIST_DETAIL:"/api/v2/shop/wishlist",PAYMENTS:"/api/v2/shop/payments",USER_UPDATE:"/api/v2/shop/customers",BRANDS:"/api/v2/shop/brands",BANNERS:"/api/v2/shop/banners",NEWS:"/api/v2/shop/articles",BRANCH:"/api/v2/shop/branches",PRODUCT:"/api/v2/shop/products",PRODUCT_LIST:"/api/v2/shop/products-list",MY_ADDRESS:"/api/v2/shop/addresses",HOME_FEATURED_PRODUCT:"/api/v2/shop/taxons/home_featured_product?productLimit=2",PAYMENT_METHODS:"/api/v2/shop/payment-methods",CHANNELS:"/api/v2/shop/channels",PRODUCT_REVIEW:"/api/v2/shop/product-reviews"}}},e=>{e.O(0,[6489,5494,8184,643,7724,7308,8441,1255,7358],()=>e(e.s=41904)),_N_E=e.O()}]);
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.