@perevorot/shop 2.0.158 → 2.0.159
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.
- package/dist/components/auth/User.js.map +1 -1
- package/dist/components/shop/Cross.js +1 -1
- package/dist/components/shop/Cross.js.map +1 -1
- package/dist/components/shop/Gallery.js +1 -1
- package/dist/components/shop/Gallery.js.map +1 -1
- package/dist/components/shop/PromoProducts.js +1 -1
- package/dist/components/shop/PromoProducts.js.map +1 -1
- package/dist/components/shop/cart/Cart.js +1 -1
- package/dist/components/shop/cart/Cart.js.map +1 -1
- package/dist/components/shop/viewed/Viewed.js +1 -1
- package/dist/components/shop/viewed/Viewed.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"User.js","sources":["../../../src/components/auth/User.vue","../../../src/components/auth/User.vue?vue&type=template&id=e5f8b380&lang.js"],"sourcesContent":["<template>\n <div class=\"auth-user\" v-if=\"mounted && !logged\">\n <slot name=\"login\" :open=\"open\" :label=\"__('auth.login.login')\">\n <a href=\"#login\" class=\"button\" @click=\"open\">{{ __('auth.login.login') }}</a>\n </slot>\n <div class=\"modal\" v-bind:class=\"{ 'is-active': modal }\" v-if=\"modal\">\n <div class=\"modal-background\" @click=\"close\"></div>\n <div class=\"modal-content\">\n <button class=\"modal-close is-large\" @click=\"close\">\n <svg class=\"icon close\">\n <use xlink:href=\"#close\" />\n </svg>\n </button>\n <div class=\"box\">\n <slot name=\"hero\"></slot>\n <div class=\"tabs\">\n <ul>\n <li v-bind:class=\"{\n 'is-active': modal == 'login' || modal == 'forget'\n }\">\n <a href=\"#login\" @click=\"open\">{{ __('auth.login.login') }}</a>\n </li>\n <li v-bind:class=\"{\n 'is-active': modal == 'registration'\n }\" @click=\"register\">\n <a href=\"#register\">{{ __('auth.login.signup') }}</a>\n </li>\n </ul>\n </div>\n <keep-alive>\n <login v-if=\"modal == 'login' || modal == 'forget'\" :forget-type=\"forgetType\" :show-placeholders=\"showPlaceholders\"></login>\n </keep-alive>\n <keep-alive>\n <registration v-if=\"modal == 'registration'\"></registration>\n </keep-alive>\n <reset v-show=\"modal == 'reset'\" :show-placeholders=\"showPlaceholders\"></reset>\n </div>\n </div>\n </div>\n </div>\n <div class=\"auth-user is-logged\" v-else-if=\"mounted\">\n <div class=\"dropdown is-right is-hoverable\">\n <div class=\"dropdown-trigger\">\n <a class=\"button\" :href=\"routes[0].path\">\n <slot name=\"user\" :user=\"user.name ? user.name : user.email\">\n <span>\n <i class=\"fas fa-user\"></i>\n {{ user.name ? user.name : user.email }}\n </span>\n <span class=\"icon is-small\">\n <i class=\"fas fa-angle-down\" aria-hidden=\"true\"></i>\n </span>\n </slot>\n </a>\n </div>\n <div class=\"dropdown-menu\" role=\"menu\">\n <div class=\"dropdown-content\">\n <div v-for=\"(item, key) in routes\" v-bind:key=\"key\">\n <a :href=\"item.path\" v-if=\"item.text\" class=\"dropdown-item\">\n <svg class=\"icon\" v-if=\"item.icon\">\n <use :xlink:href=\"'#' + item.icon\" />\n </svg>\n <span>{{ item.text }}</span>\n <span class=\"badge\" v-if=\"item.badge\">{{ item.badge }}</span>\n </a>\n <hr class=\"dropdown-divider\" v-else />\n </div>\n <hr class=\"dropdown-divider\" />\n <a class=\"dropdown-item\" @click=\"logout\">\n <svg class=\"icon\">\n <use xlink:href=\"#icon-logout\" />\n </svg>\n <span>{{ __('auth.user.menu.logout') }}</span>\n </a>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport Cookies from 'js-cookie';\nimport { ref, computed, provide, isVNode } from 'vue';\nimport { useStore } from 'vuex';\n\nexport default {\n name: 'user',\n props: {\n resetToken: {\n type: String,\n default: ''\n },\n resetEmail: {\n type: String,\n default: ''\n },\n tokenValid: {\n type: Boolean,\n default: false\n },\n forgetType: {\n type: String,\n default: 'email'\n },\n showPlaceholders: {\n type: Boolean,\n default: false\n }\n },\n setup(props) {\n const store = useStore();\n const user = computed(() => store.getters['auth/me']);\n const modal = computed(() => store.getters['auth/modal']);\n const logged = computed(() => Object.keys(user.value).length > 0);\n const mounted = ref(false);\n const routes = computed(() => store.getters['auth/account']);\n const presetedResetToken = ref('');\n const presetedResetEmail = ref('');\n\n provide('presetedResetToken', presetedResetToken);\n provide('presetedResetEmail', presetedResetEmail);\n\n const open = () => {\n store.commit('auth/modal', 'login');\n };\n\n const close = () => {\n store.commit('auth/modal', null);\n store.dispatch('auth/me');\n };\n\n const logout = () => {\n store.dispatch('auth/logout');\n\n if (window.authUserLogoutCallback) {\n window.authUserLogoutCallback();\n }\n };\n\n const register = () => {\n store.commit('auth/modal', 'registration');\n };\n\n store.dispatch('auth/me', {\n finally: () => {\n mounted.value = true;\n\n if (logged.value) {\n if (!user.value.is_social_registration_tracked) {\n let object = {\n event: 'sign_up',\n user_id: user.value.id,\n method: user.value.social_provider\n };\n\n if ($env.debug.ecommerce) {\n console.log(object);\n }\n\n if (!$env.debug.ecommerce && window.dataLayer) {\n window.dataLayer.push({\n ecommerce: null\n });\n\n window.dataLayer.push(object);\n }\n } else if (!user.value.is_login_tracked) {\n let object = {\n event: 'login',\n user_id: user.value.id,\n method: user.value.social_provider ? user.value.social_provider : 'site'\n };\n\n if ($env.debug.ecommerce) {\n console.log(object);\n }\n\n if (!$env.debug.ecommerce && window.dataLayer) {\n window.dataLayer.push({\n ecommerce: null\n });\n\n window.dataLayer.push(object);\n }\n }\n\n Cookies.set('user_id', user.value.id);\n }\n }\n });\n\n window.addEventListener('keyup', (e) => {\n if (modal.value && e.key === 'Escape') {\n close();\n }\n });\n\n if (props.resetToken) {\n store.commit('auth/modal', 'reset');\n }\n\n return {\n mounted,\n user,\n logged,\n modal,\n open,\n close,\n register,\n logout,\n routes\n };\n }\n};\n</script>","<template>\n <div class=\"auth-user\" v-if=\"mounted && !logged\">\n <slot name=\"login\" :open=\"open\" :label=\"__('auth.login.login')\">\n <a href=\"#login\" class=\"button\" @click=\"open\">{{ __('auth.login.login') }}</a>\n </slot>\n <div class=\"modal\" v-bind:class=\"{ 'is-active': modal }\" v-if=\"modal\">\n <div class=\"modal-background\" @click=\"close\"></div>\n <div class=\"modal-content\">\n <button class=\"modal-close is-large\" @click=\"close\">\n <svg class=\"icon close\">\n <use xlink:href=\"#close\" />\n </svg>\n </button>\n <div class=\"box\">\n <slot name=\"hero\"></slot>\n <div class=\"tabs\">\n <ul>\n <li v-bind:class=\"{\n 'is-active': modal == 'login' || modal == 'forget'\n }\">\n <a href=\"#login\" @click=\"open\">{{ __('auth.login.login') }}</a>\n </li>\n <li v-bind:class=\"{\n 'is-active': modal == 'registration'\n }\" @click=\"register\">\n <a href=\"#register\">{{ __('auth.login.signup') }}</a>\n </li>\n </ul>\n </div>\n <keep-alive>\n <login v-if=\"modal == 'login' || modal == 'forget'\" :forget-type=\"forgetType\" :show-placeholders=\"showPlaceholders\"></login>\n </keep-alive>\n <keep-alive>\n <registration v-if=\"modal == 'registration'\"></registration>\n </keep-alive>\n <reset v-show=\"modal == 'reset'\" :show-placeholders=\"showPlaceholders\"></reset>\n </div>\n </div>\n </div>\n </div>\n <div class=\"auth-user is-logged\" v-else-if=\"mounted\">\n <div class=\"dropdown is-right is-hoverable\">\n <div class=\"dropdown-trigger\">\n <a class=\"button\" :href=\"routes[0].path\">\n <slot name=\"user\" :user=\"user.name ? user.name : user.email\">\n <span>\n <i class=\"fas fa-user\"></i>\n {{ user.name ? user.name : user.email }}\n </span>\n <span class=\"icon is-small\">\n <i class=\"fas fa-angle-down\" aria-hidden=\"true\"></i>\n </span>\n </slot>\n </a>\n </div>\n <div class=\"dropdown-menu\" role=\"menu\">\n <div class=\"dropdown-content\">\n <div v-for=\"(item, key) in routes\" v-bind:key=\"key\">\n <a :href=\"item.path\" v-if=\"item.text\" class=\"dropdown-item\">\n <svg class=\"icon\" v-if=\"item.icon\">\n <use :xlink:href=\"'#' + item.icon\" />\n </svg>\n <span>{{ item.text }}</span>\n <span class=\"badge\" v-if=\"item.badge\">{{ item.badge }}</span>\n </a>\n <hr class=\"dropdown-divider\" v-else />\n </div>\n <hr class=\"dropdown-divider\" />\n <a class=\"dropdown-item\" @click=\"logout\">\n <svg class=\"icon\">\n <use xlink:href=\"#icon-logout\" />\n </svg>\n <span>{{ __('auth.user.menu.logout') }}</span>\n </a>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport Cookies from 'js-cookie';\nimport { ref, computed, provide, isVNode } from 'vue';\nimport { useStore } from 'vuex';\n\nexport default {\n name: 'user',\n props: {\n resetToken: {\n type: String,\n default: ''\n },\n resetEmail: {\n type: String,\n default: ''\n },\n tokenValid: {\n type: Boolean,\n default: false\n },\n forgetType: {\n type: String,\n default: 'email'\n },\n showPlaceholders: {\n type: Boolean,\n default: false\n }\n },\n setup(props) {\n const store = useStore();\n const user = computed(() => store.getters['auth/me']);\n const modal = computed(() => store.getters['auth/modal']);\n const logged = computed(() => Object.keys(user.value).length > 0);\n const mounted = ref(false);\n const routes = computed(() => store.getters['auth/account']);\n const presetedResetToken = ref('');\n const presetedResetEmail = ref('');\n\n provide('presetedResetToken', presetedResetToken);\n provide('presetedResetEmail', presetedResetEmail);\n\n const open = () => {\n store.commit('auth/modal', 'login');\n };\n\n const close = () => {\n store.commit('auth/modal', null);\n store.dispatch('auth/me');\n };\n\n const logout = () => {\n store.dispatch('auth/logout');\n\n if (window.authUserLogoutCallback) {\n window.authUserLogoutCallback();\n }\n };\n\n const register = () => {\n store.commit('auth/modal', 'registration');\n };\n\n store.dispatch('auth/me', {\n finally: () => {\n mounted.value = true;\n\n if (logged.value) {\n if (!user.value.is_social_registration_tracked) {\n let object = {\n event: 'sign_up',\n user_id: user.value.id,\n method: user.value.social_provider\n };\n\n if ($env.debug.ecommerce) {\n console.log(object);\n }\n\n if (!$env.debug.ecommerce && window.dataLayer) {\n window.dataLayer.push({\n ecommerce: null\n });\n\n window.dataLayer.push(object);\n }\n } else if (!user.value.is_login_tracked) {\n let object = {\n event: 'login',\n user_id: user.value.id,\n method: user.value.social_provider ? user.value.social_provider : 'site'\n };\n\n if ($env.debug.ecommerce) {\n console.log(object);\n }\n\n if (!$env.debug.ecommerce && window.dataLayer) {\n window.dataLayer.push({\n ecommerce: null\n });\n\n window.dataLayer.push(object);\n }\n }\n\n Cookies.set('user_id', user.value.id);\n }\n }\n });\n\n window.addEventListener('keyup', (e) => {\n if (modal.value && e.key === 'Escape') {\n close();\n }\n });\n\n if (props.resetToken) {\n store.commit('auth/modal', 'reset');\n }\n\n return {\n mounted,\n user,\n logged,\n modal,\n open,\n close,\n register,\n logout,\n routes\n };\n }\n};\n</script>"],"names":["script","name","props","resetToken","type","String","default","resetEmail","tokenValid","Boolean","forgetType","showPlaceholders","setup","store","useStore","user","computed","getters","modal","logged","Object","keys","value","length","mounted","ref","routes","presetedResetToken","presetedResetEmail","provide","close","commit","dispatch","finally","is_social_registration_tracked","is_login_tracked","object","event","user_id","id","method","social_provider","$env","debug","ecommerce","console","log","window","dataLayer","push","Cookies","set","addEventListener","e","key","open","register","logout","authUserLogoutCallback","class","_hoisted_2","_createElementVNode","createElementVNode","xlink:href","_hoisted_5","_hoisted_6","_hoisted_7","href","_hoisted_9","_hoisted_10","aria-hidden","role","_hoisted_15","$setup","_openBlock","_createElementBlock","createElementBlock","_hoisted_1","_renderSlot","_ctx","$slots","label","__","onClick","apply","arguments","_normalizeClass","is-active","renderSlot","_toDisplayString","_createBlock","_KeepAlive","_component_login","forget-type","$props","show-placeholders","createBlock","_component_registration","_createVNode","createVNode","_component_reset","openBlock","_hoisted_8","path","email","_hoisted_12","_hoisted_13","_hoisted_14","_Fragment","_renderList","renderList","item","text","icon","_hoisted_17","badge","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"User.js","sources":["../../../src/components/auth/User.vue","../../../src/components/auth/User.vue?vue&type=template&id=5079c4fc&lang.js"],"sourcesContent":["<template>\n <div class=\"auth-user\" v-if=\"mounted && !logged\">\n <slot name=\"login\" :open=\"open\" :label=\"__('auth.login.login')\">\n <a href=\"#login\" class=\"button\" @click=\"open\">{{ __('auth.login.login') }}</a>\n </slot>\n <div class=\"modal\" v-bind:class=\"{ 'is-active': modal }\" v-if=\"modal\">\n <div class=\"modal-background\" @click=\"close\"></div>\n <div class=\"modal-content\">\n <button class=\"modal-close is-large\" @click=\"close\">\n <svg class=\"icon close\">\n <use xlink:href=\"#close\" />\n </svg>\n </button>\n <div class=\"box\">\n <slot name=\"hero\"></slot>\n <div class=\"tabs\">\n <ul>\n <li v-bind:class=\"{\n 'is-active': modal == 'login' || modal == 'forget'\n }\">\n <a href=\"#login\" @click=\"open\">{{ __('auth.login.login') }}</a>\n </li>\n <li v-bind:class=\"{\n 'is-active': modal == 'registration'\n }\" @click=\"register\">\n <a href=\"#register\">{{ __('auth.login.signup') }}</a>\n </li>\n </ul>\n </div>\n <keep-alive>\n <login v-if=\"modal == 'login' || modal == 'forget'\" :forget-type=\"forgetType\" :show-placeholders=\"showPlaceholders\"></login>\n </keep-alive>\n <keep-alive>\n <registration v-if=\"modal == 'registration'\"></registration>\n </keep-alive>\n <reset v-show=\"modal == 'reset'\" :show-placeholders=\"showPlaceholders\"></reset>\n </div>\n </div>\n </div>\n </div>\n <div class=\"auth-user is-logged\" v-else-if=\"mounted\">\n <div class=\"dropdown is-right is-hoverable\">\n <div class=\"dropdown-trigger\">\n <a class=\"button\" :href=\"routes[0].path\">\n <slot name=\"user\" :user=\"user.name ? user.name : user.email\">\n <span>\n <i class=\"fas fa-user\"></i>\n {{ user.name ? user.name : user.email }}\n </span>\n <span class=\"icon is-small\">\n <i class=\"fas fa-angle-down\" aria-hidden=\"true\"></i>\n </span>\n </slot>\n </a>\n </div>\n <div class=\"dropdown-menu\" role=\"menu\">\n <div class=\"dropdown-content\">\n <div v-for=\"(item, key) in routes\" v-bind:key=\"key\">\n <a :href=\"item.path\" v-if=\"item.text\" class=\"dropdown-item\">\n <svg class=\"icon\" v-if=\"item.icon\">\n <use :xlink:href=\"'#' + item.icon\" />\n </svg>\n <span>{{ item.text }}</span>\n <span class=\"badge\" v-if=\"item.badge\">{{ item.badge }}</span>\n </a>\n <hr class=\"dropdown-divider\" v-else />\n </div>\n <hr class=\"dropdown-divider\" />\n <a class=\"dropdown-item\" @click=\"logout\">\n <svg class=\"icon\">\n <use xlink:href=\"#icon-logout\" />\n </svg>\n <span>{{ __('auth.user.menu.logout') }}</span>\n </a>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport Cookies from 'js-cookie';\nimport { ref, computed, provide } from 'vue';\nimport { useStore } from 'vuex';\n\nexport default {\n name: 'user',\n props: {\n resetToken: {\n type: String,\n default: ''\n },\n resetEmail: {\n type: String,\n default: ''\n },\n tokenValid: {\n type: Boolean,\n default: false\n },\n forgetType: {\n type: String,\n default: 'email'\n },\n showPlaceholders: {\n type: Boolean,\n default: false\n }\n },\n setup(props) {\n const store = useStore();\n const user = computed(() => store.getters['auth/me']);\n const modal = computed(() => store.getters['auth/modal']);\n const logged = computed(() => Object.keys(user.value).length > 0);\n const mounted = ref(false);\n const routes = computed(() => store.getters['auth/account']);\n const presetedResetToken = ref('');\n const presetedResetEmail = ref('');\n\n provide('presetedResetToken', presetedResetToken);\n provide('presetedResetEmail', presetedResetEmail);\n\n const open = () => {\n store.commit('auth/modal', 'login');\n };\n\n const close = () => {\n store.commit('auth/modal', null);\n store.dispatch('auth/me');\n };\n\n const logout = () => {\n store.dispatch('auth/logout');\n\n if (window.authUserLogoutCallback) {\n window.authUserLogoutCallback();\n }\n };\n\n const register = () => {\n store.commit('auth/modal', 'registration');\n };\n\n store.dispatch('auth/me', {\n finally: () => {\n mounted.value = true;\n\n if (logged.value) {\n if (!user.value.is_social_registration_tracked) {\n let object = {\n event: 'sign_up',\n user_id: user.value.id,\n method: user.value.social_provider\n };\n\n if ($env.debug.ecommerce) {\n console.log(object);\n }\n\n if (!$env.debug.ecommerce && window.dataLayer) {\n window.dataLayer.push({\n ecommerce: null\n });\n\n window.dataLayer.push(object);\n }\n } else if (!user.value.is_login_tracked) {\n let object = {\n event: 'login',\n user_id: user.value.id,\n method: user.value.social_provider ? user.value.social_provider : 'site'\n };\n\n if ($env.debug.ecommerce) {\n console.log(object);\n }\n\n if (!$env.debug.ecommerce && window.dataLayer) {\n window.dataLayer.push({\n ecommerce: null\n });\n\n window.dataLayer.push(object);\n }\n }\n\n Cookies.set('user_id', user.value.id);\n }\n }\n });\n\n window.addEventListener('keyup', (e) => {\n if (modal.value && e.key === 'Escape') {\n close();\n }\n });\n\n if (props.resetToken) {\n store.commit('auth/modal', 'reset');\n }\n\n return {\n mounted,\n user,\n logged,\n modal,\n open,\n close,\n register,\n logout,\n routes\n };\n }\n};\n</script>","<template>\n <div class=\"auth-user\" v-if=\"mounted && !logged\">\n <slot name=\"login\" :open=\"open\" :label=\"__('auth.login.login')\">\n <a href=\"#login\" class=\"button\" @click=\"open\">{{ __('auth.login.login') }}</a>\n </slot>\n <div class=\"modal\" v-bind:class=\"{ 'is-active': modal }\" v-if=\"modal\">\n <div class=\"modal-background\" @click=\"close\"></div>\n <div class=\"modal-content\">\n <button class=\"modal-close is-large\" @click=\"close\">\n <svg class=\"icon close\">\n <use xlink:href=\"#close\" />\n </svg>\n </button>\n <div class=\"box\">\n <slot name=\"hero\"></slot>\n <div class=\"tabs\">\n <ul>\n <li v-bind:class=\"{\n 'is-active': modal == 'login' || modal == 'forget'\n }\">\n <a href=\"#login\" @click=\"open\">{{ __('auth.login.login') }}</a>\n </li>\n <li v-bind:class=\"{\n 'is-active': modal == 'registration'\n }\" @click=\"register\">\n <a href=\"#register\">{{ __('auth.login.signup') }}</a>\n </li>\n </ul>\n </div>\n <keep-alive>\n <login v-if=\"modal == 'login' || modal == 'forget'\" :forget-type=\"forgetType\" :show-placeholders=\"showPlaceholders\"></login>\n </keep-alive>\n <keep-alive>\n <registration v-if=\"modal == 'registration'\"></registration>\n </keep-alive>\n <reset v-show=\"modal == 'reset'\" :show-placeholders=\"showPlaceholders\"></reset>\n </div>\n </div>\n </div>\n </div>\n <div class=\"auth-user is-logged\" v-else-if=\"mounted\">\n <div class=\"dropdown is-right is-hoverable\">\n <div class=\"dropdown-trigger\">\n <a class=\"button\" :href=\"routes[0].path\">\n <slot name=\"user\" :user=\"user.name ? user.name : user.email\">\n <span>\n <i class=\"fas fa-user\"></i>\n {{ user.name ? user.name : user.email }}\n </span>\n <span class=\"icon is-small\">\n <i class=\"fas fa-angle-down\" aria-hidden=\"true\"></i>\n </span>\n </slot>\n </a>\n </div>\n <div class=\"dropdown-menu\" role=\"menu\">\n <div class=\"dropdown-content\">\n <div v-for=\"(item, key) in routes\" v-bind:key=\"key\">\n <a :href=\"item.path\" v-if=\"item.text\" class=\"dropdown-item\">\n <svg class=\"icon\" v-if=\"item.icon\">\n <use :xlink:href=\"'#' + item.icon\" />\n </svg>\n <span>{{ item.text }}</span>\n <span class=\"badge\" v-if=\"item.badge\">{{ item.badge }}</span>\n </a>\n <hr class=\"dropdown-divider\" v-else />\n </div>\n <hr class=\"dropdown-divider\" />\n <a class=\"dropdown-item\" @click=\"logout\">\n <svg class=\"icon\">\n <use xlink:href=\"#icon-logout\" />\n </svg>\n <span>{{ __('auth.user.menu.logout') }}</span>\n </a>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport Cookies from 'js-cookie';\nimport { ref, computed, provide } from 'vue';\nimport { useStore } from 'vuex';\n\nexport default {\n name: 'user',\n props: {\n resetToken: {\n type: String,\n default: ''\n },\n resetEmail: {\n type: String,\n default: ''\n },\n tokenValid: {\n type: Boolean,\n default: false\n },\n forgetType: {\n type: String,\n default: 'email'\n },\n showPlaceholders: {\n type: Boolean,\n default: false\n }\n },\n setup(props) {\n const store = useStore();\n const user = computed(() => store.getters['auth/me']);\n const modal = computed(() => store.getters['auth/modal']);\n const logged = computed(() => Object.keys(user.value).length > 0);\n const mounted = ref(false);\n const routes = computed(() => store.getters['auth/account']);\n const presetedResetToken = ref('');\n const presetedResetEmail = ref('');\n\n provide('presetedResetToken', presetedResetToken);\n provide('presetedResetEmail', presetedResetEmail);\n\n const open = () => {\n store.commit('auth/modal', 'login');\n };\n\n const close = () => {\n store.commit('auth/modal', null);\n store.dispatch('auth/me');\n };\n\n const logout = () => {\n store.dispatch('auth/logout');\n\n if (window.authUserLogoutCallback) {\n window.authUserLogoutCallback();\n }\n };\n\n const register = () => {\n store.commit('auth/modal', 'registration');\n };\n\n store.dispatch('auth/me', {\n finally: () => {\n mounted.value = true;\n\n if (logged.value) {\n if (!user.value.is_social_registration_tracked) {\n let object = {\n event: 'sign_up',\n user_id: user.value.id,\n method: user.value.social_provider\n };\n\n if ($env.debug.ecommerce) {\n console.log(object);\n }\n\n if (!$env.debug.ecommerce && window.dataLayer) {\n window.dataLayer.push({\n ecommerce: null\n });\n\n window.dataLayer.push(object);\n }\n } else if (!user.value.is_login_tracked) {\n let object = {\n event: 'login',\n user_id: user.value.id,\n method: user.value.social_provider ? user.value.social_provider : 'site'\n };\n\n if ($env.debug.ecommerce) {\n console.log(object);\n }\n\n if (!$env.debug.ecommerce && window.dataLayer) {\n window.dataLayer.push({\n ecommerce: null\n });\n\n window.dataLayer.push(object);\n }\n }\n\n Cookies.set('user_id', user.value.id);\n }\n }\n });\n\n window.addEventListener('keyup', (e) => {\n if (modal.value && e.key === 'Escape') {\n close();\n }\n });\n\n if (props.resetToken) {\n store.commit('auth/modal', 'reset');\n }\n\n return {\n mounted,\n user,\n logged,\n modal,\n open,\n close,\n register,\n logout,\n routes\n };\n }\n};\n</script>"],"names":["script","name","props","resetToken","type","String","default","resetEmail","tokenValid","Boolean","forgetType","showPlaceholders","setup","store","useStore","user","computed","getters","modal","logged","Object","keys","value","length","mounted","ref","routes","presetedResetToken","presetedResetEmail","provide","close","commit","dispatch","finally","is_social_registration_tracked","is_login_tracked","object","event","user_id","id","method","social_provider","$env","debug","ecommerce","console","log","window","dataLayer","push","Cookies","set","addEventListener","e","key","open","register","logout","authUserLogoutCallback","class","_hoisted_2","_createElementVNode","createElementVNode","xlink:href","_hoisted_5","_hoisted_6","_hoisted_7","href","_hoisted_9","_hoisted_10","aria-hidden","role","_hoisted_15","$setup","_openBlock","_createElementBlock","createElementBlock","_hoisted_1","_renderSlot","_ctx","$slots","label","__","onClick","apply","arguments","_normalizeClass","is-active","renderSlot","_toDisplayString","_createBlock","_KeepAlive","_component_login","forget-type","$props","show-placeholders","createBlock","_component_registration","_createVNode","createVNode","_component_reset","openBlock","_hoisted_8","path","email","_hoisted_12","_hoisted_13","_hoisted_14","_Fragment","_renderList","renderList","item","text","icon","_hoisted_17","badge","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("vue"),i=require("swiper");function
|
|
1
|
+
"use strict";var e=require("vue"),i=require("swiper"),n=require("swiper/modules");function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=t(i),o=e.defineComponent({name:"cross",setup:function(){window.addEventListener("DOMContentLoaded",(function(){var e=document.getElementById("cross-sale"),i=e.querySelectorAll(".swiper"),t=e.querySelectorAll("li"),o=[];t.forEach((function(e,r){e.addEventListener("click",(function(){if(t.forEach((function(e){e.classList.remove("is-active")})),i.forEach((function(e){e.classList.add("is-hidden")})),i[r].classList.remove("is-hidden"),e.classList.add("is-active"),!o[r]){var c=window.crossSaleSwiperOptions?window.crossSaleSwiperOptions:{slidesPerView:5,spaceBetween:24,freeMode:{enabled:!0},mousewheel:{forceToAxis:!0},navigation:{nextEl:".swiper-button-next",prevEl:".swiper-button-prev"}};c.modules=[n.Navigation,n.Mousewheel,n.FreeMode],o[r]=new s.default(i[r],c)}o[r].slideTo(0)}))})),t[0].click()}))}});o.render=function(e,i,n,t,s,o){return null},module.exports=o;
|
|
2
2
|
//# sourceMappingURL=Cross.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cross.js","sources":["../../../src/components/shop/Cross.vue"],"sourcesContent":["<template></template>\n<script>\nimport { defineComponent } from \"vue\";\nimport Swiper
|
|
1
|
+
{"version":3,"file":"Cross.js","sources":["../../../src/components/shop/Cross.vue"],"sourcesContent":["<template></template>\n<script>\nimport { defineComponent } from \"vue\";\nimport Swiper from 'swiper';\nimport { Navigation, Mousewheel, FreeMode } from 'swiper/modules';\n\nexport default /*#__PURE__*/ defineComponent({\n name: \"cross\",\n setup() {\n window.addEventListener(\"DOMContentLoaded\", () => {\n const container = document.getElementById(\"cross-sale\");\n const sliders = container.querySelectorAll(\".swiper\");\n const tabs = container.querySelectorAll(\"li\");\n let inited = [];\n\n tabs.forEach((li, index) => {\n li.addEventListener(\"click\", () => {\n tabs.forEach((li) => {\n li.classList.remove(\"is-active\");\n });\n\n sliders.forEach((slider) => {\n slider.classList.add(\"is-hidden\");\n });\n\n sliders[index].classList.remove(\"is-hidden\");\n li.classList.add(\"is-active\");\n\n if (!inited[index]) {\n const options = window.crossSaleSwiperOptions\n ? window.crossSaleSwiperOptions\n : {\n slidesPerView: 5,\n spaceBetween: 24,\n freeMode: {\n enabled: true\n },\n mousewheel: {\n forceToAxis: true,\n },\n navigation: {\n nextEl: \".swiper-button-next\",\n prevEl: \".swiper-button-prev\",\n },\n };\n\n options.modules = [Navigation, Mousewheel, FreeMode];\n\n inited[index] = new Swiper(sliders[index], options);\n }\n\n inited[index].slideTo(0);\n });\n });\n\n tabs[0].click();\n });\n },\n});\n</script>"],"names":["script","defineComponent","name","setup","window","addEventListener","container","document","getElementById","sliders","querySelectorAll","tabs","inited","forEach","li","index","classList","remove","slider","add","options","crossSaleSwiperOptions","slidesPerView","spaceBetween","freeMode","enabled","mousewheel","forceToAxis","navigation","nextEl","prevEl","modules","Navigation","Mousewheel","FreeMode","Swiper","slideTo","click"],"mappings":"qKAMeA,EAAcC,kBAAgB,CACzCC,KAAM,QACNC,MAAK,WACDC,OAAOC,iBAAiB,oBAAoB,WACxC,IAAMC,EAAYC,SAASC,eAAe,cACpCC,EAAUH,EAAUI,iBAAiB,WACrCC,EAAOL,EAAUI,iBAAiB,MACpCE,EAAS,GAEbD,EAAKE,SAAQ,SAACC,EAAIC,GACdD,EAAGT,iBAAiB,SAAS,WAYzB,GAXAM,EAAKE,SAAQ,SAACC,GACVA,EAAGE,UAAUC,OAAO,gBAGxBR,EAAQI,SAAQ,SAACK,GACbA,EAAOF,UAAUG,IAAI,gBAGzBV,EAAQM,GAAOC,UAAUC,OAAO,aAChCH,EAAGE,UAAUG,IAAI,cAEZP,EAAOG,GAAQ,CAChB,IAAMK,EAAUhB,OAAOiB,uBACjBjB,OAAOiB,uBACP,CACEC,cAAe,EACfC,aAAc,GACdC,SAAU,CACNC,SAAS,GAEbC,WAAY,CACRC,aAAa,GAEjBC,WAAY,CACRC,OAAQ,sBACRC,OAAQ,wBAIpBV,EAAQW,QAAU,CAACC,EAAUA,WAAEC,EAAUA,WAAEC,EAAQA,UAEnDtB,EAAOG,GAAS,IAAIoB,EAAAA,QAAO1B,EAAQM,GAAQK,GAG/CR,EAAOG,GAAOqB,QAAQ,SAI9BzB,EAAK,GAAG0B"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("vue"),t=require("swiper");function
|
|
1
|
+
"use strict";var e=require("vue"),t=require("swiper"),n=require("swiper/modules");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var i=o(t),r=e.defineComponent({name:"gallery",props:{thumbsDirection:{type:String,default:"horizontal"},fullscreenThumbsDirection:{type:String,default:"horizontal"},prev:{type:String,default:".swiper-button-prev"},next:{type:String,default:".swiper-button-next"},thumbPrev:{type:String,default:".swiper-button-prev"},thumbNext:{type:String,default:".swiper-button-next"},fullscreen:{type:Boolean,default:!1},isResizeThumbs:{type:Boolean,default:!1},thumbsSpaceBetween:{type:Number,default:10}},setup:function(t){var o,r,u,s,l,a=e.ref(!1),d=function(){document.body.classList.remove("product-gallery-modal-open"),a.value=!1,p("close"),t.isResizeThumbs&&m()},c=function(){document.body.classList.add("product-gallery-modal-open"),a.value=!0,p("open")},p=function(e){r&&(t.thumbsDirection!=t.fullscreenThumbsDirection?s.changeDirection("open"==e?t.fullscreenThumbsDirection:t.thumbsDirection):s.update()),l.update()};window.addEventListener("keyup",(function(e){a.value&&"Escape"===e.key&&d()}));var m=function(){r.style.height=parseInt(u.offsetHeight)+"px",s.update()},f=function(){clearTimeout(o),o=setTimeout((function(){m()}),500)};return document.addEventListener("DOMContentLoaded",(function(){if(r=document.getElementById("product-gallery-thumbs"),u=document.getElementById("product-gallery"),r&&(s=new i.default(r,{spaceBetween:t.thumbsSpaceBetween,slidesPerView:"auto",mousewheel:{forceToAxis:!0},freeMode:{enabled:!0},watchSlidesVisibility:!0,watchSlidesProgress:!0,direction:t.thumbsDirection,navigation:{nextEl:t.thumbNext,prevEl:t.thumbPrev},modules:[n.Navigation,n.Mousewheel,n.FreeMode,n.Thumbs]}),t.isResizeThumbs&&(window.addEventListener("resize",f,{passive:!0}),m()),r.classList.remove("not-inited")),t.fullscreen&&u.addEventListener("click",c),u){var e={spaceBetween:10,mousewheel:{forceToAxis:!0},centeredSlides:!0,navigation:{nextEl:t.next,prevEl:t.prev}};s&&(e.thumbs={swiper:s}),e.modules=[n.Navigation,n.Mousewheel,n.FreeMode,n.Thumbs],l=new i.default(u,e)}p("close")}),!1),{modal:a,close:d}}});r.render=function(t,n,o,i,r,u){return t.fullscreen?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(["delete is-large",{"is-hidden":!t.modal}]),onClick:n[0]||(n[0]=function(){return t.close&&t.close.apply(t,arguments)})},null,2)):e.createCommentVNode("v-if",!0)},module.exports=r;
|
|
2
2
|
//# sourceMappingURL=Gallery.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Gallery.js","sources":["../../../src/components/shop/Gallery.vue","../../../src/components/shop/Gallery.vue?vue&type=template&id=7f4e9061&lang.js"],"sourcesContent":["<template>\n <button class=\"delete is-large\" @click=\"close\" v-if=\"fullscreen\" v-bind:class=\"{ 'is-hidden': !modal }\"></button>\n</template>\n<script>\nimport { ref, defineComponent } from \"vue\";\nimport Swiper, { Navigation, Mousewheel, Thumbs, FreeMode } from \"swiper\";\n\nexport default /*#__PURE__*/ defineComponent({\n name: \"gallery\",\n props: {\n thumbsDirection: {\n type: String,\n default: \"horizontal\",\n },\n fullscreenThumbsDirection: {\n type: String,\n default: \"horizontal\",\n },\n prev: {\n type: String,\n default: \".swiper-button-prev\",\n },\n next: {\n type: String,\n default: \".swiper-button-next\",\n },\n thumbPrev: {\n type: String,\n default: \".swiper-button-prev\",\n },\n thumbNext: {\n type: String,\n default: \".swiper-button-next\",\n },\n fullscreen: {\n type: Boolean,\n default: false,\n },\n isResizeThumbs: {\n type: Boolean,\n default: false,\n },\n thumbsSpaceBetween: {\n type: Number,\n default: 10,\n },\n },\n setup(props) {\n const modal = ref(false);\n let resizeTimeout;\n let thumbs;\n let slider;\n let thumbsSwiper;\n let sliderSwiper;\n\n const close = () => {\n document.body.classList.remove(\"product-gallery-modal-open\");\n modal.value = false;\n\n update(\"close\");\n\n if (props.isResizeThumbs) {\n resizeThumbsSwiper();\n }\n };\n\n const open = () => {\n document.body.classList.add(\"product-gallery-modal-open\");\n modal.value = true;\n\n update(\"open\");\n };\n\n const update = (action) => {\n if (thumbs) {\n if (props.thumbsDirection != props.fullscreenThumbsDirection) {\n thumbsSwiper.changeDirection(\n action == \"open\"\n ? props.fullscreenThumbsDirection\n : props.thumbsDirection\n );\n } else {\n thumbsSwiper.update();\n }\n }\n\n sliderSwiper.update();\n };\n\n window.addEventListener(\"keyup\", (e) => {\n if (modal.value && e.key === \"Escape\") {\n close();\n }\n });\n\n const resizeThumbsSwiper = () => {\n thumbs.style.height = parseInt(slider.offsetHeight) + \"px\";\n thumbsSwiper.update();\n };\n\n const resizeBounced = () => {\n clearTimeout(resizeTimeout);\n\n resizeTimeout = setTimeout(() => {\n resizeThumbsSwiper();\n }, 500);\n };\n\n const init = () => {\n thumbs = document.getElementById(\"product-gallery-thumbs\");\n slider = document.getElementById(\"product-gallery\");\n\n if (thumbs) {\n thumbsSwiper = new Swiper(thumbs, {\n spaceBetween: props.thumbsSpaceBetween,\n slidesPerView: \"auto\",\n mousewheel: {\n forceToAxis: true,\n },\n freeMode: {\n enabled: true\n },\n watchSlidesVisibility: true,\n watchSlidesProgress: true,\n direction: props.thumbsDirection,\n navigation: {\n nextEl: props.thumbNext,\n prevEl: props.thumbPrev,\n },\n modules: [Navigation, Mousewheel, FreeMode, Thumbs]\n });\n\n if (props.isResizeThumbs) {\n window.addEventListener(\"resize\", resizeBounced, { passive: true });\n resizeThumbsSwiper();\n }\n\n thumbs.classList.remove(\"not-inited\");\n }\n\n if (props.fullscreen) {\n slider.addEventListener(\"click\", open);\n }\n\n if (slider) {\n let options = {\n spaceBetween: 10,\n mousewheel: {\n forceToAxis: true,\n },\n centeredSlides: true,\n navigation: {\n nextEl: props.next,\n prevEl: props.prev,\n },\n };\n\n if (thumbsSwiper) {\n options.thumbs = {\n swiper: thumbsSwiper,\n };\n }\n\n options.modules = [Navigation, Mousewheel, FreeMode, Thumbs];\n\n sliderSwiper = new Swiper(slider, options);\n }\n\n update(\"close\");\n };\n\n document.addEventListener(\"DOMContentLoaded\", init, false);\n\n return {\n modal,\n close,\n };\n },\n});\n</script>","<template>\n <button class=\"delete is-large\" @click=\"close\" v-if=\"fullscreen\" v-bind:class=\"{ 'is-hidden': !modal }\"></button>\n</template>\n<script>\nimport { ref, defineComponent } from \"vue\";\nimport Swiper, { Navigation, Mousewheel, Thumbs, FreeMode } from \"swiper\";\n\nexport default /*#__PURE__*/ defineComponent({\n name: \"gallery\",\n props: {\n thumbsDirection: {\n type: String,\n default: \"horizontal\",\n },\n fullscreenThumbsDirection: {\n type: String,\n default: \"horizontal\",\n },\n prev: {\n type: String,\n default: \".swiper-button-prev\",\n },\n next: {\n type: String,\n default: \".swiper-button-next\",\n },\n thumbPrev: {\n type: String,\n default: \".swiper-button-prev\",\n },\n thumbNext: {\n type: String,\n default: \".swiper-button-next\",\n },\n fullscreen: {\n type: Boolean,\n default: false,\n },\n isResizeThumbs: {\n type: Boolean,\n default: false,\n },\n thumbsSpaceBetween: {\n type: Number,\n default: 10,\n },\n },\n setup(props) {\n const modal = ref(false);\n let resizeTimeout;\n let thumbs;\n let slider;\n let thumbsSwiper;\n let sliderSwiper;\n\n const close = () => {\n document.body.classList.remove(\"product-gallery-modal-open\");\n modal.value = false;\n\n update(\"close\");\n\n if (props.isResizeThumbs) {\n resizeThumbsSwiper();\n }\n };\n\n const open = () => {\n document.body.classList.add(\"product-gallery-modal-open\");\n modal.value = true;\n\n update(\"open\");\n };\n\n const update = (action) => {\n if (thumbs) {\n if (props.thumbsDirection != props.fullscreenThumbsDirection) {\n thumbsSwiper.changeDirection(\n action == \"open\"\n ? props.fullscreenThumbsDirection\n : props.thumbsDirection\n );\n } else {\n thumbsSwiper.update();\n }\n }\n\n sliderSwiper.update();\n };\n\n window.addEventListener(\"keyup\", (e) => {\n if (modal.value && e.key === \"Escape\") {\n close();\n }\n });\n\n const resizeThumbsSwiper = () => {\n thumbs.style.height = parseInt(slider.offsetHeight) + \"px\";\n thumbsSwiper.update();\n };\n\n const resizeBounced = () => {\n clearTimeout(resizeTimeout);\n\n resizeTimeout = setTimeout(() => {\n resizeThumbsSwiper();\n }, 500);\n };\n\n const init = () => {\n thumbs = document.getElementById(\"product-gallery-thumbs\");\n slider = document.getElementById(\"product-gallery\");\n\n if (thumbs) {\n thumbsSwiper = new Swiper(thumbs, {\n spaceBetween: props.thumbsSpaceBetween,\n slidesPerView: \"auto\",\n mousewheel: {\n forceToAxis: true,\n },\n freeMode: {\n enabled: true\n },\n watchSlidesVisibility: true,\n watchSlidesProgress: true,\n direction: props.thumbsDirection,\n navigation: {\n nextEl: props.thumbNext,\n prevEl: props.thumbPrev,\n },\n modules: [Navigation, Mousewheel, FreeMode, Thumbs]\n });\n\n if (props.isResizeThumbs) {\n window.addEventListener(\"resize\", resizeBounced, { passive: true });\n resizeThumbsSwiper();\n }\n\n thumbs.classList.remove(\"not-inited\");\n }\n\n if (props.fullscreen) {\n slider.addEventListener(\"click\", open);\n }\n\n if (slider) {\n let options = {\n spaceBetween: 10,\n mousewheel: {\n forceToAxis: true,\n },\n centeredSlides: true,\n navigation: {\n nextEl: props.next,\n prevEl: props.prev,\n },\n };\n\n if (thumbsSwiper) {\n options.thumbs = {\n swiper: thumbsSwiper,\n };\n }\n\n options.modules = [Navigation, Mousewheel, FreeMode, Thumbs];\n\n sliderSwiper = new Swiper(slider, options);\n }\n\n update(\"close\");\n };\n\n document.addEventListener(\"DOMContentLoaded\", init, false);\n\n return {\n modal,\n close,\n };\n },\n});\n</script>"],"names":["script","defineComponent","name","props","thumbsDirection","type","String","default","fullscreenThumbsDirection","prev","next","thumbPrev","thumbNext","fullscreen","Boolean","isResizeThumbs","thumbsSpaceBetween","Number","setup","resizeTimeout","thumbs","slider","thumbsSwiper","sliderSwiper","modal","ref","close","document","body","classList","remove","value","update","resizeThumbsSwiper","open","add","action","changeDirection","window","addEventListener","e","key","style","height","parseInt","offsetHeight","resizeBounced","clearTimeout","setTimeout","getElementById","Swiper","spaceBetween","slidesPerView","mousewheel","forceToAxis","freeMode","enabled","watchSlidesVisibility","watchSlidesProgress","direction","navigation","nextEl","prevEl","modules","Navigation","Mousewheel","FreeMode","Thumbs","passive","options","centeredSlides","swiper","_ctx","_createElementBlock","class","_normalizeClass","onClick","apply","arguments"],"mappings":"yIAOeA,EAAcC,kBAAgB,CACzCC,KAAM,UACNC,MAAO,CACHC,gBAAiB,CACbC,KAAMC,OACNC,QAAS,cAEbC,0BAA2B,CACvBH,KAAMC,OACNC,QAAS,cAEbE,KAAM,CACFJ,KAAMC,OACNC,QAAS,uBAEbG,KAAM,CACFL,KAAMC,OACNC,QAAS,uBAEbI,UAAW,CACPN,KAAMC,OACNC,QAAS,uBAEbK,UAAW,CACPP,KAAMC,OACNC,QAAS,uBAEbM,WAAY,CACRR,KAAMS,QACNP,SAAS,GAEbQ,eAAgB,CACZV,KAAMS,QACNP,SAAS,GAEbS,mBAAoB,CAChBX,KAAMY,OACNV,QAAS,KAGjBW,MAAK,SAACf,GACF,IACIgB,EACAC,EACAC,EACAC,EACAC,EALEC,EAAQC,OAAI,GAOZC,EAAQ,WACVC,SAASC,KAAKC,UAAUC,OAAO,8BAC/BN,EAAMO,OAAQ,EAEdC,EAAO,SAEH7B,EAAMY,gBACNkB,KAIFC,EAAO,WACTP,SAASC,KAAKC,UAAUM,IAAI,8BAC5BX,EAAMO,OAAQ,EAEdC,EAAO,SAGLA,EAAS,SAACI,GACRhB,IACIjB,EAAMC,iBAAmBD,EAAMK,0BAC/Bc,EAAae,gBACC,QAAVD,EACMjC,EAAMK,0BACNL,EAAMC,iBAGhBkB,EAAaU,UAIrBT,EAAaS,UAGjBM,OAAOC,iBAAiB,SAAS,SAACC,GAC1BhB,EAAMO,OAAmB,WAAVS,EAAEC,KACjBf,OAIR,IAAMO,EAAqB,WACvBb,EAAOsB,MAAMC,OAASC,SAASvB,EAAOwB,cAAgB,KACtDvB,EAAaU,UAGXc,EAAgB,WAClBC,aAAa5B,GAEbA,EAAgB6B,YAAW,WACvBf,MACD,MAoEP,OAFAN,SAASY,iBAAiB,oBA/Db,WAoCT,GAnCAnB,EAASO,SAASsB,eAAe,0BACjC5B,EAASM,SAASsB,eAAe,mBAE7B7B,IACAE,EAAe,IAAI4B,EAAM,QAAC9B,EAAQ,CAC9B+B,aAAchD,EAAMa,mBACpBoC,cAAe,OACfC,WAAY,CACRC,aAAa,GAEjBC,SAAU,CACNC,SAAS,GAEbC,uBAAuB,EACvBC,qBAAqB,EACrBC,UAAWxD,EAAMC,gBACjBwD,WAAY,CACRC,OAAQ1D,EAAMS,UACdkD,OAAQ3D,EAAMQ,WAElBoD,QAAS,CAACC,EAAUA,WAAEC,aAAYC,EAAAA,SAAUC,EAAAA,UAG5ChE,EAAMY,iBACNuB,OAAOC,iBAAiB,SAAUO,EAAe,CAAEsB,SAAS,IAC5DnC,KAGJb,EAAOS,UAAUC,OAAO,eAGxB3B,EAAMU,YACNQ,EAAOkB,iBAAiB,QAASL,GAGjCb,EAAQ,CACR,IAAIgD,EAAU,CACVlB,aAAc,GACdE,WAAY,CACRC,aAAa,GAEjBgB,gBAAgB,EAChBV,WAAY,CACRC,OAAQ1D,EAAMO,KACdoD,OAAQ3D,EAAMM,OAIlBa,IACA+C,EAAQjD,OAAS,CACbmD,OAAQjD,IAIhB+C,EAAQN,QAAU,CAACC,EAAAA,WAAYC,EAAAA,WAAYC,EAAAA,SAAUC,EAAAA,QAErD5C,EAAe,IAAI2B,EAAAA,QAAO7B,EAAQgD,GAGtCrC,EAAO,YAGyC,GAE7C,CACHR,MAAAA,EACAE,MAAAA,4CC9K6C8C,EAAU3D,0BAA/D4D,EAAAA,mBAAgH,SAAA,OAAxGC,MAAKC,EAAAA,eAAA,CAAC,gCAAiFH,EAAMhD,SAApEoD,sCAAOJ,EAAK9C,OAAA8C,EAAA9C,MAAAmD,MAAAL,EAAAM"}
|
|
1
|
+
{"version":3,"file":"Gallery.js","sources":["../../../src/components/shop/Gallery.vue","../../../src/components/shop/Gallery.vue?vue&type=template&id=216a5c41&lang.js"],"sourcesContent":["<template>\n <button class=\"delete is-large\" @click=\"close\" v-if=\"fullscreen\" v-bind:class=\"{ 'is-hidden': !modal }\"></button>\n</template>\n<script>\nimport { ref, defineComponent } from \"vue\";\nimport Swiper from 'swiper';\nimport { Navigation, Mousewheel, Thumbs, FreeMode } from 'swiper/modules';\n\nexport default /*#__PURE__*/ defineComponent({\n name: \"gallery\",\n props: {\n thumbsDirection: {\n type: String,\n default: \"horizontal\",\n },\n fullscreenThumbsDirection: {\n type: String,\n default: \"horizontal\",\n },\n prev: {\n type: String,\n default: \".swiper-button-prev\",\n },\n next: {\n type: String,\n default: \".swiper-button-next\",\n },\n thumbPrev: {\n type: String,\n default: \".swiper-button-prev\",\n },\n thumbNext: {\n type: String,\n default: \".swiper-button-next\",\n },\n fullscreen: {\n type: Boolean,\n default: false,\n },\n isResizeThumbs: {\n type: Boolean,\n default: false,\n },\n thumbsSpaceBetween: {\n type: Number,\n default: 10,\n },\n },\n setup(props) {\n const modal = ref(false);\n let resizeTimeout;\n let thumbs;\n let slider;\n let thumbsSwiper;\n let sliderSwiper;\n\n const close = () => {\n document.body.classList.remove(\"product-gallery-modal-open\");\n modal.value = false;\n\n update(\"close\");\n\n if (props.isResizeThumbs) {\n resizeThumbsSwiper();\n }\n };\n\n const open = () => {\n document.body.classList.add(\"product-gallery-modal-open\");\n modal.value = true;\n\n update(\"open\");\n };\n\n const update = (action) => {\n if (thumbs) {\n if (props.thumbsDirection != props.fullscreenThumbsDirection) {\n thumbsSwiper.changeDirection(\n action == \"open\"\n ? props.fullscreenThumbsDirection\n : props.thumbsDirection\n );\n } else {\n thumbsSwiper.update();\n }\n }\n\n sliderSwiper.update();\n };\n\n window.addEventListener(\"keyup\", (e) => {\n if (modal.value && e.key === \"Escape\") {\n close();\n }\n });\n\n const resizeThumbsSwiper = () => {\n thumbs.style.height = parseInt(slider.offsetHeight) + \"px\";\n thumbsSwiper.update();\n };\n\n const resizeBounced = () => {\n clearTimeout(resizeTimeout);\n\n resizeTimeout = setTimeout(() => {\n resizeThumbsSwiper();\n }, 500);\n };\n\n const init = () => {\n thumbs = document.getElementById(\"product-gallery-thumbs\");\n slider = document.getElementById(\"product-gallery\");\n\n if (thumbs) {\n thumbsSwiper = new Swiper(thumbs, {\n spaceBetween: props.thumbsSpaceBetween,\n slidesPerView: \"auto\",\n mousewheel: {\n forceToAxis: true,\n },\n freeMode: {\n enabled: true\n },\n watchSlidesVisibility: true,\n watchSlidesProgress: true,\n direction: props.thumbsDirection,\n navigation: {\n nextEl: props.thumbNext,\n prevEl: props.thumbPrev,\n },\n modules: [Navigation, Mousewheel, FreeMode, Thumbs]\n });\n\n if (props.isResizeThumbs) {\n window.addEventListener(\"resize\", resizeBounced, { passive: true });\n resizeThumbsSwiper();\n }\n\n thumbs.classList.remove(\"not-inited\");\n }\n\n if (props.fullscreen) {\n slider.addEventListener(\"click\", open);\n }\n\n if (slider) {\n let options = {\n spaceBetween: 10,\n mousewheel: {\n forceToAxis: true,\n },\n centeredSlides: true,\n navigation: {\n nextEl: props.next,\n prevEl: props.prev,\n },\n };\n\n if (thumbsSwiper) {\n options.thumbs = {\n swiper: thumbsSwiper,\n };\n }\n\n options.modules = [Navigation, Mousewheel, FreeMode, Thumbs];\n\n sliderSwiper = new Swiper(slider, options);\n }\n\n update(\"close\");\n };\n\n document.addEventListener(\"DOMContentLoaded\", init, false);\n\n return {\n modal,\n close,\n };\n },\n});\n</script>","<template>\n <button class=\"delete is-large\" @click=\"close\" v-if=\"fullscreen\" v-bind:class=\"{ 'is-hidden': !modal }\"></button>\n</template>\n<script>\nimport { ref, defineComponent } from \"vue\";\nimport Swiper from 'swiper';\nimport { Navigation, Mousewheel, Thumbs, FreeMode } from 'swiper/modules';\n\nexport default /*#__PURE__*/ defineComponent({\n name: \"gallery\",\n props: {\n thumbsDirection: {\n type: String,\n default: \"horizontal\",\n },\n fullscreenThumbsDirection: {\n type: String,\n default: \"horizontal\",\n },\n prev: {\n type: String,\n default: \".swiper-button-prev\",\n },\n next: {\n type: String,\n default: \".swiper-button-next\",\n },\n thumbPrev: {\n type: String,\n default: \".swiper-button-prev\",\n },\n thumbNext: {\n type: String,\n default: \".swiper-button-next\",\n },\n fullscreen: {\n type: Boolean,\n default: false,\n },\n isResizeThumbs: {\n type: Boolean,\n default: false,\n },\n thumbsSpaceBetween: {\n type: Number,\n default: 10,\n },\n },\n setup(props) {\n const modal = ref(false);\n let resizeTimeout;\n let thumbs;\n let slider;\n let thumbsSwiper;\n let sliderSwiper;\n\n const close = () => {\n document.body.classList.remove(\"product-gallery-modal-open\");\n modal.value = false;\n\n update(\"close\");\n\n if (props.isResizeThumbs) {\n resizeThumbsSwiper();\n }\n };\n\n const open = () => {\n document.body.classList.add(\"product-gallery-modal-open\");\n modal.value = true;\n\n update(\"open\");\n };\n\n const update = (action) => {\n if (thumbs) {\n if (props.thumbsDirection != props.fullscreenThumbsDirection) {\n thumbsSwiper.changeDirection(\n action == \"open\"\n ? props.fullscreenThumbsDirection\n : props.thumbsDirection\n );\n } else {\n thumbsSwiper.update();\n }\n }\n\n sliderSwiper.update();\n };\n\n window.addEventListener(\"keyup\", (e) => {\n if (modal.value && e.key === \"Escape\") {\n close();\n }\n });\n\n const resizeThumbsSwiper = () => {\n thumbs.style.height = parseInt(slider.offsetHeight) + \"px\";\n thumbsSwiper.update();\n };\n\n const resizeBounced = () => {\n clearTimeout(resizeTimeout);\n\n resizeTimeout = setTimeout(() => {\n resizeThumbsSwiper();\n }, 500);\n };\n\n const init = () => {\n thumbs = document.getElementById(\"product-gallery-thumbs\");\n slider = document.getElementById(\"product-gallery\");\n\n if (thumbs) {\n thumbsSwiper = new Swiper(thumbs, {\n spaceBetween: props.thumbsSpaceBetween,\n slidesPerView: \"auto\",\n mousewheel: {\n forceToAxis: true,\n },\n freeMode: {\n enabled: true\n },\n watchSlidesVisibility: true,\n watchSlidesProgress: true,\n direction: props.thumbsDirection,\n navigation: {\n nextEl: props.thumbNext,\n prevEl: props.thumbPrev,\n },\n modules: [Navigation, Mousewheel, FreeMode, Thumbs]\n });\n\n if (props.isResizeThumbs) {\n window.addEventListener(\"resize\", resizeBounced, { passive: true });\n resizeThumbsSwiper();\n }\n\n thumbs.classList.remove(\"not-inited\");\n }\n\n if (props.fullscreen) {\n slider.addEventListener(\"click\", open);\n }\n\n if (slider) {\n let options = {\n spaceBetween: 10,\n mousewheel: {\n forceToAxis: true,\n },\n centeredSlides: true,\n navigation: {\n nextEl: props.next,\n prevEl: props.prev,\n },\n };\n\n if (thumbsSwiper) {\n options.thumbs = {\n swiper: thumbsSwiper,\n };\n }\n\n options.modules = [Navigation, Mousewheel, FreeMode, Thumbs];\n\n sliderSwiper = new Swiper(slider, options);\n }\n\n update(\"close\");\n };\n\n document.addEventListener(\"DOMContentLoaded\", init, false);\n\n return {\n modal,\n close,\n };\n },\n});\n</script>"],"names":["script","defineComponent","name","props","thumbsDirection","type","String","default","fullscreenThumbsDirection","prev","next","thumbPrev","thumbNext","fullscreen","Boolean","isResizeThumbs","thumbsSpaceBetween","Number","setup","resizeTimeout","thumbs","slider","thumbsSwiper","sliderSwiper","modal","ref","close","document","body","classList","remove","value","update","resizeThumbsSwiper","open","add","action","changeDirection","window","addEventListener","e","key","style","height","parseInt","offsetHeight","resizeBounced","clearTimeout","setTimeout","getElementById","Swiper","spaceBetween","slidesPerView","mousewheel","forceToAxis","freeMode","enabled","watchSlidesVisibility","watchSlidesProgress","direction","navigation","nextEl","prevEl","modules","Navigation","Mousewheel","FreeMode","Thumbs","passive","options","centeredSlides","swiper","_ctx","_createElementBlock","class","_normalizeClass","onClick","apply","arguments"],"mappings":"qKAQeA,EAAcC,kBAAgB,CACzCC,KAAM,UACNC,MAAO,CACHC,gBAAiB,CACbC,KAAMC,OACNC,QAAS,cAEbC,0BAA2B,CACvBH,KAAMC,OACNC,QAAS,cAEbE,KAAM,CACFJ,KAAMC,OACNC,QAAS,uBAEbG,KAAM,CACFL,KAAMC,OACNC,QAAS,uBAEbI,UAAW,CACPN,KAAMC,OACNC,QAAS,uBAEbK,UAAW,CACPP,KAAMC,OACNC,QAAS,uBAEbM,WAAY,CACRR,KAAMS,QACNP,SAAS,GAEbQ,eAAgB,CACZV,KAAMS,QACNP,SAAS,GAEbS,mBAAoB,CAChBX,KAAMY,OACNV,QAAS,KAGjBW,MAAK,SAACf,GACF,IACIgB,EACAC,EACAC,EACAC,EACAC,EALEC,EAAQC,OAAI,GAOZC,EAAQ,WACVC,SAASC,KAAKC,UAAUC,OAAO,8BAC/BN,EAAMO,OAAQ,EAEdC,EAAO,SAEH7B,EAAMY,gBACNkB,KAIFC,EAAO,WACTP,SAASC,KAAKC,UAAUM,IAAI,8BAC5BX,EAAMO,OAAQ,EAEdC,EAAO,SAGLA,EAAS,SAACI,GACRhB,IACIjB,EAAMC,iBAAmBD,EAAMK,0BAC/Bc,EAAae,gBACC,QAAVD,EACMjC,EAAMK,0BACNL,EAAMC,iBAGhBkB,EAAaU,UAIrBT,EAAaS,UAGjBM,OAAOC,iBAAiB,SAAS,SAACC,GAC1BhB,EAAMO,OAAmB,WAAVS,EAAEC,KACjBf,OAIR,IAAMO,EAAqB,WACvBb,EAAOsB,MAAMC,OAASC,SAASvB,EAAOwB,cAAgB,KACtDvB,EAAaU,UAGXc,EAAgB,WAClBC,aAAa5B,GAEbA,EAAgB6B,YAAW,WACvBf,MACD,MAoEP,OAFAN,SAASY,iBAAiB,oBA/Db,WAoCT,GAnCAnB,EAASO,SAASsB,eAAe,0BACjC5B,EAASM,SAASsB,eAAe,mBAE7B7B,IACAE,EAAe,IAAI4B,EAAM,QAAC9B,EAAQ,CAC9B+B,aAAchD,EAAMa,mBACpBoC,cAAe,OACfC,WAAY,CACRC,aAAa,GAEjBC,SAAU,CACNC,SAAS,GAEbC,uBAAuB,EACvBC,qBAAqB,EACrBC,UAAWxD,EAAMC,gBACjBwD,WAAY,CACRC,OAAQ1D,EAAMS,UACdkD,OAAQ3D,EAAMQ,WAElBoD,QAAS,CAACC,EAAUA,WAAEC,aAAYC,EAAAA,SAAUC,EAAAA,UAG5ChE,EAAMY,iBACNuB,OAAOC,iBAAiB,SAAUO,EAAe,CAAEsB,SAAS,IAC5DnC,KAGJb,EAAOS,UAAUC,OAAO,eAGxB3B,EAAMU,YACNQ,EAAOkB,iBAAiB,QAASL,GAGjCb,EAAQ,CACR,IAAIgD,EAAU,CACVlB,aAAc,GACdE,WAAY,CACRC,aAAa,GAEjBgB,gBAAgB,EAChBV,WAAY,CACRC,OAAQ1D,EAAMO,KACdoD,OAAQ3D,EAAMM,OAIlBa,IACA+C,EAAQjD,OAAS,CACbmD,OAAQjD,IAIhB+C,EAAQN,QAAU,CAACC,EAAAA,WAAYC,EAAAA,WAAYC,EAAAA,SAAUC,EAAAA,QAErD5C,EAAe,IAAI2B,EAAAA,QAAO7B,EAAQgD,GAGtCrC,EAAO,YAGyC,GAE7C,CACHR,MAAAA,EACAE,MAAAA,4CC/K6C8C,EAAU3D,0BAA/D4D,EAAAA,mBAAgH,SAAA,OAAxGC,MAAKC,EAAAA,eAAA,CAAC,gCAAiFH,EAAMhD,SAApEoD,sCAAOJ,EAAK9C,OAAA8C,EAAA9C,MAAAmD,MAAAL,EAAAM"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("vue"),i=require("swiper");function
|
|
1
|
+
"use strict";var e=require("vue"),i=require("swiper"),t=require("swiper/modules");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var d=o(i),a=e.defineComponent({props:{id:Number,type:{type:String,default:"promo-products"}},setup:function(i){var o=!1,a=e.ref(!1),r=e.ref(null),n=e.ref(null),l=function(e){e.forEach((function(e){e.isIntersecting&&(o||(o=!0,s()))}))},s=function(){$http.post($ziggy("api.piece",{slug:i.type}),{id:i.id}).then((function(o){var l="piece-promo-products-"+i.id;window.app.component(l,{template:o.data?o.data:"<i></i>"}),n.value=l,a.value=!0,e.nextTick((function(){var e=r.value.querySelectorAll(".is-faded-tabs");e.length&&e.forEach((function(e){new d.default(e.querySelector(".swiper"),{slidesPerView:"auto",freeMode:{enabled:!0},mousewheel:{forceToAxis:!0},modules:[t.Navigation,t.Mousewheel,t.FreeMode]})}));var i=r.value.querySelectorAll(".is-faded-tabs .swiper-slide"),o=r.value.querySelectorAll("[products-slider]");i.forEach((function(e,t){e.addEventListener("click",(function(){i.forEach((function(e){e.classList.remove("is-active")})),o.forEach((function(e){e.classList.add("is-hidden")})),o[t].classList.remove("is-hidden"),e.classList.add("is-active")}))})),o.length&&o.forEach((function(e){new d.default(e,window.viewedSwiperOptions)})),window.lazyImages&&window.lazyImages.update(),window.promoCodeCallback&&"function"==typeof window.promoCodeCallback&&window.promoCodeCallback(r.value)}))}))};return window.addEventListener("DOMContentLoaded",(function(){new IntersectionObserver(l,{threshold:.1}).observe(r.value)})),{container:r,component:n,loaded:a}}}),r={ref:"container"},n={key:0,class:"product-promo-block container is-fluid is-skeleton"},l=e.createStaticVNode('<div class="gradient"></div><div class="title slider-title"> </div><div class="is-faded-tabs"><div class="is-flex"><div class="swiper-slide"> </div><div class="swiper-slide"> </div></div></div>',3),s={class:"swiper"},c={class:"swiper-wrapper products is-slider"},u=[e.createStaticVNode('<div class="border"><div class="wrapper"><picture class="is-lazy-loaded"><img class="lazy entered loaded" src="/images/blank.png" alt="skeleton"></picture><div class="availability"> </div><div class="title"> </div><div class="prices"><div class="price"></div></div></div></div>',1)];a.render=function(i,t,o,d,a,p){return e.openBlock(),e.createElementBlock("div",r,[e.renderSlot(i.$slots,"default",{loaded:i.loaded},(function(){return[i.loaded?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("section",n,[l,e.createElementVNode("div",s,[e.createElementVNode("div",c,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(5,(function(i){return e.createElementVNode("div",{class:"product",key:i},u)})),64))])])]))]})),i.loaded?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i.component),{key:0})):e.createCommentVNode("v-if",!0)],512)},module.exports=a;
|
|
2
2
|
//# sourceMappingURL=PromoProducts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PromoProducts.js","sources":["../../../src/components/shop/PromoProducts.vue","../../../src/components/shop/PromoProducts.vue?vue&type=template&id=bbd09982&lang.js"],"sourcesContent":["<template>\n <div ref=\"container\">\n <slot :loaded=\"loaded\">\n <section class=\"product-promo-block container is-fluid is-skeleton\" v-if=\"!loaded\">\n <div class=\"gradient\"></div>\n <div class=\"title slider-title\"> </div>\n <div class=\"is-faded-tabs\">\n <div class=\"is-flex\">\n <div class=\"swiper-slide\"> </div>\n <div class=\"swiper-slide\"> </div>\n </div>\n </div>\n <div class=\"swiper\">\n <div class=\"swiper-wrapper products is-slider\">\n <div class=\"product\" v-for=\"index in 5\" :key=\"index\">\n <div class=\"border\">\n <div class=\"wrapper\">\n <picture class=\"is-lazy-loaded\">\n <img class=\"lazy entered loaded\" src=\"/images/blank.png\" alt=\"skeleton\" />\n </picture>\n <div class=\"availability\"> </div>\n <div class=\"title\"> </div>\n <div class=\"prices\">\n <div class=\"price\"></div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </section>\n </slot>\n <component :is=\"component\" v-if=\"loaded\"></component>\n </div>\n</template>\n<script>\nimport { ref, nextTick, defineComponent } from 'vue';\nimport Swiper, { Navigation, Mousewheel, FreeMode } from 'swiper';\n\nexport default defineComponent({\n props: {\n id: Number,\n type: {\n type: String,\n default: 'promo-products'\n }\n },\n setup(props) {\n let inited = false;\n\n const loaded = ref(false);\n const container = ref(null);\n const component = ref(null);\n\n const callback = (entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n if (!inited) {\n inited = true;\n\n load();\n }\n }\n });\n };\n\n const load = () => {\n $http\n .post($ziggy('api.piece', { slug: props.type }), {\n id: props.id\n })\n .then((response) => {\n const componentName = 'piece-promo-products-' + props.id;\n\n window.app.component(componentName, {\n template: response.data ? response.data : '<i></i>'\n });\n\n component.value = componentName;\n loaded.value = true;\n\n nextTick(() => {\n const fadedTabs = container.value.querySelectorAll('.is-faded-tabs');\n\n if (fadedTabs.length) {\n fadedTabs.forEach((tab) => {\n new Swiper(tab.querySelector('.swiper'), {\n slidesPerView: 'auto',\n freeMode: {\n enabled: true\n },\n mousewheel: {\n forceToAxis: true\n },\n modules: [Navigation, Mousewheel, FreeMode]\n });\n });\n }\n\n const tabs = container.value.querySelectorAll('.is-faded-tabs .swiper-slide');\n const sliders = container.value.querySelectorAll('[products-slider]');\n\n tabs.forEach((tab, index) => {\n tab.addEventListener('click', () => {\n tabs.forEach((tab) => {\n tab.classList.remove('is-active');\n });\n\n sliders.forEach((slider) => {\n slider.classList.add('is-hidden');\n });\n\n sliders[index].classList.remove('is-hidden');\n tab.classList.add('is-active');\n });\n });\n\n if (sliders.length) {\n sliders.forEach((slider) => {\n new Swiper(slider, window.viewedSwiperOptions);\n });\n }\n\n if (window.lazyImages) {\n window.lazyImages.update();\n }\n\n if (window.promoCodeCallback && typeof window.promoCodeCallback === 'function') {\n window.promoCodeCallback(container.value);\n }\n });\n });\n };\n\n window.addEventListener('DOMContentLoaded', () => {\n new IntersectionObserver(callback, {\n threshold: 0.1\n }).observe(container.value);\n });\n\n return {\n container,\n component,\n loaded\n };\n }\n});\n</script>\n","<template>\n <div ref=\"container\">\n <slot :loaded=\"loaded\">\n <section class=\"product-promo-block container is-fluid is-skeleton\" v-if=\"!loaded\">\n <div class=\"gradient\"></div>\n <div class=\"title slider-title\"> </div>\n <div class=\"is-faded-tabs\">\n <div class=\"is-flex\">\n <div class=\"swiper-slide\"> </div>\n <div class=\"swiper-slide\"> </div>\n </div>\n </div>\n <div class=\"swiper\">\n <div class=\"swiper-wrapper products is-slider\">\n <div class=\"product\" v-for=\"index in 5\" :key=\"index\">\n <div class=\"border\">\n <div class=\"wrapper\">\n <picture class=\"is-lazy-loaded\">\n <img class=\"lazy entered loaded\" src=\"/images/blank.png\" alt=\"skeleton\" />\n </picture>\n <div class=\"availability\"> </div>\n <div class=\"title\"> </div>\n <div class=\"prices\">\n <div class=\"price\"></div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </section>\n </slot>\n <component :is=\"component\" v-if=\"loaded\"></component>\n </div>\n</template>\n<script>\nimport { ref, nextTick, defineComponent } from 'vue';\nimport Swiper, { Navigation, Mousewheel, FreeMode } from 'swiper';\n\nexport default defineComponent({\n props: {\n id: Number,\n type: {\n type: String,\n default: 'promo-products'\n }\n },\n setup(props) {\n let inited = false;\n\n const loaded = ref(false);\n const container = ref(null);\n const component = ref(null);\n\n const callback = (entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n if (!inited) {\n inited = true;\n\n load();\n }\n }\n });\n };\n\n const load = () => {\n $http\n .post($ziggy('api.piece', { slug: props.type }), {\n id: props.id\n })\n .then((response) => {\n const componentName = 'piece-promo-products-' + props.id;\n\n window.app.component(componentName, {\n template: response.data ? response.data : '<i></i>'\n });\n\n component.value = componentName;\n loaded.value = true;\n\n nextTick(() => {\n const fadedTabs = container.value.querySelectorAll('.is-faded-tabs');\n\n if (fadedTabs.length) {\n fadedTabs.forEach((tab) => {\n new Swiper(tab.querySelector('.swiper'), {\n slidesPerView: 'auto',\n freeMode: {\n enabled: true\n },\n mousewheel: {\n forceToAxis: true\n },\n modules: [Navigation, Mousewheel, FreeMode]\n });\n });\n }\n\n const tabs = container.value.querySelectorAll('.is-faded-tabs .swiper-slide');\n const sliders = container.value.querySelectorAll('[products-slider]');\n\n tabs.forEach((tab, index) => {\n tab.addEventListener('click', () => {\n tabs.forEach((tab) => {\n tab.classList.remove('is-active');\n });\n\n sliders.forEach((slider) => {\n slider.classList.add('is-hidden');\n });\n\n sliders[index].classList.remove('is-hidden');\n tab.classList.add('is-active');\n });\n });\n\n if (sliders.length) {\n sliders.forEach((slider) => {\n new Swiper(slider, window.viewedSwiperOptions);\n });\n }\n\n if (window.lazyImages) {\n window.lazyImages.update();\n }\n\n if (window.promoCodeCallback && typeof window.promoCodeCallback === 'function') {\n window.promoCodeCallback(container.value);\n }\n });\n });\n };\n\n window.addEventListener('DOMContentLoaded', () => {\n new IntersectionObserver(callback, {\n threshold: 0.1\n }).observe(container.value);\n });\n\n return {\n container,\n component,\n loaded\n };\n }\n});\n</script>\n"],"names":["script","defineComponent","props","id","Number","type","String","default","setup","inited","loaded","ref","container","component","callback","entries","forEach","entry","isIntersecting","load","$http","post","$ziggy","slug","then","response","componentName","window","app","template","data","value","nextTick","fadedTabs","querySelectorAll","length","tab","Swiper","querySelector","slidesPerView","freeMode","enabled","mousewheel","forceToAxis","modules","Navigation","Mousewheel","FreeMode","tabs","sliders","index","addEventListener","classList","remove","slider","add","viewedSwiperOptions","lazyImages","update","promoCodeCallback","IntersectionObserver","threshold","observe","_hoisted_1","class","_hoisted_6","_hoisted_7","_openBlock","openBlock","_createElementBlock","createElementBlock","_renderSlot","_ctx","$slots","_hoisted_2","_hoisted_3","_createElementVNode","_Fragment","Fragment","_renderList","key","_createBlock","_resolveDynamicComponent"],"mappings":"yIAuCAA,EAAeC,kBAAgB,CAC3BC,MAAO,CACHC,GAAIC,OACJC,KAAM,CACFA,KAAMC,OACNC,QAAS,mBAGjBC,MAAK,SAACN,GACF,IAAIO,GAAS,EAEPC,EAASC,OAAI,GACbC,EAAYD,MAAI,MAChBE,EAAYF,MAAI,MAEhBG,EAAW,SAACC,GACdA,EAAQC,SAAQ,SAACC,GACTA,EAAMC,iBACDT,IACDA,GAAS,EAETU,UAMVA,EAAO,WACTC,MACKC,KAAKC,OAAO,YAAa,CAAEC,KAAMrB,EAAMG,OAAS,CAC7CF,GAAID,EAAMC,KAEbqB,MAAK,SAACC,GACH,IAAMC,EAAgB,wBAA0BxB,EAAMC,GAEtDwB,OAAOC,IAAIf,UAAUa,EAAe,CAChCG,SAAUJ,EAASK,KAAOL,EAASK,KAAO,YAG9CjB,EAAUkB,MAAQL,EAClBhB,EAAOqB,OAAQ,EAEfC,EAAAA,UAAS,WACL,IAAMC,EAAYrB,EAAUmB,MAAMG,iBAAiB,kBAE/CD,EAAUE,QACVF,EAAUjB,SAAQ,SAACoB,GACf,IAAIC,UAAOD,EAAIE,cAAc,WAAY,CACrCC,cAAe,OACfC,SAAU,CACNC,SAAS,GAEbC,WAAY,CACRC,aAAa,GAEjBC,QAAS,CAACC,EAAAA,WAAYC,EAAUA,WAAEC,iBAK9C,IAAMC,EAAOpC,EAAUmB,MAAMG,iBAAiB,gCACxCe,EAAUrC,EAAUmB,MAAMG,iBAAiB,qBAEjDc,EAAKhC,SAAQ,SAACoB,EAAKc,GACfd,EAAIe,iBAAiB,SAAS,WAC1BH,EAAKhC,SAAQ,SAACoB,GACVA,EAAIgB,UAAUC,OAAO,gBAGzBJ,EAAQjC,SAAQ,SAACsC,GACbA,EAAOF,UAAUG,IAAI,gBAGzBN,EAAQC,GAAOE,UAAUC,OAAO,aAChCjB,EAAIgB,UAAUG,IAAI,mBAItBN,EAAQd,QACRc,EAAQjC,SAAQ,SAACsC,GACb,IAAIjB,UAAOiB,EAAQ3B,OAAO6B,wBAI9B7B,OAAO8B,YACP9B,OAAO8B,WAAWC,SAGlB/B,OAAOgC,mBAAyD,mBAA7BhC,OAAOgC,mBAC1ChC,OAAOgC,kBAAkB/C,EAAUmB,cAYvD,OANAJ,OAAOwB,iBAAiB,oBAAoB,WACxC,IAAIS,qBAAqB9C,EAAU,CAC/B+C,UAAW,KACZC,QAAQlD,EAAUmB,UAGlB,CACHnB,UAAAA,EACAC,UAAAA,EACAH,OAAAA,MC9IHqD,EAAA,CAAApD,IAAI,sBAEQqD,MAAM,mRASNC,EAAA,CAAAD,MAAM,UACFE,EAAA,CAAAF,MAAM,uXAZ3B,OAAAG,EAAAC,YAAAC,EAAAC,mBAgCK,MAhCLP,EAgCK,CA/BDQ,aA6BMC,EA7BCC,OAAA,UAAA,CAAA/D,OAAQ8D,EAAA9D,SAAf,WAAA,MA6BM,CA5ByE8D,EAAM9D,wCAAjFyD,EAAAC,YAAAC,EAAAA,mBA2BS,UA3BTK,EA2BS,CA1BLC,EAQAC,EAAAA,mBAiBK,MAjBLX,EAiBK,CAhBDW,EAAAA,mBAeK,MAfLV,EAeK,gBAdDG,EAAAA,mBAaKQ,EAAAC,SAAA,KAAAC,EAAAA,WAbgC,GAAC,SAAV7B,UAA5B0B,EAAAA,mBAaK,MAAA,CAbAZ,MAAM,UAA8BgB,IAAK9B,yBAkB7BsB,EAAM9D,QAAvCyD,EAAAC,YAAAa,EAAAA,YAAoDC,0BAApCV,EAAS3D,WAAA,CAAAmE,IAAA"}
|
|
1
|
+
{"version":3,"file":"PromoProducts.js","sources":["../../../src/components/shop/PromoProducts.vue","../../../src/components/shop/PromoProducts.vue?vue&type=template&id=84eddc4a&lang.js"],"sourcesContent":["<template>\n <div ref=\"container\">\n <slot :loaded=\"loaded\">\n <section class=\"product-promo-block container is-fluid is-skeleton\" v-if=\"!loaded\">\n <div class=\"gradient\"></div>\n <div class=\"title slider-title\"> </div>\n <div class=\"is-faded-tabs\">\n <div class=\"is-flex\">\n <div class=\"swiper-slide\"> </div>\n <div class=\"swiper-slide\"> </div>\n </div>\n </div>\n <div class=\"swiper\">\n <div class=\"swiper-wrapper products is-slider\">\n <div class=\"product\" v-for=\"index in 5\" :key=\"index\">\n <div class=\"border\">\n <div class=\"wrapper\">\n <picture class=\"is-lazy-loaded\">\n <img class=\"lazy entered loaded\" src=\"/images/blank.png\" alt=\"skeleton\" />\n </picture>\n <div class=\"availability\"> </div>\n <div class=\"title\"> </div>\n <div class=\"prices\">\n <div class=\"price\"></div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </section>\n </slot>\n <component :is=\"component\" v-if=\"loaded\"></component>\n </div>\n</template>\n<script>\nimport { ref, nextTick, defineComponent } from 'vue';\nimport Swiper from 'swiper';\nimport { Navigation, Mousewheel, FreeMode } from 'swiper/modules';\n\nexport default defineComponent({\n props: {\n id: Number,\n type: {\n type: String,\n default: 'promo-products'\n }\n },\n setup(props) {\n let inited = false;\n\n const loaded = ref(false);\n const container = ref(null);\n const component = ref(null);\n\n const callback = (entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n if (!inited) {\n inited = true;\n\n load();\n }\n }\n });\n };\n\n const load = () => {\n $http\n .post($ziggy('api.piece', { slug: props.type }), {\n id: props.id\n })\n .then((response) => {\n const componentName = 'piece-promo-products-' + props.id;\n\n window.app.component(componentName, {\n template: response.data ? response.data : '<i></i>'\n });\n\n component.value = componentName;\n loaded.value = true;\n\n nextTick(() => {\n const fadedTabs = container.value.querySelectorAll('.is-faded-tabs');\n\n if (fadedTabs.length) {\n fadedTabs.forEach((tab) => {\n new Swiper(tab.querySelector('.swiper'), {\n slidesPerView: 'auto',\n freeMode: {\n enabled: true\n },\n mousewheel: {\n forceToAxis: true\n },\n modules: [Navigation, Mousewheel, FreeMode]\n });\n });\n }\n\n const tabs = container.value.querySelectorAll('.is-faded-tabs .swiper-slide');\n const sliders = container.value.querySelectorAll('[products-slider]');\n\n tabs.forEach((tab, index) => {\n tab.addEventListener('click', () => {\n tabs.forEach((tab) => {\n tab.classList.remove('is-active');\n });\n\n sliders.forEach((slider) => {\n slider.classList.add('is-hidden');\n });\n\n sliders[index].classList.remove('is-hidden');\n tab.classList.add('is-active');\n });\n });\n\n if (sliders.length) {\n sliders.forEach((slider) => {\n new Swiper(slider, window.viewedSwiperOptions);\n });\n }\n\n if (window.lazyImages) {\n window.lazyImages.update();\n }\n\n if (window.promoCodeCallback && typeof window.promoCodeCallback === 'function') {\n window.promoCodeCallback(container.value);\n }\n });\n });\n };\n\n window.addEventListener('DOMContentLoaded', () => {\n new IntersectionObserver(callback, {\n threshold: 0.1\n }).observe(container.value);\n });\n\n return {\n container,\n component,\n loaded\n };\n }\n});\n</script>\n","<template>\n <div ref=\"container\">\n <slot :loaded=\"loaded\">\n <section class=\"product-promo-block container is-fluid is-skeleton\" v-if=\"!loaded\">\n <div class=\"gradient\"></div>\n <div class=\"title slider-title\"> </div>\n <div class=\"is-faded-tabs\">\n <div class=\"is-flex\">\n <div class=\"swiper-slide\"> </div>\n <div class=\"swiper-slide\"> </div>\n </div>\n </div>\n <div class=\"swiper\">\n <div class=\"swiper-wrapper products is-slider\">\n <div class=\"product\" v-for=\"index in 5\" :key=\"index\">\n <div class=\"border\">\n <div class=\"wrapper\">\n <picture class=\"is-lazy-loaded\">\n <img class=\"lazy entered loaded\" src=\"/images/blank.png\" alt=\"skeleton\" />\n </picture>\n <div class=\"availability\"> </div>\n <div class=\"title\"> </div>\n <div class=\"prices\">\n <div class=\"price\"></div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </section>\n </slot>\n <component :is=\"component\" v-if=\"loaded\"></component>\n </div>\n</template>\n<script>\nimport { ref, nextTick, defineComponent } from 'vue';\nimport Swiper from 'swiper';\nimport { Navigation, Mousewheel, FreeMode } from 'swiper/modules';\n\nexport default defineComponent({\n props: {\n id: Number,\n type: {\n type: String,\n default: 'promo-products'\n }\n },\n setup(props) {\n let inited = false;\n\n const loaded = ref(false);\n const container = ref(null);\n const component = ref(null);\n\n const callback = (entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n if (!inited) {\n inited = true;\n\n load();\n }\n }\n });\n };\n\n const load = () => {\n $http\n .post($ziggy('api.piece', { slug: props.type }), {\n id: props.id\n })\n .then((response) => {\n const componentName = 'piece-promo-products-' + props.id;\n\n window.app.component(componentName, {\n template: response.data ? response.data : '<i></i>'\n });\n\n component.value = componentName;\n loaded.value = true;\n\n nextTick(() => {\n const fadedTabs = container.value.querySelectorAll('.is-faded-tabs');\n\n if (fadedTabs.length) {\n fadedTabs.forEach((tab) => {\n new Swiper(tab.querySelector('.swiper'), {\n slidesPerView: 'auto',\n freeMode: {\n enabled: true\n },\n mousewheel: {\n forceToAxis: true\n },\n modules: [Navigation, Mousewheel, FreeMode]\n });\n });\n }\n\n const tabs = container.value.querySelectorAll('.is-faded-tabs .swiper-slide');\n const sliders = container.value.querySelectorAll('[products-slider]');\n\n tabs.forEach((tab, index) => {\n tab.addEventListener('click', () => {\n tabs.forEach((tab) => {\n tab.classList.remove('is-active');\n });\n\n sliders.forEach((slider) => {\n slider.classList.add('is-hidden');\n });\n\n sliders[index].classList.remove('is-hidden');\n tab.classList.add('is-active');\n });\n });\n\n if (sliders.length) {\n sliders.forEach((slider) => {\n new Swiper(slider, window.viewedSwiperOptions);\n });\n }\n\n if (window.lazyImages) {\n window.lazyImages.update();\n }\n\n if (window.promoCodeCallback && typeof window.promoCodeCallback === 'function') {\n window.promoCodeCallback(container.value);\n }\n });\n });\n };\n\n window.addEventListener('DOMContentLoaded', () => {\n new IntersectionObserver(callback, {\n threshold: 0.1\n }).observe(container.value);\n });\n\n return {\n container,\n component,\n loaded\n };\n }\n});\n</script>\n"],"names":["script","defineComponent","props","id","Number","type","String","default","setup","inited","loaded","ref","container","component","callback","entries","forEach","entry","isIntersecting","load","$http","post","$ziggy","slug","then","response","componentName","window","app","template","data","value","nextTick","fadedTabs","querySelectorAll","length","tab","Swiper","querySelector","slidesPerView","freeMode","enabled","mousewheel","forceToAxis","modules","Navigation","Mousewheel","FreeMode","tabs","sliders","index","addEventListener","classList","remove","slider","add","viewedSwiperOptions","lazyImages","update","promoCodeCallback","IntersectionObserver","threshold","observe","_hoisted_1","class","_hoisted_6","_hoisted_7","_openBlock","openBlock","_createElementBlock","createElementBlock","_renderSlot","_ctx","$slots","_hoisted_2","_hoisted_3","_createElementVNode","_Fragment","Fragment","_renderList","key","_createBlock","_resolveDynamicComponent"],"mappings":"qKAwCAA,EAAeC,kBAAgB,CAC3BC,MAAO,CACHC,GAAIC,OACJC,KAAM,CACFA,KAAMC,OACNC,QAAS,mBAGjBC,MAAK,SAACN,GACF,IAAIO,GAAS,EAEPC,EAASC,OAAI,GACbC,EAAYD,MAAI,MAChBE,EAAYF,MAAI,MAEhBG,EAAW,SAACC,GACdA,EAAQC,SAAQ,SAACC,GACTA,EAAMC,iBACDT,IACDA,GAAS,EAETU,UAMVA,EAAO,WACTC,MACKC,KAAKC,OAAO,YAAa,CAAEC,KAAMrB,EAAMG,OAAS,CAC7CF,GAAID,EAAMC,KAEbqB,MAAK,SAACC,GACH,IAAMC,EAAgB,wBAA0BxB,EAAMC,GAEtDwB,OAAOC,IAAIf,UAAUa,EAAe,CAChCG,SAAUJ,EAASK,KAAOL,EAASK,KAAO,YAG9CjB,EAAUkB,MAAQL,EAClBhB,EAAOqB,OAAQ,EAEfC,EAAAA,UAAS,WACL,IAAMC,EAAYrB,EAAUmB,MAAMG,iBAAiB,kBAE/CD,EAAUE,QACVF,EAAUjB,SAAQ,SAACoB,GACf,IAAIC,UAAOD,EAAIE,cAAc,WAAY,CACrCC,cAAe,OACfC,SAAU,CACNC,SAAS,GAEbC,WAAY,CACRC,aAAa,GAEjBC,QAAS,CAACC,EAAAA,WAAYC,EAAUA,WAAEC,iBAK9C,IAAMC,EAAOpC,EAAUmB,MAAMG,iBAAiB,gCACxCe,EAAUrC,EAAUmB,MAAMG,iBAAiB,qBAEjDc,EAAKhC,SAAQ,SAACoB,EAAKc,GACfd,EAAIe,iBAAiB,SAAS,WAC1BH,EAAKhC,SAAQ,SAACoB,GACVA,EAAIgB,UAAUC,OAAO,gBAGzBJ,EAAQjC,SAAQ,SAACsC,GACbA,EAAOF,UAAUG,IAAI,gBAGzBN,EAAQC,GAAOE,UAAUC,OAAO,aAChCjB,EAAIgB,UAAUG,IAAI,mBAItBN,EAAQd,QACRc,EAAQjC,SAAQ,SAACsC,GACb,IAAIjB,UAAOiB,EAAQ3B,OAAO6B,wBAI9B7B,OAAO8B,YACP9B,OAAO8B,WAAWC,SAGlB/B,OAAOgC,mBAAyD,mBAA7BhC,OAAOgC,mBAC1ChC,OAAOgC,kBAAkB/C,EAAUmB,cAYvD,OANAJ,OAAOwB,iBAAiB,oBAAoB,WACxC,IAAIS,qBAAqB9C,EAAU,CAC/B+C,UAAW,KACZC,QAAQlD,EAAUmB,UAGlB,CACHnB,UAAAA,EACAC,UAAAA,EACAH,OAAAA,MC/IHqD,EAAA,CAAApD,IAAI,sBAEQqD,MAAM,mRASNC,EAAA,CAAAD,MAAM,UACFE,EAAA,CAAAF,MAAM,uXAZ3B,OAAAG,EAAAC,YAAAC,EAAAC,mBAgCK,MAhCLP,EAgCK,CA/BDQ,aA6BMC,EA7BCC,OAAA,UAAA,CAAA/D,OAAQ8D,EAAA9D,SAAf,WAAA,MA6BM,CA5ByE8D,EAAM9D,wCAAjFyD,EAAAC,YAAAC,EAAAA,mBA2BS,UA3BTK,EA2BS,CA1BLC,EAQAC,EAAAA,mBAiBK,MAjBLX,EAiBK,CAhBDW,EAAAA,mBAeK,MAfLV,EAeK,gBAdDG,EAAAA,mBAaKQ,EAAAC,SAAA,KAAAC,EAAAA,WAbgC,GAAC,SAAV7B,UAA5B0B,EAAAA,mBAaK,MAAA,CAbAZ,MAAM,UAA8BgB,IAAK9B,yBAkB7BsB,EAAM9D,QAAvCyD,EAAAC,YAAAa,EAAAA,YAAoDC,0BAApCV,EAAS3D,WAAA,CAAAmE,IAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("vue"),t=require("vuex"),n=require("@perevorot/shop/dist/helpers"),l=require("swiper");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=o(l),c=e.defineComponent({name:"cart",props:{isModal:{type:Boolean,default:!0},cartStorage:{type:String,default:"cart"}},setup:function(o){var c=t.useStore(),a=e.ref(!1),s=o.cartStorage;e.provide("cartStorage",s);var i=e.computed((function(){return c.getters[s+"/items"]})),d=e.computed((function(){return c.getters[s+"/modal"]})),u=e.computed((function(){return c.getters[s+"/total"]})),m=e.computed((function(){return c.getters[s+"/quantity"]})),p=function(){c.commit(s+"/modal",null)};c.dispatch(s+"/get",{cart:s,finally:function(){}}),document.body.addEventListener("click",(function(e){d.value&&!e.target.closest(".cart")&&p()})),window.addEventListener("keyup",(function(e){d.value&&"Escape"===e.key&&p()}));var v,E,k=e.ref(null),N=e.ref(null),V=e.ref(null),f=e.computed((function(){var e=c.getters[s+"/cross"];return k.value&&(v&&v.destroy(),e.length&&(v=new r.default(k.value,{slidesPerView:1,slidesPerGroup:1,breakpoints:{768:{slidesPerView:2,slidesPerGroup:2}},spaceBetween:0,allowTouchMove:!0,modules:[l.Navigation],mousewheel:{forceToAxis:!0},navigation:{nextEl:N.value,prevEl:V.value}}))),e})),g=e.ref(null),h=e.ref(null),y=e.ref(null),w=e.computed((function(){var e=c.getters[s+"/bundles"];return g.value&&(E&&E.destroy(),e.length&&(E=new r.default(g.value,{slidesPerView:1,spaceBetween:0,allowTouchMove:!0,mousewheel:{forceToAxis:!0},navigation:{nextEl:h.value,prevEl:y.value}}))),e}));window.addEventListener("beforeunload",(function(){c.commit(s+"/modal",null)})),window.addEventListener("pagehide",(function(){c.commit(s+"/modal",null)}));var B=e.ref(!1);return{loading:a,items:i,modal:d,total:u,quantity:m,open:function(){c.commit(s+"/modal",d.value?null:"cart")},close:p,clear:function(){a.value=!0,c.dispatch(s+"/clear",{cart:s,finally:function(){a.value=!1}})},pluralize:n.pluralize,goto:function(e){window.addEventListener("beforeunload",(function(){c.commit(s+"/modal",null)})),window.addEventListener("pagehide",(function(){c.commit(s+"/modal",null)})),window.location.href=e},cross:f,crossSlider:k,crossSliderPrev:V,crossSliderNext:N,bundles:w,bundlesSlider:g,bundlesSliderPrev:y,bundlesSliderNext:h,checkout:function(){B.value=!0,window.location.href=$ziggy("shop.checkout")},isLoading:B}}}),a={class:"dropdown is-right is-hoverable"},s={class:"dropdown-trigger"},i=e.createElementVNode("i",{class:"fas fa-shopping-cart"},null,-1),d=e.createElementVNode("span",{class:"icon is-small"},[e.createElementVNode("i",{class:"fas fa-angle-down","aria-hidden":"true"})],-1),u={class:"dropdown-menu",role:"menu"},m={key:0,class:"dropdown-content"},p={class:"dropdown-item"},v={class:"columns"},E={class:"column"},k=["innerHTML"],N=e.createElementVNode("div",{class:"dropdown-divider"},null,-1),V={class:"dropdown-item has-text-centered"},f={class:"dropdown-item has-text-centered"},g={key:1,class:"dropdown-content"},h={class:"dropdown-item"},y={class:"modal-content"},w=[e.createElementVNode("svg",{class:"icon close"},[e.createElementVNode("use",{"xlink:href":"#close"})],-1)],B={class:"box"},b={class:"cart-title"},C=["textContent"],S={key:0,class:"items-wrapper"},_={class:"items"},x={class:"columns is-gapless is-vcentered main-actions"},L={class:"column"},T={class:"column has-text-right"},M={class:"totals"},D={class:"title"},H=["innerHTML"],$={class:"column is-narrow"},q={key:0,class:"cross"},z={class:"title"},P={class:"swiper",ref:"crossSlider"},F={class:"swiper-wrapper"},O={class:"columns is-gapless"},A={class:"column is-narrow"},G=["onClick"],j=["src"],R={key:1},I=[e.createElementVNode("use",{"xlink:href":"#logo"},null,-1)],J={class:"column"},K=["data-code"],Q={class:"name"},U=["onClick"],W={class:"columns is-gapless is-vcentered"},X={class:"column is-narrow"},Y={class:"prices"},Z=["innerHTML"],ee=["innerHTML"],te={class:"column"},ne=e.createElementVNode("svg",null,[e.createElementVNode("use",{"xlink:href":"#cart-alternate"})],-1),le={class:"swiper-nav prev",ref:"crossSliderPrev"},oe=[e.createElementVNode("use",{"xlink:href":"#arrow-submenu"},null,-1)],re={class:"swiper-nav next",ref:"crossSliderNext"},ce=[e.createElementVNode("use",{"xlink:href":"#arrow-submenu"},null,-1)],ae={key:1,class:"bundles"},se={class:"title"},ie={class:"swiper",ref:"bundlesSlider"},de={class:"swiper-wrapper"},ue={class:"column is-narrow"},me=["onClick"],pe=["src"],ve={key:1},Ee=[e.createElementVNode("use",{"xlink:href":"#logo"},null,-1)],ke={class:"column"},Ne={class:"product"},Ve={class:"name"},fe=["onClick"],ge={class:"columns is-gapless is-vcentered"},he={class:"prices"},ye=["innerHTML"],we=e.createElementVNode("div",{class:"column is-narrow"},[e.createElementVNode("svg",{class:"bundle-icon plus"},[e.createElementVNode("use",{"xlink:href":"#bundle-plus"})])],-1),Be={class:"column is-narrow"},be=["onClick"],Ce=["src"],Se={key:1},_e=[e.createElementVNode("use",{"xlink:href":"#logo"},null,-1)],xe={class:"column"},Le={class:"product"},Te={class:"name"},Me=["onClick"],De={class:"columns is-gapless is-vcentered"},He={class:"prices"},$e=["innerHTML"],qe={key:0,class:"column is-narrow"},ze=[e.createElementVNode("svg",{class:"bundle-icon plus"},[e.createElementVNode("use",{"xlink:href":"#bundle-plus"})],-1)],Pe={key:1,class:"column is-narrow"},Fe=["onClick"],Oe=["src"],Ae={key:1},Ge=[e.createElementVNode("use",{"xlink:href":"#logo"},null,-1)],je={key:2,class:"column"},Re={class:"product"},Ie={class:"name"},Je=["onClick"],Ke={class:"columns is-gapless is-vcentered"},Qe={class:"prices"},Ue=["innerHTML"],We={class:"columns is-vcentered"},Xe={class:"column"},Ye=["innerHTML"],Ze=["innerHTML"],et={class:"column"},tt={class:"is-flex is-align-items-center"},nt=["innerHTML"],lt={class:"swiper-nav prev",ref:"bundlesSliderPrev"},ot=[e.createElementVNode("use",{"xlink:href":"#arrow-submenu"},null,-1)],rt={class:"swiper-nav next",ref:"bundlesSliderNext"},ct=[e.createElementVNode("use",{"xlink:href":"#arrow-submenu"},null,-1)],at={key:1,class:"empty"},st={class:"title"},it={class:"message"},dt=["href"],ut=e.createElementVNode("br",null,null,-1),mt={class:"viewed-wrapper"};c.render=function(t,n,l,o,r,c){var pt=e.resolveComponent("cart-item"),vt=e.resolveComponent("cart-add"),Et=e.resolveComponent("bundle-add"),kt=e.resolveComponent("viewed");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["cart",{"is-open":t.modal}])},[e.createElementVNode("div",a,[e.createElementVNode("div",s,[e.renderSlot(t.$slots,"default",{total:t.quantity,open:t.open},(function(){return[e.createElementVNode("button",{class:"button",onClick:n[0]||(n[0]=function(){return t.open&&t.open.apply(t,arguments)})},[e.createElementVNode("span",null,[i,e.createTextVNode(" "+e.toDisplayString(t.quantity),1)]),d])]}))]),e.createElementVNode("div",u,[t.items.length?(e.openBlock(),e.createElementBlock("div",m,[e.createElementVNode("div",p,[e.createElementVNode("div",v,[e.createElementVNode("div",E,e.toDisplayString(t.__("shop.cart.total")),1),e.createElementVNode("div",{class:"column has-text-right",innerHTML:t.$filters.price(t.total)},null,8,k)])]),N,e.createElementVNode("div",V,[e.createElementVNode("a",{onClick:n[1]||(n[1]=function(){return t.checkout&&t.checkout.apply(t,arguments)}),class:e.normalizeClass(["button is-link",{"is-disabled":t.isLoading}])},e.toDisplayString(t.__("shop.cart.checkout")),3)]),e.createElementVNode("div",f,[e.renderSlot(t.$slots,"open",{open:t.open},(function(){return[e.createElementVNode("a",{onClick:n[2]||(n[2]=function(){return t.open&&t.open.apply(t,arguments)})},e.toDisplayString(t.__("shop.cart.open")),1)]}))])])):(e.openBlock(),e.createElementBlock("div",g,[e.renderSlot(t.$slots,"empty",{},(function(){return[e.createElementVNode("div",h,e.toDisplayString(t.__("shop.cart.empty")),1)]}))]))])]),t.isModal?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["modal",{"is-active":t.modal}])},[e.createElementVNode("div",{class:"modal-background",onClick:n[3]||(n[3]=function(){return t.close&&t.close.apply(t,arguments)})}),e.createElementVNode("div",y,[e.createElementVNode("button",{class:"modal-close is-large",onClick:n[4]||(n[4]=function(){return t.close&&t.close.apply(t,arguments)})},w),e.createElementVNode("div",B,[e.renderSlot(t.$slots,"cart-title",{quantity:t.quantity},(function(){return[e.createElementVNode("div",b,[e.createTextVNode(e.toDisplayString(t.__("shop.cart.title"))+" ",1),t.quantity?(e.openBlock(),e.createElementBlock("span",{key:0,textContent:e.toDisplayString(t.pluralize(t.quantity,t.__("shop.pluralize.products")))},null,8,C)):e.createCommentVNode("v-if",!0)])]})),e.renderSlot(t.$slots,"clear",{clear:t.clear,quantity:t.quantity}),t.items.length?(e.openBlock(),e.createElementBlock("div",S,[e.createElementVNode("div",_,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(function(n){return e.openBlock(),e.createBlock(pt,{key:n.id,item:n},e.createSlots({_:2},[e.renderList(t.$slots,(function(n,l){return{name:l,fn:e.withCtx((function(n){return[e.renderSlot(t.$slots,l,e.normalizeProps(e.guardReactiveProps(n||{})))]}))}}))]),1032,["item"])})),128))]),e.createElementVNode("div",x,[e.createElementVNode("div",L,[e.createElementVNode("button",{class:"button continue",onClick:n[5]||(n[5]=function(){return t.close&&t.close.apply(t,arguments)})},e.toDisplayString(t.__("shop.cart.continue")),1)]),e.createElementVNode("div",T,[e.createElementVNode("div",M,[e.createElementVNode("div",D,[e.createTextVNode(e.toDisplayString(t.__("shop.cart.total"))+" ",1),e.createElementVNode("span",{innerHTML:t.$filters.price(t.total)},null,8,H)])]),e.renderSlot(t.$slots,"loyalty",{pluralize:t.pluralize,items:t.items})]),e.createElementVNode("div",$,[e.createElementVNode("a",{onClick:n[6]||(n[6]=function(){return t.checkout&&t.checkout.apply(t,arguments)}),class:"button is-link checkout"},e.toDisplayString(t.__("shop.cart.go_checkout")),1)])]),t.cross.length?(e.openBlock(),e.createElementBlock("div",q,[e.createElementVNode("div",z,e.toDisplayString(t.__("shop.cart.cross")),1),e.createElementVNode("div",P,[e.createElementVNode("div",F,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.cross,(function(n){return e.openBlock(),e.createElementBlock("div",{class:"swiper-slide",key:n.id},[e.createElementVNode("div",O,[e.createElementVNode("div",A,[e.createElementVNode("a",{onClick:function(e){return t.goto(n.href)}},[e.createElementVNode("figure",{class:e.normalizeClass(["image is-square",{"no-thumb":!n.image}])},[n.image?(e.openBlock(),e.createElementBlock("img",{key:0,src:n.image},null,8,j)):(e.openBlock(),e.createElementBlock("svg",R,I))],2)],8,G)]),e.createElementVNode("div",J,[e.createElementVNode("div",{class:"product","data-code":n.code,"shop-product":""},[e.createElementVNode("div",Q,[e.createElementVNode("a",{onClick:function(e){return t.goto(n.href)},"shop-product-name":""},e.toDisplayString(n.name),9,U)]),e.createElementVNode("div",W,[e.createElementVNode("div",X,[e.createElementVNode("div",Y,[n.priceOld?(e.openBlock(),e.createElementBlock("div",{key:0,class:"price-old",innerHTML:t.$filters.price(n.priceOld)},null,8,Z)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{class:"price",innerHTML:t.$filters.price(n.price),"shop-product-price":""},null,8,ee)])]),e.createElementVNode("div",te,[e.createVNode(vt,{id:n.id,"is-simple":!0},{default:e.withCtx((function(){return[ne]})),_:2},1032,["id"])])])],8,K)])])])})),128))]),(e.openBlock(),e.createElementBlock("svg",le,oe,512)),(e.openBlock(),e.createElementBlock("svg",re,ce,512))],512)])):e.createCommentVNode("v-if",!0),t.bundles.length?(e.openBlock(),e.createElementBlock("div",ae,[e.createElementVNode("div",se,e.toDisplayString(t.__("shop.cart.bundle")),1),e.createElementVNode("div",ie,[e.createElementVNode("div",de,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.bundles,(function(n){return e.openBlock(),e.createElementBlock("div",{class:"swiper-slide",key:n.id},[e.createElementVNode("div",{class:e.normalizeClass(["columns is-gapless is-vcentered",{"is-third":n.third}])},[e.createElementVNode("div",ue,[e.createElementVNode("a",{onClick:function(e){return t.goto(n.href)}},[e.createElementVNode("figure",{class:e.normalizeClass(["image is-square",{"no-thumb":!n.image}])},[n.image?(e.openBlock(),e.createElementBlock("img",{key:0,src:n.image},null,8,pe)):(e.openBlock(),e.createElementBlock("svg",ve,Ee))],2)],8,me)]),e.createElementVNode("div",ke,[e.createElementVNode("div",Ne,[e.createElementVNode("div",Ve,[e.createElementVNode("a",{onClick:function(e){return t.goto(n.href)}},e.toDisplayString(n.name),9,fe)]),e.createElementVNode("div",ge,[e.createElementVNode("div",he,[e.createElementVNode("div",{class:"price",innerHTML:t.$filters.price(n.price)},null,8,ye)])])])]),we,e.createElementVNode("div",Be,[e.createElementVNode("a",{onClick:function(e){return t.goto(n.second.href)}},[e.createElementVNode("figure",{class:e.normalizeClass(["image is-square",{"no-thumb":!n.second.image}])},[n.second.image?(e.openBlock(),e.createElementBlock("img",{key:0,src:n.second.image},null,8,Ce)):(e.openBlock(),e.createElementBlock("svg",Se,_e))],2)],8,be)]),e.createElementVNode("div",xe,[e.createElementVNode("div",Le,[e.createElementVNode("div",Te,[e.createElementVNode("a",{onClick:function(e){return t.goto(n.second.href)}},e.toDisplayString(n.second.name),9,Me)]),e.createElementVNode("div",De,[e.createElementVNode("div",He,[e.createElementVNode("div",{class:"price",innerHTML:t.$filters.price(n.second.price)},null,8,$e)])])])]),n.third?(e.openBlock(),e.createElementBlock("div",qe,ze)):e.createCommentVNode("v-if",!0),n.third?(e.openBlock(),e.createElementBlock("div",Pe,[e.createElementVNode("a",{onClick:function(e){return t.goto(n.third.href)}},[e.createElementVNode("figure",{class:e.normalizeClass(["image is-square",{"no-thumb":!n.third.image}])},[n.third.image?(e.openBlock(),e.createElementBlock("img",{key:0,src:n.third.image},null,8,Oe)):(e.openBlock(),e.createElementBlock("svg",Ae,Ge))],2)],8,Fe)])):e.createCommentVNode("v-if",!0),n.third?(e.openBlock(),e.createElementBlock("div",je,[e.createElementVNode("div",Re,[e.createElementVNode("div",Ie,[e.createElementVNode("a",{onClick:function(e){return t.goto(n.third.href)}},e.toDisplayString(n.third.name),9,Je)]),e.createElementVNode("div",Ke,[e.createElementVNode("div",Qe,[e.createElementVNode("div",{class:"price",innerHTML:t.$filters.price(n.third.price)},null,8,Ue)])])])])):e.createCommentVNode("v-if",!0)],2),e.createElementVNode("div",We,[e.createElementVNode("div",Xe,[e.createElementVNode("span",{class:"total-old",innerHTML:t.$filters.price(n.bundle.priceOld)},null,8,Ye),e.createElementVNode("span",{class:"bundle-amount",innerHTML:t.__("shop.cart.bundle_amount")+n.bundle.amount},null,8,Ze)]),e.createElementVNode("div",et,[e.createElementVNode("div",tt,[e.createElementVNode("span",{class:"total",innerHTML:t.$filters.price(n.bundle.price)},null,8,nt),e.createVNode(Et,{id:n.id,second:n.second.id,third:n.third?n.third.id:null},null,8,["id","second","third"])])])])])})),128))])],512),(e.openBlock(),e.createElementBlock("svg",lt,ot,512)),(e.openBlock(),e.createElementBlock("svg",rt,ct,512))])):e.createCommentVNode("v-if",!0)])):(e.openBlock(),e.createElementBlock("div",at,[e.createElementVNode("div",st,e.toDisplayString(t.__("shop.cart.no_no")),1),e.createElementVNode("div",it,[e.createTextVNode(e.toDisplayString(t.__("shop.cart.no_prop"))+" ",1),e.createElementVNode("a",{href:t.$env.locale.url?t.$env.locale.url:"/"},e.toDisplayString(t.__("shop.cart.no_home")),9,dt),e.createTextVNode(", "),ut,e.createTextVNode(e.toDisplayString(t.__("shop.cart.no_search")),1)]),e.createElementVNode("button",{class:"button continue",onClick:n[7]||(n[7]=function(){return t.close&&t.close.apply(t,arguments)})},e.toDisplayString(t.__("shop.cart.continue")),1),e.createElementVNode("div",mt,[e.createVNode(kt,{slider:!0})])]))])])],2)):e.createCommentVNode("v-if",!0)],2)},module.exports=c;
|
|
1
|
+
"use strict";var e=require("vue"),t=require("vuex"),l=require("@perevorot/shop/dist/helpers"),n=require("swiper"),o=require("swiper/modules");function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var c=r(n),a=e.defineComponent({name:"cart",props:{isModal:{type:Boolean,default:!0},cartStorage:{type:String,default:"cart"}},setup:function(n){var r=t.useStore(),a=e.ref(!1),s=n.cartStorage;e.provide("cartStorage",s);var i=e.computed((function(){return r.getters[s+"/items"]})),d=e.computed((function(){return r.getters[s+"/modal"]})),u=e.computed((function(){return r.getters[s+"/total"]})),m=e.computed((function(){return r.getters[s+"/quantity"]})),p=function(){r.commit(s+"/modal",null)};r.dispatch(s+"/get",{cart:s,finally:function(){}}),document.body.addEventListener("click",(function(e){d.value&&!e.target.closest(".cart")&&p()})),window.addEventListener("keyup",(function(e){d.value&&"Escape"===e.key&&p()}));var v,E,k=e.ref(null),N=e.ref(null),V=e.ref(null),f=e.computed((function(){var e=r.getters[s+"/cross"];return k.value&&(v&&v.destroy(),e.length&&(v=new c.default(k.value,{slidesPerView:1,slidesPerGroup:1,breakpoints:{768:{slidesPerView:2,slidesPerGroup:2}},spaceBetween:0,allowTouchMove:!0,modules:[o.Navigation],mousewheel:{forceToAxis:!0},navigation:{nextEl:N.value,prevEl:V.value}}))),e})),g=e.ref(null),h=e.ref(null),y=e.ref(null),w=e.computed((function(){var e=r.getters[s+"/bundles"];return g.value&&(E&&E.destroy(),e.length&&(E=new c.default(g.value,{slidesPerView:1,spaceBetween:0,allowTouchMove:!0,mousewheel:{forceToAxis:!0},navigation:{nextEl:h.value,prevEl:y.value}}))),e}));window.addEventListener("beforeunload",(function(){r.commit(s+"/modal",null)})),window.addEventListener("pagehide",(function(){r.commit(s+"/modal",null)}));var B=e.ref(!1);return{loading:a,items:i,modal:d,total:u,quantity:m,open:function(){r.commit(s+"/modal",d.value?null:"cart")},close:p,clear:function(){a.value=!0,r.dispatch(s+"/clear",{cart:s,finally:function(){a.value=!1}})},pluralize:l.pluralize,goto:function(e){window.addEventListener("beforeunload",(function(){r.commit(s+"/modal",null)})),window.addEventListener("pagehide",(function(){r.commit(s+"/modal",null)})),window.location.href=e},cross:f,crossSlider:k,crossSliderPrev:V,crossSliderNext:N,bundles:w,bundlesSlider:g,bundlesSliderPrev:y,bundlesSliderNext:h,checkout:function(){B.value=!0,window.location.href=$ziggy("shop.checkout")},isLoading:B}}}),s={class:"dropdown is-right is-hoverable"},i={class:"dropdown-trigger"},d=e.createElementVNode("i",{class:"fas fa-shopping-cart"},null,-1),u=e.createElementVNode("span",{class:"icon is-small"},[e.createElementVNode("i",{class:"fas fa-angle-down","aria-hidden":"true"})],-1),m={class:"dropdown-menu",role:"menu"},p={key:0,class:"dropdown-content"},v={class:"dropdown-item"},E={class:"columns"},k={class:"column"},N=["innerHTML"],V=e.createElementVNode("div",{class:"dropdown-divider"},null,-1),f={class:"dropdown-item has-text-centered"},g={class:"dropdown-item has-text-centered"},h={key:1,class:"dropdown-content"},y={class:"dropdown-item"},w={class:"modal-content"},B=[e.createElementVNode("svg",{class:"icon close"},[e.createElementVNode("use",{"xlink:href":"#close"})],-1)],b={class:"box"},C={class:"cart-title"},S=["textContent"],_={key:0,class:"items-wrapper"},x={class:"items"},L={class:"columns is-gapless is-vcentered main-actions"},T={class:"column"},M={class:"column has-text-right"},D={class:"totals"},H={class:"title"},$=["innerHTML"],q={class:"column is-narrow"},z={key:0,class:"cross"},P={class:"title"},F={class:"swiper",ref:"crossSlider"},O={class:"swiper-wrapper"},A={class:"columns is-gapless"},G={class:"column is-narrow"},j=["onClick"],R=["src"],I={key:1},J=[e.createElementVNode("use",{"xlink:href":"#logo"},null,-1)],K={class:"column"},Q=["data-code"],U={class:"name"},W=["onClick"],X={class:"columns is-gapless is-vcentered"},Y={class:"column is-narrow"},Z={class:"prices"},ee=["innerHTML"],te=["innerHTML"],le={class:"column"},ne=e.createElementVNode("svg",null,[e.createElementVNode("use",{"xlink:href":"#cart-alternate"})],-1),oe={class:"swiper-nav prev",ref:"crossSliderPrev"},re=[e.createElementVNode("use",{"xlink:href":"#arrow-submenu"},null,-1)],ce={class:"swiper-nav next",ref:"crossSliderNext"},ae=[e.createElementVNode("use",{"xlink:href":"#arrow-submenu"},null,-1)],se={key:1,class:"bundles"},ie={class:"title"},de={class:"swiper",ref:"bundlesSlider"},ue={class:"swiper-wrapper"},me={class:"column is-narrow"},pe=["onClick"],ve=["src"],Ee={key:1},ke=[e.createElementVNode("use",{"xlink:href":"#logo"},null,-1)],Ne={class:"column"},Ve={class:"product"},fe={class:"name"},ge=["onClick"],he={class:"columns is-gapless is-vcentered"},ye={class:"prices"},we=["innerHTML"],Be=e.createElementVNode("div",{class:"column is-narrow"},[e.createElementVNode("svg",{class:"bundle-icon plus"},[e.createElementVNode("use",{"xlink:href":"#bundle-plus"})])],-1),be={class:"column is-narrow"},Ce=["onClick"],Se=["src"],_e={key:1},xe=[e.createElementVNode("use",{"xlink:href":"#logo"},null,-1)],Le={class:"column"},Te={class:"product"},Me={class:"name"},De=["onClick"],He={class:"columns is-gapless is-vcentered"},$e={class:"prices"},qe=["innerHTML"],ze={key:0,class:"column is-narrow"},Pe=[e.createElementVNode("svg",{class:"bundle-icon plus"},[e.createElementVNode("use",{"xlink:href":"#bundle-plus"})],-1)],Fe={key:1,class:"column is-narrow"},Oe=["onClick"],Ae=["src"],Ge={key:1},je=[e.createElementVNode("use",{"xlink:href":"#logo"},null,-1)],Re={key:2,class:"column"},Ie={class:"product"},Je={class:"name"},Ke=["onClick"],Qe={class:"columns is-gapless is-vcentered"},Ue={class:"prices"},We=["innerHTML"],Xe={class:"columns is-vcentered"},Ye={class:"column"},Ze=["innerHTML"],et=["innerHTML"],tt={class:"column"},lt={class:"is-flex is-align-items-center"},nt=["innerHTML"],ot={class:"swiper-nav prev",ref:"bundlesSliderPrev"},rt=[e.createElementVNode("use",{"xlink:href":"#arrow-submenu"},null,-1)],ct={class:"swiper-nav next",ref:"bundlesSliderNext"},at=[e.createElementVNode("use",{"xlink:href":"#arrow-submenu"},null,-1)],st={key:1,class:"empty"},it={class:"title"},dt={class:"message"},ut=["href"],mt=e.createElementVNode("br",null,null,-1),pt={class:"viewed-wrapper"};a.render=function(t,l,n,o,r,c){var a=e.resolveComponent("cart-item"),vt=e.resolveComponent("cart-add"),Et=e.resolveComponent("bundle-add"),kt=e.resolveComponent("viewed");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["cart",{"is-open":t.modal}])},[e.createElementVNode("div",s,[e.createElementVNode("div",i,[e.renderSlot(t.$slots,"default",{total:t.quantity,open:t.open},(function(){return[e.createElementVNode("button",{class:"button",onClick:l[0]||(l[0]=function(){return t.open&&t.open.apply(t,arguments)})},[e.createElementVNode("span",null,[d,e.createTextVNode(" "+e.toDisplayString(t.quantity),1)]),u])]}))]),e.createElementVNode("div",m,[t.items.length?(e.openBlock(),e.createElementBlock("div",p,[e.createElementVNode("div",v,[e.createElementVNode("div",E,[e.createElementVNode("div",k,e.toDisplayString(t.__("shop.cart.total")),1),e.createElementVNode("div",{class:"column has-text-right",innerHTML:t.$filters.price(t.total)},null,8,N)])]),V,e.createElementVNode("div",f,[e.createElementVNode("a",{onClick:l[1]||(l[1]=function(){return t.checkout&&t.checkout.apply(t,arguments)}),class:e.normalizeClass(["button is-link",{"is-disabled":t.isLoading}])},e.toDisplayString(t.__("shop.cart.checkout")),3)]),e.createElementVNode("div",g,[e.renderSlot(t.$slots,"open",{open:t.open},(function(){return[e.createElementVNode("a",{onClick:l[2]||(l[2]=function(){return t.open&&t.open.apply(t,arguments)})},e.toDisplayString(t.__("shop.cart.open")),1)]}))])])):(e.openBlock(),e.createElementBlock("div",h,[e.renderSlot(t.$slots,"empty",{},(function(){return[e.createElementVNode("div",y,e.toDisplayString(t.__("shop.cart.empty")),1)]}))]))])]),t.isModal?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["modal",{"is-active":t.modal}])},[e.createElementVNode("div",{class:"modal-background",onClick:l[3]||(l[3]=function(){return t.close&&t.close.apply(t,arguments)})}),e.createElementVNode("div",w,[e.createElementVNode("button",{class:"modal-close is-large",onClick:l[4]||(l[4]=function(){return t.close&&t.close.apply(t,arguments)})},B),e.createElementVNode("div",b,[e.renderSlot(t.$slots,"cart-title",{quantity:t.quantity},(function(){return[e.createElementVNode("div",C,[e.createTextVNode(e.toDisplayString(t.__("shop.cart.title"))+" ",1),t.quantity?(e.openBlock(),e.createElementBlock("span",{key:0,textContent:e.toDisplayString(t.pluralize(t.quantity,t.__("shop.pluralize.products")))},null,8,S)):e.createCommentVNode("v-if",!0)])]})),e.renderSlot(t.$slots,"clear",{clear:t.clear,quantity:t.quantity}),t.items.length?(e.openBlock(),e.createElementBlock("div",_,[e.createElementVNode("div",x,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(function(l){return e.openBlock(),e.createBlock(a,{key:l.id,item:l},e.createSlots({_:2},[e.renderList(t.$slots,(function(l,n){return{name:n,fn:e.withCtx((function(l){return[e.renderSlot(t.$slots,n,e.normalizeProps(e.guardReactiveProps(l||{})))]}))}}))]),1032,["item"])})),128))]),e.createElementVNode("div",L,[e.createElementVNode("div",T,[e.createElementVNode("button",{class:"button continue",onClick:l[5]||(l[5]=function(){return t.close&&t.close.apply(t,arguments)})},e.toDisplayString(t.__("shop.cart.continue")),1)]),e.createElementVNode("div",M,[e.createElementVNode("div",D,[e.createElementVNode("div",H,[e.createTextVNode(e.toDisplayString(t.__("shop.cart.total"))+" ",1),e.createElementVNode("span",{innerHTML:t.$filters.price(t.total)},null,8,$)])]),e.renderSlot(t.$slots,"loyalty",{pluralize:t.pluralize,items:t.items})]),e.createElementVNode("div",q,[e.createElementVNode("a",{onClick:l[6]||(l[6]=function(){return t.checkout&&t.checkout.apply(t,arguments)}),class:"button is-link checkout"},e.toDisplayString(t.__("shop.cart.go_checkout")),1)])]),t.cross.length?(e.openBlock(),e.createElementBlock("div",z,[e.createElementVNode("div",P,e.toDisplayString(t.__("shop.cart.cross")),1),e.createElementVNode("div",F,[e.createElementVNode("div",O,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.cross,(function(l){return e.openBlock(),e.createElementBlock("div",{class:"swiper-slide",key:l.id},[e.createElementVNode("div",A,[e.createElementVNode("div",G,[e.createElementVNode("a",{onClick:function(e){return t.goto(l.href)}},[e.createElementVNode("figure",{class:e.normalizeClass(["image is-square",{"no-thumb":!l.image}])},[l.image?(e.openBlock(),e.createElementBlock("img",{key:0,src:l.image},null,8,R)):(e.openBlock(),e.createElementBlock("svg",I,J))],2)],8,j)]),e.createElementVNode("div",K,[e.createElementVNode("div",{class:"product","data-code":l.code,"shop-product":""},[e.createElementVNode("div",U,[e.createElementVNode("a",{onClick:function(e){return t.goto(l.href)},"shop-product-name":""},e.toDisplayString(l.name),9,W)]),e.createElementVNode("div",X,[e.createElementVNode("div",Y,[e.createElementVNode("div",Z,[l.priceOld?(e.openBlock(),e.createElementBlock("div",{key:0,class:"price-old",innerHTML:t.$filters.price(l.priceOld)},null,8,ee)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{class:"price",innerHTML:t.$filters.price(l.price),"shop-product-price":""},null,8,te)])]),e.createElementVNode("div",le,[e.createVNode(vt,{id:l.id,"is-simple":!0},{default:e.withCtx((function(){return[ne]})),_:2},1032,["id"])])])],8,Q)])])])})),128))]),(e.openBlock(),e.createElementBlock("svg",oe,re,512)),(e.openBlock(),e.createElementBlock("svg",ce,ae,512))],512)])):e.createCommentVNode("v-if",!0),t.bundles.length?(e.openBlock(),e.createElementBlock("div",se,[e.createElementVNode("div",ie,e.toDisplayString(t.__("shop.cart.bundle")),1),e.createElementVNode("div",de,[e.createElementVNode("div",ue,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.bundles,(function(l){return e.openBlock(),e.createElementBlock("div",{class:"swiper-slide",key:l.id},[e.createElementVNode("div",{class:e.normalizeClass(["columns is-gapless is-vcentered",{"is-third":l.third}])},[e.createElementVNode("div",me,[e.createElementVNode("a",{onClick:function(e){return t.goto(l.href)}},[e.createElementVNode("figure",{class:e.normalizeClass(["image is-square",{"no-thumb":!l.image}])},[l.image?(e.openBlock(),e.createElementBlock("img",{key:0,src:l.image},null,8,ve)):(e.openBlock(),e.createElementBlock("svg",Ee,ke))],2)],8,pe)]),e.createElementVNode("div",Ne,[e.createElementVNode("div",Ve,[e.createElementVNode("div",fe,[e.createElementVNode("a",{onClick:function(e){return t.goto(l.href)}},e.toDisplayString(l.name),9,ge)]),e.createElementVNode("div",he,[e.createElementVNode("div",ye,[e.createElementVNode("div",{class:"price",innerHTML:t.$filters.price(l.price)},null,8,we)])])])]),Be,e.createElementVNode("div",be,[e.createElementVNode("a",{onClick:function(e){return t.goto(l.second.href)}},[e.createElementVNode("figure",{class:e.normalizeClass(["image is-square",{"no-thumb":!l.second.image}])},[l.second.image?(e.openBlock(),e.createElementBlock("img",{key:0,src:l.second.image},null,8,Se)):(e.openBlock(),e.createElementBlock("svg",_e,xe))],2)],8,Ce)]),e.createElementVNode("div",Le,[e.createElementVNode("div",Te,[e.createElementVNode("div",Me,[e.createElementVNode("a",{onClick:function(e){return t.goto(l.second.href)}},e.toDisplayString(l.second.name),9,De)]),e.createElementVNode("div",He,[e.createElementVNode("div",$e,[e.createElementVNode("div",{class:"price",innerHTML:t.$filters.price(l.second.price)},null,8,qe)])])])]),l.third?(e.openBlock(),e.createElementBlock("div",ze,Pe)):e.createCommentVNode("v-if",!0),l.third?(e.openBlock(),e.createElementBlock("div",Fe,[e.createElementVNode("a",{onClick:function(e){return t.goto(l.third.href)}},[e.createElementVNode("figure",{class:e.normalizeClass(["image is-square",{"no-thumb":!l.third.image}])},[l.third.image?(e.openBlock(),e.createElementBlock("img",{key:0,src:l.third.image},null,8,Ae)):(e.openBlock(),e.createElementBlock("svg",Ge,je))],2)],8,Oe)])):e.createCommentVNode("v-if",!0),l.third?(e.openBlock(),e.createElementBlock("div",Re,[e.createElementVNode("div",Ie,[e.createElementVNode("div",Je,[e.createElementVNode("a",{onClick:function(e){return t.goto(l.third.href)}},e.toDisplayString(l.third.name),9,Ke)]),e.createElementVNode("div",Qe,[e.createElementVNode("div",Ue,[e.createElementVNode("div",{class:"price",innerHTML:t.$filters.price(l.third.price)},null,8,We)])])])])):e.createCommentVNode("v-if",!0)],2),e.createElementVNode("div",Xe,[e.createElementVNode("div",Ye,[e.createElementVNode("span",{class:"total-old",innerHTML:t.$filters.price(l.bundle.priceOld)},null,8,Ze),e.createElementVNode("span",{class:"bundle-amount",innerHTML:t.__("shop.cart.bundle_amount")+l.bundle.amount},null,8,et)]),e.createElementVNode("div",tt,[e.createElementVNode("div",lt,[e.createElementVNode("span",{class:"total",innerHTML:t.$filters.price(l.bundle.price)},null,8,nt),e.createVNode(Et,{id:l.id,second:l.second.id,third:l.third?l.third.id:null},null,8,["id","second","third"])])])])])})),128))])],512),(e.openBlock(),e.createElementBlock("svg",ot,rt,512)),(e.openBlock(),e.createElementBlock("svg",ct,at,512))])):e.createCommentVNode("v-if",!0)])):(e.openBlock(),e.createElementBlock("div",st,[e.createElementVNode("div",it,e.toDisplayString(t.__("shop.cart.no_no")),1),e.createElementVNode("div",dt,[e.createTextVNode(e.toDisplayString(t.__("shop.cart.no_prop"))+" ",1),e.createElementVNode("a",{href:t.$env.locale.url?t.$env.locale.url:"/"},e.toDisplayString(t.__("shop.cart.no_home")),9,ut),e.createTextVNode(", "),mt,e.createTextVNode(e.toDisplayString(t.__("shop.cart.no_search")),1)]),e.createElementVNode("button",{class:"button continue",onClick:l[7]||(l[7]=function(){return t.close&&t.close.apply(t,arguments)})},e.toDisplayString(t.__("shop.cart.continue")),1),e.createElementVNode("div",pt,[e.createVNode(kt,{slider:!0})])]))])])],2)):e.createCommentVNode("v-if",!0)],2)},module.exports=a;
|
|
2
2
|
//# sourceMappingURL=Cart.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cart.js","sources":["../../../../src/components/shop/cart/Cart.vue","../../../../src/components/shop/cart/Cart.vue?vue&type=template&id=603b9bfa&lang.js"],"sourcesContent":["<template>\n <div class=\"cart\" v-bind:class=\"{ 'is-open': modal }\">\n <div class=\"dropdown is-right is-hoverable\">\n <div class=\"dropdown-trigger\">\n <slot :total=\"quantity\" :open=\"open\">\n <button class=\"button\" @click=\"open\">\n <span>\n <i class=\"fas fa-shopping-cart\"></i>\n {{ quantity }}\n </span>\n <span class=\"icon is-small\">\n <i class=\"fas fa-angle-down\" aria-hidden=\"true\"></i>\n </span>\n </button>\n </slot>\n </div>\n <div class=\"dropdown-menu\" role=\"menu\">\n <div class=\"dropdown-content\" v-if=\"items.length\">\n <div class=\"dropdown-item\">\n <div class=\"columns\">\n <div class=\"column\">{{ __('shop.cart.total') }}</div>\n <div class=\"column has-text-right\" v-html=\"$filters.price(total)\"></div>\n </div>\n </div>\n <div class=\"dropdown-divider\"></div>\n <div class=\"dropdown-item has-text-centered\">\n <a @click=\"checkout\" class=\"button is-link\" v-bind:class=\"{ 'is-disabled': isLoading }\">{{ __('shop.cart.checkout') }}</a>\n </div>\n <div class=\"dropdown-item has-text-centered\">\n <slot name=\"open\" :open=\"open\">\n <a @click=\"open\">{{ __('shop.cart.open') }}</a>\n </slot>\n </div>\n </div>\n <div class=\"dropdown-content\" v-else>\n <slot name=\"empty\">\n <div class=\"dropdown-item\">{{ __('shop.cart.empty') }}</div>\n </slot>\n </div>\n </div>\n </div>\n <div class=\"modal\" v-if=\"isModal\" v-bind:class=\"{ 'is-active': modal }\">\n <div class=\"modal-background\" @click=\"close\"></div>\n <div class=\"modal-content\">\n <button class=\"modal-close is-large\" @click=\"close\">\n <svg class=\"icon close\">\n <use xlink:href=\"#close\" />\n </svg>\n </button>\n <div class=\"box\">\n <slot name=\"cart-title\" :quantity=\"quantity\">\n <div class=\"cart-title\">\n {{ __('shop.cart.title') }}\n <span v-if=\"quantity\" v-text=\"pluralize(quantity, __('shop.pluralize.products'))\"></span>\n </div>\n </slot>\n <slot name=\"clear\" :clear=\"clear\" :quantity=\"quantity\"></slot>\n <div class=\"items-wrapper\" v-if=\"items.length\">\n <div class=\"items\">\n <cart-item v-for=\"item in items\" v-bind:key=\"item.id\" :item=\"item\">\n <template v-for=\"(_, name) in $slots\" #[name]=\"slotProps\">\n <slot :name=\"name\" v-bind=\"slotProps || {}\"></slot>\n </template>\n </cart-item>\n </div>\n\n <div class=\"columns is-gapless is-vcentered main-actions\">\n <div class=\"column\">\n <button class=\"button continue\" @click=\"close\">{{ __('shop.cart.continue') }}</button>\n </div>\n <div class=\"column has-text-right\">\n <div class=\"totals\">\n <div class=\"title\">\n {{ __('shop.cart.total') }}\n <span v-html=\"$filters.price(total)\"></span>\n </div>\n </div>\n <slot name=\"loyalty\" :pluralize=\"pluralize\" :items=\"items\"></slot>\n </div>\n <div class=\"column is-narrow\">\n <a @click=\"checkout\" class=\"button is-link checkout\">{{ __('shop.cart.go_checkout') }}</a>\n </div>\n </div>\n\n <div class=\"cross\" v-if=\"cross.length\">\n <div class=\"title\">{{ __('shop.cart.cross') }}</div>\n <div class=\"swiper\" ref=\"crossSlider\">\n <div class=\"swiper-wrapper\">\n <div class=\"swiper-slide\" v-for=\"item in cross\" v-bind:key=\"item.id\">\n <div class=\"columns is-gapless\">\n <div class=\"column is-narrow\">\n <a @click=\"goto(item.href)\">\n <figure class=\"image is-square\" v-bind:class=\"{ 'no-thumb': !item.image }\">\n <img :src=\"item.image\" v-if=\"item.image\" />\n <svg v-else>\n <use xlink:href=\"#logo\" />\n </svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"product\" :data-code=\"item.code\" shop-product>\n <div class=\"name\">\n <a @click=\"goto(item.href)\" shop-product-name>{{ item.name }}</a>\n </div>\n <div class=\"columns is-gapless is-vcentered\">\n <div class=\"column is-narrow\">\n <div class=\"prices\">\n <div class=\"price-old\" v-if=\"item.priceOld\" v-html=\"$filters.price(item.priceOld)\"></div>\n <div class=\"price\" v-html=\"$filters.price(item.price)\" shop-product-price></div>\n </div>\n </div>\n <div class=\"column\">\n <cart-add :id=\"item.id\" :is-simple=\"true\">\n <svg>\n <use xlink:href=\"#cart-alternate\" />\n </svg>\n </cart-add>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <svg class=\"swiper-nav prev\" ref=\"crossSliderPrev\">\n <use xlink:href=\"#arrow-submenu\" />\n </svg>\n <svg class=\"swiper-nav next\" ref=\"crossSliderNext\">\n <use xlink:href=\"#arrow-submenu\" />\n </svg>\n </div>\n </div>\n <div class=\"bundles\" v-if=\"bundles.length\">\n <div class=\"title\">{{ __('shop.cart.bundle') }}</div>\n <div class=\"swiper\" ref=\"bundlesSlider\">\n <div class=\"swiper-wrapper\">\n <div class=\"swiper-slide\" v-for=\"item in bundles\" v-bind:key=\"item.id\">\n <div class=\"columns is-gapless is-vcentered\" v-bind:class=\"{ 'is-third': item.third }\">\n <div class=\"column is-narrow\">\n <a @click=\"goto(item.href)\">\n <figure class=\"image is-square\" v-bind:class=\"{ 'no-thumb': !item.image }\">\n <img :src=\"item.image\" v-if=\"item.image\" />\n <svg v-else>\n <use xlink:href=\"#logo\" />\n </svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"product\">\n <div class=\"name\">\n <a @click=\"goto(item.href)\">{{ item.name }}</a>\n </div>\n <div class=\"columns is-gapless is-vcentered\">\n <div class=\"prices\">\n <div class=\"price\" v-html=\"$filters.price(item.price)\"></div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"column is-narrow\">\n <svg class=\"bundle-icon plus\">\n <use xlink:href=\"#bundle-plus\" />\n </svg>\n </div>\n <div class=\"column is-narrow\">\n <a @click=\"goto(item.second.href)\">\n <figure class=\"image is-square\" v-bind:class=\"{ 'no-thumb': !item.second.image }\">\n <img :src=\"item.second.image\" v-if=\"item.second.image\" />\n <svg v-else>\n <use xlink:href=\"#logo\" />\n </svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"product\">\n <div class=\"name\">\n <a @click=\"goto(item.second.href)\">{{ item.second.name }}</a>\n </div>\n <div class=\"columns is-gapless is-vcentered\">\n <div class=\"prices\">\n <div class=\"price\" v-html=\"$filters.price(item.second.price)\"></div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"column is-narrow\" v-if=\"item.third\">\n <svg class=\"bundle-icon plus\">\n <use xlink:href=\"#bundle-plus\" />\n </svg>\n </div>\n <div class=\"column is-narrow\" v-if=\"item.third\">\n <a @click=\"goto(item.third.href)\">\n <figure class=\"image is-square\" v-bind:class=\"{ 'no-thumb': !item.third.image }\">\n <img :src=\"item.third.image\" v-if=\"item.third.image\" />\n <svg v-else>\n <use xlink:href=\"#logo\" />\n </svg>\n </figure>\n </a>\n </div>\n <div class=\"column\" v-if=\"item.third\">\n <div class=\"product\">\n <div class=\"name\">\n <a @click=\"goto(item.third.href)\">{{ item.third.name }}</a>\n </div>\n <div class=\"columns is-gapless is-vcentered\">\n <div class=\"prices\">\n <div class=\"price\" v-html=\"$filters.price(item.third.price)\"></div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"columns is-vcentered\">\n <div class=\"column\">\n <span class=\"total-old\" v-html=\"$filters.price(item.bundle.priceOld)\"></span>\n <span class=\"bundle-amount\" v-html=\"__('shop.cart.bundle_amount') + item.bundle.amount\"></span>\n </div>\n <div class=\"column\">\n <div class=\"is-flex is-align-items-center\">\n <span class=\"total\" v-html=\"$filters.price(item.bundle.price)\"></span>\n <bundle-add :id=\"item.id\" :second=\"item.second.id\" v-bind:third=\"item.third ? item.third.id : null\"></bundle-add>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <svg class=\"swiper-nav prev\" ref=\"bundlesSliderPrev\">\n <use xlink:href=\"#arrow-submenu\" />\n </svg>\n <svg class=\"swiper-nav next\" ref=\"bundlesSliderNext\">\n <use xlink:href=\"#arrow-submenu\" />\n </svg>\n </div>\n </div>\n <div v-else class=\"empty\">\n <div class=\"title\">{{ __('shop.cart.no_no') }}</div>\n <div class=\"message\">\n {{ __('shop.cart.no_prop') }}\n <a :href=\"$env.locale.url ? $env.locale.url : '/'\">{{ __('shop.cart.no_home') }}</a>, <br />{{ __('shop.cart.no_search') }}\n </div>\n <button class=\"button continue\" @click=\"close\">{{ __('shop.cart.continue') }}</button>\n <div class=\"viewed-wrapper\">\n <viewed :slider=\"true\"></viewed>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { ref, computed, defineComponent, provide } from 'vue';\nimport { useStore } from 'vuex';\nimport { pluralize } from '@perevorot/shop/dist/helpers';\nimport Swiper, { Navigation } from 'swiper';\n//import cart from '../../../api/modules/cart';\n\nexport default /*#__PURE__*/ defineComponent({\n name: 'cart',\n props: {\n isModal: {\n type: Boolean,\n default: true\n },\n cartStorage: {\n type: String,\n default: 'cart'\n }\n },\n setup(props) {\n const store = useStore();\n const loading = ref(false);\n const cartStorage = props.cartStorage;\n\n provide('cartStorage', cartStorage);\n\n const items = computed(() => store.getters[cartStorage + '/items']);\n const modal = computed(() => store.getters[cartStorage + '/modal']);\n const total = computed(() => store.getters[cartStorage + '/total']);\n const quantity = computed(() => store.getters[cartStorage + '/quantity']);\n\n const open = () => {\n store.commit(cartStorage + '/modal', modal.value ? null : 'cart');\n };\n\n const close = () => {\n store.commit(cartStorage + '/modal', null);\n };\n\n const clear = () => {\n loading.value = true;\n\n store.dispatch(cartStorage + '/clear', {\n cart: cartStorage,\n finally: () => {\n loading.value = false;\n }\n });\n };\n\n store.dispatch(cartStorage + '/get', {\n cart: cartStorage,\n finally: () => { }\n });\n\n document.body.addEventListener('click', (event) => {\n if (modal.value && !event.target.closest('.cart')) {\n close();\n }\n });\n\n window.addEventListener('keyup', (e) => {\n if (modal.value && e.key === 'Escape') {\n close();\n }\n });\n\n const goto = (href) => {\n window.addEventListener('beforeunload', () => {\n store.commit(cartStorage + '/modal', null);\n });\n\n window.addEventListener('pagehide', () => {\n store.commit(cartStorage + '/modal', null);\n });\n\n window.location.href = href;\n };\n\n let crossSwiper;\n const crossSlider = ref(null);\n const crossSliderNext = ref(null);\n const crossSliderPrev = ref(null);\n\n const cross = computed(() => {\n const cross = store.getters[cartStorage + '/cross'];\n\n if (crossSlider.value) {\n if (crossSwiper) {\n crossSwiper.destroy();\n }\n\n if (cross.length) {\n crossSwiper = new Swiper(crossSlider.value, {\n slidesPerView: 1,\n slidesPerGroup: 1,\n breakpoints: {\n 768: {\n slidesPerView: 2,\n slidesPerGroup: 2\n }\n },\n spaceBetween: 0,\n allowTouchMove: true,\n modules: [Navigation],\n mousewheel: {\n forceToAxis: true\n },\n navigation: {\n nextEl: crossSliderNext.value,\n prevEl: crossSliderPrev.value\n }\n });\n }\n }\n\n return cross;\n });\n\n let bundlesSwiper;\n const bundlesSlider = ref(null);\n const bundlesSliderNext = ref(null);\n const bundlesSliderPrev = ref(null);\n\n const bundles = computed(() => {\n const bundles = store.getters[cartStorage + '/bundles'];\n\n if (bundlesSlider.value) {\n if (bundlesSwiper) {\n bundlesSwiper.destroy();\n }\n\n if (bundles.length) {\n bundlesSwiper = new Swiper(bundlesSlider.value, {\n slidesPerView: 1,\n spaceBetween: 0,\n allowTouchMove: true,\n mousewheel: {\n forceToAxis: true\n },\n navigation: {\n nextEl: bundlesSliderNext.value,\n prevEl: bundlesSliderPrev.value\n }\n });\n }\n }\n\n return bundles;\n });\n\n window.addEventListener('beforeunload', () => {\n store.commit(cartStorage + '/modal', null);\n });\n\n window.addEventListener('pagehide', () => {\n store.commit(cartStorage + '/modal', null);\n });\n\n const isLoading = ref(false);\n\n const checkout = () => {\n isLoading.value = true;\n window.location.href = $ziggy('shop.checkout');\n };\n\n return {\n loading,\n items,\n modal,\n total,\n quantity,\n open,\n close,\n clear,\n pluralize,\n goto,\n cross,\n crossSlider,\n crossSliderPrev,\n crossSliderNext,\n bundles,\n bundlesSlider,\n bundlesSliderPrev,\n bundlesSliderNext,\n checkout,\n isLoading,\n };\n }\n});\n</script>","<template>\n <div class=\"cart\" v-bind:class=\"{ 'is-open': modal }\">\n <div class=\"dropdown is-right is-hoverable\">\n <div class=\"dropdown-trigger\">\n <slot :total=\"quantity\" :open=\"open\">\n <button class=\"button\" @click=\"open\">\n <span>\n <i class=\"fas fa-shopping-cart\"></i>\n {{ quantity }}\n </span>\n <span class=\"icon is-small\">\n <i class=\"fas fa-angle-down\" aria-hidden=\"true\"></i>\n </span>\n </button>\n </slot>\n </div>\n <div class=\"dropdown-menu\" role=\"menu\">\n <div class=\"dropdown-content\" v-if=\"items.length\">\n <div class=\"dropdown-item\">\n <div class=\"columns\">\n <div class=\"column\">{{ __('shop.cart.total') }}</div>\n <div class=\"column has-text-right\" v-html=\"$filters.price(total)\"></div>\n </div>\n </div>\n <div class=\"dropdown-divider\"></div>\n <div class=\"dropdown-item has-text-centered\">\n <a @click=\"checkout\" class=\"button is-link\" v-bind:class=\"{ 'is-disabled': isLoading }\">{{ __('shop.cart.checkout') }}</a>\n </div>\n <div class=\"dropdown-item has-text-centered\">\n <slot name=\"open\" :open=\"open\">\n <a @click=\"open\">{{ __('shop.cart.open') }}</a>\n </slot>\n </div>\n </div>\n <div class=\"dropdown-content\" v-else>\n <slot name=\"empty\">\n <div class=\"dropdown-item\">{{ __('shop.cart.empty') }}</div>\n </slot>\n </div>\n </div>\n </div>\n <div class=\"modal\" v-if=\"isModal\" v-bind:class=\"{ 'is-active': modal }\">\n <div class=\"modal-background\" @click=\"close\"></div>\n <div class=\"modal-content\">\n <button class=\"modal-close is-large\" @click=\"close\">\n <svg class=\"icon close\">\n <use xlink:href=\"#close\" />\n </svg>\n </button>\n <div class=\"box\">\n <slot name=\"cart-title\" :quantity=\"quantity\">\n <div class=\"cart-title\">\n {{ __('shop.cart.title') }}\n <span v-if=\"quantity\" v-text=\"pluralize(quantity, __('shop.pluralize.products'))\"></span>\n </div>\n </slot>\n <slot name=\"clear\" :clear=\"clear\" :quantity=\"quantity\"></slot>\n <div class=\"items-wrapper\" v-if=\"items.length\">\n <div class=\"items\">\n <cart-item v-for=\"item in items\" v-bind:key=\"item.id\" :item=\"item\">\n <template v-for=\"(_, name) in $slots\" #[name]=\"slotProps\">\n <slot :name=\"name\" v-bind=\"slotProps || {}\"></slot>\n </template>\n </cart-item>\n </div>\n\n <div class=\"columns is-gapless is-vcentered main-actions\">\n <div class=\"column\">\n <button class=\"button continue\" @click=\"close\">{{ __('shop.cart.continue') }}</button>\n </div>\n <div class=\"column has-text-right\">\n <div class=\"totals\">\n <div class=\"title\">\n {{ __('shop.cart.total') }}\n <span v-html=\"$filters.price(total)\"></span>\n </div>\n </div>\n <slot name=\"loyalty\" :pluralize=\"pluralize\" :items=\"items\"></slot>\n </div>\n <div class=\"column is-narrow\">\n <a @click=\"checkout\" class=\"button is-link checkout\">{{ __('shop.cart.go_checkout') }}</a>\n </div>\n </div>\n\n <div class=\"cross\" v-if=\"cross.length\">\n <div class=\"title\">{{ __('shop.cart.cross') }}</div>\n <div class=\"swiper\" ref=\"crossSlider\">\n <div class=\"swiper-wrapper\">\n <div class=\"swiper-slide\" v-for=\"item in cross\" v-bind:key=\"item.id\">\n <div class=\"columns is-gapless\">\n <div class=\"column is-narrow\">\n <a @click=\"goto(item.href)\">\n <figure class=\"image is-square\" v-bind:class=\"{ 'no-thumb': !item.image }\">\n <img :src=\"item.image\" v-if=\"item.image\" />\n <svg v-else>\n <use xlink:href=\"#logo\" />\n </svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"product\" :data-code=\"item.code\" shop-product>\n <div class=\"name\">\n <a @click=\"goto(item.href)\" shop-product-name>{{ item.name }}</a>\n </div>\n <div class=\"columns is-gapless is-vcentered\">\n <div class=\"column is-narrow\">\n <div class=\"prices\">\n <div class=\"price-old\" v-if=\"item.priceOld\" v-html=\"$filters.price(item.priceOld)\"></div>\n <div class=\"price\" v-html=\"$filters.price(item.price)\" shop-product-price></div>\n </div>\n </div>\n <div class=\"column\">\n <cart-add :id=\"item.id\" :is-simple=\"true\">\n <svg>\n <use xlink:href=\"#cart-alternate\" />\n </svg>\n </cart-add>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <svg class=\"swiper-nav prev\" ref=\"crossSliderPrev\">\n <use xlink:href=\"#arrow-submenu\" />\n </svg>\n <svg class=\"swiper-nav next\" ref=\"crossSliderNext\">\n <use xlink:href=\"#arrow-submenu\" />\n </svg>\n </div>\n </div>\n <div class=\"bundles\" v-if=\"bundles.length\">\n <div class=\"title\">{{ __('shop.cart.bundle') }}</div>\n <div class=\"swiper\" ref=\"bundlesSlider\">\n <div class=\"swiper-wrapper\">\n <div class=\"swiper-slide\" v-for=\"item in bundles\" v-bind:key=\"item.id\">\n <div class=\"columns is-gapless is-vcentered\" v-bind:class=\"{ 'is-third': item.third }\">\n <div class=\"column is-narrow\">\n <a @click=\"goto(item.href)\">\n <figure class=\"image is-square\" v-bind:class=\"{ 'no-thumb': !item.image }\">\n <img :src=\"item.image\" v-if=\"item.image\" />\n <svg v-else>\n <use xlink:href=\"#logo\" />\n </svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"product\">\n <div class=\"name\">\n <a @click=\"goto(item.href)\">{{ item.name }}</a>\n </div>\n <div class=\"columns is-gapless is-vcentered\">\n <div class=\"prices\">\n <div class=\"price\" v-html=\"$filters.price(item.price)\"></div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"column is-narrow\">\n <svg class=\"bundle-icon plus\">\n <use xlink:href=\"#bundle-plus\" />\n </svg>\n </div>\n <div class=\"column is-narrow\">\n <a @click=\"goto(item.second.href)\">\n <figure class=\"image is-square\" v-bind:class=\"{ 'no-thumb': !item.second.image }\">\n <img :src=\"item.second.image\" v-if=\"item.second.image\" />\n <svg v-else>\n <use xlink:href=\"#logo\" />\n </svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"product\">\n <div class=\"name\">\n <a @click=\"goto(item.second.href)\">{{ item.second.name }}</a>\n </div>\n <div class=\"columns is-gapless is-vcentered\">\n <div class=\"prices\">\n <div class=\"price\" v-html=\"$filters.price(item.second.price)\"></div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"column is-narrow\" v-if=\"item.third\">\n <svg class=\"bundle-icon plus\">\n <use xlink:href=\"#bundle-plus\" />\n </svg>\n </div>\n <div class=\"column is-narrow\" v-if=\"item.third\">\n <a @click=\"goto(item.third.href)\">\n <figure class=\"image is-square\" v-bind:class=\"{ 'no-thumb': !item.third.image }\">\n <img :src=\"item.third.image\" v-if=\"item.third.image\" />\n <svg v-else>\n <use xlink:href=\"#logo\" />\n </svg>\n </figure>\n </a>\n </div>\n <div class=\"column\" v-if=\"item.third\">\n <div class=\"product\">\n <div class=\"name\">\n <a @click=\"goto(item.third.href)\">{{ item.third.name }}</a>\n </div>\n <div class=\"columns is-gapless is-vcentered\">\n <div class=\"prices\">\n <div class=\"price\" v-html=\"$filters.price(item.third.price)\"></div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"columns is-vcentered\">\n <div class=\"column\">\n <span class=\"total-old\" v-html=\"$filters.price(item.bundle.priceOld)\"></span>\n <span class=\"bundle-amount\" v-html=\"__('shop.cart.bundle_amount') + item.bundle.amount\"></span>\n </div>\n <div class=\"column\">\n <div class=\"is-flex is-align-items-center\">\n <span class=\"total\" v-html=\"$filters.price(item.bundle.price)\"></span>\n <bundle-add :id=\"item.id\" :second=\"item.second.id\" v-bind:third=\"item.third ? item.third.id : null\"></bundle-add>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <svg class=\"swiper-nav prev\" ref=\"bundlesSliderPrev\">\n <use xlink:href=\"#arrow-submenu\" />\n </svg>\n <svg class=\"swiper-nav next\" ref=\"bundlesSliderNext\">\n <use xlink:href=\"#arrow-submenu\" />\n </svg>\n </div>\n </div>\n <div v-else class=\"empty\">\n <div class=\"title\">{{ __('shop.cart.no_no') }}</div>\n <div class=\"message\">\n {{ __('shop.cart.no_prop') }}\n <a :href=\"$env.locale.url ? $env.locale.url : '/'\">{{ __('shop.cart.no_home') }}</a>, <br />{{ __('shop.cart.no_search') }}\n </div>\n <button class=\"button continue\" @click=\"close\">{{ __('shop.cart.continue') }}</button>\n <div class=\"viewed-wrapper\">\n <viewed :slider=\"true\"></viewed>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { ref, computed, defineComponent, provide } from 'vue';\nimport { useStore } from 'vuex';\nimport { pluralize } from '@perevorot/shop/dist/helpers';\nimport Swiper, { Navigation } from 'swiper';\n//import cart from '../../../api/modules/cart';\n\nexport default /*#__PURE__*/ defineComponent({\n name: 'cart',\n props: {\n isModal: {\n type: Boolean,\n default: true\n },\n cartStorage: {\n type: String,\n default: 'cart'\n }\n },\n setup(props) {\n const store = useStore();\n const loading = ref(false);\n const cartStorage = props.cartStorage;\n\n provide('cartStorage', cartStorage);\n\n const items = computed(() => store.getters[cartStorage + '/items']);\n const modal = computed(() => store.getters[cartStorage + '/modal']);\n const total = computed(() => store.getters[cartStorage + '/total']);\n const quantity = computed(() => store.getters[cartStorage + '/quantity']);\n\n const open = () => {\n store.commit(cartStorage + '/modal', modal.value ? null : 'cart');\n };\n\n const close = () => {\n store.commit(cartStorage + '/modal', null);\n };\n\n const clear = () => {\n loading.value = true;\n\n store.dispatch(cartStorage + '/clear', {\n cart: cartStorage,\n finally: () => {\n loading.value = false;\n }\n });\n };\n\n store.dispatch(cartStorage + '/get', {\n cart: cartStorage,\n finally: () => { }\n });\n\n document.body.addEventListener('click', (event) => {\n if (modal.value && !event.target.closest('.cart')) {\n close();\n }\n });\n\n window.addEventListener('keyup', (e) => {\n if (modal.value && e.key === 'Escape') {\n close();\n }\n });\n\n const goto = (href) => {\n window.addEventListener('beforeunload', () => {\n store.commit(cartStorage + '/modal', null);\n });\n\n window.addEventListener('pagehide', () => {\n store.commit(cartStorage + '/modal', null);\n });\n\n window.location.href = href;\n };\n\n let crossSwiper;\n const crossSlider = ref(null);\n const crossSliderNext = ref(null);\n const crossSliderPrev = ref(null);\n\n const cross = computed(() => {\n const cross = store.getters[cartStorage + '/cross'];\n\n if (crossSlider.value) {\n if (crossSwiper) {\n crossSwiper.destroy();\n }\n\n if (cross.length) {\n crossSwiper = new Swiper(crossSlider.value, {\n slidesPerView: 1,\n slidesPerGroup: 1,\n breakpoints: {\n 768: {\n slidesPerView: 2,\n slidesPerGroup: 2\n }\n },\n spaceBetween: 0,\n allowTouchMove: true,\n modules: [Navigation],\n mousewheel: {\n forceToAxis: true\n },\n navigation: {\n nextEl: crossSliderNext.value,\n prevEl: crossSliderPrev.value\n }\n });\n }\n }\n\n return cross;\n });\n\n let bundlesSwiper;\n const bundlesSlider = ref(null);\n const bundlesSliderNext = ref(null);\n const bundlesSliderPrev = ref(null);\n\n const bundles = computed(() => {\n const bundles = store.getters[cartStorage + '/bundles'];\n\n if (bundlesSlider.value) {\n if (bundlesSwiper) {\n bundlesSwiper.destroy();\n }\n\n if (bundles.length) {\n bundlesSwiper = new Swiper(bundlesSlider.value, {\n slidesPerView: 1,\n spaceBetween: 0,\n allowTouchMove: true,\n mousewheel: {\n forceToAxis: true\n },\n navigation: {\n nextEl: bundlesSliderNext.value,\n prevEl: bundlesSliderPrev.value\n }\n });\n }\n }\n\n return bundles;\n });\n\n window.addEventListener('beforeunload', () => {\n store.commit(cartStorage + '/modal', null);\n });\n\n window.addEventListener('pagehide', () => {\n store.commit(cartStorage + '/modal', null);\n });\n\n const isLoading = ref(false);\n\n const checkout = () => {\n isLoading.value = true;\n window.location.href = $ziggy('shop.checkout');\n };\n\n return {\n loading,\n items,\n modal,\n total,\n quantity,\n open,\n close,\n clear,\n pluralize,\n goto,\n cross,\n crossSlider,\n crossSliderPrev,\n crossSliderNext,\n bundles,\n bundlesSlider,\n bundlesSliderPrev,\n bundlesSliderNext,\n checkout,\n isLoading,\n };\n }\n});\n</script>"],"names":["script","defineComponent","name","props","isModal","type","Boolean","default","cartStorage","String","setup","store","useStore","loading","ref","provide","items","computed","getters","modal","total","quantity","close","commit","dispatch","cart","finally","document","body","addEventListener","event","value","target","closest","window","e","key","crossSwiper","bundlesSwiper","crossSlider","crossSliderNext","crossSliderPrev","cross","destroy","length","Swiper","slidesPerView","slidesPerGroup","breakpoints","768","spaceBetween","allowTouchMove","modules","Navigation","mousewheel","forceToAxis","navigation","nextEl","prevEl","bundlesSlider","bundlesSliderNext","bundlesSliderPrev","bundles","isLoading","open","clear","pluralize","goto","href","location","checkout","$ziggy","_hoisted_1","class","_hoisted_2","_createElementVNode","createElementVNode","aria-hidden","role","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_12","_hoisted_13","_hoisted_15","_hoisted_16","xlink:href","_hoisted_19","_hoisted_20","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","_hoisted_28","_hoisted_30","_hoisted_32","_hoisted_34","_hoisted_35","_hoisted_36","_hoisted_42","_hoisted_44","_hoisted_46","_hoisted_47","_hoisted_48","_hoisted_51","_hoisted_60","_hoisted_62","_hoisted_63","_hoisted_69","_hoisted_70","_hoisted_71","_hoisted_73","_hoisted_74","_hoisted_77","_hoisted_83","_hoisted_84","_hoisted_85","_hoisted_87","_hoisted_88","_hoisted_100","_hoisted_101","_hoisted_103","_hoisted_104","_hoisted_106","_hoisted_107","_hoisted_110","_hoisted_111","_hoisted_120","_hoisted_121","_hoisted_124","_createElementBlock","createElementBlock","_normalizeClass","is-open","_ctx","_renderSlot","renderSlot","$slots","onClick","apply","arguments","_hoisted_3","_createTextVNode","_hoisted_4","_hoisted_5","_openBlock","_hoisted_6","_toDisplayString","__","innerHTML","$filters","price","_hoisted_11","is-disabled","_hoisted_14","toDisplayString","is-active","textContent","openBlock","_hoisted_22","_Fragment","Fragment","_renderList","item","_createBlock","createBlock","_component_cart_item","id","_","fn","_withCtx","slotProps","_normalizeProps","_guardReactiveProps","createTextVNode","_hoisted_31","_hoisted_33","$event","no-thumb","image","src","_hoisted_39","_hoisted_41","data-code","code","shop-product","shop-product-name","_hoisted_45","priceOld","shop-product-price","_createVNode","_component_cart_add","is-simple","_hoisted_52","_hoisted_53","_hoisted_55","_hoisted_56","_hoisted_58","_hoisted_59","_hoisted_61","renderList","is-third","third","_hoisted_66","_hoisted_68","_hoisted_72","_hoisted_76","second","_hoisted_80","_hoisted_82","_hoisted_86","_hoisted_90","_hoisted_92","_hoisted_93","_hoisted_96","_hoisted_98","_hoisted_99","_hoisted_102","bundle","amount","_component_bundle_add","_hoisted_113","_hoisted_115","_hoisted_116","_hoisted_118","_hoisted_119","$env","locale","url","_hoisted_122","_hoisted_123","_component_viewed","slider"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Cart.js","sources":["../../../../src/components/shop/cart/Cart.vue","../../../../src/components/shop/cart/Cart.vue?vue&type=template&id=a966c292&lang.js"],"sourcesContent":["<template>\n <div class=\"cart\" v-bind:class=\"{ 'is-open': modal }\">\n <div class=\"dropdown is-right is-hoverable\">\n <div class=\"dropdown-trigger\">\n <slot :total=\"quantity\" :open=\"open\">\n <button class=\"button\" @click=\"open\">\n <span>\n <i class=\"fas fa-shopping-cart\"></i>\n {{ quantity }}\n </span>\n <span class=\"icon is-small\">\n <i class=\"fas fa-angle-down\" aria-hidden=\"true\"></i>\n </span>\n </button>\n </slot>\n </div>\n <div class=\"dropdown-menu\" role=\"menu\">\n <div class=\"dropdown-content\" v-if=\"items.length\">\n <div class=\"dropdown-item\">\n <div class=\"columns\">\n <div class=\"column\">{{ __('shop.cart.total') }}</div>\n <div class=\"column has-text-right\" v-html=\"$filters.price(total)\"></div>\n </div>\n </div>\n <div class=\"dropdown-divider\"></div>\n <div class=\"dropdown-item has-text-centered\">\n <a @click=\"checkout\" class=\"button is-link\" v-bind:class=\"{ 'is-disabled': isLoading }\">{{ __('shop.cart.checkout') }}</a>\n </div>\n <div class=\"dropdown-item has-text-centered\">\n <slot name=\"open\" :open=\"open\">\n <a @click=\"open\">{{ __('shop.cart.open') }}</a>\n </slot>\n </div>\n </div>\n <div class=\"dropdown-content\" v-else>\n <slot name=\"empty\">\n <div class=\"dropdown-item\">{{ __('shop.cart.empty') }}</div>\n </slot>\n </div>\n </div>\n </div>\n <div class=\"modal\" v-if=\"isModal\" v-bind:class=\"{ 'is-active': modal }\">\n <div class=\"modal-background\" @click=\"close\"></div>\n <div class=\"modal-content\">\n <button class=\"modal-close is-large\" @click=\"close\">\n <svg class=\"icon close\">\n <use xlink:href=\"#close\" />\n </svg>\n </button>\n <div class=\"box\">\n <slot name=\"cart-title\" :quantity=\"quantity\">\n <div class=\"cart-title\">\n {{ __('shop.cart.title') }}\n <span v-if=\"quantity\" v-text=\"pluralize(quantity, __('shop.pluralize.products'))\"></span>\n </div>\n </slot>\n <slot name=\"clear\" :clear=\"clear\" :quantity=\"quantity\"></slot>\n <div class=\"items-wrapper\" v-if=\"items.length\">\n <div class=\"items\">\n <cart-item v-for=\"item in items\" v-bind:key=\"item.id\" :item=\"item\">\n <template v-for=\"(_, name) in $slots\" #[name]=\"slotProps\">\n <slot :name=\"name\" v-bind=\"slotProps || {}\"></slot>\n </template>\n </cart-item>\n </div>\n\n <div class=\"columns is-gapless is-vcentered main-actions\">\n <div class=\"column\">\n <button class=\"button continue\" @click=\"close\">{{ __('shop.cart.continue') }}</button>\n </div>\n <div class=\"column has-text-right\">\n <div class=\"totals\">\n <div class=\"title\">\n {{ __('shop.cart.total') }}\n <span v-html=\"$filters.price(total)\"></span>\n </div>\n </div>\n <slot name=\"loyalty\" :pluralize=\"pluralize\" :items=\"items\"></slot>\n </div>\n <div class=\"column is-narrow\">\n <a @click=\"checkout\" class=\"button is-link checkout\">{{ __('shop.cart.go_checkout') }}</a>\n </div>\n </div>\n\n <div class=\"cross\" v-if=\"cross.length\">\n <div class=\"title\">{{ __('shop.cart.cross') }}</div>\n <div class=\"swiper\" ref=\"crossSlider\">\n <div class=\"swiper-wrapper\">\n <div class=\"swiper-slide\" v-for=\"item in cross\" v-bind:key=\"item.id\">\n <div class=\"columns is-gapless\">\n <div class=\"column is-narrow\">\n <a @click=\"goto(item.href)\">\n <figure class=\"image is-square\" v-bind:class=\"{ 'no-thumb': !item.image }\">\n <img :src=\"item.image\" v-if=\"item.image\" />\n <svg v-else>\n <use xlink:href=\"#logo\" />\n </svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"product\" :data-code=\"item.code\" shop-product>\n <div class=\"name\">\n <a @click=\"goto(item.href)\" shop-product-name>{{ item.name }}</a>\n </div>\n <div class=\"columns is-gapless is-vcentered\">\n <div class=\"column is-narrow\">\n <div class=\"prices\">\n <div class=\"price-old\" v-if=\"item.priceOld\" v-html=\"$filters.price(item.priceOld)\"></div>\n <div class=\"price\" v-html=\"$filters.price(item.price)\" shop-product-price></div>\n </div>\n </div>\n <div class=\"column\">\n <cart-add :id=\"item.id\" :is-simple=\"true\">\n <svg>\n <use xlink:href=\"#cart-alternate\" />\n </svg>\n </cart-add>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <svg class=\"swiper-nav prev\" ref=\"crossSliderPrev\">\n <use xlink:href=\"#arrow-submenu\" />\n </svg>\n <svg class=\"swiper-nav next\" ref=\"crossSliderNext\">\n <use xlink:href=\"#arrow-submenu\" />\n </svg>\n </div>\n </div>\n <div class=\"bundles\" v-if=\"bundles.length\">\n <div class=\"title\">{{ __('shop.cart.bundle') }}</div>\n <div class=\"swiper\" ref=\"bundlesSlider\">\n <div class=\"swiper-wrapper\">\n <div class=\"swiper-slide\" v-for=\"item in bundles\" v-bind:key=\"item.id\">\n <div class=\"columns is-gapless is-vcentered\" v-bind:class=\"{ 'is-third': item.third }\">\n <div class=\"column is-narrow\">\n <a @click=\"goto(item.href)\">\n <figure class=\"image is-square\" v-bind:class=\"{ 'no-thumb': !item.image }\">\n <img :src=\"item.image\" v-if=\"item.image\" />\n <svg v-else>\n <use xlink:href=\"#logo\" />\n </svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"product\">\n <div class=\"name\">\n <a @click=\"goto(item.href)\">{{ item.name }}</a>\n </div>\n <div class=\"columns is-gapless is-vcentered\">\n <div class=\"prices\">\n <div class=\"price\" v-html=\"$filters.price(item.price)\"></div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"column is-narrow\">\n <svg class=\"bundle-icon plus\">\n <use xlink:href=\"#bundle-plus\" />\n </svg>\n </div>\n <div class=\"column is-narrow\">\n <a @click=\"goto(item.second.href)\">\n <figure class=\"image is-square\" v-bind:class=\"{ 'no-thumb': !item.second.image }\">\n <img :src=\"item.second.image\" v-if=\"item.second.image\" />\n <svg v-else>\n <use xlink:href=\"#logo\" />\n </svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"product\">\n <div class=\"name\">\n <a @click=\"goto(item.second.href)\">{{ item.second.name }}</a>\n </div>\n <div class=\"columns is-gapless is-vcentered\">\n <div class=\"prices\">\n <div class=\"price\" v-html=\"$filters.price(item.second.price)\"></div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"column is-narrow\" v-if=\"item.third\">\n <svg class=\"bundle-icon plus\">\n <use xlink:href=\"#bundle-plus\" />\n </svg>\n </div>\n <div class=\"column is-narrow\" v-if=\"item.third\">\n <a @click=\"goto(item.third.href)\">\n <figure class=\"image is-square\" v-bind:class=\"{ 'no-thumb': !item.third.image }\">\n <img :src=\"item.third.image\" v-if=\"item.third.image\" />\n <svg v-else>\n <use xlink:href=\"#logo\" />\n </svg>\n </figure>\n </a>\n </div>\n <div class=\"column\" v-if=\"item.third\">\n <div class=\"product\">\n <div class=\"name\">\n <a @click=\"goto(item.third.href)\">{{ item.third.name }}</a>\n </div>\n <div class=\"columns is-gapless is-vcentered\">\n <div class=\"prices\">\n <div class=\"price\" v-html=\"$filters.price(item.third.price)\"></div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"columns is-vcentered\">\n <div class=\"column\">\n <span class=\"total-old\" v-html=\"$filters.price(item.bundle.priceOld)\"></span>\n <span class=\"bundle-amount\" v-html=\"__('shop.cart.bundle_amount') + item.bundle.amount\"></span>\n </div>\n <div class=\"column\">\n <div class=\"is-flex is-align-items-center\">\n <span class=\"total\" v-html=\"$filters.price(item.bundle.price)\"></span>\n <bundle-add :id=\"item.id\" :second=\"item.second.id\" v-bind:third=\"item.third ? item.third.id : null\"></bundle-add>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <svg class=\"swiper-nav prev\" ref=\"bundlesSliderPrev\">\n <use xlink:href=\"#arrow-submenu\" />\n </svg>\n <svg class=\"swiper-nav next\" ref=\"bundlesSliderNext\">\n <use xlink:href=\"#arrow-submenu\" />\n </svg>\n </div>\n </div>\n <div v-else class=\"empty\">\n <div class=\"title\">{{ __('shop.cart.no_no') }}</div>\n <div class=\"message\">\n {{ __('shop.cart.no_prop') }}\n <a :href=\"$env.locale.url ? $env.locale.url : '/'\">{{ __('shop.cart.no_home') }}</a>, <br />{{ __('shop.cart.no_search') }}\n </div>\n <button class=\"button continue\" @click=\"close\">{{ __('shop.cart.continue') }}</button>\n <div class=\"viewed-wrapper\">\n <viewed :slider=\"true\"></viewed>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { ref, computed, defineComponent, provide } from 'vue';\nimport { useStore } from 'vuex';\nimport { pluralize } from '@perevorot/shop/dist/helpers';\nimport Swiper from 'swiper';\nimport { Navigation } from 'swiper/modules';\n\nexport default /*#__PURE__*/ defineComponent({\n name: 'cart',\n props: {\n isModal: {\n type: Boolean,\n default: true\n },\n cartStorage: {\n type: String,\n default: 'cart'\n }\n },\n setup(props) {\n const store = useStore();\n const loading = ref(false);\n const cartStorage = props.cartStorage;\n\n provide('cartStorage', cartStorage);\n\n const items = computed(() => store.getters[cartStorage + '/items']);\n const modal = computed(() => store.getters[cartStorage + '/modal']);\n const total = computed(() => store.getters[cartStorage + '/total']);\n const quantity = computed(() => store.getters[cartStorage + '/quantity']);\n\n const open = () => {\n store.commit(cartStorage + '/modal', modal.value ? null : 'cart');\n };\n\n const close = () => {\n store.commit(cartStorage + '/modal', null);\n };\n\n const clear = () => {\n loading.value = true;\n\n store.dispatch(cartStorage + '/clear', {\n cart: cartStorage,\n finally: () => {\n loading.value = false;\n }\n });\n };\n\n store.dispatch(cartStorage + '/get', {\n cart: cartStorage,\n finally: () => { }\n });\n\n document.body.addEventListener('click', (event) => {\n if (modal.value && !event.target.closest('.cart')) {\n close();\n }\n });\n\n window.addEventListener('keyup', (e) => {\n if (modal.value && e.key === 'Escape') {\n close();\n }\n });\n\n const goto = (href) => {\n window.addEventListener('beforeunload', () => {\n store.commit(cartStorage + '/modal', null);\n });\n\n window.addEventListener('pagehide', () => {\n store.commit(cartStorage + '/modal', null);\n });\n\n window.location.href = href;\n };\n\n let crossSwiper;\n const crossSlider = ref(null);\n const crossSliderNext = ref(null);\n const crossSliderPrev = ref(null);\n\n const cross = computed(() => {\n const cross = store.getters[cartStorage + '/cross'];\n\n if (crossSlider.value) {\n if (crossSwiper) {\n crossSwiper.destroy();\n }\n\n if (cross.length) {\n crossSwiper = new Swiper(crossSlider.value, {\n slidesPerView: 1,\n slidesPerGroup: 1,\n breakpoints: {\n 768: {\n slidesPerView: 2,\n slidesPerGroup: 2\n }\n },\n spaceBetween: 0,\n allowTouchMove: true,\n modules: [Navigation],\n mousewheel: {\n forceToAxis: true\n },\n navigation: {\n nextEl: crossSliderNext.value,\n prevEl: crossSliderPrev.value\n }\n });\n }\n }\n\n return cross;\n });\n\n let bundlesSwiper;\n const bundlesSlider = ref(null);\n const bundlesSliderNext = ref(null);\n const bundlesSliderPrev = ref(null);\n\n const bundles = computed(() => {\n const bundles = store.getters[cartStorage + '/bundles'];\n\n if (bundlesSlider.value) {\n if (bundlesSwiper) {\n bundlesSwiper.destroy();\n }\n\n if (bundles.length) {\n bundlesSwiper = new Swiper(bundlesSlider.value, {\n slidesPerView: 1,\n spaceBetween: 0,\n allowTouchMove: true,\n mousewheel: {\n forceToAxis: true\n },\n navigation: {\n nextEl: bundlesSliderNext.value,\n prevEl: bundlesSliderPrev.value\n }\n });\n }\n }\n\n return bundles;\n });\n\n window.addEventListener('beforeunload', () => {\n store.commit(cartStorage + '/modal', null);\n });\n\n window.addEventListener('pagehide', () => {\n store.commit(cartStorage + '/modal', null);\n });\n\n const isLoading = ref(false);\n\n const checkout = () => {\n isLoading.value = true;\n window.location.href = $ziggy('shop.checkout');\n };\n\n return {\n loading,\n items,\n modal,\n total,\n quantity,\n open,\n close,\n clear,\n pluralize,\n goto,\n cross,\n crossSlider,\n crossSliderPrev,\n crossSliderNext,\n bundles,\n bundlesSlider,\n bundlesSliderPrev,\n bundlesSliderNext,\n checkout,\n isLoading,\n };\n }\n});\n</script>","<template>\n <div class=\"cart\" v-bind:class=\"{ 'is-open': modal }\">\n <div class=\"dropdown is-right is-hoverable\">\n <div class=\"dropdown-trigger\">\n <slot :total=\"quantity\" :open=\"open\">\n <button class=\"button\" @click=\"open\">\n <span>\n <i class=\"fas fa-shopping-cart\"></i>\n {{ quantity }}\n </span>\n <span class=\"icon is-small\">\n <i class=\"fas fa-angle-down\" aria-hidden=\"true\"></i>\n </span>\n </button>\n </slot>\n </div>\n <div class=\"dropdown-menu\" role=\"menu\">\n <div class=\"dropdown-content\" v-if=\"items.length\">\n <div class=\"dropdown-item\">\n <div class=\"columns\">\n <div class=\"column\">{{ __('shop.cart.total') }}</div>\n <div class=\"column has-text-right\" v-html=\"$filters.price(total)\"></div>\n </div>\n </div>\n <div class=\"dropdown-divider\"></div>\n <div class=\"dropdown-item has-text-centered\">\n <a @click=\"checkout\" class=\"button is-link\" v-bind:class=\"{ 'is-disabled': isLoading }\">{{ __('shop.cart.checkout') }}</a>\n </div>\n <div class=\"dropdown-item has-text-centered\">\n <slot name=\"open\" :open=\"open\">\n <a @click=\"open\">{{ __('shop.cart.open') }}</a>\n </slot>\n </div>\n </div>\n <div class=\"dropdown-content\" v-else>\n <slot name=\"empty\">\n <div class=\"dropdown-item\">{{ __('shop.cart.empty') }}</div>\n </slot>\n </div>\n </div>\n </div>\n <div class=\"modal\" v-if=\"isModal\" v-bind:class=\"{ 'is-active': modal }\">\n <div class=\"modal-background\" @click=\"close\"></div>\n <div class=\"modal-content\">\n <button class=\"modal-close is-large\" @click=\"close\">\n <svg class=\"icon close\">\n <use xlink:href=\"#close\" />\n </svg>\n </button>\n <div class=\"box\">\n <slot name=\"cart-title\" :quantity=\"quantity\">\n <div class=\"cart-title\">\n {{ __('shop.cart.title') }}\n <span v-if=\"quantity\" v-text=\"pluralize(quantity, __('shop.pluralize.products'))\"></span>\n </div>\n </slot>\n <slot name=\"clear\" :clear=\"clear\" :quantity=\"quantity\"></slot>\n <div class=\"items-wrapper\" v-if=\"items.length\">\n <div class=\"items\">\n <cart-item v-for=\"item in items\" v-bind:key=\"item.id\" :item=\"item\">\n <template v-for=\"(_, name) in $slots\" #[name]=\"slotProps\">\n <slot :name=\"name\" v-bind=\"slotProps || {}\"></slot>\n </template>\n </cart-item>\n </div>\n\n <div class=\"columns is-gapless is-vcentered main-actions\">\n <div class=\"column\">\n <button class=\"button continue\" @click=\"close\">{{ __('shop.cart.continue') }}</button>\n </div>\n <div class=\"column has-text-right\">\n <div class=\"totals\">\n <div class=\"title\">\n {{ __('shop.cart.total') }}\n <span v-html=\"$filters.price(total)\"></span>\n </div>\n </div>\n <slot name=\"loyalty\" :pluralize=\"pluralize\" :items=\"items\"></slot>\n </div>\n <div class=\"column is-narrow\">\n <a @click=\"checkout\" class=\"button is-link checkout\">{{ __('shop.cart.go_checkout') }}</a>\n </div>\n </div>\n\n <div class=\"cross\" v-if=\"cross.length\">\n <div class=\"title\">{{ __('shop.cart.cross') }}</div>\n <div class=\"swiper\" ref=\"crossSlider\">\n <div class=\"swiper-wrapper\">\n <div class=\"swiper-slide\" v-for=\"item in cross\" v-bind:key=\"item.id\">\n <div class=\"columns is-gapless\">\n <div class=\"column is-narrow\">\n <a @click=\"goto(item.href)\">\n <figure class=\"image is-square\" v-bind:class=\"{ 'no-thumb': !item.image }\">\n <img :src=\"item.image\" v-if=\"item.image\" />\n <svg v-else>\n <use xlink:href=\"#logo\" />\n </svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"product\" :data-code=\"item.code\" shop-product>\n <div class=\"name\">\n <a @click=\"goto(item.href)\" shop-product-name>{{ item.name }}</a>\n </div>\n <div class=\"columns is-gapless is-vcentered\">\n <div class=\"column is-narrow\">\n <div class=\"prices\">\n <div class=\"price-old\" v-if=\"item.priceOld\" v-html=\"$filters.price(item.priceOld)\"></div>\n <div class=\"price\" v-html=\"$filters.price(item.price)\" shop-product-price></div>\n </div>\n </div>\n <div class=\"column\">\n <cart-add :id=\"item.id\" :is-simple=\"true\">\n <svg>\n <use xlink:href=\"#cart-alternate\" />\n </svg>\n </cart-add>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <svg class=\"swiper-nav prev\" ref=\"crossSliderPrev\">\n <use xlink:href=\"#arrow-submenu\" />\n </svg>\n <svg class=\"swiper-nav next\" ref=\"crossSliderNext\">\n <use xlink:href=\"#arrow-submenu\" />\n </svg>\n </div>\n </div>\n <div class=\"bundles\" v-if=\"bundles.length\">\n <div class=\"title\">{{ __('shop.cart.bundle') }}</div>\n <div class=\"swiper\" ref=\"bundlesSlider\">\n <div class=\"swiper-wrapper\">\n <div class=\"swiper-slide\" v-for=\"item in bundles\" v-bind:key=\"item.id\">\n <div class=\"columns is-gapless is-vcentered\" v-bind:class=\"{ 'is-third': item.third }\">\n <div class=\"column is-narrow\">\n <a @click=\"goto(item.href)\">\n <figure class=\"image is-square\" v-bind:class=\"{ 'no-thumb': !item.image }\">\n <img :src=\"item.image\" v-if=\"item.image\" />\n <svg v-else>\n <use xlink:href=\"#logo\" />\n </svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"product\">\n <div class=\"name\">\n <a @click=\"goto(item.href)\">{{ item.name }}</a>\n </div>\n <div class=\"columns is-gapless is-vcentered\">\n <div class=\"prices\">\n <div class=\"price\" v-html=\"$filters.price(item.price)\"></div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"column is-narrow\">\n <svg class=\"bundle-icon plus\">\n <use xlink:href=\"#bundle-plus\" />\n </svg>\n </div>\n <div class=\"column is-narrow\">\n <a @click=\"goto(item.second.href)\">\n <figure class=\"image is-square\" v-bind:class=\"{ 'no-thumb': !item.second.image }\">\n <img :src=\"item.second.image\" v-if=\"item.second.image\" />\n <svg v-else>\n <use xlink:href=\"#logo\" />\n </svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"product\">\n <div class=\"name\">\n <a @click=\"goto(item.second.href)\">{{ item.second.name }}</a>\n </div>\n <div class=\"columns is-gapless is-vcentered\">\n <div class=\"prices\">\n <div class=\"price\" v-html=\"$filters.price(item.second.price)\"></div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"column is-narrow\" v-if=\"item.third\">\n <svg class=\"bundle-icon plus\">\n <use xlink:href=\"#bundle-plus\" />\n </svg>\n </div>\n <div class=\"column is-narrow\" v-if=\"item.third\">\n <a @click=\"goto(item.third.href)\">\n <figure class=\"image is-square\" v-bind:class=\"{ 'no-thumb': !item.third.image }\">\n <img :src=\"item.third.image\" v-if=\"item.third.image\" />\n <svg v-else>\n <use xlink:href=\"#logo\" />\n </svg>\n </figure>\n </a>\n </div>\n <div class=\"column\" v-if=\"item.third\">\n <div class=\"product\">\n <div class=\"name\">\n <a @click=\"goto(item.third.href)\">{{ item.third.name }}</a>\n </div>\n <div class=\"columns is-gapless is-vcentered\">\n <div class=\"prices\">\n <div class=\"price\" v-html=\"$filters.price(item.third.price)\"></div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"columns is-vcentered\">\n <div class=\"column\">\n <span class=\"total-old\" v-html=\"$filters.price(item.bundle.priceOld)\"></span>\n <span class=\"bundle-amount\" v-html=\"__('shop.cart.bundle_amount') + item.bundle.amount\"></span>\n </div>\n <div class=\"column\">\n <div class=\"is-flex is-align-items-center\">\n <span class=\"total\" v-html=\"$filters.price(item.bundle.price)\"></span>\n <bundle-add :id=\"item.id\" :second=\"item.second.id\" v-bind:third=\"item.third ? item.third.id : null\"></bundle-add>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <svg class=\"swiper-nav prev\" ref=\"bundlesSliderPrev\">\n <use xlink:href=\"#arrow-submenu\" />\n </svg>\n <svg class=\"swiper-nav next\" ref=\"bundlesSliderNext\">\n <use xlink:href=\"#arrow-submenu\" />\n </svg>\n </div>\n </div>\n <div v-else class=\"empty\">\n <div class=\"title\">{{ __('shop.cart.no_no') }}</div>\n <div class=\"message\">\n {{ __('shop.cart.no_prop') }}\n <a :href=\"$env.locale.url ? $env.locale.url : '/'\">{{ __('shop.cart.no_home') }}</a>, <br />{{ __('shop.cart.no_search') }}\n </div>\n <button class=\"button continue\" @click=\"close\">{{ __('shop.cart.continue') }}</button>\n <div class=\"viewed-wrapper\">\n <viewed :slider=\"true\"></viewed>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { ref, computed, defineComponent, provide } from 'vue';\nimport { useStore } from 'vuex';\nimport { pluralize } from '@perevorot/shop/dist/helpers';\nimport Swiper from 'swiper';\nimport { Navigation } from 'swiper/modules';\n\nexport default /*#__PURE__*/ defineComponent({\n name: 'cart',\n props: {\n isModal: {\n type: Boolean,\n default: true\n },\n cartStorage: {\n type: String,\n default: 'cart'\n }\n },\n setup(props) {\n const store = useStore();\n const loading = ref(false);\n const cartStorage = props.cartStorage;\n\n provide('cartStorage', cartStorage);\n\n const items = computed(() => store.getters[cartStorage + '/items']);\n const modal = computed(() => store.getters[cartStorage + '/modal']);\n const total = computed(() => store.getters[cartStorage + '/total']);\n const quantity = computed(() => store.getters[cartStorage + '/quantity']);\n\n const open = () => {\n store.commit(cartStorage + '/modal', modal.value ? null : 'cart');\n };\n\n const close = () => {\n store.commit(cartStorage + '/modal', null);\n };\n\n const clear = () => {\n loading.value = true;\n\n store.dispatch(cartStorage + '/clear', {\n cart: cartStorage,\n finally: () => {\n loading.value = false;\n }\n });\n };\n\n store.dispatch(cartStorage + '/get', {\n cart: cartStorage,\n finally: () => { }\n });\n\n document.body.addEventListener('click', (event) => {\n if (modal.value && !event.target.closest('.cart')) {\n close();\n }\n });\n\n window.addEventListener('keyup', (e) => {\n if (modal.value && e.key === 'Escape') {\n close();\n }\n });\n\n const goto = (href) => {\n window.addEventListener('beforeunload', () => {\n store.commit(cartStorage + '/modal', null);\n });\n\n window.addEventListener('pagehide', () => {\n store.commit(cartStorage + '/modal', null);\n });\n\n window.location.href = href;\n };\n\n let crossSwiper;\n const crossSlider = ref(null);\n const crossSliderNext = ref(null);\n const crossSliderPrev = ref(null);\n\n const cross = computed(() => {\n const cross = store.getters[cartStorage + '/cross'];\n\n if (crossSlider.value) {\n if (crossSwiper) {\n crossSwiper.destroy();\n }\n\n if (cross.length) {\n crossSwiper = new Swiper(crossSlider.value, {\n slidesPerView: 1,\n slidesPerGroup: 1,\n breakpoints: {\n 768: {\n slidesPerView: 2,\n slidesPerGroup: 2\n }\n },\n spaceBetween: 0,\n allowTouchMove: true,\n modules: [Navigation],\n mousewheel: {\n forceToAxis: true\n },\n navigation: {\n nextEl: crossSliderNext.value,\n prevEl: crossSliderPrev.value\n }\n });\n }\n }\n\n return cross;\n });\n\n let bundlesSwiper;\n const bundlesSlider = ref(null);\n const bundlesSliderNext = ref(null);\n const bundlesSliderPrev = ref(null);\n\n const bundles = computed(() => {\n const bundles = store.getters[cartStorage + '/bundles'];\n\n if (bundlesSlider.value) {\n if (bundlesSwiper) {\n bundlesSwiper.destroy();\n }\n\n if (bundles.length) {\n bundlesSwiper = new Swiper(bundlesSlider.value, {\n slidesPerView: 1,\n spaceBetween: 0,\n allowTouchMove: true,\n mousewheel: {\n forceToAxis: true\n },\n navigation: {\n nextEl: bundlesSliderNext.value,\n prevEl: bundlesSliderPrev.value\n }\n });\n }\n }\n\n return bundles;\n });\n\n window.addEventListener('beforeunload', () => {\n store.commit(cartStorage + '/modal', null);\n });\n\n window.addEventListener('pagehide', () => {\n store.commit(cartStorage + '/modal', null);\n });\n\n const isLoading = ref(false);\n\n const checkout = () => {\n isLoading.value = true;\n window.location.href = $ziggy('shop.checkout');\n };\n\n return {\n loading,\n items,\n modal,\n total,\n quantity,\n open,\n close,\n clear,\n pluralize,\n goto,\n cross,\n crossSlider,\n crossSliderPrev,\n crossSliderNext,\n bundles,\n bundlesSlider,\n bundlesSliderPrev,\n bundlesSliderNext,\n checkout,\n isLoading,\n };\n }\n});\n</script>"],"names":["script","defineComponent","name","props","isModal","type","Boolean","default","cartStorage","String","setup","store","useStore","loading","ref","provide","items","computed","getters","modal","total","quantity","close","commit","dispatch","cart","finally","document","body","addEventListener","event","value","target","closest","window","e","key","crossSwiper","bundlesSwiper","crossSlider","crossSliderNext","crossSliderPrev","cross","destroy","length","Swiper","slidesPerView","slidesPerGroup","breakpoints","768","spaceBetween","allowTouchMove","modules","Navigation","mousewheel","forceToAxis","navigation","nextEl","prevEl","bundlesSlider","bundlesSliderNext","bundlesSliderPrev","bundles","isLoading","open","clear","pluralize","goto","href","location","checkout","$ziggy","_hoisted_1","class","_hoisted_2","_createElementVNode","createElementVNode","aria-hidden","role","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_12","_hoisted_13","_hoisted_15","_hoisted_16","xlink:href","_hoisted_19","_hoisted_20","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","_hoisted_28","_hoisted_30","_hoisted_32","_hoisted_34","_hoisted_35","_hoisted_36","_hoisted_42","_hoisted_44","_hoisted_46","_hoisted_47","_hoisted_48","_hoisted_51","_hoisted_60","_hoisted_62","_hoisted_63","_hoisted_69","_hoisted_70","_hoisted_71","_hoisted_73","_hoisted_74","_hoisted_77","_hoisted_83","_hoisted_84","_hoisted_85","_hoisted_87","_hoisted_88","_hoisted_100","_hoisted_101","_hoisted_103","_hoisted_104","_hoisted_106","_hoisted_107","_hoisted_110","_hoisted_111","_hoisted_120","_hoisted_121","_hoisted_124","_createElementBlock","createElementBlock","_normalizeClass","is-open","_ctx","_renderSlot","renderSlot","$slots","onClick","apply","arguments","_hoisted_3","_createTextVNode","_hoisted_4","_hoisted_5","_openBlock","_hoisted_6","_toDisplayString","__","innerHTML","$filters","price","_hoisted_11","is-disabled","_hoisted_14","toDisplayString","is-active","textContent","openBlock","_hoisted_22","_Fragment","Fragment","_renderList","item","_createBlock","createBlock","_component_cart_item","id","_","fn","_withCtx","slotProps","_normalizeProps","_guardReactiveProps","createTextVNode","_hoisted_31","_hoisted_33","$event","no-thumb","image","src","_hoisted_39","_hoisted_41","data-code","code","shop-product","shop-product-name","_hoisted_45","priceOld","shop-product-price","_createVNode","_component_cart_add","is-simple","_hoisted_52","_hoisted_53","_hoisted_55","_hoisted_56","_hoisted_58","_hoisted_59","_hoisted_61","renderList","is-third","third","_hoisted_66","_hoisted_68","_hoisted_72","_hoisted_76","second","_hoisted_80","_hoisted_82","_hoisted_86","_hoisted_90","_hoisted_92","_hoisted_93","_hoisted_96","_hoisted_98","_hoisted_99","_hoisted_102","bundle","amount","_component_bundle_add","_hoisted_113","_hoisted_115","_hoisted_116","_hoisted_118","_hoisted_119","$env","locale","url","_hoisted_122","_hoisted_123","_component_viewed","slider"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("vue"),n=require("swiper");function
|
|
1
|
+
"use strict";var e=require("vue"),n=require("swiper"),o=require("swiper/modules");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=i(n),r=e.defineComponent({name:"viewed",props:{slider:{type:Boolean,default:!1}},setup:function(n){var i=!1,r=e.ref(null),a=e.ref(null),c=function(e){e.forEach((function(e){e.isIntersecting&&(i||(i=!0,l()))}))},l=function(){$http.post($ziggy("api.viewed"),{action:"list",account:-1!==window.location.href.indexOf("/account/viewed")}).then((function(i){window.app.component("viewed-container",{template:i.data?i.data:"<i></i>"}),a.value="viewed-container",e.nextTick((function(){if(n.slider){var e=window.viewedSwiperOptions?window.viewedSwiperOptions:{slidesPerView:5,spaceBetween:24,freeMode:!0,navigation:{nextEl:".swiper-button-next",prevEl:".swiper-button-prev"},mousewheel:{forceToAxis:!0}};e.modules=[o.Navigation,o.Mousewheel],new t.default(r.value.querySelector(".swiper"),e)}window.lazyImages&&window.lazyImages.update(),window.promoCodeCallback&&"function"==typeof window.promoCodeCallback&&window.promoCodeCallback(r.value)}))}))};return e.onMounted((function(){new IntersectionObserver(c).observe(r.value)})),{container:r,component:a}}}),a={ref:"container"};r.render=function(n,o,i,t,r,c){return e.openBlock(),e.createElementBlock("div",a,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.component)))],512)},module.exports=r;
|
|
2
2
|
//# sourceMappingURL=Viewed.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Viewed.js","sources":["../../../../src/components/shop/viewed/Viewed.vue","../../../../src/components/shop/viewed/Viewed.vue?vue&type=template&id=
|
|
1
|
+
{"version":3,"file":"Viewed.js","sources":["../../../../src/components/shop/viewed/Viewed.vue","../../../../src/components/shop/viewed/Viewed.vue?vue&type=template&id=4628efcc&lang.js"],"sourcesContent":["<template>\n <div ref=\"container\">\n <component :is=\"component\"></component>\n </div>\n</template>\n<script>\nimport { ref, onMounted, nextTick, defineComponent } from 'vue';\nimport Swiper from 'swiper';\nimport { Navigation, Mousewheel } from 'swiper/modules';\n\nexport default defineComponent({\n name: 'viewed',\n props: {\n slider: {\n type: Boolean,\n default: false\n }\n },\n setup(props) {\n let inited = false;\n\n const container = ref(null);\n const component = ref(null);\n\n const callback = (entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n if (!inited) {\n inited = true;\n load();\n }\n }\n });\n };\n\n const load = () => {\n $http\n .post($ziggy('api.viewed'), {\n action: 'list',\n account: window.location.href.indexOf('/account/viewed') !== -1\n })\n .then((response) => {\n window.app.component('viewed-container', {\n template: response.data ? response.data : '<i></i>'\n });\n\n component.value = 'viewed-container';\n\n nextTick(() => {\n if (props.slider) {\n const options = window.viewedSwiperOptions\n ? window.viewedSwiperOptions\n : {\n slidesPerView: 5,\n spaceBetween: 24,\n freeMode: true,\n navigation: {\n nextEl: '.swiper-button-next',\n prevEl: '.swiper-button-prev'\n },\n mousewheel: {\n forceToAxis: true\n }\n };\n\n options.modules = [Navigation, Mousewheel];\n\n new Swiper(container.value.querySelector('.swiper'), options);\n }\n\n if (window.lazyImages) {\n window.lazyImages.update();\n }\n\n if (window.promoCodeCallback && typeof window.promoCodeCallback === 'function') {\n window.promoCodeCallback(container.value);\n }\n });\n });\n };\n\n onMounted(() => {\n const observer = new IntersectionObserver(callback);\n observer.observe(container.value);\n });\n\n return {\n container,\n component\n };\n }\n});\n</script>\n","<template>\n <div ref=\"container\">\n <component :is=\"component\"></component>\n </div>\n</template>\n<script>\nimport { ref, onMounted, nextTick, defineComponent } from 'vue';\nimport Swiper from 'swiper';\nimport { Navigation, Mousewheel } from 'swiper/modules';\n\nexport default defineComponent({\n name: 'viewed',\n props: {\n slider: {\n type: Boolean,\n default: false\n }\n },\n setup(props) {\n let inited = false;\n\n const container = ref(null);\n const component = ref(null);\n\n const callback = (entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n if (!inited) {\n inited = true;\n load();\n }\n }\n });\n };\n\n const load = () => {\n $http\n .post($ziggy('api.viewed'), {\n action: 'list',\n account: window.location.href.indexOf('/account/viewed') !== -1\n })\n .then((response) => {\n window.app.component('viewed-container', {\n template: response.data ? response.data : '<i></i>'\n });\n\n component.value = 'viewed-container';\n\n nextTick(() => {\n if (props.slider) {\n const options = window.viewedSwiperOptions\n ? window.viewedSwiperOptions\n : {\n slidesPerView: 5,\n spaceBetween: 24,\n freeMode: true,\n navigation: {\n nextEl: '.swiper-button-next',\n prevEl: '.swiper-button-prev'\n },\n mousewheel: {\n forceToAxis: true\n }\n };\n\n options.modules = [Navigation, Mousewheel];\n\n new Swiper(container.value.querySelector('.swiper'), options);\n }\n\n if (window.lazyImages) {\n window.lazyImages.update();\n }\n\n if (window.promoCodeCallback && typeof window.promoCodeCallback === 'function') {\n window.promoCodeCallback(container.value);\n }\n });\n });\n };\n\n onMounted(() => {\n const observer = new IntersectionObserver(callback);\n observer.observe(container.value);\n });\n\n return {\n container,\n component\n };\n }\n});\n</script>\n"],"names":["script","defineComponent","name","props","slider","type","Boolean","default","setup","inited","container","ref","component","callback","entries","forEach","entry","isIntersecting","load","$http","post","$ziggy","action","account","window","location","href","indexOf","then","response","app","template","data","value","nextTick","options","viewedSwiperOptions","slidesPerView","spaceBetween","freeMode","navigation","nextEl","prevEl","mousewheel","forceToAxis","modules","Navigation","Mousewheel","Swiper","querySelector","lazyImages","update","promoCodeCallback","onMounted","IntersectionObserver","observe","_hoisted_1","_openBlock","openBlock","_createElementBlock","_createBlock","_resolveDynamicComponent","_ctx"],"mappings":"qKAUAA,EAAeC,kBAAgB,CAC3BC,KAAM,SACNC,MAAO,CACHC,OAAQ,CACJC,KAAMC,QACNC,SAAS,IAGjBC,MAAK,SAACL,GACF,IAAIM,GAAS,EAEPC,EAAYC,MAAI,MAChBC,EAAYD,MAAI,MAEhBE,EAAW,SAACC,GACdA,EAAQC,SAAQ,SAACC,GACTA,EAAMC,iBACDR,IACDA,GAAS,EACTS,UAMVA,EAAO,WACTC,MACKC,KAAKC,OAAO,cAAe,CACxBC,OAAQ,OACRC,SAA8D,IAArDC,OAAOC,SAASC,KAAKC,QAAQ,qBAEzCC,MAAK,SAACC,GACHL,OAAOM,IAAIlB,UAAU,mBAAoB,CACrCmB,SAAUF,EAASG,KAAOH,EAASG,KAAO,YAG9CpB,EAAUqB,MAAQ,mBAElBC,EAAAA,UAAS,WACL,GAAI/B,EAAMC,OAAQ,CACd,IAAM+B,EAAUX,OAAOY,oBACjBZ,OAAOY,oBACP,CACEC,cAAe,EACfC,aAAc,GACdC,UAAU,EACVC,WAAY,CACRC,OAAQ,sBACRC,OAAQ,uBAEZC,WAAY,CACRC,aAAa,IAIzBT,EAAQU,QAAU,CAACC,EAAUA,WAAEC,EAAUA,YAEzC,IAAIC,EAAAA,QAAOtC,EAAUuB,MAAMgB,cAAc,WAAYd,GAGrDX,OAAO0B,YACP1B,OAAO0B,WAAWC,SAGlB3B,OAAO4B,mBAAyD,mBAA7B5B,OAAO4B,mBAC1C5B,OAAO4B,kBAAkB1C,EAAUuB,cAWvD,OALAoB,EAAAA,WAAU,WACW,IAAIC,qBAAqBzC,GACjC0C,QAAQ7C,EAAUuB,UAGxB,CACHvB,UAAAA,EACAE,UAAAA,MCvFH4C,EAAA,CAAA7C,IAAI,4CAAT,OAAA8C,EAAAC,YAAAC,EAAAA,mBAEK,MAFLH,EAEK,EADDC,EAAAC,YAAAE,EAAAA,YAAsCC,EAAAA,wBAAtBC,EAASlD"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@perevorot/shop",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.159",
|
|
4
4
|
"description": "",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist/*"
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"@popperjs/core": "^2.11.0",
|
|
17
17
|
"@types/ziggy-js": "^1.3.0",
|
|
18
18
|
"@vueform/slider": "^2.0.8",
|
|
19
|
-
"axios": "^
|
|
19
|
+
"axios": "^1.7.2",
|
|
20
20
|
"bulma": "^0.9.3",
|
|
21
21
|
"bulma-checkradio": "^2.1.2",
|
|
22
22
|
"bulma-switch": "^2.0.0",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"js-cookie": "^3.0.5",
|
|
29
29
|
"maska": "^1.5.0",
|
|
30
30
|
"rollup-plugin-vue": "^6.0.0",
|
|
31
|
-
"secure-ls": "^
|
|
31
|
+
"secure-ls": "^2.0.0",
|
|
32
32
|
"simplebar": "^6.2.5",
|
|
33
33
|
"swiper": "^11.1.3",
|
|
34
34
|
"v-calendar": "^3.0.3",
|