@perevorot/shop 2.0.67 → 2.0.69
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("vue"),t=require("vuex"),r=require("@perevorot/shop/dist/api"),n=require("simplebar"),o=require("secure-ls");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=a(n),c=a(o);var i=e.defineComponent({name:"search",props:{q:{type:String,default:""},placeholder:{type:String,default:""},parameter:{type:String,default:"/q{separator}"}},setup:function(n){var o=new c.default({isCompression:!1}),a=n.q;if(a){var i=document.createElement("textarea");i.innerHTML=a,a=i.value}var s=e.ref(!1),u=e.ref(a),d=e.ref([]),p=e.ref([]),m=e.ref(0),v=e.ref(-1),h=e.ref(!1),f=e.ref(),y=e.ref(""),g=e.ref(),k=e.ref(o.get("search")),E=e.ref([]),w=t.useStore(),V=e.computed((function(){return w.getters["auth/me"]})),N=[],B=function(){clearTimeout(void 0),v.value=-1,u.value.trim()?(s.value=!0,u.value.trim()&&r.shop.search(u.value).then((function(e){e.data&&(_(),d.value=e.data.products,m.value=e.data.total,y.value=e.data.separator,p.value=e.data.byCategory,new l.default(g.value))})).finally((function(){s.value=!1}))):(d.value=[],s.value=!1)},_=function(){if(u.value.length>1){var e=o.get("search")?o.get("search"):[];-1!==e.indexOf(u.value)&&(e=e.filter((function(e){return e!==u.value}))),e.length>4&&(e=e.slice(0,4)),e.unshift(u.value),o.set("search",e),k.value=e}};e.onBeforeUpdate((function(){N=[]})),e.watch((function(){return u.value}),(function(){h.value=!0,v.value=-1,B()}));var C=e.computed((function(){return u.value?$env.locale.url+"/search"+S.value:$env.locale.url+"/search"})),S=e.computed((function(){return n.parameter.replace("{separator}",y.value)+u.value.toLowerCase()})),D=function(e){e.target.closest(".cart")||(h.value=!1,v.value=-1)};window.addEventListener("click",D);var L,q=e.computed((function(){return u.value.length>3?E.value.filter((function(e){return-1!==e.search.indexOf(u.value)})):[]})),x=(L=function(){var e,t,r,o=document.getElementById("menu");return o&&o.querySelectorAll("[data-search]").forEach((function(e){var t=e.textContent.trim(),r=e.dataset.search;E.value.push({name:(r?r+" / ":"")+t,search:t.toLowerCase(),href:e.closest("a").href})})),n.q&&B(),r?t?t(e):e:(e&&e.then||(e=Promise.resolve(e)),t?e.then(t):e)},function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];try{return Promise.resolve(L.apply(this,e))}catch(e){return Promise.reject(e)}});return document.addEventListener("DOMContentLoaded",x,!1),{isLoading:s,term:u,results:d,next:function(){v.value<d.value.length-1&&v.value++},prev:function(){v.value>=0&&v.value--},current:v,add:function(e){v.value>=0&&(e.preventDefault(),N[v.value].add())},cartRefs:function(e){e&&N.push(e)},isDropdown:h,preventCaret:function(e){(38==e.which||40==e.which||32==e.which&&v.value>=0)&&e.preventDefault()},esc:function(e){f.value.blur(),D(e)},input:f,dropdown:function(){h.value=!0,v.value=-1},total:m,searchUrl:C,searchHrefWithParameter:S,open:function(){v.value>=0?window.location.href=d.value[v.value].href:window.location.href=C.value},categories:q,byCategory:p,dropdownContent:g,history:k,clearSearchHistory:function(e){o.remove("search"),k.value=[],f.value.focus()},setSearchHistory:function(e){e.value=e},user:V}}}),s={class:"dropdown-trigger"},u=["placeholder"],d={class:"icon is-small is-right"},p=[e.createElementVNode("i",{class:"fas fa-search"},null,-1)],m={key:0,class:"dropdown-menu"},v={class:"dropdown-content"},h={class:"history-list"},f={class:"dropdown-item history-list-title"},y=["onClick"],g={class:"dropdown-item history-list-clear"},k={class:"dropdown-menu"},E={class:"dropdown-content",style:{"max-height":"600px",overflow:"auto"},ref:"dropdownContent"},w={key:0,class:"results-list"},V=["href"],N={key:0,class:"dropdown-divider"},B={key:1,class:"results-list-category"},_={class:"dropdown-item categories-list-title"},C=["href"],S={key:2,class:"results-list-total"},D={class:"dropdown-item mb-3 mt-2"},L=e.createElementVNode("br",null,null,-1),q=["href"],x={key:3,class:"products-list"},b={class:"dropdown-item products-list-title"},H={class:"columns"},T={class:"column"},K={class:"title"},M=["href"],P=["innerHTML"],F={key:0,class:"price_old"},R=["innerHTML"],U={class:"code"},$={key:1,class:"quantity"},z={key:2,class:"no-quantity"},O={key:0,class:"column is-narrow"},j={key:1,class:"column is-eol"},W={key:0,class:"dropdown-content"},A={class:"dropdown-item"},I={class:"no-results"};i.render=function(t,r,n,o,a,l){var c=e.resolveComponent("cart-add");return e.openBlock(),e.createElementBlock("div",{class:"shop-search",onClick:r[10]||(r[10]=function(e){return e.stopPropagation()})},[e.createElementVNode("div",{class:e.normalizeClass(["dropdown",{"is-active":t.isDropdown,"is-dropdown-visible":t.isDropdown&&(t.history.length&&!t.term||t.results.length||t.categories.length||t.term&&!t.isLoading&&!t.results.length&&!t.categories.length)}])},[e.createElementVNode("div",{class:"overlay search-overlay",onClick:r[0]||(r[0]=function(e){return t.esc(e)})}),e.createElementVNode("div",s,[e.createElementVNode("div",{class:e.normalizeClass(["control has-icons-right",{"is-loading":t.isLoading}])},[e.withDirectives(e.createElementVNode("input",{class:"input",type:"text","onUpdate:modelValue":r[1]||(r[1]=function(e){return t.term=e}),ref:"input",placeholder:t.placeholder,onKeyup:[r[2]||(r[2]=e.withKeys((function(){return t.next&&t.next.apply(t,arguments)}),["arrow-down"])),r[3]||(r[3]=e.withKeys((function(){return t.prev&&t.prev.apply(t,arguments)}),["arrow-up"])),r[4]||(r[4]=e.withKeys((function(e){return t.add(e)}),["space"])),r[5]||(r[5]=e.withKeys((function(){return t.open&&t.open.apply(t,arguments)}),["enter"])),r[6]||(r[6]=e.withKeys((function(e){return t.esc(e)}),["esc"]))],onClick:r[7]||(r[7]=function(){return t.dropdown&&t.dropdown.apply(t,arguments)}),onKeydown:r[8]||(r[8]=function(e){return t.preventCaret(e)})},null,40,u),[[e.vModelText,t.term]]),e.renderSlot(t.$slots,"icon",{isLoading:t.isLoading},(function(){return[e.withDirectives(e.createElementVNode("span",d,p,512),[[e.vShow,!t.isLoading]])]}))],2)]),t.isDropdown&&t.history.length&&!t.term?(e.openBlock(),e.createElementBlock("div",m,[e.createElementVNode("div",v,[e.createElementVNode("div",h,[e.createElementVNode("div",f,[e.createElementVNode("p",null,e.toDisplayString(t.__("shop.search.history")),1)]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.history,(function(r,n){return e.openBlock(),e.createElementBlock("div",{class:"dropdown-item",key:n},[e.createElementVNode("a",{onClick:function(e){return t.term=r}},e.toDisplayString(r),9,y)])})),128)),e.createElementVNode("div",g,[e.createElementVNode("a",{onClick:r[9]||(r[9]=function(e){return t.clearSearchHistory(e)})},e.toDisplayString(t.__("shop.search.history_clear")),1)])])])])):e.createCommentVNode("v-if",!0),e.withDirectives(e.createElementVNode("div",k,[e.withDirectives(e.createElementVNode("div",E,[t.categories.length?(e.openBlock(),e.createElementBlock("div",w,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.categories,(function(t,r){return e.openBlock(),e.createElementBlock("div",{class:"dropdown-item",key:r},[e.createElementVNode("div",null,[e.createElementVNode("a",{href:t.href},e.toDisplayString(t.name),9,V)])])})),128)),t.byCategory.length?(e.openBlock(),e.createElementBlock("hr",N)):e.createCommentVNode("v-if",!0)])):e.createCommentVNode("v-if",!0),t.byCategory.length?(e.openBlock(),e.createElementBlock("div",B,[e.createElementVNode("div",_,e.toDisplayString(t.__("shop.search.categories")),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.byCategory,(function(r,n){return e.openBlock(),e.createElementBlock("div",{class:"dropdown-item",key:n},[e.createElementVNode("div",null,[e.createElementVNode("a",{href:r.href+t.searchHrefWithParameter},e.toDisplayString(r.name),9,C)]),e.createElementVNode("div",null,e.toDisplayString(t.__("shop.search.category_found",{count:r.count})),1)])})),128))])):e.createCommentVNode("v-if",!0),t.total?(e.openBlock(),e.createElementBlock("div",S,[e.createElementVNode("p",D,[e.createTextVNode(e.toDisplayString(t.__("shop.search.total_found",{total:t.total}))+" ",1),L,e.createElementVNode("a",{href:t.searchUrl},e.toDisplayString(t.__("shop.search.open_results")),9,q)])])):e.createCommentVNode("v-if",!0),t.results.length?(e.openBlock(),e.createElementBlock("div",x,[e.createElementVNode("div",b,e.toDisplayString(t.__("shop.search.products")),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.results,(function(r,n){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["dropdown-item",{"is-active":t.current==n}]),key:r.id},[e.renderSlot(t.$slots,"item",{user:t.user,item:r,cartRefs:t.cartRefs},(function(){return[e.createElementVNode("div",H,[e.createElementVNode("div",T,[e.createElementVNode("div",K,[e.createElementVNode("a",{href:r.href},e.toDisplayString(r.name),9,M)]),e.createElementVNode("div",{class:"price",innerHTML:r.price},null,8,P),r.price_old?(e.openBlock(),e.createElementBlock("div",F,[e.createElementVNode("span",{innerHTML:r.price_old},null,8,R)])):e.createCommentVNode("v-if",!0),e.createElementVNode("div",U,e.toDisplayString(r.code),1),r.quantity?(e.openBlock(),e.createElementBlock("div",$,e.toDisplayString(t.__("shop.search.in_stock")),1)):(e.openBlock(),e.createElementBlock("span",z,e.toDisplayString(t.__("shop.search.out_stock")),1))]),r.is_eol?(e.openBlock(),e.createElementBlock("div",j,e.toDisplayString(t.__("shop.search.eol")),1)):(e.openBlock(),e.createElementBlock("div",O,[e.createVNode(c,{id:r.id,"is-change-quantity":!1,"is-already-in-cart":!1,ref_for:!0,ref:t.cartRefs},null,8,["id"])]))])]}))],2)})),128))])):e.createCommentVNode("v-if",!0)],512),[[e.vShow,t.results.length||t.categories.length]]),t.isLoading||t.results.length||t.categories.length?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("div",W,[e.createElementVNode("div",A,[e.createElementVNode("div",I,e.toDisplayString(t.__("shop.search.no_results")),1)])]))],512),[[e.vShow,t.results.length||t.term]])],2)])},module.exports=i;
|
|
1
|
+
"use strict";var e=require("vue"),t=require("vuex"),r=require("@perevorot/shop/dist/api"),n=require("simplebar"),o=require("secure-ls");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=a(n),c=a(o);var i=e.defineComponent({name:"search",props:{q:{type:String,default:""},placeholder:{type:String,default:""},parameter:{type:String,default:"/q{separator}"}},setup:function(n){var o=new c.default({isCompression:!1}),a=n.q;if(a){var i=document.createElement("textarea");i.innerHTML=a,a=i.value}var s=e.ref(!1),u=e.ref(a),d=e.ref([]),p=e.ref([]),m=e.ref(0),v=e.ref(-1),h=e.ref(!1),f=e.ref(),y=e.ref(""),g=e.ref(),k=e.ref(o.get("search")),E=e.ref([]),w=t.useStore(),V=e.computed((function(){return w.getters["auth/me"]})),N=[],B=function(){clearTimeout(void 0),v.value=-1,u.value.trim()?(s.value=!0,u.value.trim()&&r.shop.search(u.value).then((function(e){e.data&&(_(),d.value=e.data.products,m.value=e.data.total,y.value=e.data.separator,p.value=e.data.byCategory,new l.default(g.value))})).finally((function(){s.value=!1}))):(d.value=[],s.value=!1)},_=function(){if(u.value.length>1){var e=o.get("search")?o.get("search"):[];-1!==e.indexOf(u.value)&&(e=e.filter((function(e){return e!==u.value}))),e.length>4&&(e=e.slice(0,4)),e.unshift(u.value),o.set("search",e),k.value=e}};e.onBeforeUpdate((function(){N=[]})),e.watch((function(){return u.value}),(function(){h.value=!0,v.value=-1,B()}));var C=e.computed((function(){return u.value?$env.locale.url+"/search"+S.value:$env.locale.url+"/search"})),S=e.computed((function(){return n.parameter.replace("{separator}",y.value)+u.value.toLowerCase()})),D=function(e){e.target.closest(".cart")||(h.value=!1,v.value=-1)};window.addEventListener("click",D);var L,q=e.computed((function(){return u.value.length>3?E.value.filter((function(e){return-1!==e.search.indexOf(u.value)})):[]})),x=(L=function(){var e,t,r,o=document.getElementById("menu");return o&&o.querySelectorAll("[data-search]").forEach((function(e){var t=e.textContent.trim(),r=e.dataset.search;E.value.push({name:(r?r+" / ":"")+t,search:t.toLowerCase(),href:e.closest("a").href})})),n.q&&B(),r?t?t(e):e:(e&&e.then||(e=Promise.resolve(e)),t?e.then(t):e)},function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];try{return Promise.resolve(L.apply(this,e))}catch(e){return Promise.reject(e)}});return document.addEventListener("DOMContentLoaded",x,!1),{isLoading:s,term:u,results:d,next:function(){v.value<d.value.length-1&&v.value++},prev:function(){v.value>=0&&v.value--},current:v,add:function(e){v.value>=0&&(e.preventDefault(),N[v.value].add())},cartRefs:function(e){e&&N.push(e)},isDropdown:h,preventCaret:function(e){(38==e.which||40==e.which||32==e.which&&v.value>=0)&&e.preventDefault()},esc:function(e){f.value.blur(),D(e)},input:f,dropdown:function(){h.value=!0,v.value=-1},total:m,searchUrl:C,searchHrefWithParameter:S,open:function(){v.value>=0?window.location.href=d.value[v.value].href:window.location.href=C.value},categories:q,byCategory:p,dropdownContent:g,history:k,clearSearchHistory:function(e){o.remove("search"),k.value=[],f.value.focus()},setSearchHistory:function(e){e.value=e},user:V}}}),s={class:"dropdown-trigger"},u=["placeholder"],d={class:"icon is-small is-right"},p=[e.createElementVNode("i",{class:"fas fa-search"},null,-1)],m={key:0,class:"dropdown-menu"},v={class:"dropdown-content"},h={class:"history-list"},f={class:"dropdown-item history-list-title"},y=["onClick"],g={class:"dropdown-item history-list-clear"},k={class:"dropdown-menu"},E={class:"dropdown-content",style:{"max-height":"600px",overflow:"auto"},ref:"dropdownContent"},w={key:0,class:"results-list"},V=["href"],N={key:0,class:"dropdown-divider"},B={key:1,class:"results-list-category"},_={class:"dropdown-item categories-list-title"},C=["href"],S={key:2,class:"results-list-total"},D={class:"dropdown-item mb-3 mt-2"},L=e.createElementVNode("br",null,null,-1),q=["href"],x={key:3,class:"products-list"},H={class:"dropdown-item products-list-title"},b={class:"columns"},P={class:"column"},T={class:"title"},K=["href"],M=["innerHTML"],$={key:0,class:"price_old"},F=["innerHTML"],R={class:"code"},U={key:1,class:"quantity"},W={key:2,class:"no-quantity"},z={key:0,class:"column is-narrow"},O={key:1,class:"column is-eol"},j={key:0,class:"dropdown-content"},A={class:"dropdown-item"},I={class:"no-results"};i.render=function(t,r,n,o,a,l){var c=e.resolveComponent("cart-add");return e.openBlock(),e.createElementBlock("div",{class:"shop-search",onClick:r[10]||(r[10]=function(e){return e.stopPropagation()})},[e.createElementVNode("div",{class:e.normalizeClass(["dropdown",{"is-active":t.isDropdown,"is-dropdown-visible":t.isDropdown&&(t.history.length&&!t.term||t.results.length||t.categories.length||t.term&&!t.isLoading&&!t.results.length&&!t.categories.length)}])},[e.createElementVNode("div",{class:"overlay search-overlay",onClick:r[0]||(r[0]=function(e){return t.esc(e)})}),e.createElementVNode("div",s,[e.createElementVNode("div",{class:e.normalizeClass(["control has-icons-right",{"is-loading":t.isLoading}])},[e.withDirectives(e.createElementVNode("input",{class:"input",type:"text","onUpdate:modelValue":r[1]||(r[1]=function(e){return t.term=e}),ref:"input",placeholder:t.placeholder,onKeyup:[r[2]||(r[2]=e.withKeys((function(){return t.next&&t.next.apply(t,arguments)}),["arrow-down"])),r[3]||(r[3]=e.withKeys((function(){return t.prev&&t.prev.apply(t,arguments)}),["arrow-up"])),r[4]||(r[4]=e.withKeys((function(e){return t.add(e)}),["space"])),r[5]||(r[5]=e.withKeys((function(){return t.open&&t.open.apply(t,arguments)}),["enter"])),r[6]||(r[6]=e.withKeys((function(e){return t.esc(e)}),["esc"]))],onClick:r[7]||(r[7]=function(){return t.dropdown&&t.dropdown.apply(t,arguments)}),onKeydown:r[8]||(r[8]=function(e){return t.preventCaret(e)})},null,40,u),[[e.vModelText,t.term]]),e.renderSlot(t.$slots,"icon",{isLoading:t.isLoading},(function(){return[e.withDirectives(e.createElementVNode("span",d,p,512),[[e.vShow,!t.isLoading]])]}))],2)]),t.isDropdown&&t.history.length&&!t.term?(e.openBlock(),e.createElementBlock("div",m,[e.createElementVNode("div",v,[e.createElementVNode("div",h,[e.createElementVNode("div",f,[e.createElementVNode("p",null,e.toDisplayString(t.__("shop.search.history")),1)]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.history,(function(r,n){return e.openBlock(),e.createElementBlock("div",{class:"dropdown-item",key:n},[e.createElementVNode("a",{onClick:function(e){return t.term=r}},e.toDisplayString(r),9,y)])})),128)),e.createElementVNode("div",g,[e.createElementVNode("a",{onClick:r[9]||(r[9]=function(e){return t.clearSearchHistory(e)})},e.toDisplayString(t.__("shop.search.history_clear")),1)])])])])):e.createCommentVNode("v-if",!0),e.withDirectives(e.createElementVNode("div",k,[e.withDirectives(e.createElementVNode("div",E,[t.categories.length?(e.openBlock(),e.createElementBlock("div",w,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.categories,(function(t,r){return e.openBlock(),e.createElementBlock("div",{class:"dropdown-item",key:r},[e.createElementVNode("div",null,[e.createElementVNode("a",{href:t.href},e.toDisplayString(t.name),9,V)])])})),128)),t.byCategory.length?(e.openBlock(),e.createElementBlock("hr",N)):e.createCommentVNode("v-if",!0)])):e.createCommentVNode("v-if",!0),t.byCategory.length?(e.openBlock(),e.createElementBlock("div",B,[e.createElementVNode("div",_,e.toDisplayString(t.__("shop.search.categories")),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.byCategory,(function(r,n){return e.openBlock(),e.createElementBlock("div",{class:"dropdown-item",key:n},[e.renderSlot(t.$slots,"item-category",{item:r,searchHrefWithParameter:t.searchHrefWithParameter},(function(){return[e.createElementVNode("div",null,[e.createElementVNode("a",{href:r.href+t.searchHrefWithParameter},e.toDisplayString(r.name),9,C)]),e.createElementVNode("div",null,e.toDisplayString(t.__("shop.search.category_found",{count:r.count})),1)]}))])})),128))])):e.createCommentVNode("v-if",!0),t.total?(e.openBlock(),e.createElementBlock("div",S,[e.createElementVNode("p",D,[e.createTextVNode(e.toDisplayString(t.__("shop.search.total_found",{total:t.total}))+" ",1),L,e.createElementVNode("a",{href:t.searchUrl},e.toDisplayString(t.__("shop.search.open_results")),9,q)])])):e.createCommentVNode("v-if",!0),t.results.length?(e.openBlock(),e.createElementBlock("div",x,[e.createElementVNode("div",H,e.toDisplayString(t.__("shop.search.products")),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.results,(function(r,n){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["dropdown-item",{"is-active":t.current==n}]),key:r.id},[e.renderSlot(t.$slots,"item",{user:t.user,item:r,cartRefs:t.cartRefs},(function(){return[e.createElementVNode("div",b,[e.createElementVNode("div",P,[e.createElementVNode("div",T,[e.createElementVNode("a",{href:r.href},e.toDisplayString(r.name),9,K)]),e.createElementVNode("div",{class:"price",innerHTML:r.price},null,8,M),r.price_old?(e.openBlock(),e.createElementBlock("div",$,[e.createElementVNode("span",{innerHTML:r.price_old},null,8,F)])):e.createCommentVNode("v-if",!0),e.createElementVNode("div",R,e.toDisplayString(r.code),1),r.quantity?(e.openBlock(),e.createElementBlock("div",U,e.toDisplayString(t.__("shop.search.in_stock")),1)):(e.openBlock(),e.createElementBlock("span",W,e.toDisplayString(t.__("shop.search.out_stock")),1))]),r.is_eol?(e.openBlock(),e.createElementBlock("div",O,e.toDisplayString(t.__("shop.search.eol")),1)):(e.openBlock(),e.createElementBlock("div",z,[e.createVNode(c,{id:r.id,"is-change-quantity":!1,"is-already-in-cart":!1,ref_for:!0,ref:t.cartRefs},null,8,["id"])]))])]}))],2)})),128))])):e.createCommentVNode("v-if",!0)],512),[[e.vShow,t.results.length||t.categories.length]]),t.isLoading||t.results.length||t.categories.length?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("div",j,[e.createElementVNode("div",A,[e.createElementVNode("div",I,e.toDisplayString(t.__("shop.search.no_results")),1)])]))],512),[[e.vShow,t.results.length||t.term]])],2)])},module.exports=i;
|
|
2
2
|
//# sourceMappingURL=Search.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Search.js","sources":["../../../src/components/shop/Search.vue","../../../src/components/shop/Search.vue?vue&type=template&id=3dba7fa2&lang.js"],"sourcesContent":["<template>\n <div class=\"shop-search\" @click=\"$event.stopPropagation()\">\n <div\n class=\"dropdown\"\n v-bind:class=\"{\n 'is-active': isDropdown,\n 'is-dropdown-visible': isDropdown && ((history.length && !term) || results.length || categories.length || (term && !isLoading && !results.length && !categories.length))\n }\"\n >\n <div class=\"overlay search-overlay\" @click=\"esc($event)\"></div>\n <div class=\"dropdown-trigger\">\n <div class=\"control has-icons-right\" v-bind:class=\"{ 'is-loading': isLoading }\">\n <input class=\"input\" type=\"text\" v-model=\"term\" ref=\"input\" :placeholder=\"placeholder\" @keyup.arrow-down=\"next\" @keyup.arrow-up=\"prev\" @keyup.space=\"add($event)\" @keyup.enter=\"open\" @keyup.esc=\"esc($event)\" @click=\"dropdown\" @keydown=\"preventCaret($event)\" />\n <slot name=\"icon\" :isLoading=\"isLoading\">\n <span class=\"icon is-small is-right\" v-show=\"!isLoading\">\n <i class=\"fas fa-search\"></i>\n </span>\n </slot>\n </div>\n </div>\n <div class=\"dropdown-menu\" v-if=\"isDropdown && history.length && !term\">\n <div class=\"dropdown-content\">\n <div class=\"history-list\">\n <div class=\"dropdown-item history-list-title\">\n <p>{{ __('shop.search.history') }}</p>\n </div>\n <div class=\"dropdown-item\" v-for=\"(item, index) in history\" v-bind:key=\"index\">\n <a @click=\"term = item\">{{ item }}</a>\n </div>\n <div class=\"dropdown-item history-list-clear\">\n <a @click=\"clearSearchHistory($event)\">{{ __('shop.search.history_clear') }}</a>\n </div>\n </div>\n </div>\n </div>\n <div class=\"dropdown-menu\" v-show=\"results.length || term\">\n <div class=\"dropdown-content\" v-show=\"results.length || categories.length\" style=\"max-height: 600px; overflow: auto\" ref=\"dropdownContent\">\n <div class=\"results-list\" v-if=\"categories.length\">\n <div class=\"dropdown-item\" v-for=\"(item, index) in categories\" v-bind:key=\"index\">\n <div>\n <a :href=\"item.href\">{{ item.name }}</a>\n </div>\n </div>\n <hr class=\"dropdown-divider\" v-if=\"byCategory.length\" />\n </div>\n <div class=\"results-list-category\" v-if=\"byCategory.length\">\n <div class=\"dropdown-item categories-list-title\">\n {{ __('shop.search.categories') }}\n </div>\n <div class=\"dropdown-item\" v-for=\"(item, index) in byCategory\" v-bind:key=\"index\">\n <div>\n <a :href=\"item.href + searchHrefWithParameter\">{{ item.name }}</a>\n </div>\n <div>\n {{\n __('shop.search.category_found', {\n count: item.count\n })\n }}\n </div>\n </div>\n </div>\n <div class=\"results-list-total\" v-if=\"total\">\n <p class=\"dropdown-item mb-3 mt-2\">\n {{\n __('shop.search.total_found', {\n total: total\n })\n }}\n <br />\n <a :href=\"searchUrl\">{{ __('shop.search.open_results') }}</a>\n </p>\n </div>\n <div class=\"products-list\" v-if=\"results.length\">\n <div class=\"dropdown-item products-list-title\">\n {{ __('shop.search.products') }}\n </div>\n <div class=\"dropdown-item\" v-for=\"(item, index) in results\" v-bind:key=\"item.id\" v-bind:class=\"{ 'is-active': current == index }\">\n <slot name=\"item\" :user=\"user\" :item=\"item\" :cart-refs=\"cartRefs\">\n <div class=\"columns\">\n <div class=\"column\">\n <div class=\"title\">\n <a :href=\"item.href\">\n {{ item.name }}\n </a>\n </div>\n <div class=\"price\" v-html=\"item.price\"></div>\n <div class=\"price_old\" v-if=\"item.price_old\">\n <span v-html=\"item.price_old\"></span>\n </div>\n <div class=\"code\">{{ item.code }}</div>\n <div class=\"quantity\" v-if=\"item.quantity\">\n {{ __('shop.search.in_stock') }}\n </div>\n <span class=\"no-quantity\" v-else>\n {{ __('shop.search.out_stock') }}\n </span>\n </div>\n <div class=\"column is-narrow\" v-if=\"!item.is_eol\">\n <cart-add :id=\"item.id\" :is-change-quantity=\"false\" :is-already-in-cart=\"false\" :ref=\"cartRefs\"></cart-add>\n </div>\n <div v-else class=\"column is-eol\">\n {{ __('shop.search.eol') }}\n </div>\n </div>\n </slot>\n </div>\n </div>\n </div>\n <div class=\"dropdown-content\" v-if=\"!isLoading && !results.length && !categories.length\">\n <div class=\"dropdown-item\">\n <div class=\"no-results\">\n {{ __('shop.search.no_results') }}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, watch, onBeforeUpdate, defineComponent, computed } from 'vue';\nimport { useStore } from 'vuex';\nimport { shop as api } from '@perevorot/shop/dist/api';\nimport SimpleBar from 'simplebar';\nimport SecureLS from 'secure-ls';\n\nexport default /*#__PURE__*/ defineComponent({\n name: 'search',\n props: {\n q: {\n type: String,\n default: ''\n },\n placeholder: {\n type: String,\n default: ''\n },\n parameter: {\n type: String,\n default: '/q{separator}'\n }\n },\n setup(props) {\n const ls = new SecureLS({\n isCompression: false\n });\n\n let q = props.q;\n\n if (q) {\n let encoder = document.createElement('textarea');\n encoder.innerHTML = q;\n q = encoder.value;\n }\n\n const isLoading = ref(false);\n const term = ref(q);\n const results = ref([]);\n const byCategory = ref([]);\n const total = ref(0);\n const current = ref(-1);\n const isDropdown = ref(false);\n const input = ref();\n const separator = ref('');\n const dropdownContent = ref();\n const history = ref(ls.get('search'));\n const menu = ref([]);\n const store = useStore();\n const user = computed(() => store.getters['auth/me']);\n\n let refs = [];\n let timeout;\n\n const search = () => {\n clearTimeout(timeout);\n\n current.value = -1;\n\n if (!term.value.trim()) {\n results.value = [];\n isLoading.value = false;\n } else {\n isLoading.value = true;\n\n //timeout = setTimeout(() => {\n if (term.value.trim()) {\n api.search(term.value)\n .then((response) => {\n if (response.data) {\n saveSearch();\n\n results.value = response.data.products;\n total.value = response.data.total;\n separator.value = response.data.separator;\n byCategory.value = response.data.byCategory;\n\n const scrollBar = new SimpleBar(dropdownContent.value);\n }\n })\n .finally(() => {\n isLoading.value = false;\n });\n }\n //}, 500);\n }\n };\n\n const saveSearch = () => {\n if (term.value.length > 1) {\n let search = ls.get('search') ? ls.get('search') : [];\n\n if (search.indexOf(term.value) !== -1) {\n search = search.filter((item) => item !== term.value);\n }\n\n if (search.length > 4) {\n search = search.slice(0, 4);\n }\n\n search.unshift(term.value);\n\n ls.set('search', search);\n\n history.value = search;\n }\n };\n\n const setSearchHistory = (term) => {\n term.value = term;\n };\n\n const clearSearchHistory = (event) => {\n ls.remove('search');\n\n history.value = [];\n\n input.value.focus();\n };\n\n onBeforeUpdate(() => {\n refs = [];\n });\n\n watch(\n () => term.value,\n () => {\n isDropdown.value = true;\n current.value = -1;\n search();\n }\n );\n\n const searchUrl = computed(() => {\n return term.value ? $env.locale.url + '/search' + searchHrefWithParameter.value : $env.locale.url + '/search';\n });\n\n const searchHrefWithParameter = computed(() => {\n return props.parameter.replace('{separator}', separator.value) + term.value.toLowerCase();\n });\n\n const preventCaret = (event) => {\n if (event.which == 38 || event.which == 40 || (event.which == 32 && current.value >= 0)) {\n event.preventDefault();\n }\n };\n\n const next = () => {\n if (current.value < results.value.length - 1) {\n current.value++;\n }\n };\n\n const prev = () => {\n if (current.value >= 0) {\n current.value--;\n }\n };\n\n const add = (event) => {\n if (current.value >= 0) {\n event.preventDefault();\n\n refs[current.value].add();\n }\n };\n\n const open = () => {\n if (current.value >= 0) {\n window.location.href = results.value[current.value].href;\n } else {\n window.location.href = searchUrl.value;\n }\n };\n\n const esc = (event) => {\n input.value.blur();\n close(event);\n };\n\n const cartRefs = (el) => {\n if (el) {\n refs.push(el);\n }\n };\n\n const close = (event) => {\n if (!event.target.closest('.cart')) {\n isDropdown.value = false;\n current.value = -1;\n }\n };\n\n const dropdown = () => {\n isDropdown.value = true;\n current.value = -1;\n };\n\n window.addEventListener('click', close);\n\n const categories = computed(() => {\n return term.value.length > 3 ? menu.value.filter((item) => item.search.indexOf(term.value) !== -1) : [];\n });\n\n const load = async () => {\n const menuElement = document.getElementById('menu');\n\n if (menuElement) {\n menuElement.querySelectorAll('[data-search]').forEach((element) => {\n const name = element.textContent.trim();\n const data = element.dataset.search;\n\n menu.value.push({\n name: (data ? data + ' / ' : '') + name,\n search: name.toLowerCase(),\n href: element.closest('a').href\n });\n });\n }\n\n if (props.q) {\n search();\n }\n };\n\n document.addEventListener('DOMContentLoaded', load, false);\n\n return {\n isLoading,\n term,\n results,\n next,\n prev,\n current,\n add,\n cartRefs,\n isDropdown,\n preventCaret,\n esc,\n input,\n dropdown,\n total,\n searchUrl,\n searchHrefWithParameter,\n open,\n categories,\n byCategory,\n dropdownContent,\n history,\n clearSearchHistory,\n setSearchHistory,\n user\n };\n }\n});\n</script>","<template>\n <div class=\"shop-search\" @click=\"$event.stopPropagation()\">\n <div\n class=\"dropdown\"\n v-bind:class=\"{\n 'is-active': isDropdown,\n 'is-dropdown-visible': isDropdown && ((history.length && !term) || results.length || categories.length || (term && !isLoading && !results.length && !categories.length))\n }\"\n >\n <div class=\"overlay search-overlay\" @click=\"esc($event)\"></div>\n <div class=\"dropdown-trigger\">\n <div class=\"control has-icons-right\" v-bind:class=\"{ 'is-loading': isLoading }\">\n <input class=\"input\" type=\"text\" v-model=\"term\" ref=\"input\" :placeholder=\"placeholder\" @keyup.arrow-down=\"next\" @keyup.arrow-up=\"prev\" @keyup.space=\"add($event)\" @keyup.enter=\"open\" @keyup.esc=\"esc($event)\" @click=\"dropdown\" @keydown=\"preventCaret($event)\" />\n <slot name=\"icon\" :isLoading=\"isLoading\">\n <span class=\"icon is-small is-right\" v-show=\"!isLoading\">\n <i class=\"fas fa-search\"></i>\n </span>\n </slot>\n </div>\n </div>\n <div class=\"dropdown-menu\" v-if=\"isDropdown && history.length && !term\">\n <div class=\"dropdown-content\">\n <div class=\"history-list\">\n <div class=\"dropdown-item history-list-title\">\n <p>{{ __('shop.search.history') }}</p>\n </div>\n <div class=\"dropdown-item\" v-for=\"(item, index) in history\" v-bind:key=\"index\">\n <a @click=\"term = item\">{{ item }}</a>\n </div>\n <div class=\"dropdown-item history-list-clear\">\n <a @click=\"clearSearchHistory($event)\">{{ __('shop.search.history_clear') }}</a>\n </div>\n </div>\n </div>\n </div>\n <div class=\"dropdown-menu\" v-show=\"results.length || term\">\n <div class=\"dropdown-content\" v-show=\"results.length || categories.length\" style=\"max-height: 600px; overflow: auto\" ref=\"dropdownContent\">\n <div class=\"results-list\" v-if=\"categories.length\">\n <div class=\"dropdown-item\" v-for=\"(item, index) in categories\" v-bind:key=\"index\">\n <div>\n <a :href=\"item.href\">{{ item.name }}</a>\n </div>\n </div>\n <hr class=\"dropdown-divider\" v-if=\"byCategory.length\" />\n </div>\n <div class=\"results-list-category\" v-if=\"byCategory.length\">\n <div class=\"dropdown-item categories-list-title\">\n {{ __('shop.search.categories') }}\n </div>\n <div class=\"dropdown-item\" v-for=\"(item, index) in byCategory\" v-bind:key=\"index\">\n <div>\n <a :href=\"item.href + searchHrefWithParameter\">{{ item.name }}</a>\n </div>\n <div>\n {{\n __('shop.search.category_found', {\n count: item.count\n })\n }}\n </div>\n </div>\n </div>\n <div class=\"results-list-total\" v-if=\"total\">\n <p class=\"dropdown-item mb-3 mt-2\">\n {{\n __('shop.search.total_found', {\n total: total\n })\n }}\n <br />\n <a :href=\"searchUrl\">{{ __('shop.search.open_results') }}</a>\n </p>\n </div>\n <div class=\"products-list\" v-if=\"results.length\">\n <div class=\"dropdown-item products-list-title\">\n {{ __('shop.search.products') }}\n </div>\n <div class=\"dropdown-item\" v-for=\"(item, index) in results\" v-bind:key=\"item.id\" v-bind:class=\"{ 'is-active': current == index }\">\n <slot name=\"item\" :user=\"user\" :item=\"item\" :cart-refs=\"cartRefs\">\n <div class=\"columns\">\n <div class=\"column\">\n <div class=\"title\">\n <a :href=\"item.href\">\n {{ item.name }}\n </a>\n </div>\n <div class=\"price\" v-html=\"item.price\"></div>\n <div class=\"price_old\" v-if=\"item.price_old\">\n <span v-html=\"item.price_old\"></span>\n </div>\n <div class=\"code\">{{ item.code }}</div>\n <div class=\"quantity\" v-if=\"item.quantity\">\n {{ __('shop.search.in_stock') }}\n </div>\n <span class=\"no-quantity\" v-else>\n {{ __('shop.search.out_stock') }}\n </span>\n </div>\n <div class=\"column is-narrow\" v-if=\"!item.is_eol\">\n <cart-add :id=\"item.id\" :is-change-quantity=\"false\" :is-already-in-cart=\"false\" :ref=\"cartRefs\"></cart-add>\n </div>\n <div v-else class=\"column is-eol\">\n {{ __('shop.search.eol') }}\n </div>\n </div>\n </slot>\n </div>\n </div>\n </div>\n <div class=\"dropdown-content\" v-if=\"!isLoading && !results.length && !categories.length\">\n <div class=\"dropdown-item\">\n <div class=\"no-results\">\n {{ __('shop.search.no_results') }}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, watch, onBeforeUpdate, defineComponent, computed } from 'vue';\nimport { useStore } from 'vuex';\nimport { shop as api } from '@perevorot/shop/dist/api';\nimport SimpleBar from 'simplebar';\nimport SecureLS from 'secure-ls';\n\nexport default /*#__PURE__*/ defineComponent({\n name: 'search',\n props: {\n q: {\n type: String,\n default: ''\n },\n placeholder: {\n type: String,\n default: ''\n },\n parameter: {\n type: String,\n default: '/q{separator}'\n }\n },\n setup(props) {\n const ls = new SecureLS({\n isCompression: false\n });\n\n let q = props.q;\n\n if (q) {\n let encoder = document.createElement('textarea');\n encoder.innerHTML = q;\n q = encoder.value;\n }\n\n const isLoading = ref(false);\n const term = ref(q);\n const results = ref([]);\n const byCategory = ref([]);\n const total = ref(0);\n const current = ref(-1);\n const isDropdown = ref(false);\n const input = ref();\n const separator = ref('');\n const dropdownContent = ref();\n const history = ref(ls.get('search'));\n const menu = ref([]);\n const store = useStore();\n const user = computed(() => store.getters['auth/me']);\n\n let refs = [];\n let timeout;\n\n const search = () => {\n clearTimeout(timeout);\n\n current.value = -1;\n\n if (!term.value.trim()) {\n results.value = [];\n isLoading.value = false;\n } else {\n isLoading.value = true;\n\n //timeout = setTimeout(() => {\n if (term.value.trim()) {\n api.search(term.value)\n .then((response) => {\n if (response.data) {\n saveSearch();\n\n results.value = response.data.products;\n total.value = response.data.total;\n separator.value = response.data.separator;\n byCategory.value = response.data.byCategory;\n\n const scrollBar = new SimpleBar(dropdownContent.value);\n }\n })\n .finally(() => {\n isLoading.value = false;\n });\n }\n //}, 500);\n }\n };\n\n const saveSearch = () => {\n if (term.value.length > 1) {\n let search = ls.get('search') ? ls.get('search') : [];\n\n if (search.indexOf(term.value) !== -1) {\n search = search.filter((item) => item !== term.value);\n }\n\n if (search.length > 4) {\n search = search.slice(0, 4);\n }\n\n search.unshift(term.value);\n\n ls.set('search', search);\n\n history.value = search;\n }\n };\n\n const setSearchHistory = (term) => {\n term.value = term;\n };\n\n const clearSearchHistory = (event) => {\n ls.remove('search');\n\n history.value = [];\n\n input.value.focus();\n };\n\n onBeforeUpdate(() => {\n refs = [];\n });\n\n watch(\n () => term.value,\n () => {\n isDropdown.value = true;\n current.value = -1;\n search();\n }\n );\n\n const searchUrl = computed(() => {\n return term.value ? $env.locale.url + '/search' + searchHrefWithParameter.value : $env.locale.url + '/search';\n });\n\n const searchHrefWithParameter = computed(() => {\n return props.parameter.replace('{separator}', separator.value) + term.value.toLowerCase();\n });\n\n const preventCaret = (event) => {\n if (event.which == 38 || event.which == 40 || (event.which == 32 && current.value >= 0)) {\n event.preventDefault();\n }\n };\n\n const next = () => {\n if (current.value < results.value.length - 1) {\n current.value++;\n }\n };\n\n const prev = () => {\n if (current.value >= 0) {\n current.value--;\n }\n };\n\n const add = (event) => {\n if (current.value >= 0) {\n event.preventDefault();\n\n refs[current.value].add();\n }\n };\n\n const open = () => {\n if (current.value >= 0) {\n window.location.href = results.value[current.value].href;\n } else {\n window.location.href = searchUrl.value;\n }\n };\n\n const esc = (event) => {\n input.value.blur();\n close(event);\n };\n\n const cartRefs = (el) => {\n if (el) {\n refs.push(el);\n }\n };\n\n const close = (event) => {\n if (!event.target.closest('.cart')) {\n isDropdown.value = false;\n current.value = -1;\n }\n };\n\n const dropdown = () => {\n isDropdown.value = true;\n current.value = -1;\n };\n\n window.addEventListener('click', close);\n\n const categories = computed(() => {\n return term.value.length > 3 ? menu.value.filter((item) => item.search.indexOf(term.value) !== -1) : [];\n });\n\n const load = async () => {\n const menuElement = document.getElementById('menu');\n\n if (menuElement) {\n menuElement.querySelectorAll('[data-search]').forEach((element) => {\n const name = element.textContent.trim();\n const data = element.dataset.search;\n\n menu.value.push({\n name: (data ? data + ' / ' : '') + name,\n search: name.toLowerCase(),\n href: element.closest('a').href\n });\n });\n }\n\n if (props.q) {\n search();\n }\n };\n\n document.addEventListener('DOMContentLoaded', load, false);\n\n return {\n isLoading,\n term,\n results,\n next,\n prev,\n current,\n add,\n cartRefs,\n isDropdown,\n preventCaret,\n esc,\n input,\n dropdown,\n total,\n searchUrl,\n searchHrefWithParameter,\n open,\n categories,\n byCategory,\n dropdownContent,\n history,\n clearSearchHistory,\n setSearchHistory,\n user\n };\n }\n});\n</script>"],"names":["defineComponent","name","props","q","type","String","placeholder","parameter","setup","ls","SecureLS","isCompression","encoder","document","createElement","innerHTML","value","isLoading","ref","term","results","byCategory","total","current","isDropdown","input","separator","dropdownContent","history","get","menu","store","useStore","user","computed","getters","refs","search","clearTimeout","timeout","trim","api","then","response","data","saveSearch","products","SimpleBar","length","indexOf","filter","item","slice","unshift","set","onBeforeUpdate","watch","searchUrl","$env","locale","url","searchHrefWithParameter","replace","toLowerCase","close","event","target","closest","window","addEventListener","categories","load","menuElement","getElementById","querySelectorAll","forEach","element","textContent","dataset","push","href","resolve","arguments","i","next","prev","add","preventDefault","cartRefs","el","preventCaret","which","esc","blur","dropdown","open","location","clearSearchHistory","remove","focus","setSearchHistory","_createElementVNode","style","_createElementBlock","onClick","$event","stopPropagation","_ctx","_hoisted_1","onKeyup","onKeydown","_renderSlot","_hoisted_3","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","index","key","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_24","_hoisted_25","id","_hoisted_26","_hoisted_27","_hoisted_28","price","price_old","_hoisted_31","_hoisted_33","code","quantity","_hoisted_34","_hoisted_35","is_eol","_hoisted_37","_hoisted_36","_createVNode","_hoisted_38","_hoisted_39","_hoisted_40"],"mappings":"kOA+HA,MAA6BA,kBAAgB,CACzCC,KAAM,SACNC,MAAO,CACHC,EAAG,CACCC,KAAMC,eACG,IAEbC,YAAa,CACTF,KAAMC,eACG,IAEbE,UAAW,CACPH,KAAMC,eACG,kBAGjBG,eAAMN,OACIO,EAAK,IAAIC,UAAS,CACpBC,eAAe,IAGfR,EAAID,EAAMC,KAEVA,EAAG,KACCS,EAAUC,SAASC,cAAc,YACrCF,EAAQG,UAAYZ,EACpBA,EAAIS,EAAQI,UAGVC,EAAYC,OAAI,GAChBC,EAAOD,MAAIf,GACXiB,EAAUF,MAAI,IACdG,EAAaH,MAAI,IACjBI,EAAQJ,MAAI,GACZK,EAAUL,OAAK,GACfM,EAAaN,OAAI,GACjBO,EAAQP,QACRQ,EAAYR,MAAI,IAChBS,EAAkBT,QAClBU,EAAUV,MAAIT,EAAGoB,IAAI,WACrBC,EAAOZ,MAAI,IACXa,EAAQC,aACRC,EAAOC,YAAS,kBAAMH,EAAMI,QAAQ,cAEtCC,EAAO,GAGLC,EAAS,WACXC,kBAHAC,GAKAhB,EAAQP,OAAS,EAEZG,EAAKH,MAAMwB,QAIZvB,EAAUD,OAAQ,EAGdG,EAAKH,MAAMwB,QACXC,OAAIJ,OAAOlB,EAAKH,OACX0B,MAAK,SAACC,GACCA,EAASC,OACTC,IAEAzB,EAAQJ,MAAQ2B,EAASC,KAAKE,SAC9BxB,EAAMN,MAAQ2B,EAASC,KAAKtB,MAC5BI,EAAUV,MAAQ2B,EAASC,KAAKlB,UAChCL,EAAWL,MAAQ2B,EAASC,KAAKvB,WAEf,IAAI0B,UAAUpB,EAAgBX,oBAG/C,WACLC,EAAUD,OAAQ,OArB9BI,EAAQJ,MAAQ,GAChBC,EAAUD,OAAQ,IA2BpB6B,EAAa,cACX1B,EAAKH,MAAMgC,OAAS,EAAG,KACnBX,EAAS5B,EAAGoB,IAAI,UAAYpB,EAAGoB,IAAI,UAAY,IAEf,IAAhCQ,EAAOY,QAAQ9B,EAAKH,SACpBqB,EAASA,EAAOa,QAAO,SAACC,UAASA,IAAShC,EAAKH,UAG/CqB,EAAOW,OAAS,IAChBX,EAASA,EAAOe,MAAM,EAAG,IAG7Bf,EAAOgB,QAAQlC,EAAKH,OAEpBP,EAAG6C,IAAI,SAAUjB,GAEjBT,EAAQZ,MAAQqB,IAgBxBkB,kBAAe,WACXnB,EAAO,MAGXoB,SACI,kBAAMrC,EAAKH,SACX,WACIQ,EAAWR,OAAQ,EACnBO,EAAQP,OAAS,EACjBqB,WAIFoB,EAAYvB,YAAS,kBAChBf,EAAKH,MAAQ0C,KAAKC,OAAOC,IAAM,UAAYC,EAAwB7C,MAAQ0C,KAAKC,OAAOC,IAAM,aAGlGC,EAA0B3B,YAAS,kBAC9BhC,EAAMK,UAAUuD,QAAQ,cAAepC,EAAUV,OAASG,EAAKH,MAAM+C,iBAgD1EC,EAAQ,SAACC,GACNA,EAAMC,OAAOC,QAAQ,WACtB3C,EAAWR,OAAQ,EACnBO,EAAQP,OAAS,IASzBoD,OAAOC,iBAAiB,QAASL,SAE3BM,EAAapC,YAAS,kBACjBf,EAAKH,MAAMgC,OAAS,EAAIlB,EAAKd,MAAMkC,QAAO,SAACC,UAA8C,IAArCA,EAAKd,OAAOY,QAAQ9B,EAAKH,UAAiB,MAGnGuD,oBAxHSvD,MAyHLwD,EAAc3D,SAAS4D,eAAe,eAExCD,GACAA,EAAYE,iBAAiB,iBAAiBC,SAAQ,SAACC,OAC7C3E,EAAO2E,EAAQC,YAAYrC,OAC3BI,EAAOgC,EAAQE,QAAQzC,OAE7BP,EAAKd,MAAM+D,KAAK,CACZ9E,MAAO2C,EAAOA,EAAO,MAAQ,IAAM3C,EACnCoC,OAAQpC,EAAK8D,cACbiB,KAAMJ,EAAQT,QAAQ,KAAKa,UAKnC9E,EAAMC,GACNkC,MAvIPK,aAEO1B,EAAM0B,iBACJuC,QAAQjE,kDAjBOkE,UAAUlC,OAAQmC,8GAyJ3CtE,SAASwD,iBAAiB,mBAAoBE,GAAM,GAE7C,CACHtD,UAAAA,EACAE,KAAAA,EACAC,QAAAA,EACAgE,KApFS,WACL7D,EAAQP,MAAQI,EAAQJ,MAAMgC,OAAS,GACvCzB,EAAQP,SAmFZqE,KA/ES,WACL9D,EAAQP,OAAS,GACjBO,EAAQP,SA8EZO,QAAAA,EACA+D,IA3EQ,SAACrB,GACL1C,EAAQP,OAAS,IACjBiD,EAAMsB,iBAENnD,EAAKb,EAAQP,OAAOsE,QAwExBE,SAvDa,SAACC,GACVA,GACArD,EAAK2C,KAAKU,IAsDdjE,WAAAA,EACAkE,aAhGiB,SAACzB,IACC,IAAfA,EAAM0B,OAA8B,IAAf1B,EAAM0B,OAA+B,IAAf1B,EAAM0B,OAAepE,EAAQP,OAAS,IACjFiD,EAAMsB,kBA+FVK,IA/DQ,SAAC3B,GACTxC,EAAMT,MAAM6E,OACZ7B,EAAMC,IA8DNxC,MAAAA,EACAqE,SA/Ca,WACbtE,EAAWR,OAAQ,EACnBO,EAAQP,OAAS,GA8CjBM,MAAAA,EACAmC,UAAAA,EACAI,wBAAAA,EACAkC,KA7ES,WACLxE,EAAQP,OAAS,EACjBoD,OAAO4B,SAAShB,KAAO5D,EAAQJ,MAAMO,EAAQP,OAAOgE,KAEpDZ,OAAO4B,SAAShB,KAAOvB,EAAUzC,OA0ErCsD,WAAAA,EACAjD,WAAAA,EACAM,gBAAAA,EACAC,QAAAA,EACAqE,mBAzIuB,SAAChC,GACxBxD,EAAGyF,OAAO,UAEVtE,EAAQZ,MAAQ,GAEhBS,EAAMT,MAAMmF,SAqIZC,iBA9IqB,SAACjF,GACtBA,EAAKH,MAAQG,GA8Ibc,KAAAA,eCzWW,+CAIa,6BACRoE,gCAAS,0CAKd,0BACI,6BACI,yBACI,2DAMA,6CAMZ,0BACI,mBAAgEC,MAAA,uCAA0CpF,IAAI,kCAC1G,0CAMG,mCAEH,kCACI,iEAgBJ,+BACE,6BAMLmF,kEAIG,0BACI,8CAKQ,oBACI,mBACI,mDAMA,sCAGA,uBACA,2BAGC,8BAIL,mCAGO,gCAQ3B,6BACI,0BACI,uGA9G/BE,kCAAW,cAAeC,yCAAOC,EAAOC,sBACpCL,oDACU,gNAMNA,kCAAW,yBAA0BG,uCAAOG,MAAIF,OAChDJ,2BAAAO,GACIP,oDAAW,wCAAwDM,kCAC/DN,oCAAa,QAAQjG,KAAK,4DAAgBuG,WAAMzF,IAAI,QAASZ,YAAaqG,cAAcE,mDAAkBF,+FAAuBA,8FAAoBA,MAAIF,2DAAuBE,2FAAkBA,MAAIF,gBAAUD,sCAAOG,4CAAWG,yCAASH,eAAaF,gCAA9ME,UAC1CI,8BAAmB9F,UAAW0F,cAA9B,mCACIN,4BAAAW,oBAA8CL,yBAMzBA,cAAcA,UAAQ3D,SAAW2D,sBAAlEJ,2BAAAU,GACIZ,2BAAAa,GACIb,2BAAAc,GACId,2BAAAe,GACIf,gDAAMM,mDAEVJ,kDAAmDI,oBAAhBxD,EAAMkE,wBAAzCd,kCAAW,gBAAwDe,IAAKD,IACpEhB,0BAAIG,2BAAOG,OAAOxD,sBAASA,mBAE/BkD,2BAAAkB,GACIlB,0BAAIG,uCAAOG,qBAAmBF,wBAAYE,gGAK1DN,2BAAAmB,oBACInB,2BAAAoB,GACoCd,aAAW3D,sBAA3CuD,2BAAAmB,oBACInB,kDAAmDI,uBAAhBxD,EAAMkE,wBAAzCd,kCAAW,gBAA2De,IAAKD,IACvEhB,iCACIA,0BAAIrB,KAAM7B,EAAK6B,wBAAS7B,EAAKlD,wBAGF0G,aAAW3D,sBAA9CuD,0BAAAoB,uEAEqChB,aAAW3D,sBAApDuD,2BAAAqB,GACIvB,2BAAAwB,oBACOlB,oDAEPJ,kDAAmDI,uBAAhBxD,EAAMkE,wBAAzCd,kCAAW,gBAA2De,IAAKD,IACvEhB,iCACIA,0BAAIrB,KAAM7B,EAAK6B,KAAO2B,6CAA4BxD,EAAKlD,aAE3DoG,kDAEQM,qGAOsBA,uBAAtCJ,2BAAAuB,GACIzB,yBAAA0B,uCAEQpB,wDAIJqB,EACA3B,0BAAIrB,KAAM2B,+BAAcA,4EAGCA,UAAQ3D,sBAAzCuD,2BAAA0B,GACI5B,2BAAA6B,oBACOvB,kDAEPJ,kDAAmDI,oBAAhBxD,EAAMkE,wBAAzCd,oDAAW,6BAAmGI,WAAWU,KAAtDC,IAAKnE,EAAKgF,KACzEpB,8BAAmB9E,KAAM0E,OAAOxD,KAAMA,EAAOqC,SAAWmB,aAAxD,kBACIN,2BAAA+B,GACI/B,2BAAAgC,GACIhC,2BAAAiC,GACIjC,0BAAIrB,KAAM7B,EAAK6B,wBACR7B,EAAKlD,aAGhBoG,kCAAW,QAAQtF,UAAQoC,EAAKoF,iBACHpF,EAAKqF,yBAAlCjC,2BAAAkC,GACIpC,6BAAMtF,UAAQoC,EAAKqF,wDAEvBnC,2BAAAqC,oBAAqBvF,EAAKwF,SACExF,EAAKyF,wBAAjCrC,2BAAAsC,oBACOlC,iDAEPJ,4BAAAuC,oBACOnC,qCAG0BxD,EAAK4F,sBAG1CxC,2BAAAyC,oBACOrC,4CAJPJ,2BAAA0C,GACIC,iBAAWf,GAAIhF,EAAKgF,yBAAyB,wBAA4B,aAAQjH,IAAKyF,oGA/DxEA,UAAQ3D,QAAU2D,aAAW3D,UAyE9B2D,aAAcA,UAAQ3D,QAAW2D,aAAW3D,sDAAjFuD,2BAAA4C,GACI9C,2BAAA+C,GACI/C,2BAAAgD,oBACO1C,wDA7EgBA,UAAQ3D,QAAU2D"}
|
|
1
|
+
{"version":3,"file":"Search.js","sources":["../../../src/components/shop/Search.vue","../../../src/components/shop/Search.vue?vue&type=template&id=07a12e50&lang.js"],"sourcesContent":["<template>\n <div class=\"shop-search\" @click=\"$event.stopPropagation()\">\n <div class=\"dropdown\" v-bind:class=\"{\n 'is-active': isDropdown,\n 'is-dropdown-visible': isDropdown && ((history.length && !term) || results.length || categories.length || (term && !isLoading && !results.length && !categories.length))\n }\">\n <div class=\"overlay search-overlay\" @click=\"esc($event)\"></div>\n <div class=\"dropdown-trigger\">\n <div class=\"control has-icons-right\" v-bind:class=\"{ 'is-loading': isLoading }\">\n <input class=\"input\" type=\"text\" v-model=\"term\" ref=\"input\" :placeholder=\"placeholder\" @keyup.arrow-down=\"next\" @keyup.arrow-up=\"prev\" @keyup.space=\"add($event)\" @keyup.enter=\"open\" @keyup.esc=\"esc($event)\" @click=\"dropdown\" @keydown=\"preventCaret($event)\" />\n <slot name=\"icon\" :isLoading=\"isLoading\">\n <span class=\"icon is-small is-right\" v-show=\"!isLoading\">\n <i class=\"fas fa-search\"></i>\n </span>\n </slot>\n </div>\n </div>\n <div class=\"dropdown-menu\" v-if=\"isDropdown && history.length && !term\">\n <div class=\"dropdown-content\">\n <div class=\"history-list\">\n <div class=\"dropdown-item history-list-title\">\n <p>{{ __('shop.search.history') }}</p>\n </div>\n <div class=\"dropdown-item\" v-for=\"(item, index) in history\" v-bind:key=\"index\">\n <a @click=\"term = item\">{{ item }}</a>\n </div>\n <div class=\"dropdown-item history-list-clear\">\n <a @click=\"clearSearchHistory($event)\">{{ __('shop.search.history_clear') }}</a>\n </div>\n </div>\n </div>\n </div>\n <div class=\"dropdown-menu\" v-show=\"results.length || term\">\n <div class=\"dropdown-content\" v-show=\"results.length || categories.length\" style=\"max-height: 600px; overflow: auto\" ref=\"dropdownContent\">\n <div class=\"results-list\" v-if=\"categories.length\">\n <div class=\"dropdown-item\" v-for=\"(item, index) in categories\" v-bind:key=\"index\">\n <div>\n <a :href=\"item.href\">{{ item.name }}</a>\n </div>\n </div>\n <hr class=\"dropdown-divider\" v-if=\"byCategory.length\" />\n </div>\n <div class=\"results-list-category\" v-if=\"byCategory.length\">\n <div class=\"dropdown-item categories-list-title\">\n {{ __('shop.search.categories') }}\n </div>\n <div class=\"dropdown-item\" v-for=\"(item, index) in byCategory\" v-bind:key=\"index\">\n <slot name=\"item-category\" :item=\"item\" :searchHrefWithParameter=\"searchHrefWithParameter\">\n <div>\n <a :href=\"item.href + searchHrefWithParameter\">{{ item.name }}</a>\n </div>\n <div>\n {{ __('shop.search.category_found', { count: item.count }) }}\n </div>\n </slot>\n </div>\n </div>\n <div class=\"results-list-total\" v-if=\"total\">\n <p class=\"dropdown-item mb-3 mt-2\">\n {{\n __('shop.search.total_found', {\n total: total\n })\n }}\n <br />\n <a :href=\"searchUrl\">{{ __('shop.search.open_results') }}</a>\n </p>\n </div>\n <div class=\"products-list\" v-if=\"results.length\">\n <div class=\"dropdown-item products-list-title\">\n {{ __('shop.search.products') }}\n </div>\n <div class=\"dropdown-item\" v-for=\"(item, index) in results\" v-bind:key=\"item.id\" v-bind:class=\"{ 'is-active': current == index }\">\n <slot name=\"item\" :user=\"user\" :item=\"item\" :cart-refs=\"cartRefs\">\n <div class=\"columns\">\n <div class=\"column\">\n <div class=\"title\">\n <a :href=\"item.href\">\n {{ item.name }}\n </a>\n </div>\n <div class=\"price\" v-html=\"item.price\"></div>\n <div class=\"price_old\" v-if=\"item.price_old\">\n <span v-html=\"item.price_old\"></span>\n </div>\n <div class=\"code\">{{ item.code }}</div>\n <div class=\"quantity\" v-if=\"item.quantity\">\n {{ __('shop.search.in_stock') }}\n </div>\n <span class=\"no-quantity\" v-else>\n {{ __('shop.search.out_stock') }}\n </span>\n </div>\n <div class=\"column is-narrow\" v-if=\"!item.is_eol\">\n <cart-add :id=\"item.id\" :is-change-quantity=\"false\" :is-already-in-cart=\"false\" :ref=\"cartRefs\"></cart-add>\n </div>\n <div v-else class=\"column is-eol\">\n {{ __('shop.search.eol') }}\n </div>\n </div>\n </slot>\n </div>\n </div>\n </div>\n <div class=\"dropdown-content\" v-if=\"!isLoading && !results.length && !categories.length\">\n <div class=\"dropdown-item\">\n <div class=\"no-results\">\n {{ __('shop.search.no_results') }}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, watch, onBeforeUpdate, defineComponent, computed } from 'vue';\nimport { useStore } from 'vuex';\nimport { shop as api } from '@perevorot/shop/dist/api';\nimport SimpleBar from 'simplebar';\nimport SecureLS from 'secure-ls';\n\nexport default /*#__PURE__*/ defineComponent({\n name: 'search',\n props: {\n q: {\n type: String,\n default: ''\n },\n placeholder: {\n type: String,\n default: ''\n },\n parameter: {\n type: String,\n default: '/q{separator}'\n }\n },\n setup(props) {\n const ls = new SecureLS({\n isCompression: false\n });\n\n let q = props.q;\n\n if (q) {\n let encoder = document.createElement('textarea');\n encoder.innerHTML = q;\n q = encoder.value;\n }\n\n const isLoading = ref(false);\n const term = ref(q);\n const results = ref([]);\n const byCategory = ref([]);\n const total = ref(0);\n const current = ref(-1);\n const isDropdown = ref(false);\n const input = ref();\n const separator = ref('');\n const dropdownContent = ref();\n const history = ref(ls.get('search'));\n const menu = ref([]);\n const store = useStore();\n const user = computed(() => store.getters['auth/me']);\n\n let refs = [];\n let timeout;\n\n const search = () => {\n clearTimeout(timeout);\n\n current.value = -1;\n\n if (!term.value.trim()) {\n results.value = [];\n isLoading.value = false;\n } else {\n isLoading.value = true;\n\n //timeout = setTimeout(() => {\n if (term.value.trim()) {\n api.search(term.value)\n .then((response) => {\n if (response.data) {\n saveSearch();\n\n results.value = response.data.products;\n total.value = response.data.total;\n separator.value = response.data.separator;\n byCategory.value = response.data.byCategory;\n\n const scrollBar = new SimpleBar(dropdownContent.value);\n }\n })\n .finally(() => {\n isLoading.value = false;\n });\n }\n //}, 500);\n }\n };\n\n const saveSearch = () => {\n if (term.value.length > 1) {\n let search = ls.get('search') ? ls.get('search') : [];\n\n if (search.indexOf(term.value) !== -1) {\n search = search.filter((item) => item !== term.value);\n }\n\n if (search.length > 4) {\n search = search.slice(0, 4);\n }\n\n search.unshift(term.value);\n\n ls.set('search', search);\n\n history.value = search;\n }\n };\n\n const setSearchHistory = (term) => {\n term.value = term;\n };\n\n const clearSearchHistory = (event) => {\n ls.remove('search');\n\n history.value = [];\n\n input.value.focus();\n };\n\n onBeforeUpdate(() => {\n refs = [];\n });\n\n watch(\n () => term.value,\n () => {\n isDropdown.value = true;\n current.value = -1;\n search();\n }\n );\n\n const searchUrl = computed(() => {\n return term.value ? $env.locale.url + '/search' + searchHrefWithParameter.value : $env.locale.url + '/search';\n });\n\n const searchHrefWithParameter = computed(() => {\n return props.parameter.replace('{separator}', separator.value) + term.value.toLowerCase();\n });\n\n const preventCaret = (event) => {\n if (event.which == 38 || event.which == 40 || (event.which == 32 && current.value >= 0)) {\n event.preventDefault();\n }\n };\n\n const next = () => {\n if (current.value < results.value.length - 1) {\n current.value++;\n }\n };\n\n const prev = () => {\n if (current.value >= 0) {\n current.value--;\n }\n };\n\n const add = (event) => {\n if (current.value >= 0) {\n event.preventDefault();\n\n refs[current.value].add();\n }\n };\n\n const open = () => {\n if (current.value >= 0) {\n window.location.href = results.value[current.value].href;\n } else {\n window.location.href = searchUrl.value;\n }\n };\n\n const esc = (event) => {\n input.value.blur();\n close(event);\n };\n\n const cartRefs = (el) => {\n if (el) {\n refs.push(el);\n }\n };\n\n const close = (event) => {\n if (!event.target.closest('.cart')) {\n isDropdown.value = false;\n current.value = -1;\n }\n };\n\n const dropdown = () => {\n isDropdown.value = true;\n current.value = -1;\n };\n\n window.addEventListener('click', close);\n\n const categories = computed(() => {\n return term.value.length > 3 ? menu.value.filter((item) => item.search.indexOf(term.value) !== -1) : [];\n });\n\n const load = async () => {\n const menuElement = document.getElementById('menu');\n\n if (menuElement) {\n menuElement.querySelectorAll('[data-search]').forEach((element) => {\n const name = element.textContent.trim();\n const data = element.dataset.search;\n\n menu.value.push({\n name: (data ? data + ' / ' : '') + name,\n search: name.toLowerCase(),\n href: element.closest('a').href\n });\n });\n }\n\n if (props.q) {\n search();\n }\n };\n\n document.addEventListener('DOMContentLoaded', load, false);\n\n return {\n isLoading,\n term,\n results,\n next,\n prev,\n current,\n add,\n cartRefs,\n isDropdown,\n preventCaret,\n esc,\n input,\n dropdown,\n total,\n searchUrl,\n searchHrefWithParameter,\n open,\n categories,\n byCategory,\n dropdownContent,\n history,\n clearSearchHistory,\n setSearchHistory,\n user\n };\n }\n});\n</script>","<template>\n <div class=\"shop-search\" @click=\"$event.stopPropagation()\">\n <div class=\"dropdown\" v-bind:class=\"{\n 'is-active': isDropdown,\n 'is-dropdown-visible': isDropdown && ((history.length && !term) || results.length || categories.length || (term && !isLoading && !results.length && !categories.length))\n }\">\n <div class=\"overlay search-overlay\" @click=\"esc($event)\"></div>\n <div class=\"dropdown-trigger\">\n <div class=\"control has-icons-right\" v-bind:class=\"{ 'is-loading': isLoading }\">\n <input class=\"input\" type=\"text\" v-model=\"term\" ref=\"input\" :placeholder=\"placeholder\" @keyup.arrow-down=\"next\" @keyup.arrow-up=\"prev\" @keyup.space=\"add($event)\" @keyup.enter=\"open\" @keyup.esc=\"esc($event)\" @click=\"dropdown\" @keydown=\"preventCaret($event)\" />\n <slot name=\"icon\" :isLoading=\"isLoading\">\n <span class=\"icon is-small is-right\" v-show=\"!isLoading\">\n <i class=\"fas fa-search\"></i>\n </span>\n </slot>\n </div>\n </div>\n <div class=\"dropdown-menu\" v-if=\"isDropdown && history.length && !term\">\n <div class=\"dropdown-content\">\n <div class=\"history-list\">\n <div class=\"dropdown-item history-list-title\">\n <p>{{ __('shop.search.history') }}</p>\n </div>\n <div class=\"dropdown-item\" v-for=\"(item, index) in history\" v-bind:key=\"index\">\n <a @click=\"term = item\">{{ item }}</a>\n </div>\n <div class=\"dropdown-item history-list-clear\">\n <a @click=\"clearSearchHistory($event)\">{{ __('shop.search.history_clear') }}</a>\n </div>\n </div>\n </div>\n </div>\n <div class=\"dropdown-menu\" v-show=\"results.length || term\">\n <div class=\"dropdown-content\" v-show=\"results.length || categories.length\" style=\"max-height: 600px; overflow: auto\" ref=\"dropdownContent\">\n <div class=\"results-list\" v-if=\"categories.length\">\n <div class=\"dropdown-item\" v-for=\"(item, index) in categories\" v-bind:key=\"index\">\n <div>\n <a :href=\"item.href\">{{ item.name }}</a>\n </div>\n </div>\n <hr class=\"dropdown-divider\" v-if=\"byCategory.length\" />\n </div>\n <div class=\"results-list-category\" v-if=\"byCategory.length\">\n <div class=\"dropdown-item categories-list-title\">\n {{ __('shop.search.categories') }}\n </div>\n <div class=\"dropdown-item\" v-for=\"(item, index) in byCategory\" v-bind:key=\"index\">\n <slot name=\"item-category\" :item=\"item\" :searchHrefWithParameter=\"searchHrefWithParameter\">\n <div>\n <a :href=\"item.href + searchHrefWithParameter\">{{ item.name }}</a>\n </div>\n <div>\n {{ __('shop.search.category_found', { count: item.count }) }}\n </div>\n </slot>\n </div>\n </div>\n <div class=\"results-list-total\" v-if=\"total\">\n <p class=\"dropdown-item mb-3 mt-2\">\n {{\n __('shop.search.total_found', {\n total: total\n })\n }}\n <br />\n <a :href=\"searchUrl\">{{ __('shop.search.open_results') }}</a>\n </p>\n </div>\n <div class=\"products-list\" v-if=\"results.length\">\n <div class=\"dropdown-item products-list-title\">\n {{ __('shop.search.products') }}\n </div>\n <div class=\"dropdown-item\" v-for=\"(item, index) in results\" v-bind:key=\"item.id\" v-bind:class=\"{ 'is-active': current == index }\">\n <slot name=\"item\" :user=\"user\" :item=\"item\" :cart-refs=\"cartRefs\">\n <div class=\"columns\">\n <div class=\"column\">\n <div class=\"title\">\n <a :href=\"item.href\">\n {{ item.name }}\n </a>\n </div>\n <div class=\"price\" v-html=\"item.price\"></div>\n <div class=\"price_old\" v-if=\"item.price_old\">\n <span v-html=\"item.price_old\"></span>\n </div>\n <div class=\"code\">{{ item.code }}</div>\n <div class=\"quantity\" v-if=\"item.quantity\">\n {{ __('shop.search.in_stock') }}\n </div>\n <span class=\"no-quantity\" v-else>\n {{ __('shop.search.out_stock') }}\n </span>\n </div>\n <div class=\"column is-narrow\" v-if=\"!item.is_eol\">\n <cart-add :id=\"item.id\" :is-change-quantity=\"false\" :is-already-in-cart=\"false\" :ref=\"cartRefs\"></cart-add>\n </div>\n <div v-else class=\"column is-eol\">\n {{ __('shop.search.eol') }}\n </div>\n </div>\n </slot>\n </div>\n </div>\n </div>\n <div class=\"dropdown-content\" v-if=\"!isLoading && !results.length && !categories.length\">\n <div class=\"dropdown-item\">\n <div class=\"no-results\">\n {{ __('shop.search.no_results') }}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, watch, onBeforeUpdate, defineComponent, computed } from 'vue';\nimport { useStore } from 'vuex';\nimport { shop as api } from '@perevorot/shop/dist/api';\nimport SimpleBar from 'simplebar';\nimport SecureLS from 'secure-ls';\n\nexport default /*#__PURE__*/ defineComponent({\n name: 'search',\n props: {\n q: {\n type: String,\n default: ''\n },\n placeholder: {\n type: String,\n default: ''\n },\n parameter: {\n type: String,\n default: '/q{separator}'\n }\n },\n setup(props) {\n const ls = new SecureLS({\n isCompression: false\n });\n\n let q = props.q;\n\n if (q) {\n let encoder = document.createElement('textarea');\n encoder.innerHTML = q;\n q = encoder.value;\n }\n\n const isLoading = ref(false);\n const term = ref(q);\n const results = ref([]);\n const byCategory = ref([]);\n const total = ref(0);\n const current = ref(-1);\n const isDropdown = ref(false);\n const input = ref();\n const separator = ref('');\n const dropdownContent = ref();\n const history = ref(ls.get('search'));\n const menu = ref([]);\n const store = useStore();\n const user = computed(() => store.getters['auth/me']);\n\n let refs = [];\n let timeout;\n\n const search = () => {\n clearTimeout(timeout);\n\n current.value = -1;\n\n if (!term.value.trim()) {\n results.value = [];\n isLoading.value = false;\n } else {\n isLoading.value = true;\n\n //timeout = setTimeout(() => {\n if (term.value.trim()) {\n api.search(term.value)\n .then((response) => {\n if (response.data) {\n saveSearch();\n\n results.value = response.data.products;\n total.value = response.data.total;\n separator.value = response.data.separator;\n byCategory.value = response.data.byCategory;\n\n const scrollBar = new SimpleBar(dropdownContent.value);\n }\n })\n .finally(() => {\n isLoading.value = false;\n });\n }\n //}, 500);\n }\n };\n\n const saveSearch = () => {\n if (term.value.length > 1) {\n let search = ls.get('search') ? ls.get('search') : [];\n\n if (search.indexOf(term.value) !== -1) {\n search = search.filter((item) => item !== term.value);\n }\n\n if (search.length > 4) {\n search = search.slice(0, 4);\n }\n\n search.unshift(term.value);\n\n ls.set('search', search);\n\n history.value = search;\n }\n };\n\n const setSearchHistory = (term) => {\n term.value = term;\n };\n\n const clearSearchHistory = (event) => {\n ls.remove('search');\n\n history.value = [];\n\n input.value.focus();\n };\n\n onBeforeUpdate(() => {\n refs = [];\n });\n\n watch(\n () => term.value,\n () => {\n isDropdown.value = true;\n current.value = -1;\n search();\n }\n );\n\n const searchUrl = computed(() => {\n return term.value ? $env.locale.url + '/search' + searchHrefWithParameter.value : $env.locale.url + '/search';\n });\n\n const searchHrefWithParameter = computed(() => {\n return props.parameter.replace('{separator}', separator.value) + term.value.toLowerCase();\n });\n\n const preventCaret = (event) => {\n if (event.which == 38 || event.which == 40 || (event.which == 32 && current.value >= 0)) {\n event.preventDefault();\n }\n };\n\n const next = () => {\n if (current.value < results.value.length - 1) {\n current.value++;\n }\n };\n\n const prev = () => {\n if (current.value >= 0) {\n current.value--;\n }\n };\n\n const add = (event) => {\n if (current.value >= 0) {\n event.preventDefault();\n\n refs[current.value].add();\n }\n };\n\n const open = () => {\n if (current.value >= 0) {\n window.location.href = results.value[current.value].href;\n } else {\n window.location.href = searchUrl.value;\n }\n };\n\n const esc = (event) => {\n input.value.blur();\n close(event);\n };\n\n const cartRefs = (el) => {\n if (el) {\n refs.push(el);\n }\n };\n\n const close = (event) => {\n if (!event.target.closest('.cart')) {\n isDropdown.value = false;\n current.value = -1;\n }\n };\n\n const dropdown = () => {\n isDropdown.value = true;\n current.value = -1;\n };\n\n window.addEventListener('click', close);\n\n const categories = computed(() => {\n return term.value.length > 3 ? menu.value.filter((item) => item.search.indexOf(term.value) !== -1) : [];\n });\n\n const load = async () => {\n const menuElement = document.getElementById('menu');\n\n if (menuElement) {\n menuElement.querySelectorAll('[data-search]').forEach((element) => {\n const name = element.textContent.trim();\n const data = element.dataset.search;\n\n menu.value.push({\n name: (data ? data + ' / ' : '') + name,\n search: name.toLowerCase(),\n href: element.closest('a').href\n });\n });\n }\n\n if (props.q) {\n search();\n }\n };\n\n document.addEventListener('DOMContentLoaded', load, false);\n\n return {\n isLoading,\n term,\n results,\n next,\n prev,\n current,\n add,\n cartRefs,\n isDropdown,\n preventCaret,\n esc,\n input,\n dropdown,\n total,\n searchUrl,\n searchHrefWithParameter,\n open,\n categories,\n byCategory,\n dropdownContent,\n history,\n clearSearchHistory,\n setSearchHistory,\n user\n };\n }\n});\n</script>"],"names":["defineComponent","name","props","q","type","String","placeholder","parameter","setup","ls","SecureLS","isCompression","encoder","document","createElement","innerHTML","value","isLoading","ref","term","results","byCategory","total","current","isDropdown","input","separator","dropdownContent","history","get","menu","store","useStore","user","computed","getters","refs","search","clearTimeout","timeout","trim","api","then","response","data","saveSearch","products","SimpleBar","length","indexOf","filter","item","slice","unshift","set","onBeforeUpdate","watch","searchUrl","$env","locale","url","searchHrefWithParameter","replace","toLowerCase","close","event","target","closest","window","addEventListener","categories","load","menuElement","getElementById","querySelectorAll","forEach","element","textContent","dataset","push","href","resolve","arguments","i","next","prev","add","preventDefault","cartRefs","el","preventCaret","which","esc","blur","dropdown","open","location","clearSearchHistory","remove","focus","setSearchHistory","_createElementVNode","style","_createElementBlock","onClick","$event","stopPropagation","_ctx","_hoisted_1","onKeyup","onKeydown","_renderSlot","_hoisted_3","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","index","key","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_16","_hoisted_17","_hoisted_18","count","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_24","_hoisted_25","id","_hoisted_26","_hoisted_27","_hoisted_28","price","price_old","_hoisted_31","_hoisted_33","code","quantity","_hoisted_34","_hoisted_35","is_eol","_hoisted_37","_hoisted_36","_createVNode","_hoisted_38","_hoisted_39","_hoisted_40"],"mappings":"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"}
|
package/dist/store.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var t=require("@perevorot/shop/dist/api"),
|
|
1
|
+
"use strict";var t=require("@perevorot/shop/dist/api"),a={namespaced:!0,state:{items:[],cross:[],bundles:[],modal:!1},getters:{items:function(t){return t.items},cross:function(t){return t.cross},bundles:function(t){return t.bundles},productQuantity:function(t,a){return function(t){var n=a.items.find((function(a){return a.id===t}));return n?n.quantity:0}},quantity:function(t,a){var n=0;return a.items.forEach((function(t){n+=parseInt(t.quantity)})),n},total:function(t,a){var n=0;return a.items.forEach((function(t){var a=t.attributes.price?t.attributes.price:t.price;if(t.attributes.options&&t.attributes.options.length&&t.options&&t.options.length){var e=0;t.options.forEach((function(a){-1!==t.attributes.options.indexOf(a.id)&&(e+=parseInt(a.price))})),a+=e}n+=a*(!1===t.attributes.active?0:t.quantity)})),n},modal:function(t){return document.documentElement.classList[t.modal?"add":"remove"]("is-modal-open"),t.modal}},actions:{get:function(a,n){var e=a.commit;t.cart.items().then((function(t){e("items",t.data.items),t.data&&t.data.cross&&e("cross",t.data.cross),t.data&&t.data.bundles&&e("bundles",t.data.bundles),"function"==typeof n.callback&&n.callback()})).finally(n.finally)},add:function(a,n){var e=a.commit,c=a.state;t.cart.add(n.product).then((function(t){t.data&&t.data.items&&t.data.items.length?e("items",t.data.items):e("quantity",n.product),t.data&&t.data.cross&&e("cross",t.data.cross),t.data&&t.data.bundles&&e("bundles",t.data.bundles),c.modal||e("modal",!0),"function"==typeof n.callback&&n.callback()})).finally(n.finally)},options:function(a,n){var e=a.commit,c=a.state;t.cart.options(n.product).then((function(t){t.data&&t.data.items&&t.data.items.length&&e("items",t.data.items),c.modal||e("modal",!0),"function"==typeof n.callback&&n.callback()})).finally(n.finally)},quantity:function(a,n){var e=a.commit;t.cart.quantity(n.product).then((function(){e("quantity",n.product),"function"==typeof n.callback&&n.callback()})).finally(n.finally)},remove:function(a,n){var e=a.commit;t.cart.remove(n.id).then((function(t){e("remove",n.id),t.data&&t.data.cross&&e("cross",t.data.cross),t.data&&t.data.bundles&&e("bundles",t.data.bundles),"function"==typeof n.callback&&n.callback()})).finally(n.finally)},clear:function(a,n){var e=a.commit;t.cart.clear(n.id).then((function(){e("clear"),"function"==typeof n.callback&&n.callback()})).finally(n.finally)}},mutations:{modal:function(t,a){t.modal=a},items:function(t,a){t.items=a},cross:function(t,a){t.cross=a},bundles:function(t,a){t.bundles=a},remove:function(t,a){t.items=t.items.filter((function(t){return t.id!==a}))},quantity:function(t,a){var n=t.items.find((function(t){return t.id===a.id}));n.quantity=a.exact?a.exact:n.quantity+a.quantity},clear:function(t){t.items=[],t.cross=[],t.bundles=[]}}};function n(t){if(null==t)throw new TypeError("Cannot destructure undefined")}var e=require("vue-toastification").useToast(),c={me:function(t){return t.user},account:function(t){return t.account},modal:function(t){return document.documentElement.classList[t.modal?"add":"remove"]("is-modal-open"),t.modal},is:function(t){return Object.keys(t.user).length>0}},i={me:function(t,a){t.user=Array.isArray(a.user)&&!a.user.length?{}:a.user,t.account=a.account},modal:function(t,a){t.modal=a}},o={namespaced:!0,state:{items:[],list:[],last:""},getters:{items:function(t){return t.items},item:function(t,a){return function(t){return-1!==a.items.indexOf(t)}},list:function(t){return t.list},last:function(t){return t.last}},actions:{get:function(a,n){var e=a.commit;t.wishlist.items().then((function(t){e("items",t.data.items),"function"==typeof n.callback&&n.callback()})).finally(n.finally)},list:function(a,n){var e=a.commit;t.wishlist.list().then((function(t){e("list",t.data),"function"==typeof n.callback&&n.callback()})).finally(n.finally)},toggle:function(a,n){var e=a.commit;a.state,t.wishlist.toggle(n.id).then((function(t){t.data&&t.data.items&&e("items",t.data.items),t.data&&t.data.last&&e("last",t.data.last),"function"==typeof n.callback&&n.callback()})).finally(n.finally)}},mutations:{items:function(t,a){t.items=a},list:function(t,a){t.list=a},last:function(t,a){t.last=a},remove:function(t,a){t.items=t.items.filter((function(t){return t.id!==a}))}}},l={namespaced:!0,state:{products:[],categories:[],list:[],last:""},getters:{products:function(t){return t.products},categories:function(t){return t.categories},product:function(t,a){return function(t){return-1!==a.products.indexOf(t)}},list:function(t){return t.list},last:function(t){return t.last}},actions:{get:function(a,n){var e=a.commit;t.compare.items().then((function(t){e("products",t.data.products),e("categories",t.data.categories),"function"==typeof n.callback&&n.callback()})).finally(n.finally)},category:function(a,n){var e=a.commit;t.compare.category(n.slug).then((function(t){e("products",t.data.products),e("categories",t.data.categories),"function"==typeof n.callback&&n.callback()})).finally(n.finally)},list:function(a,n){var e=a.commit;t.compare.list().then((function(t){e("list",t.data),"function"==typeof n.callback&&n.callback()})).finally(n.finally)},toggle:function(a,n){var e=a.commit;a.state,t.compare.toggle(n.id).then((function(t){t.data&&(e("products",t.data.products),e("categories",t.data.categories),e("last",t.data.last)),"function"==typeof n.callback&&n.callback(t.data)})).finally(n.finally)},delete:function(a,n){a.commit,a.state,t.compare.delete(n.id).then((function(t){"function"==typeof n.callback&&n.callback(t.data)})).finally(n.finally)}},mutations:{products:function(t,a){t.products=a},categories:function(t,a){t.categories=a},list:function(t,a){t.list=a},remove:function(t,a){t.products=t.products.filter((function(t){return t.id!==a}))},last:function(t,a){t.last=a}}},s={namespaced:!0,state:{modal:!1},getters:{modal:function(t){return t.modal}},mutations:{modal:function(t,a){document.documentElement.classList[a?"add":"remove"]("is-modal-open"),t.modal=a}}},u={namespaced:!0,state:{steps:{},current:1,modal:!1},getters:{steps:function(t){return t.steps},current:function(t){return t.current},modal:function(t){return t.modal}},mutations:{step:function(t,a){Number.isInteger(a)?t.current=a:a.data&&(t.steps[a.step]=a.data)},stepInit:function(t,a){t.steps[a.step]||(t.steps[a.step]=a.data)},reset:function(t){t.steps={},t.current=1},modal:function(t,a){t.modal=a}}},r={modules:{cart:a,auth:{namespaced:!0,state:{user:{},modal:!1,account:[]},getters:c,actions:{me:function(a,n){var c=a.commit;t.auth.me().then((function(t){c("me",t.data),t.data.flash&&t.data.flash.message&&(console.error(t.data.flash.message),e(t.data.flash.message,{type:t.data.flash.type?t.data.flash.type:"default"})),t.data.flash&&t.data.flash.modal&&c("modal",t.data.flash.modal),n&&"function"==typeof n.callback&&n.callback()})).finally(n&&n.finally?n.finally:function(){})},login:function(a,n){var e=a.commit,c=a.dispatch;t.auth.login(n.credentials).then((function(t){e("me",t.data),e("modal",null),c("cart/get",{finally:function(){}},{root:!0}),c("wishlist/get",{finally:function(){}},{root:!0}),window.localStorage&&window.localStorage.clear(),n&&"function"==typeof n.callback&&n.callback()})).catch((function(t){n&&"function"==typeof n.catch&&n.catch(t)})).finally(n.finally)},logout:function(a,n){var e=a.commit;t.auth.logout().then((function(){e("me",{user:{},account:[]}),e("wishlist/items",[],{root:!0}),window.localStorage&&window.localStorage.clear(),n&&"function"==typeof n.callback&&n.callback(),-1!==window.location.href.indexOf("/account")&&(window.location.href=$env.locale.url+"/")}))},reset:function(a,e){n(a),t.auth.reset(e.credentials).then((function(t){if(e&&"function"==typeof e.callback){var a=t.data&&t.data.message?t.data.message:"";e.callback(a)}})).catch((function(t){e&&"function"==typeof e.callback&&t.response.data.errors&&t.response.data.errors.email&&e.callback(t.response.data.errors.email[0],!0)})).finally(e.finally)},passwordUpdate:function(a,e){n(a),t.auth.passwordUpdate(e.credentials).then((function(t){if(e&&"function"==typeof e.callback){var a=t.data&&t.data.message?t.data.message:"";e.callback(a)}})).catch((function(t){e&&"function"==typeof e.callback&&t.response.data.errors&&t.response.data.errors.email&&e.callback(t.response.data.errors.email[0],!0)})).finally(e.finally)},register:function(a,n){a.commit,t.auth["register"+n.type](n.credentials).then((function(t){n&&"function"==typeof n.callback&&n.callback()})).catch((function(t){n&&"function"==typeof n.catch&&n.catch(t)})).finally(n.finally)},update:function(a,n){a.commit,t.auth.update(n.credentials).then((function(t){n&&"function"==typeof n.callback&&n.callback()})).catch((function(t){n&&"function"==typeof n.catch&&n.catch(t)})).finally(n.finally)}},mutations:i},wishlist:o,compare:l,review:s,order:u,checkout:{namespaced:!0,state:{user:{},payment:null,shipping:null,shippingData:{},dontcall:!1,comment:""},getters:{user:function(t,a,n,e){return Object.keys(t.user).length?t.user:JSON.parse(JSON.stringify(e["auth/me"]))},shipping:function(t){return t.shipping},shippingData:function(t){return t.shippingData},payment:function(t){return t.payment},dontcall:function(t){return t.dontcall},comment:function(t){return t.comment}},mutations:{user:function(t,a){t.user=a},shipping:function(t,a){t.shipping=a},shippingData:function(t,a){t.shippingData=a},payment:function(t,a){t.payment=a},dontcall:function(t,a){t.dontcall=a},comment:function(t,a){t.comment=a},reset:function(t){t.user={},t.payment=null,t.shipping=null,t.shippingData={},t.dontcall=!1,t.comment=""}}}},strict:!1};module.exports=r;
|
|
2
2
|
//# sourceMappingURL=store.js.map
|
package/dist/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sources":["../src/store/modules/cart.js","../src/store/modules/auth.js","../src/store/modules/wishlist.js","../src/store/modules/compare.js","../src/store/modules/review.js","../src/store/modules/order.js","../src/store/index.js","../src/store/modules/checkout.js"],"sourcesContent":["import {\n cart as api\n} from '@perevorot/shop/dist/api'\n\nconst state = {\n items: [],\n cross: [],\n bundles: [],\n modal: false\n}\n\nconst getters = {\n items: (state) => {\n return state.items;\n },\n\n cross: (state) => {\n return state.cross;\n },\n\n bundles: (state) => {\n return state.bundles;\n },\n\n productQuantity: (state, getters) => (id) => {\n const product = getters.items.find(product => product.id === id);\n\n return product ? product.quantity : 0;\n },\n\n quantity: (state, getters) => {\n let count = 0;\n\n getters.items.forEach((item) => {\n count += parseInt(item.quantity);\n });\n\n return count;\n },\n\n total: (state, getters) => {\n let total = 0;\n\n getters.items.forEach((item) => {\n let price = (item.attributes.price ? item.attributes.price : item.price);\n\n if (item.attributes.options && item.attributes.options.length && item.options && item.options.length) {\n let optionsPrice = 0;\n\n item.options.forEach(option => {\n if (item.attributes.options.indexOf(option.id) !== -1) {\n optionsPrice += parseInt(option.price);\n }\n });\n\n price += optionsPrice;\n }\n\n total +=\n price *\n (item.attributes.active === false ? 0 : item.quantity);\n });\n\n return total;\n },\n\n modal: (state) => {\n document.documentElement.classList[state.modal ? 'add' : 'remove']('is-modal-open');\n\n return state.modal;\n }\n}\n\nconst actions = {\n get({\n commit\n }, data) {\n api.items().then((response) => {\n commit('items', response.data.items);\n\n if (response.data && response.data.cross) {\n commit('cross', response.data.cross);\n }\n\n if (response.data && response.data.bundles) {\n commit('bundles', response.data.bundles);\n }\n\n if (typeof data.callback == 'function') {\n data.callback();\n }\n }).finally(data.finally);\n },\n\n add({\n commit,\n state\n }, data) {\n api.add(data.product).then((response) => {\n if (response.data && response.data.items && response.data.items.length) {\n commit('items', response.data.items);\n } else {\n commit('quantity', data.product);\n }\n\n if (response.data && response.data.cross) {\n commit('cross', response.data.cross);\n }\n\n if (response.data && response.data.bundles) {\n commit('bundles', response.data.bundles);\n }\n\n if (!state.modal) {\n commit('modal', true);\n }\n\n if (typeof data.callback == 'function') {\n data.callback();\n }\n }).finally(data.finally);\n },\n\n options({\n commit,\n state\n }, data) {\n api.options(data.product).then((response) => {\n if (response.data && response.data.items && response.data.items.length) {\n commit('items', response.data.items);\n }\n\n if (!state.modal) {\n commit('modal', true);\n }\n\n if (typeof data.callback == 'function') {\n data.callback();\n }\n }).finally(data.finally);\n },\n\n quantity({\n commit\n }, data) {\n api.quantity(data.product).then(() => {\n commit('quantity', data.product);\n\n if (typeof data.callback == 'function') {\n data.callback();\n }\n }).finally(data.finally);\n },\n\n remove({\n commit\n }, data) {\n api.remove(data.id).then((response) => {\n commit('remove', data.id);\n\n if (response.data && response.data.cross) {\n commit('cross', response.data.cross);\n }\n\n if (response.data && response.data.bundles) {\n commit('bundles', response.data.bundles);\n }\n\n if (typeof data.callback == 'function') {\n data.callback();\n }\n }).finally(data.finally);\n },\n\n clear({\n commit\n }, data) {\n api.clear(data.id).then(() => {\n commit('clear');\n\n if (typeof data.callback == 'function') {\n data.callback();\n }\n }).finally(data.finally);\n }\n}\n\nconst mutations = {\n modal(state, action) {\n state.modal = action;\n },\n\n items(state, items) {\n state.items = items;\n },\n\n cross(state, cross) {\n state.cross = cross;\n },\n\n bundles(state, bundles) {\n state.bundles = bundles;\n },\n\n remove(state, id) {\n state.items = state.items.filter(item => item.id !== id);\n },\n\n quantity(state, item) {\n const product = state.items.find(product => product.id === item.id);\n\n product.quantity = item.exact ? item.exact : (product.quantity + item.quantity);\n },\n\n clear(state) {\n state.items = [];\n state.cross = [];\n state.bundles = [];\n },\n}\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations\n}","import {\n auth as api\n} from '@perevorot/shop/dist/api'\n// // import {\n// // useGlobalToast as useToast\n// // } from \"@/global/toast\";\n\n// const toast = useToast();\n\nconst state = {\n user: {},\n modal: false,\n account: []\n}\n\nconst getters = {\n me: (state) => {\n return state.user;\n },\n account: (state) => {\n return state.account;\n },\n modal: (state) => {\n document.documentElement.classList[state.modal ? 'add' : 'remove']('is-modal-open');\n\n return state.modal;\n },\n is: (state) => {\n return Object.keys(state.user).length > 0;\n }\n}\n\nconst actions = {\n me({\n commit\n }, data) {\n api.me().then((response) => {\n commit('me', response.data);\n\n if (response.data.flash && response.data.flash.message) {\n toast(response.data.flash.message, {\n type: response.data.flash.type ? response.data.flash.type : 'default'\n });\n }\n\n if (response.data.flash && response.data.flash.modal) {\n commit('modal', response.data.flash.modal);\n }\n\n if (data && typeof data.callback == 'function') {\n data.callback();\n }\n }).finally(data && data.finally ? data.finally : () => {});\n },\n login({\n commit,\n dispatch\n }, data) {\n api.login(data.credentials).then((response) => {\n commit('me', response.data);\n commit('modal', null);\n\n dispatch(\"cart/get\", {\n finally: () => {},\n }, {\n root: true\n });\n\n dispatch(\"wishlist/get\", {\n finally: () => {},\n }, {\n root: true\n });\n\n if (window.localStorage) {\n window.localStorage.clear();\n }\n\n if (data && typeof data.callback == 'function') {\n data.callback();\n }\n }).catch((error) => {\n if (data && typeof data.catch == 'function') {\n data.catch(error);\n }\n }).finally(data.finally);\n },\n logout({\n commit\n }, data) {\n api.logout().then(() => {\n commit('me', {\n user: {},\n account: []\n });\n\n commit(\"wishlist/items\", [], {\n root: true\n });\n\n if (window.localStorage) {\n window.localStorage.clear();\n }\n\n if (data && typeof data.callback == 'function') {\n data.callback();\n }\n\n if (window.location.href.indexOf('/account') !== -1) {\n window.location.href = $env.locale.url + '/';\n }\n });\n },\n reset({}, data) {\n api.reset(data.credentials).then((response) => {\n if (data && typeof data.callback == 'function') {\n const message = response.data && response.data.message ?\n response.data.message :\n \"\";\n\n data.callback(message);\n }\n }).catch((error) => {\n if (data && typeof data.callback == 'function') {\n if (error.response.data.errors && error.response.data.errors.email) {\n data.callback(error.response.data.errors.email[0], true);\n }\n }\n }).finally(data.finally);\n },\n passwordUpdate({}, data) {\n api.passwordUpdate(data.credentials).then((response) => {\n if (data && typeof data.callback == 'function') {\n const message = response.data && response.data.message ?\n response.data.message :\n \"\";\n\n data.callback(message);\n }\n }).catch((error) => {\n if (data && typeof data.callback == 'function') {\n if (error.response.data.errors && error.response.data.errors.email) {\n data.callback(error.response.data.errors.email[0], true);\n }\n }\n }).finally(data.finally);\n },\n register({\n commit\n }, data) {\n api['register' + data.type](data.credentials).then((response) => {\n if (data && typeof data.callback == 'function') {\n data.callback();\n }\n }).catch((error) => {\n if (data && typeof data.catch == 'function') {\n data.catch(error);\n }\n }).finally(data.finally);\n },\n update({\n commit\n }, data) {\n api['update'](data.credentials).then((response) => {\n if (data && typeof data.callback == 'function') {\n data.callback();\n }\n }).catch((error) => {\n if (data && typeof data.catch == 'function') {\n data.catch(error);\n }\n }).finally(data.finally);\n },\n}\n\nconst mutations = {\n me(state, me) {\n state.user = (Array.isArray(me.user) && !me.user.length ? {} : me.user);\n state.account = me.account;\n },\n modal(state, action) {\n state.modal = action;\n },\n}\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations\n}","import {\n wishlist as api\n} from '@perevorot/shop/dist/api'\n\nconst state = {\n items: [],\n list: [],\n last: ''\n}\n\nconst getters = {\n items: (state) => {\n return state.items;\n },\n item: (state, getters) => (id) => {\n return getters.items.indexOf(id) !== -1;\n },\n list: (state) => {\n return state.list;\n },\n // badge: (state) => {\n // return state.items.length;\n // },\n last: (state) => {\n return state.last;\n },\n}\n\nconst actions = {\n get({\n commit,\n }, data) {\n api.items().then((response) => {\n commit('items', response.data.items);\n\n if (typeof data.callback == 'function') {\n data.callback();\n }\n }).finally(data.finally);\n },\n\n list({\n commit,\n }, data) {\n api.list().then((response) => {\n commit('list', response.data);\n\n if (typeof data.callback == 'function') {\n data.callback();\n }\n }).finally(data.finally);\n },\n\n toggle({\n commit,\n state\n }, data) {\n api.toggle(data.id).then((response) => {\n if (response.data && response.data.items) {\n commit('items', response.data.items);\n }\n\n if (response.data && response.data.last) {\n commit('last', response.data.last);\n }\n\n if (typeof data.callback == 'function') {\n data.callback();\n }\n }).finally(data.finally);\n },\n}\n\nconst mutations = {\n items(state, items) {\n state.items = items;\n },\n\n list(state, list) {\n state.list = list;\n },\n\n last(state, last) {\n state.last = last;\n },\n\n remove(state, id) {\n state.items = state.items.filter(item => item.id !== id);\n },\n}\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations\n}","import {\n compare as api\n} from '@perevorot/shop/dist/api'\n\nconst state = {\n products: [],\n categories: [],\n list: [],\n last: ''\n}\n\nconst getters = {\n products: (state) => {\n return state.products;\n },\n categories: (state) => {\n return state.categories;\n },\n product: (state, getters) => (id) => {\n return getters.products.indexOf(id) !== -1;\n },\n list: (state) => {\n return state.list;\n },\n last: (state) => {\n return state.last;\n },\n}\n\nconst actions = {\n get({\n commit,\n }, data) {\n api.items().then((response) => {\n commit('products', response.data.products);\n commit('categories', response.data.categories);\n\n if (typeof data.callback == 'function') {\n data.callback();\n }\n }).finally(data.finally);\n },\n\n category({\n commit,\n }, data) {\n api.category(data.slug).then((response) => {\n commit('products', response.data.products);\n commit('categories', response.data.categories);\n\n if (typeof data.callback == 'function') {\n data.callback();\n }\n }).finally(data.finally);\n },\n\n list({\n commit,\n }, data) {\n api.list().then((response) => {\n commit('list', response.data);\n\n if (typeof data.callback == 'function') {\n data.callback();\n }\n }).finally(data.finally);\n },\n\n toggle({\n commit,\n state\n }, data) {\n api.toggle(data.id).then((response) => {\n if (response.data) {\n commit('products', response.data.products);\n commit('categories', response.data.categories);\n commit('last', response.data.last);\n }\n\n if (typeof data.callback == 'function') {\n data.callback(response.data);\n }\n }).finally(data.finally);\n },\n\n delete({\n commit,\n state\n }, data) {\n api.delete(data.id).then((response) => {\n if (typeof data.callback == 'function') {\n data.callback(response.data);\n }\n }).finally(data.finally);\n },\n}\n\nconst mutations = {\n products(state, products) {\n state.products = products;\n },\n\n categories(state, categories) {\n state.categories = categories;\n },\n\n list(state, list) {\n state.list = list;\n },\n\n remove(state, id) {\n state.products = state.products.filter(item => item.id !== id);\n },\n\n last(state, last) {\n state.last = last;\n },\n}\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations\n}","const state = {\n modal: false\n}\n\nconst getters = {\n modal: (state) => {\n return state.modal;\n }\n}\n\nconst mutations = {\n modal(state, action) {\n document.documentElement.classList[action ? 'add' : 'remove']('is-modal-open');\n\n state.modal = action;\n },\n}\n\nexport default {\n namespaced: true,\n state,\n getters,\n mutations\n}","const state = {\n steps: {},\n current: 1,\n modal: false,\n}\n\nconst getters = {\n steps: (state) => {\n return state.steps;\n },\n current: (state) => {\n return state.current;\n },\n modal: (state) => {\n return state.modal;\n }\n}\n\nconst mutations = {\n step(state, data) {\n if (Number.isInteger(data)) {\n state.current = data;\n } else {\n if (data.data) {\n state.steps[data.step] = data.data;\n }\n }\n },\n stepInit(state, data) {\n if (!state.steps[data.step]) {\n state.steps[data.step] = data.data;\n }\n },\n reset(state) {\n state.steps = {};\n state.current = 1;\n },\n modal(state, action) {\n state.modal = action;\n },\n}\n\nexport default {\n namespaced: true,\n state,\n getters,\n mutations\n}","import cart from './modules/cart';\nimport auth from './modules/auth';\nimport wishlist from './modules/wishlist';\nimport compare from './modules/compare';\nimport review from './modules/review';\nimport order from './modules/order';\nimport checkout from './modules/checkout';\n\nexport default {\n modules: {\n cart,\n auth,\n wishlist,\n compare,\n review,\n order,\n checkout,\n },\n strict: false,\n};","const state = {\n user: {},\n payment: null,\n shipping: null,\n shippingData: {},\n dontcall: false,\n comment: ''\n};\n\nconst getters = {\n user: (state, getters, rootState, rootGetters) => {\n //return state.user;\n return Object.keys(state.user).length ? state.user : JSON.parse(JSON.stringify(rootGetters['auth/me']));\n },\n shipping: (state) => {\n return state.shipping;\n },\n shippingData: (state) => {\n return state.shippingData;\n },\n payment: (state) => {\n return state.payment;\n },\n dontcall: (state) => {\n return state.dontcall;\n },\n comment: (state) => {\n return state.comment;\n },\n}\n\nconst mutations = {\n user(state, data) {\n state.user = data;\n },\n shipping(state, data) {\n state.shipping = data;\n },\n shippingData(state, data) {\n state.shippingData = data;\n },\n payment(state, data) {\n state.payment = data;\n },\n dontcall(state, data) {\n state.dontcall = data;\n },\n comment(state, data) {\n state.comment = data;\n },\n reset(state) {\n state.user = {};\n state.payment = null;\n state.shipping = null;\n state.shippingData = {};\n state.dontcall = false;\n state.comment = '';\n },\n}\n\nexport default {\n namespaced: true,\n state,\n getters,\n mutations\n}"],"names":["namespaced","state","items","cross","bundles","modal","getters","productQuantity","id","product","find","quantity","count","forEach","item","parseInt","total","price","attributes","options","length","optionsPrice","option","indexOf","active","document","documentElement","classList","actions","get","data","commit","api","then","response","callback","add","remove","clear","mutations","action","filter","exact","me","user","account","is","Object","keys","Array","isArray","list","last","toggle","products","categories","category","slug","steps","current","step","Number","isInteger","stepInit","reset","modules","cart","auth","flash","message","toast","type","login","dispatch","credentials","root","window","localStorage","error","logout","location","href","$env","locale","url","errors","email","passwordUpdate","register","update","wishlist","compare","review","order","checkout","payment","shipping","shippingData","dontcall","comment","rootState","rootGetters","JSON","parse","stringify","strict"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"store.js","sources":["../src/store/modules/cart.js","../src/store/modules/auth.js","../src/store/modules/wishlist.js","../src/store/modules/compare.js","../src/store/modules/review.js","../src/store/modules/order.js","../src/store/index.js","../src/store/modules/checkout.js"],"sourcesContent":["import {\n cart as api\n} from '@perevorot/shop/dist/api'\n\nconst state = {\n items: [],\n cross: [],\n bundles: [],\n modal: false\n}\n\nconst getters = {\n items: (state) => {\n return state.items;\n },\n\n cross: (state) => {\n return state.cross;\n },\n\n bundles: (state) => {\n return state.bundles;\n },\n\n productQuantity: (state, getters) => (id) => {\n const product = getters.items.find(product => product.id === id);\n\n return product ? product.quantity : 0;\n },\n\n quantity: (state, getters) => {\n let count = 0;\n\n getters.items.forEach((item) => {\n count += parseInt(item.quantity);\n });\n\n return count;\n },\n\n total: (state, getters) => {\n let total = 0;\n\n getters.items.forEach((item) => {\n let price = (item.attributes.price ? item.attributes.price : item.price);\n\n if (item.attributes.options && item.attributes.options.length && item.options && item.options.length) {\n let optionsPrice = 0;\n\n item.options.forEach(option => {\n if (item.attributes.options.indexOf(option.id) !== -1) {\n optionsPrice += parseInt(option.price);\n }\n });\n\n price += optionsPrice;\n }\n\n total +=\n price *\n (item.attributes.active === false ? 0 : item.quantity);\n });\n\n return total;\n },\n\n modal: (state) => {\n document.documentElement.classList[state.modal ? 'add' : 'remove']('is-modal-open');\n\n return state.modal;\n }\n}\n\nconst actions = {\n get({\n commit\n }, data) {\n api.items().then((response) => {\n commit('items', response.data.items);\n\n if (response.data && response.data.cross) {\n commit('cross', response.data.cross);\n }\n\n if (response.data && response.data.bundles) {\n commit('bundles', response.data.bundles);\n }\n\n if (typeof data.callback == 'function') {\n data.callback();\n }\n }).finally(data.finally);\n },\n\n add({\n commit,\n state\n }, data) {\n api.add(data.product).then((response) => {\n if (response.data && response.data.items && response.data.items.length) {\n commit('items', response.data.items);\n } else {\n commit('quantity', data.product);\n }\n\n if (response.data && response.data.cross) {\n commit('cross', response.data.cross);\n }\n\n if (response.data && response.data.bundles) {\n commit('bundles', response.data.bundles);\n }\n\n if (!state.modal) {\n commit('modal', true);\n }\n\n if (typeof data.callback == 'function') {\n data.callback();\n }\n }).finally(data.finally);\n },\n\n options({\n commit,\n state\n }, data) {\n api.options(data.product).then((response) => {\n if (response.data && response.data.items && response.data.items.length) {\n commit('items', response.data.items);\n }\n\n if (!state.modal) {\n commit('modal', true);\n }\n\n if (typeof data.callback == 'function') {\n data.callback();\n }\n }).finally(data.finally);\n },\n\n quantity({\n commit\n }, data) {\n api.quantity(data.product).then(() => {\n commit('quantity', data.product);\n\n if (typeof data.callback == 'function') {\n data.callback();\n }\n }).finally(data.finally);\n },\n\n remove({\n commit\n }, data) {\n api.remove(data.id).then((response) => {\n commit('remove', data.id);\n\n if (response.data && response.data.cross) {\n commit('cross', response.data.cross);\n }\n\n if (response.data && response.data.bundles) {\n commit('bundles', response.data.bundles);\n }\n\n if (typeof data.callback == 'function') {\n data.callback();\n }\n }).finally(data.finally);\n },\n\n clear({\n commit\n }, data) {\n api.clear(data.id).then(() => {\n commit('clear');\n\n if (typeof data.callback == 'function') {\n data.callback();\n }\n }).finally(data.finally);\n }\n}\n\nconst mutations = {\n modal(state, action) {\n state.modal = action;\n },\n\n items(state, items) {\n state.items = items;\n },\n\n cross(state, cross) {\n state.cross = cross;\n },\n\n bundles(state, bundles) {\n state.bundles = bundles;\n },\n\n remove(state, id) {\n state.items = state.items.filter(item => item.id !== id);\n },\n\n quantity(state, item) {\n const product = state.items.find(product => product.id === item.id);\n\n product.quantity = item.exact ? item.exact : (product.quantity + item.quantity);\n },\n\n clear(state) {\n state.items = [];\n state.cross = [];\n state.bundles = [];\n },\n}\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations\n}","import {\n auth as api\n} from '@perevorot/shop/dist/api'\n// import {\n// useGlobalToast as useToast\n// } from \"@/global/toast\";\nimport { useToast } from 'vue-toastification';\nconst toast = useToast();\n\nconst state = {\n user: {},\n modal: false,\n account: []\n}\n\nconst getters = {\n me: (state) => {\n return state.user;\n },\n account: (state) => {\n return state.account;\n },\n modal: (state) => {\n document.documentElement.classList[state.modal ? 'add' : 'remove']('is-modal-open');\n\n return state.modal;\n },\n is: (state) => {\n return Object.keys(state.user).length > 0;\n }\n}\n\nconst actions = {\n me({\n commit\n }, data) {\n api.me().then((response) => {\n commit('me', response.data);\n\n if (response.data.flash && response.data.flash.message) {\n console.error(response.data.flash.message);\n\n toast(response.data.flash.message, {\n type: response.data.flash.type ? response.data.flash.type : 'default'\n });\n }\n\n if (response.data.flash && response.data.flash.modal) {\n commit('modal', response.data.flash.modal);\n }\n\n if (data && typeof data.callback == 'function') {\n data.callback();\n }\n }).finally(data && data.finally ? data.finally : () => {});\n },\n login({\n commit,\n dispatch\n }, data) {\n api.login(data.credentials).then((response) => {\n commit('me', response.data);\n commit('modal', null);\n\n dispatch(\"cart/get\", {\n finally: () => {},\n }, {\n root: true\n });\n\n dispatch(\"wishlist/get\", {\n finally: () => {},\n }, {\n root: true\n });\n\n if (window.localStorage) {\n window.localStorage.clear();\n }\n\n if (data && typeof data.callback == 'function') {\n data.callback();\n }\n }).catch((error) => {\n if (data && typeof data.catch == 'function') {\n data.catch(error);\n }\n }).finally(data.finally);\n },\n logout({\n commit\n }, data) {\n api.logout().then(() => {\n commit('me', {\n user: {},\n account: []\n });\n\n commit(\"wishlist/items\", [], {\n root: true\n });\n\n if (window.localStorage) {\n window.localStorage.clear();\n }\n\n if (data && typeof data.callback == 'function') {\n data.callback();\n }\n\n if (window.location.href.indexOf('/account') !== -1) {\n window.location.href = $env.locale.url + '/';\n }\n });\n },\n reset({}, data) {\n api.reset(data.credentials).then((response) => {\n if (data && typeof data.callback == 'function') {\n const message = response.data && response.data.message ?\n response.data.message :\n \"\";\n\n data.callback(message);\n }\n }).catch((error) => {\n if (data && typeof data.callback == 'function') {\n if (error.response.data.errors && error.response.data.errors.email) {\n data.callback(error.response.data.errors.email[0], true);\n }\n }\n }).finally(data.finally);\n },\n passwordUpdate({}, data) {\n api.passwordUpdate(data.credentials).then((response) => {\n if (data && typeof data.callback == 'function') {\n const message = response.data && response.data.message ?\n response.data.message :\n \"\";\n\n data.callback(message);\n }\n }).catch((error) => {\n if (data && typeof data.callback == 'function') {\n if (error.response.data.errors && error.response.data.errors.email) {\n data.callback(error.response.data.errors.email[0], true);\n }\n }\n }).finally(data.finally);\n },\n register({\n commit\n }, data) {\n api['register' + data.type](data.credentials).then((response) => {\n if (data && typeof data.callback == 'function') {\n data.callback();\n }\n }).catch((error) => {\n if (data && typeof data.catch == 'function') {\n data.catch(error);\n }\n }).finally(data.finally);\n },\n update({\n commit\n }, data) {\n api['update'](data.credentials).then((response) => {\n if (data && typeof data.callback == 'function') {\n data.callback();\n }\n }).catch((error) => {\n if (data && typeof data.catch == 'function') {\n data.catch(error);\n }\n }).finally(data.finally);\n },\n}\n\nconst mutations = {\n me(state, me) {\n state.user = (Array.isArray(me.user) && !me.user.length ? {} : me.user);\n state.account = me.account;\n },\n modal(state, action) {\n state.modal = action;\n },\n}\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations\n}","import {\n wishlist as api\n} from '@perevorot/shop/dist/api'\n\nconst state = {\n items: [],\n list: [],\n last: ''\n}\n\nconst getters = {\n items: (state) => {\n return state.items;\n },\n item: (state, getters) => (id) => {\n return getters.items.indexOf(id) !== -1;\n },\n list: (state) => {\n return state.list;\n },\n // badge: (state) => {\n // return state.items.length;\n // },\n last: (state) => {\n return state.last;\n },\n}\n\nconst actions = {\n get({\n commit,\n }, data) {\n api.items().then((response) => {\n commit('items', response.data.items);\n\n if (typeof data.callback == 'function') {\n data.callback();\n }\n }).finally(data.finally);\n },\n\n list({\n commit,\n }, data) {\n api.list().then((response) => {\n commit('list', response.data);\n\n if (typeof data.callback == 'function') {\n data.callback();\n }\n }).finally(data.finally);\n },\n\n toggle({\n commit,\n state\n }, data) {\n api.toggle(data.id).then((response) => {\n if (response.data && response.data.items) {\n commit('items', response.data.items);\n }\n\n if (response.data && response.data.last) {\n commit('last', response.data.last);\n }\n\n if (typeof data.callback == 'function') {\n data.callback();\n }\n }).finally(data.finally);\n },\n}\n\nconst mutations = {\n items(state, items) {\n state.items = items;\n },\n\n list(state, list) {\n state.list = list;\n },\n\n last(state, last) {\n state.last = last;\n },\n\n remove(state, id) {\n state.items = state.items.filter(item => item.id !== id);\n },\n}\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations\n}","import {\n compare as api\n} from '@perevorot/shop/dist/api'\n\nconst state = {\n products: [],\n categories: [],\n list: [],\n last: ''\n}\n\nconst getters = {\n products: (state) => {\n return state.products;\n },\n categories: (state) => {\n return state.categories;\n },\n product: (state, getters) => (id) => {\n return getters.products.indexOf(id) !== -1;\n },\n list: (state) => {\n return state.list;\n },\n last: (state) => {\n return state.last;\n },\n}\n\nconst actions = {\n get({\n commit,\n }, data) {\n api.items().then((response) => {\n commit('products', response.data.products);\n commit('categories', response.data.categories);\n\n if (typeof data.callback == 'function') {\n data.callback();\n }\n }).finally(data.finally);\n },\n\n category({\n commit,\n }, data) {\n api.category(data.slug).then((response) => {\n commit('products', response.data.products);\n commit('categories', response.data.categories);\n\n if (typeof data.callback == 'function') {\n data.callback();\n }\n }).finally(data.finally);\n },\n\n list({\n commit,\n }, data) {\n api.list().then((response) => {\n commit('list', response.data);\n\n if (typeof data.callback == 'function') {\n data.callback();\n }\n }).finally(data.finally);\n },\n\n toggle({\n commit,\n state\n }, data) {\n api.toggle(data.id).then((response) => {\n if (response.data) {\n commit('products', response.data.products);\n commit('categories', response.data.categories);\n commit('last', response.data.last);\n }\n\n if (typeof data.callback == 'function') {\n data.callback(response.data);\n }\n }).finally(data.finally);\n },\n\n delete({\n commit,\n state\n }, data) {\n api.delete(data.id).then((response) => {\n if (typeof data.callback == 'function') {\n data.callback(response.data);\n }\n }).finally(data.finally);\n },\n}\n\nconst mutations = {\n products(state, products) {\n state.products = products;\n },\n\n categories(state, categories) {\n state.categories = categories;\n },\n\n list(state, list) {\n state.list = list;\n },\n\n remove(state, id) {\n state.products = state.products.filter(item => item.id !== id);\n },\n\n last(state, last) {\n state.last = last;\n },\n}\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations\n}","const state = {\n modal: false\n}\n\nconst getters = {\n modal: (state) => {\n return state.modal;\n }\n}\n\nconst mutations = {\n modal(state, action) {\n document.documentElement.classList[action ? 'add' : 'remove']('is-modal-open');\n\n state.modal = action;\n },\n}\n\nexport default {\n namespaced: true,\n state,\n getters,\n mutations\n}","const state = {\n steps: {},\n current: 1,\n modal: false,\n}\n\nconst getters = {\n steps: (state) => {\n return state.steps;\n },\n current: (state) => {\n return state.current;\n },\n modal: (state) => {\n return state.modal;\n }\n}\n\nconst mutations = {\n step(state, data) {\n if (Number.isInteger(data)) {\n state.current = data;\n } else {\n if (data.data) {\n state.steps[data.step] = data.data;\n }\n }\n },\n stepInit(state, data) {\n if (!state.steps[data.step]) {\n state.steps[data.step] = data.data;\n }\n },\n reset(state) {\n state.steps = {};\n state.current = 1;\n },\n modal(state, action) {\n state.modal = action;\n },\n}\n\nexport default {\n namespaced: true,\n state,\n getters,\n mutations\n}","import cart from './modules/cart';\nimport auth from './modules/auth';\nimport wishlist from './modules/wishlist';\nimport compare from './modules/compare';\nimport review from './modules/review';\nimport order from './modules/order';\nimport checkout from './modules/checkout';\n\nexport default {\n modules: {\n cart,\n auth,\n wishlist,\n compare,\n review,\n order,\n checkout,\n },\n strict: false,\n};","const state = {\n user: {},\n payment: null,\n shipping: null,\n shippingData: {},\n dontcall: false,\n comment: ''\n};\n\nconst getters = {\n user: (state, getters, rootState, rootGetters) => {\n //return state.user;\n return Object.keys(state.user).length ? state.user : JSON.parse(JSON.stringify(rootGetters['auth/me']));\n },\n shipping: (state) => {\n return state.shipping;\n },\n shippingData: (state) => {\n return state.shippingData;\n },\n payment: (state) => {\n return state.payment;\n },\n dontcall: (state) => {\n return state.dontcall;\n },\n comment: (state) => {\n return state.comment;\n },\n}\n\nconst mutations = {\n user(state, data) {\n state.user = data;\n },\n shipping(state, data) {\n state.shipping = data;\n },\n shippingData(state, data) {\n state.shippingData = data;\n },\n payment(state, data) {\n state.payment = data;\n },\n dontcall(state, data) {\n state.dontcall = data;\n },\n comment(state, data) {\n state.comment = data;\n },\n reset(state) {\n state.user = {};\n state.payment = null;\n state.shipping = null;\n state.shippingData = {};\n state.dontcall = false;\n state.comment = '';\n },\n}\n\nexport default {\n namespaced: true,\n state,\n getters,\n mutations\n}"],"names":["namespaced","state","items","cross","bundles","modal","getters","productQuantity","id","product","find","quantity","count","forEach","item","parseInt","total","price","attributes","options","length","optionsPrice","option","indexOf","active","document","documentElement","classList","actions","get","data","commit","api","then","response","callback","add","remove","clear","mutations","action","filter","exact","toast","me","user","account","is","Object","keys","Array","isArray","list","last","toggle","products","categories","category","slug","steps","current","step","Number","isInteger","stepInit","reset","modules","cart","auth","flash","message","console","error","type","login","dispatch","credentials","root","window","localStorage","logout","location","href","$env","locale","url","errors","email","passwordUpdate","register","update","wishlist","compare","review","order","checkout","payment","shipping","shippingData","dontcall","comment","rootState","rootGetters","JSON","parse","stringify","strict"],"mappings":"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"}
|