@perevorot/shop 2.0.159 → 2.0.161

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.
Files changed (56) hide show
  1. package/dist/api.js.map +1 -1
  2. package/dist/components/account/OrderItem.js.map +1 -1
  3. package/dist/components/account/User.js.map +1 -1
  4. package/dist/components/auth/Forget.js.map +1 -1
  5. package/dist/components/auth/Login.js.map +1 -1
  6. package/dist/components/auth/Reset.js.map +1 -1
  7. package/dist/components/auth/User.js.map +1 -1
  8. package/dist/components/shop/CodeCopy.js.map +1 -1
  9. package/dist/components/shop/Gallery.js.map +1 -1
  10. package/dist/components/shop/Notice.js.map +1 -1
  11. package/dist/components/shop/PromoProducts.js.map +1 -1
  12. package/dist/components/shop/Search.js.map +1 -1
  13. package/dist/components/shop/bundle/Bundle.js.map +1 -1
  14. package/dist/components/shop/bundle/BundleAdd.js.map +1 -1
  15. package/dist/components/shop/cart/Cart.js.map +1 -1
  16. package/dist/components/shop/cart/CartAdd.js +1 -1
  17. package/dist/components/shop/cart/CartAdd.js.map +1 -1
  18. package/dist/components/shop/cart/CartItem.js +1 -1
  19. package/dist/components/shop/cart/CartItem.js.map +1 -1
  20. package/dist/components/shop/cart/CartTrigger.js.map +1 -1
  21. package/dist/components/shop/compare/CompareAdd.js.map +1 -1
  22. package/dist/components/shop/compare/CompareDelete.js.map +1 -1
  23. package/dist/components/shop/compare/CompareDeleteAll.js.map +1 -1
  24. package/dist/components/shop/filters/FilterSearch.js.map +1 -1
  25. package/dist/components/shop/filters/Price.js.map +1 -1
  26. package/dist/components/shop/order/Checkout.js +1 -1
  27. package/dist/components/shop/order/Checkout.js.map +1 -1
  28. package/dist/components/shop/order/CheckoutItem.js.map +1 -1
  29. package/dist/components/shop/order/OneClick.js.map +1 -1
  30. package/dist/components/shop/order/shipping/CheckoutShippingCourier.js.map +1 -1
  31. package/dist/components/shop/order/shipping/CheckoutShippingNovaposhtaAddress.js.map +1 -1
  32. package/dist/components/shop/order/shipping/CheckoutShippingNovaposhtaWarehouse.js.map +1 -1
  33. package/dist/components/shop/order/shipping/CheckoutShippingPickup.js +1 -1
  34. package/dist/components/shop/order/shipping/CheckoutShippingPickup.js.map +1 -1
  35. package/dist/components/shop/order/shipping/CheckoutShippingUkrposhtaWarehouse.js.map +1 -1
  36. package/dist/components/shop/reviews/Question.js.map +1 -1
  37. package/dist/components/shop/reviews/Review.js.map +1 -1
  38. package/dist/components/shop/viewed/Viewed.js.map +1 -1
  39. package/dist/components/shop/viewed/ViewedDelete.js.map +1 -1
  40. package/dist/components/shop/viewed/Viewer.js +1 -1
  41. package/dist/components/shop/viewed/Viewer.js.map +1 -1
  42. package/dist/components/shop/wishlist/WishlistAdd.js +1 -1
  43. package/dist/components/shop/wishlist/WishlistAdd.js.map +1 -1
  44. package/dist/components/shop/wishlist/WishlistDelete.js.map +1 -1
  45. package/dist/forms/FormCheckbox.js.map +1 -1
  46. package/dist/forms/FormCheckboxes.js.map +1 -1
  47. package/dist/forms/FormPassword.js.map +1 -1
  48. package/dist/forms/FormRadio.js.map +1 -1
  49. package/dist/forms/FormRating.js.map +1 -1
  50. package/dist/forms/FormSelect.js.map +1 -1
  51. package/dist/forms/FormSwitch.js.map +1 -1
  52. package/dist/forms/FormText.js.map +1 -1
  53. package/dist/forms/FormTextarea.js.map +1 -1
  54. package/dist/global.js.map +1 -1
  55. package/dist/store.js.map +1 -1
  56. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"CartItem.js","sources":["../../../../src/components/shop/cart/CartItem.vue","../../../../src/components/shop/cart/CartItem.vue?vue&type=template&id=30ed1a56&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 }\" :data-code=\"item.attributes.code\" shop-product>\n <div class=\"column is-12\" v-if=\"item.attributes.bundle\">\n <div class=\"bundle-title\">{{ __('shop.cart.bundle') }}</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 cart-actions-parent\">\n <div class=\"cart-actions\">\n <button class=\"remove\" @click=\"remove\" :disabled=\"loading\">\n <svg class=\"icon\">\n <use xlink:href=\"#cart-remove\" />\n </svg>\n </button>\n <wishlist-add :id=\"item.attributes.productId ? item.attributes.productId : item.id\" :item=\"item\" v-if=\"auth && !item.attributes.bundle\"></wishlist-add>\n </div>\n </div>\n <div class=\"column is-narrow image-parent\">\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>\n <use xlink:href=\"#logo\" />\n </svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"columns is-gapless mb-0\">\n <div class=\"column\">\n <slot name=\"item-name\" :item=\"item\" :gotoProduct=\"gotoProduct\">\n <div class=\"code\" v-if=\"item.attributes.code\">{{ __('shop.cart.code') }} {{ item.attributes.code }}</div>\n <div class=\"is-hidden\" shop-product-category>{{ item.attributes.categoryFull }}</div>\n <div class=\"title\">\n <span v-if=\"item.attributes.active === false\" shop-product-name>\n {{ item.name }}\n </span>\n <a @click=\"gotoProduct(item.attributes.href)\" v-else>{{ item.name }}</a>\n </div>\n </slot>\n </div>\n <div class=\"column is-narrow has-text-right is-relative quantity-parent\" v-if=\"true || $env.shop.isChangeQuantity\">\n <div class=\"quantity\">\n <button class=\"button decrease\" @click=\"decrease\" :disabled=\"loading || item.quantity == 1\">\n <svg>\n <use xlink:href=\"#cart-minus\" />\n </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>\n <use xlink:href=\"#cart-plus\" />\n </svg>\n </button>\n </div>\n <div class=\"quantity-price\" v-if=\"item.quantity > 1\"><span v-html=\"$filters.price(item.attributes.price)\"></span> / {{ __('shop.cart.q') }}</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 <slot name=\"item-price\" :item=\"item\" :filters=\"$filters\">\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=\"__('shop.cart.bundle_amount') + (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)\" shop-product-price></div>\n </div>\n </slot>\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>{{ __('shop.cart.additional') }} {{ item.options.length }}</span>\n <svg>\n <use xlink:href=\"#arrow-down\" />\n </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\">\n <use xlink:href=\"#bundle-plus\" />\n </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>\n <use xlink:href=\"#logo\" />\n </svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"code\" v-if=\"item.attributes.second.code\">{{ __('shop.cart.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\">\n <use xlink:href=\"#bundle-plus\" />\n </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>\n <use xlink:href=\"#logo\" />\n </svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"code\" v-if=\"item.attributes.third.code\">{{ __('shop.cart.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, inject } from 'vue';\nimport { useStore } from 'vuex';\n\nexport default {\n name: 'CartItem',\n props: {\n item: Object\n },\n setup(props) {\n let cartStorage = inject('cartStorage');\n cartStorage = cartStorage ? cartStorage : 'cart';\n\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 name = props.item.name;\n const price = props.item.attributes.price;\n const code = props.item.attributes.code;\n const category = props.item.attributes.categoryFull ? props.item.attributes.categoryFull : props.item.attributes.category;\n const brand = props.item.attributes.brand;\n const property = props.item.attributes.property;\n const index = props.item.attributes.index;\n const itemListName = props.item.attributes.itemListName;\n\n const remove = () => {\n loading.value = true;\n\n store.dispatch(cartStorage + '/remove', {\n id: props.item.id,\n cart: cartStorage,\n finally: () => {\n loading.value = false;\n },\n callback: () => {\n const q = props.item.quantity;\n\n const object = {\n ecommerce: {\n currency: 'UAH',\n value: parseFloat(price) * q,\n items: [\n {\n item_name: name,\n item_id: code,\n price: parseFloat(price),\n quantity: q,\n }\n ]\n },\n event: 'remove_from_cart'\n };\n\n if (category) {\n if (category.indexOf('/') !== -1) {\n category.split('/').forEach((segment, index) => {\n object.ecommerce.items[0]['item_category' + (index ? index + 1 : '')] = segment.trim();\n });\n } else {\n object.ecommerce.items[0].item_category = category;\n }\n }\n\n if (index) {\n object.ecommerce.items[0].index = index;\n }\n\n if (itemListName) {\n object.ecommerce.items[0].item_list_name = itemListName;\n }\n\n if (property) {\n object.ecommerce.items[0].item_variant = property;\n }\n\n if ($env.debug.ecommerce) {\n console.log(object);\n }\n\n if (!$env.debug.ecommerce && window.dataLayer) {\n window.dataLayer.push({\n ecommerce: null\n });\n\n window.dataLayer.push(object);\n }\n }\n });\n };\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(cartStorage + '/add', {\n cart: cartStorage,\n product: {\n id: props.item.id,\n quantity: difference\n },\n finally: () => {\n loading.value = false;\n },\n callback: () => {\n if (difference > 0) {\n const q = props.item.quantity;\n\n const object = {\n ecommerce: {\n currency: 'UAH',\n value: parseFloat(price),\n items: [\n {\n item_name: name,\n item_id: code,\n price: parseFloat(price),\n quantity: 1,\n }\n ]\n },\n event: 'add_to_cart'\n };\n\n if (brand) {\n object.ecommerce.items[0].item_brand = brand;\n }\n\n if (props.item.attributes.index) {\n object.ecommerce.items[0].index = props.item.attributes.index;\n }\n\n if (props.item.attributes.itemListName) {\n object.ecommerce.items[0].item_list_name = props.item.attributes.itemListName;\n }\n\n if (category) {\n if (category.indexOf('/') !== -1) {\n category.split('/').forEach((segment, index) => {\n object.ecommerce.items[0]['item_category' + (index ? index + 1 : '')] = segment.trim();\n });\n } else {\n object.ecommerce.items[0].item_category = category;\n }\n }\n\n if (property) {\n object.ecommerce.items[0].item_variant = property;\n }\n\n if ($env.debug.ecommerce) {\n console.log(object);\n }\n\n if (!$env.debug.ecommerce && window.dataLayer) {\n window.dataLayer.push({\n ecommerce: null\n });\n\n window.dataLayer.push(object);\n }\n }\n }\n });\n };\n\n if (props.item.options && props.item.options.length) {\n watch(options, (options) => {\n loading.value = true;\n\n store.dispatch(cartStorage + '/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(cartStorage + '/modal', null);\n });\n\n window.addEventListener('pagehide', () => {\n store.commit(cartStorage + '/modal', null);\n });\n\n window.location.href = href;\n };\n\n 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 }\" :data-code=\"item.attributes.code\" shop-product>\n <div class=\"column is-12\" v-if=\"item.attributes.bundle\">\n <div class=\"bundle-title\">{{ __('shop.cart.bundle') }}</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 cart-actions-parent\">\n <div class=\"cart-actions\">\n <button class=\"remove\" @click=\"remove\" :disabled=\"loading\">\n <svg class=\"icon\">\n <use xlink:href=\"#cart-remove\" />\n </svg>\n </button>\n <wishlist-add :id=\"item.attributes.productId ? item.attributes.productId : item.id\" :item=\"item\" v-if=\"auth && !item.attributes.bundle\"></wishlist-add>\n </div>\n </div>\n <div class=\"column is-narrow image-parent\">\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>\n <use xlink:href=\"#logo\" />\n </svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"columns is-gapless mb-0\">\n <div class=\"column\">\n <slot name=\"item-name\" :item=\"item\" :gotoProduct=\"gotoProduct\">\n <div class=\"code\" v-if=\"item.attributes.code\">{{ __('shop.cart.code') }} {{ item.attributes.code }}</div>\n <div class=\"is-hidden\" shop-product-category>{{ item.attributes.categoryFull }}</div>\n <div class=\"title\">\n <span v-if=\"item.attributes.active === false\" shop-product-name>\n {{ item.name }}\n </span>\n <a @click=\"gotoProduct(item.attributes.href)\" v-else>{{ item.name }}</a>\n </div>\n </slot>\n </div>\n <div class=\"column is-narrow has-text-right is-relative quantity-parent\" v-if=\"true || $env.shop.isChangeQuantity\">\n <div class=\"quantity\">\n <button class=\"button decrease\" @click=\"decrease\" :disabled=\"loading || item.quantity == 1\">\n <svg>\n <use xlink:href=\"#cart-minus\" />\n </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>\n <use xlink:href=\"#cart-plus\" />\n </svg>\n </button>\n </div>\n <div class=\"quantity-price\" v-if=\"item.quantity > 1\"><span v-html=\"$filters.price(item.attributes.price)\"></span> / {{ __('shop.cart.q') }}</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 <slot name=\"item-price\" :item=\"item\" :filters=\"$filters\">\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=\"__('shop.cart.bundle_amount') + (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)\" shop-product-price></div>\n </div>\n </slot>\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>{{ __('shop.cart.additional') }} {{ item.options.length }}</span>\n <svg>\n <use xlink:href=\"#arrow-down\" />\n </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\">\n <use xlink:href=\"#bundle-plus\" />\n </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>\n <use xlink:href=\"#logo\" />\n </svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"code\" v-if=\"item.attributes.second.code\">{{ __('shop.cart.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\">\n <use xlink:href=\"#bundle-plus\" />\n </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>\n <use xlink:href=\"#logo\" />\n </svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"code\" v-if=\"item.attributes.third.code\">{{ __('shop.cart.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, inject } from 'vue';\nimport { useStore } from 'vuex';\n\nexport default {\n name: 'CartItem',\n props: {\n item: Object\n },\n setup(props) {\n let cartStorage = inject('cartStorage');\n cartStorage = cartStorage ? cartStorage : 'cart';\n\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 name = props.item.name;\n const price = props.item.attributes.price;\n const code = props.item.attributes.code;\n const category = props.item.attributes.categoryFull ? props.item.attributes.categoryFull : props.item.attributes.category;\n const brand = props.item.attributes.brand;\n const property = props.item.attributes.property;\n const index = props.item.attributes.index;\n const itemListName = props.item.attributes.itemListName;\n\n const remove = () => {\n loading.value = true;\n\n store.dispatch(cartStorage + '/remove', {\n id: props.item.id,\n cart: cartStorage,\n finally: () => {\n loading.value = false;\n },\n callback: () => {\n const q = props.item.quantity;\n\n const object = {\n ecommerce: {\n currency: 'UAH',\n value: parseFloat(price) * q,\n items: [\n {\n item_name: name,\n item_id: code,\n price: parseFloat(price),\n quantity: q,\n }\n ]\n },\n event: 'remove_from_cart'\n };\n\n if (category) {\n if (category.indexOf('/') !== -1) {\n category.split('/').forEach((segment, index) => {\n object.ecommerce.items[0]['item_category' + (index ? index + 1 : '')] = segment.trim();\n });\n } else {\n object.ecommerce.items[0].item_category = category;\n }\n }\n\n if (index) {\n object.ecommerce.items[0].index = index;\n }\n\n if (itemListName) {\n object.ecommerce.items[0].item_list_name = itemListName;\n }\n\n if (property) {\n object.ecommerce.items[0].item_variant = property;\n }\n\n if ($env.debug.ecommerce) {\n console.log(object);\n }\n\n if (!$env.debug.ecommerce && window.dataLayer) {\n window.dataLayer.push({\n ecommerce: null\n });\n\n window.dataLayer.push(object);\n }\n }\n });\n };\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(cartStorage + '/add', {\n cart: cartStorage,\n product: {\n id: props.item.id,\n quantity: difference\n },\n finally: () => {\n loading.value = false;\n },\n callback: () => {\n if (difference > 0) {\n const q = props.item.quantity;\n\n const object = {\n ecommerce: {\n currency: 'UAH',\n value: parseFloat(price),\n items: [\n {\n item_name: name,\n item_id: code,\n price: parseFloat(price),\n quantity: 1,\n }\n ]\n },\n event: 'add_to_cart'\n };\n\n if (brand) {\n object.ecommerce.items[0].item_brand = brand;\n }\n\n if (props.item.attributes.index) {\n object.ecommerce.items[0].index = props.item.attributes.index;\n }\n\n if (props.item.attributes.itemListName) {\n object.ecommerce.items[0].item_list_name = props.item.attributes.itemListName;\n }\n\n if (category) {\n if (category.indexOf('/') !== -1) {\n category.split('/').forEach((segment, index) => {\n object.ecommerce.items[0]['item_category' + (index ? index + 1 : '')] = segment.trim();\n });\n } else {\n object.ecommerce.items[0].item_category = category;\n }\n }\n\n if (property) {\n object.ecommerce.items[0].item_variant = property;\n }\n\n if ($env.debug.ecommerce) {\n console.log(object);\n }\n\n if (!$env.debug.ecommerce && window.dataLayer) {\n window.dataLayer.push({\n ecommerce: null\n });\n\n window.dataLayer.push(object);\n }\n }\n }\n });\n };\n\n if (props.item.options && props.item.options.length) {\n watch(options, (options) => {\n loading.value = true;\n\n store.dispatch(cartStorage + '/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(cartStorage + '/modal', null);\n });\n\n window.addEventListener('pagehide', () => {\n store.commit(cartStorage + '/modal', null);\n });\n\n window.location.href = href;\n };\n\n 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":["script","name","props","item","Object","setup","cartStorage","inject","store","useStore","loading","ref","input","options","attributes","length","optionsToggled","auth","computed","getters","value","price","code","category","categoryFull","brand","property","index","itemListName","quantity","difference","dispatch","cart","product","id","finally","callback","object","ecommerce","currency","parseFloat","items","item_name","item_id","event","item_brand","item_list_name","indexOf","split","forEach","segment","trim","item_category","item_variant","$env","debug","console","log","window","dataLayer","push","watch","values","increase","decrease","remove","q","gotoProduct","href","addEventListener","commit","location","class","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_createElementVNode","createElementVNode","xlink:href","_hoisted_10","_hoisted_15","_hoisted_16","_hoisted_17","shop-product-category","_hoisted_20","shop-product-name","_hoisted_23","_hoisted_33","_hoisted_38","_hoisted_39","_hoisted_41","_hoisted_44","_hoisted_48","_hoisted_54","_hoisted_56","_hoisted_59","_hoisted_65","_hoisted_67","$props","deleted","_createElementBlock","createElementBlock","_normalizeClass","inactive","active","is-bundle","bundle","data-code","shop-product","_openBlock","_hoisted_2","_toDisplayString","_ctx","__","mb-0","onClick","$setup","apply","arguments","disabled","_createBlock","_component_wishlist_add","productId","no-thumb","image","src","_hoisted_12","_hoisted_14","_renderSlot","$slots","_hoisted_18","toDisplayString","_hoisted_19","openBlock","_hoisted_21","_hoisted_22","type","min","onUpdate:modelValue","_cache","$event","_vModelText","_hoisted_30","innerHTML","_createTextVNode","renderSlot","filters","$filters","bundle-price","priceOld","amount","percent","sum","shop-product-price","_hoisted_37","_withDirectives","_Fragment","option","key","is-checked","for","_hoisted_42","description","_hoisted_43","_hoisted_46","_hoisted_47","_hoisted_49","second","_hoisted_51","_hoisted_53","_hoisted_55","third","_hoisted_57","_hoisted_58","_hoisted_60","_hoisted_62","_hoisted_64","_hoisted_66"],"mappings":"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"}
1
+ {"version":3,"file":"CartItem.js","sources":["../../../../src/components/shop/cart/CartItem.vue","../../../../src/components/shop/cart/CartItem.vue?vue&type=template&id=7bd8b5c0&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 }\" :data-code=\"item.attributes.code\" shop-product>\n <div class=\"column is-12\" v-if=\"item.attributes.bundle\">\n <div class=\"bundle-title\">{{ __('shop.cart.bundle') }}</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 cart-actions-parent\">\n <div class=\"cart-actions\">\n <button class=\"remove\" @click=\"remove\" :disabled=\"loading\">\n <svg class=\"icon\">\n <use xlink:href=\"#cart-remove\" />\n </svg>\n </button>\n <wishlist-add :id=\"item.attributes.productId ? item.attributes.productId : item.id\" :item=\"item\" v-if=\"auth && !item.attributes.bundle\"></wishlist-add>\n </div>\n </div>\n <div class=\"column is-narrow image-parent\">\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>\n <use xlink:href=\"#logo\" />\n </svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"columns is-gapless mb-0\">\n <div class=\"column\">\n <slot name=\"item-name\" :item=\"item\" :gotoProduct=\"gotoProduct\">\n <div class=\"code\" v-if=\"item.attributes.code\">{{ __('shop.cart.code') }} {{ item.attributes.code }}</div>\n <div class=\"is-hidden\" shop-product-category>{{ item.attributes.categoryFull }}</div>\n <div class=\"title\">\n <span v-if=\"item.attributes.active === false\" shop-product-name>\n {{ item.name }}\n </span>\n <a @click=\"gotoProduct(item.attributes.href)\" v-else>{{ item.name }}</a>\n </div>\n </slot>\n </div>\n <div class=\"column is-narrow has-text-right is-relative quantity-parent\" v-if=\"true || $env.shop.isChangeQuantity\">\n <div class=\"quantity\">\n <button class=\"button decrease\" @click=\"decrease\" :disabled=\"loading || item.quantity == 1\">\n <svg>\n <use xlink:href=\"#cart-minus\" />\n </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>\n <use xlink:href=\"#cart-plus\" />\n </svg>\n </button>\n </div>\n <div class=\"quantity-price\" v-if=\"item.quantity > 1\"><span v-html=\"$filters.price(item.attributes.price)\"></span> / {{ __('shop.cart.q') }}</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 <slot name=\"item-price\" :item=\"item\" :filters=\"$filters\">\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=\"__('shop.cart.bundle_amount') + (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)\" shop-product-price></div>\n </div>\n </slot>\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>{{ __('shop.cart.additional') }} {{ item.options.length }}</span>\n <svg>\n <use xlink:href=\"#arrow-down\" />\n </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\">\n <use xlink:href=\"#bundle-plus\" />\n </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>\n <use xlink:href=\"#logo\" />\n </svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"code\" v-if=\"item.attributes.second.code\">{{ __('shop.cart.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\">\n <use xlink:href=\"#bundle-plus\" />\n </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>\n <use xlink:href=\"#logo\" />\n </svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"code\" v-if=\"item.attributes.third.code\">{{ __('shop.cart.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, inject } from 'vue';\nimport { useStore } from 'vuex';\n\nexport default {\n name: 'CartItem',\n props: {\n item: Object\n },\n setup(props) {\n let cartStorage = inject('cartStorage');\n cartStorage = cartStorage ? cartStorage : 'cart';\n\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 name = props.item.name;\n const price = props.item.attributes.price;\n const code = props.item.attributes.code;\n const category = props.item.attributes.categoryFull ? props.item.attributes.categoryFull : props.item.attributes.category;\n const brand = props.item.attributes.brand;\n const property = props.item.attributes.property;\n const index = props.item.attributes.index;\n const itemListName = props.item.attributes.itemListName;\n\n const remove = () => {\n loading.value = true;\n\n store.dispatch(cartStorage + '/remove', {\n id: props.item.id,\n cart: cartStorage,\n finally: () => {\n loading.value = false;\n },\n callback: () => {\n const q = props.item.quantity;\n\n const object = {\n ecommerce: {\n currency: $env.locale?.currency ? $env.locale.currency : 'UAH',\n value: parseFloat(price) * q,\n items: [\n {\n item_name: name,\n item_id: code,\n price: parseFloat(price),\n quantity: q,\n }\n ]\n },\n event: 'remove_from_cart'\n };\n\n if (category) {\n if (category.indexOf('/') !== -1) {\n category.split('/').forEach((segment, index) => {\n object.ecommerce.items[0]['item_category' + (index ? index + 1 : '')] = segment.trim();\n });\n } else {\n object.ecommerce.items[0].item_category = category;\n }\n }\n\n if (index) {\n object.ecommerce.items[0].index = index;\n }\n\n if (itemListName) {\n object.ecommerce.items[0].item_list_name = itemListName;\n }\n\n if (property) {\n object.ecommerce.items[0].item_variant = property;\n }\n\n if ($env.debug.ecommerce) {\n console.log(object);\n }\n\n if (!$env.debug.ecommerce && window.dataLayer) {\n window.dataLayer.push({\n ecommerce: null\n });\n\n window.dataLayer.push(object);\n }\n }\n });\n };\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(cartStorage + '/add', {\n cart: cartStorage,\n product: {\n id: props.item.id,\n quantity: difference\n },\n finally: () => {\n loading.value = false;\n },\n callback: () => {\n if (difference > 0) {\n const q = props.item.quantity;\n\n const object = {\n ecommerce: {\n currency: $env.locale?.currency ? $env.locale.currency : 'UAH',\n value: parseFloat(price),\n items: [\n {\n item_name: name,\n item_id: code,\n price: parseFloat(price),\n quantity: 1,\n }\n ]\n },\n event: 'add_to_cart'\n };\n\n if (brand) {\n object.ecommerce.items[0].item_brand = brand;\n }\n\n if (props.item.attributes.index) {\n object.ecommerce.items[0].index = props.item.attributes.index;\n }\n\n if (props.item.attributes.itemListName) {\n object.ecommerce.items[0].item_list_name = props.item.attributes.itemListName;\n }\n\n if (category) {\n if (category.indexOf('/') !== -1) {\n category.split('/').forEach((segment, index) => {\n object.ecommerce.items[0]['item_category' + (index ? index + 1 : '')] = segment.trim();\n });\n } else {\n object.ecommerce.items[0].item_category = category;\n }\n }\n\n if (property) {\n object.ecommerce.items[0].item_variant = property;\n }\n\n if ($env.debug.ecommerce) {\n console.log(object);\n }\n\n if (!$env.debug.ecommerce && window.dataLayer) {\n window.dataLayer.push({\n ecommerce: null\n });\n\n window.dataLayer.push(object);\n }\n }\n }\n });\n };\n\n if (props.item.options && props.item.options.length) {\n watch(options, (options) => {\n loading.value = true;\n\n store.dispatch(cartStorage + '/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(cartStorage + '/modal', null);\n });\n\n window.addEventListener('pagehide', () => {\n store.commit(cartStorage + '/modal', null);\n });\n\n window.location.href = href;\n };\n\n 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 }\" :data-code=\"item.attributes.code\" shop-product>\n <div class=\"column is-12\" v-if=\"item.attributes.bundle\">\n <div class=\"bundle-title\">{{ __('shop.cart.bundle') }}</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 cart-actions-parent\">\n <div class=\"cart-actions\">\n <button class=\"remove\" @click=\"remove\" :disabled=\"loading\">\n <svg class=\"icon\">\n <use xlink:href=\"#cart-remove\" />\n </svg>\n </button>\n <wishlist-add :id=\"item.attributes.productId ? item.attributes.productId : item.id\" :item=\"item\" v-if=\"auth && !item.attributes.bundle\"></wishlist-add>\n </div>\n </div>\n <div class=\"column is-narrow image-parent\">\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>\n <use xlink:href=\"#logo\" />\n </svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"columns is-gapless mb-0\">\n <div class=\"column\">\n <slot name=\"item-name\" :item=\"item\" :gotoProduct=\"gotoProduct\">\n <div class=\"code\" v-if=\"item.attributes.code\">{{ __('shop.cart.code') }} {{ item.attributes.code }}</div>\n <div class=\"is-hidden\" shop-product-category>{{ item.attributes.categoryFull }}</div>\n <div class=\"title\">\n <span v-if=\"item.attributes.active === false\" shop-product-name>\n {{ item.name }}\n </span>\n <a @click=\"gotoProduct(item.attributes.href)\" v-else>{{ item.name }}</a>\n </div>\n </slot>\n </div>\n <div class=\"column is-narrow has-text-right is-relative quantity-parent\" v-if=\"true || $env.shop.isChangeQuantity\">\n <div class=\"quantity\">\n <button class=\"button decrease\" @click=\"decrease\" :disabled=\"loading || item.quantity == 1\">\n <svg>\n <use xlink:href=\"#cart-minus\" />\n </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>\n <use xlink:href=\"#cart-plus\" />\n </svg>\n </button>\n </div>\n <div class=\"quantity-price\" v-if=\"item.quantity > 1\"><span v-html=\"$filters.price(item.attributes.price)\"></span> / {{ __('shop.cart.q') }}</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 <slot name=\"item-price\" :item=\"item\" :filters=\"$filters\">\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=\"__('shop.cart.bundle_amount') + (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)\" shop-product-price></div>\n </div>\n </slot>\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>{{ __('shop.cart.additional') }} {{ item.options.length }}</span>\n <svg>\n <use xlink:href=\"#arrow-down\" />\n </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\">\n <use xlink:href=\"#bundle-plus\" />\n </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>\n <use xlink:href=\"#logo\" />\n </svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"code\" v-if=\"item.attributes.second.code\">{{ __('shop.cart.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\">\n <use xlink:href=\"#bundle-plus\" />\n </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>\n <use xlink:href=\"#logo\" />\n </svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"code\" v-if=\"item.attributes.third.code\">{{ __('shop.cart.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, inject } from 'vue';\nimport { useStore } from 'vuex';\n\nexport default {\n name: 'CartItem',\n props: {\n item: Object\n },\n setup(props) {\n let cartStorage = inject('cartStorage');\n cartStorage = cartStorage ? cartStorage : 'cart';\n\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 name = props.item.name;\n const price = props.item.attributes.price;\n const code = props.item.attributes.code;\n const category = props.item.attributes.categoryFull ? props.item.attributes.categoryFull : props.item.attributes.category;\n const brand = props.item.attributes.brand;\n const property = props.item.attributes.property;\n const index = props.item.attributes.index;\n const itemListName = props.item.attributes.itemListName;\n\n const remove = () => {\n loading.value = true;\n\n store.dispatch(cartStorage + '/remove', {\n id: props.item.id,\n cart: cartStorage,\n finally: () => {\n loading.value = false;\n },\n callback: () => {\n const q = props.item.quantity;\n\n const object = {\n ecommerce: {\n currency: $env.locale?.currency ? $env.locale.currency : 'UAH',\n value: parseFloat(price) * q,\n items: [\n {\n item_name: name,\n item_id: code,\n price: parseFloat(price),\n quantity: q,\n }\n ]\n },\n event: 'remove_from_cart'\n };\n\n if (category) {\n if (category.indexOf('/') !== -1) {\n category.split('/').forEach((segment, index) => {\n object.ecommerce.items[0]['item_category' + (index ? index + 1 : '')] = segment.trim();\n });\n } else {\n object.ecommerce.items[0].item_category = category;\n }\n }\n\n if (index) {\n object.ecommerce.items[0].index = index;\n }\n\n if (itemListName) {\n object.ecommerce.items[0].item_list_name = itemListName;\n }\n\n if (property) {\n object.ecommerce.items[0].item_variant = property;\n }\n\n if ($env.debug.ecommerce) {\n console.log(object);\n }\n\n if (!$env.debug.ecommerce && window.dataLayer) {\n window.dataLayer.push({\n ecommerce: null\n });\n\n window.dataLayer.push(object);\n }\n }\n });\n };\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(cartStorage + '/add', {\n cart: cartStorage,\n product: {\n id: props.item.id,\n quantity: difference\n },\n finally: () => {\n loading.value = false;\n },\n callback: () => {\n if (difference > 0) {\n const q = props.item.quantity;\n\n const object = {\n ecommerce: {\n currency: $env.locale?.currency ? $env.locale.currency : 'UAH',\n value: parseFloat(price),\n items: [\n {\n item_name: name,\n item_id: code,\n price: parseFloat(price),\n quantity: 1,\n }\n ]\n },\n event: 'add_to_cart'\n };\n\n if (brand) {\n object.ecommerce.items[0].item_brand = brand;\n }\n\n if (props.item.attributes.index) {\n object.ecommerce.items[0].index = props.item.attributes.index;\n }\n\n if (props.item.attributes.itemListName) {\n object.ecommerce.items[0].item_list_name = props.item.attributes.itemListName;\n }\n\n if (category) {\n if (category.indexOf('/') !== -1) {\n category.split('/').forEach((segment, index) => {\n object.ecommerce.items[0]['item_category' + (index ? index + 1 : '')] = segment.trim();\n });\n } else {\n object.ecommerce.items[0].item_category = category;\n }\n }\n\n if (property) {\n object.ecommerce.items[0].item_variant = property;\n }\n\n if ($env.debug.ecommerce) {\n console.log(object);\n }\n\n if (!$env.debug.ecommerce && window.dataLayer) {\n window.dataLayer.push({\n ecommerce: null\n });\n\n window.dataLayer.push(object);\n }\n }\n }\n });\n };\n\n if (props.item.options && props.item.options.length) {\n watch(options, (options) => {\n loading.value = true;\n\n store.dispatch(cartStorage + '/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(cartStorage + '/modal', null);\n });\n\n window.addEventListener('pagehide', () => {\n store.commit(cartStorage + '/modal', null);\n });\n\n window.location.href = href;\n };\n\n 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":["script","name","props","item","Object","setup","cartStorage","inject","store","useStore","loading","ref","input","options","attributes","length","optionsToggled","auth","computed","getters","value","price","code","category","categoryFull","brand","property","index","itemListName","quantity","difference","dispatch","cart","product","id","finally","callback","_$env$locale2","object","ecommerce","currency","$env","locale","parseFloat","items","item_name","item_id","event","item_brand","item_list_name","indexOf","split","forEach","segment","trim","item_category","item_variant","debug","console","log","window","dataLayer","push","watch","values","increase","decrease","remove","_$env$locale","q","gotoProduct","href","addEventListener","commit","location","class","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_createElementVNode","createElementVNode","xlink:href","_hoisted_10","_hoisted_15","_hoisted_16","_hoisted_17","shop-product-category","_hoisted_20","shop-product-name","_hoisted_23","_hoisted_33","_hoisted_38","_hoisted_39","_hoisted_41","_hoisted_44","_hoisted_48","_hoisted_54","_hoisted_56","_hoisted_59","_hoisted_65","_hoisted_67","$props","deleted","_createElementBlock","createElementBlock","_normalizeClass","inactive","active","is-bundle","bundle","data-code","shop-product","_openBlock","_hoisted_2","_toDisplayString","_ctx","__","mb-0","onClick","$setup","apply","arguments","disabled","_createBlock","_component_wishlist_add","productId","no-thumb","image","src","_hoisted_12","_hoisted_14","_renderSlot","$slots","_hoisted_18","toDisplayString","_hoisted_19","openBlock","_hoisted_21","_hoisted_22","type","min","onUpdate:modelValue","_cache","$event","_vModelText","_hoisted_30","innerHTML","_createTextVNode","renderSlot","filters","$filters","bundle-price","priceOld","amount","percent","sum","shop-product-price","_hoisted_37","_withDirectives","_Fragment","option","key","is-checked","for","_hoisted_42","description","_hoisted_43","_hoisted_46","_hoisted_47","_hoisted_49","second","_hoisted_51","_hoisted_53","_hoisted_55","third","_hoisted_57","_hoisted_58","_hoisted_60","_hoisted_62","_hoisted_64","_hoisted_66"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CartTrigger.js","sources":["../../../../src/components/shop/cart/CartTrigger.vue","../../../../src/components/shop/cart/CartTrigger.vue?vue&type=template&id=fb2628c6&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\" :close=\"close\">\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 props: {\n cartStorage: {\n type: String,\n default: 'cart'\n }\n },\n setup(props) {\n const cartStorage = props.cartStorage;\n const store = useStore();\n const quantity = computed(() => store.getters[cartStorage + '/quantity']);\n\n const open = () => {\n store.commit(cartStorage + '/modal', 'cart');\n };\n\n const close = () => {\n store.commit(cartStorage + '/modal', null);\n };\n\n return {\n quantity,\n open,\n close,\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\" :close=\"close\">\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 props: {\n cartStorage: {\n type: String,\n default: 'cart'\n }\n },\n setup(props) {\n const cartStorage = props.cartStorage;\n const store = useStore();\n const quantity = computed(() => store.getters[cartStorage + '/quantity']);\n\n const open = () => {\n store.commit(cartStorage + '/modal', 'cart');\n };\n\n const close = () => {\n store.commit(cartStorage + '/modal', null);\n };\n\n return {\n quantity,\n open,\n close,\n };\n }\n});\n</script>\n"],"names":["script","defineComponent","name","props","cartStorage","type","String","default","setup","store","useStore","quantity","computed","getters","open","commit","close","_hoisted_1","class","_hoisted_2","_hoisted_3","_createElementVNode","createElementVNode","width","height","xlink:href","_openBlock","_createElementBlock","_renderSlot","renderSlot","_ctx","$slots","total","_normalizeClass","is-products","onClick","apply","arguments","_hoisted_4","textContent","_toDisplayString"],"mappings":"oDAoBAA,EAAeC,kBAAgB,CAC3BC,KAAM,eACNC,MAAO,CACHC,YAAa,CACTC,KAAMC,OACNC,QAAS,SAGjBC,MAAK,SAACL,GACF,IAAMC,EAAcD,EAAMC,YACpBK,EAAQC,EAAAA,WAWd,MAAO,CACHC,SAXaC,EAAAA,UAAS,WAAA,OAAMH,EAAMI,QAAQT,EAAc,gBAYxDU,KAVS,WACTL,EAAMM,OAAOX,EAAc,SAAU,SAUrCY,MAPU,WACVP,EAAMM,OAAOX,EAAc,SAAU,WCrCxCa,EAAA,CAAAC,MAAM,QACFC,EAAA,CAAAD,MAAM,kCACFE,EAAA,CAAAF,MAAM,sBAGCG,EAEKC,mBAAA,MAAA,CAFAC,MAAM,KAAKC,OAAO,OACnBH,EAAyBC,mBAAA,MAAA,CAApBG,aAAW,gEANxC,OAAAC,EAAAA,YAAAC,qBAaK,MAbLV,EAaK,CAZDI,EAAAC,mBAWK,MAXLH,EAWK,CAVDE,EAAAC,mBASK,MATLF,EASK,CARDQ,EAOMC,WAAAC,EAAAC,OAAA,UAAA,CAPCC,MAAOF,EAAQnB,SAAGG,KAAMgB,EAAIhB,KAAGE,MAAOc,EAAKd,QAAlD,WAAA,MAOM,CANFK,EAKQC,mBAAA,SAAA,CALAJ,MAAKe,EAAAA,eAAA,CAAC,SAAO,CAAAC,cAA+CJ,EAAOnB,YAAnDwB,sCAAOL,EAAIhB,MAAAgB,EAAAhB,KAAAsB,MAAAN,EAAAO,eAC/BC,EAGAjB,EAA8BC,mBAAA,OAAA,CAAxBiB,YAAAC,EAAAA,gBAAQV,EAAQnB"}
1
+ {"version":3,"file":"CartTrigger.js","sources":["../../../../src/components/shop/cart/CartTrigger.vue","../../../../src/components/shop/cart/CartTrigger.vue?vue&type=template&id=fb2628c6&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\" :close=\"close\">\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 props: {\n cartStorage: {\n type: String,\n default: 'cart'\n }\n },\n setup(props) {\n const cartStorage = props.cartStorage;\n const store = useStore();\n const quantity = computed(() => store.getters[cartStorage + '/quantity']);\n\n const open = () => {\n store.commit(cartStorage + '/modal', 'cart');\n };\n\n const close = () => {\n store.commit(cartStorage + '/modal', null);\n };\n\n return {\n quantity,\n open,\n close,\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\" :close=\"close\">\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 props: {\n cartStorage: {\n type: String,\n default: 'cart'\n }\n },\n setup(props) {\n const cartStorage = props.cartStorage;\n const store = useStore();\n const quantity = computed(() => store.getters[cartStorage + '/quantity']);\n\n const open = () => {\n store.commit(cartStorage + '/modal', 'cart');\n };\n\n const close = () => {\n store.commit(cartStorage + '/modal', null);\n };\n\n return {\n quantity,\n open,\n close,\n };\n }\n});\n</script>\n"],"names":["script","defineComponent","name","props","cartStorage","type","String","default","setup","store","useStore","quantity","computed","getters","open","commit","close","_hoisted_1","class","_hoisted_2","_hoisted_3","_createElementVNode","createElementVNode","width","height","xlink:href","_openBlock","_createElementBlock","_renderSlot","renderSlot","_ctx","$slots","total","_normalizeClass","is-products","onClick","apply","arguments","_hoisted_4","textContent","_toDisplayString"],"mappings":"oDAoBAA,EAAeC,kBAAgB,CAC3BC,KAAM,eACNC,MAAO,CACHC,YAAa,CACTC,KAAMC,OACNC,QAAS,SAGjBC,MAAAA,SAAML,GACF,IAAMC,EAAcD,EAAMC,YACpBK,EAAQC,EAAAA,WAWd,MAAO,CACHC,SAXaC,EAAAA,UAAS,WAAA,OAAMH,EAAMI,QAAQT,EAAc,gBAYxDU,KAVS,WACTL,EAAMM,OAAOX,EAAc,SAAU,SAUrCY,MAPU,WACVP,EAAMM,OAAOX,EAAc,SAAU,WCrCxCa,EAAA,CAAAC,MAAM,QACFC,EAAA,CAAAD,MAAM,kCACFE,EAAA,CAAAF,MAAM,sBAGCG,EAEKC,mBAAA,MAAA,CAFAC,MAAM,KAAKC,OAAO,OACnBH,EAAyBC,mBAAA,MAAA,CAApBG,aAAW,gEANxC,OAAAC,EAAAA,YAAAC,qBAaK,MAbLV,EAaK,CAZDI,EAAAC,mBAWK,MAXLH,EAWK,CAVDE,EAAAC,mBASK,MATLF,EASK,CARDQ,EAOMC,WAAAC,EAAAC,OAAA,UAAA,CAPCC,MAAOF,EAAQnB,SAAGG,KAAMgB,EAAIhB,KAAGE,MAAOc,EAAKd,QAAlD,WAAA,MAOM,CANFK,EAKQC,mBAAA,SAAA,CALAJ,MAAKe,EAAAA,eAAA,CAAC,SAAO,CAAAC,cAA+CJ,EAAOnB,YAAnDwB,sCAAOL,EAAIhB,MAAAgB,EAAAhB,KAAAsB,MAAAN,EAAAO,eAC/BC,EAGAjB,EAA8BC,mBAAA,OAAA,CAAxBiB,YAAAC,EAAAA,gBAAQV,EAAQnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"CompareAdd.js","sources":["../../../../src/components/shop/compare/SuccessMessage.vue","../../../../src/components/shop/compare/SuccessMessage.vue?vue&type=template&id=2662d3ca&lang.js","../../../../src/components/shop/compare/CompareAdd.vue","../../../../src/components/shop/compare/CompareAdd.vue?vue&type=template&id=24209000&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 let object = {\n event: ''\n };\n\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\n object.event = 'add_to_comparison_list';\n } else {\n toast(__(\"shop.compare.product_deleted\"), {\n type: \"warning\",\n });\n\n object.event = 'remove_from_comparison_list';\n }\n\n if ($env.debug.ecommerce) {\n console.log(object);\n }\n\n if (!$env.debug.ecommerce && window.dataLayer) {\n window.dataLayer.push({\n ecommerce: null\n });\n\n window.dataLayer.push(object);\n }\n\n 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 let object = {\n event: ''\n };\n\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\n object.event = 'add_to_comparison_list';\n } else {\n toast(__(\"shop.compare.product_deleted\"), {\n type: \"warning\",\n });\n\n object.event = 'remove_from_comparison_list';\n }\n\n if ($env.debug.ecommerce) {\n console.log(object);\n }\n\n if (!$env.debug.ecommerce && window.dataLayer) {\n window.dataLayer.push({\n ecommerce: null\n });\n\n window.dataLayer.push(object);\n }\n\n loading.value = false;\n },\n });\n }\n };\n\n return {\n product,\n action,\n loading,\n };\n },\n});\n</script>"],"names":["script$1","props","last","setup","translate","window","__","_hoisted_1","class","_openBlock","openBlock","_createElementBlock","_createElementVNode","$setup","product","$props","name","_createCommentVNode","createCommentVNode","toast","useToast","script","defineComponent","id","Number","loading","ref","store","useStore","computed","getters","action","value","dispatch","finally","object","event","component","SuccessMessage","type","$env","debug","ecommerce","console","log","dataLayer","push","createElementVNode","xlink:href","createElementBlock","_normalizeClass","is-loading","_ctx","onClick","apply","arguments","title","_renderSlot","renderSlot","$slots","_hoisted_2"],"mappings":"oFAkBeA,EAAA,CACXC,MAAO,CACHC,KAAM,MAEVC,MAAK,WAGD,MAAO,CACHC,UAHcC,OAAOC,MCtBxBC,EAAA,CAAAC,MAAM,+DAAX,OAAAC,EAAAC,YAAAC,EAAAA,mBAcK,MAdLJ,EAcK,CAbDK,EAAAA,mBAMK,6BAJGC,EAAST,UAAA,qCAAA,CAAuCU,QAAAC,EAAAb,KAAAc,WAKxDC,EAKIC,mBAAA,8MCCZ,IAAMC,EAAQC,EAAQA,WAEPC,EAAcC,kBAAgB,CACzCrB,MAAO,CACHsB,GAAIC,QAERrB,MAAK,SAACF,GACF,IAAMwB,EAAUC,OAAI,GACdC,EAAQC,EAAAA,WACR1B,EAAO2B,EAAAA,UAAS,WAAA,OAAMF,EAAMG,QAAQ,mBACpChB,EAAUe,EAAAA,UAAS,WAAA,OACrBF,EAAMG,QAAQ,mBAAmB7B,EAAMsB,OAqD3C,MAAO,CACHT,QAAAA,EACAiB,OApDW,WACNN,EAAQO,QACTP,EAAQO,OAAQ,EAEhBL,EAAMM,SAAS,iBAAkB,CAC7BV,GAAItB,EAAMsB,GACVW,QAAS,WACL,IAAIC,EAAS,CACTC,MAAO,IAGPtB,EAAQkB,OAQRb,EAPkB,CACdkB,UAAWC,EACXrC,MAAO,CACHC,KAAMA,IAIG,CACbqC,KAAM,YAGVJ,EAAOC,MAAQ,2BAEfjB,EAAMb,GAAG,gCAAiC,CACtCiC,KAAM,YAGVJ,EAAOC,MAAQ,+BAGfI,KAAKC,MAAMC,WACXC,QAAQC,IAAIT,IAGXK,KAAKC,MAAMC,WAAarC,OAAOwC,YAChCxC,OAAOwC,UAAUC,KAAK,CAClBJ,UAAW,OAGfrC,OAAOwC,UAAUC,KAAKX,IAG1BV,EAAQO,OAAQ,OAS5BP,QAAAA,oBC/EAb,EAEKmC,mBAAA,MAAA,CAFAvC,MAAM,gBAAc,CACrBI,EAA4BmC,mBAAA,MAAA,CAAvBC,aAAW,sEAH5BrC,EAMQsC,mBAAA,SAAA,CANAzC,MAAM0C,EAAAA,eAAA,CAAA,iBAA+D,CAAAC,aAAAC,EAAA3B,0BAA4B2B,EAAQtC,WAAjFuC,sCAAOD,EAAMrB,QAAAqB,EAAArB,OAAAuB,MAAAF,EAAAG,aAAwEC,MAAOJ,EAAE9C,GAAA,sBAC1HmD,EAAAC,WAIMN,EAJCO,OAAA,UAAA,CAAA7C,QAASsC,EAAAtC,UAAhB,WAAA,MAIM,CAHF8C"}
1
+ {"version":3,"file":"CompareAdd.js","sources":["../../../../src/components/shop/compare/SuccessMessage.vue","../../../../src/components/shop/compare/SuccessMessage.vue?vue&type=template&id=2662d3ca&lang.js","../../../../src/components/shop/compare/CompareAdd.vue","../../../../src/components/shop/compare/CompareAdd.vue?vue&type=template&id=24209000&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 let object = {\n event: ''\n };\n\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\n object.event = 'add_to_comparison_list';\n } else {\n toast(__(\"shop.compare.product_deleted\"), {\n type: \"warning\",\n });\n\n object.event = 'remove_from_comparison_list';\n }\n\n if ($env.debug.ecommerce) {\n console.log(object);\n }\n\n if (!$env.debug.ecommerce && window.dataLayer) {\n window.dataLayer.push({\n ecommerce: null\n });\n\n window.dataLayer.push(object);\n }\n\n 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 let object = {\n event: ''\n };\n\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\n object.event = 'add_to_comparison_list';\n } else {\n toast(__(\"shop.compare.product_deleted\"), {\n type: \"warning\",\n });\n\n object.event = 'remove_from_comparison_list';\n }\n\n if ($env.debug.ecommerce) {\n console.log(object);\n }\n\n if (!$env.debug.ecommerce && window.dataLayer) {\n window.dataLayer.push({\n ecommerce: null\n });\n\n window.dataLayer.push(object);\n }\n\n loading.value = false;\n },\n });\n }\n };\n\n return {\n product,\n action,\n loading,\n };\n },\n});\n</script>"],"names":["script$1","props","last","setup","translate","window","__","_hoisted_1","class","_openBlock","openBlock","_createElementBlock","_createElementVNode","$setup","product","$props","name","_createCommentVNode","createCommentVNode","toast","useToast","script","defineComponent","id","Number","loading","ref","store","useStore","computed","getters","action","value","dispatch","finally","object","event","component","SuccessMessage","type","$env","debug","ecommerce","console","log","dataLayer","push","createElementVNode","xlink:href","createElementBlock","_normalizeClass","is-loading","_ctx","onClick","apply","arguments","title","_renderSlot","renderSlot","$slots","_hoisted_2"],"mappings":"oFAkBeA,EAAA,CACXC,MAAO,CACHC,KAAM,MAEVC,MAAK,WAGD,MAAO,CACHC,UAHcC,OAAOC,MCtBxBC,EAAA,CAAAC,MAAM,+DAAX,OAAAC,EAAAC,YAAAC,EAAAA,mBAcK,MAdLJ,EAcK,CAbDK,EAAAA,mBAMK,6BAJGC,EAAST,UAAA,qCAAA,CAAuCU,QAAAC,EAAAb,KAAAc,WAKxDC,EAKIC,mBAAA,8MCCZ,IAAMC,EAAQC,EAAQA,WAEPC,EAAcC,kBAAgB,CACzCrB,MAAO,CACHsB,GAAIC,QAERrB,MAAAA,SAAMF,GACF,IAAMwB,EAAUC,OAAI,GACdC,EAAQC,EAAAA,WACR1B,EAAO2B,EAAAA,UAAS,WAAA,OAAMF,EAAMG,QAAQ,mBACpChB,EAAUe,EAAAA,UAAS,WAAA,OACrBF,EAAMG,QAAQ,mBAAmB7B,EAAMsB,OAqD3C,MAAO,CACHT,QAAAA,EACAiB,OApDW,WACNN,EAAQO,QACTP,EAAQO,OAAQ,EAEhBL,EAAMM,SAAS,iBAAkB,CAC7BV,GAAItB,EAAMsB,GACVW,QAAS,WACL,IAAIC,EAAS,CACTC,MAAO,IAGPtB,EAAQkB,OAQRb,EAPkB,CACdkB,UAAWC,EACXrC,MAAO,CACHC,KAAMA,IAIG,CACbqC,KAAM,YAGVJ,EAAOC,MAAQ,2BAEfjB,EAAMb,GAAG,gCAAiC,CACtCiC,KAAM,YAGVJ,EAAOC,MAAQ,+BAGfI,KAAKC,MAAMC,WACXC,QAAQC,IAAIT,IAGXK,KAAKC,MAAMC,WAAarC,OAAOwC,YAChCxC,OAAOwC,UAAUC,KAAK,CAClBJ,UAAW,OAGfrC,OAAOwC,UAAUC,KAAKX,IAG1BV,EAAQO,OAAQ,OAS5BP,QAAAA,oBC/EAb,EAEKmC,mBAAA,MAAA,CAFAvC,MAAM,gBAAc,CACrBI,EAA4BmC,mBAAA,MAAA,CAAvBC,aAAW,sEAH5BrC,EAMQsC,mBAAA,SAAA,CANAzC,MAAM0C,EAAAA,eAAA,CAAA,iBAA+D,CAAAC,aAAAC,EAAA3B,0BAA4B2B,EAAQtC,WAAjFuC,sCAAOD,EAAMrB,QAAAqB,EAAArB,OAAAuB,MAAAF,EAAAG,aAAwEC,MAAOJ,EAAE9C,GAAA,sBAC1HmD,EAAAC,WAIMN,EAJCO,OAAA,UAAA,CAAA7C,QAASsC,EAAAtC,UAAhB,WAAA,MAIM,CAHF8C"}
@@ -1 +1 @@
1
- {"version":3,"file":"CompareDelete.js","sources":["../../../../src/components/shop/compare/CompareDelete.vue","../../../../src/components/shop/compare/CompareDelete.vue?vue&type=template&id=1b71b721&lang.js"],"sourcesContent":["<template>\n <button class=\"button compare\" @click=\"action\" v-bind:class=\"{ 'is-loading': loading }\">\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.replace(/\\/$/, \"\").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(\"/\") + ($env.shop.isTrailingSlash ? '/' : '');\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 class=\"button compare\" @click=\"action\" v-bind:class=\"{ 'is-loading': loading }\">\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.replace(/\\/$/, \"\").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(\"/\") + ($env.shop.isTrailingSlash ? '/' : '');\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":["script","defineComponent","props","id","Number","setup","store","useStore","product","computed","getters","loading","ref","action","value","dispatch","callback","data","segments","window","location","pathname","replace","split","last","pop","substring","length","push","href","join","$env","shop","isTrailingSlash","finally","_createElementVNode","createElementVNode","class","_createElementBlock","createElementBlock","_normalizeClass","is-loading","_ctx","onClick","apply","arguments","_renderSlot","renderSlot","$slots","is-transparent"],"mappings":"oDAaeA,EAAcC,kBAAgB,CACzCC,MAAO,CACHC,GAAIC,QAERC,MAAK,SAACH,GACF,IAAMI,EAAQC,EAAAA,WACRC,EAAUC,EAAAA,UAAS,WAAA,OACrBH,EAAMI,QAAQ,mBAAmBR,EAAMC,OAGrCQ,EAAUC,OAAI,GAkCpB,MAAO,CACHJ,QAAAA,EACAK,OAlCW,WACNF,EAAQG,QACTH,EAAQG,OAAQ,EAEhBR,EAAMS,SAAS,iBAAkB,CAC7BZ,GAAID,EAAMC,GACVa,SAAU,SAACC,GACP,IAEIC,EAFiBC,OAAOC,SAApBC,SAEgBC,QAAQ,MAAO,IAAIC,MAAM,KAC7CC,EAAON,EAASO,MASR,MAFZD,GALAA,GAAQ,IAAMA,EAAO,KAAKF,QACtB,IAAMpB,EAAMC,GAAK,IACjB,MAGQuB,UAAU,EAAGF,EAAKG,OAAS,KAGnCT,EAASU,KAAKJ,GAGlBL,OAAOC,SAASS,KAAOX,EAASY,KAAK,MAAQC,KAAKC,KAAKC,gBAAkB,IAAM,KAEnFC,QAAS,WACLvB,EAAQG,OAAQ,OAS5BH,QAAAA,SCxDIwB,EAA2BC,mBAAA,IAAA,CAAxBC,MAAM,gBAAc,MAAA,wDAHnCC,EAMQC,mBAAA,SAAA,CANAF,MAAKG,EAAAA,eAAA,CAAC,iBAAiB,CAAAC,aAA8CC,EAAM/B,WAAnDgC,sCAAOD,EAAM7B,QAAA6B,EAAA7B,OAAA+B,MAAAF,EAAAG,eACzCC,EAAAC,WAIML,EAJCM,OAAA,UAAA,CAAAxC,QAASkC,EAAAlC,UAAhB,WAAA,MAIM,CAHF2B,EAEMC,mBAAA,OAAA,CAFAC,MAAKG,EAAAA,eAAA,CAAC,OAAK,CAAAS,kBAAqCP,EAAQlC"}
1
+ {"version":3,"file":"CompareDelete.js","sources":["../../../../src/components/shop/compare/CompareDelete.vue","../../../../src/components/shop/compare/CompareDelete.vue?vue&type=template&id=1b71b721&lang.js"],"sourcesContent":["<template>\n <button class=\"button compare\" @click=\"action\" v-bind:class=\"{ 'is-loading': loading }\">\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.replace(/\\/$/, \"\").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(\"/\") + ($env.shop.isTrailingSlash ? '/' : '');\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 class=\"button compare\" @click=\"action\" v-bind:class=\"{ 'is-loading': loading }\">\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.replace(/\\/$/, \"\").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(\"/\") + ($env.shop.isTrailingSlash ? '/' : '');\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":["script","defineComponent","props","id","Number","setup","store","useStore","product","computed","getters","loading","ref","action","value","dispatch","callback","data","segments","window","location","pathname","replace","split","last","pop","substring","length","push","href","join","$env","shop","isTrailingSlash","finally","_createElementVNode","createElementVNode","class","_createElementBlock","createElementBlock","_normalizeClass","is-loading","_ctx","onClick","apply","arguments","_renderSlot","renderSlot","$slots","is-transparent"],"mappings":"oDAaeA,EAAcC,kBAAgB,CACzCC,MAAO,CACHC,GAAIC,QAERC,MAAAA,SAAMH,GACF,IAAMI,EAAQC,EAAAA,WACRC,EAAUC,EAAAA,UAAS,WAAA,OACrBH,EAAMI,QAAQ,mBAAmBR,EAAMC,OAGrCQ,EAAUC,OAAI,GAkCpB,MAAO,CACHJ,QAAAA,EACAK,OAlCW,WACNF,EAAQG,QACTH,EAAQG,OAAQ,EAEhBR,EAAMS,SAAS,iBAAkB,CAC7BZ,GAAID,EAAMC,GACVa,SAAU,SAACC,GACP,IAEIC,EAFiBC,OAAOC,SAApBC,SAEgBC,QAAQ,MAAO,IAAIC,MAAM,KAC7CC,EAAON,EAASO,MASR,MAFZD,GALAA,GAAQ,IAAMA,EAAO,KAAKF,QACtB,IAAMpB,EAAMC,GAAK,IACjB,MAGQuB,UAAU,EAAGF,EAAKG,OAAS,KAGnCT,EAASU,KAAKJ,GAGlBL,OAAOC,SAASS,KAAOX,EAASY,KAAK,MAAQC,KAAKC,KAAKC,gBAAkB,IAAM,KAEnFC,QAAS,WACLvB,EAAQG,OAAQ,OAS5BH,QAAAA,SCxDIwB,EAA2BC,mBAAA,IAAA,CAAxBC,MAAM,gBAAc,MAAA,wDAHnCC,EAMQC,mBAAA,SAAA,CANAF,MAAKG,EAAAA,eAAA,CAAC,iBAAiB,CAAAC,aAA8CC,EAAM/B,WAAnDgC,sCAAOD,EAAM7B,QAAA6B,EAAA7B,OAAA+B,MAAAF,EAAAG,eACzCC,EAAAC,WAIML,EAJCM,OAAA,UAAA,CAAAxC,QAASkC,EAAAlC,UAAhB,WAAA,MAIM,CAHF2B,EAEMC,mBAAA,OAAA,CAFAC,MAAKG,EAAAA,eAAA,CAAC,OAAK,CAAAS,kBAAqCP,EAAQlC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CompareDeleteAll.js","sources":["../../../../src/components/shop/compare/CompareDeleteAll.vue","../../../../src/components/shop/compare/CompareDeleteAll.vue?vue&type=template&id=24871093&lang.js"],"sourcesContent":["<template>\n <button class=\"button compare\" @click=\"action\" v-bind:class=\"{ 'is-loading': loading }\">\n <slot>{{ __('shop.compare.clear') }}</slot>\n </button>\n</template>\n<script>\nimport { ref, defineComponent } from 'vue';\nimport { useStore } from 'vuex';\n\nexport default /*#__PURE__*/ defineComponent({\n props: {\n callback: {\n type: Function,\n default: null\n }\n },\n setup(props) {\n const store = useStore();\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: 'all',\n callback: () => {\n if (props.callback) {\n props.callback();\n } else {\n window.location.href = $ziggy('shop.compare');\n }\n },\n finally: () => {\n loading.value = false;\n }\n });\n }\n };\n\n return {\n action,\n loading\n };\n }\n});\n</script>","<template>\n <button class=\"button compare\" @click=\"action\" v-bind:class=\"{ 'is-loading': loading }\">\n <slot>{{ __('shop.compare.clear') }}</slot>\n </button>\n</template>\n<script>\nimport { ref, defineComponent } from 'vue';\nimport { useStore } from 'vuex';\n\nexport default /*#__PURE__*/ defineComponent({\n props: {\n callback: {\n type: Function,\n default: null\n }\n },\n setup(props) {\n const store = useStore();\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: 'all',\n callback: () => {\n if (props.callback) {\n props.callback();\n } else {\n window.location.href = $ziggy('shop.compare');\n }\n },\n finally: () => {\n loading.value = false;\n }\n });\n }\n };\n\n return {\n action,\n loading\n };\n }\n});\n</script>"],"names":["script","defineComponent","props","callback","type","Function","default","setup","store","useStore","loading","ref","action","value","dispatch","id","window","location","href","$ziggy","finally","_createElementBlock","createElementBlock","class","_normalizeClass","is-loading","_ctx","onClick","apply","arguments","_renderSlot","renderSlot","__"],"mappings":"oDASeA,EAAcC,kBAAgB,CACzCC,MAAO,CACHC,SAAU,CACNC,KAAMC,SACNC,QAAS,OAGjBC,MAAK,SAACL,GACF,IAAMM,EAAQC,EAAAA,WAERC,EAAUC,OAAI,GAsBpB,MAAO,CACHC,OArBW,WACNF,EAAQG,QACTH,EAAQG,OAAQ,EAEhBL,EAAMM,SAAS,iBAAkB,CAC7BC,GAAI,MACJZ,SAAU,WACFD,EAAMC,SACND,EAAMC,WAENa,OAAOC,SAASC,KAAOC,OAAO,iBAGtCC,QAAS,WACLV,EAAQG,OAAQ,OAQ5BH,QAAAA,0DC1CRW,EAEQC,mBAAA,SAAA,CAFAC,MAAKC,EAAAA,eAAA,CAAC,iBAAiB,CAAAC,aAA8CC,EAAMhB,WAAnDiB,sCAAOD,EAAMd,QAAAc,EAAAd,OAAAgB,MAAAF,EAAAG,eACzCC,EAAAC,WAA0CL,uBAA1C,WAAA,MAA0C,qCAAjCA,EAAEM,GAAA,uBAAA"}
1
+ {"version":3,"file":"CompareDeleteAll.js","sources":["../../../../src/components/shop/compare/CompareDeleteAll.vue","../../../../src/components/shop/compare/CompareDeleteAll.vue?vue&type=template&id=24871093&lang.js"],"sourcesContent":["<template>\n <button class=\"button compare\" @click=\"action\" v-bind:class=\"{ 'is-loading': loading }\">\n <slot>{{ __('shop.compare.clear') }}</slot>\n </button>\n</template>\n<script>\nimport { ref, defineComponent } from 'vue';\nimport { useStore } from 'vuex';\n\nexport default /*#__PURE__*/ defineComponent({\n props: {\n callback: {\n type: Function,\n default: null\n }\n },\n setup(props) {\n const store = useStore();\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: 'all',\n callback: () => {\n if (props.callback) {\n props.callback();\n } else {\n window.location.href = $ziggy('shop.compare');\n }\n },\n finally: () => {\n loading.value = false;\n }\n });\n }\n };\n\n return {\n action,\n loading\n };\n }\n});\n</script>","<template>\n <button class=\"button compare\" @click=\"action\" v-bind:class=\"{ 'is-loading': loading }\">\n <slot>{{ __('shop.compare.clear') }}</slot>\n </button>\n</template>\n<script>\nimport { ref, defineComponent } from 'vue';\nimport { useStore } from 'vuex';\n\nexport default /*#__PURE__*/ defineComponent({\n props: {\n callback: {\n type: Function,\n default: null\n }\n },\n setup(props) {\n const store = useStore();\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: 'all',\n callback: () => {\n if (props.callback) {\n props.callback();\n } else {\n window.location.href = $ziggy('shop.compare');\n }\n },\n finally: () => {\n loading.value = false;\n }\n });\n }\n };\n\n return {\n action,\n loading\n };\n }\n});\n</script>"],"names":["script","defineComponent","props","callback","type","Function","default","setup","store","useStore","loading","ref","action","value","dispatch","id","window","location","href","$ziggy","finally","_createElementBlock","createElementBlock","class","_normalizeClass","is-loading","_ctx","onClick","apply","arguments","_renderSlot","renderSlot","__"],"mappings":"oDASeA,EAAcC,kBAAgB,CACzCC,MAAO,CACHC,SAAU,CACNC,KAAMC,SACNC,QAAS,OAGjBC,MAAAA,SAAML,GACF,IAAMM,EAAQC,EAAAA,WAERC,EAAUC,OAAI,GAsBpB,MAAO,CACHC,OArBW,WACNF,EAAQG,QACTH,EAAQG,OAAQ,EAEhBL,EAAMM,SAAS,iBAAkB,CAC7BC,GAAI,MACJZ,SAAU,WACFD,EAAMC,SACND,EAAMC,WAENa,OAAOC,SAASC,KAAOC,OAAO,iBAGtCC,QAAS,WACLV,EAAQG,OAAQ,OAQ5BH,QAAAA,0DC1CRW,EAEQC,mBAAA,SAAA,CAFAC,MAAKC,EAAAA,eAAA,CAAC,iBAAiB,CAAAC,aAA8CC,EAAMhB,WAAnDiB,sCAAOD,EAAMd,QAAAc,EAAAd,OAAAgB,MAAAF,EAAAG,eACzCC,EAAAC,WAA0CL,uBAA1C,WAAA,MAA0C,qCAAjCA,EAAEM,GAAA,uBAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"FilterSearch.js","sources":["../../../../src/components/shop/filters/FilterSearch.vue","../../../../src/components/shop/filters/FilterSearch.vue?vue&type=template&id=a7d1bee4&lang.js"],"sourcesContent":["<template>\n <div class=\"shop-filters-search\">\n <input type=\"search\" class=\"input is-small mb-2\" :placeholder=\"__('shop.filter.search')\" v-model=\"term\" />\n </div>\n</template>\n<script>\nimport { ref, watch, defineComponent, onMounted } from 'vue';\nimport SimpleBar from 'simplebar';\n\nexport default /*#__PURE__*/ defineComponent({\n name: 'filterSearch',\n props: {\n selector: String,\n element: String\n },\n setup(props) {\n const term = ref('');\n\n const search = () => {\n if (term.value.trim()) {\n const t = term.value.trim().toLowerCase();\n let ids = [];\n\n data.forEach((item, key) => {\n if (item.indexOf(t) !== -1) {\n ids.push(key);\n }\n });\n\n otherElements.forEach((element) => {\n element.hidden = true;\n });\n\n nodes.forEach((node, key) => {\n node.hidden = ids.indexOf(key) === -1;\n });\n } else {\n nodes.forEach((node) => {\n node.hidden = false;\n });\n\n otherElements.forEach((element) => {\n element.hidden = false;\n });\n }\n };\n\n let data = [];\n let nodes;\n let otherElements;\n\n const load = () => {\n nodes = document.querySelectorAll(props.selector + ' ' + props.element);\n\n otherElements = document.querySelectorAll(props.selector + ' > :not(' + props.element + ')');\n\n const options = {\n autoHide: true\n };\n\n const scrollBar = new SimpleBar(document.querySelector(props.selector), options);\n\n const firstChecked = document.querySelector(props.selector + ' input[type=checkbox]:checked');\n\n if (firstChecked) {\n scrollBar.getScrollElement().scrollTo(0, firstChecked.closest(props.element).offsetTop);\n }\n\n nodes.forEach((element) => {\n let text = element.querySelector('[filter]').textContent.trim();\n\n if (!text.replace(/^[\\s\\d]+/, '')) {\n text = text.replace(/[^0-9 ]/g, '');\n }\n\n data.push(text.toLowerCase());\n });\n };\n\n watch(\n () => term.value,\n () => {\n search();\n }\n );\n\n onMounted(() => {\n load();\n });\n\n //document.addEventListener('DOMContentLoaded', load, false);\n\n return {\n term,\n search\n };\n }\n});\n</script>","<template>\n <div class=\"shop-filters-search\">\n <input type=\"search\" class=\"input is-small mb-2\" :placeholder=\"__('shop.filter.search')\" v-model=\"term\" />\n </div>\n</template>\n<script>\nimport { ref, watch, defineComponent, onMounted } from 'vue';\nimport SimpleBar from 'simplebar';\n\nexport default /*#__PURE__*/ defineComponent({\n name: 'filterSearch',\n props: {\n selector: String,\n element: String\n },\n setup(props) {\n const term = ref('');\n\n const search = () => {\n if (term.value.trim()) {\n const t = term.value.trim().toLowerCase();\n let ids = [];\n\n data.forEach((item, key) => {\n if (item.indexOf(t) !== -1) {\n ids.push(key);\n }\n });\n\n otherElements.forEach((element) => {\n element.hidden = true;\n });\n\n nodes.forEach((node, key) => {\n node.hidden = ids.indexOf(key) === -1;\n });\n } else {\n nodes.forEach((node) => {\n node.hidden = false;\n });\n\n otherElements.forEach((element) => {\n element.hidden = false;\n });\n }\n };\n\n let data = [];\n let nodes;\n let otherElements;\n\n const load = () => {\n nodes = document.querySelectorAll(props.selector + ' ' + props.element);\n\n otherElements = document.querySelectorAll(props.selector + ' > :not(' + props.element + ')');\n\n const options = {\n autoHide: true\n };\n\n const scrollBar = new SimpleBar(document.querySelector(props.selector), options);\n\n const firstChecked = document.querySelector(props.selector + ' input[type=checkbox]:checked');\n\n if (firstChecked) {\n scrollBar.getScrollElement().scrollTo(0, firstChecked.closest(props.element).offsetTop);\n }\n\n nodes.forEach((element) => {\n let text = element.querySelector('[filter]').textContent.trim();\n\n if (!text.replace(/^[\\s\\d]+/, '')) {\n text = text.replace(/[^0-9 ]/g, '');\n }\n\n data.push(text.toLowerCase());\n });\n };\n\n watch(\n () => term.value,\n () => {\n search();\n }\n );\n\n onMounted(() => {\n load();\n });\n\n //document.addEventListener('DOMContentLoaded', load, false);\n\n return {\n term,\n search\n };\n }\n});\n</script>"],"names":["script","defineComponent","name","props","selector","String","element","setup","nodes","otherElements","term","ref","search","value","trim","t","toLowerCase","ids","data","forEach","item","key","indexOf","push","hidden","node","watch","onMounted","document","querySelectorAll","scrollBar","SimpleBar","querySelector","autoHide","firstChecked","getScrollElement","scrollTo","closest","offsetTop","text","textContent","replace","load","_hoisted_1","class","_openBlock","openBlock","_createElementBlock","_createElementVNode","createElementVNode","type","placeholder","_ctx","__","$event"],"mappings":"wIASeA,EAAcC,kBAAgB,CACzCC,KAAM,eACNC,MAAO,CACHC,SAAUC,OACVC,QAASD,QAEbE,MAAK,SAACJ,GACF,IAgCIK,EACAC,EAjCEC,EAAOC,MAAI,IAEXC,EAAS,WACX,GAAIF,EAAKG,MAAMC,OAAQ,CACnB,IAAMC,EAAIL,EAAKG,MAAMC,OAAOE,cACxBC,EAAM,GAEVC,EAAKC,SAAQ,SAACC,EAAMC,IACS,IAArBD,EAAKE,QAAQP,IACbE,EAAIM,KAAKF,MAIjBZ,EAAcU,SAAQ,SAACb,GACnBA,EAAQkB,QAAS,KAGrBhB,EAAMW,SAAQ,SAACM,EAAMJ,GACjBI,EAAKD,QAA+B,IAAtBP,EAAIK,QAAQD,WAG9Bb,EAAMW,SAAQ,SAACM,GACXA,EAAKD,QAAS,KAGlBf,EAAcU,SAAQ,SAACb,GACnBA,EAAQkB,QAAS,MAKzBN,EAAO,GA6CX,OAbAQ,EAAAA,OACI,WAAA,OAAMhB,EAAKG,SACX,WACID,OAIRe,EAAAA,WAAU,YAnCG,WACTnB,EAAQoB,SAASC,iBAAiB1B,EAAMC,SAAW,IAAMD,EAAMG,SAE/DG,EAAgBmB,SAASC,iBAAiB1B,EAAMC,SAAW,WAAaD,EAAMG,QAAU,KAExF,IAIMwB,EAAY,IAAIC,EAAAA,QAAUH,SAASI,cAAc7B,EAAMC,UAJ7C,CACZ6B,UAAU,IAKRC,EAAeN,SAASI,cAAc7B,EAAMC,SAAW,iCAEzD8B,GACAJ,EAAUK,mBAAmBC,SAAS,EAAGF,EAAaG,QAAQlC,EAAMG,SAASgC,WAGjF9B,EAAMW,SAAQ,SAACb,GACX,IAAIiC,EAAOjC,EAAQ0B,cAAc,YAAYQ,YAAY1B,OAEpDyB,EAAKE,QAAQ,WAAY,MAC1BF,EAAOA,EAAKE,QAAQ,WAAY,KAGpCvB,EAAKK,KAAKgB,EAAKvB,kBAYnB0B,MAKG,CACHhC,KAAAA,EACAE,OAAAA,MC7FH+B,EAAA,CAAAC,MAAM,wEAAX,OAAAC,EAAAC,YAAAC,EAAAA,mBAEK,MAFLJ,EAEK,kBADDK,EAAyGC,mBAAA,QAAA,CAAlGC,KAAK,SAASN,MAAM,sBAAuBO,YAAaC,EAAEC,GAAA,2EAAiCD,EAAI1C,KAAA4C,8BAAJF,EAAI1C"}
1
+ {"version":3,"file":"FilterSearch.js","sources":["../../../../src/components/shop/filters/FilterSearch.vue","../../../../src/components/shop/filters/FilterSearch.vue?vue&type=template&id=a7d1bee4&lang.js"],"sourcesContent":["<template>\n <div class=\"shop-filters-search\">\n <input type=\"search\" class=\"input is-small mb-2\" :placeholder=\"__('shop.filter.search')\" v-model=\"term\" />\n </div>\n</template>\n<script>\nimport { ref, watch, defineComponent, onMounted } from 'vue';\nimport SimpleBar from 'simplebar';\n\nexport default /*#__PURE__*/ defineComponent({\n name: 'filterSearch',\n props: {\n selector: String,\n element: String\n },\n setup(props) {\n const term = ref('');\n\n const search = () => {\n if (term.value.trim()) {\n const t = term.value.trim().toLowerCase();\n let ids = [];\n\n data.forEach((item, key) => {\n if (item.indexOf(t) !== -1) {\n ids.push(key);\n }\n });\n\n otherElements.forEach((element) => {\n element.hidden = true;\n });\n\n nodes.forEach((node, key) => {\n node.hidden = ids.indexOf(key) === -1;\n });\n } else {\n nodes.forEach((node) => {\n node.hidden = false;\n });\n\n otherElements.forEach((element) => {\n element.hidden = false;\n });\n }\n };\n\n let data = [];\n let nodes;\n let otherElements;\n\n const load = () => {\n nodes = document.querySelectorAll(props.selector + ' ' + props.element);\n\n otherElements = document.querySelectorAll(props.selector + ' > :not(' + props.element + ')');\n\n const options = {\n autoHide: true\n };\n\n const scrollBar = new SimpleBar(document.querySelector(props.selector), options);\n\n const firstChecked = document.querySelector(props.selector + ' input[type=checkbox]:checked');\n\n if (firstChecked) {\n scrollBar.getScrollElement().scrollTo(0, firstChecked.closest(props.element).offsetTop);\n }\n\n nodes.forEach((element) => {\n let text = element.querySelector('[filter]').textContent.trim();\n\n if (!text.replace(/^[\\s\\d]+/, '')) {\n text = text.replace(/[^0-9 ]/g, '');\n }\n\n data.push(text.toLowerCase());\n });\n };\n\n watch(\n () => term.value,\n () => {\n search();\n }\n );\n\n onMounted(() => {\n load();\n });\n\n //document.addEventListener('DOMContentLoaded', load, false);\n\n return {\n term,\n search\n };\n }\n});\n</script>","<template>\n <div class=\"shop-filters-search\">\n <input type=\"search\" class=\"input is-small mb-2\" :placeholder=\"__('shop.filter.search')\" v-model=\"term\" />\n </div>\n</template>\n<script>\nimport { ref, watch, defineComponent, onMounted } from 'vue';\nimport SimpleBar from 'simplebar';\n\nexport default /*#__PURE__*/ defineComponent({\n name: 'filterSearch',\n props: {\n selector: String,\n element: String\n },\n setup(props) {\n const term = ref('');\n\n const search = () => {\n if (term.value.trim()) {\n const t = term.value.trim().toLowerCase();\n let ids = [];\n\n data.forEach((item, key) => {\n if (item.indexOf(t) !== -1) {\n ids.push(key);\n }\n });\n\n otherElements.forEach((element) => {\n element.hidden = true;\n });\n\n nodes.forEach((node, key) => {\n node.hidden = ids.indexOf(key) === -1;\n });\n } else {\n nodes.forEach((node) => {\n node.hidden = false;\n });\n\n otherElements.forEach((element) => {\n element.hidden = false;\n });\n }\n };\n\n let data = [];\n let nodes;\n let otherElements;\n\n const load = () => {\n nodes = document.querySelectorAll(props.selector + ' ' + props.element);\n\n otherElements = document.querySelectorAll(props.selector + ' > :not(' + props.element + ')');\n\n const options = {\n autoHide: true\n };\n\n const scrollBar = new SimpleBar(document.querySelector(props.selector), options);\n\n const firstChecked = document.querySelector(props.selector + ' input[type=checkbox]:checked');\n\n if (firstChecked) {\n scrollBar.getScrollElement().scrollTo(0, firstChecked.closest(props.element).offsetTop);\n }\n\n nodes.forEach((element) => {\n let text = element.querySelector('[filter]').textContent.trim();\n\n if (!text.replace(/^[\\s\\d]+/, '')) {\n text = text.replace(/[^0-9 ]/g, '');\n }\n\n data.push(text.toLowerCase());\n });\n };\n\n watch(\n () => term.value,\n () => {\n search();\n }\n );\n\n onMounted(() => {\n load();\n });\n\n //document.addEventListener('DOMContentLoaded', load, false);\n\n return {\n term,\n search\n };\n }\n});\n</script>"],"names":["script","defineComponent","name","props","selector","String","element","setup","nodes","otherElements","term","ref","search","value","trim","t","toLowerCase","ids","data","forEach","item","key","indexOf","push","hidden","node","watch","onMounted","document","querySelectorAll","scrollBar","SimpleBar","querySelector","autoHide","firstChecked","getScrollElement","scrollTo","closest","offsetTop","text","textContent","replace","load","_hoisted_1","class","_openBlock","openBlock","_createElementBlock","_createElementVNode","createElementVNode","type","placeholder","_ctx","__","$event"],"mappings":"wIASeA,EAAcC,kBAAgB,CACzCC,KAAM,eACNC,MAAO,CACHC,SAAUC,OACVC,QAASD,QAEbE,MAAAA,SAAMJ,GACF,IAgCIK,EACAC,EAjCEC,EAAOC,MAAI,IAEXC,EAAS,WACX,GAAIF,EAAKG,MAAMC,OAAQ,CACnB,IAAMC,EAAIL,EAAKG,MAAMC,OAAOE,cACxBC,EAAM,GAEVC,EAAKC,SAAQ,SAACC,EAAMC,IACS,IAArBD,EAAKE,QAAQP,IACbE,EAAIM,KAAKF,MAIjBZ,EAAcU,SAAQ,SAACb,GACnBA,EAAQkB,QAAS,KAGrBhB,EAAMW,SAAQ,SAACM,EAAMJ,GACjBI,EAAKD,QAA+B,IAAtBP,EAAIK,QAAQD,WAG9Bb,EAAMW,SAAQ,SAACM,GACXA,EAAKD,QAAS,KAGlBf,EAAcU,SAAQ,SAACb,GACnBA,EAAQkB,QAAS,MAKzBN,EAAO,GA6CX,OAbAQ,EAAAA,OACI,WAAA,OAAMhB,EAAKG,SACX,WACID,OAIRe,EAAAA,WAAU,YAnCG,WACTnB,EAAQoB,SAASC,iBAAiB1B,EAAMC,SAAW,IAAMD,EAAMG,SAE/DG,EAAgBmB,SAASC,iBAAiB1B,EAAMC,SAAW,WAAaD,EAAMG,QAAU,KAExF,IAIMwB,EAAY,IAAIC,EAAAA,QAAUH,SAASI,cAAc7B,EAAMC,UAJ7C,CACZ6B,UAAU,IAKRC,EAAeN,SAASI,cAAc7B,EAAMC,SAAW,iCAEzD8B,GACAJ,EAAUK,mBAAmBC,SAAS,EAAGF,EAAaG,QAAQlC,EAAMG,SAASgC,WAGjF9B,EAAMW,SAAQ,SAACb,GACX,IAAIiC,EAAOjC,EAAQ0B,cAAc,YAAYQ,YAAY1B,OAEpDyB,EAAKE,QAAQ,WAAY,MAC1BF,EAAOA,EAAKE,QAAQ,WAAY,KAGpCvB,EAAKK,KAAKgB,EAAKvB,kBAYnB0B,MAKG,CACHhC,KAAAA,EACAE,OAAAA,MC7FH+B,EAAA,CAAAC,MAAM,wEAAX,OAAAC,EAAAC,YAAAC,EAAAA,mBAEK,MAFLJ,EAEK,kBADDK,EAAyGC,mBAAA,QAAA,CAAlGC,KAAK,SAASN,MAAM,sBAAuBO,YAAaC,EAAEC,GAAA,2EAAiCD,EAAI1C,KAAA4C,8BAAJF,EAAI1C"}
@@ -1 +1 @@
1
- {"version":3,"file":"Price.js","sources":["../../../../src/components/shop/filters/Price.vue","../../../../src/components/shop/filters/Price.vue?vue&type=template&id=4ec0b279&lang.js"],"sourcesContent":["<template>\n <div class=\"shop-filters-price\">\n <div class=\"mb-2\">\n <div class=\"title is-6 mb-0 is-clickable\" shop-filter-title>\n {{ __(\"shop.filter.price\") }}\n </div>\n <a :href=\"reset\" class=\"is-size-7\" v-if=\"reset\">{{\n __(\"shop.clearFilter\")\n }}</a>\n </div>\n <div shop-filter-content>\n <div class=\"columns is-gapless is-vcentered\">\n <div class=\"column\">\n <span v-html=\"$filters.price(value[0])\"></span> — <span\n v-html=\"$filters.price(value[1])\"\n ></span>\n </div>\n <div class=\"column is-narrow\">\n <a :href=\"href\" class=\"button is-small\">OK</a>\n </div>\n </div>\n <div\n class=\"columns is-gapless is-align-items-flex-end mb-0\"\n style=\"height: 30px\"\n >\n <div\n v-for=\"(item, key) in bar\"\n :key=\"key\"\n class=\"column\"\n :style=\"\n 'width:5%;background-color:#DDD;height: ' +\n height(item[0]) +\n ';opacity:' +\n opacity(key)\n \"\n :title=\"item[1]\"\n ></div>\n </div>\n <slider\n v-model=\"value\"\n :min=\"min\"\n :max=\"max\"\n :step=\"step\"\n :tooltips=\"false\"\n @update=\"change\"\n />\n </div>\n </div>\n</template>\n\n<script>\nimport { ref, computed, defineComponent } from \"vue\";\nimport Slider from \"@vueform/slider\";\n\nexport default /*#__PURE__*/ defineComponent({\n name: \"price\",\n components: {\n Slider,\n },\n props: {\n min: Number,\n max: Number,\n step: Number,\n from: Number,\n to: Number,\n bar: Array,\n reset: String,\n hrefTemplate: String,\n },\n setup(props) {\n const value = ref([props.from, props.to]);\n const disabled = ref(true);\n\n const href = computed(() => {\n return props.hrefTemplate.replace(\n \"#-#\",\n Math.floor(value.value[0]) + \"-\" + Math.ceil(value.value[1])\n );\n });\n\n const opacity = (key) => {\n let opacity = 1;\n\n // if (value.value[0] > (key + 2) * props.step) {\n // opacity = 0.5;\n // } else if (value.value[1] < (key + 2) * props.step) {\n // opacity = 0.5;\n // }\n\n return opacity;\n };\n\n const height = (value) => {\n return value > 0 ? \"calc(10% + \" + value + \"%)\" : \"0px\";\n };\n\n const change = () => {\n disabled.value = false;\n };\n\n return {\n value,\n opacity,\n height,\n change,\n href,\n disabled,\n };\n },\n});\n</script>","<template>\n <div class=\"shop-filters-price\">\n <div class=\"mb-2\">\n <div class=\"title is-6 mb-0 is-clickable\" shop-filter-title>\n {{ __(\"shop.filter.price\") }}\n </div>\n <a :href=\"reset\" class=\"is-size-7\" v-if=\"reset\">{{\n __(\"shop.clearFilter\")\n }}</a>\n </div>\n <div shop-filter-content>\n <div class=\"columns is-gapless is-vcentered\">\n <div class=\"column\">\n <span v-html=\"$filters.price(value[0])\"></span> — <span\n v-html=\"$filters.price(value[1])\"\n ></span>\n </div>\n <div class=\"column is-narrow\">\n <a :href=\"href\" class=\"button is-small\">OK</a>\n </div>\n </div>\n <div\n class=\"columns is-gapless is-align-items-flex-end mb-0\"\n style=\"height: 30px\"\n >\n <div\n v-for=\"(item, key) in bar\"\n :key=\"key\"\n class=\"column\"\n :style=\"\n 'width:5%;background-color:#DDD;height: ' +\n height(item[0]) +\n ';opacity:' +\n opacity(key)\n \"\n :title=\"item[1]\"\n ></div>\n </div>\n <slider\n v-model=\"value\"\n :min=\"min\"\n :max=\"max\"\n :step=\"step\"\n :tooltips=\"false\"\n @update=\"change\"\n />\n </div>\n </div>\n</template>\n\n<script>\nimport { ref, computed, defineComponent } from \"vue\";\nimport Slider from \"@vueform/slider\";\n\nexport default /*#__PURE__*/ defineComponent({\n name: \"price\",\n components: {\n Slider,\n },\n props: {\n min: Number,\n max: Number,\n step: Number,\n from: Number,\n to: Number,\n bar: Array,\n reset: String,\n hrefTemplate: String,\n },\n setup(props) {\n const value = ref([props.from, props.to]);\n const disabled = ref(true);\n\n const href = computed(() => {\n return props.hrefTemplate.replace(\n \"#-#\",\n Math.floor(value.value[0]) + \"-\" + Math.ceil(value.value[1])\n );\n });\n\n const opacity = (key) => {\n let opacity = 1;\n\n // if (value.value[0] > (key + 2) * props.step) {\n // opacity = 0.5;\n // } else if (value.value[1] < (key + 2) * props.step) {\n // opacity = 0.5;\n // }\n\n return opacity;\n };\n\n const height = (value) => {\n return value > 0 ? \"calc(10% + \" + value + \"%)\" : \"0px\";\n };\n\n const change = () => {\n disabled.value = false;\n };\n\n return {\n value,\n opacity,\n height,\n change,\n href,\n disabled,\n };\n },\n});\n</script>"],"names":["script","defineComponent","name","components","Slider","props","min","Number","max","step","from","to","bar","Array","reset","String","hrefTemplate","setup","value","ref","disabled","href","computed","replace","Math","floor","ceil","opacity","key","height","change","_hoisted_1","class","_hoisted_2","shop-filter-title","_hoisted_5","shop-filter-content","_hoisted_6","_hoisted_7","_hoisted_10","style","_openBlock","_createElementBlock","_createElementVNode","createElementVNode","_hoisted_3","_toDisplayString","toDisplayString","_ctx","__","_hoisted_4","innerHTML","$filters","price","_hoisted_11","_hoisted_12","_Fragment","Fragment","_renderList","item","createElementBlock","_normalizeStyle","title","_createVNode","_component_slider","$event","tooltips","onUpdate"],"mappings":"8IAsDeA,EAAcC,kBAAgB,CACzCC,KAAM,QACNC,WAAY,CACRC,OAAAA,EAAAA,SAEJC,MAAO,CACHC,IAAKC,OACLC,IAAKD,OACLE,KAAMF,OACNG,KAAMH,OACNI,GAAIJ,OACJK,IAAKC,MACLC,MAAOC,OACPC,aAAcD,QAElBE,MAAK,SAACZ,GACF,IAAMa,EAAQC,EAAAA,IAAI,CAACd,EAAMK,KAAML,EAAMM,KAC/BS,EAAWD,OAAI,GAEfE,EAAOC,EAAAA,UAAS,WAClB,OAAOjB,EAAMW,aAAaO,QACtB,MACAC,KAAKC,MAAMP,EAAMA,MAAM,IAAM,IAAMM,KAAKE,KAAKR,EAAMA,MAAM,QAwBjE,MAAO,CACHA,MAAAA,EACAS,QAtBY,SAACC,GASb,OARc,GAsBdC,OAXW,SAACX,GACZ,OAAOA,EAAQ,EAAI,cAAgBA,EAAQ,KAAO,OAWlDY,OARW,WACXV,EAASF,OAAQ,GAQjBG,KAAAA,EACAD,SAAAA,MCzGHW,EAAA,CAAAC,MAAM,sBACFC,EAAA,CAAAD,MAAM,WACFA,MAAM,+BAA+BE,oBAAA,eAOzCC,EAAA,CAAAC,sBAAA,IACIC,EAAA,CAAAL,MAAM,mCACFM,EAAA,CAAAN,MAAM,0CAKNO,EAAA,CAAAP,MAAM,kCAKXA,MAAM,kDACNQ,MAAA,CAAmBX,OAAA,uFAtB/B,OAAAY,cAAAC,qBA8CK,MA9CLX,EA8CK,CA7CDY,EAAAC,mBAOK,MAPLX,EAOK,CANDU,EAAAA,mBAEK,MAFLE,EAEKC,EAAAC,gBADEC,EAAEC,GAAA,sBAAA,GAEgCD,EAAKlC,qBAA9C4B,EAAAA,mBAEK,IAAA,OAFDrB,KAAM2B,EAAKlC,MAAEkB,MAAM,+BACnBgB,EAAEC,GAAA,qBAAA,EAAAC,sCAGVP,EAAAC,mBAoCK,MApCLT,EAoCK,CAnCDQ,EAAAA,mBASK,MATLN,EASK,CARDM,EAAAA,mBAIK,MAJLL,EAIK,CAHDK,EAAAA,2BAAMQ,UAAQH,EAAAI,SAASC,MAAML,EAAK9B,MAAA,wCAAgByB,EAE3CC,mBAAA,OAAA,CADHO,UAAQH,EAAAI,SAASC,MAAML,EAAK9B,MAAA,iBAGpCyB,qBAEK,MAFLJ,EAEK,CADDI,EAA6CC,mBAAA,IAAA,CAAzCvB,KAAM2B,EAAI3B,KAAEW,MAAM,mBAAkB,KAAE,EAAAsB,OAGlDX,EAAAC,mBAgBK,MAhBLW,EAgBK,EAZDd,EAAAA,WAAA,GAAAC,EAAAA,mBAWMc,EAVoBC,SAAA,KAAAC,EAAAA,WAAAV,EAAApC,KAAd,SAAA+C,EAAM/B,wBADlBc,EAWMkB,mBAAA,MAAA,CATDhC,IAAKA,EACNI,MAAM,SACLQ,MAAKqB,EAAAA,yDAACb,EAAAnB,OAAA8B,EAAA,gBAAAX,EAAArB,QAAAC,IAMNkC,MAAOH,EAAI,0BAGpBI,EAAAA,YAOCC,EAAA,YANYhB,EAAK9B,2DAAL8B,EAAK9B,MAAA+C,IACb3D,IAAK0C,EAAG1C,IACRE,IAAKwC,EAAGxC,IACRC,KAAMuC,EAAIvC,KACVyD,UAAU,EACVC,SAAQnB,EAAMlB"}
1
+ {"version":3,"file":"Price.js","sources":["../../../../src/components/shop/filters/Price.vue","../../../../src/components/shop/filters/Price.vue?vue&type=template&id=4ec0b279&lang.js"],"sourcesContent":["<template>\n <div class=\"shop-filters-price\">\n <div class=\"mb-2\">\n <div class=\"title is-6 mb-0 is-clickable\" shop-filter-title>\n {{ __(\"shop.filter.price\") }}\n </div>\n <a :href=\"reset\" class=\"is-size-7\" v-if=\"reset\">{{\n __(\"shop.clearFilter\")\n }}</a>\n </div>\n <div shop-filter-content>\n <div class=\"columns is-gapless is-vcentered\">\n <div class=\"column\">\n <span v-html=\"$filters.price(value[0])\"></span> — <span\n v-html=\"$filters.price(value[1])\"\n ></span>\n </div>\n <div class=\"column is-narrow\">\n <a :href=\"href\" class=\"button is-small\">OK</a>\n </div>\n </div>\n <div\n class=\"columns is-gapless is-align-items-flex-end mb-0\"\n style=\"height: 30px\"\n >\n <div\n v-for=\"(item, key) in bar\"\n :key=\"key\"\n class=\"column\"\n :style=\"\n 'width:5%;background-color:#DDD;height: ' +\n height(item[0]) +\n ';opacity:' +\n opacity(key)\n \"\n :title=\"item[1]\"\n ></div>\n </div>\n <slider\n v-model=\"value\"\n :min=\"min\"\n :max=\"max\"\n :step=\"step\"\n :tooltips=\"false\"\n @update=\"change\"\n />\n </div>\n </div>\n</template>\n\n<script>\nimport { ref, computed, defineComponent } from \"vue\";\nimport Slider from \"@vueform/slider\";\n\nexport default /*#__PURE__*/ defineComponent({\n name: \"price\",\n components: {\n Slider,\n },\n props: {\n min: Number,\n max: Number,\n step: Number,\n from: Number,\n to: Number,\n bar: Array,\n reset: String,\n hrefTemplate: String,\n },\n setup(props) {\n const value = ref([props.from, props.to]);\n const disabled = ref(true);\n\n const href = computed(() => {\n return props.hrefTemplate.replace(\n \"#-#\",\n Math.floor(value.value[0]) + \"-\" + Math.ceil(value.value[1])\n );\n });\n\n const opacity = (key) => {\n let opacity = 1;\n\n // if (value.value[0] > (key + 2) * props.step) {\n // opacity = 0.5;\n // } else if (value.value[1] < (key + 2) * props.step) {\n // opacity = 0.5;\n // }\n\n return opacity;\n };\n\n const height = (value) => {\n return value > 0 ? \"calc(10% + \" + value + \"%)\" : \"0px\";\n };\n\n const change = () => {\n disabled.value = false;\n };\n\n return {\n value,\n opacity,\n height,\n change,\n href,\n disabled,\n };\n },\n});\n</script>","<template>\n <div class=\"shop-filters-price\">\n <div class=\"mb-2\">\n <div class=\"title is-6 mb-0 is-clickable\" shop-filter-title>\n {{ __(\"shop.filter.price\") }}\n </div>\n <a :href=\"reset\" class=\"is-size-7\" v-if=\"reset\">{{\n __(\"shop.clearFilter\")\n }}</a>\n </div>\n <div shop-filter-content>\n <div class=\"columns is-gapless is-vcentered\">\n <div class=\"column\">\n <span v-html=\"$filters.price(value[0])\"></span> — <span\n v-html=\"$filters.price(value[1])\"\n ></span>\n </div>\n <div class=\"column is-narrow\">\n <a :href=\"href\" class=\"button is-small\">OK</a>\n </div>\n </div>\n <div\n class=\"columns is-gapless is-align-items-flex-end mb-0\"\n style=\"height: 30px\"\n >\n <div\n v-for=\"(item, key) in bar\"\n :key=\"key\"\n class=\"column\"\n :style=\"\n 'width:5%;background-color:#DDD;height: ' +\n height(item[0]) +\n ';opacity:' +\n opacity(key)\n \"\n :title=\"item[1]\"\n ></div>\n </div>\n <slider\n v-model=\"value\"\n :min=\"min\"\n :max=\"max\"\n :step=\"step\"\n :tooltips=\"false\"\n @update=\"change\"\n />\n </div>\n </div>\n</template>\n\n<script>\nimport { ref, computed, defineComponent } from \"vue\";\nimport Slider from \"@vueform/slider\";\n\nexport default /*#__PURE__*/ defineComponent({\n name: \"price\",\n components: {\n Slider,\n },\n props: {\n min: Number,\n max: Number,\n step: Number,\n from: Number,\n to: Number,\n bar: Array,\n reset: String,\n hrefTemplate: String,\n },\n setup(props) {\n const value = ref([props.from, props.to]);\n const disabled = ref(true);\n\n const href = computed(() => {\n return props.hrefTemplate.replace(\n \"#-#\",\n Math.floor(value.value[0]) + \"-\" + Math.ceil(value.value[1])\n );\n });\n\n const opacity = (key) => {\n let opacity = 1;\n\n // if (value.value[0] > (key + 2) * props.step) {\n // opacity = 0.5;\n // } else if (value.value[1] < (key + 2) * props.step) {\n // opacity = 0.5;\n // }\n\n return opacity;\n };\n\n const height = (value) => {\n return value > 0 ? \"calc(10% + \" + value + \"%)\" : \"0px\";\n };\n\n const change = () => {\n disabled.value = false;\n };\n\n return {\n value,\n opacity,\n height,\n change,\n href,\n disabled,\n };\n },\n});\n</script>"],"names":["script","defineComponent","name","components","Slider","props","min","Number","max","step","from","to","bar","Array","reset","String","hrefTemplate","setup","value","ref","disabled","href","computed","replace","Math","floor","ceil","opacity","key","height","change","_hoisted_1","class","_hoisted_2","shop-filter-title","_hoisted_5","shop-filter-content","_hoisted_6","_hoisted_7","_hoisted_10","style","_openBlock","_createElementBlock","_createElementVNode","createElementVNode","_hoisted_3","_toDisplayString","toDisplayString","_ctx","__","_hoisted_4","innerHTML","$filters","price","_hoisted_11","_hoisted_12","_Fragment","Fragment","_renderList","item","createElementBlock","_normalizeStyle","title","_createVNode","_component_slider","$event","tooltips","onUpdate"],"mappings":"8IAsDeA,EAAcC,kBAAgB,CACzCC,KAAM,QACNC,WAAY,CACRC,OAAAA,EAAAA,SAEJC,MAAO,CACHC,IAAKC,OACLC,IAAKD,OACLE,KAAMF,OACNG,KAAMH,OACNI,GAAIJ,OACJK,IAAKC,MACLC,MAAOC,OACPC,aAAcD,QAElBE,MAAAA,SAAMZ,GACF,IAAMa,EAAQC,EAAAA,IAAI,CAACd,EAAMK,KAAML,EAAMM,KAC/BS,EAAWD,OAAI,GAEfE,EAAOC,EAAAA,UAAS,WAClB,OAAOjB,EAAMW,aAAaO,QACtB,MACAC,KAAKC,MAAMP,EAAMA,MAAM,IAAM,IAAMM,KAAKE,KAAKR,EAAMA,MAAM,QAwBjE,MAAO,CACHA,MAAAA,EACAS,QAtBY,SAACC,GASb,OARc,GAsBdC,OAXW,SAACX,GACZ,OAAOA,EAAQ,EAAI,cAAgBA,EAAQ,KAAO,OAWlDY,OARW,WACXV,EAASF,OAAQ,GAQjBG,KAAAA,EACAD,SAAAA,MCzGHW,EAAA,CAAAC,MAAM,sBACFC,EAAA,CAAAD,MAAM,WACFA,MAAM,+BAA+BE,oBAAA,eAOzCC,EAAA,CAAAC,sBAAA,IACIC,EAAA,CAAAL,MAAM,mCACFM,EAAA,CAAAN,MAAM,0CAKNO,EAAA,CAAAP,MAAM,kCAKXA,MAAM,kDACNQ,MAAA,CAAmBX,OAAA,uFAtB/B,OAAAY,cAAAC,qBA8CK,MA9CLX,EA8CK,CA7CDY,EAAAC,mBAOK,MAPLX,EAOK,CANDU,EAAAA,mBAEK,MAFLE,EAEKC,EAAAC,gBADEC,EAAEC,GAAA,sBAAA,GAEgCD,EAAKlC,qBAA9C4B,EAAAA,mBAEK,IAAA,OAFDrB,KAAM2B,EAAKlC,MAAEkB,MAAM,+BACnBgB,EAAEC,GAAA,qBAAA,EAAAC,sCAGVP,EAAAC,mBAoCK,MApCLT,EAoCK,CAnCDQ,EAAAA,mBASK,MATLN,EASK,CARDM,EAAAA,mBAIK,MAJLL,EAIK,CAHDK,EAAAA,2BAAMQ,UAAQH,EAAAI,SAASC,MAAML,EAAK9B,MAAA,wCAAgByB,EAE3CC,mBAAA,OAAA,CADHO,UAAQH,EAAAI,SAASC,MAAML,EAAK9B,MAAA,iBAGpCyB,qBAEK,MAFLJ,EAEK,CADDI,EAA6CC,mBAAA,IAAA,CAAzCvB,KAAM2B,EAAI3B,KAAEW,MAAM,mBAAkB,KAAE,EAAAsB,OAGlDX,EAAAC,mBAgBK,MAhBLW,EAgBK,EAZDd,EAAAA,WAAA,GAAAC,EAAAA,mBAWMc,EAVoBC,SAAA,KAAAC,EAAAA,WAAAV,EAAApC,KAAd,SAAA+C,EAAM/B,wBADlBc,EAWMkB,mBAAA,MAAA,CATDhC,IAAKA,EACNI,MAAM,SACLQ,MAAKqB,EAAAA,yDAACb,EAAAnB,OAAA8B,EAAA,gBAAAX,EAAArB,QAAAC,IAMNkC,MAAOH,EAAI,0BAGpBI,EAAAA,YAOCC,EAAA,YANYhB,EAAK9B,2DAAL8B,EAAK9B,MAAA+C,IACb3D,IAAK0C,EAAG1C,IACRE,IAAKwC,EAAGxC,IACRC,KAAMuC,EAAIvC,KACVyD,UAAU,EACVC,SAAQnB,EAAMlB"}