(function(){"use strict";var t={4509:function(t,e,r){r.d(e,{A:function(){return u}});var n=r(6768),s=r(4232);function a(t,e,r,a,o,c){return(0,n.uX)(),(0,n.CE)("div",{class:"spinner-border",role:"status",style:(0,s.Tr)({width:t.size,height:t.size,"font-size":t.thickness,color:t.color})},[...e[0]||(e[0]=[(0,n.Lk)("span",{class:"visually-hidden"},"Loading...",-1)])],4)}var o=(0,n.pM)({name:"Spinner",props:{size:{type:String,default:"4rem"},thickness:{type:String,default:"1rem"},color:{type:String,default:"#000"}}}),c=r(1241);const i=(0,c.A)(o,[["render",a]]);var u=i},7343:function(t,e,r){var n=r(5130),s=r(6768);const a={class:"mt-3 content-wrapper"};function o(t,e,r,n,o,c){const i=(0,s.g2)("Navbar"),u=(0,s.g2)("router-view"),l=(0,s.g2)("Spinner"),d=(0,s.g2)("Center");return(0,s.uX)(),(0,s.CE)(s.FK,null,[(0,s.bF)(i),(0,s.Lk)("div",a,[t.$store.state.auth.checked?((0,s.uX)(),(0,s.Wv)(u,{key:0})):((0,s.uX)(),(0,s.Wv)(d,{key:1,class:"h-100"},{default:(0,s.k6)(()=>[(0,s.bF)(l,{size:"8rem",thickness:"1.25rem"})]),_:1}))])],64)}var c=r.p+"img/logo.14b877f1.png";const i={class:"navbar navbar-expand-sm navbar-dark bg-dark"},u={class:"container-fluid justify-content-end"},l={class:"collapse navbar-collapse",id:"navbarNavAltMarkup"},d={class:"navbar-nav align-items-stretch align-items-sm-center"};function h(t,e,r,n,a,o){const h=(0,s.g2)("router-link"),p=(0,s.g2)("CartIcon");return(0,s.uX)(),(0,s.CE)("nav",i,[(0,s.Lk)("div",u,[(0,s.bF)(h,{class:"navbar-brand me-auto",to:"/"},{default:(0,s.k6)(()=>[...e[0]||(e[0]=[(0,s.Lk)("img",{src:c,style:{"margin-right":"15px",height:"57px"}},null,-1),(0,s.eW)("Пельменная №2",-1)])]),_:1}),e[2]||(e[2]=(0,s.Lk)("button",{class:"navbar-toggler",type:"button","data-bs-toggle":"collapse","data-bs-target":"#navbarNavAltMarkup","aria-controls":"navbarNavAltMarkup","aria-expanded":"false","aria-label":"Toggle navigation"},[(0,s.Lk)("span",{class:"navbar-toggler-icon"})],-1)),(0,s.Lk)("div",l,[e[1]||(e[1]=(0,s.Lk)("div",{class:"navbar-nav me-auto"},null,-1)),(0,s.Lk)("div",d,[(0,s.bF)(p,{class:"d-none d-sm-block"})])]),(0,s.bF)(p,{class:"d-block d-sm-none ms-3"})])])}r(4114);var p=r(4232);const g={class:"fas fa-shopping-cart"},m={key:0,class:"badge badge-pill"};function f(t,e,r,n,a,o){const c=(0,s.g2)("router-link");return(0,s.uX)(),(0,s.Wv)(c,{class:"mx-0 mx-sm-2 my-2 my-sm-0",to:"/cart"},{default:(0,s.k6)(()=>[(0,s.Lk)("i",g,[t.$store.getters.numberOfItemsInCart?((0,s.uX)(),(0,s.CE)("span",m,(0,p.v_)(t.$store.getters.numberOfItemsInCart),1)):(0,s.Q3)("",!0)])]),_:1})}var v=(0,s.pM)({data(){const t=10;return{numberOfItems:t}}}),b=r(1241);const k=(0,b.A)(v,[["render",f],["__scopeId","data-v-7962ddac"]]);var y=k,C=(0,s.pM)({components:{CartIcon:y},methods:{handleLogout(){this.$store.dispatch("logout").then(()=>{this.$router.push("/login")})}}});const A=(0,b.A)(C,[["render",h]]);var _=A,L=_,w=r(4509),I=r(9042),E=(0,s.pM)({name:"App",components:{Navbar:L,Spinner:w.A,Center:I.A}});const x=(0,b.A)(E,[["render",o]]);var S=x,F=(r(8111),r(8237),r(3110),r(8335),r(782)),O=r(1114),P=r(4373),$=r(6596);P.A.defaults.baseURL={NODE_ENV:"production",BASE_URL:"/"}.VUE_APP_API_URL;class j{static async getCsrfToken(t=!0){const e=(0,$.q)(document.cookie);return e["mock_store_csrftoken"]?e["mock_store_csrftoken"]:t?(await this.get("/csrf/"),this.getCsrfToken(!1)):Promise.reject("No CSRF token found")}static async getHeaders(t={}){return Object.assign({"X-CSRFTOKEN":await this.getCsrfToken()},t)}static get(t,e){return P.A.get(t,{params:e}).then(t=>t.data)}static async post(t,e){return P.A.post(t,e,{headers:await this.getHeaders()}).then(t=>t.data)}static async put(t,e){return P.A.put(t,e,{headers:await this.getHeaders()}).then(t=>t.data)}static async delete(t,e){return P.A.delete(t,{headers:await this.getHeaders(),data:e}).then(t=>t.data)}}(0,O.A)(j,"csrf_token",void 0);var q=j;const T=JSON.parse(localStorage.getItem("cart")||"{}");function X(t){return"_"+t.id.toString()}const M=(0,F.y$)({state:{cart:T,auth:{checked:!1,isLoggedIn:!1}},getters:{cartAsArray:t=>Object.values(t.cart),numberOfItemsInCart:t=>Object.values(t.cart).reduce((t,e)=>t+e.quantity,0),cartTotal:t=>Object.values(t.cart).reduce((t,e)=>t+e.quantity*e.product.price,0),userFullname:t=>t.auth.user?t.auth.user.first_name+" "+t.auth.user.last_name:""},mutations:{addToCart(t,e){t.cart[X(e)]?t.cart[X(e)].quantity++:t.cart[X(e)]={product:e,quantity:1}},removeFromCart(t,e){delete t.cart[X(e)]},setAuthChecked(t,e){t.auth.checked=e},setAuthLoggedIn(t,e){t.auth.isLoggedIn=e},setAuthUser(t,e){t.auth.user=e}},actions:{async checkAuth({commit:t}){const e=await q.get("/auth/whoami/").catch(t=>{if(t.response&&403===t.response.status)return null});t("setAuthChecked",!0),t("setAuthLoggedIn",!!e),t("setAuthUser",e)},login({commit:t},e){return q.post("/auth/login/",e).then(e=>(t("setAuthLoggedIn",!0),t("setAuthUser",e),e))},logout({commit:t}){return q.post("/auth/logout/").then(()=>{t("setAuthLoggedIn",!1),t("setAuthUser",null),q.csrf_token=""})},changePassword({commit:t},e){return q.post("/auth/change-password/",e).then(e=>(t("setAuthLoggedIn",!1),t("setAuthUser",null),q.csrf_token="",e))}},modules:{}});M.dispatch("checkAuth"),M.subscribe((t,e)=>{localStorage.setItem("cart",JSON.stringify(e.cart))});var N=M,U=r(8728);const R={class:"container d-flex flex-column h-100"},W={class:"row flex-fill"},z={class:"col-12 col-lg-9"},B={class:"d-flex flex-column h-100"},H={class:"flex-fill"},K={key:0,class:"d-flex align-items-center justify-content-center h-100"},Q={class:"col-12 col-lg-3 my-3 my-lg-0"};function D(t,e,r,n,a,o){const c=(0,s.g2)("Products"),i=(0,s.g2)("Pagination"),u=(0,s.g2)("Search"),l=(0,s.g2)("CartCard"),d=(0,s.g2)("Filters");return(0,s.uX)(),(0,s.CE)("div",R,[e[3]||(e[3]=(0,s.Lk)("div",{class:"row"},[(0,s.Lk)("div",{class:"col-12 col-lg-9"},[(0,s.Lk)("h1",{class:"text-center mb-3"},"Каталог")])],-1)),(0,s.Lk)("div",W,[(0,s.Lk)("div",z,[(0,s.Lk)("div",B,[(0,s.Lk)("div",H,[t.loading?((0,s.uX)(),(0,s.CE)("div",K,[...e[0]||(e[0]=[(0,s.Lk)("div",{class:"spinner-wrapper"},[(0,s.Lk)("div",{class:"spinner-border",role:"status"},[(0,s.Lk)("span",{class:"visually-hidden"},"Загрузка...")])],-1)])])):((0,s.uX)(),(0,s.Wv)(c,{key:1,products:t.products},null,8,["products"]))]),(0,s.Lk)("div",null,[(0,s.bF)(i,{products:t.products,onPageChange:t.fetchProducts},null,8,["products","onPageChange"])])])]),(0,s.Lk)("div",Q,[(0,s.bF)(u,{onSearch:t.handleSearch,query:t.search_query},null,8,["onSearch","query"]),e[1]||(e[1]=(0,s.Lk)("br",null,null,-1)),(0,s.bF)(l),e[2]||(e[2]=(0,s.Lk)("br",null,null,-1)),(0,s.bF)(d,{onChange:t.handleFiltersChange},null,8,["onChange"])])])])}const J={key:0,class:"grid"},V={key:1,class:"text-center mt-4"};function G(t,e,r,n,a,o){const c=(0,s.g2)("Product");return t.products.results.length?((0,s.uX)(),(0,s.CE)("div",J,[((0,s.uX)(!0),(0,s.CE)(s.FK,null,(0,s.pI)(t.products.results,(t,e)=>((0,s.uX)(),(0,s.Wv)(c,{key:e,product:t},null,8,["product"]))),128))])):((0,s.uX)(),(0,s.CE)("div",V,[...e[0]||(e[0]=[(0,s.Lk)("h3",{class:"text-secondary"},"Продукты не найдены",-1)])]))}const Y={class:"card"},Z=["src","alt"],tt={class:"card-body"},et={class:"card-title"},rt={class:"card-subtitle fw-bold"},nt={class:"card-text"};function st(t,e,r,n,a,o){return(0,s.uX)(),(0,s.CE)("div",Y,[(0,s.Lk)("img",{src:t.product.image,class:"card-img-top",alt:`Изображение "${t.product.name}"`},null,8,Z),(0,s.Lk)("div",tt,[(0,s.Lk)("h5",et,(0,p.v_)(t.product.name),1),(0,s.Lk)("h6",rt,"$"+(0,p.v_)(t.product.price),1),(0,s.Lk)("p",nt,(0,p.v_)(t.product.description),1),(0,s.Lk)("button",{onClick:e[0]||(e[0]=(...e)=>t.addToCart&&t.addToCart(...e)),class:"btn btn-primary"},"Добавить в корзину")])])}class at{constructor(t){(0,O.A)(this,"id",void 0),(0,O.A)(this,"name",void 0),(0,O.A)(this,"price",void 0),(0,O.A)(this,"description",void 0),(0,O.A)(this,"image",void 0),this.id=t.id,this.name=t.name,this.price=t.price,this.description=t.description,this.image=t.image}}var ot=(0,s.pM)({name:"Product",props:{product:{type:at,required:!0}},methods:{addToCart(){this.$store.commit("addToCart",this.product)}}});const ct=(0,b.A)(ot,[["render",st],["__scopeId","data-v-ce16fffa"]]);var it=ct,ut=(0,s.pM)({name:"Products",components:{Product:it},props:{products:{type:Object,required:!0}}});const lt=(0,b.A)(ut,[["render",G],["__scopeId","data-v-2ded20a0"]]);var dt=lt;function ht(t,e,r,n,s,a){return null}var pt=(0,s.pM)({props:{products:{type:Object,required:!0}},emits:["pageChange"],methods:{setPage(t){t>0&&t<=this.products.total_pages&&(this.products.current_page=t,this.$emit("pageChange",t))},handleBur(t){const e=t.target;this.setPage(Number(e.value)),e.value=this.products.current_page.toString()}}});const gt=(0,b.A)(pt,[["render",ht],["__scopeId","data-v-7fe641d6"]]);var mt=gt;function ft(t,e,r,n,s,a){return null}const vt=1e3;function bt(t,e){let r=null;return(...n)=>{r&&clearTimeout(r),r=setTimeout(()=>t(...n),e)}}var kt=(0,s.pM)({name:"Search",data(){return{search_debouncer:bt(t=>this.$emit("search",t.trim()),vt)}},props:{query:{type:String,default:""}},emits:["search"]});const yt=(0,b.A)(kt,[["render",ft]]);var Ct=yt;const At={class:"card"},_t={class:"list-group list-group-flush"},Lt={class:"list-group-item"},wt={key:0,class:"list-group-item list-bottom"},It={class:"list-group-item list-bottom"},Et={class:"col"},xt=["disabled"];function St(t,e,r,n,a,o){const c=(0,s.g2)("router-link"),i=(0,s.g2)("CartCardRow");return(0,s.uX)(),(0,s.CE)("div",At,[(0,s.Lk)("ul",_t,[(0,s.Lk)("li",Lt,[(0,s.bF)(c,{class:"cart-link",to:"/cart"},{default:(0,s.k6)(()=>[...e[0]||(e[0]=[(0,s.Lk)("h4",{class:"card-title mt-1 mb-3"},"Корзина",-1)])]),_:1})]),((0,s.uX)(!0),(0,s.CE)(s.FK,null,(0,s.pI)(t.$store.getters.cartAsArray,(t,e)=>((0,s.uX)(),(0,s.Wv)(i,{key:e,cartItem:t},null,8,["cartItem"]))),128)),t.$store.getters.cartAsArray.length?(0,s.Q3)("",!0):((0,s.uX)(),(0,s.CE)("li",wt,[...e[1]||(e[1]=[(0,s.Lk)("p",{class:"text-center m-0"},"Корзина пуста",-1)])])),(0,s.Lk)("li",It,[(0,s.Lk)("span",Et,[e[2]||(e[2]=(0,s.eW)("Итого: ",-1)),(0,s.Lk)("strong",null,"$"+(0,p.v_)(t.$store.getters.cartTotal),1)]),(0,s.bF)(c,{class:"cart-link",to:"/cart"},{default:(0,s.k6)(()=>[(0,s.Lk)("button",{class:"btn btn-primary",disabled:!t.$store.getters.numberOfItemsInCart},"Оформить",8,xt)]),_:1})])])])}const Ft={class:"right-section"},Ot={key:1,class:"bg-primary quantity"};function Pt(t,e,r,n,a,o){return(0,s.uX)(),(0,s.CE)("li",{class:"list-group-item d-flex justify-content-between align-items-center",onMouseenter:e[1]||(e[1]=e=>t.hovering=!0),onMouseleave:e[2]||(e[2]=e=>t.hovering=!1)},[(0,s.Lk)("span",null,(0,p.v_)(t.cartItem.product.name),1),(0,s.Lk)("div",Ft,[t.hovering?((0,s.uX)(),(0,s.CE)("button",{key:0,onClick:e[0]||(e[0]=(...e)=>t.removeFromCart&&t.removeFromCart(...e)),class:"btn btn-close"})):(0,s.Q3)("",!0),t.hovering?(0,s.Q3)("",!0):((0,s.uX)(),(0,s.CE)("span",Ot,(0,p.v_)(t.cartItem.quantity),1))])],32)}var $t=(0,s.pM)({name:"CartCardRow",props:{cartItem:{type:Object,required:!0}},data(){return{hovering:!1}},methods:{removeFromCart(){this.$store.commit("removeFromCart",this.$props.cartItem.product)}}});const jt=(0,b.A)($t,[["render",Pt],["__scopeId","data-v-0ef250f5"]]);var qt=jt,Tt=(0,s.pM)({name:"CartCard",components:{CartCardRow:qt}});const Xt=(0,b.A)(Tt,[["render",St],["__scopeId","data-v-42d0b32e"]]);var Mt=Xt;function Nt(t,e,r,n,s,a){return null}r(2489),r(1701);class Ut{get(t,e){return q.get(`${this.path}/${t}`,e).then(t=>new this.resource(t))}post(t){return q.post(`${this.path}/`,t)}put(t,e){return q.put(`${this.path}/${t}`,e)}delete(t){return q.delete(`${this.path}/${t}`)}}var Rt=Ut;class Wt extends Rt{query(t){return q.get(`${this.path}/`,t).then(t=>t.map(t=>new this.resource(t)))}}var zt=Wt;class Bt{constructor(t){(0,O.A)(this,"id",void 0),(0,O.A)(this,"name",void 0),(0,O.A)(this,"description",void 0),this.id=t.id,this.name=t.name,this.description=t.description}}class Ht extends zt{constructor(...t){super(...t),(0,O.A)(this,"resource",Bt),(0,O.A)(this,"path","categories")}}var Kt=Ht;const Qt=new Kt;var Dt=(0,s.pM)({name:"Filters",created(){this.fetchCategories()},data(){const t=[],e=[];return{categories:t,loading:!0,selected:e}},emits:["change"],methods:{async fetchCategories(){this.loading=!0,this.categories=await Qt.query(),this.loading=!1},handleChange(t){const e=t.target,r=parseInt(e.value);e.checked?this.selected.push(r):this.selected=this.selected.filter(t=>t!==r),this.$emit("change",this.selected)}}});const Jt=(0,b.A)(Dt,[["render",Nt]]);var Vt=Jt;class Gt{constructor(t,e){(0,O.A)(this,"count",void 0),(0,O.A)(this,"total_pages",void 0),(0,O.A)(this,"current_page",void 0),(0,O.A)(this,"next",void 0),(0,O.A)(this,"previous",void 0),(0,O.A)(this,"results",void 0),this.count=t.count,this.total_pages=t.total_pages,this.current_page=t.current_page,this.next=t.next,this.previous=t.previous,this.results=t.results.map(t=>new e(t))}static empty(t){return new Gt({count:0,total_pages:0,current_page:1,next:null,previous:null,results:[]},t)}}var Yt=Gt;class Zt extends Rt{query(t){return q.get(`${this.path}/`,t).then(t=>new Yt(t,this.resource))}}var te=Zt;class ee extends te{constructor(...t){super(...t),(0,O.A)(this,"resource",at),(0,O.A)(this,"path","products")}}var re=ee;const ne=new re,se=12;var ae=(0,s.pM)({name:"Catalog",components:{Products:dt,Pagination:mt,Search:Ct,CartCard:Mt,Filters:Vt},data(){const t=Yt.empty(at),e=[];return{products:t,categories_filter:e,search_query:"",loading:!0}},created(){this.fetchProducts()},methods:{fetchProducts(t){return t=t||this.products.current_page,this.loading=!0,ne.query({page:t,size:se,categories:this.categories_filter,search:this.search_query||void 0}).then(t=>{this.products=t,this.loading=!1})},handleSearch(t){this.search_query=t,this.products.current_page=1,this.fetchProducts()},handleFiltersChange(t){this.categories_filter=t,this.products.current_page=1,this.fetchProducts()}}});const oe=(0,b.A)(ae,[["render",D],["__scopeId","data-v-0ac8ae8f"]]);var ce=oe;const ie=[{path:"/",redirect:"/catalog"},{path:"/catalog",name:"Catalog",component:ce},{path:"/cart",name:"Cart",component:()=>r.e(949).then(r.bind(r,7574))},{path:"/login",name:"Login",component:()=>r.e(966).then(r.bind(r,2011))},{path:"/profile",name:"Profile",component:()=>r.e(693).then(r.bind(r,333))},{path:"/:pathMatch(.*)*",name:"404",component:()=>r.e(389).then(r.bind(r,6848))}],ue=(0,U.aE)({history:(0,U.LA)("/"),routes:ie});var le=ue;(0,n.Ef)(S).use(le).use(N).mount("#app")},9042:function(t,e,r){r.d(e,{A:function(){return u}});var n=r(6768);const s={class:"d-flex justify-content-center align-items-center"};function a(t,e,r,a,o,c){return(0,n.uX)(),(0,n.CE)("div",s,[(0,n.RG)(t.$slots,"default")])}var o=(0,n.pM)({name:"Center"}),c=r(1241);const i=(0,c.A)(o,[["render",a]]);var u=i}},e={};function r(n){var s=e[n];if(void 0!==s)return s.exports;var a=e[n]={exports:{}};return t[n].call(a.exports,a,a.exports,r),a.exports}r.m=t,function(){var t=[];r.O=function(e,n,s,a){if(!n){var o=1/0;for(l=0;l=a)&&Object.keys(r.O).every(function(t){return r.O[t](n[i])})?n.splice(i--,1):(c=!1,a0&&t[l-1][2]>a;l--)t[l]=t[l-1];t[l]=[n,s,a]}}(),function(){r.n=function(t){var e=t&&t.__esModule?function(){return t["default"]}:function(){return t};return r.d(e,{a:e}),e}}(),function(){r.d=function(t,e){for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})}}(),function(){r.f={},r.e=function(t){return Promise.all(Object.keys(r.f).reduce(function(e,n){return r.f[n](t,e),e},[]))}}(),function(){r.u=function(t){return"js/"+{389:"404",693:"me",949:"cart",966:"login"}[t]+"."+{389:"a2a0363d",693:"7e76ccac",949:"99dd9f54",966:"d9aeffc0"}[t]+".js"}}(),function(){r.miniCssF=function(t){return"css/"+{693:"me",966:"login"}[t]+"."+{693:"14a757da",966:"abf22eac"}[t]+".css"}}(),function(){r.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"===typeof window)return window}}()}(),function(){r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)}}(),function(){var t={},e="momo-store:";r.l=function(n,s,a,o){if(t[n])t[n].push(s);else{var c,i;if(void 0!==a)for(var u=document.getElementsByTagName("script"),l=0;l