@perevorot/shop 2.0.14 → 2.0.15

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=e.defineComponent({setup:function(){var t=e.ref(!1),n=e.ref(!0),o=e.ref([]),a=[],r={},i=!1,c=!1,l=function(e){console.log(e.href),console.log(e.pathname);var t=e.pathname.replace(/\/$/,""),n=t.substring(t.lastIndexOf("/")+1);return"page-product-"+(n.match(/^page([0-9]+)$/)?n:"page1")},s=[l(window.location)],u=function(e){e.preventDefault(),s=[l(e.currentTarget)],d(e.currentTarget)},p=function(e){var t=e.pathname.replace(/\/$/,""),n=t.substring(t.lastIndexOf("/")+1),o=n.match(/^page([0-9]+)$/),a=o?n:"";o&&(t=t.substring(0,t.lastIndexOf("/")));var r=e.hash?e.hash.substring(1):"";return t=(r?-1!==e.pathname.indexOf(":")?t+";"+r:t+"/"+r:t)+(a?"/"+a:""),$env.shop.isTrailingSlash&&(t+="/"),e.origin+t+(e.search?e.search+"&paginator":"?paginator")},d=function(n,c){var s=p(n),u=l(n);if(i||(window.app.component("products-paginate",{data:function(){return{components:o}},template:'<teleport to="#products"><component :is="component" v-for="(component, key) in components" v-bind:key="key"></component></teleport>'}),t.value="products-paginate",i=!0),-1===a.indexOf(u))n.classList.add("is-loading"),document.documentElement.classList.add("is-catalog-loading"),$http.get(s).then((function(t){g(c);var i=document.createElement("html");i.innerHTML=t.data.products,window.app.component(u,{template:i.querySelector("#products").innerHTML}),a.push(u),history.pushState({urlPath:n.href},document.title,n.href),i.innerHTML=t.data.paginator,r[u]=t.data.paginator,document.getElementById("pagination").replaceWith(i.querySelector("#pagination")),c?(o.value.push(u),m()):(o.value=[u],window.scrollTo({top:0,left:0,behavior:"smooth"})),window.lazyImages&&window.lazyImages.update(),e.nextTick(h)})).catch((function(e){console.error(e)})).finally((function(){document.documentElement.classList.remove("is-catalog-loading")}));else{history.pushState({urlPath:s},document.title,s);var d=document.createElement("html");d.innerHTML=r[u],document.getElementById("pagination").replaceWith(d.querySelector("#pagination")),c?(o.value.push(u),m()):(o.value=[u],window.scrollTo({top:0,left:0,behavior:"smooth"})),e.nextTick(h)}},m=function(){var e=document.getElementById("pagination");s.forEach((function(t){var n=e.querySelector("."+t);n&&n.classList.add("is-current")}))},g=function(e){e||c||(document.querySelectorAll("#products > *").forEach((function(e){e.remove()})),c=!0)},h=function(){var e=document.querySelector("#pagination .pagination-next:not([disabled])");document.querySelectorAll("#pagination a:not([disabled])").forEach((function(e){e.addEventListener("click",u)})),n.value=Boolean(e),window.lazyImages&&window.lazyImages.update()};return e.onMounted((function(){h()})),{component:t,hasMorePages:n,more:function(){var e=document.querySelector("#pagination .pagination-next:not([disabled])");p(e);var t=l(e);s.push(t),d(e,!0)}}}}),n={class:"shop-pagination has-text-centered mb-3"},o={key:0,class:"shop-pagination-more"},a=e.createElementVNode("span",{class:"icon is-small"},[e.createElementVNode("i",{class:"fas fa-sync-alt"})],-1);t.render=function(t,r,i,c,l,s){return e.openBlock(),e.createElementBlock("div",n,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.component))),t.hasMorePages?(e.openBlock(),e.createElementBlock("div",o,[e.renderSlot(t.$slots,"default",{more:t.more},(function(){return[e.createElementVNode("button",{class:"button is-small",onClick:r[0]||(r[0]=function(){return t.more&&t.more.apply(t,arguments)})},[a,e.createElementVNode("span",null,e.toDisplayString(t.__("shop.pagination.more")),1)])]}))])):e.createCommentVNode("v-if",!0)])},module.exports=t;
1
+ "use strict";var e=require("vue"),t=e.defineComponent({setup:function(){var t=e.ref(!1),n=e.ref(!0),o=e.ref([]),a=[],r={},i=!1,c=!1,l=function(e){var t=e.pathname.replace(/\/$/,""),n=t.substring(t.lastIndexOf("/")+1);return"page-product-"+(n.match(/^page([0-9]+)$/)?n:"page1")},s=[l(window.location)],u=function(e){e.preventDefault(),s=[l(e.currentTarget)],d(e.currentTarget)},p=function(e){var t=e.pathname.replace(/\/$/,""),n=t.substring(t.lastIndexOf("/")+1),o=n.match(/^page([0-9]+)$/),a=o?n:"";o&&(t=t.substring(0,t.lastIndexOf("/")));var r=e.hash?e.hash.substring(1):"";return t=(r?-1!==e.pathname.indexOf(":")?t+";"+r:t+"/"+r:t)+(a?"/"+a:""),$env.shop.isTrailingSlash&&(t+="/"),e.origin+t+(e.search?e.search+"&paginator":"?paginator")},d=function(n,c){var s=p(n),u=l(n);if(i||(window.app.component("products-paginate",{data:function(){return{components:o}},template:'<teleport to="#products"><component :is="component" v-for="(component, key) in components" v-bind:key="key"></component></teleport>'}),t.value="products-paginate",i=!0),-1===a.indexOf(u))n.classList.add("is-loading"),document.documentElement.classList.add("is-catalog-loading"),$http.get(s).then((function(t){g(c);var i=document.createElement("html");i.innerHTML=t.data.products,window.app.component(u,{template:i.querySelector("#products").innerHTML}),a.push(u),history.pushState({urlPath:n.href},document.title,n.href),i.innerHTML=t.data.paginator,r[u]=t.data.paginator,document.getElementById("pagination").replaceWith(i.querySelector("#pagination")),c?(o.value.push(u),m()):(o.value=[u],window.scrollTo({top:0,left:0,behavior:"smooth"})),window.lazyImages&&window.lazyImages.update(),e.nextTick(h)})).catch((function(e){console.error(e)})).finally((function(){document.documentElement.classList.remove("is-catalog-loading")}));else{history.pushState({urlPath:s},document.title,s);var d=document.createElement("html");d.innerHTML=r[u],document.getElementById("pagination").replaceWith(d.querySelector("#pagination")),c?(o.value.push(u),m()):(o.value=[u],window.scrollTo({top:0,left:0,behavior:"smooth"})),e.nextTick(h)}},m=function(){var e=document.getElementById("pagination");s.forEach((function(t){var n=e.querySelector("."+t);n&&n.classList.add("is-current")}))},g=function(e){e||c||(document.querySelectorAll("#products > *").forEach((function(e){e.remove()})),c=!0)},h=function(){var e=document.querySelector("#pagination .pagination-next:not([disabled])");document.querySelectorAll("#pagination a:not([disabled])").forEach((function(e){e.addEventListener("click",u)})),n.value=Boolean(e),window.lazyImages&&window.lazyImages.update()};return e.onMounted((function(){h()})),{component:t,hasMorePages:n,more:function(){var e=document.querySelector("#pagination .pagination-next:not([disabled])");p(e);var t=l(e);s.push(t),d(e,!0)}}}}),n={class:"shop-pagination has-text-centered mb-3"},o={key:0,class:"shop-pagination-more"},a=e.createElementVNode("span",{class:"icon is-small"},[e.createElementVNode("i",{class:"fas fa-sync-alt"})],-1);t.render=function(t,r,i,c,l,s){return e.openBlock(),e.createElementBlock("div",n,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.component))),t.hasMorePages?(e.openBlock(),e.createElementBlock("div",o,[e.renderSlot(t.$slots,"default",{more:t.more},(function(){return[e.createElementVNode("button",{class:"button is-small",onClick:r[0]||(r[0]=function(){return t.more&&t.more.apply(t,arguments)})},[a,e.createElementVNode("span",null,e.toDisplayString(t.__("shop.pagination.more")),1)])]}))])):e.createCommentVNode("v-if",!0)])},module.exports=t;
2
2
  //# sourceMappingURL=Pagination.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination.js","sources":["../../../src/components/shop/Pagination.vue","../../../src/components/shop/Pagination.vue?vue&type=template&id=5bd5348a&lang.js"],"sourcesContent":["<template>\n <div class=\"shop-pagination has-text-centered mb-3\">\n <component :is=\"component\"></component>\n <div class=\"shop-pagination-more\" v-if=\"hasMorePages\">\n <slot :more=\"more\">\n <button class=\"button is-small\" @click=\"more\">\n <span class=\"icon is-small\">\n <i class=\"fas fa-sync-alt\"></i>\n </span>\n <span>{{ __('shop.pagination.more') }}</span>\n </button>\n </slot>\n </div>\n </div>\n</template>\n<script>\nimport { ref, onMounted, defineComponent, nextTick } from 'vue';\n\nexport default defineComponent({\n setup() {\n const component = ref(false);\n const hasMorePages = ref(true);\n const visiblePages = ref([]);\n\n let pages = [];\n let paginators = {};\n let inited = false;\n let cleared = false;\n\n const getComponentName = (a) => {\n console.log(a.href);\n console.log(a.pathname);\n\n const href = a.pathname.replace(/\\/$/, '');\n const last = href.substring(href.lastIndexOf('/') + 1);\n\n return 'page-product-' + (last.match(/^page([0-9]+)$/) ? last : 'page1');\n };\n\n let nextPages = [getComponentName(window.location)];\n\n const get = (e) => {\n e.preventDefault();\n\n nextPages = [getComponentName(e.currentTarget)];\n\n load(e.currentTarget);\n };\n\n const parseHref = (a) => {\n let pathname = a.pathname.replace(/\\/$/, '');\n const page = pathname.substring(pathname.lastIndexOf('/') + 1);\n const isPage = page.match(/^page([0-9]+)$/);\n const pageUrl = isPage ? page : '';\n\n if (isPage) {\n pathname = pathname.substring(0, pathname.lastIndexOf('/'));\n }\n\n const hash = a.hash ? a.hash.substring(1) : '';\n\n pathname = (hash ? (a.pathname.indexOf(':') !== -1 ? pathname + ';' + hash : pathname + '/' + hash) : pathname) + (pageUrl ? '/' + pageUrl : '');\n\n if ($env.shop.isTrailingSlash) {\n pathname = pathname + '/';\n }\n\n const href = a.origin + pathname + (a.search ? a.search + '&paginator' : '?paginator');\n\n return href;\n };\n\n const load = (button, isAppend) => {\n const href = parseHref(button);\n const componentName = getComponentName(button);\n\n if (!inited) {\n window.app.component('products-paginate', {\n data() {\n return {\n components: visiblePages\n };\n },\n template: '<teleport to=\"#products\"><component :is=\"component\" v-for=\"(component, key) in components\" v-bind:key=\"key\"></component></teleport>'\n });\n\n component.value = 'products-paginate';\n inited = true;\n }\n\n if (pages.indexOf(componentName) === -1) {\n button.classList.add('is-loading');\n document.documentElement.classList.add('is-catalog-loading');\n\n $http\n .get(href)\n .then((response) => {\n clearInitial(isAppend);\n\n let html = document.createElement('html');\n\n html.innerHTML = response.data.products;\n\n window.app.component(componentName, {\n template: html.querySelector('#products').innerHTML\n });\n\n pages.push(componentName);\n\n history.pushState({ urlPath: button.href }, document.title, button.href);\n\n html.innerHTML = response.data.paginator;\n\n paginators[componentName] = response.data.paginator;\n\n document.getElementById('pagination').replaceWith(html.querySelector('#pagination'));\n\n if (!isAppend) {\n visiblePages.value = [componentName];\n\n window.scrollTo({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n } else {\n visiblePages.value.push(componentName);\n setPaginatorCurrentPages();\n }\n\n if (window.lazyImages) {\n window.lazyImages.update();\n }\n\n nextTick(init);\n })\n .catch((error) => {\n console.error(error);\n })\n .finally(() => {\n document.documentElement.classList.remove('is-catalog-loading');\n });\n } else {\n history.pushState({ urlPath: href }, document.title, href);\n\n let html = document.createElement('html');\n html.innerHTML = paginators[componentName];\n\n document.getElementById('pagination').replaceWith(html.querySelector('#pagination'));\n\n if (!isAppend) {\n visiblePages.value = [componentName];\n\n window.scrollTo({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n } else {\n visiblePages.value.push(componentName);\n setPaginatorCurrentPages();\n }\n\n nextTick(init);\n }\n };\n\n const setPaginatorCurrentPages = () => {\n const paginator = document.getElementById('pagination');\n\n nextPages.forEach((componentName) => {\n const link = paginator.querySelector('.' + componentName);\n\n if (link) {\n link.classList.add('is-current');\n }\n });\n };\n\n const clearInitial = (isAppend) => {\n if (!isAppend && !cleared) {\n let productsOld = document.querySelectorAll('#products > *');\n\n productsOld.forEach((product) => {\n product.remove();\n });\n\n cleared = true;\n }\n };\n\n const init = () => {\n const next = document.querySelector('#pagination .pagination-next:not([disabled])');\n\n const links = document.querySelectorAll('#pagination a:not([disabled])');\n\n links.forEach((link) => {\n link.addEventListener('click', get);\n });\n\n hasMorePages.value = Boolean(next);\n\n if (window.lazyImages) {\n window.lazyImages.update();\n }\n };\n\n const more = () => {\n const next = document.querySelector('#pagination .pagination-next:not([disabled])');\n const href = parseHref(next);\n const componentName = getComponentName(next);\n\n nextPages.push(componentName);\n\n load(next, true);\n };\n\n onMounted(() => {\n init();\n });\n\n return {\n component,\n hasMorePages,\n more\n };\n }\n});\n</script>","<template>\n <div class=\"shop-pagination has-text-centered mb-3\">\n <component :is=\"component\"></component>\n <div class=\"shop-pagination-more\" v-if=\"hasMorePages\">\n <slot :more=\"more\">\n <button class=\"button is-small\" @click=\"more\">\n <span class=\"icon is-small\">\n <i class=\"fas fa-sync-alt\"></i>\n </span>\n <span>{{ __('shop.pagination.more') }}</span>\n </button>\n </slot>\n </div>\n </div>\n</template>\n<script>\nimport { ref, onMounted, defineComponent, nextTick } from 'vue';\n\nexport default defineComponent({\n setup() {\n const component = ref(false);\n const hasMorePages = ref(true);\n const visiblePages = ref([]);\n\n let pages = [];\n let paginators = {};\n let inited = false;\n let cleared = false;\n\n const getComponentName = (a) => {\n console.log(a.href);\n console.log(a.pathname);\n\n const href = a.pathname.replace(/\\/$/, '');\n const last = href.substring(href.lastIndexOf('/') + 1);\n\n return 'page-product-' + (last.match(/^page([0-9]+)$/) ? last : 'page1');\n };\n\n let nextPages = [getComponentName(window.location)];\n\n const get = (e) => {\n e.preventDefault();\n\n nextPages = [getComponentName(e.currentTarget)];\n\n load(e.currentTarget);\n };\n\n const parseHref = (a) => {\n let pathname = a.pathname.replace(/\\/$/, '');\n const page = pathname.substring(pathname.lastIndexOf('/') + 1);\n const isPage = page.match(/^page([0-9]+)$/);\n const pageUrl = isPage ? page : '';\n\n if (isPage) {\n pathname = pathname.substring(0, pathname.lastIndexOf('/'));\n }\n\n const hash = a.hash ? a.hash.substring(1) : '';\n\n pathname = (hash ? (a.pathname.indexOf(':') !== -1 ? pathname + ';' + hash : pathname + '/' + hash) : pathname) + (pageUrl ? '/' + pageUrl : '');\n\n if ($env.shop.isTrailingSlash) {\n pathname = pathname + '/';\n }\n\n const href = a.origin + pathname + (a.search ? a.search + '&paginator' : '?paginator');\n\n return href;\n };\n\n const load = (button, isAppend) => {\n const href = parseHref(button);\n const componentName = getComponentName(button);\n\n if (!inited) {\n window.app.component('products-paginate', {\n data() {\n return {\n components: visiblePages\n };\n },\n template: '<teleport to=\"#products\"><component :is=\"component\" v-for=\"(component, key) in components\" v-bind:key=\"key\"></component></teleport>'\n });\n\n component.value = 'products-paginate';\n inited = true;\n }\n\n if (pages.indexOf(componentName) === -1) {\n button.classList.add('is-loading');\n document.documentElement.classList.add('is-catalog-loading');\n\n $http\n .get(href)\n .then((response) => {\n clearInitial(isAppend);\n\n let html = document.createElement('html');\n\n html.innerHTML = response.data.products;\n\n window.app.component(componentName, {\n template: html.querySelector('#products').innerHTML\n });\n\n pages.push(componentName);\n\n history.pushState({ urlPath: button.href }, document.title, button.href);\n\n html.innerHTML = response.data.paginator;\n\n paginators[componentName] = response.data.paginator;\n\n document.getElementById('pagination').replaceWith(html.querySelector('#pagination'));\n\n if (!isAppend) {\n visiblePages.value = [componentName];\n\n window.scrollTo({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n } else {\n visiblePages.value.push(componentName);\n setPaginatorCurrentPages();\n }\n\n if (window.lazyImages) {\n window.lazyImages.update();\n }\n\n nextTick(init);\n })\n .catch((error) => {\n console.error(error);\n })\n .finally(() => {\n document.documentElement.classList.remove('is-catalog-loading');\n });\n } else {\n history.pushState({ urlPath: href }, document.title, href);\n\n let html = document.createElement('html');\n html.innerHTML = paginators[componentName];\n\n document.getElementById('pagination').replaceWith(html.querySelector('#pagination'));\n\n if (!isAppend) {\n visiblePages.value = [componentName];\n\n window.scrollTo({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n } else {\n visiblePages.value.push(componentName);\n setPaginatorCurrentPages();\n }\n\n nextTick(init);\n }\n };\n\n const setPaginatorCurrentPages = () => {\n const paginator = document.getElementById('pagination');\n\n nextPages.forEach((componentName) => {\n const link = paginator.querySelector('.' + componentName);\n\n if (link) {\n link.classList.add('is-current');\n }\n });\n };\n\n const clearInitial = (isAppend) => {\n if (!isAppend && !cleared) {\n let productsOld = document.querySelectorAll('#products > *');\n\n productsOld.forEach((product) => {\n product.remove();\n });\n\n cleared = true;\n }\n };\n\n const init = () => {\n const next = document.querySelector('#pagination .pagination-next:not([disabled])');\n\n const links = document.querySelectorAll('#pagination a:not([disabled])');\n\n links.forEach((link) => {\n link.addEventListener('click', get);\n });\n\n hasMorePages.value = Boolean(next);\n\n if (window.lazyImages) {\n window.lazyImages.update();\n }\n };\n\n const more = () => {\n const next = document.querySelector('#pagination .pagination-next:not([disabled])');\n const href = parseHref(next);\n const componentName = getComponentName(next);\n\n nextPages.push(componentName);\n\n load(next, true);\n };\n\n onMounted(() => {\n init();\n });\n\n return {\n component,\n hasMorePages,\n more\n };\n }\n});\n</script>"],"names":["defineComponent","setup","component","ref","hasMorePages","visiblePages","pages","paginators","inited","cleared","getComponentName","a","console","log","href","pathname","replace","last","substring","lastIndexOf","match","nextPages","window","location","get","e","preventDefault","currentTarget","load","parseHref","page","isPage","pageUrl","hash","indexOf","$env","shop","isTrailingSlash","origin","search","button","isAppend","componentName","app","data","components","template","value","classList","add","document","documentElement","$http","then","response","clearInitial","html","createElement","innerHTML","products","querySelector","push","history","pushState","urlPath","title","paginator","getElementById","replaceWith","setPaginatorCurrentPages","scrollTo","top","left","behavior","lazyImages","update","nextTick","init","error","remove","forEach","link","querySelectorAll","product","next","addEventListener","Boolean","onMounted","more","_createElementVNode","_createElementBlock","_hoisted_1","_createBlock","_ctx","_hoisted_2","_renderSlot","onClick","_hoisted_3"],"mappings":"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"}
1
+ {"version":3,"file":"Pagination.js","sources":["../../../src/components/shop/Pagination.vue","../../../src/components/shop/Pagination.vue?vue&type=template&id=c6442098&lang.js"],"sourcesContent":["<template>\n <div class=\"shop-pagination has-text-centered mb-3\">\n <component :is=\"component\"></component>\n <div class=\"shop-pagination-more\" v-if=\"hasMorePages\">\n <slot :more=\"more\">\n <button class=\"button is-small\" @click=\"more\">\n <span class=\"icon is-small\">\n <i class=\"fas fa-sync-alt\"></i>\n </span>\n <span>{{ __('shop.pagination.more') }}</span>\n </button>\n </slot>\n </div>\n </div>\n</template>\n<script>\nimport { ref, onMounted, defineComponent, nextTick } from 'vue';\n\nexport default defineComponent({\n setup() {\n const component = ref(false);\n const hasMorePages = ref(true);\n const visiblePages = ref([]);\n\n let pages = [];\n let paginators = {};\n let inited = false;\n let cleared = false;\n\n const getComponentName = (a) => {\n // console.log(a.href);\n // console.log(a.pathname);\n\n const href = a.pathname.replace(/\\/$/, '');\n const last = href.substring(href.lastIndexOf('/') + 1);\n\n return 'page-product-' + (last.match(/^page([0-9]+)$/) ? last : 'page1');\n };\n\n let nextPages = [getComponentName(window.location)];\n\n const get = (e) => {\n e.preventDefault();\n\n nextPages = [getComponentName(e.currentTarget)];\n\n load(e.currentTarget);\n };\n\n const parseHref = (a) => {\n let pathname = a.pathname.replace(/\\/$/, '');\n const page = pathname.substring(pathname.lastIndexOf('/') + 1);\n const isPage = page.match(/^page([0-9]+)$/);\n const pageUrl = isPage ? page : '';\n\n if (isPage) {\n pathname = pathname.substring(0, pathname.lastIndexOf('/'));\n }\n\n const hash = a.hash ? a.hash.substring(1) : '';\n\n pathname = (hash ? (a.pathname.indexOf(':') !== -1 ? pathname + ';' + hash : pathname + '/' + hash) : pathname) + (pageUrl ? '/' + pageUrl : '');\n\n if ($env.shop.isTrailingSlash) {\n pathname = pathname + '/';\n }\n\n const href = a.origin + pathname + (a.search ? a.search + '&paginator' : '?paginator');\n\n return href;\n };\n\n const load = (button, isAppend) => {\n const href = parseHref(button);\n const componentName = getComponentName(button);\n\n if (!inited) {\n window.app.component('products-paginate', {\n data() {\n return {\n components: visiblePages\n };\n },\n template: '<teleport to=\"#products\"><component :is=\"component\" v-for=\"(component, key) in components\" v-bind:key=\"key\"></component></teleport>'\n });\n\n component.value = 'products-paginate';\n inited = true;\n }\n\n if (pages.indexOf(componentName) === -1) {\n button.classList.add('is-loading');\n document.documentElement.classList.add('is-catalog-loading');\n\n $http\n .get(href)\n .then((response) => {\n clearInitial(isAppend);\n\n let html = document.createElement('html');\n\n html.innerHTML = response.data.products;\n\n window.app.component(componentName, {\n template: html.querySelector('#products').innerHTML\n });\n\n pages.push(componentName);\n\n history.pushState({ urlPath: button.href }, document.title, button.href);\n\n html.innerHTML = response.data.paginator;\n\n paginators[componentName] = response.data.paginator;\n\n document.getElementById('pagination').replaceWith(html.querySelector('#pagination'));\n\n if (!isAppend) {\n visiblePages.value = [componentName];\n\n window.scrollTo({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n } else {\n visiblePages.value.push(componentName);\n setPaginatorCurrentPages();\n }\n\n if (window.lazyImages) {\n window.lazyImages.update();\n }\n\n nextTick(init);\n })\n .catch((error) => {\n console.error(error);\n })\n .finally(() => {\n document.documentElement.classList.remove('is-catalog-loading');\n });\n } else {\n history.pushState({ urlPath: href }, document.title, href);\n\n let html = document.createElement('html');\n html.innerHTML = paginators[componentName];\n\n document.getElementById('pagination').replaceWith(html.querySelector('#pagination'));\n\n if (!isAppend) {\n visiblePages.value = [componentName];\n\n window.scrollTo({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n } else {\n visiblePages.value.push(componentName);\n setPaginatorCurrentPages();\n }\n\n nextTick(init);\n }\n };\n\n const setPaginatorCurrentPages = () => {\n const paginator = document.getElementById('pagination');\n\n nextPages.forEach((componentName) => {\n const link = paginator.querySelector('.' + componentName);\n\n if (link) {\n link.classList.add('is-current');\n }\n });\n };\n\n const clearInitial = (isAppend) => {\n if (!isAppend && !cleared) {\n let productsOld = document.querySelectorAll('#products > *');\n\n productsOld.forEach((product) => {\n product.remove();\n });\n\n cleared = true;\n }\n };\n\n const init = () => {\n const next = document.querySelector('#pagination .pagination-next:not([disabled])');\n\n const links = document.querySelectorAll('#pagination a:not([disabled])');\n\n links.forEach((link) => {\n link.addEventListener('click', get);\n });\n\n hasMorePages.value = Boolean(next);\n\n if (window.lazyImages) {\n window.lazyImages.update();\n }\n };\n\n const more = () => {\n const next = document.querySelector('#pagination .pagination-next:not([disabled])');\n const href = parseHref(next);\n const componentName = getComponentName(next);\n\n nextPages.push(componentName);\n\n load(next, true);\n };\n\n onMounted(() => {\n init();\n });\n\n return {\n component,\n hasMorePages,\n more\n };\n }\n});\n</script>","<template>\n <div class=\"shop-pagination has-text-centered mb-3\">\n <component :is=\"component\"></component>\n <div class=\"shop-pagination-more\" v-if=\"hasMorePages\">\n <slot :more=\"more\">\n <button class=\"button is-small\" @click=\"more\">\n <span class=\"icon is-small\">\n <i class=\"fas fa-sync-alt\"></i>\n </span>\n <span>{{ __('shop.pagination.more') }}</span>\n </button>\n </slot>\n </div>\n </div>\n</template>\n<script>\nimport { ref, onMounted, defineComponent, nextTick } from 'vue';\n\nexport default defineComponent({\n setup() {\n const component = ref(false);\n const hasMorePages = ref(true);\n const visiblePages = ref([]);\n\n let pages = [];\n let paginators = {};\n let inited = false;\n let cleared = false;\n\n const getComponentName = (a) => {\n // console.log(a.href);\n // console.log(a.pathname);\n\n const href = a.pathname.replace(/\\/$/, '');\n const last = href.substring(href.lastIndexOf('/') + 1);\n\n return 'page-product-' + (last.match(/^page([0-9]+)$/) ? last : 'page1');\n };\n\n let nextPages = [getComponentName(window.location)];\n\n const get = (e) => {\n e.preventDefault();\n\n nextPages = [getComponentName(e.currentTarget)];\n\n load(e.currentTarget);\n };\n\n const parseHref = (a) => {\n let pathname = a.pathname.replace(/\\/$/, '');\n const page = pathname.substring(pathname.lastIndexOf('/') + 1);\n const isPage = page.match(/^page([0-9]+)$/);\n const pageUrl = isPage ? page : '';\n\n if (isPage) {\n pathname = pathname.substring(0, pathname.lastIndexOf('/'));\n }\n\n const hash = a.hash ? a.hash.substring(1) : '';\n\n pathname = (hash ? (a.pathname.indexOf(':') !== -1 ? pathname + ';' + hash : pathname + '/' + hash) : pathname) + (pageUrl ? '/' + pageUrl : '');\n\n if ($env.shop.isTrailingSlash) {\n pathname = pathname + '/';\n }\n\n const href = a.origin + pathname + (a.search ? a.search + '&paginator' : '?paginator');\n\n return href;\n };\n\n const load = (button, isAppend) => {\n const href = parseHref(button);\n const componentName = getComponentName(button);\n\n if (!inited) {\n window.app.component('products-paginate', {\n data() {\n return {\n components: visiblePages\n };\n },\n template: '<teleport to=\"#products\"><component :is=\"component\" v-for=\"(component, key) in components\" v-bind:key=\"key\"></component></teleport>'\n });\n\n component.value = 'products-paginate';\n inited = true;\n }\n\n if (pages.indexOf(componentName) === -1) {\n button.classList.add('is-loading');\n document.documentElement.classList.add('is-catalog-loading');\n\n $http\n .get(href)\n .then((response) => {\n clearInitial(isAppend);\n\n let html = document.createElement('html');\n\n html.innerHTML = response.data.products;\n\n window.app.component(componentName, {\n template: html.querySelector('#products').innerHTML\n });\n\n pages.push(componentName);\n\n history.pushState({ urlPath: button.href }, document.title, button.href);\n\n html.innerHTML = response.data.paginator;\n\n paginators[componentName] = response.data.paginator;\n\n document.getElementById('pagination').replaceWith(html.querySelector('#pagination'));\n\n if (!isAppend) {\n visiblePages.value = [componentName];\n\n window.scrollTo({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n } else {\n visiblePages.value.push(componentName);\n setPaginatorCurrentPages();\n }\n\n if (window.lazyImages) {\n window.lazyImages.update();\n }\n\n nextTick(init);\n })\n .catch((error) => {\n console.error(error);\n })\n .finally(() => {\n document.documentElement.classList.remove('is-catalog-loading');\n });\n } else {\n history.pushState({ urlPath: href }, document.title, href);\n\n let html = document.createElement('html');\n html.innerHTML = paginators[componentName];\n\n document.getElementById('pagination').replaceWith(html.querySelector('#pagination'));\n\n if (!isAppend) {\n visiblePages.value = [componentName];\n\n window.scrollTo({\n top: 0,\n left: 0,\n behavior: 'smooth'\n });\n } else {\n visiblePages.value.push(componentName);\n setPaginatorCurrentPages();\n }\n\n nextTick(init);\n }\n };\n\n const setPaginatorCurrentPages = () => {\n const paginator = document.getElementById('pagination');\n\n nextPages.forEach((componentName) => {\n const link = paginator.querySelector('.' + componentName);\n\n if (link) {\n link.classList.add('is-current');\n }\n });\n };\n\n const clearInitial = (isAppend) => {\n if (!isAppend && !cleared) {\n let productsOld = document.querySelectorAll('#products > *');\n\n productsOld.forEach((product) => {\n product.remove();\n });\n\n cleared = true;\n }\n };\n\n const init = () => {\n const next = document.querySelector('#pagination .pagination-next:not([disabled])');\n\n const links = document.querySelectorAll('#pagination a:not([disabled])');\n\n links.forEach((link) => {\n link.addEventListener('click', get);\n });\n\n hasMorePages.value = Boolean(next);\n\n if (window.lazyImages) {\n window.lazyImages.update();\n }\n };\n\n const more = () => {\n const next = document.querySelector('#pagination .pagination-next:not([disabled])');\n const href = parseHref(next);\n const componentName = getComponentName(next);\n\n nextPages.push(componentName);\n\n load(next, true);\n };\n\n onMounted(() => {\n init();\n });\n\n return {\n component,\n hasMorePages,\n more\n };\n }\n});\n</script>"],"names":["defineComponent","setup","component","ref","hasMorePages","visiblePages","pages","paginators","inited","cleared","getComponentName","a","href","pathname","replace","last","substring","lastIndexOf","match","nextPages","window","location","get","e","preventDefault","currentTarget","load","parseHref","page","isPage","pageUrl","hash","indexOf","$env","shop","isTrailingSlash","origin","search","button","isAppend","componentName","app","data","components","template","value","classList","add","document","documentElement","$http","then","response","clearInitial","html","createElement","innerHTML","products","querySelector","push","history","pushState","urlPath","title","paginator","getElementById","replaceWith","setPaginatorCurrentPages","scrollTo","top","left","behavior","lazyImages","update","nextTick","init","error","console","remove","forEach","link","querySelectorAll","product","next","addEventListener","Boolean","onMounted","more","_createElementVNode","_createElementBlock","_hoisted_1","_createBlock","_ctx","_hoisted_2","_renderSlot","onClick","_hoisted_3"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("vue"),t=require("vuex"),a=require("vue-toastification"),n={setup:function(){return{translate:window.__}}},l={class:"shop-cart-success-message"};n.render=function(t,a,n,i,o,r){return e.openBlock(),e.createElementBlock("div",l,e.toDisplayString(i.translate("shop.cart.message")),1)};var i=a.useToast(),o={name:"cart-add",props:{id:Number,isChangeQuantity:{type:Boolean,default:!0},isAlreadyInCart:{type:Boolean,default:!0},isSimple:{type:Boolean,default:!1},isPlusMinus:{type:Boolean,default:!1},after:{type:String,default:"modal"}},setup:function(a){var l=t.useStore(),o=e.ref(!1),r=e.ref(1),s=e.ref(null),c=e.computed((function(){return l.getters["cart/productQuantity"](a.id)})),u=a.isAlreadyInCart,d=a.isChangeQuantity,p=a.isPlusMinus;a.isSimple&&(u=!1,d=!1,p=!1);return{button:s,loading:o,quantity:r,add:function(){o.value=!0;var e=[];s.value.closest(".product-main")&&document.querySelectorAll("#options input[type=checkbox]:checked").forEach((function(t){e.push(parseInt(t.value))}));l.dispatch("cart/add",{product:{id:a.id,quantity:Math.max(1,r.value),options:e},finally:function(){(o.value=!1,r.value=1,"message"==a.after)&&i({component:n},{type:"success-cart"})}})},remove:function(){o.value=!0,l.dispatch("cart/remove",{id:a.id,finally:function(){o.value=!1}})},cart:c,increase:function(){r.value++},decrease:function(){r.value>1&&r.value--},isAlreadyInCart:u,isChangeQuantity:d,isPlusMinus:p}}},r={class:"cart-add",ref:"button"},s={class:"columns"},c={key:0,class:"column"},u={class:"cart-change-quantity"},d=["disabled"],p=["disabled"],m=["disabled"],y={class:"column is-narrow"},f=["disabled"],v=e.createElementVNode("svg",{class:"icon cart"},[e.createElementVNode("use",{"xlink:href":"#cart-add"})],-1),b={class:"cart-add-button-label"},k={key:0},h=e.createElementVNode("br",null,null,-1),g=["disabled","textContent"];o.render=function(t,a,n,l,i,o){return e.openBlock(),e.createElementBlock("div",r,[e.createElementVNode("div",s,[t.$env.shop.isCustomQuantity&&l.isChangeQuantity?(e.openBlock(),e.createElementBlock("div",c,[e.createElementVNode("div",u,[l.isPlusMinus?(e.openBlock(),e.createElementBlock("button",{key:0,class:"button is-small decrease",onClick:a[0]||(a[0]=function(){return l.decrease&&l.decrease.apply(l,arguments)}),disabled:l.loading||1==l.quantity}," - ",8,d)):e.createCommentVNode("v-if",!0),e.withDirectives(e.createElementVNode("input",{class:"input is-small",type:"number",min:"1","onUpdate:modelValue":a[1]||(a[1]=function(e){return l.quantity=e}),disabled:l.loading},null,8,p),[[e.vModelText,l.quantity]]),l.isPlusMinus?(e.openBlock(),e.createElementBlock("button",{key:1,class:"button is-small increase",onClick:a[2]||(a[2]=function(){return l.increase&&l.increase.apply(l,arguments)}),disabled:l.loading}," + ",8,m)):e.createCommentVNode("v-if",!0)])])):e.createCommentVNode("v-if",!0),e.createElementVNode("div",y,[e.createElementVNode("button",{class:"button is-link is-small",onClick:a[3]||(a[3]=function(){return l.add&&l.add.apply(l,arguments)}),disabled:l.loading},[e.renderSlot(t.$slots,"default",{label:t.__("shop.cart.add")},(function(){return[v,e.createElementVNode("span",b,e.toDisplayString(t.__("shop.cart.add")),1)]}))],8,f)])]),t.$env.shop.isAlreadyInCart&&l.isAlreadyInCart&&l.cart>0?(e.openBlock(),e.createElementBlock("div",k,[e.createTextVNode(e.toDisplayString(t.__("shop.cart.already",{quantity:l.cart}))+" ",1),h,e.createElementVNode("a",{onClick:a[4]||(a[4]=e.withModifiers((function(){return l.remove&&l.remove.apply(l,arguments)}),["prevent"])),disabled:l.loading,textContent:e.toDisplayString(t.__("shop.cart.remove"))},null,8,g)])):e.createCommentVNode("v-if",!0)],512)},module.exports=o;
1
+ "use strict";var e=require("vue"),t=require("vuex"),a=require("vue-toastification"),n={setup:function(){return{translate:window.__}}},o={class:"shop-cart-success-message"};n.render=function(t,a,n,r,l,i){return e.openBlock(),e.createElementBlock("div",o,e.toDisplayString(r.translate("shop.cart.message")),1)};var r=a.useToast(),l={name:"cart-add",props:{id:Number,isChangeQuantity:{type:Boolean,default:!0},isAlreadyInCart:{type:Boolean,default:!0},isSimple:{type:Boolean,default:!1},isPlusMinus:{type:Boolean,default:!1},after:{type:String,default:"modal"}},setup:function(a){var o=t.useStore(),l=e.ref(!1),i=e.ref(1),s=e.ref(null),c=e.computed((function(){return o.getters["cart/productQuantity"](a.id)})),d=a.isAlreadyInCart,u=a.isChangeQuantity,p=a.isPlusMinus;a.isSimple&&(d=!1,u=!1,p=!1);return{button:s,loading:l,quantity:i,add:function(){l.value=!0;var e=[];s.value.closest(".product-main")&&document.querySelectorAll("#options input[type=checkbox]:checked").forEach((function(t){e.push(parseInt(t.value))}));var t=Math.max(1,i.value),c=s.value.closest("[shop-product]"),d=c.querySelector("[shop-product-name]").textContent,u=c.querySelector("[shop-product-price]").childNodes[0].nodeValue.replace(/ /g,""),p=c.dataset.code;o.dispatch("cart/add",{product:{id:a.id,quantity:t,options:e},finally:function(){(l.value=!1,i.value=1,"message"==a.after)&&r({component:n},{type:"success-cart"});var e={event:"addToCart",ecommerce:{currencyCode:"UAH",add:{products:[{name:d,id:p,price:u,quantity:t}]}}};window.dataLayer&&(window.dataLayer.push({ecommerce:null}),window.dataLayer.push(e))}})},remove:function(){l.value=!0,o.dispatch("cart/remove",{id:a.id,finally:function(){l.value=!1}})},cart:c,increase:function(){i.value++},decrease:function(){i.value>1&&i.value--},isAlreadyInCart:d,isChangeQuantity:u,isPlusMinus:p}}},i={class:"cart-add",ref:"button"},s={class:"columns"},c={key:0,class:"column"},d={class:"cart-change-quantity"},u=["disabled"],p=["disabled"],m=["disabled"],y={class:"column is-narrow"},v=["disabled"],f=e.createElementVNode("svg",{class:"icon cart"},[e.createElementVNode("use",{"xlink:href":"#cart-add"})],-1),h={class:"cart-add-button-label"},b={key:0},k=e.createElementVNode("br",null,null,-1),C=["disabled","textContent"];l.render=function(t,a,n,o,r,l){return e.openBlock(),e.createElementBlock("div",i,[e.createElementVNode("div",s,[t.$env.shop.isCustomQuantity&&o.isChangeQuantity?(e.openBlock(),e.createElementBlock("div",c,[e.createElementVNode("div",d,[o.isPlusMinus?(e.openBlock(),e.createElementBlock("button",{key:0,class:"button is-small decrease",onClick:a[0]||(a[0]=function(){return o.decrease&&o.decrease.apply(o,arguments)}),disabled:o.loading||1==o.quantity},"-",8,u)):e.createCommentVNode("v-if",!0),e.withDirectives(e.createElementVNode("input",{class:"input is-small",type:"number",min:"1","onUpdate:modelValue":a[1]||(a[1]=function(e){return o.quantity=e}),disabled:o.loading},null,8,p),[[e.vModelText,o.quantity]]),o.isPlusMinus?(e.openBlock(),e.createElementBlock("button",{key:1,class:"button is-small increase",onClick:a[2]||(a[2]=function(){return o.increase&&o.increase.apply(o,arguments)}),disabled:o.loading},"+",8,m)):e.createCommentVNode("v-if",!0)])])):e.createCommentVNode("v-if",!0),e.createElementVNode("div",y,[e.createElementVNode("button",{class:"button is-link is-small",onClick:a[3]||(a[3]=function(){return o.add&&o.add.apply(o,arguments)}),disabled:o.loading},[e.renderSlot(t.$slots,"default",{label:t.__("shop.cart.add")},(function(){return[f,e.createElementVNode("span",h,e.toDisplayString(t.__("shop.cart.add")),1)]}))],8,v)])]),t.$env.shop.isAlreadyInCart&&o.isAlreadyInCart&&o.cart>0?(e.openBlock(),e.createElementBlock("div",b,[e.createTextVNode(e.toDisplayString(t.__("shop.cart.already",{quantity:o.cart}))+" ",1),k,e.createElementVNode("a",{onClick:a[4]||(a[4]=e.withModifiers((function(){return o.remove&&o.remove.apply(o,arguments)}),["prevent"])),disabled:o.loading,textContent:e.toDisplayString(t.__("shop.cart.remove"))},null,8,C)])):e.createCommentVNode("v-if",!0)],512)},module.exports=l;
2
2
  //# sourceMappingURL=CartAdd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CartAdd.js","sources":["../../../../src/components/shop/cart/SuccessMessage.vue","../../../../src/components/shop/cart/SuccessMessage.vue?vue&type=template&id=75a41ddb&lang.js","../../../../src/components/shop/cart/CartAdd.vue","../../../../src/components/shop/cart/CartAdd.vue?vue&type=template&id=9ef38414&lang.js"],"sourcesContent":["<template>\n <div class=\"shop-cart-success-message\">\n {{ translate(\"shop.cart.message\") }}\n </div>\n</template>\n<script>\nexport default {\n setup() {\n const translate = window.__;\n\n return {\n translate,\n };\n },\n};\n</script>","<template>\n <div class=\"shop-cart-success-message\">\n {{ translate(\"shop.cart.message\") }}\n </div>\n</template>\n<script>\nexport default {\n setup() {\n const translate = window.__;\n\n return {\n translate,\n };\n },\n};\n</script>","<template>\n <div class=\"cart-add\" ref=\"button\">\n <div class=\"columns\">\n <div\n class=\"column\"\n v-if=\"$env.shop.isCustomQuantity && isChangeQuantity\"\n >\n <div class=\"cart-change-quantity\">\n <button\n class=\"button is-small decrease\"\n @click=\"decrease\"\n :disabled=\"loading || quantity == 1\"\n v-if=\"isPlusMinus\"\n >\n -\n </button>\n <input\n class=\"input is-small\"\n type=\"number\"\n min=\"1\"\n v-model=\"quantity\"\n :disabled=\"loading\"\n />\n <button\n class=\"button is-small increase\"\n @click=\"increase\"\n :disabled=\"loading\"\n v-if=\"isPlusMinus\"\n >\n +\n </button>\n </div>\n </div>\n <div class=\"column is-narrow\">\n <button\n class=\"button is-link is-small\"\n v-on:click=\"add\"\n :disabled=\"loading\"\n >\n <slot :label=\"__('shop.cart.add')\">\n <svg class=\"icon cart\">\n <use xlink:href=\"#cart-add\" />\n </svg>\n <span class=\"cart-add-button-label\">{{\n __(\"shop.cart.add\")\n }}</span>\n </slot>\n </button>\n </div>\n </div>\n <div v-if=\"$env.shop.isAlreadyInCart && isAlreadyInCart && cart > 0\">\n {{ __(\"shop.cart.already\", { quantity: cart }) }}\n <br />\n <a\n v-on:click.prevent=\"remove\"\n :disabled=\"loading\"\n v-text=\"__('shop.cart.remove')\"\n ></a>\n </div>\n </div>\n</template>\n<script>\nimport { ref, computed } from \"vue\";\nimport { useStore } from \"vuex\";\nimport { useToast } from \"vue-toastification\";\nimport SuccessMessage from \"./SuccessMessage.vue\";\n\nconst toast = useToast();\n\nexport default {\n name: 'cart-add',\n props: {\n id: Number,\n isChangeQuantity: {\n type: Boolean,\n default: true,\n },\n isAlreadyInCart: {\n type: Boolean,\n default: true,\n },\n isSimple: {\n type: Boolean,\n default: false,\n },\n isPlusMinus: {\n type: Boolean,\n default: false,\n },\n after: {\n type: String,\n default: \"modal\",\n },\n },\n setup(props) {\n const store = useStore();\n const loading = ref(false);\n const quantity = ref(1);\n const button = ref(null);\n\n const cart = computed(() =>\n store.getters[\"cart/productQuantity\"](props.id)\n );\n\n let isAlreadyInCart = props.isAlreadyInCart;\n let isChangeQuantity = props.isChangeQuantity;\n let isPlusMinus = props.isPlusMinus;\n\n if (props.isSimple) {\n isAlreadyInCart = false;\n isChangeQuantity = false;\n isPlusMinus = false;\n }\n\n const add = () => {\n loading.value = true;\n \n let options = [];\n\n if(button.value.closest('.product-main')) {\n const checkedOptions = document.querySelectorAll(\n \"#options input[type=checkbox]:checked\"\n );\n\n checkedOptions.forEach((element) => {\n options.push(parseInt(element.value));\n });\n }\n\n store.dispatch(\"cart/add\", {\n product: {\n id: props.id,\n quantity: Math.max(1, quantity.value),\n options: options,\n },\n finally: () => {\n loading.value = false;\n quantity.value = 1;\n\n if (props.after == \"message\") {\n const component = {\n component: SuccessMessage,\n };\n\n toast(component, {\n type: \"success-cart\",\n });\n }\n },\n });\n };\n\n const remove = () => {\n loading.value = true;\n\n store.dispatch(\"cart/remove\", {\n id: props.id,\n finally: () => {\n loading.value = false;\n },\n });\n };\n\n const increase = () => {\n quantity.value++;\n };\n\n const decrease = () => {\n if (quantity.value > 1) {\n quantity.value--;\n }\n };\n\n return {\n button,\n loading,\n quantity,\n add,\n remove,\n cart,\n increase,\n decrease,\n isAlreadyInCart,\n isChangeQuantity,\n isPlusMinus,\n };\n },\n};\n</script>","<template>\n <div class=\"cart-add\" ref=\"button\">\n <div class=\"columns\">\n <div\n class=\"column\"\n v-if=\"$env.shop.isCustomQuantity && isChangeQuantity\"\n >\n <div class=\"cart-change-quantity\">\n <button\n class=\"button is-small decrease\"\n @click=\"decrease\"\n :disabled=\"loading || quantity == 1\"\n v-if=\"isPlusMinus\"\n >\n -\n </button>\n <input\n class=\"input is-small\"\n type=\"number\"\n min=\"1\"\n v-model=\"quantity\"\n :disabled=\"loading\"\n />\n <button\n class=\"button is-small increase\"\n @click=\"increase\"\n :disabled=\"loading\"\n v-if=\"isPlusMinus\"\n >\n +\n </button>\n </div>\n </div>\n <div class=\"column is-narrow\">\n <button\n class=\"button is-link is-small\"\n v-on:click=\"add\"\n :disabled=\"loading\"\n >\n <slot :label=\"__('shop.cart.add')\">\n <svg class=\"icon cart\">\n <use xlink:href=\"#cart-add\" />\n </svg>\n <span class=\"cart-add-button-label\">{{\n __(\"shop.cart.add\")\n }}</span>\n </slot>\n </button>\n </div>\n </div>\n <div v-if=\"$env.shop.isAlreadyInCart && isAlreadyInCart && cart > 0\">\n {{ __(\"shop.cart.already\", { quantity: cart }) }}\n <br />\n <a\n v-on:click.prevent=\"remove\"\n :disabled=\"loading\"\n v-text=\"__('shop.cart.remove')\"\n ></a>\n </div>\n </div>\n</template>\n<script>\nimport { ref, computed } from \"vue\";\nimport { useStore } from \"vuex\";\nimport { useToast } from \"vue-toastification\";\nimport SuccessMessage from \"./SuccessMessage.vue\";\n\nconst toast = useToast();\n\nexport default {\n name: 'cart-add',\n props: {\n id: Number,\n isChangeQuantity: {\n type: Boolean,\n default: true,\n },\n isAlreadyInCart: {\n type: Boolean,\n default: true,\n },\n isSimple: {\n type: Boolean,\n default: false,\n },\n isPlusMinus: {\n type: Boolean,\n default: false,\n },\n after: {\n type: String,\n default: \"modal\",\n },\n },\n setup(props) {\n const store = useStore();\n const loading = ref(false);\n const quantity = ref(1);\n const button = ref(null);\n\n const cart = computed(() =>\n store.getters[\"cart/productQuantity\"](props.id)\n );\n\n let isAlreadyInCart = props.isAlreadyInCart;\n let isChangeQuantity = props.isChangeQuantity;\n let isPlusMinus = props.isPlusMinus;\n\n if (props.isSimple) {\n isAlreadyInCart = false;\n isChangeQuantity = false;\n isPlusMinus = false;\n }\n\n const add = () => {\n loading.value = true;\n \n let options = [];\n\n if(button.value.closest('.product-main')) {\n const checkedOptions = document.querySelectorAll(\n \"#options input[type=checkbox]:checked\"\n );\n\n checkedOptions.forEach((element) => {\n options.push(parseInt(element.value));\n });\n }\n\n store.dispatch(\"cart/add\", {\n product: {\n id: props.id,\n quantity: Math.max(1, quantity.value),\n options: options,\n },\n finally: () => {\n loading.value = false;\n quantity.value = 1;\n\n if (props.after == \"message\") {\n const component = {\n component: SuccessMessage,\n };\n\n toast(component, {\n type: \"success-cart\",\n });\n }\n },\n });\n };\n\n const remove = () => {\n loading.value = true;\n\n store.dispatch(\"cart/remove\", {\n id: props.id,\n finally: () => {\n loading.value = false;\n },\n });\n };\n\n const increase = () => {\n quantity.value++;\n };\n\n const decrease = () => {\n if (quantity.value > 1) {\n quantity.value--;\n }\n };\n\n return {\n button,\n loading,\n quantity,\n add,\n remove,\n cart,\n increase,\n decrease,\n isAlreadyInCart,\n isChangeQuantity,\n isPlusMinus,\n };\n },\n};\n</script>"],"names":["setup","translate","window","__","_createElementBlock","_hoisted_1","$setup","toast","useToast","name","props","id","Number","isChangeQuantity","type","Boolean","isAlreadyInCart","isSimple","isPlusMinus","after","String","store","useStore","loading","ref","quantity","button","cart","computed","getters","add","value","options","closest","document","querySelectorAll","forEach","element","push","parseInt","dispatch","product","Math","max","component","SuccessMessage","remove","increase","decrease","_createElementVNode","_hoisted_2","_ctx","shop","isCustomQuantity","_hoisted_3","_hoisted_4","onClick","disabled","min","_hoisted_8","_renderSlot","label","_hoisted_10","_hoisted_11","_hoisted_13","_toDisplayString"],"mappings":"sFAMe,CACXA,uBAGW,CACHC,UAHcC,OAAOC,eCPlB,iFAAXC,2BAAAC,oBACOC,sCCiEX,IAAMC,EAAQC,eAEC,CACXC,KAAM,WACNC,MAAO,CACHC,GAAIC,OACJC,iBAAkB,CACdC,KAAMC,iBACG,GAEbC,gBAAiB,CACbF,KAAMC,iBACG,GAEbE,SAAU,CACNH,KAAMC,iBACG,GAEbG,YAAa,CACTJ,KAAMC,iBACG,GAEbI,MAAO,CACHL,KAAMM,eACG,UAGjBpB,eAAMU,OACIW,EAAQC,aACRC,EAAUC,OAAI,GACdC,EAAWD,MAAI,GACfE,EAASF,MAAI,MAEbG,EAAOC,YAAS,kBAClBP,EAAMQ,QAAQ,wBAAwBnB,EAAMC,OAG5CK,EAAkBN,EAAMM,gBACxBH,EAAmBH,EAAMG,iBACzBK,EAAcR,EAAMQ,YAEpBR,EAAMO,WACND,GAAkB,EAClBH,GAAmB,EACnBK,GAAc,SA8DX,CACHQ,OAAAA,EACAH,QAAAA,EACAE,SAAAA,EACAK,IA/DQ,WACRP,EAAQQ,OAAQ,MAEZC,EAAU,GAEXN,EAAOK,MAAME,QAAQ,kBACGC,SAASC,iBAC5B,yCAGWC,SAAQ,SAACC,GACpBL,EAAQM,KAAKC,SAASF,EAAQN,WAItCV,EAAMmB,SAAS,WAAY,CACvBC,QAAS,CACL9B,GAAID,EAAMC,GACVc,SAAUiB,KAAKC,IAAI,EAAGlB,EAASM,OAC/BC,QAASA,WAEJ,YACLT,EAAQQ,OAAQ,EAChBN,EAASM,MAAQ,EAEE,WAAfrB,EAAMS,QAKNZ,EAJkB,CACdqC,UAAWC,GAGE,CACb/B,KAAM,qBAiCtBgC,OA1BW,WACXvB,EAAQQ,OAAQ,EAEhBV,EAAMmB,SAAS,cAAe,CAC1B7B,GAAID,EAAMC,WACD,WACLY,EAAQQ,OAAQ,MAqBxBJ,KAAAA,EACAoB,SAjBa,WACbtB,EAASM,SAiBTiB,SAda,WACTvB,EAASM,MAAQ,GACjBN,EAASM,SAabf,gBAAAA,EACAH,iBAAAA,EACAK,YAAAA,cCvLG,WAAWM,IAAI,mBACX,0BAEG,mBAGK,8EA0BJ,qCAOCyB,kCAAW,cACPA,yCAAgB,4BAER,qCASxBA,yHAnDR7C,2BAAAC,GACI4C,2BAAAC,GAGcC,OAAKC,KAAKC,kBAAoB/C,kCAFxCF,2BAAAkD,GAIIL,2BAAAM,GAKcjD,6BAJVF,2CACU,2BACLoD,sCAAOlD,4CACPmD,SAAUnD,cAAWA,yEAK1B2C,oCACU,iBACNnC,KAAK,SACL4C,IAAI,yDACKpD,eACRmD,SAAUnD,oCADFA,cAOHA,6BAJVF,2CACU,2BACLoD,sCAAOlD,4CACPmD,SAAUnD,4FAOvB2C,2BAAAU,GACIV,qCACU,0BACDO,sCAAOlD,kCACXmD,SAAUnD,YAEXsD,iCAAOC,MAAOV,wBAAd,kBACIW,EAGAb,4BAAAc,oBACIZ,wCAMTA,OAAKC,KAAKpC,iBAAmBV,mBAAmBA,wBAA3DF,kEACO+C,mCAAoC7C,iBACvC0D,EACAf,0BACSO,uDAAelD,sDACnBmD,SAAUnD,sBACX2D,kBAAQd"}
1
+ {"version":3,"file":"CartAdd.js","sources":["../../../../src/components/shop/cart/SuccessMessage.vue","../../../../src/components/shop/cart/SuccessMessage.vue?vue&type=template&id=75a41ddb&lang.js","../../../../src/components/shop/cart/CartAdd.vue","../../../../src/components/shop/cart/CartAdd.vue?vue&type=template&id=3f7690d4&lang.js"],"sourcesContent":["<template>\n <div class=\"shop-cart-success-message\">\n {{ translate(\"shop.cart.message\") }}\n </div>\n</template>\n<script>\nexport default {\n setup() {\n const translate = window.__;\n\n return {\n translate,\n };\n },\n};\n</script>","<template>\n <div class=\"shop-cart-success-message\">\n {{ translate(\"shop.cart.message\") }}\n </div>\n</template>\n<script>\nexport default {\n setup() {\n const translate = window.__;\n\n return {\n translate,\n };\n },\n};\n</script>","<template>\n <div class=\"cart-add\" ref=\"button\">\n <div class=\"columns\">\n <div class=\"column\" v-if=\"$env.shop.isCustomQuantity && isChangeQuantity\">\n <div class=\"cart-change-quantity\">\n <button\n class=\"button is-small decrease\"\n @click=\"decrease\"\n :disabled=\"loading || quantity == 1\"\n v-if=\"isPlusMinus\"\n >-</button>\n <input\n class=\"input is-small\"\n type=\"number\"\n min=\"1\"\n v-model=\"quantity\"\n :disabled=\"loading\"\n />\n <button\n class=\"button is-small increase\"\n @click=\"increase\"\n :disabled=\"loading\"\n v-if=\"isPlusMinus\"\n >+</button>\n </div>\n </div>\n <div class=\"column is-narrow\">\n <button class=\"button is-link is-small\" v-on:click=\"add\" :disabled=\"loading\">\n <slot :label=\"__('shop.cart.add')\">\n <svg class=\"icon cart\">\n <use xlink:href=\"#cart-add\" />\n </svg>\n <span class=\"cart-add-button-label\">\n {{\n __(\"shop.cart.add\")\n }}\n </span>\n </slot>\n </button>\n </div>\n </div>\n <div v-if=\"$env.shop.isAlreadyInCart && isAlreadyInCart && cart > 0\">\n {{ __(\"shop.cart.already\", { quantity: cart }) }}\n <br />\n <a v-on:click.prevent=\"remove\" :disabled=\"loading\" v-text=\"__('shop.cart.remove')\"></a>\n </div>\n </div>\n</template>\n<script>\nimport { ref, computed } from \"vue\";\nimport { useStore } from \"vuex\";\nimport { useToast } from \"vue-toastification\";\nimport SuccessMessage from \"./SuccessMessage.vue\";\n\nconst toast = useToast();\n\nexport default {\n name: 'cart-add',\n props: {\n id: Number,\n isChangeQuantity: {\n type: Boolean,\n default: true,\n },\n isAlreadyInCart: {\n type: Boolean,\n default: true,\n },\n isSimple: {\n type: Boolean,\n default: false,\n },\n isPlusMinus: {\n type: Boolean,\n default: false,\n },\n after: {\n type: String,\n default: \"modal\",\n },\n },\n setup(props) {\n const store = useStore();\n const loading = ref(false);\n const quantity = ref(1);\n const button = ref(null);\n\n const cart = computed(() =>\n store.getters[\"cart/productQuantity\"](props.id)\n );\n\n let isAlreadyInCart = props.isAlreadyInCart;\n let isChangeQuantity = props.isChangeQuantity;\n let isPlusMinus = props.isPlusMinus;\n\n if (props.isSimple) {\n isAlreadyInCart = false;\n isChangeQuantity = false;\n isPlusMinus = false;\n }\n\n const add = () => {\n loading.value = true;\n\n let options = [];\n\n if (button.value.closest('.product-main')) {\n const checkedOptions = document.querySelectorAll(\n \"#options input[type=checkbox]:checked\"\n );\n\n checkedOptions.forEach((element) => {\n options.push(parseInt(element.value));\n });\n }\n\n const q = Math.max(1, quantity.value);\n const product = button.value.closest('[shop-product]');\n const name = product.querySelector('[shop-product-name]').textContent;\n const price = product.querySelector('[shop-product-price]').childNodes[0].nodeValue.replace(/ /g, '');\n const code = product.dataset.code;\n\n store.dispatch(\"cart/add\", {\n product: {\n id: props.id,\n quantity: q,\n options: options,\n },\n finally: () => {\n loading.value = false;\n quantity.value = 1;\n\n if (props.after == \"message\") {\n const component = {\n component: SuccessMessage,\n };\n\n toast(component, {\n type: \"success-cart\",\n });\n }\n\n const object = {\n 'event': 'addToCart',\n 'ecommerce': {\n 'currencyCode': 'UAH',\n 'add': {\n 'products': [{\n 'name': name,\n 'id': code,\n 'price': price,\n 'quantity': q\n }]\n }\n }\n };\n\n if (window.dataLayer) {\n window.dataLayer.push({\n ecommerce: null\n });\n\n window.dataLayer.push(object);\n }\n },\n });\n };\n\n const remove = () => {\n loading.value = true;\n\n store.dispatch(\"cart/remove\", {\n id: props.id,\n finally: () => {\n loading.value = false;\n },\n });\n };\n\n const increase = () => {\n quantity.value++;\n };\n\n const decrease = () => {\n if (quantity.value > 1) {\n quantity.value--;\n }\n };\n\n return {\n button,\n loading,\n quantity,\n add,\n remove,\n cart,\n increase,\n decrease,\n isAlreadyInCart,\n isChangeQuantity,\n isPlusMinus,\n };\n },\n};\n</script>","<template>\n <div class=\"cart-add\" ref=\"button\">\n <div class=\"columns\">\n <div class=\"column\" v-if=\"$env.shop.isCustomQuantity && isChangeQuantity\">\n <div class=\"cart-change-quantity\">\n <button\n class=\"button is-small decrease\"\n @click=\"decrease\"\n :disabled=\"loading || quantity == 1\"\n v-if=\"isPlusMinus\"\n >-</button>\n <input\n class=\"input is-small\"\n type=\"number\"\n min=\"1\"\n v-model=\"quantity\"\n :disabled=\"loading\"\n />\n <button\n class=\"button is-small increase\"\n @click=\"increase\"\n :disabled=\"loading\"\n v-if=\"isPlusMinus\"\n >+</button>\n </div>\n </div>\n <div class=\"column is-narrow\">\n <button class=\"button is-link is-small\" v-on:click=\"add\" :disabled=\"loading\">\n <slot :label=\"__('shop.cart.add')\">\n <svg class=\"icon cart\">\n <use xlink:href=\"#cart-add\" />\n </svg>\n <span class=\"cart-add-button-label\">\n {{\n __(\"shop.cart.add\")\n }}\n </span>\n </slot>\n </button>\n </div>\n </div>\n <div v-if=\"$env.shop.isAlreadyInCart && isAlreadyInCart && cart > 0\">\n {{ __(\"shop.cart.already\", { quantity: cart }) }}\n <br />\n <a v-on:click.prevent=\"remove\" :disabled=\"loading\" v-text=\"__('shop.cart.remove')\"></a>\n </div>\n </div>\n</template>\n<script>\nimport { ref, computed } from \"vue\";\nimport { useStore } from \"vuex\";\nimport { useToast } from \"vue-toastification\";\nimport SuccessMessage from \"./SuccessMessage.vue\";\n\nconst toast = useToast();\n\nexport default {\n name: 'cart-add',\n props: {\n id: Number,\n isChangeQuantity: {\n type: Boolean,\n default: true,\n },\n isAlreadyInCart: {\n type: Boolean,\n default: true,\n },\n isSimple: {\n type: Boolean,\n default: false,\n },\n isPlusMinus: {\n type: Boolean,\n default: false,\n },\n after: {\n type: String,\n default: \"modal\",\n },\n },\n setup(props) {\n const store = useStore();\n const loading = ref(false);\n const quantity = ref(1);\n const button = ref(null);\n\n const cart = computed(() =>\n store.getters[\"cart/productQuantity\"](props.id)\n );\n\n let isAlreadyInCart = props.isAlreadyInCart;\n let isChangeQuantity = props.isChangeQuantity;\n let isPlusMinus = props.isPlusMinus;\n\n if (props.isSimple) {\n isAlreadyInCart = false;\n isChangeQuantity = false;\n isPlusMinus = false;\n }\n\n const add = () => {\n loading.value = true;\n\n let options = [];\n\n if (button.value.closest('.product-main')) {\n const checkedOptions = document.querySelectorAll(\n \"#options input[type=checkbox]:checked\"\n );\n\n checkedOptions.forEach((element) => {\n options.push(parseInt(element.value));\n });\n }\n\n const q = Math.max(1, quantity.value);\n const product = button.value.closest('[shop-product]');\n const name = product.querySelector('[shop-product-name]').textContent;\n const price = product.querySelector('[shop-product-price]').childNodes[0].nodeValue.replace(/ /g, '');\n const code = product.dataset.code;\n\n store.dispatch(\"cart/add\", {\n product: {\n id: props.id,\n quantity: q,\n options: options,\n },\n finally: () => {\n loading.value = false;\n quantity.value = 1;\n\n if (props.after == \"message\") {\n const component = {\n component: SuccessMessage,\n };\n\n toast(component, {\n type: \"success-cart\",\n });\n }\n\n const object = {\n 'event': 'addToCart',\n 'ecommerce': {\n 'currencyCode': 'UAH',\n 'add': {\n 'products': [{\n 'name': name,\n 'id': code,\n 'price': price,\n 'quantity': q\n }]\n }\n }\n };\n\n if (window.dataLayer) {\n window.dataLayer.push({\n ecommerce: null\n });\n\n window.dataLayer.push(object);\n }\n },\n });\n };\n\n const remove = () => {\n loading.value = true;\n\n store.dispatch(\"cart/remove\", {\n id: props.id,\n finally: () => {\n loading.value = false;\n },\n });\n };\n\n const increase = () => {\n quantity.value++;\n };\n\n const decrease = () => {\n if (quantity.value > 1) {\n quantity.value--;\n }\n };\n\n return {\n button,\n loading,\n quantity,\n add,\n remove,\n cart,\n increase,\n decrease,\n isAlreadyInCart,\n isChangeQuantity,\n isPlusMinus,\n };\n },\n};\n</script>"],"names":["setup","translate","window","__","_createElementBlock","_hoisted_1","$setup","toast","useToast","name","props","id","Number","isChangeQuantity","type","Boolean","isAlreadyInCart","isSimple","isPlusMinus","after","String","store","useStore","loading","ref","quantity","button","cart","computed","getters","add","value","options","closest","document","querySelectorAll","forEach","element","push","parseInt","q","Math","max","product","querySelector","textContent","price","childNodes","nodeValue","replace","code","dataset","dispatch","component","SuccessMessage","object","dataLayer","ecommerce","remove","increase","decrease","_createElementVNode","_hoisted_2","_ctx","shop","isCustomQuantity","_hoisted_3","_hoisted_4","onClick","disabled","min","_hoisted_8","_renderSlot","label","_hoisted_10","_hoisted_11","_hoisted_13","_toDisplayString"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("vue"),t=require("@perevorot/shop/dist/helpers"),n=require("vuex"),l=require("formvuelate"),o=require("@formvuelate/plugin-vee-validate"),i=require("@perevorot/shop/dist/forms/FormText"),a=require("yup"),r=require("vue-toastification");function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function s(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var l=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,l.get?l:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var m=c(o),u=c(i),d=s(a),p=e.defineComponent({name:"CheckoutItem",props:{item:Object},setup:function(t){var n=e.computed((function(){return t.item.attributes.options&&t.item.attributes.options.length?t.item.attributes.options:[]}));return{itemOptions:e.computed((function(){return t.item.options&&t.item.options.length?t.item.options.filter((function(e){return-1!==n.value.indexOf(e.id)})):[]}))}}}),v={key:0,class:"column is-12"},f=[e.createElementVNode("div",{class:"bundle-title"},"Вместе дешевле",-1)],k={class:"column name"},h={class:"column is-narrow"},g=["href"],E=["src"],V={key:1},N=[e.createElementVNode("use",{"xlink:href":"#logo"},null,-1)],y={class:"column"},b={class:"columns is-gapless mb-0"},B={class:"column"},C={key:0,class:"code"},w={class:"title"},T=["href"],x={class:"column is-2 has-text-centered is-relative"},_={class:"quantity"},S={key:0,class:"quantity-price"},M=["innerHTML"],L=e.createTextVNode(" / шт"),D={class:"column is-2 has-text-right"},H=["innerHTML"],q=["innerHTML"],O=["innerHTML"],$={key:0,class:"options is-toggled"},F={class:"toggler"},z={class:"wrapper"},R={class:"column"},P={class:"option-title"},j={class:"column is-2 has-text-right"},J=e.createTextVNode("+"),U=["innerHTML"],I={key:0,class:"bundle columns"},A={class:"column is-narrow"},G=e.createElementVNode("svg",{class:"bundle-icon"},[e.createElementVNode("use",{"xlink:href":"#bundle-plus"})],-1),K=["href"],Q=["src"],W={key:1},X=[e.createElementVNode("use",{"xlink:href":"#logo"},null,-1)],Y={class:"column"},Z={key:0,class:"code"},ee={class:"title"},te=["href"],ne={key:1,class:"bundle columns"},le={class:"column is-narrow"},oe=e.createElementVNode("svg",{class:"bundle-icon"},[e.createElementVNode("use",{"xlink:href":"#bundle-plus"})],-1),ie=["href"],ae=["src"],re={key:1},ce=[e.createElementVNode("use",{"xlink:href":"#logo"},null,-1)],se={class:"column"},me={key:0,class:"code"},ue={class:"title"},de=["href"];p.render=function(t,n,l,o,i,a){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["columns is-multiline shop-cart-item",{"is-bundle":t.item.attributes.bundle}])},[t.item.attributes.bundle?(e.openBlock(),e.createElementBlock("div",v,f)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",k,[e.createElementVNode("div",{class:e.normalizeClass(["columns",{"mb-0":t.item.attributes.bundle}])},[e.createElementVNode("div",h,[e.createElementVNode("a",{href:t.item.attributes.href},[e.createElementVNode("figure",{class:e.normalizeClass(["image is-square",{"no-thumb":!t.item.attributes.image}])},[t.item.attributes.image?(e.openBlock(),e.createElementBlock("img",{key:0,src:t.item.attributes.image},null,8,E)):(e.openBlock(),e.createElementBlock("svg",V,N))],2)],8,g)]),e.createElementVNode("div",y,[e.createElementVNode("div",b,[e.createElementVNode("div",B,[t.item.attributes.code?(e.openBlock(),e.createElementBlock("div",C,"Код продукта: "+e.toDisplayString(t.item.attributes.code),1)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",w,[e.createElementVNode("a",{href:t.item.attributes.href},e.toDisplayString(t.item.name),9,T)])]),e.createElementVNode("div",x,[e.createElementVNode("div",_,"⨉ "+e.toDisplayString(t.item.quantity),1),parseInt(t.item.quantity)>1?(e.openBlock(),e.createElementBlock("div",S,[e.createElementVNode("span",{innerHTML:t.$filters.price(t.item.attributes.price)},null,8,M),L])):e.createCommentVNode("v-if",!0)]),e.createElementVNode("div",D,[e.createElementVNode("div",{class:e.normalizeClass(["price",{"bundle-price":t.item.attributes.bundle}])},[t.item.attributes.priceOld?(e.openBlock(),e.createElementBlock("div",{key:0,class:"price-old",innerHTML:t.$filters.price(t.item.attributes.priceOld*t.item.quantity)},null,8,H)):e.createCommentVNode("v-if",!0),t.item.attributes.bundle&&t.item.attributes.amount?(e.openBlock(),e.createElementBlock("div",{key:1,class:"bundle-amount",innerHTML:"Выгода "+(t.item.attributes.amount.percent?t.item.attributes.amount.percent+"%":t.$filters.price(t.item.attributes.amount.sum*t.item.quantity))},null,8,q)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{innerHTML:t.$filters.price(t.item.attributes.price*t.item.quantity)},null,8,O)],2)])]),t.itemOptions&&t.itemOptions.length?(e.openBlock(),e.createElementBlock("div",$,[e.createElementVNode("div",F,[e.createElementVNode("span",null,"Дополнительные услуги, "+e.toDisplayString(t.itemOptions.length),1)]),e.createElementVNode("div",z,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.itemOptions,(function(n,l){return e.openBlock(),e.createElementBlock("div",{key:l,class:"columns is-checked"},[e.createElementVNode("div",R,[e.createElementVNode("div",P,e.toDisplayString(n.name),1)]),e.createElementVNode("div",j,[J,e.createElementVNode("span",{innerHTML:t.$filters.price(n.price)},null,8,U)])])})),128))])])):e.createCommentVNode("v-if",!0)])],2),t.item.attributes.bundle?(e.openBlock(),e.createElementBlock("div",I,[e.createElementVNode("div",A,[G,e.createElementVNode("a",{href:t.item.attributes.second.href},[e.createElementVNode("figure",{class:e.normalizeClass(["image is-square",{"no-thumb":!t.item.attributes.second.image}])},[t.item.attributes.second.image?(e.openBlock(),e.createElementBlock("img",{key:0,src:t.item.attributes.second.image},null,8,Q)):(e.openBlock(),e.createElementBlock("svg",W,X))],2)],8,K)]),e.createElementVNode("div",Y,[t.item.attributes.second.code?(e.openBlock(),e.createElementBlock("div",Z,"Код продукта: "+e.toDisplayString(t.item.attributes.second.code),1)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",ee,[e.createElementVNode("a",{href:t.item.attributes.second.href},e.toDisplayString(t.item.attributes.second.name),9,te)])])])):e.createCommentVNode("v-if",!0),t.item.attributes.bundle&&t.item.attributes.third?(e.openBlock(),e.createElementBlock("div",ne,[e.createElementVNode("div",le,[oe,e.createElementVNode("a",{href:t.item.attributes.third.href},[e.createElementVNode("figure",{class:e.normalizeClass(["image is-square",{"no-thumb":!t.item.attributes.third.image}])},[t.item.attributes.third.image?(e.openBlock(),e.createElementBlock("img",{key:0,src:t.item.attributes.third.image},null,8,ae)):(e.openBlock(),e.createElementBlock("svg",re,ce))],2)],8,ie)]),e.createElementVNode("div",se,[t.item.attributes.third.code?(e.openBlock(),e.createElementBlock("div",me,"Код продукта: "+e.toDisplayString(t.item.attributes.third.code),1)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",ue,[e.createElementVNode("a",{href:t.item.attributes.third.href},e.toDisplayString(t.item.attributes.third.name),9,de)])])])):e.createCommentVNode("v-if",!0)])],2)},e.markRaw(u.default);var pe=l.SchemaFormFactory([m.default({})]);window.viewedSwiperOptions={slidesPerView:"auto",freeMode:!0,slideClass:"product",mousewheel:{forceToAxis:!0},navigation:{nextEl:".next",prevEl:".prev"},observer:!0,observeParents:!0};var ve=e.defineComponent({components:{CheckoutItem:p,SchemaForm:pe},name:"order-checkout",setup:function(){var o=r.useToast(),i=n.useStore(),a=e.ref(!1),c=e.computed((function(){return i.getters["cart/quantity"]})),s=e.computed((function(){return i.getters["cart/items"]})),m=e.computed((function(){return i.getters["cart/total"]})),p=e.computed((function(){return i.getters["auth/is"]})),v=e.computed((function(){return i.getters["checkout/user"]})),f=e.ref(!0),k=e.ref(null),h=e.ref(!1),g=e.ref(null),E=e.ref({}),V=e.ref([]),N=e.ref([]),y=e.ref("new"),b=e.ref(null),B=e.computed((function(){return i.getters["checkout/shippingData"]})),C=e.ref(!1),w=e.computed({get:function(){return i.getters["checkout/dontcall"]},set:function(e){i.commit("checkout/dontcall",e)}}),T=e.computed({get:function(){var e=i.getters["checkout/comment"];return e&&(C.value=!0),e},set:function(e){i.commit("checkout/comment",e)}});e.watch(T,(function(e){e.length>1e3&&(T.value=T.value.substring(0,1e3))}));var x=function(t){return e.computed({get:function(){return v.value[t]},set:function(e){var n=JSON.parse(JSON.stringify(v.value));n[t]=e,i.commit("checkout/user",n)}})},_=e.ref({last_name:x("last_name"),name:x("name"),email:x("email"),phone:x("phone")});i.dispatch("auth/me",{finally:function(){}});var S=e.computed({get:function(){return i.getters["checkout/shipping"]},set:function(e){i.commit("checkout/shipping",e)}}),M=e.computed({get:function(){return i.getters["checkout/payment"]},set:function(e){i.commit("checkout/payment",e)}}),L=e.computed((function(){return S.value?V.value.find((function(e){return e.id==S.value})):{}})),D=e.computed((function(){return M.value?N.value.find((function(e){return e.id==M.value})):{}})),H=e.computed((function(){return z(V.value,S.value)})),q=e.computed((function(){return z(N.value,M.value)})),O=e.computed((function(){return R(V.value)})),$=e.computed((function(){return R(N.value)})),F=e.computed((function(){var e=[];return s.value.forEach((function(t){-1===e.indexOf(t.category_id)&&e.push(t.category_id)})),e})),z=function(e,t){var n=0;if(t){var l=e.find((function(e){return e.id==t}));l&&(n="sum"==l.type?l.amount:Math.round(m.value*l.amount/100))}return n},R=function(e){var t=[];return e.forEach((function(e){if(e.restrictions&&Object.keys(e.restrictions).length){var n=!0,l=e.restrictions;l.price_min&&l.price_max?(n=m.value>=l.price_min&&m.value<=l.price_max,e.restrictedForce=!n):l.price_min?(n=m.value>=l.price_min,e.restrictedForce=!n):l.price_max&&(n=m.value<=l.price_max,e.restrictedForce=!n),n&&S.value&&l.shipping_type&&l.shipping_type.length&&(n=-1!==l.shipping_type.indexOf(S.value)),n&&M.value&&l.payment_method&&l.payment_method.length&&(n=-1!==l.payment_method.indexOf(M.value)),n&&l.categories&&l.categories.length&&(n=!F.value.filter((function(e){return!l.categories.includes(e)})).length,e.restrictedForce=!n),e.restricted=!n}else e.restricted=!1;e.restrictedForce||t.push(e)})),t},P=e.computed((function(){var e=0;return s.value.forEach((function(t){var n=0;t.attributes.priceOld&&(n=t.attributes.priceOld-t.attributes.price),e+=n*t.quantity})),e}));$http.post(window.location.href).then((function(e){V.value=e.data.shipping,N.value=e.data.payment})),e.watch(y,(function(e){"login"==e&&i.commit("auth/modal","login")}));var j=e.ref({last_name:{component:u.default,label:__("auth.registration.form.last_name"),model:"last_name"},name:{component:u.default,label:__("auth.registration.form.name"),model:"first_name"},phone:{component:u.default,label:__("auth.registration.form.phone"),model:"phone",mask:"(###) ###-##-##",type:"phone"},email:{component:u.default,label:__("auth.login.form.email"),model:"email"}});l.useSchemaForm(_);var J=d.object().shape({last_name:d.string().trim().required(__("auth.validation.required")),name:d.string().trim().required(__("auth.validation.required")),phone:d.string().required(__("auth.validation.phone")).matches(/^\(\d{3}\) \d{3}\-\d{2}\-\d{2}$/,__("auth.validation.phone")),email:d.string().trim().email(__("auth.validation.email")).required(__("auth.validation.required"))});window.addEventListener("beforeunload",(function(){i.commit("auth/modal",null)}));var U=function(){i.commit("checkout/reset")};return{auth:p,userType:y,facebook:function(){window.location.href=$ziggy("auth.login.social",{provider:"facebook"})},google:function(){window.location.href=$ziggy("auth.login.social",{provider:"google"})},loginCallback:function(){y.value="new"},quantity:c,items:s,loading:a,pluralize:t.pluralize,discount:P,total:m,shipping:S,shippingPrice:H,payment:M,fee:q,userValidation:J,userSchema:j,userSubmitButton:b,checkout:function(){J.isValid(_.value).then((function(e){if(e)if(S.value)if(B.value[L.value.code]&&B.value[L.value.code].isValid)if(M.value){var t=JSON.parse(JSON.stringify(B.value[L.value.code]));delete t.isValid;var n={checkout:!0,user:{last_name:_.value.last_name,name:_.value.name,phone:_.value.phone,email:_.value.email},shipping:{id:S.value,data:t},payment:{id:M.value},comment:T.value,dontcall:w.value};a.value=!0,$http.post(window.location.href,n).then((function(e){e.data.redirect&&(E.value={url:e.data.redirect.url,data:e.data.redirect.data}),h.value=!0,g.value=e.data.order,U()})).catch((function(e){o("Ошибка сохранения заказа",{type:"error"}),console.error(e)})).finally((function(){a.value=!1}))}else o("Выберите вид оплаты",{type:"error"});else o("Заполните все поля для доставки: «"+L.value.name+"»",{type:"error"});else o("Выберите способ доставки",{type:"error"});else y.value="new",b.value.click(),o("Заполните данные получателя заказа",{type:"error"})}))},ifCheckoutReady:f,validate:function(){J.isValid(_.value).then((function(e){f.value=e&&M.value&&S.value&&(!L.value.component||L.value.component&&B.value[L.value.code]&&B.value[L.value.code].isValid)}))},shippingTypesRestricted:O,paymentMethodsRestricted:$,toggleShippingRadio:function(e){S.value===e&&(S.value=null)},togglePaymentRadio:function(e){M.value===e&&(M.value=null)},shippingSelected:L,paymentSelected:D,shippingComponentData:B,shippingStoreData:function(e,t,n){var l=JSON.parse(JSON.stringify(B.value));t.isValid=n,l[e]=t,i.commit("checkout/shippingData",l)},resertStore:U,user:_,dontcall:w,comment:T,isCommentToggled:C,commentMaxLength:1e3,userCheckout:v,thanks:h,order:g,redirect:E,redirectForm:k,home:function(){window.location.href=$env.locale.url?$env.locale.url:"/"}}}}),fe={class:"cart checkout"},ke=["action"],he=["name","value"],ge={key:1,class:"items-wrapper"},Ee=e.createElementVNode("div",{class:"checkout-title"},"Оформление заказа",-1),Ve={class:"columns"},Ne={class:"column"},ye={class:"checkout-block items"},be={class:"title-row"},Be={class:"items-title"},Ce=e.createTextVNode(" Ваш заказ "),we=["textContent"],Te=["innerHTML"],xe=["onClick"],_e=[e.createElementVNode("svg",null,[e.createElementVNode("use",{"xlink:href":"#cart-edit"})],-1),e.createElementVNode("span",null,"Редактировать заказ",-1)],Se={class:"checkout-block"},Me={class:"wrapper"},Le=e.createElementVNode("div",{class:"items-title"},"Контактные даные получателя заказа",-1),De={key:0,class:"user-tabs"},He=e.createTextVNode(" Я новый клиент "),qe=e.createTextVNode(" Я постоянный клиент "),Oe={class:"columns"},$e={class:"column user-form"},Fe={type:"submit",ref:"userSubmitButton",class:"is-hidden"},ze={class:"column user-login user-form"},Re={class:"column"},Pe={key:0,class:"social-auth"},je={class:"socials"},Je=e.createElementVNode("div",{class:"description"},"Или авторизируйтесь через социальные сети:",-1),Ue={class:"buttons"},Ie=[e.createElementVNode("svg",{class:"icon fb-btn"},[e.createElementVNode("use",{"xlink:href":"#logo-facebook-icon"})],-1),e.createElementVNode("span",null,"Facebook",-1)],Ae=[e.createElementVNode("svg",{class:"icon google-btn"},[e.createElementVNode("use",{"xlink:href":"#logo-google-icon"})],-1),e.createElementVNode("span",null,"Google",-1)],Ge={class:"wrapper"},Ke={class:"rows"},Qe={class:"item"},We={class:"row"},Xe=e.createElementVNode("div",{class:"info"},[e.createElementVNode("div",{class:"items-title mb-1"},"Доставка")],-1),Ye={class:"row"},Ze={class:"info"},et=["value","onClick"],tt=["src"],nt={key:1,class:"icon"},lt=[e.createElementVNode("use",{"xlink:href":"#shipping"},null,-1)],ot={key:0,class:"description"},it={class:"value"},at={key:0,class:"green"},rt=["innerHTML"],ct={class:"wrapper"},st={class:"rows"},mt={class:"item"},ut={class:"row"},dt=e.createElementVNode("div",{class:"info"},[e.createElementVNode("div",{class:"items-title mb-1"},"Оплата")],-1),pt={class:"row no-icon"},vt={class:"info"},ft=["value","onClick"],kt={key:0,class:"description"},ht={key:0,class:"value"},gt=["innerHTML"],Et={class:"column is-4"},Vt={class:"checkout-block summary"},Nt=e.createElementVNode("div",{class:"items-title"},"Итого",-1),yt={class:"rows"},bt={class:"row"},Bt={class:"info"},Ct=["textContent"],wt=e.createTextVNode(" на сумму "),Tt={class:"value"},xt=["innerHTML"],_t={key:0,class:"row"},St=e.createElementVNode("div",{class:"info"},"Скидка",-1),Mt={class:"value"},Lt=["innerHTML"],Dt={key:1,class:"row"},Ht=e.createElementVNode("div",{class:"info"},"Сервисный сбор",-1),qt={class:"value"},Ot=["innerHTML"],$t={key:2,class:"row"},Ft=e.createElementVNode("div",{class:"info"},"Стоимость доставки",-1),zt={class:"value"},Rt=["innerHTML"],Pt={key:1,class:"green"},jt={class:"row"},Jt=e.createElementVNode("div",{class:"info"},"К оплате",-1),Ut={class:"value orange"},It=["innerHTML"],At={class:"checkbox-wrapper"},Gt=e.createTextVNode(" Мне можно не перезванивать для оформления заказа "),Kt=[e.createElementVNode("span",null,"Добавить комментарий к заказу",-1),e.createElementVNode("svg",null,[e.createElementVNode("use",{"xlink:href":"#arrow-down"})],-1)],Qt={class:"user-form"},Wt={key:0,class:"chars-count"},Xt={key:2,class:"checkout-block thanks"},Yt={class:"title"},Zt=e.createTextVNode(" Заказ "),en=e.createTextVNode(" успешно создан! "),tn={class:"columns"},nn={key:0,class:"column is-6"},ln=e.createElementVNode("div",{class:"subtitle"},"Перейдите к оплате для завершения покупки",-1),on={key:1,class:"column is-6"},an={class:"column is-6"},rn={key:0,class:"info-wrapper"},cn=e.createElementVNode("div",{class:"title"},"Доставка",-1),sn={class:"columns"},mn=["innerHTML"],un=["innerHTML"],dn={key:1,class:"info-wrapper"},pn=e.createElementVNode("div",{class:"title"},"Оплата",-1),vn={class:"columns"},fn=["innerHTML"],kn=["innerHTML"],hn={key:3,class:"checkout-block empty"},gn=e.createElementVNode("div",{class:"title"},"В корзине пока что нет товаров",-1),En={class:"message"},Vn=e.createTextVNode(" Посмотрите предложения на "),Nn=["href"],yn=e.createTextVNode(", "),bn=e.createElementVNode("br",null,null,-1),Bn=e.createTextVNode("воспользуйтесь каталогом или поиском "),Cn=["href"];ve.render=function(t,n,l,o,i,a){var r=e.resolveComponent("checkout-item"),c=e.resolveComponent("cart-trigger"),s=e.resolveComponent("SchemaForm"),m=e.resolveComponent("login");return e.openBlock(),e.createElementBlock("div",fe,[t.redirect.url?(e.openBlock(),e.createElementBlock("form",{key:0,ref:"redirectForm",action:t.redirect.url,class:"is-hidden",method:"post"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.redirect.data,(function(t,n,l){return e.openBlock(),e.createElementBlock("input",{type:"hidden",name:n,value:t,key:l},null,8,he)})),128))],8,ke)):e.createCommentVNode("v-if",!0),t.items.length&&!t.thanks?(e.openBlock(),e.createElementBlock("div",ge,[Ee,e.createElementVNode("div",Ve,[e.createElementVNode("div",Ne,[e.createElementVNode("div",ye,[e.createElementVNode("div",be,[e.createElementVNode("div",Be,[Ce,e.createElementVNode("span",{class:"ml-3",textContent:e.toDisplayString(t.pluralize(t.quantity,t.__("shop.pluralize.products")))},null,8,we),e.createElementVNode("span",{innerHTML:"на сумму "+t.$filters.price(t.total)},null,8,Te)])]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(function(t){return e.openBlock(),e.createBlock(r,{key:t.id,item:t},null,8,["item"])})),128)),e.createVNode(c,{class:"trigger"},{default:e.withCtx((function(t){return[e.createElementVNode("button",{class:"button",onClick:t.open},_e,8,xe)]})),_:1})]),e.createElementVNode("button",{onClick:n[0]||(n[0]=function(){return t.resertStore&&t.resertStore.apply(t,arguments)}),style:{position:"fixed",bottom:"1px",right:"1px","z-index":"1000"}},"reset"),e.createElementVNode("div",Se,[e.createElementVNode("div",Me,[Le,t.auth?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("div",De,[e.createElementVNode("label",null,[e.withDirectives(e.createElementVNode("input",{type:"radio",class:"radio","onUpdate:modelValue":n[1]||(n[1]=function(e){return t.userType=e}),value:"new"},null,512),[[e.vModelRadio,t.userType]]),He]),e.createElementVNode("label",null,[e.withDirectives(e.createElementVNode("input",{type:"radio",class:"radio","onUpdate:modelValue":n[2]||(n[2]=function(e){return t.userType=e}),value:"login"},null,512),[[e.vModelRadio,t.userType]]),qe])])),e.createElementVNode("div",Oe,[e.withDirectives(e.createElementVNode("div",$e,[e.createVNode(s,{schemaRowClasses:"field",schema:t.userSchema,"validation-schema":t.userValidation},{afterForm:e.withCtx((function(){return[e.createElementVNode("button",Fe,null,512)]})),_:1},8,["schema","validation-schema"])],512),[[e.vShow,"new"==t.userType]]),e.withDirectives(e.createElementVNode("div",ze,[e.createVNode(m,{"login-callback":t.loginCallback},null,8,["login-callback"])],512),[[e.vShow,"login"==t.userType]]),e.createElementVNode("div",Re,[t.auth?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("div",Pe,[e.createElementVNode("div",je,[Je,e.createElementVNode("div",Ue,[e.createElementVNode("a",{class:"button",onClick:n[3]||(n[3]=function(){return t.facebook&&t.facebook.apply(t,arguments)})},Ie),e.createElementVNode("a",{class:"button",onClick:n[4]||(n[4]=function(){return t.google&&t.google.apply(t,arguments)})},Ae)])])]))])])]),e.createElementVNode("div",Ge,[e.createElementVNode("div",Ke,[e.createElementVNode("div",Qe,[e.createElementVNode("div",We,[Xe,e.createCommentVNode("v-if",!0)])]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.shippingTypesRestricted,(function(l){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["item",{"is-disabled":l.restricted}]),key:l.id},[e.createElementVNode("div",Ye,[e.createElementVNode("div",Ze,[e.createElementVNode("label",null,[e.withDirectives(e.createElementVNode("input",{type:"radio",class:"radio","onUpdate:modelValue":n[6]||(n[6]=function(e){return t.shipping=e}),value:l.id,onClick:function(e){return t.toggleShippingRadio(l.id)}},null,8,et),[[e.vModelRadio,t.shipping]]),l.icon?(e.openBlock(),e.createElementBlock("img",{key:0,class:"icon",src:l.icon},null,8,tt)):(e.openBlock(),e.createElementBlock("svg",nt,lt)),e.createElementVNode("span",null,e.toDisplayString(l.name),1)]),l.description?(e.openBlock(),e.createElementBlock("div",ot,e.toDisplayString(l.description),1)):e.createCommentVNode("v-if",!0)]),e.createElementVNode("div",it,[!l.amount&&l.price_label?(e.openBlock(),e.createElementBlock("span",at,e.toDisplayString(l.price_label),1)):(e.openBlock(),e.createElementBlock("span",{key:1,innerHTML:"percent"==l.type?l.amount+"%":t.$filters.price(l.amount)},null,8,rt))])]),e.withDirectives((e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.component),{commit:t.shippingStoreData,data:t.shippingComponentData,item:l},null,8,["commit","data","item"])),[[e.vShow,l.component&&l.id==t.shipping]])],2)})),128))])]),e.createElementVNode("div",ct,[e.createElementVNode("div",st,[e.createElementVNode("div",mt,[e.createElementVNode("div",ut,[dt,e.createCommentVNode("v-if",!0)])]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.paymentMethodsRestricted,(function(l){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["item",{"is-disabled":l.restricted}]),key:l.id},[e.createElementVNode("div",pt,[e.createElementVNode("div",vt,[e.createElementVNode("label",null,[e.withDirectives(e.createElementVNode("input",{type:"radio",class:"radio","onUpdate:modelValue":n[8]||(n[8]=function(e){return t.payment=e}),value:l.id,onClick:function(e){return t.togglePaymentRadio(l.id)}},null,8,ft),[[e.vModelRadio,t.payment]]),e.createElementVNode("span",null,e.toDisplayString(l.name),1)]),l.description?(e.openBlock(),e.createElementBlock("div",kt,e.toDisplayString(l.description),1)):e.createCommentVNode("v-if",!0)]),l.amount?(e.openBlock(),e.createElementBlock("div",ht,[e.createElementVNode("span",{innerHTML:"percent"==l.type?l.amount+"%":t.$filters.price(l.amount)},null,8,gt)])):e.createCommentVNode("v-if",!0)])],2)})),128))])])])]),e.createElementVNode("div",Et,[e.createElementVNode("div",Vt,[Nt,e.createElementVNode("div",yt,[e.createElementVNode("div",bt,[e.createElementVNode("div",Bt,[e.createElementVNode("span",{textContent:e.toDisplayString(t.pluralize(t.quantity,t.__("shop.pluralize.products")))},null,8,Ct),wt]),e.createElementVNode("div",Tt,[e.createElementVNode("span",{innerHTML:t.$filters.price(t.total)},null,8,xt)])]),t.discount?(e.openBlock(),e.createElementBlock("div",_t,[St,e.createElementVNode("div",Mt,[e.createElementVNode("span",{innerHTML:t.$filters.price(t.discount)},null,8,Lt)])])):e.createCommentVNode("v-if",!0),t.fee>0?(e.openBlock(),e.createElementBlock("div",Dt,[Ht,e.createElementVNode("div",qt,[e.createElementVNode("span",{innerHTML:t.$filters.price(t.fee)},null,8,Ot)])])):e.createCommentVNode("v-if",!0),t.shipping?(e.openBlock(),e.createElementBlock("div",$t,[Ft,e.createElementVNode("div",zt,[t.shippingPrice>0?(e.openBlock(),e.createElementBlock("span",{key:0,innerHTML:t.$filters.price(t.shippingPrice)},null,8,Rt)):t.shippingSelected&&t.shippingSelected.price_label?(e.openBlock(),e.createElementBlock("span",Pt,e.toDisplayString(t.shippingSelected.price_label),1)):e.createCommentVNode("v-if",!0)])])):e.createCommentVNode("v-if",!0),e.createElementVNode("div",jt,[Jt,e.createElementVNode("div",Ut,[e.createElementVNode("span",{innerHTML:t.$filters.price(t.total+t.fee+t.shippingPrice)},null,8,It)])])]),e.createElementVNode("div",At,[e.createElementVNode("label",null,[e.withDirectives(e.createElementVNode("input",{type:"checkbox",class:"checkbox","onUpdate:modelValue":n[9]||(n[9]=function(e){return t.dontcall=e})},null,512),[[e.vModelCheckbox,t.dontcall]]),Gt])]),e.createElementVNode("button",{class:e.normalizeClass(["button submit",{red:!t.ifCheckoutReady,"is-loading":t.loading}]),onClick:n[10]||(n[10]=function(){return t.checkout&&t.checkout.apply(t,arguments)}),onMouseenter:n[11]||(n[11]=function(){return t.validate&&t.validate.apply(t,arguments)})},"Подтвердить заказ",34),e.createElementVNode("div",{class:e.normalizeClass(["comment-wrapper",{"is-open":t.isCommentToggled}])},[e.createElementVNode("div",{class:"toggler",onClick:n[12]||(n[12]=function(e){return t.isCommentToggled=!t.isCommentToggled})},Kt),e.createElementVNode("div",Qt,[e.withDirectives(e.createElementVNode("textarea",{class:"textarea","onUpdate:modelValue":n[13]||(n[13]=function(e){return t.comment=e})},null,512),[[e.vModelText,t.comment]]),t.comment.length?(e.openBlock(),e.createElementBlock("div",Wt,e.toDisplayString(t.commentMaxLength-t.comment.length),1)):e.createCommentVNode("v-if",!0)])],2)])])])])):t.thanks&&t.order?(e.openBlock(),e.createElementBlock("div",Xt,[e.createElementVNode("div",Yt,[Zt,e.createElementVNode("span",null,"№"+e.toDisplayString(t.order.id),1),en]),e.createElementVNode("div",tn,[t.redirect.url?(e.openBlock(),e.createElementBlock("div",nn,[ln,e.createElementVNode("button",{class:"button is-payment",onClick:n[14]||(n[14]=function(e){return t.redirectForm.submit()})},"Перейти к оплате")])):(e.openBlock(),e.createElementBlock("div",on,[e.createElementVNode("button",{class:"button is-orange",onClick:n[15]||(n[15]=function(){return t.home&&t.home.apply(t,arguments)})},"Продолжить покупки")])),e.createElementVNode("div",an,[t.order.shipping[0]?(e.openBlock(),e.createElementBlock("div",rn,[cn,e.createElementVNode("div",sn,[t.order.shipping[0]?(e.openBlock(),e.createElementBlock("div",{key:0,class:"column is-6",innerHTML:t.order.shipping[0]},null,8,mn)):e.createCommentVNode("v-if",!0),t.order.shipping[1]?(e.openBlock(),e.createElementBlock("div",{key:1,class:"column is-6",innerHTML:t.order.shipping[1]},null,8,un)):e.createCommentVNode("v-if",!0)])])):e.createCommentVNode("v-if",!0),t.order.payment[0]?(e.openBlock(),e.createElementBlock("div",dn,[pn,e.createElementVNode("div",vn,[t.order.payment[0]?(e.openBlock(),e.createElementBlock("div",{key:0,class:"column is-6",innerHTML:t.order.payment[0]},null,8,fn)):e.createCommentVNode("v-if",!0),t.order.payment[1]?(e.openBlock(),e.createElementBlock("div",{key:1,class:"column is-6",innerHTML:t.order.payment[1]},null,8,kn)):e.createCommentVNode("v-if",!0)])])):e.createCommentVNode("v-if",!0)])])])):(e.openBlock(),e.createElementBlock("div",hn,[gn,e.createElementVNode("div",En,[Vn,e.createElementVNode("a",{href:t.$env.locale.url?t.$env.locale.url:"/"},"главной странице",8,Nn),yn,bn,Bn]),e.createElementVNode("a",{class:"button continue",href:t.$env.locale.url?t.$env.locale.url:"/"},"Продолжить покупки",8,Cn)]))])},module.exports=ve;
1
+ "use strict";var e=require("vue"),t=require("@perevorot/shop/dist/helpers"),n=require("vuex"),o=require("formvuelate"),l=require("@formvuelate/plugin-vee-validate"),a=require("@perevorot/shop/dist/forms/FormText"),i=require("yup"),r=require("vue-toastification");function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function s(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var u=c(l),m=c(a),d=s(i),p=e.defineComponent({name:"CheckoutItem",props:{item:Object},setup:function(t){var n=e.computed((function(){return t.item.attributes.options&&t.item.attributes.options.length?t.item.attributes.options:[]}));return{itemOptions:e.computed((function(){return t.item.options&&t.item.options.length?t.item.options.filter((function(e){return-1!==n.value.indexOf(e.id)})):[]}))}}}),v={key:0,class:"column is-12"},f=[e.createElementVNode("div",{class:"bundle-title"},"Вместе дешевле",-1)],h={class:"column name"},k={class:"column is-narrow"},g=["href"],E=["src"],V={key:1},N=[e.createElementVNode("use",{"xlink:href":"#logo"},null,-1)],y={class:"column"},b={class:"columns is-gapless mb-0"},B={class:"column"},C={key:0,class:"code"},w={class:"title"},T=["href"],x={class:"column is-2 has-text-centered is-relative"},_={class:"quantity"},S={key:0,class:"quantity-price"},M=["innerHTML"],L=e.createTextVNode(" / шт"),D={class:"column is-2 has-text-right"},H=["innerHTML"],q=["innerHTML"],O=["innerHTML"],$={key:0,class:"options is-toggled"},F={class:"toggler"},z={class:"wrapper"},R={class:"column"},P={class:"option-title"},j={class:"column is-2 has-text-right"},J=e.createTextVNode("+"),U=["innerHTML"],I={key:0,class:"bundle columns"},A={class:"column is-narrow"},G=e.createElementVNode("svg",{class:"bundle-icon"},[e.createElementVNode("use",{"xlink:href":"#bundle-plus"})],-1),K=["href"],Q=["src"],W={key:1},X=[e.createElementVNode("use",{"xlink:href":"#logo"},null,-1)],Y={class:"column"},Z={key:0,class:"code"},ee={class:"title"},te=["href"],ne={key:1,class:"bundle columns"},oe={class:"column is-narrow"},le=e.createElementVNode("svg",{class:"bundle-icon"},[e.createElementVNode("use",{"xlink:href":"#bundle-plus"})],-1),ae=["href"],ie=["src"],re={key:1},ce=[e.createElementVNode("use",{"xlink:href":"#logo"},null,-1)],se={class:"column"},ue={key:0,class:"code"},me={class:"title"},de=["href"];p.render=function(t,n,o,l,a,i){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["columns is-multiline shop-cart-item",{"is-bundle":t.item.attributes.bundle}])},[t.item.attributes.bundle?(e.openBlock(),e.createElementBlock("div",v,f)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",h,[e.createElementVNode("div",{class:e.normalizeClass(["columns",{"mb-0":t.item.attributes.bundle}])},[e.createElementVNode("div",k,[e.createElementVNode("a",{href:t.item.attributes.href},[e.createElementVNode("figure",{class:e.normalizeClass(["image is-square",{"no-thumb":!t.item.attributes.image}])},[t.item.attributes.image?(e.openBlock(),e.createElementBlock("img",{key:0,src:t.item.attributes.image},null,8,E)):(e.openBlock(),e.createElementBlock("svg",V,N))],2)],8,g)]),e.createElementVNode("div",y,[e.createElementVNode("div",b,[e.createElementVNode("div",B,[t.item.attributes.code?(e.openBlock(),e.createElementBlock("div",C,"Код продукта: "+e.toDisplayString(t.item.attributes.code),1)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",w,[e.createElementVNode("a",{href:t.item.attributes.href},e.toDisplayString(t.item.name),9,T)])]),e.createElementVNode("div",x,[e.createElementVNode("div",_,"⨉ "+e.toDisplayString(t.item.quantity),1),parseInt(t.item.quantity)>1?(e.openBlock(),e.createElementBlock("div",S,[e.createElementVNode("span",{innerHTML:t.$filters.price(t.item.attributes.price)},null,8,M),L])):e.createCommentVNode("v-if",!0)]),e.createElementVNode("div",D,[e.createElementVNode("div",{class:e.normalizeClass(["price",{"bundle-price":t.item.attributes.bundle}])},[t.item.attributes.priceOld?(e.openBlock(),e.createElementBlock("div",{key:0,class:"price-old",innerHTML:t.$filters.price(t.item.attributes.priceOld*t.item.quantity)},null,8,H)):e.createCommentVNode("v-if",!0),t.item.attributes.bundle&&t.item.attributes.amount?(e.openBlock(),e.createElementBlock("div",{key:1,class:"bundle-amount",innerHTML:"Выгода "+(t.item.attributes.amount.percent?t.item.attributes.amount.percent+"%":t.$filters.price(t.item.attributes.amount.sum*t.item.quantity))},null,8,q)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{innerHTML:t.$filters.price(t.item.attributes.price*t.item.quantity)},null,8,O)],2)])]),t.itemOptions&&t.itemOptions.length?(e.openBlock(),e.createElementBlock("div",$,[e.createElementVNode("div",F,[e.createElementVNode("span",null,"Дополнительные услуги, "+e.toDisplayString(t.itemOptions.length),1)]),e.createElementVNode("div",z,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.itemOptions,(function(n,o){return e.openBlock(),e.createElementBlock("div",{key:o,class:"columns is-checked"},[e.createElementVNode("div",R,[e.createElementVNode("div",P,e.toDisplayString(n.name),1)]),e.createElementVNode("div",j,[J,e.createElementVNode("span",{innerHTML:t.$filters.price(n.price)},null,8,U)])])})),128))])])):e.createCommentVNode("v-if",!0)])],2),t.item.attributes.bundle?(e.openBlock(),e.createElementBlock("div",I,[e.createElementVNode("div",A,[G,e.createElementVNode("a",{href:t.item.attributes.second.href},[e.createElementVNode("figure",{class:e.normalizeClass(["image is-square",{"no-thumb":!t.item.attributes.second.image}])},[t.item.attributes.second.image?(e.openBlock(),e.createElementBlock("img",{key:0,src:t.item.attributes.second.image},null,8,Q)):(e.openBlock(),e.createElementBlock("svg",W,X))],2)],8,K)]),e.createElementVNode("div",Y,[t.item.attributes.second.code?(e.openBlock(),e.createElementBlock("div",Z,"Код продукта: "+e.toDisplayString(t.item.attributes.second.code),1)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",ee,[e.createElementVNode("a",{href:t.item.attributes.second.href},e.toDisplayString(t.item.attributes.second.name),9,te)])])])):e.createCommentVNode("v-if",!0),t.item.attributes.bundle&&t.item.attributes.third?(e.openBlock(),e.createElementBlock("div",ne,[e.createElementVNode("div",oe,[le,e.createElementVNode("a",{href:t.item.attributes.third.href},[e.createElementVNode("figure",{class:e.normalizeClass(["image is-square",{"no-thumb":!t.item.attributes.third.image}])},[t.item.attributes.third.image?(e.openBlock(),e.createElementBlock("img",{key:0,src:t.item.attributes.third.image},null,8,ie)):(e.openBlock(),e.createElementBlock("svg",re,ce))],2)],8,ae)]),e.createElementVNode("div",se,[t.item.attributes.third.code?(e.openBlock(),e.createElementBlock("div",ue,"Код продукта: "+e.toDisplayString(t.item.attributes.third.code),1)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",me,[e.createElementVNode("a",{href:t.item.attributes.third.href},e.toDisplayString(t.item.attributes.third.name),9,de)])])])):e.createCommentVNode("v-if",!0)])],2)},e.markRaw(m.default);var pe=o.SchemaFormFactory([u.default({})]);window.viewedSwiperOptions={slidesPerView:"auto",freeMode:!0,slideClass:"product",mousewheel:{forceToAxis:!0},navigation:{nextEl:".next",prevEl:".prev"},observer:!0,observeParents:!0};var ve=e.defineComponent({components:{CheckoutItem:p,SchemaForm:pe},name:"order-checkout",setup:function(){var l=r.useToast(),a=n.useStore(),i=e.ref(!1),c=e.computed((function(){return a.getters["cart/quantity"]})),s=e.computed((function(){return a.getters["cart/items"]})),u=e.computed((function(){return a.getters["cart/total"]})),p=e.computed((function(){return a.getters["auth/is"]})),v=e.computed((function(){return a.getters["checkout/user"]})),f=e.ref(!0),h=e.ref(null),k=e.ref(!1),g=e.ref(null),E=e.ref({}),V=e.ref([]),N=e.ref([]),y=e.ref("new"),b=e.ref(null),B=e.computed((function(){return a.getters["checkout/shippingData"]})),C=e.ref(!1),w=e.computed({get:function(){return a.getters["checkout/dontcall"]},set:function(e){a.commit("checkout/dontcall",e)}}),T=e.computed({get:function(){var e=a.getters["checkout/comment"];return e&&(C.value=!0),e},set:function(e){a.commit("checkout/comment",e)}});e.watch(T,(function(e){e.length>1e3&&(T.value=T.value.substring(0,1e3))}));var x=function(t){return e.computed({get:function(){return v.value[t]},set:function(e){var n=JSON.parse(JSON.stringify(v.value));n[t]=e,a.commit("checkout/user",n)}})},_=e.ref({last_name:x("last_name"),name:x("name"),email:x("email"),phone:x("phone")});a.dispatch("auth/me",{finally:function(){}});var S=e.computed({get:function(){return a.getters["checkout/shipping"]},set:function(e){a.commit("checkout/shipping",e)}}),M=e.computed({get:function(){return a.getters["checkout/payment"]},set:function(e){a.commit("checkout/payment",e)}}),L=e.computed((function(){return S.value?V.value.find((function(e){return e.id==S.value})):{}})),D=e.computed((function(){return M.value?N.value.find((function(e){return e.id==M.value})):{}})),H=e.computed((function(){return z(V.value,S.value)})),q=e.computed((function(){return z(N.value,M.value)})),O=e.computed((function(){return R(V.value)})),$=e.computed((function(){return R(N.value)})),F=e.computed((function(){var e=[];return s.value.forEach((function(t){-1===e.indexOf(t.category_id)&&e.push(t.category_id)})),e})),z=function(e,t){var n=0;if(t){var o=e.find((function(e){return e.id==t}));o&&(n="sum"==o.type?o.amount:Math.round(u.value*o.amount/100))}return n},R=function(e){var t=[];return e.forEach((function(e){if(e.restrictions&&Object.keys(e.restrictions).length){var n=!0,o=e.restrictions;o.price_min&&o.price_max?(n=u.value>=o.price_min&&u.value<=o.price_max,e.restrictedForce=!n):o.price_min?(n=u.value>=o.price_min,e.restrictedForce=!n):o.price_max&&(n=u.value<=o.price_max,e.restrictedForce=!n),n&&S.value&&o.shipping_type&&o.shipping_type.length&&(n=-1!==o.shipping_type.indexOf(S.value)),n&&M.value&&o.payment_method&&o.payment_method.length&&(n=-1!==o.payment_method.indexOf(M.value)),n&&o.categories&&o.categories.length&&(n=!F.value.filter((function(e){return!o.categories.includes(e)})).length,e.restrictedForce=!n),e.restricted=!n}else e.restricted=!1;e.restrictedForce||t.push(e)})),t},P=e.computed((function(){var e=0;return s.value.forEach((function(t){var n=0;t.attributes.priceOld&&(n=t.attributes.priceOld-t.attributes.price),e+=n*t.quantity})),e}));$http.post(window.location.href).then((function(e){V.value=e.data.shipping,N.value=e.data.payment})),e.watch(y,(function(e){"login"==e&&a.commit("auth/modal","login")}));var j=e.ref({last_name:{component:m.default,label:__("auth.registration.form.last_name"),model:"last_name"},name:{component:m.default,label:__("auth.registration.form.name"),model:"first_name"},phone:{component:m.default,label:__("auth.registration.form.phone"),model:"phone",mask:"(###) ###-##-##",type:"phone"},email:{component:m.default,label:__("auth.login.form.email"),model:"email"}});o.useSchemaForm(_);var J=d.object().shape({last_name:d.string().trim().required(__("auth.validation.required")),name:d.string().trim().required(__("auth.validation.required")),phone:d.string().required(__("auth.validation.phone")).matches(/^\(\d{3}\) \d{3}\-\d{2}\-\d{2}$/,__("auth.validation.phone")),email:d.string().trim().email(__("auth.validation.email")).required(__("auth.validation.required"))});window.addEventListener("beforeunload",(function(){a.commit("auth/modal",null)}));var U=function(){a.commit("checkout/reset")};return{auth:p,userType:y,facebook:function(){window.location.href=$ziggy("auth.login.social",{provider:"facebook"})},google:function(){window.location.href=$ziggy("auth.login.social",{provider:"google"})},loginCallback:function(){y.value="new"},quantity:c,items:s,loading:i,pluralize:t.pluralize,discount:P,total:u,shipping:S,shippingPrice:H,payment:M,fee:q,userValidation:J,userSchema:j,userSubmitButton:b,checkout:function(){J.isValid(_.value).then((function(e){if(e)if(S.value)if(B.value[L.value.code]&&B.value[L.value.code].isValid)if(M.value){var t=JSON.parse(JSON.stringify(B.value[L.value.code]));delete t.isValid;var n={checkout:!0,user:{last_name:_.value.last_name,name:_.value.name,phone:_.value.phone,email:_.value.email},shipping:{id:S.value,data:t},payment:{id:M.value},comment:T.value,dontcall:w.value};i.value=!0,$http.post(window.location.href,n).then((function(e){if(e.data.redirect)E.value={url:e.data.redirect.url,data:e.data.redirect.data};else{var t=[];s.value.forEach((function(e){t.push({name:e.name,id:e.attributes.code,price:e.attributes.price,brand:e.attributes.brand,category:e.attributes.category,quantity:e.quantity})}));var n={ecommerce:{purchase:{actionField:{id:e.data.order.id,affiliation:"mrfix.ua",revenue:u.value+q.value+H.value,tax:"0",shipping:H.value},products:[t]}}};window.dataLayer&&(window.dataLayer.push({ecommerce:null}),window.dataLayer.push(n))}k.value=!0,g.value=e.data.order,U()})).catch((function(e){l("Ошибка сохранения заказа",{type:"error"}),console.error(e)})).finally((function(){i.value=!1}))}else l("Выберите вид оплаты",{type:"error"});else l("Заполните все поля для доставки: «"+L.value.name+"»",{type:"error"});else l("Выберите способ доставки",{type:"error"});else y.value="new",b.value.click(),l("Заполните данные получателя заказа",{type:"error"})}))},ifCheckoutReady:f,validate:function(){J.isValid(_.value).then((function(e){f.value=e&&M.value&&S.value&&(!L.value.component||L.value.component&&B.value[L.value.code]&&B.value[L.value.code].isValid)}))},shippingTypesRestricted:O,paymentMethodsRestricted:$,toggleShippingRadio:function(e){S.value===e&&(S.value=null)},togglePaymentRadio:function(e){M.value===e&&(M.value=null)},shippingSelected:L,paymentSelected:D,shippingComponentData:B,shippingStoreData:function(e,t,n){var o=JSON.parse(JSON.stringify(B.value));t.isValid=n,o[e]=t,a.commit("checkout/shippingData",o)},resertStore:U,user:_,dontcall:w,comment:T,isCommentToggled:C,commentMaxLength:1e3,userCheckout:v,thanks:k,order:g,redirect:E,redirectForm:h,home:function(){window.location.href=$env.locale.url?$env.locale.url:"/"}}}}),fe={class:"cart checkout"},he=["action"],ke=["name","value"],ge={key:1,class:"items-wrapper"},Ee=e.createElementVNode("div",{class:"checkout-title"},"Оформление заказа",-1),Ve={class:"columns"},Ne={class:"column"},ye={class:"checkout-block items"},be={class:"title-row"},Be={class:"items-title"},Ce=e.createTextVNode(" Ваш заказ "),we=["textContent"],Te=["innerHTML"],xe=["onClick"],_e=[e.createElementVNode("svg",null,[e.createElementVNode("use",{"xlink:href":"#cart-edit"})],-1),e.createElementVNode("span",null,"Редактировать заказ",-1)],Se={class:"checkout-block"},Me={class:"wrapper"},Le=e.createElementVNode("div",{class:"items-title"},"Контактные даные получателя заказа",-1),De={key:0,class:"user-tabs"},He=e.createTextVNode(" Я новый клиент "),qe=e.createTextVNode(" Я постоянный клиент "),Oe={class:"columns"},$e={class:"column user-form"},Fe={type:"submit",ref:"userSubmitButton",class:"is-hidden"},ze={class:"column user-login user-form"},Re={class:"column"},Pe={key:0,class:"social-auth"},je={class:"socials"},Je=e.createElementVNode("div",{class:"description"},"Или авторизируйтесь через социальные сети:",-1),Ue={class:"buttons"},Ie=[e.createElementVNode("svg",{class:"icon fb-btn"},[e.createElementVNode("use",{"xlink:href":"#logo-facebook-icon"})],-1),e.createElementVNode("span",null,"Facebook",-1)],Ae=[e.createElementVNode("svg",{class:"icon google-btn"},[e.createElementVNode("use",{"xlink:href":"#logo-google-icon"})],-1),e.createElementVNode("span",null,"Google",-1)],Ge={class:"wrapper"},Ke={class:"rows"},Qe={class:"item"},We={class:"row"},Xe=e.createElementVNode("div",{class:"info"},[e.createElementVNode("div",{class:"items-title mb-1"},"Доставка")],-1),Ye={class:"row"},Ze={class:"info"},et=["value","onClick"],tt=["src"],nt={key:1,class:"icon"},ot=[e.createElementVNode("use",{"xlink:href":"#shipping"},null,-1)],lt={key:0,class:"description"},at={class:"value"},it={key:0,class:"green"},rt=["innerHTML"],ct={class:"wrapper"},st={class:"rows"},ut={class:"item"},mt={class:"row"},dt=e.createElementVNode("div",{class:"info"},[e.createElementVNode("div",{class:"items-title mb-1"},"Оплата")],-1),pt={class:"row no-icon"},vt={class:"info"},ft=["value","onClick"],ht={key:0,class:"description"},kt={key:0,class:"value"},gt=["innerHTML"],Et={class:"column is-4"},Vt={class:"checkout-block summary"},Nt=e.createElementVNode("div",{class:"items-title"},"Итого",-1),yt={class:"rows"},bt={class:"row"},Bt={class:"info"},Ct=["textContent"],wt=e.createTextVNode(" на сумму "),Tt={class:"value"},xt=["innerHTML"],_t={key:0,class:"row"},St=e.createElementVNode("div",{class:"info"},"Скидка",-1),Mt={class:"value"},Lt=["innerHTML"],Dt={key:1,class:"row"},Ht=e.createElementVNode("div",{class:"info"},"Сервисный сбор",-1),qt={class:"value"},Ot=["innerHTML"],$t={key:2,class:"row"},Ft=e.createElementVNode("div",{class:"info"},"Стоимость доставки",-1),zt={class:"value"},Rt=["innerHTML"],Pt={key:1,class:"green"},jt={class:"row"},Jt=e.createElementVNode("div",{class:"info"},"К оплате",-1),Ut={class:"value orange"},It=["innerHTML"],At={class:"checkbox-wrapper"},Gt=e.createTextVNode(" Мне можно не перезванивать для оформления заказа "),Kt=[e.createElementVNode("span",null,"Добавить комментарий к заказу",-1),e.createElementVNode("svg",null,[e.createElementVNode("use",{"xlink:href":"#arrow-down"})],-1)],Qt={class:"user-form"},Wt={key:0,class:"chars-count"},Xt={key:2,class:"checkout-block thanks"},Yt={class:"title"},Zt=e.createTextVNode(" Заказ "),en=e.createTextVNode(" успешно создан! "),tn={class:"columns"},nn={key:0,class:"column is-6"},on=e.createElementVNode("div",{class:"subtitle"},"Перейдите к оплате для завершения покупки",-1),ln={key:1,class:"column is-6"},an={class:"column is-6"},rn={key:0,class:"info-wrapper"},cn=e.createElementVNode("div",{class:"title"},"Доставка",-1),sn={class:"columns"},un=["innerHTML"],mn=["innerHTML"],dn={key:1,class:"info-wrapper"},pn=e.createElementVNode("div",{class:"title"},"Оплата",-1),vn={class:"columns"},fn=["innerHTML"],hn=["innerHTML"],kn={key:3,class:"checkout-block empty"},gn=e.createElementVNode("div",{class:"title"},"В корзине пока что нет товаров",-1),En={class:"message"},Vn=e.createTextVNode(" Посмотрите предложения на "),Nn=["href"],yn=e.createTextVNode(", "),bn=e.createElementVNode("br",null,null,-1),Bn=e.createTextVNode("воспользуйтесь каталогом или поиском "),Cn=["href"];ve.render=function(t,n,o,l,a,i){var r=e.resolveComponent("checkout-item"),c=e.resolveComponent("cart-trigger"),s=e.resolveComponent("SchemaForm"),u=e.resolveComponent("login");return e.openBlock(),e.createElementBlock("div",fe,[t.redirect.url?(e.openBlock(),e.createElementBlock("form",{key:0,ref:"redirectForm",action:t.redirect.url,class:"is-hidden",method:"post"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.redirect.data,(function(t,n,o){return e.openBlock(),e.createElementBlock("input",{type:"hidden",name:n,value:t,key:o},null,8,ke)})),128))],8,he)):e.createCommentVNode("v-if",!0),t.items.length&&!t.thanks?(e.openBlock(),e.createElementBlock("div",ge,[Ee,e.createElementVNode("div",Ve,[e.createElementVNode("div",Ne,[e.createElementVNode("div",ye,[e.createElementVNode("div",be,[e.createElementVNode("div",Be,[Ce,e.createElementVNode("span",{class:"ml-3",textContent:e.toDisplayString(t.pluralize(t.quantity,t.__("shop.pluralize.products")))},null,8,we),e.createElementVNode("span",{innerHTML:"на сумму "+t.$filters.price(t.total)},null,8,Te)])]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(function(t){return e.openBlock(),e.createBlock(r,{key:t.id,item:t},null,8,["item"])})),128)),e.createVNode(c,{class:"trigger"},{default:e.withCtx((function(t){return[e.createElementVNode("button",{class:"button",onClick:t.open},_e,8,xe)]})),_:1})]),e.createElementVNode("button",{onClick:n[0]||(n[0]=function(){return t.resertStore&&t.resertStore.apply(t,arguments)}),style:{position:"fixed",bottom:"1px",right:"1px","z-index":"1000"}},"reset"),e.createElementVNode("div",Se,[e.createElementVNode("div",Me,[Le,t.auth?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("div",De,[e.createElementVNode("label",null,[e.withDirectives(e.createElementVNode("input",{type:"radio",class:"radio","onUpdate:modelValue":n[1]||(n[1]=function(e){return t.userType=e}),value:"new"},null,512),[[e.vModelRadio,t.userType]]),He]),e.createElementVNode("label",null,[e.withDirectives(e.createElementVNode("input",{type:"radio",class:"radio","onUpdate:modelValue":n[2]||(n[2]=function(e){return t.userType=e}),value:"login"},null,512),[[e.vModelRadio,t.userType]]),qe])])),e.createElementVNode("div",Oe,[e.withDirectives(e.createElementVNode("div",$e,[e.createVNode(s,{schemaRowClasses:"field",schema:t.userSchema,"validation-schema":t.userValidation},{afterForm:e.withCtx((function(){return[e.createElementVNode("button",Fe,null,512)]})),_:1},8,["schema","validation-schema"])],512),[[e.vShow,"new"==t.userType]]),e.withDirectives(e.createElementVNode("div",ze,[e.createVNode(u,{"login-callback":t.loginCallback},null,8,["login-callback"])],512),[[e.vShow,"login"==t.userType]]),e.createElementVNode("div",Re,[t.auth?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("div",Pe,[e.createElementVNode("div",je,[Je,e.createElementVNode("div",Ue,[e.createElementVNode("a",{class:"button",onClick:n[3]||(n[3]=function(){return t.facebook&&t.facebook.apply(t,arguments)})},Ie),e.createElementVNode("a",{class:"button",onClick:n[4]||(n[4]=function(){return t.google&&t.google.apply(t,arguments)})},Ae)])])]))])])]),e.createElementVNode("div",Ge,[e.createElementVNode("div",Ke,[e.createElementVNode("div",Qe,[e.createElementVNode("div",We,[Xe,e.createCommentVNode("v-if",!0)])]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.shippingTypesRestricted,(function(o){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["item",{"is-disabled":o.restricted}]),key:o.id},[e.createElementVNode("div",Ye,[e.createElementVNode("div",Ze,[e.createElementVNode("label",null,[e.withDirectives(e.createElementVNode("input",{type:"radio",class:"radio","onUpdate:modelValue":n[6]||(n[6]=function(e){return t.shipping=e}),value:o.id,onClick:function(e){return t.toggleShippingRadio(o.id)}},null,8,et),[[e.vModelRadio,t.shipping]]),o.icon?(e.openBlock(),e.createElementBlock("img",{key:0,class:"icon",src:o.icon},null,8,tt)):(e.openBlock(),e.createElementBlock("svg",nt,ot)),e.createElementVNode("span",null,e.toDisplayString(o.name),1)]),o.description?(e.openBlock(),e.createElementBlock("div",lt,e.toDisplayString(o.description),1)):e.createCommentVNode("v-if",!0)]),e.createElementVNode("div",at,[!o.amount&&o.price_label?(e.openBlock(),e.createElementBlock("span",it,e.toDisplayString(o.price_label),1)):(e.openBlock(),e.createElementBlock("span",{key:1,innerHTML:"percent"==o.type?o.amount+"%":t.$filters.price(o.amount)},null,8,rt))])]),e.withDirectives((e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.component),{commit:t.shippingStoreData,data:t.shippingComponentData,item:o},null,8,["commit","data","item"])),[[e.vShow,o.component&&o.id==t.shipping]])],2)})),128))])]),e.createElementVNode("div",ct,[e.createElementVNode("div",st,[e.createElementVNode("div",ut,[e.createElementVNode("div",mt,[dt,e.createCommentVNode("v-if",!0)])]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.paymentMethodsRestricted,(function(o){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["item",{"is-disabled":o.restricted}]),key:o.id},[e.createElementVNode("div",pt,[e.createElementVNode("div",vt,[e.createElementVNode("label",null,[e.withDirectives(e.createElementVNode("input",{type:"radio",class:"radio","onUpdate:modelValue":n[8]||(n[8]=function(e){return t.payment=e}),value:o.id,onClick:function(e){return t.togglePaymentRadio(o.id)}},null,8,ft),[[e.vModelRadio,t.payment]]),e.createElementVNode("span",null,e.toDisplayString(o.name),1)]),o.description?(e.openBlock(),e.createElementBlock("div",ht,e.toDisplayString(o.description),1)):e.createCommentVNode("v-if",!0)]),o.amount?(e.openBlock(),e.createElementBlock("div",kt,[e.createElementVNode("span",{innerHTML:"percent"==o.type?o.amount+"%":t.$filters.price(o.amount)},null,8,gt)])):e.createCommentVNode("v-if",!0)])],2)})),128))])])])]),e.createElementVNode("div",Et,[e.createElementVNode("div",Vt,[Nt,e.createElementVNode("div",yt,[e.createElementVNode("div",bt,[e.createElementVNode("div",Bt,[e.createElementVNode("span",{textContent:e.toDisplayString(t.pluralize(t.quantity,t.__("shop.pluralize.products")))},null,8,Ct),wt]),e.createElementVNode("div",Tt,[e.createElementVNode("span",{innerHTML:t.$filters.price(t.total)},null,8,xt)])]),t.discount?(e.openBlock(),e.createElementBlock("div",_t,[St,e.createElementVNode("div",Mt,[e.createElementVNode("span",{innerHTML:t.$filters.price(t.discount)},null,8,Lt)])])):e.createCommentVNode("v-if",!0),t.fee>0?(e.openBlock(),e.createElementBlock("div",Dt,[Ht,e.createElementVNode("div",qt,[e.createElementVNode("span",{innerHTML:t.$filters.price(t.fee)},null,8,Ot)])])):e.createCommentVNode("v-if",!0),t.shipping?(e.openBlock(),e.createElementBlock("div",$t,[Ft,e.createElementVNode("div",zt,[t.shippingPrice>0?(e.openBlock(),e.createElementBlock("span",{key:0,innerHTML:t.$filters.price(t.shippingPrice)},null,8,Rt)):t.shippingSelected&&t.shippingSelected.price_label?(e.openBlock(),e.createElementBlock("span",Pt,e.toDisplayString(t.shippingSelected.price_label),1)):e.createCommentVNode("v-if",!0)])])):e.createCommentVNode("v-if",!0),e.createElementVNode("div",jt,[Jt,e.createElementVNode("div",Ut,[e.createElementVNode("span",{innerHTML:t.$filters.price(t.total+t.fee+t.shippingPrice)},null,8,It)])])]),e.createElementVNode("div",At,[e.createElementVNode("label",null,[e.withDirectives(e.createElementVNode("input",{type:"checkbox",class:"checkbox","onUpdate:modelValue":n[9]||(n[9]=function(e){return t.dontcall=e})},null,512),[[e.vModelCheckbox,t.dontcall]]),Gt])]),e.createElementVNode("button",{class:e.normalizeClass(["button submit",{red:!t.ifCheckoutReady,"is-loading":t.loading}]),onClick:n[10]||(n[10]=function(){return t.checkout&&t.checkout.apply(t,arguments)}),onMouseenter:n[11]||(n[11]=function(){return t.validate&&t.validate.apply(t,arguments)})},"Подтвердить заказ",34),e.createElementVNode("div",{class:e.normalizeClass(["comment-wrapper",{"is-open":t.isCommentToggled}])},[e.createElementVNode("div",{class:"toggler",onClick:n[12]||(n[12]=function(e){return t.isCommentToggled=!t.isCommentToggled})},Kt),e.createElementVNode("div",Qt,[e.withDirectives(e.createElementVNode("textarea",{class:"textarea","onUpdate:modelValue":n[13]||(n[13]=function(e){return t.comment=e})},null,512),[[e.vModelText,t.comment]]),t.comment.length?(e.openBlock(),e.createElementBlock("div",Wt,e.toDisplayString(t.commentMaxLength-t.comment.length),1)):e.createCommentVNode("v-if",!0)])],2)])])])])):t.thanks&&t.order?(e.openBlock(),e.createElementBlock("div",Xt,[e.createElementVNode("div",Yt,[Zt,e.createElementVNode("span",null,"№"+e.toDisplayString(t.order.id),1),en]),e.createElementVNode("div",tn,[t.redirect.url?(e.openBlock(),e.createElementBlock("div",nn,[on,e.createElementVNode("button",{class:"button is-payment",onClick:n[14]||(n[14]=function(e){return t.redirectForm.submit()})},"Перейти к оплате")])):(e.openBlock(),e.createElementBlock("div",ln,[e.createElementVNode("button",{class:"button is-orange",onClick:n[15]||(n[15]=function(){return t.home&&t.home.apply(t,arguments)})},"Продолжить покупки")])),e.createElementVNode("div",an,[t.order.shipping[0]?(e.openBlock(),e.createElementBlock("div",rn,[cn,e.createElementVNode("div",sn,[t.order.shipping[0]?(e.openBlock(),e.createElementBlock("div",{key:0,class:"column is-6",innerHTML:t.order.shipping[0]},null,8,un)):e.createCommentVNode("v-if",!0),t.order.shipping[1]?(e.openBlock(),e.createElementBlock("div",{key:1,class:"column is-6",innerHTML:t.order.shipping[1]},null,8,mn)):e.createCommentVNode("v-if",!0)])])):e.createCommentVNode("v-if",!0),t.order.payment[0]?(e.openBlock(),e.createElementBlock("div",dn,[pn,e.createElementVNode("div",vn,[t.order.payment[0]?(e.openBlock(),e.createElementBlock("div",{key:0,class:"column is-6",innerHTML:t.order.payment[0]},null,8,fn)):e.createCommentVNode("v-if",!0),t.order.payment[1]?(e.openBlock(),e.createElementBlock("div",{key:1,class:"column is-6",innerHTML:t.order.payment[1]},null,8,hn)):e.createCommentVNode("v-if",!0)])])):e.createCommentVNode("v-if",!0)])])])):(e.openBlock(),e.createElementBlock("div",kn,[gn,e.createElementVNode("div",En,[Vn,e.createElementVNode("a",{href:t.$env.locale.url?t.$env.locale.url:"/"},"главной странице",8,Nn),yn,bn,Bn]),e.createElementVNode("a",{class:"button continue",href:t.$env.locale.url?t.$env.locale.url:"/"},"Продолжить покупки",8,Cn)]))])},module.exports=ve;
2
2
  //# sourceMappingURL=Checkout.js.map