@perevorot/shop 1.1.1 → 1.1.2
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/api.js +1 -1
- package/dist/api.js.map +1 -1
- package/dist/app.js +1 -1
- package/dist/app.js.map +1 -1
- package/dist/global.js +1 -1
- package/dist/global.js.map +1 -1
- package/dist/helpers.js +1 -1
- package/dist/helpers.js.map +1 -1
- package/dist/js/components/account/Account.js +1 -1
- package/dist/js/components/account/Account.js.map +1 -1
- package/dist/js/components/account/OrderItem.js +1 -1
- package/dist/js/components/account/OrderItem.js.map +1 -1
- package/dist/js/components/account/Orders.js +1 -1
- package/dist/js/components/account/Orders.js.map +1 -1
- package/dist/js/components/account/User.js +1 -1
- package/dist/js/components/account/User.js.map +1 -1
- package/dist/js/components/account/Wish.js +1 -1
- package/dist/js/components/account/Wish.js.map +1 -1
- package/dist/js/components/auth/Forget.js +1 -1
- package/dist/js/components/auth/Forget.js.map +1 -1
- package/dist/js/components/auth/Login.js +1 -1
- package/dist/js/components/auth/Login.js.map +1 -1
- package/dist/js/components/auth/Registration.js +1 -1
- package/dist/js/components/auth/Registration.js.map +1 -1
- package/dist/js/components/auth/Reset.js +1 -1
- package/dist/js/components/auth/Reset.js.map +1 -1
- package/dist/js/components/auth/User.js +1 -1
- package/dist/js/components/auth/User.js.map +1 -1
- package/dist/js/components/shop/Catalog.js +1 -1
- package/dist/js/components/shop/Catalog.js.map +1 -1
- package/dist/js/components/shop/CodeCopy.js +1 -1
- package/dist/js/components/shop/CodeCopy.js.map +1 -1
- package/dist/js/components/shop/Cross.js +1 -1
- package/dist/js/components/shop/Cross.js.map +1 -1
- package/dist/js/components/shop/FilterToggle.js +1 -1
- package/dist/js/components/shop/FilterToggle.js.map +1 -1
- package/dist/js/components/shop/Gallery.js +1 -1
- package/dist/js/components/shop/Gallery.js.map +1 -1
- package/dist/js/components/shop/Pagination.js +1 -1
- package/dist/js/components/shop/Pagination.js.map +1 -1
- package/dist/js/components/shop/PromoProducts.js +1 -1
- package/dist/js/components/shop/PromoProducts.js.map +1 -1
- package/dist/js/components/shop/Search.js +1 -1
- package/dist/js/components/shop/Search.js.map +1 -1
- package/dist/js/components/shop/bundle/Bundle.js +1 -1
- package/dist/js/components/shop/bundle/Bundle.js.map +1 -1
- package/dist/js/components/shop/bundle/BundleAdd.js +1 -1
- package/dist/js/components/shop/bundle/BundleAdd.js.map +1 -1
- package/dist/js/components/shop/cart/Cart.js +1 -1
- package/dist/js/components/shop/cart/Cart.js.map +1 -1
- package/dist/js/components/shop/cart/CartAdd.js +1 -1
- package/dist/js/components/shop/cart/CartAdd.js.map +1 -1
- package/dist/js/components/shop/cart/CartItem.js +1 -1
- package/dist/js/components/shop/cart/CartItem.js.map +1 -1
- package/dist/js/components/shop/cart/CartTrigger.js +1 -1
- package/dist/js/components/shop/cart/CartTrigger.js.map +1 -1
- package/dist/js/components/shop/cart/SuccessMessage.js +1 -1
- package/dist/js/components/shop/cart/SuccessMessage.js.map +1 -1
- package/dist/js/components/shop/compare/Compare.js +1 -1
- package/dist/js/components/shop/compare/Compare.js.map +1 -1
- package/dist/js/components/shop/compare/CompareAdd.js +1 -1
- package/dist/js/components/shop/compare/CompareAdd.js.map +1 -1
- package/dist/js/components/shop/compare/CompareDelete.js +1 -1
- package/dist/js/components/shop/compare/CompareDelete.js.map +1 -1
- package/dist/js/components/shop/compare/Comparsion.js +1 -1
- package/dist/js/components/shop/compare/Comparsion.js.map +1 -1
- package/dist/js/components/shop/compare/SuccessMessage.js +1 -1
- package/dist/js/components/shop/compare/SuccessMessage.js.map +1 -1
- package/dist/js/components/shop/filters/FilterSearch.js +1 -1
- package/dist/js/components/shop/filters/FilterSearch.js.map +1 -1
- package/dist/js/components/shop/filters/Price.js +1 -1
- package/dist/js/components/shop/filters/Price.js.map +1 -1
- package/dist/js/components/shop/order/Checkout.js +1 -1
- package/dist/js/components/shop/order/Checkout.js.map +1 -1
- package/dist/js/components/shop/order/CheckoutItem.js +1 -1
- package/dist/js/components/shop/order/CheckoutItem.js.map +1 -1
- package/dist/js/components/shop/order/OneClick.js +1 -1
- package/dist/js/components/shop/order/OneClick.js.map +1 -1
- package/dist/js/components/shop/order/shipping/CheckoutShippingCourier.js +1 -1
- package/dist/js/components/shop/order/shipping/CheckoutShippingCourier.js.map +1 -1
- package/dist/js/components/shop/order/shipping/CheckoutShippingNovaposhtaAddress.js +1 -1
- package/dist/js/components/shop/order/shipping/CheckoutShippingNovaposhtaAddress.js.map +1 -1
- package/dist/js/components/shop/order/shipping/CheckoutShippingNovaposhtaWarehouse.js +1 -1
- package/dist/js/components/shop/order/shipping/CheckoutShippingNovaposhtaWarehouse.js.map +1 -1
- package/dist/js/components/shop/order/shipping/CheckoutShippingPickup.js +1 -1
- package/dist/js/components/shop/order/shipping/CheckoutShippingPickup.js.map +1 -1
- package/dist/js/components/shop/reviews/Review.js +1 -1
- package/dist/js/components/shop/reviews/Review.js.map +1 -1
- package/dist/js/components/shop/viewed/Viewed.js +1 -1
- package/dist/js/components/shop/viewed/Viewed.js.map +1 -1
- package/dist/js/components/shop/viewed/ViewedDelete.js +1 -1
- package/dist/js/components/shop/viewed/ViewedDelete.js.map +1 -1
- package/dist/js/components/shop/viewed/Viewer.js +1 -1
- package/dist/js/components/shop/viewed/Viewer.js.map +1 -1
- package/dist/js/components/shop/wishlist/SuccessMessage.js +1 -1
- package/dist/js/components/shop/wishlist/SuccessMessage.js.map +1 -1
- package/dist/js/components/shop/wishlist/Wishlist.js +1 -1
- package/dist/js/components/shop/wishlist/Wishlist.js.map +1 -1
- package/dist/js/components/shop/wishlist/WishlistAdd.js +1 -1
- package/dist/js/components/shop/wishlist/WishlistAdd.js.map +1 -1
- package/dist/js/components/shop/wishlist/WishlistDelete.js +1 -1
- package/dist/js/components/shop/wishlist/WishlistDelete.js.map +1 -1
- package/dist/js/forms/FormCheckbox.js +1 -1
- package/dist/js/forms/FormCheckbox.js.map +1 -1
- package/dist/js/forms/FormCheckboxes.js +1 -1
- package/dist/js/forms/FormCheckboxes.js.map +1 -1
- package/dist/js/forms/FormPassword.js +1 -1
- package/dist/js/forms/FormPassword.js.map +1 -1
- package/dist/js/forms/FormRadio.js +1 -1
- package/dist/js/forms/FormRadio.js.map +1 -1
- package/dist/js/forms/FormRating.js +1 -1
- package/dist/js/forms/FormRating.js.map +1 -1
- package/dist/js/forms/FormSelect.js +1 -1
- package/dist/js/forms/FormSelect.js.map +1 -1
- package/dist/js/forms/FormSwitch.js +1 -1
- package/dist/js/forms/FormSwitch.js.map +1 -1
- package/dist/js/forms/FormText.js +1 -1
- package/dist/js/forms/FormText.js.map +1 -1
- package/dist/js/forms/FormTextarea.js +1 -1
- package/dist/js/forms/FormTextarea.js.map +1 -1
- package/dist/store.js +1 -1
- package/dist/store.js.map +1 -1
- package/dist/vuex.js +1 -1
- package/dist/vuex.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CartAdd.js","sources":["../../../../../src/js/components/shop/cart/SuccessMessage.vue","../../../../../src/js/components/shop/cart/SuccessMessage.vue?vue&type=template&id=39849712&lang.js","../../../../../src/js/components/shop/cart/CartAdd.vue","../../../../../src/js/components/shop/cart/CartAdd.vue?vue&type=template&id=5462c63a&lang.js"],"sourcesContent":["<template>\n <div class=\"shop-cart-success-message\">\n {{ translate(\"shop.cart.message\") }}\n </div>\n</template>\n<script>\nexport default {\n setup() {\n const translate = window.__;\n\n return {\n translate,\n };\n },\n};\n</script>","<template>\n <div class=\"shop-cart-success-message\">\n {{ translate(\"shop.cart.message\") }}\n </div>\n</template>\n<script>\nexport default {\n setup() {\n const translate = window.__;\n\n return {\n translate,\n };\n },\n};\n</script>","<template>\n <div class=\"cart-add\" ref=\"button\" v-bind:class=\"{ 'is-already-in-cart': $env.shop.isAlreadyInCart && isAlreadyInCart && cart > 0 }\">\n <div class=\"columns\">\n <div class=\"column\" v-if=\"$env.shop.isCustomQuantity && isChangeQuantity\">\n <div class=\"cart-change-quantity\">\n <button class=\"button is-small decrease\" @click=\"decrease\" :disabled=\"loading || quantity == 1\" v-if=\"isPlusMinus\">-</button>\n <input class=\"input is-small\" type=\"number\" min=\"1\" v-model=\"quantity\" :disabled=\"loading\" />\n <button class=\"button is-small increase\" @click=\"increase\" :disabled=\"loading\" v-if=\"isPlusMinus\">+</button>\n </div>\n </div>\n <div class=\"column is-narrow\">\n <button class=\"button is-link is-small\" v-on:click=\"add\" :disabled=\"loading\">\n <slot :label=\"__('shop.cart.add')\">\n <svg class=\"icon cart\">\n <use v-bind=\"{ 'xlink:href': cartIcon }\" />\n </svg>\n <span class=\"cart-add-button-label\">{{ __('shop.cart.add') }}</span>\n </slot>\n </button>\n </div>\n </div>\n <div v-if=\"$env.shop.isAlreadyInCart && isAlreadyInCart && cart > 0\">\n {{ __('shop.cart.already', { quantity: cart }) }}\n <br />\n <a v-on:click.prevent=\"remove\" :disabled=\"loading\" v-text=\"__('shop.cart.remove')\"></a>\n </div>\n </div>\n</template>\n<script>\nimport { ref, computed } from 'vue';\nimport { useStore } from 'vuex';\nimport { useToast } from 'vue-toastification';\nimport SuccessMessage from './SuccessMessage.vue';\n\nconst toast = useToast();\n\nexport default {\n name: 'cart-add',\n props: {\n id: Number,\n isChangeQuantity: {\n type: Boolean,\n default: true\n },\n isAlreadyInCart: {\n type: Boolean,\n default: true\n },\n isSimple: {\n type: Boolean,\n default: false\n },\n isPlusMinus: {\n type: Boolean,\n default: false\n },\n after: {\n type: String,\n default: 'modal'\n },\n product: null\n },\n setup(props) {\n const store = useStore();\n const loading = ref(false);\n const quantity = ref(1);\n const button = ref(null);\n\n const cart = computed(() => store.getters['cart/productQuantity'](props.id));\n\n const cartIcon = computed(() => {\n return $env.shop.isAlreadyInCart && isAlreadyInCart && cart.value > 0 ? '#cart-add-already' : '#cart-add';\n });\n\n let isAlreadyInCart = props.isAlreadyInCart;\n let isChangeQuantity = props.isChangeQuantity;\n let isPlusMinus = props.isPlusMinus;\n\n if (props.isSimple) {\n isAlreadyInCart = false;\n isChangeQuantity = false;\n isPlusMinus = false;\n }\n\n const add = () => {\n loading.value = true;\n\n let options = [];\n\n if (button.value.closest('.product-main')) {\n const checkedOptions = document.querySelectorAll('#options input[type=checkbox]:checked');\n\n checkedOptions.forEach((element) => {\n options.push(parseInt(element.value));\n });\n }\n\n const q = Math.max(1, quantity.value);\n const product = button.value.closest('[shop-product]');\n const name = props.product ? props.product.name : product.querySelector('[shop-product-name]').textContent;\n const price = props.product ? props.product.price_clean : product.querySelector('[shop-product-price]').childNodes[0].nodeValue.replace(/ /g, '');\n const code = props.product ? props.product.code : product.dataset.code;\n const category = props.product ? props.product.category : product.dataset.category;\n const brand = props.product ? props.product.brand : product.dataset.brand;\n\n store.dispatch('cart/add', {\n product: {\n id: props.id,\n quantity: q,\n options: options\n },\n finally: () => {\n loading.value = false;\n quantity.value = 1;\n\n if (props.after == 'message') {\n const component = {\n component: SuccessMessage\n };\n\n toast(component, {\n type: 'success-cart'\n });\n }\n\n const object = {\n ecommerce: {\n currencyCode: 'UAH',\n items: [\n {\n item_name: name,\n item_id: code,\n price: price,\n quantity: q,\n item_brand: brand,\n item_category: category,\n }\n ]\n },\n event: 'add_to_cart'\n };\n\n if ($env.debug.ecommerce) {\n console.log(JSON.stringify(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 };\n\n const remove = () => {\n loading.value = true;\n\n store.dispatch('cart/remove', {\n id: props.id,\n finally: () => {\n loading.value = false;\n\n const object = {\n ecommerce: {\n currencyCode: 'UAH',\n items: [\n {\n item_name: name,\n item_id: code,\n price: price,\n quantity: q,\n item_brand: brand,\n item_category: category,\n }\n ]\n },\n event: 'remove_from_cart'\n };\n\n if ($env.debug.ecommerce) {\n console.log(JSON.stringify(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 };\n\n const increase = () => {\n quantity.value++;\n };\n\n const decrease = () => {\n if (quantity.value > 1) {\n quantity.value--;\n }\n };\n\n return {\n button,\n loading,\n quantity,\n add,\n remove,\n cart,\n increase,\n decrease,\n isAlreadyInCart,\n isChangeQuantity,\n isPlusMinus,\n cartIcon,\n };\n }\n};\n</script>\n","<template>\n <div class=\"cart-add\" ref=\"button\" v-bind:class=\"{ 'is-already-in-cart': $env.shop.isAlreadyInCart && isAlreadyInCart && cart > 0 }\">\n <div class=\"columns\">\n <div class=\"column\" v-if=\"$env.shop.isCustomQuantity && isChangeQuantity\">\n <div class=\"cart-change-quantity\">\n <button class=\"button is-small decrease\" @click=\"decrease\" :disabled=\"loading || quantity == 1\" v-if=\"isPlusMinus\">-</button>\n <input class=\"input is-small\" type=\"number\" min=\"1\" v-model=\"quantity\" :disabled=\"loading\" />\n <button class=\"button is-small increase\" @click=\"increase\" :disabled=\"loading\" v-if=\"isPlusMinus\">+</button>\n </div>\n </div>\n <div class=\"column is-narrow\">\n <button class=\"button is-link is-small\" v-on:click=\"add\" :disabled=\"loading\">\n <slot :label=\"__('shop.cart.add')\">\n <svg class=\"icon cart\">\n <use v-bind=\"{ 'xlink:href': cartIcon }\" />\n </svg>\n <span class=\"cart-add-button-label\">{{ __('shop.cart.add') }}</span>\n </slot>\n </button>\n </div>\n </div>\n <div v-if=\"$env.shop.isAlreadyInCart && isAlreadyInCart && cart > 0\">\n {{ __('shop.cart.already', { quantity: cart }) }}\n <br />\n <a v-on:click.prevent=\"remove\" :disabled=\"loading\" v-text=\"__('shop.cart.remove')\"></a>\n </div>\n </div>\n</template>\n<script>\nimport { ref, computed } from 'vue';\nimport { useStore } from 'vuex';\nimport { useToast } from 'vue-toastification';\nimport SuccessMessage from './SuccessMessage.vue';\n\nconst toast = useToast();\n\nexport default {\n name: 'cart-add',\n props: {\n id: Number,\n isChangeQuantity: {\n type: Boolean,\n default: true\n },\n isAlreadyInCart: {\n type: Boolean,\n default: true\n },\n isSimple: {\n type: Boolean,\n default: false\n },\n isPlusMinus: {\n type: Boolean,\n default: false\n },\n after: {\n type: String,\n default: 'modal'\n },\n product: null\n },\n setup(props) {\n const store = useStore();\n const loading = ref(false);\n const quantity = ref(1);\n const button = ref(null);\n\n const cart = computed(() => store.getters['cart/productQuantity'](props.id));\n\n const cartIcon = computed(() => {\n return $env.shop.isAlreadyInCart && isAlreadyInCart && cart.value > 0 ? '#cart-add-already' : '#cart-add';\n });\n\n let isAlreadyInCart = props.isAlreadyInCart;\n let isChangeQuantity = props.isChangeQuantity;\n let isPlusMinus = props.isPlusMinus;\n\n if (props.isSimple) {\n isAlreadyInCart = false;\n isChangeQuantity = false;\n isPlusMinus = false;\n }\n\n const add = () => {\n loading.value = true;\n\n let options = [];\n\n if (button.value.closest('.product-main')) {\n const checkedOptions = document.querySelectorAll('#options input[type=checkbox]:checked');\n\n checkedOptions.forEach((element) => {\n options.push(parseInt(element.value));\n });\n }\n\n const q = Math.max(1, quantity.value);\n const product = button.value.closest('[shop-product]');\n const name = props.product ? props.product.name : product.querySelector('[shop-product-name]').textContent;\n const price = props.product ? props.product.price_clean : product.querySelector('[shop-product-price]').childNodes[0].nodeValue.replace(/ /g, '');\n const code = props.product ? props.product.code : product.dataset.code;\n const category = props.product ? props.product.category : product.dataset.category;\n const brand = props.product ? props.product.brand : product.dataset.brand;\n\n store.dispatch('cart/add', {\n product: {\n id: props.id,\n quantity: q,\n options: options\n },\n finally: () => {\n loading.value = false;\n quantity.value = 1;\n\n if (props.after == 'message') {\n const component = {\n component: SuccessMessage\n };\n\n toast(component, {\n type: 'success-cart'\n });\n }\n\n const object = {\n ecommerce: {\n currencyCode: 'UAH',\n items: [\n {\n item_name: name,\n item_id: code,\n price: price,\n quantity: q,\n item_brand: brand,\n item_category: category,\n }\n ]\n },\n event: 'add_to_cart'\n };\n\n if ($env.debug.ecommerce) {\n console.log(JSON.stringify(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 };\n\n const remove = () => {\n loading.value = true;\n\n store.dispatch('cart/remove', {\n id: props.id,\n finally: () => {\n loading.value = false;\n\n const object = {\n ecommerce: {\n currencyCode: 'UAH',\n items: [\n {\n item_name: name,\n item_id: code,\n price: price,\n quantity: q,\n item_brand: brand,\n item_category: category,\n }\n ]\n },\n event: 'remove_from_cart'\n };\n\n if ($env.debug.ecommerce) {\n console.log(JSON.stringify(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 };\n\n const increase = () => {\n quantity.value++;\n };\n\n const decrease = () => {\n if (quantity.value > 1) {\n quantity.value--;\n }\n };\n\n return {\n button,\n loading,\n quantity,\n add,\n remove,\n cart,\n increase,\n decrease,\n isAlreadyInCart,\n isChangeQuantity,\n isPlusMinus,\n cartIcon,\n };\n }\n};\n</script>\n"],"names":["setup","translate","window","__","class","_createElementBlock","_hoisted_1","$setup","toast","useToast","name","props","id","Number","isChangeQuantity","type","Boolean","default","isAlreadyInCart","isSimple","isPlusMinus","after","String","product","store","useStore","loading","ref","quantity","button","cart","computed","getters","cartIcon","$env","shop","value","add","options","closest","document","querySelectorAll","forEach","element","push","parseInt","q","Math","max","querySelector","textContent","price","price_clean","childNodes","nodeValue","replace","code","dataset","category","brand","dispatch","finally","component","SuccessMessage","object","ecommerce","currencyCode","items","item_name","item_id","item_brand","item_category","event","debug","console","log","JSON","stringify","dataLayer","remove","increase","decrease","_createElementVNode","_ctx","isCustomQuantity","_hoisted_2","_hoisted_3","onClick","disabled","min","_hoisted_7","_renderSlot","label","_hoisted_9","_hoisted_10","_hoisted_12","_toDisplayString"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CartAdd.js","sources":["../../../../../src/js/components/shop/cart/SuccessMessage.vue","../../../../../src/js/components/shop/cart/SuccessMessage.vue?vue&type=template&id=39849712&lang.js","../../../../../src/js/components/shop/cart/CartAdd.vue","../../../../../src/js/components/shop/cart/CartAdd.vue?vue&type=template&id=5462c63a&lang.js"],"sourcesContent":["<template>\n <div class=\"shop-cart-success-message\">\n {{ translate(\"shop.cart.message\") }}\n </div>\n</template>\n<script>\nexport default {\n setup() {\n const translate = window.__;\n\n return {\n translate,\n };\n },\n};\n</script>","<template>\n <div class=\"shop-cart-success-message\">\n {{ translate(\"shop.cart.message\") }}\n </div>\n</template>\n<script>\nexport default {\n setup() {\n const translate = window.__;\n\n return {\n translate,\n };\n },\n};\n</script>","<template>\n <div class=\"cart-add\" ref=\"button\" v-bind:class=\"{ 'is-already-in-cart': $env.shop.isAlreadyInCart && isAlreadyInCart && cart > 0 }\">\n <div class=\"columns\">\n <div class=\"column\" v-if=\"$env.shop.isCustomQuantity && isChangeQuantity\">\n <div class=\"cart-change-quantity\">\n <button class=\"button is-small decrease\" @click=\"decrease\" :disabled=\"loading || quantity == 1\" v-if=\"isPlusMinus\">-</button>\n <input class=\"input is-small\" type=\"number\" min=\"1\" v-model=\"quantity\" :disabled=\"loading\" />\n <button class=\"button is-small increase\" @click=\"increase\" :disabled=\"loading\" v-if=\"isPlusMinus\">+</button>\n </div>\n </div>\n <div class=\"column is-narrow\">\n <button class=\"button is-link is-small\" v-on:click=\"add\" :disabled=\"loading\">\n <slot :label=\"__('shop.cart.add')\">\n <svg class=\"icon cart\">\n <use v-bind=\"{ 'xlink:href': cartIcon }\" />\n </svg>\n <span class=\"cart-add-button-label\">{{ __('shop.cart.add') }}</span>\n </slot>\n </button>\n </div>\n </div>\n <div v-if=\"$env.shop.isAlreadyInCart && isAlreadyInCart && cart > 0\">\n {{ __('shop.cart.already', { quantity: cart }) }}\n <br />\n <a v-on:click.prevent=\"remove\" :disabled=\"loading\" v-text=\"__('shop.cart.remove')\"></a>\n </div>\n </div>\n</template>\n<script>\nimport { ref, computed } from 'vue';\nimport { useStore } from 'vuex';\nimport { useToast } from 'vue-toastification';\nimport SuccessMessage from './SuccessMessage.vue';\n\nconst toast = useToast();\n\nexport default {\n name: 'cart-add',\n props: {\n id: Number,\n isChangeQuantity: {\n type: Boolean,\n default: true\n },\n isAlreadyInCart: {\n type: Boolean,\n default: true\n },\n isSimple: {\n type: Boolean,\n default: false\n },\n isPlusMinus: {\n type: Boolean,\n default: false\n },\n after: {\n type: String,\n default: 'modal'\n },\n product: null\n },\n setup(props) {\n const store = useStore();\n const loading = ref(false);\n const quantity = ref(1);\n const button = ref(null);\n\n const cart = computed(() => store.getters['cart/productQuantity'](props.id));\n\n const cartIcon = computed(() => {\n return $env.shop.isAlreadyInCart && isAlreadyInCart && cart.value > 0 ? '#cart-add-already' : '#cart-add';\n });\n\n let isAlreadyInCart = props.isAlreadyInCart;\n let isChangeQuantity = props.isChangeQuantity;\n let isPlusMinus = props.isPlusMinus;\n\n if (props.isSimple) {\n isAlreadyInCart = false;\n isChangeQuantity = false;\n isPlusMinus = false;\n }\n\n const add = () => {\n loading.value = true;\n\n let options = [];\n\n if (button.value.closest('.product-main')) {\n const checkedOptions = document.querySelectorAll('#options input[type=checkbox]:checked');\n\n checkedOptions.forEach((element) => {\n options.push(parseInt(element.value));\n });\n }\n\n const q = Math.max(1, quantity.value);\n const product = button.value.closest('[shop-product]');\n const name = props.product ? props.product.name : product.querySelector('[shop-product-name]').textContent;\n const price = props.product ? props.product.price_clean : product.querySelector('[shop-product-price]').childNodes[0].nodeValue.replace(/ /g, '');\n const code = props.product ? props.product.code : product.dataset.code;\n const category = props.product ? props.product.category : product.dataset.category;\n const brand = props.product ? props.product.brand : product.dataset.brand;\n\n store.dispatch('cart/add', {\n product: {\n id: props.id,\n quantity: q,\n options: options\n },\n finally: () => {\n loading.value = false;\n quantity.value = 1;\n\n if (props.after == 'message') {\n const component = {\n component: SuccessMessage\n };\n\n toast(component, {\n type: 'success-cart'\n });\n }\n\n const object = {\n ecommerce: {\n currencyCode: 'UAH',\n items: [\n {\n item_name: name,\n item_id: code,\n price: price,\n quantity: q,\n item_brand: brand,\n item_category: category,\n }\n ]\n },\n event: 'add_to_cart'\n };\n\n if ($env.debug.ecommerce) {\n console.log(JSON.stringify(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 };\n\n const remove = () => {\n loading.value = true;\n\n store.dispatch('cart/remove', {\n id: props.id,\n finally: () => {\n loading.value = false;\n\n const object = {\n ecommerce: {\n currencyCode: 'UAH',\n items: [\n {\n item_name: name,\n item_id: code,\n price: price,\n quantity: q,\n item_brand: brand,\n item_category: category,\n }\n ]\n },\n event: 'remove_from_cart'\n };\n\n if ($env.debug.ecommerce) {\n console.log(JSON.stringify(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 };\n\n const increase = () => {\n quantity.value++;\n };\n\n const decrease = () => {\n if (quantity.value > 1) {\n quantity.value--;\n }\n };\n\n return {\n button,\n loading,\n quantity,\n add,\n remove,\n cart,\n increase,\n decrease,\n isAlreadyInCart,\n isChangeQuantity,\n isPlusMinus,\n cartIcon,\n };\n }\n};\n</script>\n","<template>\n <div class=\"cart-add\" ref=\"button\" v-bind:class=\"{ 'is-already-in-cart': $env.shop.isAlreadyInCart && isAlreadyInCart && cart > 0 }\">\n <div class=\"columns\">\n <div class=\"column\" v-if=\"$env.shop.isCustomQuantity && isChangeQuantity\">\n <div class=\"cart-change-quantity\">\n <button class=\"button is-small decrease\" @click=\"decrease\" :disabled=\"loading || quantity == 1\" v-if=\"isPlusMinus\">-</button>\n <input class=\"input is-small\" type=\"number\" min=\"1\" v-model=\"quantity\" :disabled=\"loading\" />\n <button class=\"button is-small increase\" @click=\"increase\" :disabled=\"loading\" v-if=\"isPlusMinus\">+</button>\n </div>\n </div>\n <div class=\"column is-narrow\">\n <button class=\"button is-link is-small\" v-on:click=\"add\" :disabled=\"loading\">\n <slot :label=\"__('shop.cart.add')\">\n <svg class=\"icon cart\">\n <use v-bind=\"{ 'xlink:href': cartIcon }\" />\n </svg>\n <span class=\"cart-add-button-label\">{{ __('shop.cart.add') }}</span>\n </slot>\n </button>\n </div>\n </div>\n <div v-if=\"$env.shop.isAlreadyInCart && isAlreadyInCart && cart > 0\">\n {{ __('shop.cart.already', { quantity: cart }) }}\n <br />\n <a v-on:click.prevent=\"remove\" :disabled=\"loading\" v-text=\"__('shop.cart.remove')\"></a>\n </div>\n </div>\n</template>\n<script>\nimport { ref, computed } from 'vue';\nimport { useStore } from 'vuex';\nimport { useToast } from 'vue-toastification';\nimport SuccessMessage from './SuccessMessage.vue';\n\nconst toast = useToast();\n\nexport default {\n name: 'cart-add',\n props: {\n id: Number,\n isChangeQuantity: {\n type: Boolean,\n default: true\n },\n isAlreadyInCart: {\n type: Boolean,\n default: true\n },\n isSimple: {\n type: Boolean,\n default: false\n },\n isPlusMinus: {\n type: Boolean,\n default: false\n },\n after: {\n type: String,\n default: 'modal'\n },\n product: null\n },\n setup(props) {\n const store = useStore();\n const loading = ref(false);\n const quantity = ref(1);\n const button = ref(null);\n\n const cart = computed(() => store.getters['cart/productQuantity'](props.id));\n\n const cartIcon = computed(() => {\n return $env.shop.isAlreadyInCart && isAlreadyInCart && cart.value > 0 ? '#cart-add-already' : '#cart-add';\n });\n\n let isAlreadyInCart = props.isAlreadyInCart;\n let isChangeQuantity = props.isChangeQuantity;\n let isPlusMinus = props.isPlusMinus;\n\n if (props.isSimple) {\n isAlreadyInCart = false;\n isChangeQuantity = false;\n isPlusMinus = false;\n }\n\n const add = () => {\n loading.value = true;\n\n let options = [];\n\n if (button.value.closest('.product-main')) {\n const checkedOptions = document.querySelectorAll('#options input[type=checkbox]:checked');\n\n checkedOptions.forEach((element) => {\n options.push(parseInt(element.value));\n });\n }\n\n const q = Math.max(1, quantity.value);\n const product = button.value.closest('[shop-product]');\n const name = props.product ? props.product.name : product.querySelector('[shop-product-name]').textContent;\n const price = props.product ? props.product.price_clean : product.querySelector('[shop-product-price]').childNodes[0].nodeValue.replace(/ /g, '');\n const code = props.product ? props.product.code : product.dataset.code;\n const category = props.product ? props.product.category : product.dataset.category;\n const brand = props.product ? props.product.brand : product.dataset.brand;\n\n store.dispatch('cart/add', {\n product: {\n id: props.id,\n quantity: q,\n options: options\n },\n finally: () => {\n loading.value = false;\n quantity.value = 1;\n\n if (props.after == 'message') {\n const component = {\n component: SuccessMessage\n };\n\n toast(component, {\n type: 'success-cart'\n });\n }\n\n const object = {\n ecommerce: {\n currencyCode: 'UAH',\n items: [\n {\n item_name: name,\n item_id: code,\n price: price,\n quantity: q,\n item_brand: brand,\n item_category: category,\n }\n ]\n },\n event: 'add_to_cart'\n };\n\n if ($env.debug.ecommerce) {\n console.log(JSON.stringify(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 };\n\n const remove = () => {\n loading.value = true;\n\n store.dispatch('cart/remove', {\n id: props.id,\n finally: () => {\n loading.value = false;\n\n const object = {\n ecommerce: {\n currencyCode: 'UAH',\n items: [\n {\n item_name: name,\n item_id: code,\n price: price,\n quantity: q,\n item_brand: brand,\n item_category: category,\n }\n ]\n },\n event: 'remove_from_cart'\n };\n\n if ($env.debug.ecommerce) {\n console.log(JSON.stringify(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 };\n\n const increase = () => {\n quantity.value++;\n };\n\n const decrease = () => {\n if (quantity.value > 1) {\n quantity.value--;\n }\n };\n\n return {\n button,\n loading,\n quantity,\n add,\n remove,\n cart,\n increase,\n decrease,\n isAlreadyInCart,\n isChangeQuantity,\n isPlusMinus,\n cartIcon,\n };\n }\n};\n</script>\n"],"names":["setup","translate","window","__","class","_createElementBlock","_hoisted_1","$setup","toast","useToast","name","props","id","Number","isChangeQuantity","type","Boolean","default","isAlreadyInCart","isSimple","isPlusMinus","after","String","product","store","useStore","loading","ref","quantity","button","cart","computed","getters","cartIcon","$env","shop","value","add","options","closest","document","querySelectorAll","forEach","element","push","parseInt","q","Math","max","querySelector","textContent","price","price_clean","childNodes","nodeValue","replace","code","dataset","category","brand","dispatch","finally","component","SuccessMessage","object","ecommerce","currencyCode","items","item_name","item_id","item_brand","item_category","event","debug","console","log","JSON","stringify","dataLayer","remove","increase","decrease","_createElementVNode","_ctx","isCustomQuantity","_hoisted_2","_hoisted_3","onClick","disabled","min","_hoisted_7","_renderSlot","label","_hoisted_9","_hoisted_10","_hoisted_12","_toDisplayString"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("vue"),t=require("vuex"),i={name:"CartItem",props:{item:Object},setup(i){var l=t.useStore(),o=e.ref(!1),n=e.ref(),a=e.ref(i.item.attributes.options&&i.item.attributes.options.length?i.item.attributes.options:[]),c=e.ref(!1),r=e.computed(()=>l.getters["auth/is"]);i.item.attributes.options&&i.item.attributes.options.length&&(c.value=!0);var s=e=>{o.value=!0,l.dispatch("cart/add",{product:{id:i.item.id,quantity:e},finally:()=>{o.value=!1}})};i.item.options&&i.item.options.length&&e.watch(a,e=>{o.value=!0,l.dispatch("cart/options",{product:{id:i.item.id,options:Object.values(e)},finally:()=>{o.value=!1}})});return{loading:o,increase:()=>{s(1)},decrease:()=>{s(-1)},remove:()=>{o.value=!0,l.dispatch("cart/remove",{id:i.item.id,finally:()=>{o.value=!1}})},options:a,optionsToggled:c,input:n,gotoProduct:e=>{window.addEventListener("beforeunload",()=>{l.commit("cart/modal",null)}),window.location.href=e},auth:r}}},l={key:0,class:"column is-12"},o=[e.createElementVNode("div",{class:"bundle-title"},"Вместе дешевле",-1)],n={class:"column name"},a={class:"column is-narrow"},c={class:"cart-actions"},r=["disabled"],s=[e.createElementVNode("svg",{class:"icon"},[e.createElementVNode("use",{"xlink:href":"#cart-remove"})],-1)],m={class:"column is-narrow"},d=["src"],u={key:1},p=[e.createElementVNode("use",{"xlink:href":"#logo"},null,-1)],v={class:"column"},k={class:"columns is-gapless mb-0"},b={class:"column"},E={key:0,class:"code"},V={class:"title"},g={key:0},N={key:0,class:"column is-narrow has-text-right is-relative"},h={class:"quantity"},f=["disabled"],y=[e.createElementVNode("svg",null,[e.createElementVNode("use",{"xlink:href":"#cart-minus"})],-1)],B=["disabled"],C=[e.createElementVNode("svg",null,[e.createElementVNode("use",{"xlink:href":"#cart-plus"})],-1)],w={key:0,class:"quantity-price"},x=["innerHTML"],T=e.createTextVNode(" / шт"),q={class:"column is-2 has-text-right"},D=["innerHTML"],L=["innerHTML"],M=["innerHTML"],S=e.createElementVNode("svg",null,[e.createElementVNode("use",{"xlink:href":"#arrow-down"})],-1),H={class:"wrapper"},z={class:"column is-narrow"},P=["value","id"],O={class:"column"},$=["for"],j={key:0,class:"option-description"},U={class:"column is-2 has-text-right"},F=e.createTextVNode("+"),I=["innerHTML"],A={key:0,class:"bundle columns"},G=e.createElementVNode("div",{class:"column is-narrow"},[e.createElementVNode("div",{class:"cart-bundle-spacer"})],-1),J={class:"column is-narrow"},K=e.createElementVNode("svg",{class:"bundle-icon"},[e.createElementVNode("use",{"xlink:href":"#bundle-plus"})],-1),Q=["src"],R={key:1},W=[e.createElementVNode("use",{"xlink:href":"#logo"},null,-1)],X={class:"column"},Y={key:0,class:"code"},Z={class:"title"},_={key:1,class:"bundle columns"},ee=e.createElementVNode("div",{class:"column is-narrow"},[e.createElementVNode("div",{class:"cart-bundle-spacer"})],-1),te={class:"column is-narrow"},ie=e.createElementVNode("svg",{class:"bundle-icon"},[e.createElementVNode("use",{"xlink:href":"#bundle-plus"})],-1),le=["src"],oe={key:1},ne=[e.createElementVNode("use",{"xlink:href":"#logo"},null,-1)],ae={class:"column"},ce={key:0,class:"code"},re={class:"title"};i.render=function(t,i,se,me,de,ue){var pe=e.resolveComponent("wishlist-add");return se.item.deleted?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["columns is-multiline shop-cart-item",{inactive:!1===se.item.attributes.active,"is-bundle":se.item.attributes.bundle}])},[se.item.attributes.bundle?(e.openBlock(),e.createElementBlock("div",l,o)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",n,[e.createElementVNode("div",{class:e.normalizeClass(["columns",{"mb-0":se.item.attributes.bundle}])},[e.createElementVNode("div",a,[e.createElementVNode("div",c,[e.createElementVNode("button",{class:"remove",onClick:i[0]||(i[0]=function(){return me.remove&&me.remove(...arguments)}),disabled:me.loading},s,8,r),me.auth&&!se.item.attributes.bundle?(e.openBlock(),e.createBlock(pe,{key:0,id:se.item.id},null,8,["id"])):e.createCommentVNode("v-if",!0)])]),e.createElementVNode("div",m,[e.createElementVNode("a",{onClick:i[1]||(i[1]=e=>me.gotoProduct(se.item.attributes.href))},[e.createElementVNode("figure",{class:e.normalizeClass(["image is-square",{"no-thumb":!se.item.attributes.image}])},[se.item.attributes.image?(e.openBlock(),e.createElementBlock("img",{key:0,src:se.item.attributes.image},null,8,d)):(e.openBlock(),e.createElementBlock("svg",u,p))],2)])]),e.createElementVNode("div",v,[e.createElementVNode("div",k,[e.createElementVNode("div",b,[se.item.attributes.code?(e.openBlock(),e.createElementBlock("div",E,"Код продукта: "+e.toDisplayString(se.item.attributes.code),1)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",V,[!1===se.item.attributes.active?(e.openBlock(),e.createElementBlock("span",g,e.toDisplayString(se.item.name),1)):(e.openBlock(),e.createElementBlock("a",{key:1,onClick:i[2]||(i[2]=e=>me.gotoProduct(se.item.attributes.href))},e.toDisplayString(se.item.name),1))])]),(e.openBlock(),e.createElementBlock("div",N,[e.createElementVNode("div",h,[e.createElementVNode("button",{class:"button decrease",onClick:i[3]||(i[3]=function(){return me.decrease&&me.decrease(...arguments)}),disabled:me.loading||1==se.item.quantity},y,8,f),e.withDirectives(e.createElementVNode("input",{class:"input is-small",type:"number",min:"1","onUpdate:modelValue":i[4]||(i[4]=e=>se.item.quantity=e),disabled:""},null,512),[[e.vModelText,se.item.quantity]]),e.createElementVNode("button",{class:"button increase",onClick:i[5]||(i[5]=function(){return me.increase&&me.increase(...arguments)}),disabled:me.loading},C,8,B)]),se.item.quantity>1?(e.openBlock(),e.createElementBlock("div",w,[e.createElementVNode("span",{innerHTML:t.$filters.price(se.item.attributes.price)},null,8,x),T])):e.createCommentVNode("v-if",!0)])),e.createElementVNode("div",q,[e.createElementVNode("div",{class:e.normalizeClass(["price",{"bundle-price":se.item.attributes.bundle}])},[se.item.attributes.priceOld?(e.openBlock(),e.createElementBlock("div",{key:0,class:"price-old",innerHTML:t.$filters.price(se.item.attributes.priceOld*se.item.quantity)},null,8,D)):e.createCommentVNode("v-if",!0),se.item.attributes.bundle&&se.item.attributes.amount?(e.openBlock(),e.createElementBlock("div",{key:1,class:"bundle-amount",innerHTML:"Выгода "+(se.item.attributes.amount.percent?se.item.attributes.amount.percent+"%":t.$filters.price(se.item.attributes.amount.sum*se.item.quantity))},null,8,L)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{innerHTML:t.$filters.price(se.item.attributes.price*se.item.quantity)},null,8,M)],2)])]),se.item.options&&se.item.options.length?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["options",{"is-toggled":me.optionsToggled}])},[e.createElementVNode("div",{class:"toggler",onClick:i[6]||(i[6]=e=>me.optionsToggled=!me.optionsToggled)},[e.createElementVNode("span",null,"Дополнительные услуги, "+e.toDisplayString(se.item.options.length),1),S]),e.withDirectives(e.createElementVNode("div",H,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(se.item.options,(l,o)=>(e.openBlock(),e.createElementBlock("div",{key:o,class:e.normalizeClass(["columns",{"is-checked":-1!==me.options.indexOf(l.id)}])},[e.createElementVNode("div",z,[e.withDirectives(e.createElementVNode("input",{type:"checkbox",class:"checkbox","onUpdate:modelValue":i[7]||(i[7]=e=>me.options=e),value:l.id,id:"option-"+se.item.id+"-"+l.id},null,8,P),[[e.vModelCheckbox,me.options]])]),e.createElementVNode("div",O,[e.createElementVNode("label",{class:"option-title is-clickable",for:"option-"+se.item.id+"-"+l.id},e.toDisplayString(l.name),9,$),l.description?(e.openBlock(),e.createElementBlock("div",j,e.toDisplayString(l.description),1)):e.createCommentVNode("v-if",!0)]),e.createElementVNode("div",U,[F,e.createElementVNode("span",{innerHTML:t.$filters.price(l.price)},null,8,I)])],2))),128))],512),[[e.vShow,me.optionsToggled]])],2)):e.createCommentVNode("v-if",!0)])],2),se.item.attributes.bundle?(e.openBlock(),e.createElementBlock("div",A,[G,e.createElementVNode("div",J,[K,e.createElementVNode("a",{onClick:i[8]||(i[8]=e=>me.gotoProduct(se.item.attributes.second.href))},[e.createElementVNode("figure",{class:e.normalizeClass(["image is-square",{"no-thumb":!se.item.attributes.second.image}])},[se.item.attributes.second.image?(e.openBlock(),e.createElementBlock("img",{key:0,src:se.item.attributes.second.image},null,8,Q)):(e.openBlock(),e.createElementBlock("svg",R,W))],2)])]),e.createElementVNode("div",X,[se.item.attributes.second.code?(e.openBlock(),e.createElementBlock("div",Y,"Код продукта: "+e.toDisplayString(se.item.attributes.second.code),1)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",Z,[e.createElementVNode("a",{onClick:i[9]||(i[9]=e=>me.gotoProduct(se.item.attributes.second.href))},e.toDisplayString(se.item.attributes.second.name),1)])])])):e.createCommentVNode("v-if",!0),se.item.attributes.bundle&&se.item.attributes.third?(e.openBlock(),e.createElementBlock("div",_,[ee,e.createElementVNode("div",te,[ie,e.createElementVNode("a",{onClick:i[10]||(i[10]=e=>me.gotoProduct(se.item.attributes.third.href))},[e.createElementVNode("figure",{class:e.normalizeClass(["image is-square",{"no-thumb":!se.item.attributes.third.image}])},[se.item.attributes.third.image?(e.openBlock(),e.createElementBlock("img",{key:0,src:se.item.attributes.third.image},null,8,le)):(e.openBlock(),e.createElementBlock("svg",oe,ne))],2)])]),e.createElementVNode("div",ae,[se.item.attributes.third.code?(e.openBlock(),e.createElementBlock("div",ce,"Код продукта: "+e.toDisplayString(se.item.attributes.third.code),1)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",re,[e.createElementVNode("a",{onClick:i[11]||(i[11]=e=>me.gotoProduct(se.item.attributes.third.href))},e.toDisplayString(se.item.attributes.third.name),1)])])])):e.createCommentVNode("v-if",!0)])],2))},module.exports=i;
|
|
1
|
+
"use strict";var e=require("vue"),t=require("vuex"),i={name:"CartItem",props:{item:Object},setup:function(i){var n=t.useStore(),o=e.ref(!1),l=e.ref(),a=e.ref(i.item.attributes.options&&i.item.attributes.options.length?i.item.attributes.options:[]),c=e.ref(!1),r=e.computed((function(){return n.getters["auth/is"]}));i.item.attributes.options&&i.item.attributes.options.length&&(c.value=!0);var s=function(e){o.value=!0,n.dispatch("cart/add",{product:{id:i.item.id,quantity:e},finally:function(){o.value=!1}})};i.item.options&&i.item.options.length&&e.watch(a,(function(e){o.value=!0,n.dispatch("cart/options",{product:{id:i.item.id,options:Object.values(e)},finally:function(){o.value=!1}})}));return{loading:o,increase:function(){s(1)},decrease:function(){s(-1)},remove:function(){o.value=!0,n.dispatch("cart/remove",{id:i.item.id,finally:function(){o.value=!1}})},options:a,optionsToggled:c,input:l,gotoProduct:function(e){window.addEventListener("beforeunload",(function(){n.commit("cart/modal",null)})),window.location.href=e},auth:r}}},n={key:0,class:"column is-12"},o=[e.createElementVNode("div",{class:"bundle-title"},"Вместе дешевле",-1)],l={class:"column name"},a={class:"column is-narrow"},c={class:"cart-actions"},r=["disabled"],s=[e.createElementVNode("svg",{class:"icon"},[e.createElementVNode("use",{"xlink:href":"#cart-remove"})],-1)],m={class:"column is-narrow"},d=["src"],u={key:1},p=[e.createElementVNode("use",{"xlink:href":"#logo"},null,-1)],v={class:"column"},k={class:"columns is-gapless mb-0"},b={class:"column"},E={key:0,class:"code"},V={class:"title"},g={key:0},N={key:0,class:"column is-narrow has-text-right is-relative"},f={class:"quantity"},h=["disabled"],y=[e.createElementVNode("svg",null,[e.createElementVNode("use",{"xlink:href":"#cart-minus"})],-1)],B=["disabled"],C=[e.createElementVNode("svg",null,[e.createElementVNode("use",{"xlink:href":"#cart-plus"})],-1)],w={key:0,class:"quantity-price"},x=["innerHTML"],T=e.createTextVNode(" / шт"),q={class:"column is-2 has-text-right"},D=["innerHTML"],L=["innerHTML"],M=["innerHTML"],S=e.createElementVNode("svg",null,[e.createElementVNode("use",{"xlink:href":"#arrow-down"})],-1),H={class:"wrapper"},z={class:"column is-narrow"},P=["value","id"],O={class:"column"},$=["for"],j={key:0,class:"option-description"},U={class:"column is-2 has-text-right"},F=e.createTextVNode("+"),I=["innerHTML"],A={key:0,class:"bundle columns"},G=e.createElementVNode("div",{class:"column is-narrow"},[e.createElementVNode("div",{class:"cart-bundle-spacer"})],-1),J={class:"column is-narrow"},K=e.createElementVNode("svg",{class:"bundle-icon"},[e.createElementVNode("use",{"xlink:href":"#bundle-plus"})],-1),Q=["src"],R={key:1},W=[e.createElementVNode("use",{"xlink:href":"#logo"},null,-1)],X={class:"column"},Y={key:0,class:"code"},Z={class:"title"},_={key:1,class:"bundle columns"},ee=e.createElementVNode("div",{class:"column is-narrow"},[e.createElementVNode("div",{class:"cart-bundle-spacer"})],-1),te={class:"column is-narrow"},ie=e.createElementVNode("svg",{class:"bundle-icon"},[e.createElementVNode("use",{"xlink:href":"#bundle-plus"})],-1),ne=["src"],oe={key:1},le=[e.createElementVNode("use",{"xlink:href":"#logo"},null,-1)],ae={class:"column"},ce={key:0,class:"code"},re={class:"title"};i.render=function(t,i,se,me,de,ue){var pe=e.resolveComponent("wishlist-add");return se.item.deleted?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["columns is-multiline shop-cart-item",{inactive:!1===se.item.attributes.active,"is-bundle":se.item.attributes.bundle}])},[se.item.attributes.bundle?(e.openBlock(),e.createElementBlock("div",n,o)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",l,[e.createElementVNode("div",{class:e.normalizeClass(["columns",{"mb-0":se.item.attributes.bundle}])},[e.createElementVNode("div",a,[e.createElementVNode("div",c,[e.createElementVNode("button",{class:"remove",onClick:i[0]||(i[0]=function(){return me.remove&&me.remove.apply(me,arguments)}),disabled:me.loading},s,8,r),me.auth&&!se.item.attributes.bundle?(e.openBlock(),e.createBlock(pe,{key:0,id:se.item.id},null,8,["id"])):e.createCommentVNode("v-if",!0)])]),e.createElementVNode("div",m,[e.createElementVNode("a",{onClick:i[1]||(i[1]=function(e){return me.gotoProduct(se.item.attributes.href)})},[e.createElementVNode("figure",{class:e.normalizeClass(["image is-square",{"no-thumb":!se.item.attributes.image}])},[se.item.attributes.image?(e.openBlock(),e.createElementBlock("img",{key:0,src:se.item.attributes.image},null,8,d)):(e.openBlock(),e.createElementBlock("svg",u,p))],2)])]),e.createElementVNode("div",v,[e.createElementVNode("div",k,[e.createElementVNode("div",b,[se.item.attributes.code?(e.openBlock(),e.createElementBlock("div",E,"Код продукта: "+e.toDisplayString(se.item.attributes.code),1)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",V,[!1===se.item.attributes.active?(e.openBlock(),e.createElementBlock("span",g,e.toDisplayString(se.item.name),1)):(e.openBlock(),e.createElementBlock("a",{key:1,onClick:i[2]||(i[2]=function(e){return me.gotoProduct(se.item.attributes.href)})},e.toDisplayString(se.item.name),1))])]),(e.openBlock(),e.createElementBlock("div",N,[e.createElementVNode("div",f,[e.createElementVNode("button",{class:"button decrease",onClick:i[3]||(i[3]=function(){return me.decrease&&me.decrease.apply(me,arguments)}),disabled:me.loading||1==se.item.quantity},y,8,h),e.withDirectives(e.createElementVNode("input",{class:"input is-small",type:"number",min:"1","onUpdate:modelValue":i[4]||(i[4]=function(e){return se.item.quantity=e}),disabled:""},null,512),[[e.vModelText,se.item.quantity]]),e.createElementVNode("button",{class:"button increase",onClick:i[5]||(i[5]=function(){return me.increase&&me.increase.apply(me,arguments)}),disabled:me.loading},C,8,B)]),se.item.quantity>1?(e.openBlock(),e.createElementBlock("div",w,[e.createElementVNode("span",{innerHTML:t.$filters.price(se.item.attributes.price)},null,8,x),T])):e.createCommentVNode("v-if",!0)])),e.createElementVNode("div",q,[e.createElementVNode("div",{class:e.normalizeClass(["price",{"bundle-price":se.item.attributes.bundle}])},[se.item.attributes.priceOld?(e.openBlock(),e.createElementBlock("div",{key:0,class:"price-old",innerHTML:t.$filters.price(se.item.attributes.priceOld*se.item.quantity)},null,8,D)):e.createCommentVNode("v-if",!0),se.item.attributes.bundle&&se.item.attributes.amount?(e.openBlock(),e.createElementBlock("div",{key:1,class:"bundle-amount",innerHTML:"Выгода "+(se.item.attributes.amount.percent?se.item.attributes.amount.percent+"%":t.$filters.price(se.item.attributes.amount.sum*se.item.quantity))},null,8,L)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{innerHTML:t.$filters.price(se.item.attributes.price*se.item.quantity)},null,8,M)],2)])]),se.item.options&&se.item.options.length?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["options",{"is-toggled":me.optionsToggled}])},[e.createElementVNode("div",{class:"toggler",onClick:i[6]||(i[6]=function(e){return me.optionsToggled=!me.optionsToggled})},[e.createElementVNode("span",null,"Дополнительные услуги, "+e.toDisplayString(se.item.options.length),1),S]),e.withDirectives(e.createElementVNode("div",H,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(se.item.options,(function(n,o){return e.openBlock(),e.createElementBlock("div",{key:o,class:e.normalizeClass(["columns",{"is-checked":-1!==me.options.indexOf(n.id)}])},[e.createElementVNode("div",z,[e.withDirectives(e.createElementVNode("input",{type:"checkbox",class:"checkbox","onUpdate:modelValue":i[7]||(i[7]=function(e){return me.options=e}),value:n.id,id:"option-"+se.item.id+"-"+n.id},null,8,P),[[e.vModelCheckbox,me.options]])]),e.createElementVNode("div",O,[e.createElementVNode("label",{class:"option-title is-clickable",for:"option-"+se.item.id+"-"+n.id},e.toDisplayString(n.name),9,$),n.description?(e.openBlock(),e.createElementBlock("div",j,e.toDisplayString(n.description),1)):e.createCommentVNode("v-if",!0)]),e.createElementVNode("div",U,[F,e.createElementVNode("span",{innerHTML:t.$filters.price(n.price)},null,8,I)])],2)})),128))],512),[[e.vShow,me.optionsToggled]])],2)):e.createCommentVNode("v-if",!0)])],2),se.item.attributes.bundle?(e.openBlock(),e.createElementBlock("div",A,[G,e.createElementVNode("div",J,[K,e.createElementVNode("a",{onClick:i[8]||(i[8]=function(e){return me.gotoProduct(se.item.attributes.second.href)})},[e.createElementVNode("figure",{class:e.normalizeClass(["image is-square",{"no-thumb":!se.item.attributes.second.image}])},[se.item.attributes.second.image?(e.openBlock(),e.createElementBlock("img",{key:0,src:se.item.attributes.second.image},null,8,Q)):(e.openBlock(),e.createElementBlock("svg",R,W))],2)])]),e.createElementVNode("div",X,[se.item.attributes.second.code?(e.openBlock(),e.createElementBlock("div",Y,"Код продукта: "+e.toDisplayString(se.item.attributes.second.code),1)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",Z,[e.createElementVNode("a",{onClick:i[9]||(i[9]=function(e){return me.gotoProduct(se.item.attributes.second.href)})},e.toDisplayString(se.item.attributes.second.name),1)])])])):e.createCommentVNode("v-if",!0),se.item.attributes.bundle&&se.item.attributes.third?(e.openBlock(),e.createElementBlock("div",_,[ee,e.createElementVNode("div",te,[ie,e.createElementVNode("a",{onClick:i[10]||(i[10]=function(e){return me.gotoProduct(se.item.attributes.third.href)})},[e.createElementVNode("figure",{class:e.normalizeClass(["image is-square",{"no-thumb":!se.item.attributes.third.image}])},[se.item.attributes.third.image?(e.openBlock(),e.createElementBlock("img",{key:0,src:se.item.attributes.third.image},null,8,ne)):(e.openBlock(),e.createElementBlock("svg",oe,le))],2)])]),e.createElementVNode("div",ae,[se.item.attributes.third.code?(e.openBlock(),e.createElementBlock("div",ce,"Код продукта: "+e.toDisplayString(se.item.attributes.third.code),1)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",re,[e.createElementVNode("a",{onClick:i[11]||(i[11]=function(e){return me.gotoProduct(se.item.attributes.third.href)})},e.toDisplayString(se.item.attributes.third.name),1)])])])):e.createCommentVNode("v-if",!0)])],2))},module.exports=i;
|
|
2
2
|
//# sourceMappingURL=CartItem.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CartItem.js","sources":["../../../../../src/js/components/shop/cart/CartItem.vue","../../../../../src/js/components/shop/cart/CartItem.vue?vue&type=template&id=23822b30&lang.js"],"sourcesContent":["<template>\n <div class=\"columns is-multiline shop-cart-item\" v-if=\"!item.deleted\" v-bind:class=\"{ inactive: item.attributes.active === false, 'is-bundle': item.attributes.bundle }\">\n <div class=\"column is-12\" v-if=\"item.attributes.bundle\">\n <div class=\"bundle-title\">Вместе дешевле</div>\n </div>\n <div class=\"column name\">\n <div class=\"columns\" v-bind:class=\"{ 'mb-0': item.attributes.bundle }\">\n <div class=\"column is-narrow\">\n <div class=\"cart-actions\">\n <button class=\"remove\" @click=\"remove\" :disabled=\"loading\">\n <svg class=\"icon\"><use xlink:href=\"#cart-remove\" /></svg>\n </button>\n <wishlist-add :id=\"item.id\" v-if=\"auth && !item.attributes.bundle\"></wishlist-add>\n </div>\n </div>\n <div class=\"column is-narrow\">\n <a @click=\"gotoProduct(item.attributes.href)\">\n <figure class=\"image is-square\" v-bind:class=\"{ 'no-thumb': !item.attributes.image }\">\n <img :src=\"item.attributes.image\" v-if=\"item.attributes.image\" />\n <svg v-else><use xlink:href=\"#logo\" /></svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"columns is-gapless mb-0\">\n <div class=\"column\">\n <div class=\"code\" v-if=\"item.attributes.code\">Код продукта: {{ item.attributes.code }}</div>\n <div class=\"title\">\n <span v-if=\"item.attributes.active === false\">\n {{ item.name }}\n </span>\n <a @click=\"gotoProduct(item.attributes.href)\" v-else>{{ item.name }}</a>\n </div>\n </div>\n <div class=\"column is-narrow has-text-right is-relative\" v-if=\"true || $env.shop.isChangeQuantity\">\n <div class=\"quantity\">\n <button class=\"button decrease\" @click=\"decrease\" :disabled=\"loading || item.quantity == 1\">\n <svg><use xlink:href=\"#cart-minus\" /></svg>\n </button>\n <input class=\"input is-small\" type=\"number\" min=\"1\" v-model=\"item.quantity\" disabled />\n <button class=\"button increase\" @click=\"increase\" :disabled=\"loading\">\n <svg><use xlink:href=\"#cart-plus\" /></svg>\n </button>\n </div>\n <div class=\"quantity-price\" v-if=\"item.quantity > 1\"><span v-html=\"$filters.price(item.attributes.price)\"></span> / шт</div>\n </div>\n <div class=\"column is-narrow has-text-right\" v-else>{{ item.quantity }}✕</div>\n <div class=\"column is-2 has-text-right\">\n <div class=\"price\" v-bind:class=\"{ 'bundle-price': item.attributes.bundle }\">\n <div v-if=\"item.attributes.priceOld\" class=\"price-old\" v-html=\"$filters.price(item.attributes.priceOld * item.quantity)\"></div>\n <div class=\"bundle-amount\" v-if=\"item.attributes.bundle && item.attributes.amount\" v-html=\"'Выгода ' + (item.attributes.amount.percent ? item.attributes.amount.percent + '%' : $filters.price(item.attributes.amount.sum * item.quantity))\"></div>\n <div v-html=\"$filters.price(item.attributes.price * item.quantity)\"></div>\n </div>\n </div>\n </div>\n <div class=\"options\" v-if=\"item.options && item.options.length\" v-bind:class=\"{ 'is-toggled': optionsToggled }\">\n <div class=\"toggler\" @click=\"optionsToggled = !optionsToggled\">\n <span>Дополнительные услуги, {{ item.options.length }}</span>\n <svg><use xlink:href=\"#arrow-down\" /></svg>\n </div>\n <div class=\"wrapper\" v-show=\"optionsToggled\">\n <div v-for=\"(option, index) in item.options\" v-bind:key=\"index\" class=\"columns\" v-bind:class=\"{ 'is-checked': options.indexOf(option.id) !== -1 }\">\n <div class=\"column is-narrow\">\n <input type=\"checkbox\" class=\"checkbox\" v-model=\"options\" :value=\"option.id\" :id=\"'option-' + item.id + '-' + option.id\" />\n </div>\n <div class=\"column\">\n <label class=\"option-title is-clickable\" :for=\"'option-' + item.id + '-' + option.id\">{{ option.name }}</label>\n <div class=\"option-description\" v-if=\"option.description\">{{ option.description }}</div>\n </div>\n <div class=\"column is-2 has-text-right\">+<span v-html=\"$filters.price(option.price)\"></span></div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"bundle columns\" v-if=\"item.attributes.bundle\">\n <div class=\"column is-narrow\">\n <div class=\"cart-bundle-spacer\"></div>\n </div>\n <div class=\"column is-narrow\">\n <svg class=\"bundle-icon\"><use xlink:href=\"#bundle-plus\" /></svg>\n <a @click=\"gotoProduct(item.attributes.second.href)\">\n <figure class=\"image is-square\" v-bind:class=\"{ 'no-thumb': !item.attributes.second.image }\">\n <img :src=\"item.attributes.second.image\" v-if=\"item.attributes.second.image\" />\n <svg v-else><use xlink:href=\"#logo\" /></svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"code\" v-if=\"item.attributes.second.code\">Код продукта: {{ item.attributes.second.code }}</div>\n <div class=\"title\">\n <a @click=\"gotoProduct(item.attributes.second.href)\">{{ item.attributes.second.name }}</a>\n </div>\n </div>\n </div>\n <div class=\"bundle columns\" v-if=\"item.attributes.bundle && item.attributes.third\">\n <div class=\"column is-narrow\">\n <div class=\"cart-bundle-spacer\"></div>\n </div>\n <div class=\"column is-narrow\">\n <svg class=\"bundle-icon\"><use xlink:href=\"#bundle-plus\" /></svg>\n <a @click=\"gotoProduct(item.attributes.third.href)\">\n <figure class=\"image is-square\" v-bind:class=\"{ 'no-thumb': !item.attributes.third.image }\">\n <img :src=\"item.attributes.third.image\" v-if=\"item.attributes.third.image\" />\n <svg v-else><use xlink:href=\"#logo\" /></svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"code\" v-if=\"item.attributes.third.code\">Код продукта: {{ item.attributes.third.code }}</div>\n <div class=\"title\">\n <a @click=\"gotoProduct(item.attributes.third.href)\">{{ item.attributes.third.name }}</a>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, computed, watch } from 'vue';\nimport { useStore } from 'vuex';\n\nexport default {\n name: 'CartItem',\n props: {\n item: Object\n },\n setup(props) {\n const store = useStore();\n const loading = ref(false);\n const input = ref();\n const options = ref(props.item.attributes.options && props.item.attributes.options.length ? props.item.attributes.options : []);\n const optionsToggled = ref(false);\n const auth = computed(() => store.getters['auth/is']);\n\n if (props.item.attributes.options && props.item.attributes.options.length) {\n optionsToggled.value = true;\n }\n\n const remove = () => {\n loading.value = true;\n\n store.dispatch('cart/remove', {\n id: props.item.id,\n finally: () => {\n loading.value = false;\n }\n });\n };\n\n const increase = () => {\n quantity(+1);\n };\n\n const decrease = () => {\n quantity(-1);\n };\n\n const quantity = (difference) => {\n loading.value = true;\n\n store.dispatch('cart/add', {\n product: {\n id: props.item.id,\n quantity: difference\n },\n finally: () => {\n loading.value = false;\n }\n });\n };\n\n if (props.item.options && props.item.options.length) {\n watch(options, (options) => {\n loading.value = true;\n\n store.dispatch('cart/options', {\n product: {\n id: props.item.id,\n options: Object.values(options)\n },\n finally: () => {\n loading.value = false;\n }\n });\n });\n }\n\n const gotoProduct = (href) => {\n window.addEventListener('beforeunload', () => {\n store.commit('cart/modal', null);\n });\n\n window.location.href = href;\n };\n\n return {\n loading,\n increase,\n decrease,\n remove,\n options,\n optionsToggled,\n input,\n gotoProduct,\n auth\n };\n }\n};\n</script>","<template>\n <div class=\"columns is-multiline shop-cart-item\" v-if=\"!item.deleted\" v-bind:class=\"{ inactive: item.attributes.active === false, 'is-bundle': item.attributes.bundle }\">\n <div class=\"column is-12\" v-if=\"item.attributes.bundle\">\n <div class=\"bundle-title\">Вместе дешевле</div>\n </div>\n <div class=\"column name\">\n <div class=\"columns\" v-bind:class=\"{ 'mb-0': item.attributes.bundle }\">\n <div class=\"column is-narrow\">\n <div class=\"cart-actions\">\n <button class=\"remove\" @click=\"remove\" :disabled=\"loading\">\n <svg class=\"icon\"><use xlink:href=\"#cart-remove\" /></svg>\n </button>\n <wishlist-add :id=\"item.id\" v-if=\"auth && !item.attributes.bundle\"></wishlist-add>\n </div>\n </div>\n <div class=\"column is-narrow\">\n <a @click=\"gotoProduct(item.attributes.href)\">\n <figure class=\"image is-square\" v-bind:class=\"{ 'no-thumb': !item.attributes.image }\">\n <img :src=\"item.attributes.image\" v-if=\"item.attributes.image\" />\n <svg v-else><use xlink:href=\"#logo\" /></svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"columns is-gapless mb-0\">\n <div class=\"column\">\n <div class=\"code\" v-if=\"item.attributes.code\">Код продукта: {{ item.attributes.code }}</div>\n <div class=\"title\">\n <span v-if=\"item.attributes.active === false\">\n {{ item.name }}\n </span>\n <a @click=\"gotoProduct(item.attributes.href)\" v-else>{{ item.name }}</a>\n </div>\n </div>\n <div class=\"column is-narrow has-text-right is-relative\" v-if=\"true || $env.shop.isChangeQuantity\">\n <div class=\"quantity\">\n <button class=\"button decrease\" @click=\"decrease\" :disabled=\"loading || item.quantity == 1\">\n <svg><use xlink:href=\"#cart-minus\" /></svg>\n </button>\n <input class=\"input is-small\" type=\"number\" min=\"1\" v-model=\"item.quantity\" disabled />\n <button class=\"button increase\" @click=\"increase\" :disabled=\"loading\">\n <svg><use xlink:href=\"#cart-plus\" /></svg>\n </button>\n </div>\n <div class=\"quantity-price\" v-if=\"item.quantity > 1\"><span v-html=\"$filters.price(item.attributes.price)\"></span> / шт</div>\n </div>\n <div class=\"column is-narrow has-text-right\" v-else>{{ item.quantity }}✕</div>\n <div class=\"column is-2 has-text-right\">\n <div class=\"price\" v-bind:class=\"{ 'bundle-price': item.attributes.bundle }\">\n <div v-if=\"item.attributes.priceOld\" class=\"price-old\" v-html=\"$filters.price(item.attributes.priceOld * item.quantity)\"></div>\n <div class=\"bundle-amount\" v-if=\"item.attributes.bundle && item.attributes.amount\" v-html=\"'Выгода ' + (item.attributes.amount.percent ? item.attributes.amount.percent + '%' : $filters.price(item.attributes.amount.sum * item.quantity))\"></div>\n <div v-html=\"$filters.price(item.attributes.price * item.quantity)\"></div>\n </div>\n </div>\n </div>\n <div class=\"options\" v-if=\"item.options && item.options.length\" v-bind:class=\"{ 'is-toggled': optionsToggled }\">\n <div class=\"toggler\" @click=\"optionsToggled = !optionsToggled\">\n <span>Дополнительные услуги, {{ item.options.length }}</span>\n <svg><use xlink:href=\"#arrow-down\" /></svg>\n </div>\n <div class=\"wrapper\" v-show=\"optionsToggled\">\n <div v-for=\"(option, index) in item.options\" v-bind:key=\"index\" class=\"columns\" v-bind:class=\"{ 'is-checked': options.indexOf(option.id) !== -1 }\">\n <div class=\"column is-narrow\">\n <input type=\"checkbox\" class=\"checkbox\" v-model=\"options\" :value=\"option.id\" :id=\"'option-' + item.id + '-' + option.id\" />\n </div>\n <div class=\"column\">\n <label class=\"option-title is-clickable\" :for=\"'option-' + item.id + '-' + option.id\">{{ option.name }}</label>\n <div class=\"option-description\" v-if=\"option.description\">{{ option.description }}</div>\n </div>\n <div class=\"column is-2 has-text-right\">+<span v-html=\"$filters.price(option.price)\"></span></div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"bundle columns\" v-if=\"item.attributes.bundle\">\n <div class=\"column is-narrow\">\n <div class=\"cart-bundle-spacer\"></div>\n </div>\n <div class=\"column is-narrow\">\n <svg class=\"bundle-icon\"><use xlink:href=\"#bundle-plus\" /></svg>\n <a @click=\"gotoProduct(item.attributes.second.href)\">\n <figure class=\"image is-square\" v-bind:class=\"{ 'no-thumb': !item.attributes.second.image }\">\n <img :src=\"item.attributes.second.image\" v-if=\"item.attributes.second.image\" />\n <svg v-else><use xlink:href=\"#logo\" /></svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"code\" v-if=\"item.attributes.second.code\">Код продукта: {{ item.attributes.second.code }}</div>\n <div class=\"title\">\n <a @click=\"gotoProduct(item.attributes.second.href)\">{{ item.attributes.second.name }}</a>\n </div>\n </div>\n </div>\n <div class=\"bundle columns\" v-if=\"item.attributes.bundle && item.attributes.third\">\n <div class=\"column is-narrow\">\n <div class=\"cart-bundle-spacer\"></div>\n </div>\n <div class=\"column is-narrow\">\n <svg class=\"bundle-icon\"><use xlink:href=\"#bundle-plus\" /></svg>\n <a @click=\"gotoProduct(item.attributes.third.href)\">\n <figure class=\"image is-square\" v-bind:class=\"{ 'no-thumb': !item.attributes.third.image }\">\n <img :src=\"item.attributes.third.image\" v-if=\"item.attributes.third.image\" />\n <svg v-else><use xlink:href=\"#logo\" /></svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"code\" v-if=\"item.attributes.third.code\">Код продукта: {{ item.attributes.third.code }}</div>\n <div class=\"title\">\n <a @click=\"gotoProduct(item.attributes.third.href)\">{{ item.attributes.third.name }}</a>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, computed, watch } from 'vue';\nimport { useStore } from 'vuex';\n\nexport default {\n name: 'CartItem',\n props: {\n item: Object\n },\n setup(props) {\n const store = useStore();\n const loading = ref(false);\n const input = ref();\n const options = ref(props.item.attributes.options && props.item.attributes.options.length ? props.item.attributes.options : []);\n const optionsToggled = ref(false);\n const auth = computed(() => store.getters['auth/is']);\n\n if (props.item.attributes.options && props.item.attributes.options.length) {\n optionsToggled.value = true;\n }\n\n const remove = () => {\n loading.value = true;\n\n store.dispatch('cart/remove', {\n id: props.item.id,\n finally: () => {\n loading.value = false;\n }\n });\n };\n\n const increase = () => {\n quantity(+1);\n };\n\n const decrease = () => {\n quantity(-1);\n };\n\n const quantity = (difference) => {\n loading.value = true;\n\n store.dispatch('cart/add', {\n product: {\n id: props.item.id,\n quantity: difference\n },\n finally: () => {\n loading.value = false;\n }\n });\n };\n\n if (props.item.options && props.item.options.length) {\n watch(options, (options) => {\n loading.value = true;\n\n store.dispatch('cart/options', {\n product: {\n id: props.item.id,\n options: Object.values(options)\n },\n finally: () => {\n loading.value = false;\n }\n });\n });\n }\n\n const gotoProduct = (href) => {\n window.addEventListener('beforeunload', () => {\n store.commit('cart/modal', null);\n });\n\n window.location.href = href;\n };\n\n return {\n loading,\n increase,\n decrease,\n remove,\n options,\n optionsToggled,\n input,\n gotoProduct,\n auth\n };\n }\n};\n</script>"],"names":["name","props","item","Object","setup","store","useStore","loading","ref","input","options","attributes","length","optionsToggled","auth","computed","getters","value","quantity","difference","dispatch","product","id","finally","watch","values","increase","decrease","remove","gotoProduct","href","window","addEventListener","commit","location","class","_createElementVNode","$props","deleted","_createElementBlock","active","bundle","_hoisted_1","_hoisted_4","_hoisted_5","_hoisted_6","onClick","$setup","disabled","_createBlock","_hoisted_10","image","src","_hoisted_15","_hoisted_16","_hoisted_17","code","_hoisted_18","_hoisted_19","_hoisted_21","_hoisted_22","type","min","_hoisted_29","innerHTML","_ctx","price","_hoisted_33","priceOld","amount","percent","sum","_hoisted_37","_hoisted_38","option","index","key","indexOf","_hoisted_39","_hoisted_41","for","description","_hoisted_43","_hoisted_44","_hoisted_47","_hoisted_48","_hoisted_49","_hoisted_50","second","_hoisted_55","_hoisted_56","_hoisted_57","third","_hoisted_58","_hoisted_59","_hoisted_60","_hoisted_61","_hoisted_66","_hoisted_67","_hoisted_68"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CartItem.js","sources":["../../../../../src/js/components/shop/cart/CartItem.vue","../../../../../src/js/components/shop/cart/CartItem.vue?vue&type=template&id=23822b30&lang.js"],"sourcesContent":["<template>\n <div class=\"columns is-multiline shop-cart-item\" v-if=\"!item.deleted\" v-bind:class=\"{ inactive: item.attributes.active === false, 'is-bundle': item.attributes.bundle }\">\n <div class=\"column is-12\" v-if=\"item.attributes.bundle\">\n <div class=\"bundle-title\">Вместе дешевле</div>\n </div>\n <div class=\"column name\">\n <div class=\"columns\" v-bind:class=\"{ 'mb-0': item.attributes.bundle }\">\n <div class=\"column is-narrow\">\n <div class=\"cart-actions\">\n <button class=\"remove\" @click=\"remove\" :disabled=\"loading\">\n <svg class=\"icon\"><use xlink:href=\"#cart-remove\" /></svg>\n </button>\n <wishlist-add :id=\"item.id\" v-if=\"auth && !item.attributes.bundle\"></wishlist-add>\n </div>\n </div>\n <div class=\"column is-narrow\">\n <a @click=\"gotoProduct(item.attributes.href)\">\n <figure class=\"image is-square\" v-bind:class=\"{ 'no-thumb': !item.attributes.image }\">\n <img :src=\"item.attributes.image\" v-if=\"item.attributes.image\" />\n <svg v-else><use xlink:href=\"#logo\" /></svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"columns is-gapless mb-0\">\n <div class=\"column\">\n <div class=\"code\" v-if=\"item.attributes.code\">Код продукта: {{ item.attributes.code }}</div>\n <div class=\"title\">\n <span v-if=\"item.attributes.active === false\">\n {{ item.name }}\n </span>\n <a @click=\"gotoProduct(item.attributes.href)\" v-else>{{ item.name }}</a>\n </div>\n </div>\n <div class=\"column is-narrow has-text-right is-relative\" v-if=\"true || $env.shop.isChangeQuantity\">\n <div class=\"quantity\">\n <button class=\"button decrease\" @click=\"decrease\" :disabled=\"loading || item.quantity == 1\">\n <svg><use xlink:href=\"#cart-minus\" /></svg>\n </button>\n <input class=\"input is-small\" type=\"number\" min=\"1\" v-model=\"item.quantity\" disabled />\n <button class=\"button increase\" @click=\"increase\" :disabled=\"loading\">\n <svg><use xlink:href=\"#cart-plus\" /></svg>\n </button>\n </div>\n <div class=\"quantity-price\" v-if=\"item.quantity > 1\"><span v-html=\"$filters.price(item.attributes.price)\"></span> / шт</div>\n </div>\n <div class=\"column is-narrow has-text-right\" v-else>{{ item.quantity }}✕</div>\n <div class=\"column is-2 has-text-right\">\n <div class=\"price\" v-bind:class=\"{ 'bundle-price': item.attributes.bundle }\">\n <div v-if=\"item.attributes.priceOld\" class=\"price-old\" v-html=\"$filters.price(item.attributes.priceOld * item.quantity)\"></div>\n <div class=\"bundle-amount\" v-if=\"item.attributes.bundle && item.attributes.amount\" v-html=\"'Выгода ' + (item.attributes.amount.percent ? item.attributes.amount.percent + '%' : $filters.price(item.attributes.amount.sum * item.quantity))\"></div>\n <div v-html=\"$filters.price(item.attributes.price * item.quantity)\"></div>\n </div>\n </div>\n </div>\n <div class=\"options\" v-if=\"item.options && item.options.length\" v-bind:class=\"{ 'is-toggled': optionsToggled }\">\n <div class=\"toggler\" @click=\"optionsToggled = !optionsToggled\">\n <span>Дополнительные услуги, {{ item.options.length }}</span>\n <svg><use xlink:href=\"#arrow-down\" /></svg>\n </div>\n <div class=\"wrapper\" v-show=\"optionsToggled\">\n <div v-for=\"(option, index) in item.options\" v-bind:key=\"index\" class=\"columns\" v-bind:class=\"{ 'is-checked': options.indexOf(option.id) !== -1 }\">\n <div class=\"column is-narrow\">\n <input type=\"checkbox\" class=\"checkbox\" v-model=\"options\" :value=\"option.id\" :id=\"'option-' + item.id + '-' + option.id\" />\n </div>\n <div class=\"column\">\n <label class=\"option-title is-clickable\" :for=\"'option-' + item.id + '-' + option.id\">{{ option.name }}</label>\n <div class=\"option-description\" v-if=\"option.description\">{{ option.description }}</div>\n </div>\n <div class=\"column is-2 has-text-right\">+<span v-html=\"$filters.price(option.price)\"></span></div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"bundle columns\" v-if=\"item.attributes.bundle\">\n <div class=\"column is-narrow\">\n <div class=\"cart-bundle-spacer\"></div>\n </div>\n <div class=\"column is-narrow\">\n <svg class=\"bundle-icon\"><use xlink:href=\"#bundle-plus\" /></svg>\n <a @click=\"gotoProduct(item.attributes.second.href)\">\n <figure class=\"image is-square\" v-bind:class=\"{ 'no-thumb': !item.attributes.second.image }\">\n <img :src=\"item.attributes.second.image\" v-if=\"item.attributes.second.image\" />\n <svg v-else><use xlink:href=\"#logo\" /></svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"code\" v-if=\"item.attributes.second.code\">Код продукта: {{ item.attributes.second.code }}</div>\n <div class=\"title\">\n <a @click=\"gotoProduct(item.attributes.second.href)\">{{ item.attributes.second.name }}</a>\n </div>\n </div>\n </div>\n <div class=\"bundle columns\" v-if=\"item.attributes.bundle && item.attributes.third\">\n <div class=\"column is-narrow\">\n <div class=\"cart-bundle-spacer\"></div>\n </div>\n <div class=\"column is-narrow\">\n <svg class=\"bundle-icon\"><use xlink:href=\"#bundle-plus\" /></svg>\n <a @click=\"gotoProduct(item.attributes.third.href)\">\n <figure class=\"image is-square\" v-bind:class=\"{ 'no-thumb': !item.attributes.third.image }\">\n <img :src=\"item.attributes.third.image\" v-if=\"item.attributes.third.image\" />\n <svg v-else><use xlink:href=\"#logo\" /></svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"code\" v-if=\"item.attributes.third.code\">Код продукта: {{ item.attributes.third.code }}</div>\n <div class=\"title\">\n <a @click=\"gotoProduct(item.attributes.third.href)\">{{ item.attributes.third.name }}</a>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, computed, watch } from 'vue';\nimport { useStore } from 'vuex';\n\nexport default {\n name: 'CartItem',\n props: {\n item: Object\n },\n setup(props) {\n const store = useStore();\n const loading = ref(false);\n const input = ref();\n const options = ref(props.item.attributes.options && props.item.attributes.options.length ? props.item.attributes.options : []);\n const optionsToggled = ref(false);\n const auth = computed(() => store.getters['auth/is']);\n\n if (props.item.attributes.options && props.item.attributes.options.length) {\n optionsToggled.value = true;\n }\n\n const remove = () => {\n loading.value = true;\n\n store.dispatch('cart/remove', {\n id: props.item.id,\n finally: () => {\n loading.value = false;\n }\n });\n };\n\n const increase = () => {\n quantity(+1);\n };\n\n const decrease = () => {\n quantity(-1);\n };\n\n const quantity = (difference) => {\n loading.value = true;\n\n store.dispatch('cart/add', {\n product: {\n id: props.item.id,\n quantity: difference\n },\n finally: () => {\n loading.value = false;\n }\n });\n };\n\n if (props.item.options && props.item.options.length) {\n watch(options, (options) => {\n loading.value = true;\n\n store.dispatch('cart/options', {\n product: {\n id: props.item.id,\n options: Object.values(options)\n },\n finally: () => {\n loading.value = false;\n }\n });\n });\n }\n\n const gotoProduct = (href) => {\n window.addEventListener('beforeunload', () => {\n store.commit('cart/modal', null);\n });\n\n window.location.href = href;\n };\n\n return {\n loading,\n increase,\n decrease,\n remove,\n options,\n optionsToggled,\n input,\n gotoProduct,\n auth\n };\n }\n};\n</script>","<template>\n <div class=\"columns is-multiline shop-cart-item\" v-if=\"!item.deleted\" v-bind:class=\"{ inactive: item.attributes.active === false, 'is-bundle': item.attributes.bundle }\">\n <div class=\"column is-12\" v-if=\"item.attributes.bundle\">\n <div class=\"bundle-title\">Вместе дешевле</div>\n </div>\n <div class=\"column name\">\n <div class=\"columns\" v-bind:class=\"{ 'mb-0': item.attributes.bundle }\">\n <div class=\"column is-narrow\">\n <div class=\"cart-actions\">\n <button class=\"remove\" @click=\"remove\" :disabled=\"loading\">\n <svg class=\"icon\"><use xlink:href=\"#cart-remove\" /></svg>\n </button>\n <wishlist-add :id=\"item.id\" v-if=\"auth && !item.attributes.bundle\"></wishlist-add>\n </div>\n </div>\n <div class=\"column is-narrow\">\n <a @click=\"gotoProduct(item.attributes.href)\">\n <figure class=\"image is-square\" v-bind:class=\"{ 'no-thumb': !item.attributes.image }\">\n <img :src=\"item.attributes.image\" v-if=\"item.attributes.image\" />\n <svg v-else><use xlink:href=\"#logo\" /></svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"columns is-gapless mb-0\">\n <div class=\"column\">\n <div class=\"code\" v-if=\"item.attributes.code\">Код продукта: {{ item.attributes.code }}</div>\n <div class=\"title\">\n <span v-if=\"item.attributes.active === false\">\n {{ item.name }}\n </span>\n <a @click=\"gotoProduct(item.attributes.href)\" v-else>{{ item.name }}</a>\n </div>\n </div>\n <div class=\"column is-narrow has-text-right is-relative\" v-if=\"true || $env.shop.isChangeQuantity\">\n <div class=\"quantity\">\n <button class=\"button decrease\" @click=\"decrease\" :disabled=\"loading || item.quantity == 1\">\n <svg><use xlink:href=\"#cart-minus\" /></svg>\n </button>\n <input class=\"input is-small\" type=\"number\" min=\"1\" v-model=\"item.quantity\" disabled />\n <button class=\"button increase\" @click=\"increase\" :disabled=\"loading\">\n <svg><use xlink:href=\"#cart-plus\" /></svg>\n </button>\n </div>\n <div class=\"quantity-price\" v-if=\"item.quantity > 1\"><span v-html=\"$filters.price(item.attributes.price)\"></span> / шт</div>\n </div>\n <div class=\"column is-narrow has-text-right\" v-else>{{ item.quantity }}✕</div>\n <div class=\"column is-2 has-text-right\">\n <div class=\"price\" v-bind:class=\"{ 'bundle-price': item.attributes.bundle }\">\n <div v-if=\"item.attributes.priceOld\" class=\"price-old\" v-html=\"$filters.price(item.attributes.priceOld * item.quantity)\"></div>\n <div class=\"bundle-amount\" v-if=\"item.attributes.bundle && item.attributes.amount\" v-html=\"'Выгода ' + (item.attributes.amount.percent ? item.attributes.amount.percent + '%' : $filters.price(item.attributes.amount.sum * item.quantity))\"></div>\n <div v-html=\"$filters.price(item.attributes.price * item.quantity)\"></div>\n </div>\n </div>\n </div>\n <div class=\"options\" v-if=\"item.options && item.options.length\" v-bind:class=\"{ 'is-toggled': optionsToggled }\">\n <div class=\"toggler\" @click=\"optionsToggled = !optionsToggled\">\n <span>Дополнительные услуги, {{ item.options.length }}</span>\n <svg><use xlink:href=\"#arrow-down\" /></svg>\n </div>\n <div class=\"wrapper\" v-show=\"optionsToggled\">\n <div v-for=\"(option, index) in item.options\" v-bind:key=\"index\" class=\"columns\" v-bind:class=\"{ 'is-checked': options.indexOf(option.id) !== -1 }\">\n <div class=\"column is-narrow\">\n <input type=\"checkbox\" class=\"checkbox\" v-model=\"options\" :value=\"option.id\" :id=\"'option-' + item.id + '-' + option.id\" />\n </div>\n <div class=\"column\">\n <label class=\"option-title is-clickable\" :for=\"'option-' + item.id + '-' + option.id\">{{ option.name }}</label>\n <div class=\"option-description\" v-if=\"option.description\">{{ option.description }}</div>\n </div>\n <div class=\"column is-2 has-text-right\">+<span v-html=\"$filters.price(option.price)\"></span></div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"bundle columns\" v-if=\"item.attributes.bundle\">\n <div class=\"column is-narrow\">\n <div class=\"cart-bundle-spacer\"></div>\n </div>\n <div class=\"column is-narrow\">\n <svg class=\"bundle-icon\"><use xlink:href=\"#bundle-plus\" /></svg>\n <a @click=\"gotoProduct(item.attributes.second.href)\">\n <figure class=\"image is-square\" v-bind:class=\"{ 'no-thumb': !item.attributes.second.image }\">\n <img :src=\"item.attributes.second.image\" v-if=\"item.attributes.second.image\" />\n <svg v-else><use xlink:href=\"#logo\" /></svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"code\" v-if=\"item.attributes.second.code\">Код продукта: {{ item.attributes.second.code }}</div>\n <div class=\"title\">\n <a @click=\"gotoProduct(item.attributes.second.href)\">{{ item.attributes.second.name }}</a>\n </div>\n </div>\n </div>\n <div class=\"bundle columns\" v-if=\"item.attributes.bundle && item.attributes.third\">\n <div class=\"column is-narrow\">\n <div class=\"cart-bundle-spacer\"></div>\n </div>\n <div class=\"column is-narrow\">\n <svg class=\"bundle-icon\"><use xlink:href=\"#bundle-plus\" /></svg>\n <a @click=\"gotoProduct(item.attributes.third.href)\">\n <figure class=\"image is-square\" v-bind:class=\"{ 'no-thumb': !item.attributes.third.image }\">\n <img :src=\"item.attributes.third.image\" v-if=\"item.attributes.third.image\" />\n <svg v-else><use xlink:href=\"#logo\" /></svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"code\" v-if=\"item.attributes.third.code\">Код продукта: {{ item.attributes.third.code }}</div>\n <div class=\"title\">\n <a @click=\"gotoProduct(item.attributes.third.href)\">{{ item.attributes.third.name }}</a>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, computed, watch } from 'vue';\nimport { useStore } from 'vuex';\n\nexport default {\n name: 'CartItem',\n props: {\n item: Object\n },\n setup(props) {\n const store = useStore();\n const loading = ref(false);\n const input = ref();\n const options = ref(props.item.attributes.options && props.item.attributes.options.length ? props.item.attributes.options : []);\n const optionsToggled = ref(false);\n const auth = computed(() => store.getters['auth/is']);\n\n if (props.item.attributes.options && props.item.attributes.options.length) {\n optionsToggled.value = true;\n }\n\n const remove = () => {\n loading.value = true;\n\n store.dispatch('cart/remove', {\n id: props.item.id,\n finally: () => {\n loading.value = false;\n }\n });\n };\n\n const increase = () => {\n quantity(+1);\n };\n\n const decrease = () => {\n quantity(-1);\n };\n\n const quantity = (difference) => {\n loading.value = true;\n\n store.dispatch('cart/add', {\n product: {\n id: props.item.id,\n quantity: difference\n },\n finally: () => {\n loading.value = false;\n }\n });\n };\n\n if (props.item.options && props.item.options.length) {\n watch(options, (options) => {\n loading.value = true;\n\n store.dispatch('cart/options', {\n product: {\n id: props.item.id,\n options: Object.values(options)\n },\n finally: () => {\n loading.value = false;\n }\n });\n });\n }\n\n const gotoProduct = (href) => {\n window.addEventListener('beforeunload', () => {\n store.commit('cart/modal', null);\n });\n\n window.location.href = href;\n };\n\n return {\n loading,\n increase,\n decrease,\n remove,\n options,\n optionsToggled,\n input,\n gotoProduct,\n auth\n };\n }\n};\n</script>"],"names":["name","props","item","Object","setup","store","useStore","loading","ref","input","options","attributes","length","optionsToggled","auth","computed","getters","value","quantity","difference","dispatch","product","id","finally","watch","values","increase","decrease","remove","gotoProduct","href","window","addEventListener","commit","location","class","_createElementVNode","$props","deleted","_createElementBlock","active","bundle","_hoisted_1","_hoisted_4","_hoisted_5","_hoisted_6","onClick","$setup","disabled","_createBlock","_hoisted_10","image","src","_hoisted_15","_hoisted_16","_hoisted_17","code","_hoisted_18","_hoisted_19","_hoisted_21","_hoisted_22","type","min","_hoisted_29","innerHTML","_ctx","price","_hoisted_33","priceOld","amount","percent","sum","_hoisted_37","_hoisted_38","option","index","key","indexOf","_hoisted_39","_hoisted_41","for","description","_hoisted_43","_hoisted_44","_hoisted_47","_hoisted_48","_hoisted_49","_hoisted_50","second","_hoisted_55","_hoisted_56","_hoisted_57","third","_hoisted_58","_hoisted_59","_hoisted_60","_hoisted_61","_hoisted_66","_hoisted_67","_hoisted_68"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("vue"),t=require("vuex"),n=e.defineComponent({name:"cart-trigger",setup(){var n=t.useStore();return{quantity:e.computed(()
|
|
1
|
+
"use strict";var e=require("vue"),t=require("vuex"),n=e.defineComponent({name:"cart-trigger",setup:function(){var n=t.useStore();return{quantity:e.computed((function(){return n.getters["cart/quantity"]})),open:function(){n.commit("cart/modal",!0)}}}}),r={class:"cart"},o={class:"dropdown is-right is-hoverable"},a={class:"dropdown-trigger"},i=e.createElementVNode("svg",{width:"22",height:"19"},[e.createElementVNode("use",{"xlink:href":"#cart"})],-1),u=["textContent"];n.render=function(t,n,c,l,s,d){return e.openBlock(),e.createElementBlock("div",r,[e.createElementVNode("div",o,[e.createElementVNode("div",a,[e.renderSlot(t.$slots,"default",{total:t.quantity,open:t.open},(function(){return[e.createElementVNode("button",{class:e.normalizeClass(["button",{"is-products":t.quantity}]),onClick:n[0]||(n[0]=function(){return t.open&&t.open.apply(t,arguments)})},[i,e.createElementVNode("span",{textContent:e.toDisplayString(t.quantity)},null,8,u)],2)]}))])])])},module.exports=n;
|
|
2
2
|
//# sourceMappingURL=CartTrigger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CartTrigger.js","sources":["../../../../../src/js/components/shop/cart/CartTrigger.vue","../../../../../src/js/components/shop/cart/CartTrigger.vue?vue&type=template&id=97cd3408&lang.js"],"sourcesContent":["<template>\n <div class=\"cart\">\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\" v-bind:class=\"{ 'is-products': quantity }\">\n <svg width=\"22\" height=\"19\">\n <use xlink:href=\"#cart\"/>\n </svg>\n <span v-text=\"quantity\"></span>\n </button>\n </slot>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { computed, defineComponent } from 'vue';\nimport { useStore } from 'vuex';\n\nexport default defineComponent({\n name: 'cart-trigger',\n setup() {\n const store = useStore();\n const quantity = computed(() => store.getters['cart/quantity']);\n\n const open = () => {\n store.commit('cart/modal', true);\n };\n\n return {\n quantity,\n open,\n }\n },\n})\n</script>\n","<template>\n <div class=\"cart\">\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\" v-bind:class=\"{ 'is-products': quantity }\">\n <svg width=\"22\" height=\"19\">\n <use xlink:href=\"#cart\"/>\n </svg>\n <span v-text=\"quantity\"></span>\n </button>\n </slot>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { computed, defineComponent } from 'vue';\nimport { useStore } from 'vuex';\n\nexport default defineComponent({\n name: 'cart-trigger',\n setup() {\n const store = useStore();\n const quantity = computed(() => store.getters['cart/quantity']);\n\n const open = () => {\n store.commit('cart/modal', true);\n };\n\n return {\n quantity,\n open,\n }\n },\n})\n</script>\n"],"names":["defineComponent","name","setup","store","useStore","quantity","computed","getters","open","commit","class","_createElementVNode","width","height","_createElementBlock","_hoisted_1","_hoisted_2","_hoisted_3","_renderSlot","total","_ctx","onClick","_hoisted_4","_toDisplayString"],"mappings":"sDAoBeA,kBAAgB,CAC3BC,KAAM,eACNC,
|
|
1
|
+
{"version":3,"file":"CartTrigger.js","sources":["../../../../../src/js/components/shop/cart/CartTrigger.vue","../../../../../src/js/components/shop/cart/CartTrigger.vue?vue&type=template&id=97cd3408&lang.js"],"sourcesContent":["<template>\n <div class=\"cart\">\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\" v-bind:class=\"{ 'is-products': quantity }\">\n <svg width=\"22\" height=\"19\">\n <use xlink:href=\"#cart\"/>\n </svg>\n <span v-text=\"quantity\"></span>\n </button>\n </slot>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { computed, defineComponent } from 'vue';\nimport { useStore } from 'vuex';\n\nexport default defineComponent({\n name: 'cart-trigger',\n setup() {\n const store = useStore();\n const quantity = computed(() => store.getters['cart/quantity']);\n\n const open = () => {\n store.commit('cart/modal', true);\n };\n\n return {\n quantity,\n open,\n }\n },\n})\n</script>\n","<template>\n <div class=\"cart\">\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\" v-bind:class=\"{ 'is-products': quantity }\">\n <svg width=\"22\" height=\"19\">\n <use xlink:href=\"#cart\"/>\n </svg>\n <span v-text=\"quantity\"></span>\n </button>\n </slot>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { computed, defineComponent } from 'vue';\nimport { useStore } from 'vuex';\n\nexport default defineComponent({\n name: 'cart-trigger',\n setup() {\n const store = useStore();\n const quantity = computed(() => store.getters['cart/quantity']);\n\n const open = () => {\n store.commit('cart/modal', true);\n };\n\n return {\n quantity,\n open,\n }\n },\n})\n</script>\n"],"names":["defineComponent","name","setup","store","useStore","quantity","computed","getters","open","commit","class","_createElementVNode","width","height","_createElementBlock","_hoisted_1","_hoisted_2","_hoisted_3","_renderSlot","total","_ctx","onClick","_hoisted_4","_toDisplayString"],"mappings":"sDAoBeA,kBAAgB,CAC3BC,KAAM,eACNC,qBACUC,EAAQC,mBAOP,CACHC,SAPaC,YAAS,kBAAMH,EAAMI,QAAQ,oBAQ1CC,KANS,WACTL,EAAMM,OAAO,cAAc,WC1B9BC,MAAM,WACFA,MAAM,qCACFA,MAAM,sBAGCC,4BAAKC,MAAM,KAAKC,OAAO,OACnBF,yCAAgB,qFANxCG,2BAAAC,GACIJ,2BAAAK,GACIL,2BAAAM,GACIC,iCAAOC,MAAOC,WAAWZ,KAAMY,SAA/B,kBACIT,+BAAQD,wBAAM,wBAAsDU,cAA5CC,sCAAOD,sCAC3BE,EAGAX,yCAAMY,kBAAQH"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("vue"),s={setup:()
|
|
1
|
+
"use strict";var e=require("vue"),s={setup:function(){return{translate:window.__}}},t={class:"shop-cart-success-message"};s.render=function(s,r,n,a,c,o){return e.openBlock(),e.createElementBlock("div",t,e.toDisplayString(a.translate("shop.cart.message")),1)},module.exports=s;
|
|
2
2
|
//# sourceMappingURL=SuccessMessage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SuccessMessage.js","sources":["../../../../../src/js/components/shop/cart/SuccessMessage.vue","../../../../../src/js/components/shop/cart/SuccessMessage.vue?vue&type=template&id=39849712&lang.js"],"sourcesContent":["<template>\n <div class=\"shop-cart-success-message\">\n {{ translate(\"shop.cart.message\") }}\n </div>\n</template>\n<script>\nexport default {\n setup() {\n const translate = window.__;\n\n return {\n translate,\n };\n },\n};\n</script>","<template>\n <div class=\"shop-cart-success-message\">\n {{ translate(\"shop.cart.message\") }}\n </div>\n</template>\n<script>\nexport default {\n setup() {\n const translate = window.__;\n\n return {\n translate,\n };\n },\n};\n</script>"],"names":["setup","translate","window","__","class","_createElementBlock","_hoisted_1","$setup"],"mappings":"oCAMe,CACXA,
|
|
1
|
+
{"version":3,"file":"SuccessMessage.js","sources":["../../../../../src/js/components/shop/cart/SuccessMessage.vue","../../../../../src/js/components/shop/cart/SuccessMessage.vue?vue&type=template&id=39849712&lang.js"],"sourcesContent":["<template>\n <div class=\"shop-cart-success-message\">\n {{ translate(\"shop.cart.message\") }}\n </div>\n</template>\n<script>\nexport default {\n setup() {\n const translate = window.__;\n\n return {\n translate,\n };\n },\n};\n</script>","<template>\n <div class=\"shop-cart-success-message\">\n {{ translate(\"shop.cart.message\") }}\n </div>\n</template>\n<script>\nexport default {\n setup() {\n const translate = window.__;\n\n return {\n translate,\n };\n },\n};\n</script>"],"names":["setup","translate","window","__","class","_createElementBlock","_hoisted_1","$setup"],"mappings":"oCAMe,CACXA,uBAGW,CACHC,UAHcC,OAAOC,SCPxBC,MAAM,iFAAXC,2BAAAC,oBACOC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("vue"),t=require("vuex"),o=require("vue-toastification").useToast(),
|
|
1
|
+
"use strict";var e=require("vue"),t=require("vuex"),o=require("vue-toastification").useToast(),n=e.defineComponent({setup:function(){var n=t.useStore(),a=e.ref(!1),r=e.computed((function(){return n.getters["compare/categories"]})),c=e.computed((function(){return n.getters["compare/products"]})),l=e.ref(!1);return n.dispatch("compare/get",{finally:function(){a.value=!0}}),{mounted:a,categories:r,products:c,deleteCategory:function(e){l.value||(l.value=!0,n.dispatch("compare/category",{slug:e.slug,finally:function(){o(__("shop.compare.category_deleted",{name:e.name}),{type:"success"}),l.value=!1}}))}}}}),a={class:"dropdown is-right is-hoverable shop-compare"},r={class:"dropdown-trigger"},c={key:0,class:"button"},l=e.createElementVNode("span",null,[e.createElementVNode("i",{class:"fas fa-balance-scale"})],-1),s={class:"ml-2"},i={key:0,class:"icon is-small"},d=[e.createElementVNode("i",{class:"fas fa-angle-down","aria-hidden":"true"},null,-1)],m={key:0,class:"dropdown-menu",role:"menu"},u={class:"dropdown-content"},p={class:"dropdown-item pb-0 is-size-7"},g=e.createElementVNode("div",{class:"dropdown-divider"},null,-1),f={class:"column"},v=["href"],E={class:"badge"},N={class:"column is-narrow"},V=["onClick"],k=[e.createElementVNode("span",{class:"icon",style:{transform:"scale(0.8)",color:"#888"}},[e.createElementVNode("i",{class:"fas fa-times"})],-1)];n.render=function(t,o,n,y,h,B){return e.openBlock(),e.createElementBlock("div",a,[e.createElementVNode("div",r,[t.mounted?(e.openBlock(),e.createElementBlock("div",c,[e.renderSlot(t.$slots,"default",{total:t.products.length,categories:t.categories.length},(function(){return[l,e.createElementVNode("span",s,e.toDisplayString(t.products.length),1),t.categories.length?(e.openBlock(),e.createElementBlock("span",i,d)):e.createCommentVNode("v-if",!0)]}))])):e.createCommentVNode("v-if",!0)]),t.categories.length?(e.openBlock(),e.createElementBlock("div",m,[e.createElementVNode("div",u,[e.createElementVNode("div",p,e.toDisplayString(t.__("shop.title.compare")),1),g,(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.categories,(function(o,n){return e.openBlock(),e.createElementBlock("div",{class:"columns is-gapless is-vcentered mb-0",key:n},[e.createElementVNode("div",f,[e.createElementVNode("a",{href:t.$ziggy("shop.compare")+"/"+o.slug,class:"dropdown-item"},[e.createTextVNode(e.toDisplayString(o.name)+" ",1),e.createElementVNode("span",E,e.toDisplayString(o.count),1)],8,v)]),e.createElementVNode("div",N,[e.createElementVNode("a",{class:"mr-2",onClick:function(e){return t.deleteCategory(o)}},k,8,V)])])})),128))])])):e.createCommentVNode("v-if",!0)])},module.exports=n;
|
|
2
2
|
//# sourceMappingURL=Compare.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Compare.js","sources":["../../../../../src/js/components/shop/compare/Compare.vue","../../../../../src/js/components/shop/compare/Compare.vue?vue&type=template&id=51cc80ec&lang.js"],"sourcesContent":["<template>\n <div class=\"dropdown is-right is-hoverable shop-compare\">\n <div class=\"dropdown-trigger\">\n <div class=\"button\" v-if=\"mounted\">\n <slot :total=\"products.length\" :categories=\"categories.length\">\n <span>\n <i class=\"fas fa-balance-scale\"></i>\n </span>\n <span class=\"ml-2\">\n {{ products.length }}\n </span>\n <span class=\"icon is-small\" v-if=\"categories.length\">\n <i class=\"fas fa-angle-down\" aria-hidden=\"true\"></i>\n </span>\n </slot>\n </div>\n </div>\n <div class=\"dropdown-menu\" role=\"menu\" v-if=\"categories.length\">\n <div class=\"dropdown-content\">\n <div class=\"dropdown-item pb-0 is-size-7\">\n {{ __(\"shop.title.compare\") }}\n </div>\n <div class=\"dropdown-divider\"></div>\n <div class=\"columns is-gapless is-vcentered mb-0\" v-for=\"(item, key) in categories\" v-bind:key=\"key\">\n <div class=\"column\">\n <a :href=\"$ziggy('shop.compare') + '/' + item.slug\" class=\"dropdown-item\">\n {{ item.name }}\n <span class=\"badge\">{{ item.count }}</span>\n </a>\n </div>\n <div class=\"column is-narrow\">\n <a class=\"mr-2\" @click=\"deleteCategory(item)\">\n <span class=\"icon\" style=\"transform: scale(0.8); color: #888\">\n <i class=\"fas fa-times\"></i>\n </span>\n </a>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, computed, defineComponent } from \"vue\";\nimport { useStore } from \"vuex\";\nimport { useToast } from 'vue-toastification';\n\nconst toast = useToast();\n\nexport default /*#__PURE__*/ defineComponent({\n setup() {\n const store = useStore();\n const mounted = ref(false);\n const categories = computed(() => store.getters[\"compare/categories\"]);\n const products = computed(() => store.getters[\"compare/products\"]);\n const loading = ref(false);\n\n const deleteCategory = (category) => {\n if (!loading.value) {\n loading.value = true;\n\n store.dispatch(\"compare/category\", {\n slug: category.slug,\n finally: () => {\n toast(\n __(\"shop.compare.category_deleted\", {\n name: category.name,\n }),\n {\n type: \"success\",\n }\n );\n\n loading.value = false;\n },\n });\n }\n };\n\n store.dispatch(\"compare/get\", {\n finally: () => {\n mounted.value = true;\n },\n });\n\n return {\n mounted,\n categories,\n products,\n deleteCategory,\n };\n },\n});\n</script>","<template>\n <div class=\"dropdown is-right is-hoverable shop-compare\">\n <div class=\"dropdown-trigger\">\n <div class=\"button\" v-if=\"mounted\">\n <slot :total=\"products.length\" :categories=\"categories.length\">\n <span>\n <i class=\"fas fa-balance-scale\"></i>\n </span>\n <span class=\"ml-2\">\n {{ products.length }}\n </span>\n <span class=\"icon is-small\" v-if=\"categories.length\">\n <i class=\"fas fa-angle-down\" aria-hidden=\"true\"></i>\n </span>\n </slot>\n </div>\n </div>\n <div class=\"dropdown-menu\" role=\"menu\" v-if=\"categories.length\">\n <div class=\"dropdown-content\">\n <div class=\"dropdown-item pb-0 is-size-7\">\n {{ __(\"shop.title.compare\") }}\n </div>\n <div class=\"dropdown-divider\"></div>\n <div class=\"columns is-gapless is-vcentered mb-0\" v-for=\"(item, key) in categories\" v-bind:key=\"key\">\n <div class=\"column\">\n <a :href=\"$ziggy('shop.compare') + '/' + item.slug\" class=\"dropdown-item\">\n {{ item.name }}\n <span class=\"badge\">{{ item.count }}</span>\n </a>\n </div>\n <div class=\"column is-narrow\">\n <a class=\"mr-2\" @click=\"deleteCategory(item)\">\n <span class=\"icon\" style=\"transform: scale(0.8); color: #888\">\n <i class=\"fas fa-times\"></i>\n </span>\n </a>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, computed, defineComponent } from \"vue\";\nimport { useStore } from \"vuex\";\nimport { useToast } from 'vue-toastification';\n\nconst toast = useToast();\n\nexport default /*#__PURE__*/ defineComponent({\n setup() {\n const store = useStore();\n const mounted = ref(false);\n const categories = computed(() => store.getters[\"compare/categories\"]);\n const products = computed(() => store.getters[\"compare/products\"]);\n const loading = ref(false);\n\n const deleteCategory = (category) => {\n if (!loading.value) {\n loading.value = true;\n\n store.dispatch(\"compare/category\", {\n slug: category.slug,\n finally: () => {\n toast(\n __(\"shop.compare.category_deleted\", {\n name: category.name,\n }),\n {\n type: \"success\",\n }\n );\n\n loading.value = false;\n },\n });\n }\n };\n\n store.dispatch(\"compare/get\", {\n finally: () => {\n mounted.value = true;\n },\n });\n\n return {\n mounted,\n categories,\n products,\n deleteCategory,\n };\n },\n});\n</script>"],"names":["toast","defineComponent","setup","store","useStore","mounted","ref","categories","computed","getters","products","loading","dispatch","finally","value","deleteCategory","category","slug","__","name","type","class","_createElementVNode","role","style","_createElementBlock","_hoisted_1","_hoisted_2","_ctx","_hoisted_3","_renderSlot","total","length","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","item","key","_hoisted_13","href","_hoisted_15","count","_hoisted_16","onClick"],"mappings":"oDA+CMA,6CAEuBC,kBAAgB,CACzCC,
|
|
1
|
+
{"version":3,"file":"Compare.js","sources":["../../../../../src/js/components/shop/compare/Compare.vue","../../../../../src/js/components/shop/compare/Compare.vue?vue&type=template&id=51cc80ec&lang.js"],"sourcesContent":["<template>\n <div class=\"dropdown is-right is-hoverable shop-compare\">\n <div class=\"dropdown-trigger\">\n <div class=\"button\" v-if=\"mounted\">\n <slot :total=\"products.length\" :categories=\"categories.length\">\n <span>\n <i class=\"fas fa-balance-scale\"></i>\n </span>\n <span class=\"ml-2\">\n {{ products.length }}\n </span>\n <span class=\"icon is-small\" v-if=\"categories.length\">\n <i class=\"fas fa-angle-down\" aria-hidden=\"true\"></i>\n </span>\n </slot>\n </div>\n </div>\n <div class=\"dropdown-menu\" role=\"menu\" v-if=\"categories.length\">\n <div class=\"dropdown-content\">\n <div class=\"dropdown-item pb-0 is-size-7\">\n {{ __(\"shop.title.compare\") }}\n </div>\n <div class=\"dropdown-divider\"></div>\n <div class=\"columns is-gapless is-vcentered mb-0\" v-for=\"(item, key) in categories\" v-bind:key=\"key\">\n <div class=\"column\">\n <a :href=\"$ziggy('shop.compare') + '/' + item.slug\" class=\"dropdown-item\">\n {{ item.name }}\n <span class=\"badge\">{{ item.count }}</span>\n </a>\n </div>\n <div class=\"column is-narrow\">\n <a class=\"mr-2\" @click=\"deleteCategory(item)\">\n <span class=\"icon\" style=\"transform: scale(0.8); color: #888\">\n <i class=\"fas fa-times\"></i>\n </span>\n </a>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, computed, defineComponent } from \"vue\";\nimport { useStore } from \"vuex\";\nimport { useToast } from 'vue-toastification';\n\nconst toast = useToast();\n\nexport default /*#__PURE__*/ defineComponent({\n setup() {\n const store = useStore();\n const mounted = ref(false);\n const categories = computed(() => store.getters[\"compare/categories\"]);\n const products = computed(() => store.getters[\"compare/products\"]);\n const loading = ref(false);\n\n const deleteCategory = (category) => {\n if (!loading.value) {\n loading.value = true;\n\n store.dispatch(\"compare/category\", {\n slug: category.slug,\n finally: () => {\n toast(\n __(\"shop.compare.category_deleted\", {\n name: category.name,\n }),\n {\n type: \"success\",\n }\n );\n\n loading.value = false;\n },\n });\n }\n };\n\n store.dispatch(\"compare/get\", {\n finally: () => {\n mounted.value = true;\n },\n });\n\n return {\n mounted,\n categories,\n products,\n deleteCategory,\n };\n },\n});\n</script>","<template>\n <div class=\"dropdown is-right is-hoverable shop-compare\">\n <div class=\"dropdown-trigger\">\n <div class=\"button\" v-if=\"mounted\">\n <slot :total=\"products.length\" :categories=\"categories.length\">\n <span>\n <i class=\"fas fa-balance-scale\"></i>\n </span>\n <span class=\"ml-2\">\n {{ products.length }}\n </span>\n <span class=\"icon is-small\" v-if=\"categories.length\">\n <i class=\"fas fa-angle-down\" aria-hidden=\"true\"></i>\n </span>\n </slot>\n </div>\n </div>\n <div class=\"dropdown-menu\" role=\"menu\" v-if=\"categories.length\">\n <div class=\"dropdown-content\">\n <div class=\"dropdown-item pb-0 is-size-7\">\n {{ __(\"shop.title.compare\") }}\n </div>\n <div class=\"dropdown-divider\"></div>\n <div class=\"columns is-gapless is-vcentered mb-0\" v-for=\"(item, key) in categories\" v-bind:key=\"key\">\n <div class=\"column\">\n <a :href=\"$ziggy('shop.compare') + '/' + item.slug\" class=\"dropdown-item\">\n {{ item.name }}\n <span class=\"badge\">{{ item.count }}</span>\n </a>\n </div>\n <div class=\"column is-narrow\">\n <a class=\"mr-2\" @click=\"deleteCategory(item)\">\n <span class=\"icon\" style=\"transform: scale(0.8); color: #888\">\n <i class=\"fas fa-times\"></i>\n </span>\n </a>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, computed, defineComponent } from \"vue\";\nimport { useStore } from \"vuex\";\nimport { useToast } from 'vue-toastification';\n\nconst toast = useToast();\n\nexport default /*#__PURE__*/ defineComponent({\n setup() {\n const store = useStore();\n const mounted = ref(false);\n const categories = computed(() => store.getters[\"compare/categories\"]);\n const products = computed(() => store.getters[\"compare/products\"]);\n const loading = ref(false);\n\n const deleteCategory = (category) => {\n if (!loading.value) {\n loading.value = true;\n\n store.dispatch(\"compare/category\", {\n slug: category.slug,\n finally: () => {\n toast(\n __(\"shop.compare.category_deleted\", {\n name: category.name,\n }),\n {\n type: \"success\",\n }\n );\n\n loading.value = false;\n },\n });\n }\n };\n\n store.dispatch(\"compare/get\", {\n finally: () => {\n mounted.value = true;\n },\n });\n\n return {\n mounted,\n categories,\n products,\n deleteCategory,\n };\n },\n});\n</script>"],"names":["toast","defineComponent","setup","store","useStore","mounted","ref","categories","computed","getters","products","loading","dispatch","finally","value","deleteCategory","category","slug","__","name","type","class","_createElementVNode","role","style","_createElementBlock","_hoisted_1","_hoisted_2","_ctx","_hoisted_3","_renderSlot","total","length","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","item","key","_hoisted_13","href","_hoisted_15","count","_hoisted_16","onClick"],"mappings":"oDA+CMA,6CAEuBC,kBAAgB,CACzCC,qBACUC,EAAQC,aACRC,EAAUC,OAAI,GACdC,EAAaC,YAAS,kBAAML,EAAMM,QAAQ,yBAC1CC,EAAWF,YAAS,kBAAML,EAAMM,QAAQ,uBACxCE,EAAUL,OAAI,UAwBpBH,EAAMS,SAAS,cAAe,CAC1BC,QAAS,WACLR,EAAQS,OAAQ,KAIjB,CACHT,QAAAA,EACAE,WAAAA,EACAG,SAAAA,EACAK,eAhCmB,SAACC,GACfL,EAAQG,QACTH,EAAQG,OAAQ,EAEhBX,EAAMS,SAAS,mBAAoB,CAC/BK,KAAMD,EAASC,KACfJ,QAAS,WACLb,EACIkB,GAAG,gCAAiC,CAChCC,KAAMH,EAASG,OAEnB,CACIC,KAAM,YAIdT,EAAQG,OAAQ,cCxE/BO,MAAM,kDACFA,MAAM,6BACFA,MAAM,YAEHC,kCACIA,0BAAGD,MAAM,iCAEPA,MAAM,iBAGNA,MAAM,oBACRC,0BAAGD,MAAM,kCAAgC,2BAKpDA,MAAM,gBAAgBE,KAAK,WACvBF,MAAM,uBACFA,MAAM,kCAGXC,4BAAKD,MAAM,gCAEFA,MAAM,wBAGGA,MAAM,YAGfA,MAAM,qCAEHC,6BAAMD,MAAM,OAAOG,MAAA,wCACfF,0BAAGD,MAAM,2EAhCrCI,2BAAAC,GACIJ,2BAAAK,GAC8BC,yBAA1BH,2BAAAI,GACIC,iCAAOC,MAAOH,WAASI,OAASzB,WAAYqB,aAAWI,SAAvD,kBACIC,EAGAX,4BAAAY,oBACON,WAASI,WAEkBJ,aAAWI,sBAA7CP,4BAAAU,+EAMiCP,aAAWI,sBAAxDP,2BAAAW,GACId,2BAAAe,GACIf,2BAAAgB,oBACOV,+BAEPW,mBACAd,kDAAwEG,uBAAdY,EAAMC,wBAAhEhB,4BAAKJ,MAAM,uCAAgFoB,IAAKA,IAC5FnB,2BAAAoB,GACIpB,0BAAIqB,KAAMf,6BAA+BY,EAAKvB,KAAMI,MAAM,sDACnDmB,EAAKrB,aACRG,4BAAAsB,oBAAuBJ,EAAKK,kBAGpCvB,2BAAAwB,GACIxB,0BAAGD,MAAM,OAAQ0B,2BAAOnB,iBAAeY"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("vue"),t=require("vuex"),o=require("vue-toastification"),r={props:{last:null},setup:()
|
|
1
|
+
"use strict";var e=require("vue"),t=require("vuex"),o=require("vue-toastification"),r={props:{last:null},setup:function(){return{translate:window.__}}},n={class:"shop-compare-success-message"},a=["href"];r.render=function(t,o,r,c,s,l){return e.openBlock(),e.createElementBlock("div",n,[e.createElementVNode("div",null,e.toDisplayString(c.translate("shop.compare.product_deleted_named",{product:r.last.name})),1),e.createElementVNode("a",{href:r.last.url,class:"mt-2 is-size-7",style:{color:"#fff","border-bottom":"1px solid #fff"}},e.toDisplayString(c.translate("shop.compare.goto")),9,a)])};var c=o.useToast(),s=e.defineComponent({props:{id:Number},setup:function(o){var n=e.ref(!1),a=t.useStore(),s=e.computed((function(){return a.getters["compare/last"]})),l=e.computed((function(){return a.getters["compare/product"](o.id)}));return{product:l,action:function(){n.value||(n.value=!0,a.dispatch("compare/toggle",{id:o.id,finally:function(){l.value?c({component:r,props:{last:s}},{type:"success"}):c(__("shop.compare.product_deleted"),{type:"warning"});n.value=!1}}))},loading:n}}}),l=["title"],u=e.createElementVNode("svg",{class:"icon compare"},[e.createElementVNode("use",{"xlink:href":"#compare"})],-1);s.render=function(t,o,r,n,a,c){return e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(["button compare",{"is-loading":t.loading,"is-transparent":!t.product}]),onClick:o[0]||(o[0]=function(){return t.action&&t.action.apply(t,arguments)}),title:t.__("shop.compare.add")},[e.renderSlot(t.$slots,"default",{product:t.product},(function(){return[u]}))],10,l)},module.exports=s;
|
|
2
2
|
//# sourceMappingURL=CompareAdd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CompareAdd.js","sources":["../../../../../src/js/components/shop/compare/SuccessMessage.vue","../../../../../src/js/components/shop/compare/SuccessMessage.vue?vue&type=template&id=1ea4d310&lang.js","../../../../../src/js/components/shop/compare/CompareAdd.vue","../../../../../src/js/components/shop/compare/CompareAdd.vue?vue&type=template&id=091eb2ce&lang.js"],"sourcesContent":["<template>\n <div class=\"shop-compare-success-message\">\n <div>\n {{\n translate(\"shop.compare.product_deleted_named\", {\n product: last.name,\n })\n }}\n </div>\n <a\n :href=\"last.url\"\n class=\"mt-2 is-size-7\"\n style=\"color: #fff; border-bottom: 1px solid #fff\"\n >{{ translate(\"shop.compare.goto\") }}</a\n >\n </div>\n</template>\n<script>\nexport default {\n props: {\n last: null,\n },\n setup() {\n const translate = window.__;\n\n return {\n translate,\n };\n },\n};\n</script>","<template>\n <div class=\"shop-compare-success-message\">\n <div>\n {{\n translate(\"shop.compare.product_deleted_named\", {\n product: last.name,\n })\n }}\n </div>\n <a\n :href=\"last.url\"\n class=\"mt-2 is-size-7\"\n style=\"color: #fff; border-bottom: 1px solid #fff\"\n >{{ translate(\"shop.compare.goto\") }}</a\n >\n </div>\n</template>\n<script>\nexport default {\n props: {\n last: null,\n },\n setup() {\n const translate = window.__;\n\n return {\n translate,\n };\n },\n};\n</script>","<template>\n <button class=\"button compare\" @click=\"action\" v-bind:class=\"{ 'is-loading': loading, 'is-transparent': !product }\" :title=\"__('shop.compare.add')\">\n <slot :product=\"product\">\n <svg class=\"icon compare\">\n <use xlink:href=\"#compare\" />\n </svg>\n </slot>\n </button>\n</template>\n<script>\nimport { ref, computed, defineComponent } from \"vue\";\nimport { useStore } from \"vuex\";\nimport { useToast } from 'vue-toastification';\nimport SuccessMessage from './SuccessMessage.vue';\n\nconst toast = useToast();\n\nexport default /*#__PURE__*/ defineComponent({\n props: {\n id: Number,\n },\n setup(props) {\n const loading = ref(false);\n const store = useStore();\n const last = computed(() => store.getters[\"compare/last\"]);\n const product = computed(() =>\n store.getters[\"compare/product\"](props.id)\n );\n\n const action = () => {\n if (!loading.value) {\n loading.value = true;\n\n store.dispatch(\"compare/toggle\", {\n id: props.id,\n finally: () => {\n if (product.value) {\n const component = {\n component: SuccessMessage,\n props: {\n last: last,\n },\n };\n\n toast(component, {\n type: \"success\",\n });\n } else {\n toast(__(\"shop.compare.product_deleted\"), {\n type: \"warning\",\n });\n }\n\n loading.value = false;\n },\n });\n }\n };\n\n return {\n product,\n action,\n loading,\n };\n },\n});\n</script>","<template>\n <button class=\"button compare\" @click=\"action\" v-bind:class=\"{ 'is-loading': loading, 'is-transparent': !product }\" :title=\"__('shop.compare.add')\">\n <slot :product=\"product\">\n <svg class=\"icon compare\">\n <use xlink:href=\"#compare\" />\n </svg>\n </slot>\n </button>\n</template>\n<script>\nimport { ref, computed, defineComponent } from \"vue\";\nimport { useStore } from \"vuex\";\nimport { useToast } from 'vue-toastification';\nimport SuccessMessage from './SuccessMessage.vue';\n\nconst toast = useToast();\n\nexport default /*#__PURE__*/ defineComponent({\n props: {\n id: Number,\n },\n setup(props) {\n const loading = ref(false);\n const store = useStore();\n const last = computed(() => store.getters[\"compare/last\"]);\n const product = computed(() =>\n store.getters[\"compare/product\"](props.id)\n );\n\n const action = () => {\n if (!loading.value) {\n loading.value = true;\n\n store.dispatch(\"compare/toggle\", {\n id: props.id,\n finally: () => {\n if (product.value) {\n const component = {\n component: SuccessMessage,\n props: {\n last: last,\n },\n };\n\n toast(component, {\n type: \"success\",\n });\n } else {\n toast(__(\"shop.compare.product_deleted\"), {\n type: \"warning\",\n });\n }\n\n loading.value = false;\n },\n });\n }\n };\n\n return {\n product,\n action,\n loading,\n };\n },\n});\n</script>"],"names":["props","last","setup","translate","window","__","class","_createElementBlock","_hoisted_1","_createElementVNode","$setup","href","$props","url","style","toast","useToast","defineComponent","id","Number","loading","ref","store","useStore","computed","getters","product","action","value","dispatch","finally","component","SuccessMessage","type","_ctx","onClick","title","_renderSlot","_hoisted_2"],"mappings":"sFAkBe,CACXA,MAAO,CACHC,KAAM,MAEVC,
|
|
1
|
+
{"version":3,"file":"CompareAdd.js","sources":["../../../../../src/js/components/shop/compare/SuccessMessage.vue","../../../../../src/js/components/shop/compare/SuccessMessage.vue?vue&type=template&id=1ea4d310&lang.js","../../../../../src/js/components/shop/compare/CompareAdd.vue","../../../../../src/js/components/shop/compare/CompareAdd.vue?vue&type=template&id=091eb2ce&lang.js"],"sourcesContent":["<template>\n <div class=\"shop-compare-success-message\">\n <div>\n {{\n translate(\"shop.compare.product_deleted_named\", {\n product: last.name,\n })\n }}\n </div>\n <a\n :href=\"last.url\"\n class=\"mt-2 is-size-7\"\n style=\"color: #fff; border-bottom: 1px solid #fff\"\n >{{ translate(\"shop.compare.goto\") }}</a\n >\n </div>\n</template>\n<script>\nexport default {\n props: {\n last: null,\n },\n setup() {\n const translate = window.__;\n\n return {\n translate,\n };\n },\n};\n</script>","<template>\n <div class=\"shop-compare-success-message\">\n <div>\n {{\n translate(\"shop.compare.product_deleted_named\", {\n product: last.name,\n })\n }}\n </div>\n <a\n :href=\"last.url\"\n class=\"mt-2 is-size-7\"\n style=\"color: #fff; border-bottom: 1px solid #fff\"\n >{{ translate(\"shop.compare.goto\") }}</a\n >\n </div>\n</template>\n<script>\nexport default {\n props: {\n last: null,\n },\n setup() {\n const translate = window.__;\n\n return {\n translate,\n };\n },\n};\n</script>","<template>\n <button class=\"button compare\" @click=\"action\" v-bind:class=\"{ 'is-loading': loading, 'is-transparent': !product }\" :title=\"__('shop.compare.add')\">\n <slot :product=\"product\">\n <svg class=\"icon compare\">\n <use xlink:href=\"#compare\" />\n </svg>\n </slot>\n </button>\n</template>\n<script>\nimport { ref, computed, defineComponent } from \"vue\";\nimport { useStore } from \"vuex\";\nimport { useToast } from 'vue-toastification';\nimport SuccessMessage from './SuccessMessage.vue';\n\nconst toast = useToast();\n\nexport default /*#__PURE__*/ defineComponent({\n props: {\n id: Number,\n },\n setup(props) {\n const loading = ref(false);\n const store = useStore();\n const last = computed(() => store.getters[\"compare/last\"]);\n const product = computed(() =>\n store.getters[\"compare/product\"](props.id)\n );\n\n const action = () => {\n if (!loading.value) {\n loading.value = true;\n\n store.dispatch(\"compare/toggle\", {\n id: props.id,\n finally: () => {\n if (product.value) {\n const component = {\n component: SuccessMessage,\n props: {\n last: last,\n },\n };\n\n toast(component, {\n type: \"success\",\n });\n } else {\n toast(__(\"shop.compare.product_deleted\"), {\n type: \"warning\",\n });\n }\n\n loading.value = false;\n },\n });\n }\n };\n\n return {\n product,\n action,\n loading,\n };\n },\n});\n</script>","<template>\n <button class=\"button compare\" @click=\"action\" v-bind:class=\"{ 'is-loading': loading, 'is-transparent': !product }\" :title=\"__('shop.compare.add')\">\n <slot :product=\"product\">\n <svg class=\"icon compare\">\n <use xlink:href=\"#compare\" />\n </svg>\n </slot>\n </button>\n</template>\n<script>\nimport { ref, computed, defineComponent } from \"vue\";\nimport { useStore } from \"vuex\";\nimport { useToast } from 'vue-toastification';\nimport SuccessMessage from './SuccessMessage.vue';\n\nconst toast = useToast();\n\nexport default /*#__PURE__*/ defineComponent({\n props: {\n id: Number,\n },\n setup(props) {\n const loading = ref(false);\n const store = useStore();\n const last = computed(() => store.getters[\"compare/last\"]);\n const product = computed(() =>\n store.getters[\"compare/product\"](props.id)\n );\n\n const action = () => {\n if (!loading.value) {\n loading.value = true;\n\n store.dispatch(\"compare/toggle\", {\n id: props.id,\n finally: () => {\n if (product.value) {\n const component = {\n component: SuccessMessage,\n props: {\n last: last,\n },\n };\n\n toast(component, {\n type: \"success\",\n });\n } else {\n toast(__(\"shop.compare.product_deleted\"), {\n type: \"warning\",\n });\n }\n\n loading.value = false;\n },\n });\n }\n };\n\n return {\n product,\n action,\n loading,\n };\n },\n});\n</script>"],"names":["props","last","setup","translate","window","__","class","_createElementBlock","_hoisted_1","_createElementVNode","$setup","href","$props","url","style","toast","useToast","defineComponent","id","Number","loading","ref","store","useStore","computed","getters","product","action","value","dispatch","finally","component","SuccessMessage","type","_ctx","onClick","title","_renderSlot","_hoisted_2"],"mappings":"sFAkBe,CACXA,MAAO,CACHC,KAAM,MAEVC,uBAGW,CACHC,UAHcC,OAAOC,SCtBxBC,MAAM,+FAAXC,2BAAAC,GACIC,kDAEQC,4EAKRD,0BACKE,KAAMC,OAAKC,IACZP,MAAM,iBACNQ,MAAA,mEACIJ,0CCEhB,IAAMK,EAAQC,eAEeC,kBAAgB,CACzCjB,MAAO,CACHkB,GAAIC,QAERjB,eAAMF,OACIoB,EAAUC,OAAI,GACdC,EAAQC,aACRtB,EAAOuB,YAAS,kBAAMF,EAAMG,QAAQ,mBACpCC,EAAUF,YAAS,kBACrBF,EAAMG,QAAQ,mBAAmBzB,EAAMkB,aAiCpC,CACHQ,QAAAA,EACAC,OAhCW,WACNP,EAAQQ,QACTR,EAAQQ,OAAQ,EAEhBN,EAAMO,SAAS,iBAAkB,CAC7BX,GAAIlB,EAAMkB,GACVY,QAAS,WACDJ,EAAQE,MAQRb,EAPkB,CACdgB,UAAWC,EACXhC,MAAO,CACHC,KAAMA,IAIG,CACbgC,KAAM,YAGVlB,EAAMV,GAAG,gCAAiC,CACtC4B,KAAM,YAIdb,EAAQQ,OAAQ,OAS5BR,QAAAA,oBC3DAX,4BAAKH,MAAM,iBACPG,yCAAgB,sEAH5BF,+BAAQD,wBAAM,+BAA+D4B,4BAA4BA,aAAzEC,sCAAOD,wCAA8EE,MAAOF,2BACxHG,iCAAOX,QAASQ,YAAhB,kBACII"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("vue"),
|
|
1
|
+
"use strict";var e=require("vue"),n=require("vuex"),t=e.defineComponent({props:{id:Number},setup:function(t){var o=n.useStore(),r=e.computed((function(){return o.getters["compare/product"](t.id)})),a=e.ref(!1);return{product:r,action:function(){a.value||(a.value=!0,o.dispatch("compare/delete",{id:t.id,callback:function(e){var n=window.location.pathname.split("/"),o=n.pop();","!=(o=(o=(","+o+",").replace(","+t.id+",",",")).substring(1,o.length-1))&&n.push(o),window.location.href=n.join("/")},finally:function(){a.value=!1}}))},loading:a}}}),o=[e.createElementVNode("i",{class:"fas fa-times"},null,-1)];t.render=function(n,t,r,a,i,c){return e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(["button compare",{"is-loading":n.loading}]),onClick:t[0]||(t[0]=function(){return n.action&&n.action.apply(n,arguments)})},[e.renderSlot(n.$slots,"default",{product:n.product},(function(){return[e.createElementVNode("span",{class:e.normalizeClass(["icon",{"is-transparent":!n.product}])},o,2)]}))],2)},module.exports=t;
|
|
2
2
|
//# sourceMappingURL=CompareDelete.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CompareDelete.js","sources":["../../../../../src/js/components/shop/compare/CompareDelete.vue","../../../../../src/js/components/shop/compare/CompareDelete.vue?vue&type=template&id=b0dce052&lang.js"],"sourcesContent":["<template>\n <button\n class=\"button compare\"\n @click=\"action\"\n v-bind:class=\"{ 'is-loading': loading }\"\n >\n <slot :product=\"product\">\n <span class=\"icon\" v-bind:class=\"{ 'is-transparent': !product }\">\n <i class=\"fas fa-times\"></i>\n </span>\n </slot>\n </button>\n</template>\n<script>\nimport { ref, computed, defineComponent } from \"vue\";\nimport { useStore } from \"vuex\";\n\nexport default /*#__PURE__*/ defineComponent({\n props: {\n id: Number,\n },\n setup(props) {\n const store = useStore();\n const product = computed(() =>\n store.getters[\"compare/product\"](props.id)\n );\n\n const loading = ref(false);\n\n const action = () => {\n if (!loading.value) {\n loading.value = true;\n\n store.dispatch(\"compare/delete\", {\n id: props.id,\n callback: (data) => {\n const { pathname } = window.location;\n\n let segments = pathname.split(\"/\");\n let last = segments.pop();\n\n last = (\",\" + last + \",\").replace(\n \",\" + props.id + \",\",\n \",\"\n );\n\n last = last.substring(1, last.length - 1);\n\n if (last != \",\") {\n segments.push(last);\n }\n\n window.location.href = segments.join(\"/\");\n },\n finally: () => {\n loading.value = false;\n },\n });\n }\n };\n\n return {\n product,\n action,\n loading,\n };\n },\n});\n</script>","<template>\n <button\n class=\"button compare\"\n @click=\"action\"\n v-bind:class=\"{ 'is-loading': loading }\"\n >\n <slot :product=\"product\">\n <span class=\"icon\" v-bind:class=\"{ 'is-transparent': !product }\">\n <i class=\"fas fa-times\"></i>\n </span>\n </slot>\n </button>\n</template>\n<script>\nimport { ref, computed, defineComponent } from \"vue\";\nimport { useStore } from \"vuex\";\n\nexport default /*#__PURE__*/ defineComponent({\n props: {\n id: Number,\n },\n setup(props) {\n const store = useStore();\n const product = computed(() =>\n store.getters[\"compare/product\"](props.id)\n );\n\n const loading = ref(false);\n\n const action = () => {\n if (!loading.value) {\n loading.value = true;\n\n store.dispatch(\"compare/delete\", {\n id: props.id,\n callback: (data) => {\n const { pathname } = window.location;\n\n let segments = pathname.split(\"/\");\n let last = segments.pop();\n\n last = (\",\" + last + \",\").replace(\n \",\" + props.id + \",\",\n \",\"\n );\n\n last = last.substring(1, last.length - 1);\n\n if (last != \",\") {\n segments.push(last);\n }\n\n window.location.href = segments.join(\"/\");\n },\n finally: () => {\n loading.value = false;\n },\n });\n }\n };\n\n return {\n product,\n action,\n loading,\n };\n },\n});\n</script>"],"names":["defineComponent","props","id","Number","setup","store","useStore","product","computed","getters","loading","ref","action","value","dispatch","callback","data","
|
|
1
|
+
{"version":3,"file":"CompareDelete.js","sources":["../../../../../src/js/components/shop/compare/CompareDelete.vue","../../../../../src/js/components/shop/compare/CompareDelete.vue?vue&type=template&id=b0dce052&lang.js"],"sourcesContent":["<template>\n <button\n class=\"button compare\"\n @click=\"action\"\n v-bind:class=\"{ 'is-loading': loading }\"\n >\n <slot :product=\"product\">\n <span class=\"icon\" v-bind:class=\"{ 'is-transparent': !product }\">\n <i class=\"fas fa-times\"></i>\n </span>\n </slot>\n </button>\n</template>\n<script>\nimport { ref, computed, defineComponent } from \"vue\";\nimport { useStore } from \"vuex\";\n\nexport default /*#__PURE__*/ defineComponent({\n props: {\n id: Number,\n },\n setup(props) {\n const store = useStore();\n const product = computed(() =>\n store.getters[\"compare/product\"](props.id)\n );\n\n const loading = ref(false);\n\n const action = () => {\n if (!loading.value) {\n loading.value = true;\n\n store.dispatch(\"compare/delete\", {\n id: props.id,\n callback: (data) => {\n const { pathname } = window.location;\n\n let segments = pathname.split(\"/\");\n let last = segments.pop();\n\n last = (\",\" + last + \",\").replace(\n \",\" + props.id + \",\",\n \",\"\n );\n\n last = last.substring(1, last.length - 1);\n\n if (last != \",\") {\n segments.push(last);\n }\n\n window.location.href = segments.join(\"/\");\n },\n finally: () => {\n loading.value = false;\n },\n });\n }\n };\n\n return {\n product,\n action,\n loading,\n };\n },\n});\n</script>","<template>\n <button\n class=\"button compare\"\n @click=\"action\"\n v-bind:class=\"{ 'is-loading': loading }\"\n >\n <slot :product=\"product\">\n <span class=\"icon\" v-bind:class=\"{ 'is-transparent': !product }\">\n <i class=\"fas fa-times\"></i>\n </span>\n </slot>\n </button>\n</template>\n<script>\nimport { ref, computed, defineComponent } from \"vue\";\nimport { useStore } from \"vuex\";\n\nexport default /*#__PURE__*/ defineComponent({\n props: {\n id: Number,\n },\n setup(props) {\n const store = useStore();\n const product = computed(() =>\n store.getters[\"compare/product\"](props.id)\n );\n\n const loading = ref(false);\n\n const action = () => {\n if (!loading.value) {\n loading.value = true;\n\n store.dispatch(\"compare/delete\", {\n id: props.id,\n callback: (data) => {\n const { pathname } = window.location;\n\n let segments = pathname.split(\"/\");\n let last = segments.pop();\n\n last = (\",\" + last + \",\").replace(\n \",\" + props.id + \",\",\n \",\"\n );\n\n last = last.substring(1, last.length - 1);\n\n if (last != \",\") {\n segments.push(last);\n }\n\n window.location.href = segments.join(\"/\");\n },\n finally: () => {\n loading.value = false;\n },\n });\n }\n };\n\n return {\n product,\n action,\n loading,\n };\n },\n});\n</script>"],"names":["defineComponent","props","id","Number","setup","store","useStore","product","computed","getters","loading","ref","action","value","dispatch","callback","data","segments","window","location","pathname","split","last","pop","replace","substring","length","push","href","join","finally","_createElementVNode","class","_createElementBlock","_ctx","onClick","_renderSlot"],"mappings":"sDAiB6BA,kBAAgB,CACzCC,MAAO,CACHC,GAAIC,QAERC,eAAMH,OACII,EAAQC,aACRC,EAAUC,YAAS,kBACrBH,EAAMI,QAAQ,mBAAmBR,EAAMC,OAGrCQ,EAAUC,OAAI,SAkCb,CACHJ,QAAAA,EACAK,OAlCW,WACNF,EAAQG,QACTH,EAAQG,OAAQ,EAEhBR,EAAMS,SAAS,iBAAkB,CAC7BZ,GAAID,EAAMC,GACVa,SAAU,SAACC,OAGHC,EAFiBC,OAAOC,SAApBC,SAEgBC,MAAM,KAC1BC,EAAOL,EAASM,MASR,MAFZD,GALAA,GAAQ,IAAMA,EAAO,KAAKE,QACtB,IAAMvB,EAAMC,GAAK,IACjB,MAGQuB,UAAU,EAAGH,EAAKI,OAAS,KAGnCT,EAASU,KAAKL,GAGlBJ,OAAOC,SAASS,KAAOX,EAASY,KAAK,MAEzCC,QAAS,WACLpB,EAAQG,OAAQ,OAS5BH,QAAAA,SCxDIqB,0BAAGC,MAAM,8EAPrBC,+BACID,wBAAM,+BAEwBE,aAD7BC,sCAAOD,0CAGRE,iCAAO7B,QAAS2B,YAAhB,kBACIH,6BAAMC,wBAAM,0BAA0CE"}
|