@perevorot/shop 1.0.272 → 2.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api.js +2 -0
- package/dist/api.js.map +1 -0
- package/dist/app.js +2 -108
- package/dist/app.js.map +1 -0
- package/dist/components/account/Account.js +2 -0
- package/dist/components/account/Account.js.map +1 -0
- package/dist/components/account/OrderItem.js +2 -0
- package/dist/components/account/OrderItem.js.map +1 -0
- package/dist/components/account/Orders.js +2 -0
- package/dist/components/account/Orders.js.map +1 -0
- package/dist/components/account/User.js +2 -0
- package/dist/components/account/User.js.map +1 -0
- package/dist/components/account/Viewed.js +2 -0
- package/dist/components/account/Viewed.js.map +1 -0
- package/dist/components/account/Wish.js +2 -0
- package/dist/components/account/Wish.js.map +1 -0
- package/dist/components/auth/Forget.js +2 -0
- package/dist/components/auth/Forget.js.map +1 -0
- package/dist/components/auth/Login.js +2 -0
- package/dist/components/auth/Login.js.map +1 -0
- package/dist/components/auth/Registration.js +2 -0
- package/dist/components/auth/Registration.js.map +1 -0
- package/dist/components/auth/Reset.js +2 -0
- package/dist/components/auth/Reset.js.map +1 -0
- package/dist/components/auth/User.js +2 -0
- package/dist/components/auth/User.js.map +1 -0
- package/dist/components/shop/Catalog.js +2 -0
- package/dist/components/shop/Catalog.js.map +1 -0
- package/dist/components/shop/CodeCopy.js +2 -0
- package/dist/components/shop/CodeCopy.js.map +1 -0
- package/dist/components/shop/Cross.js +2 -0
- package/dist/components/shop/Cross.js.map +1 -0
- package/dist/components/shop/FilterToggle.js +2 -0
- package/dist/components/shop/FilterToggle.js.map +1 -0
- package/dist/components/shop/Gallery.js +2 -0
- package/dist/components/shop/Gallery.js.map +1 -0
- package/dist/components/shop/Pagination.js +2 -0
- package/dist/components/shop/Pagination.js.map +1 -0
- package/dist/components/shop/PromoProducts.js +2 -0
- package/dist/components/shop/PromoProducts.js.map +1 -0
- package/dist/components/shop/Search.js +2 -0
- package/dist/components/shop/Search.js.map +1 -0
- package/dist/components/shop/bundle/Bundle.js +2 -0
- package/dist/components/shop/bundle/Bundle.js.map +1 -0
- package/dist/components/shop/bundle/BundleAdd.js +2 -0
- package/dist/components/shop/bundle/BundleAdd.js.map +1 -0
- package/dist/components/shop/cart/Cart.js +2 -0
- package/dist/components/shop/cart/Cart.js.map +1 -0
- package/dist/components/shop/cart/CartAdd.js +2 -0
- package/dist/components/shop/cart/CartAdd.js.map +1 -0
- package/dist/components/shop/cart/CartItem.js +2 -0
- package/dist/components/shop/cart/CartItem.js.map +1 -0
- package/dist/components/shop/cart/CartTrigger.js +2 -0
- package/dist/components/shop/cart/CartTrigger.js.map +1 -0
- package/dist/components/shop/cart/SuccessMessage.js +2 -0
- package/dist/components/shop/cart/SuccessMessage.js.map +1 -0
- package/dist/components/shop/compare/Compare.js +2 -0
- package/dist/components/shop/compare/Compare.js.map +1 -0
- package/dist/components/shop/compare/CompareAdd.js +2 -0
- package/dist/components/shop/compare/CompareAdd.js.map +1 -0
- package/dist/components/shop/compare/CompareDelete.js +2 -0
- package/dist/components/shop/compare/CompareDelete.js.map +1 -0
- package/dist/components/shop/compare/Comparsion.js +2 -0
- package/dist/components/shop/compare/Comparsion.js.map +1 -0
- package/dist/components/shop/compare/SuccessMessage.js +2 -0
- package/dist/components/shop/compare/SuccessMessage.js.map +1 -0
- package/dist/components/shop/filters/FilterSearch.js +2 -0
- package/dist/components/shop/filters/FilterSearch.js.map +1 -0
- package/dist/components/shop/filters/Price.js +2 -0
- package/dist/components/shop/filters/Price.js.map +1 -0
- package/dist/components/shop/order/Checkout.js +2 -0
- package/dist/components/shop/order/Checkout.js.map +1 -0
- package/dist/components/shop/order/CheckoutItem.js +2 -0
- package/dist/components/shop/order/CheckoutItem.js.map +1 -0
- package/dist/components/shop/order/OneClick.js +2 -0
- package/dist/components/shop/order/OneClick.js.map +1 -0
- package/dist/components/shop/order/shipping/CheckoutShippingCourier.js +2 -0
- package/dist/components/shop/order/shipping/CheckoutShippingCourier.js.map +1 -0
- package/dist/components/shop/order/shipping/CheckoutShippingNovaposhtaAddress.js +2 -0
- package/dist/components/shop/order/shipping/CheckoutShippingNovaposhtaAddress.js.map +1 -0
- package/dist/components/shop/order/shipping/CheckoutShippingNovaposhtaWarehouse.js +2 -0
- package/dist/components/shop/order/shipping/CheckoutShippingNovaposhtaWarehouse.js.map +1 -0
- package/dist/components/shop/order/shipping/CheckoutShippingPickup.js +2 -0
- package/dist/components/shop/order/shipping/CheckoutShippingPickup.js.map +1 -0
- package/dist/components/shop/reviews/Review.js +2 -0
- package/dist/components/shop/reviews/Review.js.map +1 -0
- package/dist/components/shop/viewed/Viewed.js +2 -0
- package/dist/components/shop/viewed/Viewed.js.map +1 -0
- package/dist/components/shop/viewed/ViewedDelete.js +2 -0
- package/dist/components/shop/viewed/ViewedDelete.js.map +1 -0
- package/dist/components/shop/viewed/Viewer.js +2 -0
- package/dist/components/shop/viewed/Viewer.js.map +1 -0
- package/dist/components/shop/wishlist/SuccessMessage.js +2 -0
- package/dist/components/shop/wishlist/SuccessMessage.js.map +1 -0
- package/dist/components/shop/wishlist/Wishlist.js +2 -0
- package/dist/components/shop/wishlist/Wishlist.js.map +1 -0
- package/dist/components/shop/wishlist/WishlistAdd.js +2 -0
- package/dist/components/shop/wishlist/WishlistAdd.js.map +1 -0
- package/dist/components/shop/wishlist/WishlistDelete.js +2 -0
- package/dist/components/shop/wishlist/WishlistDelete.js.map +1 -0
- package/dist/forms/FormCheckbox.js +2 -0
- package/dist/forms/FormCheckbox.js.map +1 -0
- package/dist/forms/FormCheckboxes.js +2 -0
- package/dist/forms/FormCheckboxes.js.map +1 -0
- package/dist/forms/FormPassword.js +2 -0
- package/dist/forms/FormPassword.js.map +1 -0
- package/dist/forms/FormRadio.js +2 -0
- package/dist/forms/FormRadio.js.map +1 -0
- package/dist/forms/FormRating.js +2 -0
- package/dist/forms/FormRating.js.map +1 -0
- package/dist/forms/FormSection.js +2 -0
- package/dist/forms/FormSection.js.map +1 -0
- package/dist/forms/FormSelect.js +2 -0
- package/dist/forms/FormSelect.js.map +1 -0
- package/dist/forms/FormSwitch.js +2 -0
- package/dist/forms/FormSwitch.js.map +1 -0
- package/dist/forms/FormText.js +2 -0
- package/dist/forms/FormText.js.map +1 -0
- package/dist/forms/FormTextarea.js +2 -0
- package/dist/forms/FormTextarea.js.map +1 -0
- package/dist/global.js +2 -0
- package/dist/global.js.map +1 -0
- package/dist/helpers.js +2 -0
- package/dist/helpers.js.map +1 -0
- package/dist/store.js +2 -0
- package/dist/store.js.map +1 -0
- package/dist/vuex.js +2 -0
- package/dist/vuex.js.map +1 -0
- package/package.json +17 -41
- package/dist/index.js +0 -110
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Cart.js","sources":["../../../../src/components/shop/cart/Cart.vue","../../../../src/components/shop/cart/Cart.vue?vue&type=template&id=e4e757b6&lang.js"],"sourcesContent":["<template>\n <div class=\"cart\">\n <div class=\"dropdown is-right is-hoverable\">\n <div class=\"dropdown-trigger\">\n <slot :total=\"quantity\" :open=\"open\">\n <button class=\"button\" @click=\"open\">\n <span>\n <i class=\"fas fa-shopping-cart\"></i>\n {{ quantity }}\n </span>\n <span class=\"icon is-small\">\n <i class=\"fas fa-angle-down\" aria-hidden=\"true\"></i>\n </span>\n </button>\n </slot>\n </div>\n <div class=\"dropdown-menu\" role=\"menu\">\n <div class=\"dropdown-content\" v-if=\"items.length\">\n <div class=\"dropdown-item\">\n <div class=\"columns\">\n <div class=\"column\">{{ __('shop.cart.total') }}</div>\n <div class=\"column has-text-right\" v-html=\"$filters.price(total)\"></div>\n </div>\n </div>\n <div class=\"dropdown-divider\"></div>\n <div class=\"dropdown-item has-text-centered\">\n <a\n :href=\"$ziggy('shop.checkout')\"\n class=\"button is-link\"\n >{{ __('shop.cart.checkout') }}</a>\n </div>\n <div class=\"dropdown-item has-text-centered\">\n <slot name=\"open\" :open=\"open\">\n <a @click=\"open\">Открыть корзину</a>\n </slot>\n </div>\n </div>\n <div class=\"dropdown-content\" v-else>\n <slot name=\"empty\">\n <div class=\"dropdown-item\">Ваша корзина пуста</div>\n </slot>\n </div>\n </div>\n </div>\n <div class=\"modal\" v-if=\"isModal\" v-bind:class=\"{ 'is-active': modal }\">\n <div class=\"modal-background\" @click=\"close\"></div>\n <div class=\"modal-content\">\n <button class=\"modal-close is-large\" @click=\"close\">\n <svg class=\"icon close\">\n <use xlink:href=\"#close\" />\n </svg>\n </button>\n <div class=\"box\">\n <div class=\"cart-title\">\n Корзина\n <span\n v-if=\"quantity\"\n v-text=\"pluralize(quantity, __('shop.pluralize.products'))\"\n ></span>\n </div>\n <div class=\"items-wrapper\" v-if=\"items.length\">\n <div class=\"items\">\n <cart-item v-for=\"item in items\" v-bind:key=\"item.id\" :item=\"item\"></cart-item>\n </div>\n\n <div class=\"columns is-gapless is-vcentered main-actions\">\n <div class=\"column\">\n <button class=\"button continue\" @click=\"close\">Продолжить покупки</button>\n </div>\n <div class=\"column has-text-right\">\n <div class=\"totals\">\n <div class=\"title\">\n Итого:\n <span v-html=\"$filters.price(total)\"></span>\n </div>\n </div>\n </div>\n <div class=\"column is-narrow\">\n <a\n :href=\"$ziggy('shop.checkout')\"\n class=\"button is-link checkout\"\n >Оформить заказ</a>\n </div>\n </div>\n\n <div class=\"cross\" v-if=\"cross.length\">\n <div class=\"title\">С товарами из вашей корзины часто покупают</div>\n <div class=\"swiper\" ref=\"crossSlider\">\n <div class=\"swiper-wrapper\">\n <div\n class=\"swiper-slide\"\n v-for=\"item in cross\"\n v-bind:key=\"item.id\"\n >\n <div class=\"columns is-gapless\">\n <div class=\"column is-narrow\">\n <a @click=\"goto(item.href)\">\n <figure\n class=\"image is-square\"\n v-bind:class=\"{ 'no-thumb': !item.image }\"\n >\n <img :src=\"item.image\" v-if=\"item.image\" />\n <svg v-else>\n <use xlink:href=\"#logo\" />\n </svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"product\">\n <div class=\"name\">\n <a @click=\"goto(item.href)\">{{ item.name }}</a>\n </div>\n <div class=\"columns is-gapless is-vcentered\">\n <div class=\"column is-narrow\">\n <div class=\"prices\">\n <div\n class=\"price-old\"\n v-if=\"item.priceOld\"\n v-html=\"$filters.price(item.priceOld)\"\n ></div>\n <div\n class=\"price\"\n v-html=\"$filters.price(item.price)\"\n ></div>\n </div>\n </div>\n <div class=\"column\">\n <cart-add\n :id=\"item.id\"\n :is-simple=\"true\"\n >\n <svg>\n <use\n xlink:href=\"#cart-alternate\"\n />\n </svg>\n </cart-add>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <svg class=\"swiper-nav prev\" ref=\"crossSliderPrev\">\n <use xlink:href=\"#arrow-submenu\" />\n </svg>\n <svg class=\"swiper-nav next\" ref=\"crossSliderNext\">\n <use xlink:href=\"#arrow-submenu\" />\n </svg>\n </div>\n </div>\n <div class=\"bundles\" v-if=\"bundles.length\">\n <div class=\"title\">Вместе дешевле</div>\n <div class=\"swiper\" ref=\"bundlesSlider\">\n <div class=\"swiper-wrapper\">\n <div\n class=\"swiper-slide\"\n v-for=\"item in bundles\"\n v-bind:key=\"item.id\"\n >\n <div\n class=\"columns is-gapless is-vcentered\"\n v-bind:class=\"{ 'is-third': item.third }\"\n >\n <div class=\"column is-narrow\">\n <a @click=\"goto(item.href)\">\n <figure\n class=\"image is-square\"\n v-bind:class=\"{ 'no-thumb': !item.image }\"\n >\n <img :src=\"item.image\" v-if=\"item.image\" />\n <svg v-else>\n <use xlink:href=\"#logo\" />\n </svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"product\">\n <div class=\"name\">\n <a @click=\"goto(item.href)\">{{ item.name }}</a>\n </div>\n <div class=\"columns is-gapless is-vcentered\">\n <div class=\"prices\">\n <div\n class=\"price\"\n v-html=\"$filters.price(item.price)\"\n ></div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"column is-narrow\">\n <svg class=\"bundle-icon plus\">\n <use xlink:href=\"#bundle-plus\" />\n </svg>\n </div>\n <div class=\"column is-narrow\">\n <a @click=\"goto(item.second.href)\">\n <figure\n class=\"image is-square\"\n v-bind:class=\"{ 'no-thumb': !item.second.image }\"\n >\n <img\n :src=\"item.second.image\"\n v-if=\"item.second.image\"\n />\n <svg v-else>\n <use xlink:href=\"#logo\" />\n </svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"product\">\n <div class=\"name\">\n <a\n @click=\"goto(item.second.href)\"\n >{{ item.second.name }}</a>\n </div>\n <div class=\"columns is-gapless is-vcentered\">\n <div class=\"prices\">\n <div\n class=\"price\"\n v-html=\"$filters.price(item.second.price)\"\n ></div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"column is-narrow\" v-if=\"item.third\">\n <svg class=\"bundle-icon plus\">\n <use xlink:href=\"#bundle-plus\" />\n </svg>\n </div>\n <div class=\"column is-narrow\" v-if=\"item.third\">\n <a @click=\"goto(item.third.href)\">\n <figure\n class=\"image is-square\"\n v-bind:class=\"{ 'no-thumb': !item.third.image }\"\n >\n <img\n :src=\"item.third.image\"\n v-if=\"item.third.image\"\n />\n <svg v-else>\n <use xlink:href=\"#logo\" />\n </svg>\n </figure>\n </a>\n </div>\n <div class=\"column\" v-if=\"item.third\">\n <div class=\"product\">\n <div class=\"name\">\n <a\n @click=\"goto(item.third.href)\"\n >{{ item.third.name }}</a>\n </div>\n <div class=\"columns is-gapless is-vcentered\">\n <div class=\"prices\">\n <div\n class=\"price\"\n v-html=\"$filters.price(item.third.price)\"\n ></div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"columns is-vcentered\">\n <div class=\"column\">\n <span\n class=\"total-old\"\n v-html=\"$filters.price(item.bundle.priceOld)\"\n ></span>\n <span\n class=\"bundle-amount\"\n v-html=\"'Выгода ' + item.bundle.amount\"\n ></span>\n </div>\n <div class=\"column\">\n <div class=\"is-flex is-align-items-center\">\n <span\n class=\"total\"\n v-html=\"$filters.price(item.bundle.price)\"\n ></span>\n <bundle-add\n :id=\"item.id\"\n :second=\"item.second.id\"\n v-bind:third=\"item.third ? item.third.id : null\"\n ></bundle-add>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <svg class=\"swiper-nav prev\" ref=\"bundlesSliderPrev\">\n <use xlink:href=\"#arrow-submenu\" />\n </svg>\n <svg class=\"swiper-nav next\" ref=\"bundlesSliderNext\">\n <use xlink:href=\"#arrow-submenu\" />\n </svg>\n </div>\n </div>\n <div v-else class=\"empty\">\n <div class=\"title\">В корзине пока что нет товаров</div>\n <div class=\"message\">\n Посмотрите предложения на\n <a\n @click=\"goto($env.locale.url + '/')\"\n >главной странице</a>,\n <br />воспользуйтесь каталогом или поиском\n </div>\n <button class=\"button continue\" @click=\"close\">Продолжить покупки</button>\n <div class=\"viewed-wrapper\">\n <viewed :slider=\"true\"></viewed>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { ref, computed, defineComponent } from 'vue';\nimport { useStore } from 'vuex';\nimport { pluralize } from '@perevorot/shop/dist/helpers';\nimport Swiper, { Navigation } from 'swiper';\n\nexport default /*#__PURE__*/ defineComponent({\n name: 'cart',\n props: {\n isModal: {\n type: Boolean,\n default: true\n }\n },\n setup() {\n const store = useStore();\n const loading = ref(false);\n\n const items = computed(() => store.getters['cart/items']);\n const modal = computed(() => store.getters['cart/modal']);\n const total = computed(() => store.getters['cart/total']);\n const quantity = computed(() => store.getters['cart/quantity']);\n\n const open = () => {\n store.commit('cart/modal', true);\n };\n\n const close = () => {\n store.commit('cart/modal', false);\n };\n\n const clear = () => {\n loading.value = true;\n\n store.dispatch('cart/clear', {\n finally: () => {\n loading.value = false;\n }\n });\n };\n\n store.dispatch(\"cart/get\", {\n finally: () => {\n },\n });\n\n window.addEventListener('keyup', (e) => {\n if (modal.value && e.key === 'Escape') {\n close();\n }\n });\n\n const goto = (href) => {\n window.addEventListener('beforeunload', () => {\n store.commit('cart/modal', false);\n });\n\n window.location.href = href;\n };\n\n let crossSwiper;\n const crossSlider = ref(null);\n const crossSliderNext = ref(null);\n const crossSliderPrev = ref(null);\n\n const cross = computed(() => {\n const cross = store.getters['cart/cross'];\n\n if (crossSlider.value) {\n if (crossSwiper) {\n crossSwiper.destroy();\n }\n\n if (cross.length) {\n crossSwiper = new Swiper(crossSlider.value, {\n slidesPerView: 2,\n slidesPerGroup: 2,\n spaceBetween: 0,\n allowTouchMove: true,\n modules: [Navigation],\n mousewheel: {\n forceToAxis: true\n },\n navigation: {\n nextEl: crossSliderNext.value,\n prevEl: crossSliderPrev.value\n }\n });\n }\n }\n\n return cross;\n });\n\n let bundlesSwiper;\n const bundlesSlider = ref(null);\n const bundlesSliderNext = ref(null);\n const bundlesSliderPrev = ref(null);\n\n const bundles = computed(() => {\n const bundles = store.getters['cart/bundles'];\n\n if (bundlesSlider.value) {\n if (bundlesSwiper) {\n bundlesSwiper.destroy();\n }\n\n if (bundles.length) {\n bundlesSwiper = new Swiper(bundlesSlider.value, {\n slidesPerView: 1,\n spaceBetween: 0,\n allowTouchMove: true,\n mousewheel: {\n forceToAxis: true\n },\n navigation: {\n nextEl: bundlesSliderNext.value,\n prevEl: bundlesSliderPrev.value\n }\n });\n }\n }\n\n return bundles;\n });\n\n window.addEventListener('beforeunload', () => {\n store.commit('cart/modal', null);\n });\n\n return {\n loading,\n items,\n modal,\n total,\n quantity,\n open,\n close,\n clear,\n pluralize,\n goto,\n cross,\n crossSlider,\n crossSliderPrev,\n crossSliderNext,\n bundles,\n bundlesSlider,\n bundlesSliderPrev,\n bundlesSliderNext\n };\n }\n});\n</script>","<template>\n <div class=\"cart\">\n <div class=\"dropdown is-right is-hoverable\">\n <div class=\"dropdown-trigger\">\n <slot :total=\"quantity\" :open=\"open\">\n <button class=\"button\" @click=\"open\">\n <span>\n <i class=\"fas fa-shopping-cart\"></i>\n {{ quantity }}\n </span>\n <span class=\"icon is-small\">\n <i class=\"fas fa-angle-down\" aria-hidden=\"true\"></i>\n </span>\n </button>\n </slot>\n </div>\n <div class=\"dropdown-menu\" role=\"menu\">\n <div class=\"dropdown-content\" v-if=\"items.length\">\n <div class=\"dropdown-item\">\n <div class=\"columns\">\n <div class=\"column\">{{ __('shop.cart.total') }}</div>\n <div class=\"column has-text-right\" v-html=\"$filters.price(total)\"></div>\n </div>\n </div>\n <div class=\"dropdown-divider\"></div>\n <div class=\"dropdown-item has-text-centered\">\n <a\n :href=\"$ziggy('shop.checkout')\"\n class=\"button is-link\"\n >{{ __('shop.cart.checkout') }}</a>\n </div>\n <div class=\"dropdown-item has-text-centered\">\n <slot name=\"open\" :open=\"open\">\n <a @click=\"open\">Открыть корзину</a>\n </slot>\n </div>\n </div>\n <div class=\"dropdown-content\" v-else>\n <slot name=\"empty\">\n <div class=\"dropdown-item\">Ваша корзина пуста</div>\n </slot>\n </div>\n </div>\n </div>\n <div class=\"modal\" v-if=\"isModal\" v-bind:class=\"{ 'is-active': modal }\">\n <div class=\"modal-background\" @click=\"close\"></div>\n <div class=\"modal-content\">\n <button class=\"modal-close is-large\" @click=\"close\">\n <svg class=\"icon close\">\n <use xlink:href=\"#close\" />\n </svg>\n </button>\n <div class=\"box\">\n <div class=\"cart-title\">\n Корзина\n <span\n v-if=\"quantity\"\n v-text=\"pluralize(quantity, __('shop.pluralize.products'))\"\n ></span>\n </div>\n <div class=\"items-wrapper\" v-if=\"items.length\">\n <div class=\"items\">\n <cart-item v-for=\"item in items\" v-bind:key=\"item.id\" :item=\"item\"></cart-item>\n </div>\n\n <div class=\"columns is-gapless is-vcentered main-actions\">\n <div class=\"column\">\n <button class=\"button continue\" @click=\"close\">Продолжить покупки</button>\n </div>\n <div class=\"column has-text-right\">\n <div class=\"totals\">\n <div class=\"title\">\n Итого:\n <span v-html=\"$filters.price(total)\"></span>\n </div>\n </div>\n </div>\n <div class=\"column is-narrow\">\n <a\n :href=\"$ziggy('shop.checkout')\"\n class=\"button is-link checkout\"\n >Оформить заказ</a>\n </div>\n </div>\n\n <div class=\"cross\" v-if=\"cross.length\">\n <div class=\"title\">С товарами из вашей корзины часто покупают</div>\n <div class=\"swiper\" ref=\"crossSlider\">\n <div class=\"swiper-wrapper\">\n <div\n class=\"swiper-slide\"\n v-for=\"item in cross\"\n v-bind:key=\"item.id\"\n >\n <div class=\"columns is-gapless\">\n <div class=\"column is-narrow\">\n <a @click=\"goto(item.href)\">\n <figure\n class=\"image is-square\"\n v-bind:class=\"{ 'no-thumb': !item.image }\"\n >\n <img :src=\"item.image\" v-if=\"item.image\" />\n <svg v-else>\n <use xlink:href=\"#logo\" />\n </svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"product\">\n <div class=\"name\">\n <a @click=\"goto(item.href)\">{{ item.name }}</a>\n </div>\n <div class=\"columns is-gapless is-vcentered\">\n <div class=\"column is-narrow\">\n <div class=\"prices\">\n <div\n class=\"price-old\"\n v-if=\"item.priceOld\"\n v-html=\"$filters.price(item.priceOld)\"\n ></div>\n <div\n class=\"price\"\n v-html=\"$filters.price(item.price)\"\n ></div>\n </div>\n </div>\n <div class=\"column\">\n <cart-add\n :id=\"item.id\"\n :is-simple=\"true\"\n >\n <svg>\n <use\n xlink:href=\"#cart-alternate\"\n />\n </svg>\n </cart-add>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <svg class=\"swiper-nav prev\" ref=\"crossSliderPrev\">\n <use xlink:href=\"#arrow-submenu\" />\n </svg>\n <svg class=\"swiper-nav next\" ref=\"crossSliderNext\">\n <use xlink:href=\"#arrow-submenu\" />\n </svg>\n </div>\n </div>\n <div class=\"bundles\" v-if=\"bundles.length\">\n <div class=\"title\">Вместе дешевле</div>\n <div class=\"swiper\" ref=\"bundlesSlider\">\n <div class=\"swiper-wrapper\">\n <div\n class=\"swiper-slide\"\n v-for=\"item in bundles\"\n v-bind:key=\"item.id\"\n >\n <div\n class=\"columns is-gapless is-vcentered\"\n v-bind:class=\"{ 'is-third': item.third }\"\n >\n <div class=\"column is-narrow\">\n <a @click=\"goto(item.href)\">\n <figure\n class=\"image is-square\"\n v-bind:class=\"{ 'no-thumb': !item.image }\"\n >\n <img :src=\"item.image\" v-if=\"item.image\" />\n <svg v-else>\n <use xlink:href=\"#logo\" />\n </svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"product\">\n <div class=\"name\">\n <a @click=\"goto(item.href)\">{{ item.name }}</a>\n </div>\n <div class=\"columns is-gapless is-vcentered\">\n <div class=\"prices\">\n <div\n class=\"price\"\n v-html=\"$filters.price(item.price)\"\n ></div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"column is-narrow\">\n <svg class=\"bundle-icon plus\">\n <use xlink:href=\"#bundle-plus\" />\n </svg>\n </div>\n <div class=\"column is-narrow\">\n <a @click=\"goto(item.second.href)\">\n <figure\n class=\"image is-square\"\n v-bind:class=\"{ 'no-thumb': !item.second.image }\"\n >\n <img\n :src=\"item.second.image\"\n v-if=\"item.second.image\"\n />\n <svg v-else>\n <use xlink:href=\"#logo\" />\n </svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"product\">\n <div class=\"name\">\n <a\n @click=\"goto(item.second.href)\"\n >{{ item.second.name }}</a>\n </div>\n <div class=\"columns is-gapless is-vcentered\">\n <div class=\"prices\">\n <div\n class=\"price\"\n v-html=\"$filters.price(item.second.price)\"\n ></div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"column is-narrow\" v-if=\"item.third\">\n <svg class=\"bundle-icon plus\">\n <use xlink:href=\"#bundle-plus\" />\n </svg>\n </div>\n <div class=\"column is-narrow\" v-if=\"item.third\">\n <a @click=\"goto(item.third.href)\">\n <figure\n class=\"image is-square\"\n v-bind:class=\"{ 'no-thumb': !item.third.image }\"\n >\n <img\n :src=\"item.third.image\"\n v-if=\"item.third.image\"\n />\n <svg v-else>\n <use xlink:href=\"#logo\" />\n </svg>\n </figure>\n </a>\n </div>\n <div class=\"column\" v-if=\"item.third\">\n <div class=\"product\">\n <div class=\"name\">\n <a\n @click=\"goto(item.third.href)\"\n >{{ item.third.name }}</a>\n </div>\n <div class=\"columns is-gapless is-vcentered\">\n <div class=\"prices\">\n <div\n class=\"price\"\n v-html=\"$filters.price(item.third.price)\"\n ></div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"columns is-vcentered\">\n <div class=\"column\">\n <span\n class=\"total-old\"\n v-html=\"$filters.price(item.bundle.priceOld)\"\n ></span>\n <span\n class=\"bundle-amount\"\n v-html=\"'Выгода ' + item.bundle.amount\"\n ></span>\n </div>\n <div class=\"column\">\n <div class=\"is-flex is-align-items-center\">\n <span\n class=\"total\"\n v-html=\"$filters.price(item.bundle.price)\"\n ></span>\n <bundle-add\n :id=\"item.id\"\n :second=\"item.second.id\"\n v-bind:third=\"item.third ? item.third.id : null\"\n ></bundle-add>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <svg class=\"swiper-nav prev\" ref=\"bundlesSliderPrev\">\n <use xlink:href=\"#arrow-submenu\" />\n </svg>\n <svg class=\"swiper-nav next\" ref=\"bundlesSliderNext\">\n <use xlink:href=\"#arrow-submenu\" />\n </svg>\n </div>\n </div>\n <div v-else class=\"empty\">\n <div class=\"title\">В корзине пока что нет товаров</div>\n <div class=\"message\">\n Посмотрите предложения на\n <a\n @click=\"goto($env.locale.url + '/')\"\n >главной странице</a>,\n <br />воспользуйтесь каталогом или поиском\n </div>\n <button class=\"button continue\" @click=\"close\">Продолжить покупки</button>\n <div class=\"viewed-wrapper\">\n <viewed :slider=\"true\"></viewed>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { ref, computed, defineComponent } from 'vue';\nimport { useStore } from 'vuex';\nimport { pluralize } from '@perevorot/shop/dist/helpers';\nimport Swiper, { Navigation } from 'swiper';\n\nexport default /*#__PURE__*/ defineComponent({\n name: 'cart',\n props: {\n isModal: {\n type: Boolean,\n default: true\n }\n },\n setup() {\n const store = useStore();\n const loading = ref(false);\n\n const items = computed(() => store.getters['cart/items']);\n const modal = computed(() => store.getters['cart/modal']);\n const total = computed(() => store.getters['cart/total']);\n const quantity = computed(() => store.getters['cart/quantity']);\n\n const open = () => {\n store.commit('cart/modal', true);\n };\n\n const close = () => {\n store.commit('cart/modal', false);\n };\n\n const clear = () => {\n loading.value = true;\n\n store.dispatch('cart/clear', {\n finally: () => {\n loading.value = false;\n }\n });\n };\n\n store.dispatch(\"cart/get\", {\n finally: () => {\n },\n });\n\n window.addEventListener('keyup', (e) => {\n if (modal.value && e.key === 'Escape') {\n close();\n }\n });\n\n const goto = (href) => {\n window.addEventListener('beforeunload', () => {\n store.commit('cart/modal', false);\n });\n\n window.location.href = href;\n };\n\n let crossSwiper;\n const crossSlider = ref(null);\n const crossSliderNext = ref(null);\n const crossSliderPrev = ref(null);\n\n const cross = computed(() => {\n const cross = store.getters['cart/cross'];\n\n if (crossSlider.value) {\n if (crossSwiper) {\n crossSwiper.destroy();\n }\n\n if (cross.length) {\n crossSwiper = new Swiper(crossSlider.value, {\n slidesPerView: 2,\n slidesPerGroup: 2,\n spaceBetween: 0,\n allowTouchMove: true,\n modules: [Navigation],\n mousewheel: {\n forceToAxis: true\n },\n navigation: {\n nextEl: crossSliderNext.value,\n prevEl: crossSliderPrev.value\n }\n });\n }\n }\n\n return cross;\n });\n\n let bundlesSwiper;\n const bundlesSlider = ref(null);\n const bundlesSliderNext = ref(null);\n const bundlesSliderPrev = ref(null);\n\n const bundles = computed(() => {\n const bundles = store.getters['cart/bundles'];\n\n if (bundlesSlider.value) {\n if (bundlesSwiper) {\n bundlesSwiper.destroy();\n }\n\n if (bundles.length) {\n bundlesSwiper = new Swiper(bundlesSlider.value, {\n slidesPerView: 1,\n spaceBetween: 0,\n allowTouchMove: true,\n mousewheel: {\n forceToAxis: true\n },\n navigation: {\n nextEl: bundlesSliderNext.value,\n prevEl: bundlesSliderPrev.value\n }\n });\n }\n }\n\n return bundles;\n });\n\n window.addEventListener('beforeunload', () => {\n store.commit('cart/modal', null);\n });\n\n return {\n loading,\n items,\n modal,\n total,\n quantity,\n open,\n close,\n clear,\n pluralize,\n goto,\n cross,\n crossSlider,\n crossSliderPrev,\n crossSliderNext,\n bundles,\n bundlesSlider,\n bundlesSliderPrev,\n bundlesSliderNext\n };\n }\n});\n</script>"],"names":["defineComponent","name","props","isModal","type","Boolean","setup","store","useStore","loading","ref","items","computed","getters","modal","total","quantity","close","commit","dispatch","window","addEventListener","e","value","key","crossSwiper","bundlesSwiper","crossSlider","crossSliderNext","crossSliderPrev","cross","destroy","length","Swiper","slidesPerView","slidesPerGroup","spaceBetween","allowTouchMove","modules","Navigation","mousewheel","forceToAxis","navigation","nextEl","prevEl","bundlesSlider","bundlesSliderNext","bundlesSliderPrev","bundles","open","clear","pluralize","href","location","_createElementVNode","role","_createElementBlock","_hoisted_1","_hoisted_2","_hoisted_3","_renderSlot","_ctx","onClick","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","innerHTML","price","_hoisted_12","_hoisted_13","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_21","_hoisted_22","_toDisplayString","_hoisted_25","_hoisted_26","item","_createBlock","id","_hoisted_27","_hoisted_28","_hoisted_29","_hoisted_30","_hoisted_31","_hoisted_34","_hoisted_36","_hoisted_37","_hoisted_38","_hoisted_39","_hoisted_40","_hoisted_41","image","src","_hoisted_47","_hoisted_48","_hoisted_49","_hoisted_51","_hoisted_52","_hoisted_53","priceOld","_hoisted_56","_createVNode","_hoisted_57","_hoisted_58","_hoisted_61","_hoisted_64","_hoisted_65","_hoisted_66","_hoisted_67","third","_hoisted_68","_hoisted_74","_hoisted_75","_hoisted_76","_hoisted_78","_hoisted_79","_hoisted_81","_hoisted_82","second","_hoisted_88","_hoisted_89","_hoisted_90","_hoisted_92","_hoisted_93","_hoisted_95","_hoisted_98","_hoisted_104","_hoisted_105","_hoisted_106","_hoisted_108","_hoisted_109","_hoisted_111","_hoisted_112","bundle","amount","_hoisted_115","_hoisted_116","_hoisted_118","_hoisted_121","_hoisted_124","_hoisted_125","_hoisted_126","locale","url","_hoisted_129","_hoisted_131","slider"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var e=require("vue"),t=require("vuex"),a=require("vue-toastification"),n={setup:function(){return{translate:window.__}}},l={class:"shop-cart-success-message"};n.render=function(t,a,n,i,o,r){return e.openBlock(),e.createElementBlock("div",l,e.toDisplayString(i.translate("shop.cart.message")),1)};var i=a.useToast(),o={name:"cart-add",props:{id:Number,isChangeQuantity:{type:Boolean,default:!0},isAlreadyInCart:{type:Boolean,default:!0},isSimple:{type:Boolean,default:!1},isPlusMinus:{type:Boolean,default:!1},after:{type:String,default:"modal"}},setup:function(a){var l=t.useStore(),o=e.ref(!1),r=e.ref(1),s=e.ref(null),c=e.computed((function(){return l.getters["cart/productQuantity"](a.id)})),u=a.isAlreadyInCart,d=a.isChangeQuantity,p=a.isPlusMinus;a.isSimple&&(u=!1,d=!1,p=!1);return{button:s,loading:o,quantity:r,add:function(){o.value=!0;var e=[];s.value.closest(".product-main")&&document.querySelectorAll("#options input[type=checkbox]:checked").forEach((function(t){e.push(parseInt(t.value))}));l.dispatch("cart/add",{product:{id:a.id,quantity:Math.max(1,r.value),options:e},finally:function(){(o.value=!1,r.value=1,"message"==a.after)&&i({component:n},{type:"success-cart"})}})},remove:function(){o.value=!0,l.dispatch("cart/remove",{id:a.id,finally:function(){o.value=!1}})},cart:c,increase:function(){r.value++},decrease:function(){r.value>1&&r.value--},isAlreadyInCart:u,isChangeQuantity:d,isPlusMinus:p}}},r={class:"cart-add",ref:"button"},s={class:"columns"},c={key:0,class:"column"},u={class:"cart-change-quantity"},d=["disabled"],p=["disabled"],m=["disabled"],y={class:"column is-narrow"},f=["disabled"],v=e.createElementVNode("svg",{class:"icon cart"},[e.createElementVNode("use",{"xlink:href":"#cart-add"})],-1),b={class:"cart-add-button-label"},k={key:0},h=e.createElementVNode("br",null,null,-1),g=["disabled","textContent"];o.render=function(t,a,n,l,i,o){return e.openBlock(),e.createElementBlock("div",r,[e.createElementVNode("div",s,[t.$env.shop.isCustomQuantity&&l.isChangeQuantity?(e.openBlock(),e.createElementBlock("div",c,[e.createElementVNode("div",u,[l.isPlusMinus?(e.openBlock(),e.createElementBlock("button",{key:0,class:"button is-small decrease",onClick:a[0]||(a[0]=function(){return l.decrease&&l.decrease.apply(l,arguments)}),disabled:l.loading||1==l.quantity}," - ",8,d)):e.createCommentVNode("v-if",!0),e.withDirectives(e.createElementVNode("input",{class:"input is-small",type:"number",min:"1","onUpdate:modelValue":a[1]||(a[1]=function(e){return l.quantity=e}),disabled:l.loading},null,8,p),[[e.vModelText,l.quantity]]),l.isPlusMinus?(e.openBlock(),e.createElementBlock("button",{key:1,class:"button is-small increase",onClick:a[2]||(a[2]=function(){return l.increase&&l.increase.apply(l,arguments)}),disabled:l.loading}," + ",8,m)):e.createCommentVNode("v-if",!0)])])):e.createCommentVNode("v-if",!0),e.createElementVNode("div",y,[e.createElementVNode("button",{class:"button is-link is-small",onClick:a[3]||(a[3]=function(){return l.add&&l.add.apply(l,arguments)}),disabled:l.loading},[e.renderSlot(t.$slots,"default",{label:t.__("shop.cart.add")},(function(){return[v,e.createElementVNode("span",b,e.toDisplayString(t.__("shop.cart.add")),1)]}))],8,f)])]),t.$env.shop.isAlreadyInCart&&l.isAlreadyInCart&&l.cart>0?(e.openBlock(),e.createElementBlock("div",k,[e.createTextVNode(e.toDisplayString(t.__("shop.cart.already",{quantity:l.cart}))+" ",1),h,e.createElementVNode("a",{onClick:a[4]||(a[4]=e.withModifiers((function(){return l.remove&&l.remove.apply(l,arguments)}),["prevent"])),disabled:l.loading,textContent:e.toDisplayString(t.__("shop.cart.remove"))},null,8,g)])):e.createCommentVNode("v-if",!0)],512)},module.exports=o;
|
|
2
|
+
//# sourceMappingURL=CartAdd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CartAdd.js","sources":["../../../../src/components/shop/cart/SuccessMessage.vue","../../../../src/components/shop/cart/SuccessMessage.vue?vue&type=template&id=75a41ddb&lang.js","../../../../src/components/shop/cart/CartAdd.vue","../../../../src/components/shop/cart/CartAdd.vue?vue&type=template&id=9ef38414&lang.js"],"sourcesContent":["<template>\n <div class=\"shop-cart-success-message\">\n {{ translate(\"shop.cart.message\") }}\n </div>\n</template>\n<script>\nexport default {\n setup() {\n const translate = window.__;\n\n return {\n translate,\n };\n },\n};\n</script>","<template>\n <div class=\"shop-cart-success-message\">\n {{ translate(\"shop.cart.message\") }}\n </div>\n</template>\n<script>\nexport default {\n setup() {\n const translate = window.__;\n\n return {\n translate,\n };\n },\n};\n</script>","<template>\n <div class=\"cart-add\" ref=\"button\">\n <div class=\"columns\">\n <div\n class=\"column\"\n v-if=\"$env.shop.isCustomQuantity && isChangeQuantity\"\n >\n <div class=\"cart-change-quantity\">\n <button\n class=\"button is-small decrease\"\n @click=\"decrease\"\n :disabled=\"loading || quantity == 1\"\n v-if=\"isPlusMinus\"\n >\n -\n </button>\n <input\n class=\"input is-small\"\n type=\"number\"\n min=\"1\"\n v-model=\"quantity\"\n :disabled=\"loading\"\n />\n <button\n class=\"button is-small increase\"\n @click=\"increase\"\n :disabled=\"loading\"\n v-if=\"isPlusMinus\"\n >\n +\n </button>\n </div>\n </div>\n <div class=\"column is-narrow\">\n <button\n class=\"button is-link is-small\"\n v-on:click=\"add\"\n :disabled=\"loading\"\n >\n <slot :label=\"__('shop.cart.add')\">\n <svg class=\"icon cart\">\n <use xlink:href=\"#cart-add\" />\n </svg>\n <span class=\"cart-add-button-label\">{{\n __(\"shop.cart.add\")\n }}</span>\n </slot>\n </button>\n </div>\n </div>\n <div v-if=\"$env.shop.isAlreadyInCart && isAlreadyInCart && cart > 0\">\n {{ __(\"shop.cart.already\", { quantity: cart }) }}\n <br />\n <a\n v-on:click.prevent=\"remove\"\n :disabled=\"loading\"\n v-text=\"__('shop.cart.remove')\"\n ></a>\n </div>\n </div>\n</template>\n<script>\nimport { ref, computed } from \"vue\";\nimport { useStore } from \"vuex\";\nimport { useToast } from \"vue-toastification\";\nimport SuccessMessage from \"./SuccessMessage.vue\";\n\nconst toast = useToast();\n\nexport default {\n name: 'cart-add',\n props: {\n id: Number,\n isChangeQuantity: {\n type: Boolean,\n default: true,\n },\n isAlreadyInCart: {\n type: Boolean,\n default: true,\n },\n isSimple: {\n type: Boolean,\n default: false,\n },\n isPlusMinus: {\n type: Boolean,\n default: false,\n },\n after: {\n type: String,\n default: \"modal\",\n },\n },\n setup(props) {\n const store = useStore();\n const loading = ref(false);\n const quantity = ref(1);\n const button = ref(null);\n\n const cart = computed(() =>\n store.getters[\"cart/productQuantity\"](props.id)\n );\n\n let isAlreadyInCart = props.isAlreadyInCart;\n let isChangeQuantity = props.isChangeQuantity;\n let isPlusMinus = props.isPlusMinus;\n\n if (props.isSimple) {\n isAlreadyInCart = false;\n isChangeQuantity = false;\n isPlusMinus = false;\n }\n\n const add = () => {\n loading.value = true;\n \n let options = [];\n\n if(button.value.closest('.product-main')) {\n const checkedOptions = document.querySelectorAll(\n \"#options input[type=checkbox]:checked\"\n );\n\n checkedOptions.forEach((element) => {\n options.push(parseInt(element.value));\n });\n }\n\n store.dispatch(\"cart/add\", {\n product: {\n id: props.id,\n quantity: Math.max(1, quantity.value),\n options: options,\n },\n finally: () => {\n loading.value = false;\n quantity.value = 1;\n\n if (props.after == \"message\") {\n const component = {\n component: SuccessMessage,\n };\n\n toast(component, {\n type: \"success-cart\",\n });\n }\n },\n });\n };\n\n const remove = () => {\n loading.value = true;\n\n store.dispatch(\"cart/remove\", {\n id: props.id,\n finally: () => {\n loading.value = false;\n },\n });\n };\n\n const increase = () => {\n quantity.value++;\n };\n\n const decrease = () => {\n if (quantity.value > 1) {\n quantity.value--;\n }\n };\n\n return {\n button,\n loading,\n quantity,\n add,\n remove,\n cart,\n increase,\n decrease,\n isAlreadyInCart,\n isChangeQuantity,\n isPlusMinus,\n };\n },\n};\n</script>","<template>\n <div class=\"cart-add\" ref=\"button\">\n <div class=\"columns\">\n <div\n class=\"column\"\n v-if=\"$env.shop.isCustomQuantity && isChangeQuantity\"\n >\n <div class=\"cart-change-quantity\">\n <button\n class=\"button is-small decrease\"\n @click=\"decrease\"\n :disabled=\"loading || quantity == 1\"\n v-if=\"isPlusMinus\"\n >\n -\n </button>\n <input\n class=\"input is-small\"\n type=\"number\"\n min=\"1\"\n v-model=\"quantity\"\n :disabled=\"loading\"\n />\n <button\n class=\"button is-small increase\"\n @click=\"increase\"\n :disabled=\"loading\"\n v-if=\"isPlusMinus\"\n >\n +\n </button>\n </div>\n </div>\n <div class=\"column is-narrow\">\n <button\n class=\"button is-link is-small\"\n v-on:click=\"add\"\n :disabled=\"loading\"\n >\n <slot :label=\"__('shop.cart.add')\">\n <svg class=\"icon cart\">\n <use xlink:href=\"#cart-add\" />\n </svg>\n <span class=\"cart-add-button-label\">{{\n __(\"shop.cart.add\")\n }}</span>\n </slot>\n </button>\n </div>\n </div>\n <div v-if=\"$env.shop.isAlreadyInCart && isAlreadyInCart && cart > 0\">\n {{ __(\"shop.cart.already\", { quantity: cart }) }}\n <br />\n <a\n v-on:click.prevent=\"remove\"\n :disabled=\"loading\"\n v-text=\"__('shop.cart.remove')\"\n ></a>\n </div>\n </div>\n</template>\n<script>\nimport { ref, computed } from \"vue\";\nimport { useStore } from \"vuex\";\nimport { useToast } from \"vue-toastification\";\nimport SuccessMessage from \"./SuccessMessage.vue\";\n\nconst toast = useToast();\n\nexport default {\n name: 'cart-add',\n props: {\n id: Number,\n isChangeQuantity: {\n type: Boolean,\n default: true,\n },\n isAlreadyInCart: {\n type: Boolean,\n default: true,\n },\n isSimple: {\n type: Boolean,\n default: false,\n },\n isPlusMinus: {\n type: Boolean,\n default: false,\n },\n after: {\n type: String,\n default: \"modal\",\n },\n },\n setup(props) {\n const store = useStore();\n const loading = ref(false);\n const quantity = ref(1);\n const button = ref(null);\n\n const cart = computed(() =>\n store.getters[\"cart/productQuantity\"](props.id)\n );\n\n let isAlreadyInCart = props.isAlreadyInCart;\n let isChangeQuantity = props.isChangeQuantity;\n let isPlusMinus = props.isPlusMinus;\n\n if (props.isSimple) {\n isAlreadyInCart = false;\n isChangeQuantity = false;\n isPlusMinus = false;\n }\n\n const add = () => {\n loading.value = true;\n \n let options = [];\n\n if(button.value.closest('.product-main')) {\n const checkedOptions = document.querySelectorAll(\n \"#options input[type=checkbox]:checked\"\n );\n\n checkedOptions.forEach((element) => {\n options.push(parseInt(element.value));\n });\n }\n\n store.dispatch(\"cart/add\", {\n product: {\n id: props.id,\n quantity: Math.max(1, quantity.value),\n options: options,\n },\n finally: () => {\n loading.value = false;\n quantity.value = 1;\n\n if (props.after == \"message\") {\n const component = {\n component: SuccessMessage,\n };\n\n toast(component, {\n type: \"success-cart\",\n });\n }\n },\n });\n };\n\n const remove = () => {\n loading.value = true;\n\n store.dispatch(\"cart/remove\", {\n id: props.id,\n finally: () => {\n loading.value = false;\n },\n });\n };\n\n const increase = () => {\n quantity.value++;\n };\n\n const decrease = () => {\n if (quantity.value > 1) {\n quantity.value--;\n }\n };\n\n return {\n button,\n loading,\n quantity,\n add,\n remove,\n cart,\n increase,\n decrease,\n isAlreadyInCart,\n isChangeQuantity,\n isPlusMinus,\n };\n },\n};\n</script>"],"names":["setup","translate","window","__","_createElementBlock","_hoisted_1","$setup","toast","useToast","name","props","id","Number","isChangeQuantity","type","Boolean","isAlreadyInCart","isSimple","isPlusMinus","after","String","store","useStore","loading","ref","quantity","button","cart","computed","getters","add","value","options","closest","document","querySelectorAll","forEach","element","push","parseInt","dispatch","product","Math","max","component","SuccessMessage","remove","increase","decrease","_createElementVNode","_hoisted_2","_ctx","shop","isCustomQuantity","_hoisted_3","_hoisted_4","onClick","disabled","min","_hoisted_8","_renderSlot","label","_hoisted_10","_hoisted_11","_hoisted_13","_toDisplayString"],"mappings":"sFAMe,CACXA,uBAGW,CACHC,UAHcC,OAAOC,eCPlB,iFAAXC,2BAAAC,oBACOC,sCCiEX,IAAMC,EAAQC,eAEC,CACXC,KAAM,WACNC,MAAO,CACHC,GAAIC,OACJC,iBAAkB,CACdC,KAAMC,iBACG,GAEbC,gBAAiB,CACbF,KAAMC,iBACG,GAEbE,SAAU,CACNH,KAAMC,iBACG,GAEbG,YAAa,CACTJ,KAAMC,iBACG,GAEbI,MAAO,CACHL,KAAMM,eACG,UAGjBpB,eAAMU,OACIW,EAAQC,aACRC,EAAUC,OAAI,GACdC,EAAWD,MAAI,GACfE,EAASF,MAAI,MAEbG,EAAOC,YAAS,kBAClBP,EAAMQ,QAAQ,wBAAwBnB,EAAMC,OAG5CK,EAAkBN,EAAMM,gBACxBH,EAAmBH,EAAMG,iBACzBK,EAAcR,EAAMQ,YAEpBR,EAAMO,WACND,GAAkB,EAClBH,GAAmB,EACnBK,GAAc,SA8DX,CACHQ,OAAAA,EACAH,QAAAA,EACAE,SAAAA,EACAK,IA/DQ,WACRP,EAAQQ,OAAQ,MAEZC,EAAU,GAEXN,EAAOK,MAAME,QAAQ,kBACGC,SAASC,iBAC5B,yCAGWC,SAAQ,SAACC,GACpBL,EAAQM,KAAKC,SAASF,EAAQN,WAItCV,EAAMmB,SAAS,WAAY,CACvBC,QAAS,CACL9B,GAAID,EAAMC,GACVc,SAAUiB,KAAKC,IAAI,EAAGlB,EAASM,OAC/BC,QAASA,WAEJ,YACLT,EAAQQ,OAAQ,EAChBN,EAASM,MAAQ,EAEE,WAAfrB,EAAMS,QAKNZ,EAJkB,CACdqC,UAAWC,GAGE,CACb/B,KAAM,qBAiCtBgC,OA1BW,WACXvB,EAAQQ,OAAQ,EAEhBV,EAAMmB,SAAS,cAAe,CAC1B7B,GAAID,EAAMC,WACD,WACLY,EAAQQ,OAAQ,MAqBxBJ,KAAAA,EACAoB,SAjBa,WACbtB,EAASM,SAiBTiB,SAda,WACTvB,EAASM,MAAQ,GACjBN,EAASM,SAabf,gBAAAA,EACAH,iBAAAA,EACAK,YAAAA,cCvLG,WAAWM,IAAI,mBACX,0BAEG,mBAGK,8EA0BJ,qCAOCyB,kCAAW,cACPA,yCAAgB,4BAER,qCASxBA,yHAnDR7C,2BAAAC,GACI4C,2BAAAC,GAGcC,OAAKC,KAAKC,kBAAoB/C,kCAFxCF,2BAAAkD,GAIIL,2BAAAM,GAKcjD,6BAJVF,2CACU,2BACLoD,sCAAOlD,4CACPmD,SAAUnD,cAAWA,yEAK1B2C,oCACU,iBACNnC,KAAK,SACL4C,IAAI,yDACKpD,eACRmD,SAAUnD,oCADFA,cAOHA,6BAJVF,2CACU,2BACLoD,sCAAOlD,4CACPmD,SAAUnD,4FAOvB2C,2BAAAU,GACIV,qCACU,0BACDO,sCAAOlD,kCACXmD,SAAUnD,YAEXsD,iCAAOC,MAAOV,wBAAd,kBACIW,EAGAb,4BAAAc,oBACIZ,wCAMTA,OAAKC,KAAKpC,iBAAmBV,mBAAmBA,wBAA3DF,kEACO+C,mCAAoC7C,iBACvC0D,EACAf,0BACSO,uDAAelD,sDACnBmD,SAAUnD,sBACX2D,kBAAQd"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var e=require("vue"),t=require("vuex"),i={name:"CartItem",props:{item:Object},setup:function(i){var n=t.useStore(),o=e.ref(!1),l=e.ref(),a=e.ref(i.item.attributes.options&&i.item.attributes.options.length?i.item.attributes.options:[]),c=e.ref(!1),r=e.computed((function(){return n.getters["auth/is"]}));i.item.attributes.options&&i.item.attributes.options.length&&(c.value=!0);var s=function(e){o.value=!0,n.dispatch("cart/add",{product:{id:i.item.id,quantity:e},finally:function(){o.value=!1}})};i.item.options&&i.item.options.length&&e.watch(a,(function(e){o.value=!0,n.dispatch("cart/options",{product:{id:i.item.id,options:Object.values(e)},finally:function(){o.value=!1}})}));return{loading:o,increase:function(){s(1)},decrease:function(){s(-1)},remove:function(){o.value=!0,n.dispatch("cart/remove",{id:i.item.id,finally:function(){o.value=!1}})},options:a,optionsToggled:c,input:l,gotoProduct:function(e){window.addEventListener("beforeunload",(function(){n.commit("cart/modal",null)})),window.location.href=e},auth:r}}},n={key:0,class:"column is-12"},o=[e.createElementVNode("div",{class:"bundle-title"},"Вместе дешевле",-1)],l={class:"column name"},a={class:"column is-narrow"},c={class:"cart-actions"},r=["disabled"],s=[e.createElementVNode("svg",{class:"icon"},[e.createElementVNode("use",{"xlink:href":"#cart-remove"})],-1)],m={class:"column is-narrow"},d=["src"],u={key:1},p=[e.createElementVNode("use",{"xlink:href":"#logo"},null,-1)],v={class:"column"},k={class:"columns is-gapless mb-0"},b={class:"column"},E={key:0,class:"code"},V={class:"title"},g={key:0},N={key:0,class:"column is-narrow has-text-right is-relative"},f={class:"quantity"},h=["disabled"],y=[e.createElementVNode("svg",null,[e.createElementVNode("use",{"xlink:href":"#cart-minus"})],-1)],B=["disabled"],C=[e.createElementVNode("svg",null,[e.createElementVNode("use",{"xlink:href":"#cart-plus"})],-1)],w={key:0,class:"quantity-price"},x=["innerHTML"],T=e.createTextVNode(" / шт"),q={class:"column is-2 has-text-right"},D=["innerHTML"],L=["innerHTML"],M=["innerHTML"],S=e.createElementVNode("svg",null,[e.createElementVNode("use",{"xlink:href":"#arrow-down"})],-1),H={class:"wrapper"},z={class:"column is-narrow"},P=["value","id"],O={class:"column"},$=["for"],j={key:0,class:"option-description"},U={class:"column is-2 has-text-right"},F=e.createTextVNode("+"),I=["innerHTML"],A={key:0,class:"bundle columns"},G=e.createElementVNode("div",{class:"column is-narrow"},[e.createElementVNode("div",{class:"cart-bundle-spacer"})],-1),J={class:"column is-narrow"},K=e.createElementVNode("svg",{class:"bundle-icon"},[e.createElementVNode("use",{"xlink:href":"#bundle-plus"})],-1),Q=["src"],R={key:1},W=[e.createElementVNode("use",{"xlink:href":"#logo"},null,-1)],X={class:"column"},Y={key:0,class:"code"},Z={class:"title"},_={key:1,class:"bundle columns"},ee=e.createElementVNode("div",{class:"column is-narrow"},[e.createElementVNode("div",{class:"cart-bundle-spacer"})],-1),te={class:"column is-narrow"},ie=e.createElementVNode("svg",{class:"bundle-icon"},[e.createElementVNode("use",{"xlink:href":"#bundle-plus"})],-1),ne=["src"],oe={key:1},le=[e.createElementVNode("use",{"xlink:href":"#logo"},null,-1)],ae={class:"column"},ce={key:0,class:"code"},re={class:"title"};i.render=function(t,i,se,me,de,ue){var pe=e.resolveComponent("wishlist-add");return se.item.deleted?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["columns is-multiline shop-cart-item",{inactive:!1===se.item.attributes.active,"is-bundle":se.item.attributes.bundle}])},[se.item.attributes.bundle?(e.openBlock(),e.createElementBlock("div",n,o)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",l,[e.createElementVNode("div",{class:e.normalizeClass(["columns",{"mb-0":se.item.attributes.bundle}])},[e.createElementVNode("div",a,[e.createElementVNode("div",c,[e.createElementVNode("button",{class:"remove",onClick:i[0]||(i[0]=function(){return me.remove&&me.remove.apply(me,arguments)}),disabled:me.loading},s,8,r),me.auth&&!se.item.attributes.bundle?(e.openBlock(),e.createBlock(pe,{key:0,id:se.item.id},null,8,["id"])):e.createCommentVNode("v-if",!0)])]),e.createElementVNode("div",m,[e.createElementVNode("a",{onClick:i[1]||(i[1]=function(e){return me.gotoProduct(se.item.attributes.href)})},[e.createElementVNode("figure",{class:e.normalizeClass(["image is-square",{"no-thumb":!se.item.attributes.image}])},[se.item.attributes.image?(e.openBlock(),e.createElementBlock("img",{key:0,src:se.item.attributes.image},null,8,d)):(e.openBlock(),e.createElementBlock("svg",u,p))],2)])]),e.createElementVNode("div",v,[e.createElementVNode("div",k,[e.createElementVNode("div",b,[se.item.attributes.code?(e.openBlock(),e.createElementBlock("div",E,"Код продукта: "+e.toDisplayString(se.item.attributes.code),1)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",V,[!1===se.item.attributes.active?(e.openBlock(),e.createElementBlock("span",g,e.toDisplayString(se.item.name),1)):(e.openBlock(),e.createElementBlock("a",{key:1,onClick:i[2]||(i[2]=function(e){return me.gotoProduct(se.item.attributes.href)})},e.toDisplayString(se.item.name),1))])]),(e.openBlock(),e.createElementBlock("div",N,[e.createElementVNode("div",f,[e.createElementVNode("button",{class:"button decrease",onClick:i[3]||(i[3]=function(){return me.decrease&&me.decrease.apply(me,arguments)}),disabled:me.loading||1==se.item.quantity},y,8,h),e.withDirectives(e.createElementVNode("input",{class:"input is-small",type:"number",min:"1","onUpdate:modelValue":i[4]||(i[4]=function(e){return se.item.quantity=e}),disabled:""},null,512),[[e.vModelText,se.item.quantity]]),e.createElementVNode("button",{class:"button increase",onClick:i[5]||(i[5]=function(){return me.increase&&me.increase.apply(me,arguments)}),disabled:me.loading},C,8,B)]),se.item.quantity>1?(e.openBlock(),e.createElementBlock("div",w,[e.createElementVNode("span",{innerHTML:t.$filters.price(se.item.attributes.price)},null,8,x),T])):e.createCommentVNode("v-if",!0)])),e.createElementVNode("div",q,[e.createElementVNode("div",{class:e.normalizeClass(["price",{"bundle-price":se.item.attributes.bundle}])},[se.item.attributes.priceOld?(e.openBlock(),e.createElementBlock("div",{key:0,class:"price-old",innerHTML:t.$filters.price(se.item.attributes.priceOld*se.item.quantity)},null,8,D)):e.createCommentVNode("v-if",!0),se.item.attributes.bundle&&se.item.attributes.amount?(e.openBlock(),e.createElementBlock("div",{key:1,class:"bundle-amount",innerHTML:"Выгода "+(se.item.attributes.amount.percent?se.item.attributes.amount.percent+"%":t.$filters.price(se.item.attributes.amount.sum*se.item.quantity))},null,8,L)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{innerHTML:t.$filters.price(se.item.attributes.price*se.item.quantity)},null,8,M)],2)])]),se.item.options&&se.item.options.length?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["options",{"is-toggled":me.optionsToggled}])},[e.createElementVNode("div",{class:"toggler",onClick:i[6]||(i[6]=function(e){return me.optionsToggled=!me.optionsToggled})},[e.createElementVNode("span",null,"Дополнительные услуги, "+e.toDisplayString(se.item.options.length),1),S]),e.withDirectives(e.createElementVNode("div",H,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(se.item.options,(function(n,o){return e.openBlock(),e.createElementBlock("div",{key:o,class:e.normalizeClass(["columns",{"is-checked":-1!==me.options.indexOf(n.id)}])},[e.createElementVNode("div",z,[e.withDirectives(e.createElementVNode("input",{type:"checkbox",class:"checkbox","onUpdate:modelValue":i[7]||(i[7]=function(e){return me.options=e}),value:n.id,id:"option-"+se.item.id+"-"+n.id},null,8,P),[[e.vModelCheckbox,me.options]])]),e.createElementVNode("div",O,[e.createElementVNode("label",{class:"option-title is-clickable",for:"option-"+se.item.id+"-"+n.id},e.toDisplayString(n.name),9,$),n.description?(e.openBlock(),e.createElementBlock("div",j,e.toDisplayString(n.description),1)):e.createCommentVNode("v-if",!0)]),e.createElementVNode("div",U,[F,e.createElementVNode("span",{innerHTML:t.$filters.price(n.price)},null,8,I)])],2)})),128))],512),[[e.vShow,me.optionsToggled]])],2)):e.createCommentVNode("v-if",!0)])],2),se.item.attributes.bundle?(e.openBlock(),e.createElementBlock("div",A,[G,e.createElementVNode("div",J,[K,e.createElementVNode("a",{onClick:i[8]||(i[8]=function(e){return me.gotoProduct(se.item.attributes.second.href)})},[e.createElementVNode("figure",{class:e.normalizeClass(["image is-square",{"no-thumb":!se.item.attributes.second.image}])},[se.item.attributes.second.image?(e.openBlock(),e.createElementBlock("img",{key:0,src:se.item.attributes.second.image},null,8,Q)):(e.openBlock(),e.createElementBlock("svg",R,W))],2)])]),e.createElementVNode("div",X,[se.item.attributes.second.code?(e.openBlock(),e.createElementBlock("div",Y,"Код продукта: "+e.toDisplayString(se.item.attributes.second.code),1)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",Z,[e.createElementVNode("a",{onClick:i[9]||(i[9]=function(e){return me.gotoProduct(se.item.attributes.second.href)})},e.toDisplayString(se.item.attributes.second.name),1)])])])):e.createCommentVNode("v-if",!0),se.item.attributes.bundle&&se.item.attributes.third?(e.openBlock(),e.createElementBlock("div",_,[ee,e.createElementVNode("div",te,[ie,e.createElementVNode("a",{onClick:i[10]||(i[10]=function(e){return me.gotoProduct(se.item.attributes.third.href)})},[e.createElementVNode("figure",{class:e.normalizeClass(["image is-square",{"no-thumb":!se.item.attributes.third.image}])},[se.item.attributes.third.image?(e.openBlock(),e.createElementBlock("img",{key:0,src:se.item.attributes.third.image},null,8,ne)):(e.openBlock(),e.createElementBlock("svg",oe,le))],2)])]),e.createElementVNode("div",ae,[se.item.attributes.third.code?(e.openBlock(),e.createElementBlock("div",ce,"Код продукта: "+e.toDisplayString(se.item.attributes.third.code),1)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",re,[e.createElementVNode("a",{onClick:i[11]||(i[11]=function(e){return me.gotoProduct(se.item.attributes.third.href)})},e.toDisplayString(se.item.attributes.third.name),1)])])])):e.createCommentVNode("v-if",!0)])],2))},module.exports=i;
|
|
2
|
+
//# sourceMappingURL=CartItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CartItem.js","sources":["../../../../src/components/shop/cart/CartItem.vue","../../../../src/components/shop/cart/CartItem.vue?vue&type=template&id=91dc66d8&lang.js"],"sourcesContent":["<template>\n <div class=\"columns is-multiline shop-cart-item\" v-if=\"!item.deleted\" v-bind:class=\"{ inactive: item.attributes.active === false, 'is-bundle': item.attributes.bundle }\">\n <div class=\"column is-12\" v-if=\"item.attributes.bundle\">\n <div class=\"bundle-title\">Вместе дешевле</div>\n </div>\n <div class=\"column name\">\n <div class=\"columns\" v-bind:class=\"{ 'mb-0': item.attributes.bundle }\">\n <div class=\"column is-narrow\">\n <div class=\"cart-actions\">\n <button class=\"remove\" @click=\"remove\" :disabled=\"loading\">\n <svg class=\"icon\"><use xlink:href=\"#cart-remove\" /></svg>\n </button>\n <wishlist-add :id=\"item.id\" v-if=\"auth && !item.attributes.bundle\"></wishlist-add>\n </div>\n </div>\n <div class=\"column is-narrow\">\n <a @click=\"gotoProduct(item.attributes.href)\">\n <figure class=\"image is-square\" v-bind:class=\"{ 'no-thumb': !item.attributes.image }\">\n <img :src=\"item.attributes.image\" v-if=\"item.attributes.image\" />\n <svg v-else><use xlink:href=\"#logo\" /></svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"columns is-gapless mb-0\">\n <div class=\"column\">\n <div class=\"code\" v-if=\"item.attributes.code\">Код продукта: {{ item.attributes.code }}</div>\n <div class=\"title\">\n <span v-if=\"item.attributes.active === false\">\n {{ item.name }}\n </span>\n <a @click=\"gotoProduct(item.attributes.href)\" v-else>{{ item.name }}</a>\n </div>\n </div>\n <div class=\"column is-narrow has-text-right is-relative\" v-if=\"true || $env.shop.isChangeQuantity\">\n <div class=\"quantity\">\n <button class=\"button decrease\" @click=\"decrease\" :disabled=\"loading || item.quantity == 1\">\n <svg><use xlink:href=\"#cart-minus\" /></svg>\n </button>\n <input class=\"input is-small\" type=\"number\" min=\"1\" v-model=\"item.quantity\" disabled />\n <button class=\"button increase\" @click=\"increase\" :disabled=\"loading\">\n <svg><use xlink:href=\"#cart-plus\" /></svg>\n </button>\n </div>\n <div class=\"quantity-price\" v-if=\"item.quantity > 1\"><span v-html=\"$filters.price(item.attributes.price)\"></span> / шт</div>\n </div>\n <div class=\"column is-narrow has-text-right\" v-else>{{ item.quantity }}✕</div>\n <div class=\"column is-2 has-text-right\">\n <div class=\"price\" v-bind:class=\"{ 'bundle-price': item.attributes.bundle }\">\n <div v-if=\"item.attributes.priceOld\" class=\"price-old\" v-html=\"$filters.price(item.attributes.priceOld * item.quantity)\"></div>\n <div class=\"bundle-amount\" v-if=\"item.attributes.bundle && item.attributes.amount\" v-html=\"'Выгода ' + (item.attributes.amount.percent ? item.attributes.amount.percent + '%' : $filters.price(item.attributes.amount.sum * item.quantity))\"></div>\n <div v-html=\"$filters.price(item.attributes.price * item.quantity)\"></div>\n </div>\n </div>\n </div>\n <div class=\"options\" v-if=\"item.options && item.options.length\" v-bind:class=\"{ 'is-toggled': optionsToggled }\">\n <div class=\"toggler\" @click=\"optionsToggled = !optionsToggled\">\n <span>Дополнительные услуги, {{ item.options.length }}</span>\n <svg><use xlink:href=\"#arrow-down\" /></svg>\n </div>\n <div class=\"wrapper\" v-show=\"optionsToggled\">\n <div v-for=\"(option, index) in item.options\" v-bind:key=\"index\" class=\"columns\" v-bind:class=\"{ 'is-checked': options.indexOf(option.id) !== -1 }\">\n <div class=\"column is-narrow\">\n <input type=\"checkbox\" class=\"checkbox\" v-model=\"options\" :value=\"option.id\" :id=\"'option-' + item.id + '-' + option.id\" />\n </div>\n <div class=\"column\">\n <label class=\"option-title is-clickable\" :for=\"'option-' + item.id + '-' + option.id\">{{ option.name }}</label>\n <div class=\"option-description\" v-if=\"option.description\">{{ option.description }}</div>\n </div>\n <div class=\"column is-2 has-text-right\">+<span v-html=\"$filters.price(option.price)\"></span></div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"bundle columns\" v-if=\"item.attributes.bundle\">\n <div class=\"column is-narrow\">\n <div class=\"cart-bundle-spacer\"></div>\n </div>\n <div class=\"column is-narrow\">\n <svg class=\"bundle-icon\"><use xlink:href=\"#bundle-plus\" /></svg>\n <a @click=\"gotoProduct(item.attributes.second.href)\">\n <figure class=\"image is-square\" v-bind:class=\"{ 'no-thumb': !item.attributes.second.image }\">\n <img :src=\"item.attributes.second.image\" v-if=\"item.attributes.second.image\" />\n <svg v-else><use xlink:href=\"#logo\" /></svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"code\" v-if=\"item.attributes.second.code\">Код продукта: {{ item.attributes.second.code }}</div>\n <div class=\"title\">\n <a @click=\"gotoProduct(item.attributes.second.href)\">{{ item.attributes.second.name }}</a>\n </div>\n </div>\n </div>\n <div class=\"bundle columns\" v-if=\"item.attributes.bundle && item.attributes.third\">\n <div class=\"column is-narrow\">\n <div class=\"cart-bundle-spacer\"></div>\n </div>\n <div class=\"column is-narrow\">\n <svg class=\"bundle-icon\"><use xlink:href=\"#bundle-plus\" /></svg>\n <a @click=\"gotoProduct(item.attributes.third.href)\">\n <figure class=\"image is-square\" v-bind:class=\"{ 'no-thumb': !item.attributes.third.image }\">\n <img :src=\"item.attributes.third.image\" v-if=\"item.attributes.third.image\" />\n <svg v-else><use xlink:href=\"#logo\" /></svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"code\" v-if=\"item.attributes.third.code\">Код продукта: {{ item.attributes.third.code }}</div>\n <div class=\"title\">\n <a @click=\"gotoProduct(item.attributes.third.href)\">{{ item.attributes.third.name }}</a>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, computed, watch } from 'vue';\nimport { useStore } from 'vuex';\n\nexport default {\n name: 'CartItem',\n props: {\n item: Object\n },\n setup(props) {\n const store = useStore();\n const loading = ref(false);\n const input = ref();\n const options = ref(props.item.attributes.options && props.item.attributes.options.length ? props.item.attributes.options : []);\n const optionsToggled = ref(false);\n const auth = computed(() => store.getters['auth/is']);\n\n if (props.item.attributes.options && props.item.attributes.options.length) {\n optionsToggled.value = true;\n }\n\n const remove = () => {\n loading.value = true;\n\n store.dispatch('cart/remove', {\n id: props.item.id,\n finally: () => {\n loading.value = false;\n }\n });\n };\n\n const increase = () => {\n quantity(+1);\n };\n\n const decrease = () => {\n quantity(-1);\n };\n\n const quantity = (difference) => {\n loading.value = true;\n\n store.dispatch('cart/add', {\n product: {\n id: props.item.id,\n quantity: difference\n },\n finally: () => {\n loading.value = false;\n }\n });\n };\n\n if (props.item.options && props.item.options.length) {\n watch(options, (options) => {\n loading.value = true;\n\n store.dispatch('cart/options', {\n product: {\n id: props.item.id,\n options: Object.values(options)\n },\n finally: () => {\n loading.value = false;\n }\n });\n });\n }\n\n const gotoProduct = (href) => {\n window.addEventListener('beforeunload', () => {\n store.commit('cart/modal', null);\n });\n\n window.location.href = href;\n };\n\n return {\n loading,\n increase,\n decrease,\n remove,\n options,\n optionsToggled,\n input,\n gotoProduct,\n auth\n };\n }\n};\n</script>","<template>\n <div class=\"columns is-multiline shop-cart-item\" v-if=\"!item.deleted\" v-bind:class=\"{ inactive: item.attributes.active === false, 'is-bundle': item.attributes.bundle }\">\n <div class=\"column is-12\" v-if=\"item.attributes.bundle\">\n <div class=\"bundle-title\">Вместе дешевле</div>\n </div>\n <div class=\"column name\">\n <div class=\"columns\" v-bind:class=\"{ 'mb-0': item.attributes.bundle }\">\n <div class=\"column is-narrow\">\n <div class=\"cart-actions\">\n <button class=\"remove\" @click=\"remove\" :disabled=\"loading\">\n <svg class=\"icon\"><use xlink:href=\"#cart-remove\" /></svg>\n </button>\n <wishlist-add :id=\"item.id\" v-if=\"auth && !item.attributes.bundle\"></wishlist-add>\n </div>\n </div>\n <div class=\"column is-narrow\">\n <a @click=\"gotoProduct(item.attributes.href)\">\n <figure class=\"image is-square\" v-bind:class=\"{ 'no-thumb': !item.attributes.image }\">\n <img :src=\"item.attributes.image\" v-if=\"item.attributes.image\" />\n <svg v-else><use xlink:href=\"#logo\" /></svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"columns is-gapless mb-0\">\n <div class=\"column\">\n <div class=\"code\" v-if=\"item.attributes.code\">Код продукта: {{ item.attributes.code }}</div>\n <div class=\"title\">\n <span v-if=\"item.attributes.active === false\">\n {{ item.name }}\n </span>\n <a @click=\"gotoProduct(item.attributes.href)\" v-else>{{ item.name }}</a>\n </div>\n </div>\n <div class=\"column is-narrow has-text-right is-relative\" v-if=\"true || $env.shop.isChangeQuantity\">\n <div class=\"quantity\">\n <button class=\"button decrease\" @click=\"decrease\" :disabled=\"loading || item.quantity == 1\">\n <svg><use xlink:href=\"#cart-minus\" /></svg>\n </button>\n <input class=\"input is-small\" type=\"number\" min=\"1\" v-model=\"item.quantity\" disabled />\n <button class=\"button increase\" @click=\"increase\" :disabled=\"loading\">\n <svg><use xlink:href=\"#cart-plus\" /></svg>\n </button>\n </div>\n <div class=\"quantity-price\" v-if=\"item.quantity > 1\"><span v-html=\"$filters.price(item.attributes.price)\"></span> / шт</div>\n </div>\n <div class=\"column is-narrow has-text-right\" v-else>{{ item.quantity }}✕</div>\n <div class=\"column is-2 has-text-right\">\n <div class=\"price\" v-bind:class=\"{ 'bundle-price': item.attributes.bundle }\">\n <div v-if=\"item.attributes.priceOld\" class=\"price-old\" v-html=\"$filters.price(item.attributes.priceOld * item.quantity)\"></div>\n <div class=\"bundle-amount\" v-if=\"item.attributes.bundle && item.attributes.amount\" v-html=\"'Выгода ' + (item.attributes.amount.percent ? item.attributes.amount.percent + '%' : $filters.price(item.attributes.amount.sum * item.quantity))\"></div>\n <div v-html=\"$filters.price(item.attributes.price * item.quantity)\"></div>\n </div>\n </div>\n </div>\n <div class=\"options\" v-if=\"item.options && item.options.length\" v-bind:class=\"{ 'is-toggled': optionsToggled }\">\n <div class=\"toggler\" @click=\"optionsToggled = !optionsToggled\">\n <span>Дополнительные услуги, {{ item.options.length }}</span>\n <svg><use xlink:href=\"#arrow-down\" /></svg>\n </div>\n <div class=\"wrapper\" v-show=\"optionsToggled\">\n <div v-for=\"(option, index) in item.options\" v-bind:key=\"index\" class=\"columns\" v-bind:class=\"{ 'is-checked': options.indexOf(option.id) !== -1 }\">\n <div class=\"column is-narrow\">\n <input type=\"checkbox\" class=\"checkbox\" v-model=\"options\" :value=\"option.id\" :id=\"'option-' + item.id + '-' + option.id\" />\n </div>\n <div class=\"column\">\n <label class=\"option-title is-clickable\" :for=\"'option-' + item.id + '-' + option.id\">{{ option.name }}</label>\n <div class=\"option-description\" v-if=\"option.description\">{{ option.description }}</div>\n </div>\n <div class=\"column is-2 has-text-right\">+<span v-html=\"$filters.price(option.price)\"></span></div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"bundle columns\" v-if=\"item.attributes.bundle\">\n <div class=\"column is-narrow\">\n <div class=\"cart-bundle-spacer\"></div>\n </div>\n <div class=\"column is-narrow\">\n <svg class=\"bundle-icon\"><use xlink:href=\"#bundle-plus\" /></svg>\n <a @click=\"gotoProduct(item.attributes.second.href)\">\n <figure class=\"image is-square\" v-bind:class=\"{ 'no-thumb': !item.attributes.second.image }\">\n <img :src=\"item.attributes.second.image\" v-if=\"item.attributes.second.image\" />\n <svg v-else><use xlink:href=\"#logo\" /></svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"code\" v-if=\"item.attributes.second.code\">Код продукта: {{ item.attributes.second.code }}</div>\n <div class=\"title\">\n <a @click=\"gotoProduct(item.attributes.second.href)\">{{ item.attributes.second.name }}</a>\n </div>\n </div>\n </div>\n <div class=\"bundle columns\" v-if=\"item.attributes.bundle && item.attributes.third\">\n <div class=\"column is-narrow\">\n <div class=\"cart-bundle-spacer\"></div>\n </div>\n <div class=\"column is-narrow\">\n <svg class=\"bundle-icon\"><use xlink:href=\"#bundle-plus\" /></svg>\n <a @click=\"gotoProduct(item.attributes.third.href)\">\n <figure class=\"image is-square\" v-bind:class=\"{ 'no-thumb': !item.attributes.third.image }\">\n <img :src=\"item.attributes.third.image\" v-if=\"item.attributes.third.image\" />\n <svg v-else><use xlink:href=\"#logo\" /></svg>\n </figure>\n </a>\n </div>\n <div class=\"column\">\n <div class=\"code\" v-if=\"item.attributes.third.code\">Код продукта: {{ item.attributes.third.code }}</div>\n <div class=\"title\">\n <a @click=\"gotoProduct(item.attributes.third.href)\">{{ item.attributes.third.name }}</a>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, computed, watch } from 'vue';\nimport { useStore } from 'vuex';\n\nexport default {\n name: 'CartItem',\n props: {\n item: Object\n },\n setup(props) {\n const store = useStore();\n const loading = ref(false);\n const input = ref();\n const options = ref(props.item.attributes.options && props.item.attributes.options.length ? props.item.attributes.options : []);\n const optionsToggled = ref(false);\n const auth = computed(() => store.getters['auth/is']);\n\n if (props.item.attributes.options && props.item.attributes.options.length) {\n optionsToggled.value = true;\n }\n\n const remove = () => {\n loading.value = true;\n\n store.dispatch('cart/remove', {\n id: props.item.id,\n finally: () => {\n loading.value = false;\n }\n });\n };\n\n const increase = () => {\n quantity(+1);\n };\n\n const decrease = () => {\n quantity(-1);\n };\n\n const quantity = (difference) => {\n loading.value = true;\n\n store.dispatch('cart/add', {\n product: {\n id: props.item.id,\n quantity: difference\n },\n finally: () => {\n loading.value = false;\n }\n });\n };\n\n if (props.item.options && props.item.options.length) {\n watch(options, (options) => {\n loading.value = true;\n\n store.dispatch('cart/options', {\n product: {\n id: props.item.id,\n options: Object.values(options)\n },\n finally: () => {\n loading.value = false;\n }\n });\n });\n }\n\n const gotoProduct = (href) => {\n window.addEventListener('beforeunload', () => {\n store.commit('cart/modal', null);\n });\n\n window.location.href = href;\n };\n\n return {\n loading,\n increase,\n decrease,\n remove,\n options,\n optionsToggled,\n input,\n gotoProduct,\n auth\n };\n }\n};\n</script>"],"names":["name","props","item","Object","setup","store","useStore","loading","ref","input","options","attributes","length","optionsToggled","auth","computed","getters","value","quantity","difference","dispatch","product","id","watch","values","increase","decrease","remove","gotoProduct","href","window","addEventListener","commit","location","_createElementVNode","$props","deleted","_createElementBlock","active","bundle","_hoisted_1","_hoisted_4","_hoisted_5","_hoisted_6","onClick","$setup","disabled","_createBlock","_hoisted_10","image","src","_hoisted_15","_hoisted_16","_hoisted_17","code","_hoisted_18","_hoisted_19","_hoisted_21","_hoisted_22","type","min","_hoisted_29","innerHTML","_ctx","price","_hoisted_33","priceOld","amount","percent","sum","_hoisted_37","_hoisted_38","option","index","key","indexOf","_hoisted_39","_hoisted_41","description","_hoisted_43","_hoisted_44","_hoisted_47","_hoisted_48","_hoisted_49","_hoisted_50","second","_hoisted_55","_hoisted_56","_hoisted_57","third","_hoisted_58","_hoisted_59","_hoisted_60","_hoisted_61","_hoisted_66","_hoisted_67","_hoisted_68"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var e=require("vue"),t=require("vuex"),n=e.defineComponent({name:"cart-trigger",setup:function(){var n=t.useStore();return{quantity:e.computed((function(){return n.getters["cart/quantity"]})),open:function(){n.commit("cart/modal",!0)}}}}),r={class:"cart"},o={class:"dropdown is-right is-hoverable"},a={class:"dropdown-trigger"},i=e.createElementVNode("svg",{width:"22",height:"19"},[e.createElementVNode("use",{"xlink:href":"#cart"})],-1),u=["textContent"];n.render=function(t,n,c,l,s,d){return e.openBlock(),e.createElementBlock("div",r,[e.createElementVNode("div",o,[e.createElementVNode("div",a,[e.renderSlot(t.$slots,"default",{total:t.quantity,open:t.open},(function(){return[e.createElementVNode("button",{class:e.normalizeClass(["button",{"is-products":t.quantity}]),onClick:n[0]||(n[0]=function(){return t.open&&t.open.apply(t,arguments)})},[i,e.createElementVNode("span",{textContent:e.toDisplayString(t.quantity)},null,8,u)],2)]}))])])])},module.exports=n;
|
|
2
|
+
//# sourceMappingURL=CartTrigger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CartTrigger.js","sources":["../../../../src/components/shop/cart/CartTrigger.vue","../../../../src/components/shop/cart/CartTrigger.vue?vue&type=template&id=75752e18&lang.js"],"sourcesContent":["<template>\n <div class=\"cart\">\n <div class=\"dropdown is-right is-hoverable\">\n <div class=\"dropdown-trigger\">\n <slot :total=\"quantity\" :open=\"open\">\n <button class=\"button\" @click=\"open\" v-bind:class=\"{ 'is-products': quantity }\">\n <svg width=\"22\" height=\"19\">\n <use xlink:href=\"#cart\"/>\n </svg>\n <span v-text=\"quantity\"></span>\n </button>\n </slot>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { computed, defineComponent } from 'vue';\nimport { useStore } from 'vuex';\n\nexport default defineComponent({\n name: 'cart-trigger',\n setup() {\n const store = useStore();\n const quantity = computed(() => store.getters['cart/quantity']);\n\n const open = () => {\n store.commit('cart/modal', true);\n };\n\n return {\n quantity,\n open,\n }\n },\n})\n</script>\n","<template>\n <div class=\"cart\">\n <div class=\"dropdown is-right is-hoverable\">\n <div class=\"dropdown-trigger\">\n <slot :total=\"quantity\" :open=\"open\">\n <button class=\"button\" @click=\"open\" v-bind:class=\"{ 'is-products': quantity }\">\n <svg width=\"22\" height=\"19\">\n <use xlink:href=\"#cart\"/>\n </svg>\n <span v-text=\"quantity\"></span>\n </button>\n </slot>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { computed, defineComponent } from 'vue';\nimport { useStore } from 'vuex';\n\nexport default defineComponent({\n name: 'cart-trigger',\n setup() {\n const store = useStore();\n const quantity = computed(() => store.getters['cart/quantity']);\n\n const open = () => {\n store.commit('cart/modal', true);\n };\n\n return {\n quantity,\n open,\n }\n },\n})\n</script>\n"],"names":["defineComponent","name","setup","store","useStore","quantity","computed","getters","open","commit","_createElementVNode","width","height","_createElementBlock","_hoisted_1","_hoisted_2","_hoisted_3","_renderSlot","total","_ctx","onClick","_hoisted_4","_toDisplayString"],"mappings":"sDAoBeA,kBAAgB,CAC3BC,KAAM,eACNC,qBACUC,EAAQC,mBAOP,CACHC,SAPaC,YAAS,kBAAMH,EAAMI,QAAQ,oBAQ1CC,KANS,WACTL,EAAMM,OAAO,cAAc,iBC1BxB,iBACI,2CACI,sBAGCC,4BAAKC,MAAM,KAAKC,OAAO,OACnBF,yCAAgB,qFANxCG,2BAAAC,GACIJ,2BAAAK,GACIL,2BAAAM,GACIC,iCAAOC,MAAOC,WAAWX,KAAMW,SAA/B,kBACIT,uDAAc,wBAAsDS,cAA5CC,sCAAOD,sCAC3BE,EAGAX,yCAAMY,kBAAQH"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var e=require("vue"),s={setup:function(){return{translate:window.__}}},t={class:"shop-cart-success-message"};s.render=function(s,r,n,a,c,o){return e.openBlock(),e.createElementBlock("div",t,e.toDisplayString(a.translate("shop.cart.message")),1)},module.exports=s;
|
|
2
|
+
//# sourceMappingURL=SuccessMessage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SuccessMessage.js","sources":["../../../../src/components/shop/cart/SuccessMessage.vue","../../../../src/components/shop/cart/SuccessMessage.vue?vue&type=template&id=75a41ddb&lang.js"],"sourcesContent":["<template>\n <div class=\"shop-cart-success-message\">\n {{ translate(\"shop.cart.message\") }}\n </div>\n</template>\n<script>\nexport default {\n setup() {\n const translate = window.__;\n\n return {\n translate,\n };\n },\n};\n</script>","<template>\n <div class=\"shop-cart-success-message\">\n {{ translate(\"shop.cart.message\") }}\n </div>\n</template>\n<script>\nexport default {\n setup() {\n const translate = window.__;\n\n return {\n translate,\n };\n },\n};\n</script>"],"names":["setup","translate","window","__","_createElementBlock","_hoisted_1","$setup"],"mappings":"oCAMe,CACXA,uBAGW,CACHC,UAHcC,OAAOC,eCPlB,iFAAXC,2BAAAC,oBACOC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var e=require("vue"),t=require("vuex"),o=require("vue-toastification").useToast(),n=e.defineComponent({setup:function(){var n=t.useStore(),a=e.ref(!1),r=e.computed((function(){return n.getters["compare/categories"]})),c=e.computed((function(){return n.getters["compare/products"]})),l=e.ref(!1);return n.dispatch("compare/get",{finally:function(){a.value=!0}}),{mounted:a,categories:r,products:c,deleteCategory:function(e){l.value||(l.value=!0,n.dispatch("compare/category",{slug:e.slug,finally:function(){o(__("shop.compare.category_deleted",{name:e.name}),{type:"success"}),l.value=!1}}))}}}}),a={class:"dropdown is-right is-hoverable shop-compare"},r={class:"dropdown-trigger"},c={key:0,class:"button"},l=e.createElementVNode("span",null,[e.createElementVNode("i",{class:"fas fa-balance-scale"})],-1),s={class:"ml-2"},i={key:0,class:"icon is-small"},d=[e.createElementVNode("i",{class:"fas fa-angle-down","aria-hidden":"true"},null,-1)],m={key:0,class:"dropdown-menu",role:"menu"},u={class:"dropdown-content"},p={class:"dropdown-item pb-0 is-size-7"},g=e.createElementVNode("div",{class:"dropdown-divider"},null,-1),f={class:"column"},v=["href"],E={class:"badge"},N={class:"column is-narrow"},V=["onClick"],k=[e.createElementVNode("span",{class:"icon",style:{transform:"scale(0.8)",color:"#888"}},[e.createElementVNode("i",{class:"fas fa-times"})],-1)];n.render=function(t,o,n,y,h,B){return e.openBlock(),e.createElementBlock("div",a,[e.createElementVNode("div",r,[t.mounted?(e.openBlock(),e.createElementBlock("div",c,[e.renderSlot(t.$slots,"default",{total:t.products.length,categories:t.categories.length},(function(){return[l,e.createElementVNode("span",s,e.toDisplayString(t.products.length),1),t.categories.length?(e.openBlock(),e.createElementBlock("span",i,d)):e.createCommentVNode("v-if",!0)]}))])):e.createCommentVNode("v-if",!0)]),t.categories.length?(e.openBlock(),e.createElementBlock("div",m,[e.createElementVNode("div",u,[e.createElementVNode("div",p,e.toDisplayString(t.__("shop.title.compare")),1),g,(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.categories,(function(o,n){return e.openBlock(),e.createElementBlock("div",{class:"columns is-gapless is-vcentered mb-0",key:n},[e.createElementVNode("div",f,[e.createElementVNode("a",{href:t.$ziggy("shop.compare")+"/"+o.slug,class:"dropdown-item"},[e.createTextVNode(e.toDisplayString(o.name)+" ",1),e.createElementVNode("span",E,e.toDisplayString(o.count),1)],8,v)]),e.createElementVNode("div",N,[e.createElementVNode("a",{class:"mr-2",onClick:function(e){return t.deleteCategory(o)}},k,8,V)])])})),128))])])):e.createCommentVNode("v-if",!0)])},module.exports=n;
|
|
2
|
+
//# sourceMappingURL=Compare.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Compare.js","sources":["../../../../src/components/shop/compare/Compare.vue","../../../../src/components/shop/compare/Compare.vue?vue&type=template&id=14d99dbc&lang.js"],"sourcesContent":["<template>\n <div class=\"dropdown is-right is-hoverable shop-compare\">\n <div class=\"dropdown-trigger\">\n <div class=\"button\" v-if=\"mounted\">\n <slot :total=\"products.length\" :categories=\"categories.length\">\n <span>\n <i class=\"fas fa-balance-scale\"></i>\n </span>\n <span class=\"ml-2\">\n {{ products.length }}\n </span>\n <span class=\"icon is-small\" v-if=\"categories.length\">\n <i class=\"fas fa-angle-down\" aria-hidden=\"true\"></i>\n </span>\n </slot>\n </div>\n </div>\n <div class=\"dropdown-menu\" role=\"menu\" v-if=\"categories.length\">\n <div class=\"dropdown-content\">\n <div class=\"dropdown-item pb-0 is-size-7\">\n {{ __(\"shop.title.compare\") }}\n </div>\n <div class=\"dropdown-divider\"></div>\n <div\n class=\"columns is-gapless is-vcentered mb-0\"\n v-for=\"(item, key) in categories\"\n v-bind:key=\"key\"\n >\n <div class=\"column\">\n <a\n :href=\"$ziggy('shop.compare') + '/' + item.slug\"\n class=\"dropdown-item\"\n >\n {{ item.name }}\n <span class=\"badge\">{{ item.count }}</span>\n </a>\n </div>\n <div class=\"column is-narrow\">\n <a class=\"mr-2\" @click=\"deleteCategory(item)\">\n <span\n class=\"icon\"\n style=\"transform: scale(0.8); color: #888\"\n >\n <i class=\"fas fa-times\"></i>\n </span>\n </a>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, computed, defineComponent } from \"vue\";\nimport { useStore } from \"vuex\";\nimport { useToast } from \"vue-toastification\";\n\nconst toast = useToast();\n\nexport default /*#__PURE__*/ defineComponent({\n setup() {\n const store = useStore();\n const mounted = ref(false);\n const categories = computed(() => store.getters[\"compare/categories\"]);\n const products = computed(() => store.getters[\"compare/products\"]);\n const loading = ref(false);\n\n const deleteCategory = (category) => {\n if (!loading.value) {\n loading.value = true;\n\n store.dispatch(\"compare/category\", {\n slug: category.slug,\n finally: () => {\n toast(\n __(\"shop.compare.category_deleted\", {\n name: category.name,\n }),\n {\n type: \"success\",\n }\n );\n\n loading.value = false;\n },\n });\n }\n };\n\n store.dispatch(\"compare/get\", {\n finally: () => {\n mounted.value = true;\n },\n });\n\n return {\n mounted,\n categories,\n products,\n deleteCategory,\n };\n },\n});\n</script>","<template>\n <div class=\"dropdown is-right is-hoverable shop-compare\">\n <div class=\"dropdown-trigger\">\n <div class=\"button\" v-if=\"mounted\">\n <slot :total=\"products.length\" :categories=\"categories.length\">\n <span>\n <i class=\"fas fa-balance-scale\"></i>\n </span>\n <span class=\"ml-2\">\n {{ products.length }}\n </span>\n <span class=\"icon is-small\" v-if=\"categories.length\">\n <i class=\"fas fa-angle-down\" aria-hidden=\"true\"></i>\n </span>\n </slot>\n </div>\n </div>\n <div class=\"dropdown-menu\" role=\"menu\" v-if=\"categories.length\">\n <div class=\"dropdown-content\">\n <div class=\"dropdown-item pb-0 is-size-7\">\n {{ __(\"shop.title.compare\") }}\n </div>\n <div class=\"dropdown-divider\"></div>\n <div\n class=\"columns is-gapless is-vcentered mb-0\"\n v-for=\"(item, key) in categories\"\n v-bind:key=\"key\"\n >\n <div class=\"column\">\n <a\n :href=\"$ziggy('shop.compare') + '/' + item.slug\"\n class=\"dropdown-item\"\n >\n {{ item.name }}\n <span class=\"badge\">{{ item.count }}</span>\n </a>\n </div>\n <div class=\"column is-narrow\">\n <a class=\"mr-2\" @click=\"deleteCategory(item)\">\n <span\n class=\"icon\"\n style=\"transform: scale(0.8); color: #888\"\n >\n <i class=\"fas fa-times\"></i>\n </span>\n </a>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, computed, defineComponent } from \"vue\";\nimport { useStore } from \"vuex\";\nimport { useToast } from \"vue-toastification\";\n\nconst toast = useToast();\n\nexport default /*#__PURE__*/ defineComponent({\n setup() {\n const store = useStore();\n const mounted = ref(false);\n const categories = computed(() => store.getters[\"compare/categories\"]);\n const products = computed(() => store.getters[\"compare/products\"]);\n const loading = ref(false);\n\n const deleteCategory = (category) => {\n if (!loading.value) {\n loading.value = true;\n\n store.dispatch(\"compare/category\", {\n slug: category.slug,\n finally: () => {\n toast(\n __(\"shop.compare.category_deleted\", {\n name: category.name,\n }),\n {\n type: \"success\",\n }\n );\n\n loading.value = false;\n },\n });\n }\n };\n\n store.dispatch(\"compare/get\", {\n finally: () => {\n mounted.value = true;\n },\n });\n\n return {\n mounted,\n categories,\n products,\n deleteCategory,\n };\n },\n});\n</script>"],"names":["toast","defineComponent","setup","store","useStore","mounted","ref","categories","computed","getters","products","loading","dispatch","value","deleteCategory","category","slug","__","name","type","_createElementVNode","role","style","_createElementBlock","_hoisted_1","_hoisted_2","_ctx","_hoisted_3","_renderSlot","total","length","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","item","key","_hoisted_13","href","_hoisted_15","count","_hoisted_16","onClick"],"mappings":"oDAyDMA,6CAEuBC,kBAAgB,CACzCC,qBACUC,EAAQC,aACRC,EAAUC,OAAI,GACdC,EAAaC,YAAS,kBAAML,EAAMM,QAAQ,yBAC1CC,EAAWF,YAAS,kBAAML,EAAMM,QAAQ,uBACxCE,EAAUL,OAAI,UAwBpBH,EAAMS,SAAS,cAAe,SACjB,WACLP,EAAQQ,OAAQ,KAIjB,CACHR,QAAAA,EACAE,WAAAA,EACAG,SAAAA,EACAI,eAhCmB,SAACC,GACfJ,EAAQE,QACTF,EAAQE,OAAQ,EAEhBV,EAAMS,SAAS,mBAAoB,CAC/BI,KAAMD,EAASC,aACN,WACLhB,EACIiB,GAAG,gCAAiC,CAChCC,KAAMH,EAASG,OAEnB,CACIC,KAAM,YAIdR,EAAQE,OAAQ,oBClFzB,wDACI,mCACI,YAEHO,kCACIA,gCAAS,uCAED,uBAGA,oBACRA,gCAAS,kCAAgC,iCAK9C,gBAAgBC,KAAK,iBACjB,6BACI,kCAGXD,kCAAW,sCAMI,8BAMS,kBAGT,qCAEHA,mCACU,OACNE,MAAA,wCAEAF,gCAAS,2EA1CrCG,2BAAAC,GACIJ,2BAAAK,GAC8BC,yBAA1BH,2BAAAI,GACIC,iCAAOC,MAAOH,WAASI,OAASvB,WAAYmB,aAAWI,SAAvD,kBACIC,EAGAX,4BAAAY,oBACON,WAASI,WAEkBJ,aAAWI,sBAA7CP,4BAAAU,+EAMiCP,aAAWI,sBAAxDP,2BAAAW,GACId,2BAAAe,GACIf,2BAAAgB,oBACOV,+BAEPW,mBACAd,kDAE0BG,uBAAdY,EAAMC,wBAFlBhB,kCACU,uCAECgB,IAAKA,IAEZnB,2BAAAoB,GACIpB,0BACKqB,KAAMf,6BAA+BY,EAAKtB,WACrC,sDAEHsB,EAAKpB,aACRE,4BAAAsB,oBAAuBJ,EAAKK,kBAGpCvB,2BAAAwB,GACIxB,gCAAS,OAAQyB,2BAAOnB,iBAAeY"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var e=require("vue"),t=require("vuex"),o=require("vue-toastification"),r={props:{last:null},setup:function(){return{translate:window.__}}},n={class:"shop-compare-success-message"},a=["href"];r.render=function(t,o,r,c,s,l){return e.openBlock(),e.createElementBlock("div",n,[e.createElementVNode("div",null,e.toDisplayString(c.translate("shop.compare.product_deleted_named",{product:r.last.name})),1),e.createElementVNode("a",{href:r.last.url,class:"mt-2 is-size-7",style:{color:"#fff","border-bottom":"1px solid #fff"}},e.toDisplayString(c.translate("shop.compare.goto")),9,a)])};var c=o.useToast(),s=e.defineComponent({props:{id:Number},setup:function(o){var n=e.ref(!1),a=t.useStore(),s=e.computed((function(){return a.getters["compare/last"]})),l=e.computed((function(){return a.getters["compare/product"](o.id)}));return{product:l,action:function(){n.value||(n.value=!0,a.dispatch("compare/toggle",{id:o.id,finally:function(){l.value?c({component:r,props:{last:s}},{type:"success"}):c(__("shop.compare.product_deleted"),{type:"warning"});n.value=!1}}))},loading:n}}}),l=["title"],u=e.createElementVNode("svg",{class:"icon compare"},[e.createElementVNode("use",{"xlink:href":"#compare"})],-1);s.render=function(t,o,r,n,a,c){return e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(["button compare",{"is-loading":t.loading,"is-transparent":!t.product}]),onClick:o[0]||(o[0]=function(){return t.action&&t.action.apply(t,arguments)}),title:t.__("shop.compare.add")},[e.renderSlot(t.$slots,"default",{product:t.product},(function(){return[u]}))],10,l)},module.exports=s;
|
|
2
|
+
//# sourceMappingURL=CompareAdd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CompareAdd.js","sources":["../../../../src/components/shop/compare/SuccessMessage.vue","../../../../src/components/shop/compare/SuccessMessage.vue?vue&type=template&id=363f1248&lang.js","../../../../src/components/shop/compare/CompareAdd.vue","../../../../src/components/shop/compare/CompareAdd.vue?vue&type=template&id=b42f83fc&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\n class=\"button compare\"\n @click=\"action\"\n v-bind:class=\"{ 'is-loading': loading, 'is-transparent': !product }\"\n :title=\"__('shop.compare.add')\"\n >\n <slot :product=\"product\">\n <svg class=\"icon compare\">\n <use xlink:href=\"#compare\" />\n </svg>\n </slot>\n </button>\n</template>\n<script>\nimport { ref, computed, defineComponent } from \"vue\";\nimport { useStore } from \"vuex\";\nimport { useToast } from \"vue-toastification\";\nimport SuccessMessage from \"./SuccessMessage.vue\";\n\nconst toast = useToast();\n\nexport default /*#__PURE__*/ defineComponent({\n props: {\n id: Number,\n },\n setup(props) {\n const loading = ref(false);\n const store = useStore();\n const last = computed(() => store.getters[\"compare/last\"]);\n const product = computed(() =>\n store.getters[\"compare/product\"](props.id)\n );\n\n const action = () => {\n if (!loading.value) {\n loading.value = true;\n\n store.dispatch(\"compare/toggle\", {\n id: props.id,\n finally: () => {\n if (product.value) {\n const component = {\n component: SuccessMessage,\n props: {\n last: last,\n },\n };\n\n toast(component, {\n type: \"success\",\n });\n } else {\n toast(__(\"shop.compare.product_deleted\"), {\n type: \"warning\",\n });\n }\n\n loading.value = false;\n },\n });\n }\n };\n\n return {\n product,\n action,\n loading,\n };\n },\n});\n</script>","<template>\n <button\n class=\"button compare\"\n @click=\"action\"\n v-bind:class=\"{ 'is-loading': loading, 'is-transparent': !product }\"\n :title=\"__('shop.compare.add')\"\n >\n <slot :product=\"product\">\n <svg class=\"icon compare\">\n <use xlink:href=\"#compare\" />\n </svg>\n </slot>\n </button>\n</template>\n<script>\nimport { ref, computed, defineComponent } from \"vue\";\nimport { useStore } from \"vuex\";\nimport { useToast } from \"vue-toastification\";\nimport SuccessMessage from \"./SuccessMessage.vue\";\n\nconst toast = useToast();\n\nexport default /*#__PURE__*/ defineComponent({\n props: {\n id: Number,\n },\n setup(props) {\n const loading = ref(false);\n const store = useStore();\n const last = computed(() => store.getters[\"compare/last\"]);\n const product = computed(() =>\n store.getters[\"compare/product\"](props.id)\n );\n\n const action = () => {\n if (!loading.value) {\n loading.value = true;\n\n store.dispatch(\"compare/toggle\", {\n id: props.id,\n finally: () => {\n if (product.value) {\n const component = {\n component: SuccessMessage,\n props: {\n last: last,\n },\n };\n\n toast(component, {\n type: \"success\",\n });\n } else {\n toast(__(\"shop.compare.product_deleted\"), {\n type: \"warning\",\n });\n }\n\n loading.value = false;\n },\n });\n }\n };\n\n return {\n product,\n action,\n loading,\n };\n },\n});\n</script>"],"names":["props","last","setup","translate","window","__","_createElementBlock","_hoisted_1","_createElementVNode","$setup","href","$props","url","style","toast","useToast","defineComponent","id","Number","loading","ref","store","useStore","computed","getters","product","action","value","dispatch","component","SuccessMessage","type","_ctx","onClick","title","_renderSlot","_hoisted_2"],"mappings":"sFAkBe,CACXA,MAAO,CACHC,KAAM,MAEVC,uBAGW,CACHC,UAHcC,OAAOC,eCtBlB,+FAAXC,2BAAAC,GACIC,kDAEQC,4EAKRD,0BACKE,KAAMC,OAAKC,UACN,iBACNC,MAAA,mEACIJ,0CCOhB,IAAMK,EAAQC,eAEeC,kBAAgB,CACzChB,MAAO,CACHiB,GAAIC,QAERhB,eAAMF,OACImB,EAAUC,OAAI,GACdC,EAAQC,aACRrB,EAAOsB,YAAS,kBAAMF,EAAMG,QAAQ,mBACpCC,EAAUF,YAAS,kBACrBF,EAAMG,QAAQ,mBAAmBxB,EAAMiB,aAiCpC,CACHQ,QAAAA,EACAC,OAhCW,WACNP,EAAQQ,QACTR,EAAQQ,OAAQ,EAEhBN,EAAMO,SAAS,iBAAkB,CAC7BX,GAAIjB,EAAMiB,WACD,WACDQ,EAAQE,MAQRb,EAPkB,CACde,UAAWC,EACX9B,MAAO,CACHC,KAAMA,IAIG,CACb8B,KAAM,YAGVjB,EAAMT,GAAG,gCAAiC,CACtC0B,KAAM,YAIdZ,EAAQQ,OAAQ,OAS5BR,QAAAA,oBC3DAX,kCAAW,iBACPA,yCAAgB,sEAR5BF,uDACU,+BAEwB0B,4BAA4BA,aADzDC,sCAAOD,wCAEPE,MAAOF,2BAERG,iCAAOV,QAASO,YAAhB,kBACII"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var e=require("vue"),n=require("vuex"),t=e.defineComponent({props:{id:Number},setup:function(t){var o=n.useStore(),r=e.computed((function(){return o.getters["compare/product"](t.id)})),a=e.ref(!1);return{product:r,action:function(){a.value||(a.value=!0,o.dispatch("compare/delete",{id:t.id,callback:function(e){var n=window.location.pathname.split("/"),o=n.pop();","!=(o=(o=(","+o+",").replace(","+t.id+",",",")).substring(1,o.length-1))&&n.push(o),window.location.href=n.join("/")},finally:function(){a.value=!1}}))},loading:a}}}),o=[e.createElementVNode("i",{class:"fas fa-times"},null,-1)];t.render=function(n,t,r,a,i,c){return e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(["button compare",{"is-loading":n.loading}]),onClick:t[0]||(t[0]=function(){return n.action&&n.action.apply(n,arguments)})},[e.renderSlot(n.$slots,"default",{product:n.product},(function(){return[e.createElementVNode("span",{class:e.normalizeClass(["icon",{"is-transparent":!n.product}])},o,2)]}))],2)},module.exports=t;
|
|
2
|
+
//# sourceMappingURL=CompareDelete.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CompareDelete.js","sources":["../../../../src/components/shop/compare/CompareDelete.vue","../../../../src/components/shop/compare/CompareDelete.vue?vue&type=template&id=970e078a&lang.js"],"sourcesContent":["<template>\n <button\n class=\"button compare\"\n @click=\"action\"\n v-bind:class=\"{ 'is-loading': loading }\"\n >\n <slot :product=\"product\">\n <span class=\"icon\" v-bind:class=\"{ 'is-transparent': !product }\">\n <i class=\"fas fa-times\"></i>\n </span>\n </slot>\n </button>\n</template>\n<script>\nimport { ref, computed, defineComponent } from \"vue\";\nimport { useStore } from \"vuex\";\n\nexport default /*#__PURE__*/ defineComponent({\n props: {\n id: Number,\n },\n setup(props) {\n const store = useStore();\n const product = computed(() =>\n store.getters[\"compare/product\"](props.id)\n );\n\n const loading = ref(false);\n\n const action = () => {\n if (!loading.value) {\n loading.value = true;\n\n store.dispatch(\"compare/delete\", {\n id: props.id,\n callback: (data) => {\n const { pathname } = window.location;\n\n let segments = pathname.split(\"/\");\n let last = segments.pop();\n\n last = (\",\" + last + \",\").replace(\n \",\" + props.id + \",\",\n \",\"\n );\n\n last = last.substring(1, last.length - 1);\n\n if (last != \",\") {\n segments.push(last);\n }\n\n window.location.href = segments.join(\"/\");\n },\n finally: () => {\n loading.value = false;\n },\n });\n }\n };\n\n return {\n product,\n action,\n loading,\n };\n },\n});\n</script>","<template>\n <button\n class=\"button compare\"\n @click=\"action\"\n v-bind:class=\"{ 'is-loading': loading }\"\n >\n <slot :product=\"product\">\n <span class=\"icon\" v-bind:class=\"{ 'is-transparent': !product }\">\n <i class=\"fas fa-times\"></i>\n </span>\n </slot>\n </button>\n</template>\n<script>\nimport { ref, computed, defineComponent } from \"vue\";\nimport { useStore } from \"vuex\";\n\nexport default /*#__PURE__*/ defineComponent({\n props: {\n id: Number,\n },\n setup(props) {\n const store = useStore();\n const product = computed(() =>\n store.getters[\"compare/product\"](props.id)\n );\n\n const loading = ref(false);\n\n const action = () => {\n if (!loading.value) {\n loading.value = true;\n\n store.dispatch(\"compare/delete\", {\n id: props.id,\n callback: (data) => {\n const { pathname } = window.location;\n\n let segments = pathname.split(\"/\");\n let last = segments.pop();\n\n last = (\",\" + last + \",\").replace(\n \",\" + props.id + \",\",\n \",\"\n );\n\n last = last.substring(1, last.length - 1);\n\n if (last != \",\") {\n segments.push(last);\n }\n\n window.location.href = segments.join(\"/\");\n },\n finally: () => {\n loading.value = false;\n },\n });\n }\n };\n\n return {\n product,\n action,\n loading,\n };\n },\n});\n</script>"],"names":["defineComponent","props","id","Number","setup","store","useStore","product","computed","getters","loading","ref","action","value","dispatch","callback","data","segments","window","location","pathname","split","last","pop","replace","substring","length","push","href","join","_createElementVNode","_createElementBlock","_ctx","onClick","_renderSlot"],"mappings":"sDAiB6BA,kBAAgB,CACzCC,MAAO,CACHC,GAAIC,QAERC,eAAMH,OACII,EAAQC,aACRC,EAAUC,YAAS,kBACrBH,EAAMI,QAAQ,mBAAmBR,EAAMC,OAGrCQ,EAAUC,OAAI,SAkCb,CACHJ,QAAAA,EACAK,OAlCW,WACNF,EAAQG,QACTH,EAAQG,OAAQ,EAEhBR,EAAMS,SAAS,iBAAkB,CAC7BZ,GAAID,EAAMC,GACVa,SAAU,SAACC,OAGHC,EAFiBC,OAAOC,SAApBC,SAEgBC,MAAM,KAC1BC,EAAOL,EAASM,MASR,MAFZD,GALAA,GAAQ,IAAMA,EAAO,KAAKE,QACtB,IAAMvB,EAAMC,GAAK,IACjB,MAGQuB,UAAU,EAAGH,EAAKI,OAAS,KAGnCT,EAASU,KAAKL,GAGlBJ,OAAOC,SAASS,KAAOX,EAASY,KAAK,cAEhC,WACLnB,EAAQG,OAAQ,OAS5BH,QAAAA,SCxDIoB,gCAAS,8EAPrBC,uDACU,+BAEwBC,aAD7BC,sCAAOD,0CAGRE,iCAAO3B,QAASyB,YAAhB,kBACIF,qDAAY,0BAA0CE"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var e=require("vue");function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(require("simplebar")),o=e.defineComponent({setup:function(){window.addEventListener("DOMContentLoaded",(function(){var e=document.getElementById("comparsion"),t=e.querySelector("table"),o=document.getElementById("comparsion-header"),i=new n.default(e),r=o.querySelector("thead").cloneNode(!0),s=t.cloneNode();s.appendChild(r),s.removeAttribute("id"),s.classList.remove("original"),s.classList.add("corner"),o.querySelector(".switcher").remove(),o.querySelector(".comparsion-navigation").remove(),e.parentNode.insertBefore(s,e);var l,c=0,d=!1,a=!1;function u(e){e&&(s.style.left=e.x+c+"px",s.style.top=e.y+"px",s.style.display="block")}i.getScrollElement().addEventListener("scroll",(function(e){c=i.getScrollElement().scrollLeft,d||(window.requestAnimationFrame((function(){var e;e=c,o.style.transform="translateX(-"+e+"px)",t.classList[e>0?"add":"remove"]("shadow"),s.classList[e>0?"add":"remove"]("shadow"),y(),d=!1})),d=!0)}),{passive:!0}),document.addEventListener("scroll",(function(e){l=o.getBoundingClientRect(),a||(window.requestAnimationFrame((function(){u(l),a=!1})),a=!0)}),{passive:!0}),setTimeout((function(){u(o.getBoundingClientRect())}),300);var m=t.querySelectorAll("tbody tr"),v=[],f=o.querySelectorAll("th");m.forEach((function(e,t){var n=e.querySelectorAll("td");n.forEach((function(e,t){e.addEventListener("mouseover",(function(e){f.forEach((function(e){e.classList.remove("is-hovered")})),f[t].classList.add("is-hovered"),v.forEach((function(e){e.forEach((function(e){e.classList.remove("is-hovered")})),t>0&&e[t].classList.add("is-hovered")}))}))})),v.push(n)})),document.getElementById("comparsion-show").addEventListener("click",(function(){t.classList.toggle("only-difference")}));var L=document.getElementById("comparsion-next"),h=document.getElementById("comparsion-prev"),E=parseInt(t.querySelector("td").offsetWidth);L.addEventListener("click",(function(){g(c,c+E,300)})),h.addEventListener("click",(function(){g(c,c-E,300)}));var g=function(e,t,n){var o=(new Date).getTime(),r=setInterval((function(){var s,l,c,d=(new Date).getTime()-o,a=(s=d,l=e,c=t-e,(s/=n/2)<1?c/2*s*s*s*s+l:-c/2*((s-=2)*s*s*s-2)+l);i.getScrollElement().scrollLeft=a,d>=n&&clearInterval(r)}),1e3/60)};var p=i.getScrollElement().scrollWidth-i.getScrollElement().clientWidth;window.addEventListener("resize",(function(){p=i.getScrollElement().scrollWidth-i.getScrollElement().clientWidth,y()}));var y=function(){h.classList.remove("is-disabled"),L.classList.remove("is-disabled"),h.classList.remove("is-hidden"),L.classList.remove("is-hidden"),0==p&&(h.classList.add("is-hidden"),L.classList.add("is-hidden")),0==i.getScrollElement().scrollLeft&&h.classList.add("is-disabled"),i.getScrollElement().scrollLeft==p&&L.classList.add("is-disabled")};y()}))}});o.render=function(e,t,n,o,i,r){return null},module.exports=o;
|
|
2
|
+
//# sourceMappingURL=Comparsion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Comparsion.js","sources":["../../../../src/components/shop/compare/Comparsion.vue"],"sourcesContent":["<template></template>\n<script>\nimport { defineComponent } from 'vue';\nimport SimpleBar from 'simplebar';\n\nexport default /*#__PURE__*/ defineComponent({\n setup() {\n window.addEventListener('DOMContentLoaded', () => {\n const container = document.getElementById('comparsion');\n const table = container.querySelector('table');\n const duplicate = document.getElementById('comparsion-header');\n const simpleBar = new SimpleBar(container);\n\n const cornerThead = duplicate.querySelector('thead').cloneNode(true);\n\n const corner = table.cloneNode();\n\n corner.appendChild(cornerThead);\n corner.removeAttribute('id');\n corner.classList.remove('original');\n corner.classList.add('corner');\n\n duplicate.querySelector('.switcher').remove();\n duplicate.querySelector('.comparsion-navigation').remove();\n\n container.parentNode.insertBefore(corner, container);\n\n let lastKnownScrollPosition = 0;\n let duplicatePosition;\n let ticking = false;\n let tickingDocument = false;\n\n function correctHeader(s) {\n duplicate.style.transform = 'translateX(-' + s + 'px)';\n\n table.classList[s > 0 ? 'add' : 'remove']('shadow');\n corner.classList[s > 0 ? 'add' : 'remove']('shadow');\n\n correctArrowsVisibility();\n }\n\n function correctCorner(s) {\n if (s) {\n corner.style.left = s.x + lastKnownScrollPosition + 'px';\n corner.style.top = s.y + 'px';\n corner.style.display = 'block';\n }\n }\n\n simpleBar.getScrollElement().addEventListener(\n 'scroll',\n function (e) {\n lastKnownScrollPosition = simpleBar.getScrollElement().scrollLeft;\n\n if (!ticking) {\n window.requestAnimationFrame(function () {\n correctHeader(lastKnownScrollPosition);\n ticking = false;\n });\n\n ticking = true;\n }\n },\n { passive: true }\n );\n\n document.addEventListener(\n 'scroll',\n function (e) {\n duplicatePosition = duplicate.getBoundingClientRect();\n\n if (!tickingDocument) {\n window.requestAnimationFrame(function () {\n correctCorner(duplicatePosition);\n tickingDocument = false;\n });\n\n tickingDocument = true;\n }\n },\n { passive: true }\n );\n\n setTimeout(() => {\n correctCorner(duplicate.getBoundingClientRect());\n }, 300);\n\n let highlight = table.querySelectorAll('tbody tr');\n let highlightRows = [];\n let theadTh = duplicate.querySelectorAll('th');\n\n highlight.forEach((element, index) => {\n const tds = element.querySelectorAll('td');\n\n tds.forEach((td, i) => {\n td.addEventListener('mouseover', (e) => {\n theadTh.forEach((td) => {\n td.classList.remove('is-hovered');\n });\n\n theadTh[i].classList.add('is-hovered');\n\n highlightRows.forEach((row) => {\n row.forEach((td) => {\n td.classList.remove('is-hovered');\n });\n\n if (i > 0) {\n row[i].classList.add('is-hovered');\n }\n });\n });\n });\n\n highlightRows.push(tds);\n });\n\n document.getElementById('comparsion-show').addEventListener('click', () => {\n table.classList.toggle('only-difference');\n });\n\n let next = document.getElementById('comparsion-next');\n let prev = document.getElementById('comparsion-prev');\n\n const width = parseInt(table.querySelector('td').offsetWidth);\n\n next.addEventListener('click', () => {\n timer(lastKnownScrollPosition, lastKnownScrollPosition + width, 300);\n });\n\n prev.addEventListener('click', () => {\n timer(lastKnownScrollPosition, lastKnownScrollPosition - width, 300);\n });\n\n const timer = (from, to, duration) => {\n let start = new Date().getTime();\n\n let timer = setInterval(function () {\n let time = new Date().getTime() - start;\n let s = easeInOutQuart(time, from, to - from, duration);\n\n simpleBar.getScrollElement().scrollLeft = s;\n\n if (time >= duration) {\n clearInterval(timer);\n }\n }, 1000 / 60);\n };\n\n function easeInOutQuart(t, b, c, d) {\n if ((t /= d / 2) < 1) return (c / 2) * t * t * t * t + b;\n return (-c / 2) * ((t -= 2) * t * t * t - 2) + b;\n }\n\n let maxScrollLeft = simpleBar.getScrollElement().scrollWidth - simpleBar.getScrollElement().clientWidth;\n\n window.addEventListener('resize', () => {\n maxScrollLeft = simpleBar.getScrollElement().scrollWidth - simpleBar.getScrollElement().clientWidth;\n correctArrowsVisibility();\n });\n\n const correctArrowsVisibility = () => {\n prev.classList.remove('is-disabled');\n next.classList.remove('is-disabled');\n prev.classList.remove('is-hidden');\n next.classList.remove('is-hidden');\n\n if (maxScrollLeft == 0) {\n prev.classList.add('is-hidden');\n next.classList.add('is-hidden');\n }\n\n if (simpleBar.getScrollElement().scrollLeft == 0) {\n prev.classList.add('is-disabled');\n }\n\n if (simpleBar.getScrollElement().scrollLeft == maxScrollLeft) {\n next.classList.add('is-disabled');\n }\n };\n\n correctArrowsVisibility();\n });\n }\n});\n</script>"],"names":["defineComponent","setup","window","addEventListener","container","document","getElementById","table","querySelector","duplicate","simpleBar","SimpleBar","cornerThead","cloneNode","corner","appendChild","removeAttribute","classList","remove","add","parentNode","insertBefore","duplicatePosition","lastKnownScrollPosition","ticking","tickingDocument","correctCorner","s","style","left","x","top","y","display","getScrollElement","e","scrollLeft","requestAnimationFrame","transform","correctArrowsVisibility","passive","getBoundingClientRect","setTimeout","highlight","querySelectorAll","highlightRows","theadTh","forEach","element","index","tds","td","i","row","push","toggle","next","prev","width","parseInt","offsetWidth","timer","from","to","duration","start","Date","getTime","setInterval","t","b","c","time","clearInterval","maxScrollLeft","scrollWidth","clientWidth"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var e=require("vue"),t={props:{last:null},setup:function(){return{translate:window.__}}},r={class:"shop-compare-success-message"},o=["href"];t.render=function(t,s,l,a,n,c){return e.openBlock(),e.createElementBlock("div",r,[e.createElementVNode("div",null,e.toDisplayString(a.translate("shop.compare.product_deleted_named",{product:l.last.name})),1),e.createElementVNode("a",{href:l.last.url,class:"mt-2 is-size-7",style:{color:"#fff","border-bottom":"1px solid #fff"}},e.toDisplayString(a.translate("shop.compare.goto")),9,o)])},module.exports=t;
|
|
2
|
+
//# sourceMappingURL=SuccessMessage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SuccessMessage.js","sources":["../../../../src/components/shop/compare/SuccessMessage.vue","../../../../src/components/shop/compare/SuccessMessage.vue?vue&type=template&id=363f1248&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>"],"names":["props","last","setup","translate","window","__","_createElementBlock","_hoisted_1","_createElementVNode","$setup","href","$props","url","style"],"mappings":"oCAkBe,CACXA,MAAO,CACHC,KAAM,MAEVC,uBAGW,CACHC,UAHcC,OAAOC,eCtBlB,+FAAXC,2BAAAC,GACIC,kDAEQC,4EAKRD,0BACKE,KAAMC,OAAKC,UACN,iBACNC,MAAA,mEACIJ"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var e=require("vue");function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=t(require("simplebar")),n=e.defineComponent({name:"filterSearch",props:{selector:String,element:String},setup:function(t){var n,o,c=e.ref(""),l=function(){if(c.value.trim()){var e=c.value.trim().toLowerCase(),t=[];u.forEach((function(r,n){-1!==r.indexOf(e)&&t.push(n)})),o.forEach((function(e){e.hidden=!0})),n.forEach((function(e,r){e.hidden=-1===t.indexOf(r)}))}else n.forEach((function(e){e.hidden=!1})),o.forEach((function(e){e.hidden=!1}))},u=[];return e.watch((function(){return c.value}),(function(){l()})),document.addEventListener("DOMContentLoaded",(function(){n=document.querySelectorAll(t.selector+" "+t.element),o=document.querySelectorAll(t.selector+" > :not("+t.element+")");var e=new r.default(document.querySelector(t.selector),{autoHide:!0}),c=document.querySelector(t.selector+" input[type=checkbox]:checked");c&&e.getScrollElement().scrollTo(0,c.closest(t.element).offsetTop),n.forEach((function(e){var t=e.querySelector("[filter]").textContent.trim();t.replace(/^[\s\d]+/,"")||(t=t.replace(/[^0-9 ]/g,"")),u.push(t.toLowerCase())}))}),!1),{term:c,search:l}}}),o={class:"shop-filters-search"},c=["placeholder"];n.render=function(t,r,n,l,u,i){return e.openBlock(),e.createElementBlock("div",o,[e.withDirectives(e.createElementVNode("input",{type:"search",class:"input is-small mb-2",placeholder:t.__("shop.filter.search"),"onUpdate:modelValue":r[0]||(r[0]=function(e){return t.term=e})},null,8,c),[[e.vModelText,t.term]])])},module.exports=n;
|
|
2
|
+
//# sourceMappingURL=FilterSearch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilterSearch.js","sources":["../../../../src/components/shop/filters/FilterSearch.vue","../../../../src/components/shop/filters/FilterSearch.vue?vue&type=template&id=458d3540&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 } 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 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 } 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 document.addEventListener('DOMContentLoaded', load, false);\n\n return {\n term,\n search\n };\n }\n});\n</script>"],"names":["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","document","addEventListener","querySelectorAll","scrollBar","SimpleBar","querySelector","autoHide","firstChecked","getScrollElement","scrollTo","closest","offsetTop","text","textContent","replace","_createElementBlock","_hoisted_1","_createElementVNode","type","placeholder","_ctx"],"mappings":"0IAS6BA,kBAAgB,CACzCC,KAAM,eACNC,MAAO,CACHC,SAAUC,OACVC,QAASD,QAEbE,eAAMJ,OAiCEK,EACAC,EAjCEC,EAAOC,MAAI,IAEXC,EAAS,cACPF,EAAKG,MAAMC,OAAQ,KACbC,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,UAgCXQ,SACI,kBAAMhB,EAAKG,SACX,WACID,OAIRe,SAASC,iBAAiB,oBAnCb,WACTpB,EAAQmB,SAASE,iBAAiB1B,EAAMC,SAAW,IAAMD,EAAMG,SAE/DG,EAAgBkB,SAASE,iBAAiB1B,EAAMC,SAAW,WAAaD,EAAMG,QAAU,SAMlFwB,EAAY,IAAIC,UAAUJ,SAASK,cAAc7B,EAAMC,UAJ7C,CACZ6B,UAAU,IAKRC,EAAeP,SAASK,cAAc7B,EAAMC,SAAW,iCAEzD8B,GACAJ,EAAUK,mBAAmBC,SAAS,EAAGF,EAAaG,QAAQlC,EAAMG,SAASgC,WAGjF9B,EAAMW,SAAQ,SAACb,OACPiC,EAAOjC,EAAQ0B,cAAc,YAAYQ,YAAY1B,OAEpDyB,EAAKE,QAAQ,WAAY,MAC1BF,EAAOA,EAAKE,QAAQ,WAAY,KAGpCvB,EAAKK,KAAKgB,EAAKvB,qBAW6B,GAE7C,CACHN,KAAAA,EACAE,OAAAA,eCzFG,6FAAX8B,2BAAAC,oBACIC,8BAAOC,KAAK,eAAe,sBAAuBC,YAAaC,gFAAmCA,qCAAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var e=require("vue");function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=t(require("@vueform/slider")),l=e.defineComponent({name:"price",components:{Slider:r.default},props:{min:Number,max:Number,step:Number,from:Number,to:Number,bar:Array,reset:String,hrefTemplate:String},setup:function(t){var r=e.ref([t.from,t.to]),l=e.ref(!0),n=e.computed((function(){return t.hrefTemplate.replace("#-#",Math.floor(r.value[0])+"-"+Math.ceil(r.value[1]))}));return{value:r,opacity:function(e){return 1},height:function(e){return e>0?"calc(10% + "+e+"%)":"0px"},change:function(){l.value=!1},href:n,disabled:l}}}),n={class:"shop-filters-price"},o={class:"mb-2"},a={class:"title is-6 mb-0 is-clickable","shop-filter-title":""},i=["href"],c={"shop-filter-content":""},s={class:"columns is-gapless is-vcentered"},u={class:"column"},m=["innerHTML"],d=e.createTextVNode(" — "),p=["innerHTML"],f={class:"column is-narrow"},h=["href"],v={class:"columns is-gapless is-align-items-flex-end mb-0",style:{height:"30px"}},N=["title"];l.render=function(t,r,l,V,b,g){var E=e.resolveComponent("slider");return e.openBlock(),e.createElementBlock("div",n,[e.createElementVNode("div",o,[e.createElementVNode("div",a,e.toDisplayString(t.__("shop.filter.price")),1),t.reset?(e.openBlock(),e.createElementBlock("a",{key:0,href:t.reset,class:"is-size-7"},e.toDisplayString(t.__("shop.clearFilter")),9,i)):e.createCommentVNode("v-if",!0)]),e.createElementVNode("div",c,[e.createElementVNode("div",s,[e.createElementVNode("div",u,[e.createElementVNode("span",{innerHTML:t.$filters.price(t.value[0])},null,8,m),d,e.createElementVNode("span",{innerHTML:t.$filters.price(t.value[1])},null,8,p)]),e.createElementVNode("div",f,[e.createElementVNode("a",{href:t.href,class:"button is-small"},"OK",8,h)])]),e.createElementVNode("div",v,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.bar,(function(r,l){return e.openBlock(),e.createElementBlock("div",{key:l,class:"column",style:e.normalizeStyle("width:5%;background-color:#DDD;height: "+t.height(r[0])+";opacity:"+t.opacity(l)),title:r[1]},null,12,N)})),128))]),e.createVNode(E,{modelValue:t.value,"onUpdate:modelValue":r[0]||(r[0]=function(e){return t.value=e}),min:t.min,max:t.max,step:t.step,tooltips:!1,onUpdate:t.change},null,8,["modelValue","min","max","step","onUpdate"])])])},module.exports=l;
|
|
2
|
+
//# sourceMappingURL=Price.js.map
|
|
@@ -0,0 +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":["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","style","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_hoisted_3","_ctx","_hoisted_5","_hoisted_6","_hoisted_7","innerHTML","price","_hoisted_11","_hoisted_13","item","title","_createVNode","tooltips","onUpdate"],"mappings":"gJAsD6BA,kBAAgB,CACzCC,KAAM,QACNC,WAAY,CACRC,OAAAA,WAEJC,MAAO,CACHC,IAAKC,OACLC,IAAKD,OACLE,KAAMF,OACNG,KAAMH,OACNI,GAAIJ,OACJK,IAAKC,MACLC,MAAOC,OACPC,aAAcD,QAElBE,eAAMZ,OACIa,EAAQC,MAAI,CAACd,EAAMK,KAAML,EAAMM,KAC/BS,EAAWD,OAAI,GAEfE,EAAOC,YAAS,kBACXjB,EAAMW,aAAaO,QACtB,MACAC,KAAKC,MAAMP,EAAMA,MAAM,IAAM,IAAMM,KAAKE,KAAKR,EAAMA,MAAM,cAwB1D,CACHA,MAAAA,EACAS,QAtBY,SAACC,UACC,GAsBdC,OAXW,SAACX,UACLA,EAAQ,EAAI,cAAgBA,EAAQ,KAAO,OAWlDY,OARW,WACXV,EAASF,OAAQ,GAQjBG,KAAAA,EACAD,SAAAA,eCzGG,+BACI,iBACI,mDAA+B,wCAOzC,aACU,4CACI,8EAKA,wCAKL,kDACNW,MAAA,oHAtBZC,2BAAAC,GACIC,2BAAAC,GACID,2BAAAE,oBACOC,8BAEkCA,uBAAzCL,gCAAIX,KAAMgB,cAAa,+BACnBA,kEAGRH,2BAAAI,GACIJ,2BAAAK,GACIL,2BAAAM,GACIN,6BAAMO,UAAQJ,WAASK,MAAML,yBAAqBH,6BAC9CO,UAAQJ,WAASK,MAAML,yBAG/BH,2BAAAS,GACIT,0BAAIb,KAAMgB,aAAY,mBAAkB,cAGhDH,2BAAAU,oBAIIZ,kDAC0BK,gBAAdQ,EAAMjB,wBADlBI,4BAEKJ,IAAKA,QACA,SACLG,0GAMAe,MAAOD,4BAGhBE,4BACaV,6DAAAA,YACR/B,IAAK+B,MACL7B,IAAK6B,MACL5B,KAAM4B,OACNW,UAAU,EACVC,SAAQZ"}
|