@perevorot/shop 1.1.1 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api.js +1 -1
- package/dist/api.js.map +1 -1
- package/dist/app.js +1 -1
- package/dist/app.js.map +1 -1
- package/dist/global.js +1 -1
- package/dist/global.js.map +1 -1
- package/dist/helpers.js +1 -1
- package/dist/helpers.js.map +1 -1
- package/dist/js/components/account/Account.js +1 -1
- package/dist/js/components/account/Account.js.map +1 -1
- package/dist/js/components/account/OrderItem.js +1 -1
- package/dist/js/components/account/OrderItem.js.map +1 -1
- package/dist/js/components/account/Orders.js +1 -1
- package/dist/js/components/account/Orders.js.map +1 -1
- package/dist/js/components/account/User.js +1 -1
- package/dist/js/components/account/User.js.map +1 -1
- package/dist/js/components/account/Wish.js +1 -1
- package/dist/js/components/account/Wish.js.map +1 -1
- package/dist/js/components/auth/Forget.js +1 -1
- package/dist/js/components/auth/Forget.js.map +1 -1
- package/dist/js/components/auth/Login.js +1 -1
- package/dist/js/components/auth/Login.js.map +1 -1
- package/dist/js/components/auth/Registration.js +1 -1
- package/dist/js/components/auth/Registration.js.map +1 -1
- package/dist/js/components/auth/Reset.js +1 -1
- package/dist/js/components/auth/Reset.js.map +1 -1
- package/dist/js/components/auth/User.js +1 -1
- package/dist/js/components/auth/User.js.map +1 -1
- package/dist/js/components/shop/Catalog.js +1 -1
- package/dist/js/components/shop/Catalog.js.map +1 -1
- package/dist/js/components/shop/CodeCopy.js +1 -1
- package/dist/js/components/shop/CodeCopy.js.map +1 -1
- package/dist/js/components/shop/Cross.js +1 -1
- package/dist/js/components/shop/Cross.js.map +1 -1
- package/dist/js/components/shop/FilterToggle.js +1 -1
- package/dist/js/components/shop/FilterToggle.js.map +1 -1
- package/dist/js/components/shop/Gallery.js +1 -1
- package/dist/js/components/shop/Gallery.js.map +1 -1
- package/dist/js/components/shop/Pagination.js +1 -1
- package/dist/js/components/shop/Pagination.js.map +1 -1
- package/dist/js/components/shop/PromoProducts.js +1 -1
- package/dist/js/components/shop/PromoProducts.js.map +1 -1
- package/dist/js/components/shop/Search.js +1 -1
- package/dist/js/components/shop/Search.js.map +1 -1
- package/dist/js/components/shop/bundle/Bundle.js +1 -1
- package/dist/js/components/shop/bundle/Bundle.js.map +1 -1
- package/dist/js/components/shop/bundle/BundleAdd.js +1 -1
- package/dist/js/components/shop/bundle/BundleAdd.js.map +1 -1
- package/dist/js/components/shop/cart/Cart.js +1 -1
- package/dist/js/components/shop/cart/Cart.js.map +1 -1
- package/dist/js/components/shop/cart/CartAdd.js +1 -1
- package/dist/js/components/shop/cart/CartAdd.js.map +1 -1
- package/dist/js/components/shop/cart/CartItem.js +1 -1
- package/dist/js/components/shop/cart/CartItem.js.map +1 -1
- package/dist/js/components/shop/cart/CartTrigger.js +1 -1
- package/dist/js/components/shop/cart/CartTrigger.js.map +1 -1
- package/dist/js/components/shop/cart/SuccessMessage.js +1 -1
- package/dist/js/components/shop/cart/SuccessMessage.js.map +1 -1
- package/dist/js/components/shop/compare/Compare.js +1 -1
- package/dist/js/components/shop/compare/Compare.js.map +1 -1
- package/dist/js/components/shop/compare/CompareAdd.js +1 -1
- package/dist/js/components/shop/compare/CompareAdd.js.map +1 -1
- package/dist/js/components/shop/compare/CompareDelete.js +1 -1
- package/dist/js/components/shop/compare/CompareDelete.js.map +1 -1
- package/dist/js/components/shop/compare/Comparsion.js +1 -1
- package/dist/js/components/shop/compare/Comparsion.js.map +1 -1
- package/dist/js/components/shop/compare/SuccessMessage.js +1 -1
- package/dist/js/components/shop/compare/SuccessMessage.js.map +1 -1
- package/dist/js/components/shop/filters/FilterSearch.js +1 -1
- package/dist/js/components/shop/filters/FilterSearch.js.map +1 -1
- package/dist/js/components/shop/filters/Price.js +1 -1
- package/dist/js/components/shop/filters/Price.js.map +1 -1
- package/dist/js/components/shop/order/Checkout.js +1 -1
- package/dist/js/components/shop/order/Checkout.js.map +1 -1
- package/dist/js/components/shop/order/CheckoutItem.js +1 -1
- package/dist/js/components/shop/order/CheckoutItem.js.map +1 -1
- package/dist/js/components/shop/order/OneClick.js +1 -1
- package/dist/js/components/shop/order/OneClick.js.map +1 -1
- package/dist/js/components/shop/order/shipping/CheckoutShippingCourier.js +1 -1
- package/dist/js/components/shop/order/shipping/CheckoutShippingCourier.js.map +1 -1
- package/dist/js/components/shop/order/shipping/CheckoutShippingNovaposhtaAddress.js +1 -1
- package/dist/js/components/shop/order/shipping/CheckoutShippingNovaposhtaAddress.js.map +1 -1
- package/dist/js/components/shop/order/shipping/CheckoutShippingNovaposhtaWarehouse.js +1 -1
- package/dist/js/components/shop/order/shipping/CheckoutShippingNovaposhtaWarehouse.js.map +1 -1
- package/dist/js/components/shop/order/shipping/CheckoutShippingPickup.js +1 -1
- package/dist/js/components/shop/order/shipping/CheckoutShippingPickup.js.map +1 -1
- package/dist/js/components/shop/reviews/Review.js +1 -1
- package/dist/js/components/shop/reviews/Review.js.map +1 -1
- package/dist/js/components/shop/viewed/Viewed.js +1 -1
- package/dist/js/components/shop/viewed/Viewed.js.map +1 -1
- package/dist/js/components/shop/viewed/ViewedDelete.js +1 -1
- package/dist/js/components/shop/viewed/ViewedDelete.js.map +1 -1
- package/dist/js/components/shop/viewed/Viewer.js +1 -1
- package/dist/js/components/shop/viewed/Viewer.js.map +1 -1
- package/dist/js/components/shop/wishlist/SuccessMessage.js +1 -1
- package/dist/js/components/shop/wishlist/SuccessMessage.js.map +1 -1
- package/dist/js/components/shop/wishlist/Wishlist.js +1 -1
- package/dist/js/components/shop/wishlist/Wishlist.js.map +1 -1
- package/dist/js/components/shop/wishlist/WishlistAdd.js +1 -1
- package/dist/js/components/shop/wishlist/WishlistAdd.js.map +1 -1
- package/dist/js/components/shop/wishlist/WishlistDelete.js +1 -1
- package/dist/js/components/shop/wishlist/WishlistDelete.js.map +1 -1
- package/dist/js/forms/FormCheckbox.js +1 -1
- package/dist/js/forms/FormCheckbox.js.map +1 -1
- package/dist/js/forms/FormCheckboxes.js +1 -1
- package/dist/js/forms/FormCheckboxes.js.map +1 -1
- package/dist/js/forms/FormPassword.js +1 -1
- package/dist/js/forms/FormPassword.js.map +1 -1
- package/dist/js/forms/FormRadio.js +1 -1
- package/dist/js/forms/FormRadio.js.map +1 -1
- package/dist/js/forms/FormRating.js +1 -1
- package/dist/js/forms/FormRating.js.map +1 -1
- package/dist/js/forms/FormSelect.js +1 -1
- package/dist/js/forms/FormSelect.js.map +1 -1
- package/dist/js/forms/FormSwitch.js +1 -1
- package/dist/js/forms/FormSwitch.js.map +1 -1
- package/dist/js/forms/FormText.js +1 -1
- package/dist/js/forms/FormText.js.map +1 -1
- package/dist/js/forms/FormTextarea.js +1 -1
- package/dist/js/forms/FormTextarea.js.map +1 -1
- package/dist/store.js +1 -1
- package/dist/store.js.map +1 -1
- package/dist/vuex.js +1 -1
- package/dist/vuex.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CheckoutItem.js","sources":["../../../../../src/js/components/shop/order/CheckoutItem.vue","../../../../../src/js/components/shop/order/CheckoutItem.vue?vue&type=template&id=5d2bf992&lang.js"],"sourcesContent":["<template>\n <div class=\"columns is-multiline shop-cart-item\" v-bind:class=\"{ '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 <a :href=\"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 <a :href=\"item.attributes.href\">{{ item.name }}</a>\n </div>\n </div>\n <div class=\"column is-2 has-text-centered is-relative\">\n <div class=\"quantity\">⨉ {{ item.quantity }}</div>\n <div class=\"quantity-price\" v-if=\"parseInt(item.quantity) > 1\"><span v-html=\"$filters.price(item.attributes.price)\"></span> / шт</div>\n </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 is-toggled\" v-if=\"itemOptions && itemOptions.length\">\n <div class=\"toggler\">\n <span>Дополнительные услуги, {{ itemOptions.length }}</span>\n </div>\n <div class=\"wrapper\">\n <div v-for=\"(option, index) in itemOptions\" v-bind:key=\"index\" class=\"columns is-checked\">\n <div class=\"column\">\n <div class=\"option-title\">{{ option.name }}</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 <svg class=\"bundle-icon\"><use xlink:href=\"#bundle-plus\" /></svg>\n <a :href=\"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 :href=\"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 <svg class=\"bundle-icon\"><use xlink:href=\"#bundle-plus\" /></svg>\n <a :href=\"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 :href=\"item.attributes.third.href\">{{ item.attributes.third.name }}</a>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { defineComponent, computed } from 'vue';\n\nexport default /*#__PURE__*/ defineComponent({\n name: 'CheckoutItem',\n props: {\n item: Object\n },\n setup(props) {\n const options = computed(() => props.item.attributes.options && props.item.attributes.options.length ? props.item.attributes.options : []);\n const itemOptions = computed(() => props.item.options && props.item.options.length ? props.item.options.filter(option => options.value.indexOf(option.id) !==-1) : []);\n\n return {\n itemOptions,\n };\n }\n});\n</script>","<template>\n <div class=\"columns is-multiline shop-cart-item\" v-bind:class=\"{ '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 <a :href=\"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 <a :href=\"item.attributes.href\">{{ item.name }}</a>\n </div>\n </div>\n <div class=\"column is-2 has-text-centered is-relative\">\n <div class=\"quantity\">⨉ {{ item.quantity }}</div>\n <div class=\"quantity-price\" v-if=\"parseInt(item.quantity) > 1\"><span v-html=\"$filters.price(item.attributes.price)\"></span> / шт</div>\n </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 is-toggled\" v-if=\"itemOptions && itemOptions.length\">\n <div class=\"toggler\">\n <span>Дополнительные услуги, {{ itemOptions.length }}</span>\n </div>\n <div class=\"wrapper\">\n <div v-for=\"(option, index) in itemOptions\" v-bind:key=\"index\" class=\"columns is-checked\">\n <div class=\"column\">\n <div class=\"option-title\">{{ option.name }}</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 <svg class=\"bundle-icon\"><use xlink:href=\"#bundle-plus\" /></svg>\n <a :href=\"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 :href=\"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 <svg class=\"bundle-icon\"><use xlink:href=\"#bundle-plus\" /></svg>\n <a :href=\"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 :href=\"item.attributes.third.href\">{{ item.attributes.third.name }}</a>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { defineComponent, computed } from 'vue';\n\nexport default /*#__PURE__*/ defineComponent({\n name: 'CheckoutItem',\n props: {\n item: Object\n },\n setup(props) {\n const options = computed(() => props.item.attributes.options && props.item.attributes.options.length ? props.item.attributes.options : []);\n const itemOptions = computed(() => props.item.options && props.item.options.length ? props.item.options.filter(option => options.value.indexOf(option.id) !==-1) : []);\n\n return {\n itemOptions,\n };\n }\n});\n</script>"],"names":["defineComponent","name","props","item","Object","setup","options","computed","attributes","length","itemOptions","filter","option","value","indexOf","id","class","_createElementVNode","_createElementBlock","_ctx","bundle","_hoisted_1","_hoisted_4","_hoisted_5","href","image","src","_hoisted_11","_hoisted_12","_hoisted_13","code","_hoisted_14","_hoisted_15","_hoisted_17","_hoisted_18","quantity","parseInt","_hoisted_19","innerHTML","price","_hoisted_22","priceOld","amount","percent","sum","_hoisted_26","_hoisted_27","_hoisted_28","index","key","_hoisted_29","_hoisted_30","_hoisted_31","_hoisted_34","_hoisted_35","_hoisted_36","second","_hoisted_42","_hoisted_43","_hoisted_44","third","_hoisted_46","_hoisted_47","_hoisted_48","_hoisted_54","_hoisted_55","_hoisted_56"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CheckoutItem.js","sources":["../../../../../src/js/components/shop/order/CheckoutItem.vue","../../../../../src/js/components/shop/order/CheckoutItem.vue?vue&type=template&id=5d2bf992&lang.js"],"sourcesContent":["<template>\n <div class=\"columns is-multiline shop-cart-item\" v-bind:class=\"{ '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 <a :href=\"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 <a :href=\"item.attributes.href\">{{ item.name }}</a>\n </div>\n </div>\n <div class=\"column is-2 has-text-centered is-relative\">\n <div class=\"quantity\">⨉ {{ item.quantity }}</div>\n <div class=\"quantity-price\" v-if=\"parseInt(item.quantity) > 1\"><span v-html=\"$filters.price(item.attributes.price)\"></span> / шт</div>\n </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 is-toggled\" v-if=\"itemOptions && itemOptions.length\">\n <div class=\"toggler\">\n <span>Дополнительные услуги, {{ itemOptions.length }}</span>\n </div>\n <div class=\"wrapper\">\n <div v-for=\"(option, index) in itemOptions\" v-bind:key=\"index\" class=\"columns is-checked\">\n <div class=\"column\">\n <div class=\"option-title\">{{ option.name }}</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 <svg class=\"bundle-icon\"><use xlink:href=\"#bundle-plus\" /></svg>\n <a :href=\"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 :href=\"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 <svg class=\"bundle-icon\"><use xlink:href=\"#bundle-plus\" /></svg>\n <a :href=\"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 :href=\"item.attributes.third.href\">{{ item.attributes.third.name }}</a>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { defineComponent, computed } from 'vue';\n\nexport default /*#__PURE__*/ defineComponent({\n name: 'CheckoutItem',\n props: {\n item: Object\n },\n setup(props) {\n const options = computed(() => props.item.attributes.options && props.item.attributes.options.length ? props.item.attributes.options : []);\n const itemOptions = computed(() => props.item.options && props.item.options.length ? props.item.options.filter(option => options.value.indexOf(option.id) !==-1) : []);\n\n return {\n itemOptions,\n };\n }\n});\n</script>","<template>\n <div class=\"columns is-multiline shop-cart-item\" v-bind:class=\"{ '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 <a :href=\"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 <a :href=\"item.attributes.href\">{{ item.name }}</a>\n </div>\n </div>\n <div class=\"column is-2 has-text-centered is-relative\">\n <div class=\"quantity\">⨉ {{ item.quantity }}</div>\n <div class=\"quantity-price\" v-if=\"parseInt(item.quantity) > 1\"><span v-html=\"$filters.price(item.attributes.price)\"></span> / шт</div>\n </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 is-toggled\" v-if=\"itemOptions && itemOptions.length\">\n <div class=\"toggler\">\n <span>Дополнительные услуги, {{ itemOptions.length }}</span>\n </div>\n <div class=\"wrapper\">\n <div v-for=\"(option, index) in itemOptions\" v-bind:key=\"index\" class=\"columns is-checked\">\n <div class=\"column\">\n <div class=\"option-title\">{{ option.name }}</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 <svg class=\"bundle-icon\"><use xlink:href=\"#bundle-plus\" /></svg>\n <a :href=\"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 :href=\"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 <svg class=\"bundle-icon\"><use xlink:href=\"#bundle-plus\" /></svg>\n <a :href=\"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 :href=\"item.attributes.third.href\">{{ item.attributes.third.name }}</a>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { defineComponent, computed } from 'vue';\n\nexport default /*#__PURE__*/ defineComponent({\n name: 'CheckoutItem',\n props: {\n item: Object\n },\n setup(props) {\n const options = computed(() => props.item.attributes.options && props.item.attributes.options.length ? props.item.attributes.options : []);\n const itemOptions = computed(() => props.item.options && props.item.options.length ? props.item.options.filter(option => options.value.indexOf(option.id) !==-1) : []);\n\n return {\n itemOptions,\n };\n }\n});\n</script>"],"names":["defineComponent","name","props","item","Object","setup","options","computed","attributes","length","itemOptions","filter","option","value","indexOf","id","class","_createElementVNode","_createElementBlock","_ctx","bundle","_hoisted_1","_hoisted_4","_hoisted_5","href","image","src","_hoisted_11","_hoisted_12","_hoisted_13","code","_hoisted_14","_hoisted_15","_hoisted_17","_hoisted_18","quantity","parseInt","_hoisted_19","innerHTML","price","_hoisted_22","priceOld","amount","percent","sum","_hoisted_26","_hoisted_27","_hoisted_28","index","key","_hoisted_29","_hoisted_30","_hoisted_31","_hoisted_34","_hoisted_35","_hoisted_36","second","_hoisted_42","_hoisted_43","_hoisted_44","third","_hoisted_46","_hoisted_47","_hoisted_48","_hoisted_54","_hoisted_55","_hoisted_56"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("vue"),
|
|
1
|
+
"use strict";var e=require("vue"),t=require("vuex"),r=require("formvuelate"),o=require("@formvuelate/plugin-vee-validate"),n=require("@perevorot/shop/dist/js/forms/FormText"),a=require("@perevorot/shop/dist/js/forms/FormTextarea"),l=require("yup"),i=require("vue-toastification");function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function u(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,o.get?o:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var s=c(o),d=c(n),m=c(a),p=u(l);function f(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==r)return;var o,n,a=[],l=!0,i=!1;try{for(r=r.call(e);!(l=(o=r.next()).done)&&(a.push(o.value),!t||a.length!==t);l=!0);}catch(e){i=!0,n=e}finally{try{l||null==r.return||r.return()}finally{if(i)throw n}}return a}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return v(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return v(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,o=new Array(t);r<t;r++)o[r]=e[r];return o}var h=i.useToast();e.markRaw(d.default),e.markRaw(m.default);var y=e.ref(null),b={components:{SchemaForm:r.SchemaFormFactory([s.default({})])},name:"order-one-click",props:{id:Number,className:String,callback:Function,closeAction:Function,model:Array},setup:function(o){var n,a=e.ref(!1),l=e.ref(0),i=e.ref({}),c=t.useStore(),u=e.computed((function(){return c.getters["order/modal"]})),s=e.computed((function(){return c.getters["auth/me"]})),v=e.computed((function(){return c.getters["cart/items"]})),b=e.ref(!1),g=e.inject("promoCode"),k=function(e,t){c.commit("order/modal",null),t&&o.closeAction&&o.closeAction()},_={name:{component:d.default,label:__("shop.order.oneclick.name"),store:"oneclick",model:"name"},phone:{component:d.default,label:__("shop.order.oneclick.phone"),type:"phone",placeholder:"(050) 123-45-67",mask:"(###) ###-##-##",store:"oneclick",model:"phone"}};-1!==o.model.indexOf("email")&&(_.email={component:d.default,label:__("shop.order.oneclick.email"),store:"oneclick",model:"email"}),-1!==o.model.indexOf("comment")&&(_.comment={component:m.default,label:__("shop.order.oneclick.comment"),store:"oneclick",model:"email"});var w=e.ref(_),S={name:p.string().trim().required(__("auth.validation.required")),phone:p.string().trim().required(__("auth.validation.required")).matches(/^\(\d{3}\) \d{3}\-\d{2}\-\d{2}$/,__("auth.validation.phone"))};-1!==o.model.indexOf("email")&&(S.email=p.string().trim().email(__("auth.validation.email")).required(__("auth.validation.required")));var N=p.object().shape(S),q=e.ref({});e.onMounted((function(){if(q.value={name:(s.value.last_name?s.value.last_name:"")+(s.value.name?" "+s.value.name:""),email:s.value.email?s.value.email:"",phone:s.value.phone_formatted?s.value.phone_formatted:"",id:o.id?o.id:null},o.id){var e=y.value.closest("[shop-product]"),t=e.querySelector("[shop-product-name]").textContent,r=e.querySelector("[shop-product-price]").childNodes[0].nodeValue.replace(/ /g,""),a=e.dataset.code,l=e.dataset.category,i=e.dataset.brand;n=[{name:t,id:a,price:r,brand:i,category:l,quantity:1}]}else n=[],v.value.forEach((function(e){n.push({name:e.name,id:e.code,price:e.price,category:e.category?e.category.name:"",brand:e.brand?e.brand.name:"",quantity:e.quantity})}))}));var E=e.computed((function(){var e=0;return v.value.length&&v.value.forEach((function(t){e+=(t.price_old?t.price_old:t.price_regular)*t.quantity})),e}));r.useSchemaForm(q);return{open:function(){if(b.value=!1,c.commit("order/modal","oneclick"),o.id){var e={ecommerce:{currencyCode:"UAH",add:{products:n}},event:"addToCart"};$env.debug.ecommerce&&console.log(JSON.stringify(e)),!$env.debug.ecommerce&&window.dataLayer&&(window.dataLayer.push({ecommerce:null}),window.dataLayer.push(e))}},close:k,modal:u,loading:a,key:l,errors:i,schema:w,validation:N,model:q,onSubmit:function(){a.value=!0;var e=document.querySelector(".shop-product .product-info .cart-change-quantity input");e&&(q.value.quantity=e.value);var t=Object.assign({},q.value,{promoCode:g&&g.value?g.value:null});$http.post($ziggy("api.order.oneclick"),t).then((function(e){var t=function(){o.callback?(k(),o.callback(e)):(b.value=!0,l.value++)},r={ecommerce:{purchase:{actionField:{id:e.data.id,affiliation:"forward-ua.com",revenue:o.id?n[0].price:E.value,tax:"0",shipping:"0"},products:n}},event:"purchaseOneClick",eventCallback:function(){t()}};$env.debug.ecommerce&&console.log(JSON.stringify(r)),!$env.debug.ecommerce&&window.dataLayer?(window.dataLayer.push({ecommerce:null}),window.dataLayer.push(r)):t()})).finally((function(){a.value=!1})).catch((function(e){if(e.response&&e.response.data&&e.response.data.error&&e.response.data.message&&h(e.response.data.message,{type:"error"}),e.response&&e.response.data&&e.response.data.errors){for(var t=0,r=Object.entries(e.response.data.errors);t<r.length;t++){var o=f(r[t],2),n=o[0],a=o[1];a[0]&&(i.value[n]=a[0])}l.value++}console.error(e)}))},thanks:b,button:y,promoCode:g}}},g={class:"shop-order-one-click",ref:"button"},k={class:"modal-content"},_=[e.createElementVNode("svg",{class:"icon close"},[e.createElementVNode("use",{"xlink:href":"#close"})],-1)],w={class:"box"},S={class:"title"},N={class:"field"},q=["innerHTML"],E={class:"mt-3"};b.render=function(t,r,o,n,a,l){var i=e.resolveComponent("SchemaForm");return e.openBlock(),e.createElementBlock("div",g,[e.createElementVNode("button",{class:e.normalizeClass(o.className?o.className:"button is-link is-small"),onClick:r[0]||(r[0]=function(){return n.open&&n.open.apply(n,arguments)})},e.toDisplayString(t.__("shop.order.oneclick.add")),3),e.createElementVNode("div",{class:e.normalizeClass(["modal",{"is-active":n.modal}])},[e.createElementVNode("div",{class:"modal-background",onClick:r[1]||(r[1]=function(){return n.close&&n.close.apply(n,arguments)})}),e.createElementVNode("div",k,[e.createElementVNode("button",{class:"modal-close is-large",onClick:r[2]||(r[2]=function(){return n.close&&n.close.apply(n,arguments)})},_),e.createElementVNode("div",w,[e.createElementVNode("div",S,e.toDisplayString(t.__("shop.order.oneclick.title")),1),e.withDirectives(e.createElementVNode("div",null,[e.createVNode(i,{schemaRowClasses:"field",schema:n.schema,"validation-schema":n.validation,"initial-errors":n.errors,key:n.key,onSubmit:n.onSubmit},{afterForm:e.withCtx((function(){return[e.createElementVNode("div",N,[e.createElementVNode("button",{class:e.normalizeClass(["button is-link",{"is-loading":n.loading}]),type:"submit"},e.toDisplayString(t.__("shop.order.oneclick.submit")),3)])]})),_:1},8,["schema","validation-schema","initial-errors","onSubmit"])],512),[[e.vShow,!n.thanks]]),e.withDirectives(e.createElementVNode("div",null,[e.createElementVNode("div",{innerHTML:t.__("shop.order.oneclick.thanks")},null,8,q),e.createElementVNode("div",E,[e.createElementVNode("button",{class:"button",onClick:r[3]||(r[3]=function(e){return n.close(e,!0)})},e.toDisplayString(t.__("shop.order.oneclick.continue")),1)])],512),[[e.vShow,n.thanks]])])])],2)],512)},module.exports=b;
|
|
2
2
|
//# sourceMappingURL=OneClick.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OneClick.js","sources":["../../../../../src/js/components/shop/order/OneClick.vue","../../../../../src/js/components/shop/order/OneClick.vue?vue&type=template&id=39ce3f96&lang.js"],"sourcesContent":["<template>\n <div class=\"shop-order-one-click\" ref=\"button\">\n <button v-bind:class=\"className ? className : 'button is-link is-small'\" @click=\"open\">\n {{ __('shop.order.oneclick.add') }}\n </button>\n <div class=\"modal\" 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=\"title\">\n {{ __('shop.order.oneclick.title') }}\n </div>\n <div v-show=\"!thanks\">\n <SchemaForm schemaRowClasses=\"field\" :schema=\"schema\" :validation-schema=\"validation\" :initial-errors=\"errors\" :key=\"key\" @submit=\"onSubmit\">\n <template #afterForm>\n <div class=\"field\">\n <button class=\"button is-link\" type=\"submit\" v-bind:class=\"{\n 'is-loading': loading\n }\">\n {{ __('shop.order.oneclick.submit') }}\n </button>\n </div>\n </template>\n </SchemaForm>\n </div>\n <div v-show=\"thanks\">\n <div v-html=\"__('shop.order.oneclick.thanks')\"></div>\n <div class=\"mt-3\">\n <button class=\"button\" @click=\"close($event, true)\">\n {{ __('shop.order.oneclick.continue') }}\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, computed, markRaw, onMounted, inject } from 'vue';\nimport { useStore } from 'vuex';\nimport { SchemaFormFactory, useSchemaForm } from 'formvuelate';\nimport VeeValidatePlugin from '@formvuelate/plugin-vee-validate';\nimport FormText from '@perevorot/shop/dist/js/forms/FormText';\nimport FormTextarea from '@perevorot/shop/dist/js/forms/FormTextarea';\nimport * as yup from 'yup';\nimport { useToast } from 'vue-toastification';\n\nconst toast = useToast();\n\nmarkRaw(FormText);\nmarkRaw(FormTextarea);\n\nconst button = ref(null);\n\nconst SchemaForm = SchemaFormFactory([VeeValidatePlugin({})]);\n\nexport default {\n components: {\n SchemaForm\n },\n name: 'order-one-click',\n props: {\n id: Number,\n className: String,\n callback: Function,\n closeAction: Function,\n model: Array\n },\n setup(props) {\n const loading = ref(false);\n const key = ref(0);\n const errors = ref({});\n const store = useStore();\n const modal = computed(() => store.getters['order/modal']);\n const user = computed(() => store.getters['auth/me']);\n const items = computed(() => store.getters['cart/items']);\n const thanks = ref(false);\n const promoCode = inject('promoCode');\n\n let productsEcommerce;\n\n const open = () => {\n thanks.value = false;\n store.commit('order/modal', 'oneclick');\n\n if (props.id) {\n const object = {\n ecommerce: {\n currencyCode: 'UAH',\n add: {\n products: productsEcommerce\n }\n },\n event: 'addToCart'\n };\n\n if ($env.debug.ecommerce) {\n console.log(JSON.stringify(object));\n }\n\n if (!$env.debug.ecommerce && window.dataLayer) {\n window.dataLayer.push({\n ecommerce: null\n });\n\n window.dataLayer.push(object);\n }\n }\n };\n\n const close = (e, fromButton) => {\n store.commit('order/modal', null);\n\n if (fromButton && props.closeAction) {\n props.closeAction();\n }\n };\n\n let schemaObject = {\n name: {\n component: FormText,\n label: __('shop.order.oneclick.name'),\n store: 'oneclick',\n model: 'name'\n },\n phone: {\n component: FormText,\n label: __('shop.order.oneclick.phone'),\n type: 'phone',\n placeholder: '(050) 123-45-67',\n mask: '(###) ###-##-##',\n store: 'oneclick',\n model: 'phone'\n }\n };\n\n if (props.model.indexOf('email') !== -1) {\n schemaObject.email = {\n component: FormText,\n label: __('shop.order.oneclick.email'),\n store: 'oneclick',\n model: 'email'\n };\n }\n\n if (props.model.indexOf('comment') !== -1) {\n schemaObject.comment = {\n component: FormTextarea,\n label: __('shop.order.oneclick.comment'),\n store: 'oneclick',\n model: 'email'\n };\n }\n\n const schema = ref(schemaObject);\n\n const phoneRegExp = /^\\(\\d{3}\\) \\d{3}\\-\\d{2}\\-\\d{2}$/;\n\n let validationObject = {\n name: yup.string().trim().required(__('auth.validation.required')),\n phone: yup.string().trim().required(__('auth.validation.required')).matches(phoneRegExp, __('auth.validation.phone'))\n };\n\n if (props.model.indexOf('email') !== -1) {\n validationObject.email = yup.string().trim().email(__('auth.validation.email')).required(__('auth.validation.required'));\n }\n\n const validation = yup.object().shape(validationObject);\n\n const model = ref({});\n\n onMounted(() => {\n model.value = {\n name: (user.value.last_name ? user.value.last_name : '') + (user.value.name ? ' ' + user.value.name : ''),\n email: user.value.email ? user.value.email : '',\n phone: user.value.phone_formatted ? user.value.phone_formatted : '',\n id: props.id ? props.id : null,\n };\n\n if (props.id) {\n const product = button.value.closest('[shop-product]');\n const name = product.querySelector('[shop-product-name]').textContent;\n const price = product.querySelector('[shop-product-price]').childNodes[0].nodeValue.replace(/ /g, '');\n const code = product.dataset.code;\n const category = product.dataset.category;\n const brand = product.dataset.brand;\n\n productsEcommerce = [{\n name: name,\n id: code,\n price: price,\n brand: brand,\n category: category,\n quantity: 1\n }];\n } else {\n productsEcommerce = [];\n\n items.value.forEach((item) => {\n productsEcommerce.push({\n name: item.name,\n id: item.code,\n price: item.price,\n category: item.category ? item.category.name : '',\n brand: item.brand ? item.brand.name : '',\n quantity: item.quantity\n });\n });\n }\n });\n\n const total = computed(() => {\n let total = 0;\n\n if (items.value.length) {\n items.value.forEach((item) => {\n total += (item.price_old ? item.price_old : item.price_regular) * item.quantity;\n });\n }\n\n return total;\n });\n\n useSchemaForm(model);\n\n const onSubmit = () => {\n loading.value = true;\n\n const quantityInput = document.querySelector('.shop-product .product-info .cart-change-quantity input');\n\n if (quantityInput) {\n model.value.quantity = quantityInput.value;\n }\n\n const data = {\n ...model.value,\n promoCode: promoCode && promoCode.value ? promoCode.value : null\n };\n\n $http\n .post($ziggy('api.order.oneclick'), data)\n .then((response) => {\n const finishAction = () => {\n if (props.callback) {\n close();\n props.callback(response);\n } else {\n thanks.value = true;\n\n key.value++;\n }\n }\n\n const object = {\n ecommerce: {\n purchase: {\n actionField: {\n id: response.data.id,\n affiliation: 'forward-ua.com',\n revenue: props.id ? productsEcommerce[0].price : total.value,\n tax: '0',\n shipping: '0'\n },\n products: productsEcommerce\n }\n },\n event: 'purchaseOneClick',\n eventCallback: function () {\n finishAction();\n }\n };\n\n if ($env.debug.ecommerce) {\n console.log(JSON.stringify(object));\n }\n\n if (!$env.debug.ecommerce && window.dataLayer) {\n window.dataLayer.push({\n ecommerce: null\n });\n\n window.dataLayer.push(object);\n } else {\n finishAction();\n }\n })\n .finally(() => {\n loading.value = false;\n })\n .catch((error) => {\n if (error.response && error.response.data && error.response.data.error && error.response.data.message) {\n toast(error.response.data.message, {\n type: 'error'\n });\n }\n\n if (error.response && error.response.data && error.response.data.errors) {\n for (const [field, messages] of Object.entries(error.response.data.errors)) {\n if (messages[0]) {\n errors.value[field] = messages[0];\n }\n }\n\n key.value++;\n }\n\n console.error(error);\n });\n };\n\n return {\n open,\n close,\n modal,\n loading,\n key,\n errors,\n schema,\n validation,\n model,\n onSubmit,\n thanks,\n button,\n promoCode\n };\n }\n};\n</script>","<template>\n <div class=\"shop-order-one-click\" ref=\"button\">\n <button v-bind:class=\"className ? className : 'button is-link is-small'\" @click=\"open\">\n {{ __('shop.order.oneclick.add') }}\n </button>\n <div class=\"modal\" 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=\"title\">\n {{ __('shop.order.oneclick.title') }}\n </div>\n <div v-show=\"!thanks\">\n <SchemaForm schemaRowClasses=\"field\" :schema=\"schema\" :validation-schema=\"validation\" :initial-errors=\"errors\" :key=\"key\" @submit=\"onSubmit\">\n <template #afterForm>\n <div class=\"field\">\n <button class=\"button is-link\" type=\"submit\" v-bind:class=\"{\n 'is-loading': loading\n }\">\n {{ __('shop.order.oneclick.submit') }}\n </button>\n </div>\n </template>\n </SchemaForm>\n </div>\n <div v-show=\"thanks\">\n <div v-html=\"__('shop.order.oneclick.thanks')\"></div>\n <div class=\"mt-3\">\n <button class=\"button\" @click=\"close($event, true)\">\n {{ __('shop.order.oneclick.continue') }}\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, computed, markRaw, onMounted, inject } from 'vue';\nimport { useStore } from 'vuex';\nimport { SchemaFormFactory, useSchemaForm } from 'formvuelate';\nimport VeeValidatePlugin from '@formvuelate/plugin-vee-validate';\nimport FormText from '@perevorot/shop/dist/js/forms/FormText';\nimport FormTextarea from '@perevorot/shop/dist/js/forms/FormTextarea';\nimport * as yup from 'yup';\nimport { useToast } from 'vue-toastification';\n\nconst toast = useToast();\n\nmarkRaw(FormText);\nmarkRaw(FormTextarea);\n\nconst button = ref(null);\n\nconst SchemaForm = SchemaFormFactory([VeeValidatePlugin({})]);\n\nexport default {\n components: {\n SchemaForm\n },\n name: 'order-one-click',\n props: {\n id: Number,\n className: String,\n callback: Function,\n closeAction: Function,\n model: Array\n },\n setup(props) {\n const loading = ref(false);\n const key = ref(0);\n const errors = ref({});\n const store = useStore();\n const modal = computed(() => store.getters['order/modal']);\n const user = computed(() => store.getters['auth/me']);\n const items = computed(() => store.getters['cart/items']);\n const thanks = ref(false);\n const promoCode = inject('promoCode');\n\n let productsEcommerce;\n\n const open = () => {\n thanks.value = false;\n store.commit('order/modal', 'oneclick');\n\n if (props.id) {\n const object = {\n ecommerce: {\n currencyCode: 'UAH',\n add: {\n products: productsEcommerce\n }\n },\n event: 'addToCart'\n };\n\n if ($env.debug.ecommerce) {\n console.log(JSON.stringify(object));\n }\n\n if (!$env.debug.ecommerce && window.dataLayer) {\n window.dataLayer.push({\n ecommerce: null\n });\n\n window.dataLayer.push(object);\n }\n }\n };\n\n const close = (e, fromButton) => {\n store.commit('order/modal', null);\n\n if (fromButton && props.closeAction) {\n props.closeAction();\n }\n };\n\n let schemaObject = {\n name: {\n component: FormText,\n label: __('shop.order.oneclick.name'),\n store: 'oneclick',\n model: 'name'\n },\n phone: {\n component: FormText,\n label: __('shop.order.oneclick.phone'),\n type: 'phone',\n placeholder: '(050) 123-45-67',\n mask: '(###) ###-##-##',\n store: 'oneclick',\n model: 'phone'\n }\n };\n\n if (props.model.indexOf('email') !== -1) {\n schemaObject.email = {\n component: FormText,\n label: __('shop.order.oneclick.email'),\n store: 'oneclick',\n model: 'email'\n };\n }\n\n if (props.model.indexOf('comment') !== -1) {\n schemaObject.comment = {\n component: FormTextarea,\n label: __('shop.order.oneclick.comment'),\n store: 'oneclick',\n model: 'email'\n };\n }\n\n const schema = ref(schemaObject);\n\n const phoneRegExp = /^\\(\\d{3}\\) \\d{3}\\-\\d{2}\\-\\d{2}$/;\n\n let validationObject = {\n name: yup.string().trim().required(__('auth.validation.required')),\n phone: yup.string().trim().required(__('auth.validation.required')).matches(phoneRegExp, __('auth.validation.phone'))\n };\n\n if (props.model.indexOf('email') !== -1) {\n validationObject.email = yup.string().trim().email(__('auth.validation.email')).required(__('auth.validation.required'));\n }\n\n const validation = yup.object().shape(validationObject);\n\n const model = ref({});\n\n onMounted(() => {\n model.value = {\n name: (user.value.last_name ? user.value.last_name : '') + (user.value.name ? ' ' + user.value.name : ''),\n email: user.value.email ? user.value.email : '',\n phone: user.value.phone_formatted ? user.value.phone_formatted : '',\n id: props.id ? props.id : null,\n };\n\n if (props.id) {\n const product = button.value.closest('[shop-product]');\n const name = product.querySelector('[shop-product-name]').textContent;\n const price = product.querySelector('[shop-product-price]').childNodes[0].nodeValue.replace(/ /g, '');\n const code = product.dataset.code;\n const category = product.dataset.category;\n const brand = product.dataset.brand;\n\n productsEcommerce = [{\n name: name,\n id: code,\n price: price,\n brand: brand,\n category: category,\n quantity: 1\n }];\n } else {\n productsEcommerce = [];\n\n items.value.forEach((item) => {\n productsEcommerce.push({\n name: item.name,\n id: item.code,\n price: item.price,\n category: item.category ? item.category.name : '',\n brand: item.brand ? item.brand.name : '',\n quantity: item.quantity\n });\n });\n }\n });\n\n const total = computed(() => {\n let total = 0;\n\n if (items.value.length) {\n items.value.forEach((item) => {\n total += (item.price_old ? item.price_old : item.price_regular) * item.quantity;\n });\n }\n\n return total;\n });\n\n useSchemaForm(model);\n\n const onSubmit = () => {\n loading.value = true;\n\n const quantityInput = document.querySelector('.shop-product .product-info .cart-change-quantity input');\n\n if (quantityInput) {\n model.value.quantity = quantityInput.value;\n }\n\n const data = {\n ...model.value,\n promoCode: promoCode && promoCode.value ? promoCode.value : null\n };\n\n $http\n .post($ziggy('api.order.oneclick'), data)\n .then((response) => {\n const finishAction = () => {\n if (props.callback) {\n close();\n props.callback(response);\n } else {\n thanks.value = true;\n\n key.value++;\n }\n }\n\n const object = {\n ecommerce: {\n purchase: {\n actionField: {\n id: response.data.id,\n affiliation: 'forward-ua.com',\n revenue: props.id ? productsEcommerce[0].price : total.value,\n tax: '0',\n shipping: '0'\n },\n products: productsEcommerce\n }\n },\n event: 'purchaseOneClick',\n eventCallback: function () {\n finishAction();\n }\n };\n\n if ($env.debug.ecommerce) {\n console.log(JSON.stringify(object));\n }\n\n if (!$env.debug.ecommerce && window.dataLayer) {\n window.dataLayer.push({\n ecommerce: null\n });\n\n window.dataLayer.push(object);\n } else {\n finishAction();\n }\n })\n .finally(() => {\n loading.value = false;\n })\n .catch((error) => {\n if (error.response && error.response.data && error.response.data.error && error.response.data.message) {\n toast(error.response.data.message, {\n type: 'error'\n });\n }\n\n if (error.response && error.response.data && error.response.data.errors) {\n for (const [field, messages] of Object.entries(error.response.data.errors)) {\n if (messages[0]) {\n errors.value[field] = messages[0];\n }\n }\n\n key.value++;\n }\n\n console.error(error);\n });\n };\n\n return {\n open,\n close,\n modal,\n loading,\n key,\n errors,\n schema,\n validation,\n model,\n onSubmit,\n thanks,\n button,\n promoCode\n };\n }\n};\n</script>"],"names":["toast","useToast","markRaw","FormText","FormTextarea","button","ref","components","SchemaForm","SchemaFormFactory","VeeValidatePlugin","name","props","id","Number","className","String","callback","Function","closeAction","model","Array","setup","productsEcommerce","loading","key","errors","store","useStore","modal","computed","getters","user","items","thanks","promoCode","inject","close","e","fromButton","commit","schemaObject","component","label","__","phone","type","placeholder","mask","indexOf","email","comment","schema","validationObject","yup","string","trim","required","matches","validation","object","shape","onMounted","value","last_name","phone_formatted","product","closest","querySelector","textContent","price","childNodes","nodeValue","replace","code","dataset","category","brand","quantity","forEach","item","push","total","length","price_old","price_regular","useSchemaForm","open","ecommerce","currencyCode","add","products","event","$env","debug","console","log","JSON","stringify","window","dataLayer","onSubmit","quantityInput","document","data","$http","post","$ziggy","then","response","finishAction","purchase","actionField","affiliation","revenue","tax","shipping","eventCallback","finally","catch","error","message","field","messages","Object","entries","class","_createElementVNode","_createElementBlock","_hoisted_1","$props","onClick","$setup","_ctx","_hoisted_2","_hoisted_5","_hoisted_6","_createVNode","schemaRowClasses","afterForm","_hoisted_7","innerHTML","_hoisted_9","$event"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"OneClick.js","sources":["../../../../../src/js/components/shop/order/OneClick.vue","../../../../../src/js/components/shop/order/OneClick.vue?vue&type=template&id=39ce3f96&lang.js"],"sourcesContent":["<template>\n <div class=\"shop-order-one-click\" ref=\"button\">\n <button v-bind:class=\"className ? className : 'button is-link is-small'\" @click=\"open\">\n {{ __('shop.order.oneclick.add') }}\n </button>\n <div class=\"modal\" 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=\"title\">\n {{ __('shop.order.oneclick.title') }}\n </div>\n <div v-show=\"!thanks\">\n <SchemaForm schemaRowClasses=\"field\" :schema=\"schema\" :validation-schema=\"validation\" :initial-errors=\"errors\" :key=\"key\" @submit=\"onSubmit\">\n <template #afterForm>\n <div class=\"field\">\n <button class=\"button is-link\" type=\"submit\" v-bind:class=\"{\n 'is-loading': loading\n }\">\n {{ __('shop.order.oneclick.submit') }}\n </button>\n </div>\n </template>\n </SchemaForm>\n </div>\n <div v-show=\"thanks\">\n <div v-html=\"__('shop.order.oneclick.thanks')\"></div>\n <div class=\"mt-3\">\n <button class=\"button\" @click=\"close($event, true)\">\n {{ __('shop.order.oneclick.continue') }}\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, computed, markRaw, onMounted, inject } from 'vue';\nimport { useStore } from 'vuex';\nimport { SchemaFormFactory, useSchemaForm } from 'formvuelate';\nimport VeeValidatePlugin from '@formvuelate/plugin-vee-validate';\nimport FormText from '@perevorot/shop/dist/js/forms/FormText';\nimport FormTextarea from '@perevorot/shop/dist/js/forms/FormTextarea';\nimport * as yup from 'yup';\nimport { useToast } from 'vue-toastification';\n\nconst toast = useToast();\n\nmarkRaw(FormText);\nmarkRaw(FormTextarea);\n\nconst button = ref(null);\n\nconst SchemaForm = SchemaFormFactory([VeeValidatePlugin({})]);\n\nexport default {\n components: {\n SchemaForm\n },\n name: 'order-one-click',\n props: {\n id: Number,\n className: String,\n callback: Function,\n closeAction: Function,\n model: Array\n },\n setup(props) {\n const loading = ref(false);\n const key = ref(0);\n const errors = ref({});\n const store = useStore();\n const modal = computed(() => store.getters['order/modal']);\n const user = computed(() => store.getters['auth/me']);\n const items = computed(() => store.getters['cart/items']);\n const thanks = ref(false);\n const promoCode = inject('promoCode');\n\n let productsEcommerce;\n\n const open = () => {\n thanks.value = false;\n store.commit('order/modal', 'oneclick');\n\n if (props.id) {\n const object = {\n ecommerce: {\n currencyCode: 'UAH',\n add: {\n products: productsEcommerce\n }\n },\n event: 'addToCart'\n };\n\n if ($env.debug.ecommerce) {\n console.log(JSON.stringify(object));\n }\n\n if (!$env.debug.ecommerce && window.dataLayer) {\n window.dataLayer.push({\n ecommerce: null\n });\n\n window.dataLayer.push(object);\n }\n }\n };\n\n const close = (e, fromButton) => {\n store.commit('order/modal', null);\n\n if (fromButton && props.closeAction) {\n props.closeAction();\n }\n };\n\n let schemaObject = {\n name: {\n component: FormText,\n label: __('shop.order.oneclick.name'),\n store: 'oneclick',\n model: 'name'\n },\n phone: {\n component: FormText,\n label: __('shop.order.oneclick.phone'),\n type: 'phone',\n placeholder: '(050) 123-45-67',\n mask: '(###) ###-##-##',\n store: 'oneclick',\n model: 'phone'\n }\n };\n\n if (props.model.indexOf('email') !== -1) {\n schemaObject.email = {\n component: FormText,\n label: __('shop.order.oneclick.email'),\n store: 'oneclick',\n model: 'email'\n };\n }\n\n if (props.model.indexOf('comment') !== -1) {\n schemaObject.comment = {\n component: FormTextarea,\n label: __('shop.order.oneclick.comment'),\n store: 'oneclick',\n model: 'email'\n };\n }\n\n const schema = ref(schemaObject);\n\n const phoneRegExp = /^\\(\\d{3}\\) \\d{3}\\-\\d{2}\\-\\d{2}$/;\n\n let validationObject = {\n name: yup.string().trim().required(__('auth.validation.required')),\n phone: yup.string().trim().required(__('auth.validation.required')).matches(phoneRegExp, __('auth.validation.phone'))\n };\n\n if (props.model.indexOf('email') !== -1) {\n validationObject.email = yup.string().trim().email(__('auth.validation.email')).required(__('auth.validation.required'));\n }\n\n const validation = yup.object().shape(validationObject);\n\n const model = ref({});\n\n onMounted(() => {\n model.value = {\n name: (user.value.last_name ? user.value.last_name : '') + (user.value.name ? ' ' + user.value.name : ''),\n email: user.value.email ? user.value.email : '',\n phone: user.value.phone_formatted ? user.value.phone_formatted : '',\n id: props.id ? props.id : null,\n };\n\n if (props.id) {\n const product = button.value.closest('[shop-product]');\n const name = product.querySelector('[shop-product-name]').textContent;\n const price = product.querySelector('[shop-product-price]').childNodes[0].nodeValue.replace(/ /g, '');\n const code = product.dataset.code;\n const category = product.dataset.category;\n const brand = product.dataset.brand;\n\n productsEcommerce = [{\n name: name,\n id: code,\n price: price,\n brand: brand,\n category: category,\n quantity: 1\n }];\n } else {\n productsEcommerce = [];\n\n items.value.forEach((item) => {\n productsEcommerce.push({\n name: item.name,\n id: item.code,\n price: item.price,\n category: item.category ? item.category.name : '',\n brand: item.brand ? item.brand.name : '',\n quantity: item.quantity\n });\n });\n }\n });\n\n const total = computed(() => {\n let total = 0;\n\n if (items.value.length) {\n items.value.forEach((item) => {\n total += (item.price_old ? item.price_old : item.price_regular) * item.quantity;\n });\n }\n\n return total;\n });\n\n useSchemaForm(model);\n\n const onSubmit = () => {\n loading.value = true;\n\n const quantityInput = document.querySelector('.shop-product .product-info .cart-change-quantity input');\n\n if (quantityInput) {\n model.value.quantity = quantityInput.value;\n }\n\n const data = {\n ...model.value,\n promoCode: promoCode && promoCode.value ? promoCode.value : null\n };\n\n $http\n .post($ziggy('api.order.oneclick'), data)\n .then((response) => {\n const finishAction = () => {\n if (props.callback) {\n close();\n props.callback(response);\n } else {\n thanks.value = true;\n\n key.value++;\n }\n }\n\n const object = {\n ecommerce: {\n purchase: {\n actionField: {\n id: response.data.id,\n affiliation: 'forward-ua.com',\n revenue: props.id ? productsEcommerce[0].price : total.value,\n tax: '0',\n shipping: '0'\n },\n products: productsEcommerce\n }\n },\n event: 'purchaseOneClick',\n eventCallback: function () {\n finishAction();\n }\n };\n\n if ($env.debug.ecommerce) {\n console.log(JSON.stringify(object));\n }\n\n if (!$env.debug.ecommerce && window.dataLayer) {\n window.dataLayer.push({\n ecommerce: null\n });\n\n window.dataLayer.push(object);\n } else {\n finishAction();\n }\n })\n .finally(() => {\n loading.value = false;\n })\n .catch((error) => {\n if (error.response && error.response.data && error.response.data.error && error.response.data.message) {\n toast(error.response.data.message, {\n type: 'error'\n });\n }\n\n if (error.response && error.response.data && error.response.data.errors) {\n for (const [field, messages] of Object.entries(error.response.data.errors)) {\n if (messages[0]) {\n errors.value[field] = messages[0];\n }\n }\n\n key.value++;\n }\n\n console.error(error);\n });\n };\n\n return {\n open,\n close,\n modal,\n loading,\n key,\n errors,\n schema,\n validation,\n model,\n onSubmit,\n thanks,\n button,\n promoCode\n };\n }\n};\n</script>","<template>\n <div class=\"shop-order-one-click\" ref=\"button\">\n <button v-bind:class=\"className ? className : 'button is-link is-small'\" @click=\"open\">\n {{ __('shop.order.oneclick.add') }}\n </button>\n <div class=\"modal\" 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=\"title\">\n {{ __('shop.order.oneclick.title') }}\n </div>\n <div v-show=\"!thanks\">\n <SchemaForm schemaRowClasses=\"field\" :schema=\"schema\" :validation-schema=\"validation\" :initial-errors=\"errors\" :key=\"key\" @submit=\"onSubmit\">\n <template #afterForm>\n <div class=\"field\">\n <button class=\"button is-link\" type=\"submit\" v-bind:class=\"{\n 'is-loading': loading\n }\">\n {{ __('shop.order.oneclick.submit') }}\n </button>\n </div>\n </template>\n </SchemaForm>\n </div>\n <div v-show=\"thanks\">\n <div v-html=\"__('shop.order.oneclick.thanks')\"></div>\n <div class=\"mt-3\">\n <button class=\"button\" @click=\"close($event, true)\">\n {{ __('shop.order.oneclick.continue') }}\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, computed, markRaw, onMounted, inject } from 'vue';\nimport { useStore } from 'vuex';\nimport { SchemaFormFactory, useSchemaForm } from 'formvuelate';\nimport VeeValidatePlugin from '@formvuelate/plugin-vee-validate';\nimport FormText from '@perevorot/shop/dist/js/forms/FormText';\nimport FormTextarea from '@perevorot/shop/dist/js/forms/FormTextarea';\nimport * as yup from 'yup';\nimport { useToast } from 'vue-toastification';\n\nconst toast = useToast();\n\nmarkRaw(FormText);\nmarkRaw(FormTextarea);\n\nconst button = ref(null);\n\nconst SchemaForm = SchemaFormFactory([VeeValidatePlugin({})]);\n\nexport default {\n components: {\n SchemaForm\n },\n name: 'order-one-click',\n props: {\n id: Number,\n className: String,\n callback: Function,\n closeAction: Function,\n model: Array\n },\n setup(props) {\n const loading = ref(false);\n const key = ref(0);\n const errors = ref({});\n const store = useStore();\n const modal = computed(() => store.getters['order/modal']);\n const user = computed(() => store.getters['auth/me']);\n const items = computed(() => store.getters['cart/items']);\n const thanks = ref(false);\n const promoCode = inject('promoCode');\n\n let productsEcommerce;\n\n const open = () => {\n thanks.value = false;\n store.commit('order/modal', 'oneclick');\n\n if (props.id) {\n const object = {\n ecommerce: {\n currencyCode: 'UAH',\n add: {\n products: productsEcommerce\n }\n },\n event: 'addToCart'\n };\n\n if ($env.debug.ecommerce) {\n console.log(JSON.stringify(object));\n }\n\n if (!$env.debug.ecommerce && window.dataLayer) {\n window.dataLayer.push({\n ecommerce: null\n });\n\n window.dataLayer.push(object);\n }\n }\n };\n\n const close = (e, fromButton) => {\n store.commit('order/modal', null);\n\n if (fromButton && props.closeAction) {\n props.closeAction();\n }\n };\n\n let schemaObject = {\n name: {\n component: FormText,\n label: __('shop.order.oneclick.name'),\n store: 'oneclick',\n model: 'name'\n },\n phone: {\n component: FormText,\n label: __('shop.order.oneclick.phone'),\n type: 'phone',\n placeholder: '(050) 123-45-67',\n mask: '(###) ###-##-##',\n store: 'oneclick',\n model: 'phone'\n }\n };\n\n if (props.model.indexOf('email') !== -1) {\n schemaObject.email = {\n component: FormText,\n label: __('shop.order.oneclick.email'),\n store: 'oneclick',\n model: 'email'\n };\n }\n\n if (props.model.indexOf('comment') !== -1) {\n schemaObject.comment = {\n component: FormTextarea,\n label: __('shop.order.oneclick.comment'),\n store: 'oneclick',\n model: 'email'\n };\n }\n\n const schema = ref(schemaObject);\n\n const phoneRegExp = /^\\(\\d{3}\\) \\d{3}\\-\\d{2}\\-\\d{2}$/;\n\n let validationObject = {\n name: yup.string().trim().required(__('auth.validation.required')),\n phone: yup.string().trim().required(__('auth.validation.required')).matches(phoneRegExp, __('auth.validation.phone'))\n };\n\n if (props.model.indexOf('email') !== -1) {\n validationObject.email = yup.string().trim().email(__('auth.validation.email')).required(__('auth.validation.required'));\n }\n\n const validation = yup.object().shape(validationObject);\n\n const model = ref({});\n\n onMounted(() => {\n model.value = {\n name: (user.value.last_name ? user.value.last_name : '') + (user.value.name ? ' ' + user.value.name : ''),\n email: user.value.email ? user.value.email : '',\n phone: user.value.phone_formatted ? user.value.phone_formatted : '',\n id: props.id ? props.id : null,\n };\n\n if (props.id) {\n const product = button.value.closest('[shop-product]');\n const name = product.querySelector('[shop-product-name]').textContent;\n const price = product.querySelector('[shop-product-price]').childNodes[0].nodeValue.replace(/ /g, '');\n const code = product.dataset.code;\n const category = product.dataset.category;\n const brand = product.dataset.brand;\n\n productsEcommerce = [{\n name: name,\n id: code,\n price: price,\n brand: brand,\n category: category,\n quantity: 1\n }];\n } else {\n productsEcommerce = [];\n\n items.value.forEach((item) => {\n productsEcommerce.push({\n name: item.name,\n id: item.code,\n price: item.price,\n category: item.category ? item.category.name : '',\n brand: item.brand ? item.brand.name : '',\n quantity: item.quantity\n });\n });\n }\n });\n\n const total = computed(() => {\n let total = 0;\n\n if (items.value.length) {\n items.value.forEach((item) => {\n total += (item.price_old ? item.price_old : item.price_regular) * item.quantity;\n });\n }\n\n return total;\n });\n\n useSchemaForm(model);\n\n const onSubmit = () => {\n loading.value = true;\n\n const quantityInput = document.querySelector('.shop-product .product-info .cart-change-quantity input');\n\n if (quantityInput) {\n model.value.quantity = quantityInput.value;\n }\n\n const data = {\n ...model.value,\n promoCode: promoCode && promoCode.value ? promoCode.value : null\n };\n\n $http\n .post($ziggy('api.order.oneclick'), data)\n .then((response) => {\n const finishAction = () => {\n if (props.callback) {\n close();\n props.callback(response);\n } else {\n thanks.value = true;\n\n key.value++;\n }\n }\n\n const object = {\n ecommerce: {\n purchase: {\n actionField: {\n id: response.data.id,\n affiliation: 'forward-ua.com',\n revenue: props.id ? productsEcommerce[0].price : total.value,\n tax: '0',\n shipping: '0'\n },\n products: productsEcommerce\n }\n },\n event: 'purchaseOneClick',\n eventCallback: function () {\n finishAction();\n }\n };\n\n if ($env.debug.ecommerce) {\n console.log(JSON.stringify(object));\n }\n\n if (!$env.debug.ecommerce && window.dataLayer) {\n window.dataLayer.push({\n ecommerce: null\n });\n\n window.dataLayer.push(object);\n } else {\n finishAction();\n }\n })\n .finally(() => {\n loading.value = false;\n })\n .catch((error) => {\n if (error.response && error.response.data && error.response.data.error && error.response.data.message) {\n toast(error.response.data.message, {\n type: 'error'\n });\n }\n\n if (error.response && error.response.data && error.response.data.errors) {\n for (const [field, messages] of Object.entries(error.response.data.errors)) {\n if (messages[0]) {\n errors.value[field] = messages[0];\n }\n }\n\n key.value++;\n }\n\n console.error(error);\n });\n };\n\n return {\n open,\n close,\n modal,\n loading,\n key,\n errors,\n schema,\n validation,\n model,\n onSubmit,\n thanks,\n button,\n promoCode\n };\n }\n};\n</script>"],"names":["toast","useToast","markRaw","FormText","FormTextarea","button","ref","components","SchemaForm","SchemaFormFactory","VeeValidatePlugin","name","props","id","Number","className","String","callback","Function","closeAction","model","Array","setup","productsEcommerce","loading","key","errors","store","useStore","modal","computed","getters","user","items","thanks","promoCode","inject","close","e","fromButton","commit","schemaObject","component","label","__","phone","type","placeholder","mask","indexOf","email","comment","schema","validationObject","yup","string","trim","required","matches","validation","object","shape","onMounted","value","last_name","phone_formatted","product","closest","querySelector","textContent","price","childNodes","nodeValue","replace","code","dataset","category","brand","quantity","forEach","item","push","total","length","price_old","price_regular","useSchemaForm","open","ecommerce","currencyCode","add","products","event","$env","debug","console","log","JSON","stringify","window","dataLayer","onSubmit","quantityInput","document","data","$http","post","$ziggy","then","response","finishAction","purchase","actionField","affiliation","revenue","tax","shipping","eventCallback","finally","catch","error","message","Object","entries","field","messages","class","_createElementVNode","_createElementBlock","_hoisted_1","$props","onClick","$setup","_ctx","_hoisted_2","_hoisted_5","_hoisted_6","_createVNode","schemaRowClasses","afterForm","_hoisted_7","innerHTML","_hoisted_9","$event"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("vue"),t=e.defineComponent({props:{data:Object,item:Object,commit:Function},setup(t){var
|
|
1
|
+
"use strict";var e=require("vue"),t=e.defineComponent({props:{data:Object,item:Object,commit:Function},setup:function(t){var n=e.computed({get:function(){return t.data[t.item.code]?t.data[t.item.code].address:""},set:function(e){var n={address:e,time:i.value};return t.commit(t.item.code,n,r(n)),e}}),i=e.computed({get:function(){return t.data[t.item.code]?t.data[t.item.code].time:""},set:function(e){var i={address:n.value,time:e};return t.commit(t.item.code,i,r(i)),e}}),r=function(e){return""!=e.address.trim()&&(!t.item.data.length||t.item.data.length&&""!==e.time.trim())};return{address:n,time:i}}}),n={class:"component"},i={class:"user-form"},r={class:"control"},o=["id"],a=["for"],c={class:"time"},d=["onClick"];t.render=function(t,m,l,s,u,p){return e.openBlock(),e.createElementBlock("div",n,[e.createElementVNode("div",i,[e.createElementVNode("div",r,[e.withDirectives(e.createElementVNode("input",{type:"input",class:"input","onUpdate:modelValue":m[0]||(m[0]=function(e){return t.address=e}),id:"shipping-courier-"+t.item.id,placeholder:" ",autocomplete:"chrome-off"},null,8,o),[[e.vModelText,t.address]]),e.createElementVNode("label",{class:"label",for:"shipping-courier-"+t.item.id},"Адрес доставки",8,a)])]),e.createElementVNode("div",c,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.item.data,(function(n){return e.openBlock(),e.createElementBlock("div",{key:n.id,class:e.normalizeClass({"is-selected":t.time==n.name}),onClick:function(e){return t.time=n.name}},e.toDisplayString(n.name),11,d)})),128))])])},module.exports=t;
|
|
2
2
|
//# sourceMappingURL=CheckoutShippingCourier.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CheckoutShippingCourier.js","sources":["../../../../../../src/js/components/shop/order/shipping/CheckoutShippingCourier.vue","../../../../../../src/js/components/shop/order/shipping/CheckoutShippingCourier.vue?vue&type=template&id=40b0e01a&lang.js"],"sourcesContent":["<template>\n <div class=\"component\">\n <div class=\"user-form\">\n <div class=\"control\">\n <input type=\"input\" class=\"input\" v-model=\"address\" :id=\"'shipping-courier-' + item.id\" placeholder=\" \" autocomplete=\"chrome-off\" />\n <label class=\"label\" :for=\"'shipping-courier-' + item.id\">Адрес доставки</label>\n </div>\n </div>\n <div class=\"time\">\n <div v-for=\"item in item.data\" v-bind:key=\"item.id\" v-bind:class=\"{ 'is-selected': time == item.name }\" @click=\"time = item.name\">{{ item.name }}</div>\n </div>\n </div>\n</template>\n<script>\nimport { computed, defineComponent } from 'vue';\n\nexport default defineComponent({\n props: {\n data: Object,\n item: Object,\n commit: Function\n },\n setup(props) {\n const address = computed({\n get() {\n return props.data[props.item.code] ? props.data[props.item.code].address : '';\n },\n set(address) {\n const data = {\n address: address,\n time: time.value\n };\n\n props.commit(props.item.code, data, isValid(data));\n\n return address;\n }\n });\n\n const time = computed({\n get() {\n return props.data[props.item.code] ? props.data[props.item.code].time : '';\n },\n set(time) {\n const data = {\n address: address.value,\n time: time\n };\n\n props.commit(props.item.code, data, isValid(data));\n\n return time;\n }\n });\n\n const isValid = (data) => {\n return data.address.trim() != '' && (!props.item.data.length || (props.item.data.length && data.time.trim() !== ''));\n };\n\n return {\n address,\n time\n };\n }\n});\n</script>\n","<template>\n <div class=\"component\">\n <div class=\"user-form\">\n <div class=\"control\">\n <input type=\"input\" class=\"input\" v-model=\"address\" :id=\"'shipping-courier-' + item.id\" placeholder=\" \" autocomplete=\"chrome-off\" />\n <label class=\"label\" :for=\"'shipping-courier-' + item.id\">Адрес доставки</label>\n </div>\n </div>\n <div class=\"time\">\n <div v-for=\"item in item.data\" v-bind:key=\"item.id\" v-bind:class=\"{ 'is-selected': time == item.name }\" @click=\"time = item.name\">{{ item.name }}</div>\n </div>\n </div>\n</template>\n<script>\nimport { computed, defineComponent } from 'vue';\n\nexport default defineComponent({\n props: {\n data: Object,\n item: Object,\n commit: Function\n },\n setup(props) {\n const address = computed({\n get() {\n return props.data[props.item.code] ? props.data[props.item.code].address : '';\n },\n set(address) {\n const data = {\n address: address,\n time: time.value\n };\n\n props.commit(props.item.code, data, isValid(data));\n\n return address;\n }\n });\n\n const time = computed({\n get() {\n return props.data[props.item.code] ? props.data[props.item.code].time : '';\n },\n set(time) {\n const data = {\n address: address.value,\n time: time\n };\n\n props.commit(props.item.code, data, isValid(data));\n\n return time;\n }\n });\n\n const isValid = (data) => {\n return data.address.trim() != '' && (!props.item.data.length || (props.item.data.length && data.time.trim() !== ''));\n };\n\n return {\n address,\n time\n };\n }\n});\n</script>\n"],"names":["defineComponent","props","data","Object","item","commit","Function","setup","address","computed","get","code","set","time","value","isValid","trim","length","class","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_hoisted_3","type","_ctx","id","placeholder","autocomplete","for","_hoisted_6","key","name","onClick"],"mappings":"oCAgBeA,kBAAgB,CAC3BC,MAAO,CACHC,KAAMC,OACNC,KAAMD,OACNE,OAAQC,UAEZC,
|
|
1
|
+
{"version":3,"file":"CheckoutShippingCourier.js","sources":["../../../../../../src/js/components/shop/order/shipping/CheckoutShippingCourier.vue","../../../../../../src/js/components/shop/order/shipping/CheckoutShippingCourier.vue?vue&type=template&id=40b0e01a&lang.js"],"sourcesContent":["<template>\n <div class=\"component\">\n <div class=\"user-form\">\n <div class=\"control\">\n <input type=\"input\" class=\"input\" v-model=\"address\" :id=\"'shipping-courier-' + item.id\" placeholder=\" \" autocomplete=\"chrome-off\" />\n <label class=\"label\" :for=\"'shipping-courier-' + item.id\">Адрес доставки</label>\n </div>\n </div>\n <div class=\"time\">\n <div v-for=\"item in item.data\" v-bind:key=\"item.id\" v-bind:class=\"{ 'is-selected': time == item.name }\" @click=\"time = item.name\">{{ item.name }}</div>\n </div>\n </div>\n</template>\n<script>\nimport { computed, defineComponent } from 'vue';\n\nexport default defineComponent({\n props: {\n data: Object,\n item: Object,\n commit: Function\n },\n setup(props) {\n const address = computed({\n get() {\n return props.data[props.item.code] ? props.data[props.item.code].address : '';\n },\n set(address) {\n const data = {\n address: address,\n time: time.value\n };\n\n props.commit(props.item.code, data, isValid(data));\n\n return address;\n }\n });\n\n const time = computed({\n get() {\n return props.data[props.item.code] ? props.data[props.item.code].time : '';\n },\n set(time) {\n const data = {\n address: address.value,\n time: time\n };\n\n props.commit(props.item.code, data, isValid(data));\n\n return time;\n }\n });\n\n const isValid = (data) => {\n return data.address.trim() != '' && (!props.item.data.length || (props.item.data.length && data.time.trim() !== ''));\n };\n\n return {\n address,\n time\n };\n }\n});\n</script>\n","<template>\n <div class=\"component\">\n <div class=\"user-form\">\n <div class=\"control\">\n <input type=\"input\" class=\"input\" v-model=\"address\" :id=\"'shipping-courier-' + item.id\" placeholder=\" \" autocomplete=\"chrome-off\" />\n <label class=\"label\" :for=\"'shipping-courier-' + item.id\">Адрес доставки</label>\n </div>\n </div>\n <div class=\"time\">\n <div v-for=\"item in item.data\" v-bind:key=\"item.id\" v-bind:class=\"{ 'is-selected': time == item.name }\" @click=\"time = item.name\">{{ item.name }}</div>\n </div>\n </div>\n</template>\n<script>\nimport { computed, defineComponent } from 'vue';\n\nexport default defineComponent({\n props: {\n data: Object,\n item: Object,\n commit: Function\n },\n setup(props) {\n const address = computed({\n get() {\n return props.data[props.item.code] ? props.data[props.item.code].address : '';\n },\n set(address) {\n const data = {\n address: address,\n time: time.value\n };\n\n props.commit(props.item.code, data, isValid(data));\n\n return address;\n }\n });\n\n const time = computed({\n get() {\n return props.data[props.item.code] ? props.data[props.item.code].time : '';\n },\n set(time) {\n const data = {\n address: address.value,\n time: time\n };\n\n props.commit(props.item.code, data, isValid(data));\n\n return time;\n }\n });\n\n const isValid = (data) => {\n return data.address.trim() != '' && (!props.item.data.length || (props.item.data.length && data.time.trim() !== ''));\n };\n\n return {\n address,\n time\n };\n }\n});\n</script>\n"],"names":["defineComponent","props","data","Object","item","commit","Function","setup","address","computed","get","code","set","time","value","isValid","trim","length","class","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_hoisted_3","type","_ctx","id","placeholder","autocomplete","for","_hoisted_6","key","name","onClick"],"mappings":"oCAgBeA,kBAAgB,CAC3BC,MAAO,CACHC,KAAMC,OACNC,KAAMD,OACNE,OAAQC,UAEZC,eAAMN,OACIO,EAAUC,WAAS,CACrBC,sBACWT,EAAMC,KAAKD,EAAMG,KAAKO,MAAQV,EAAMC,KAAKD,EAAMG,KAAKO,MAAMH,QAAU,IAE/EI,aAAIJ,OACMN,EAAO,CACTM,QAASA,EACTK,KAAMA,EAAKC,cAGfb,EAAMI,OAAOJ,EAAMG,KAAKO,KAAMT,EAAMa,EAAQb,IAErCM,KAITK,EAAOJ,WAAS,CAClBC,sBACWT,EAAMC,KAAKD,EAAMG,KAAKO,MAAQV,EAAMC,KAAKD,EAAMG,KAAKO,MAAME,KAAO,IAE5ED,aAAIC,OACMX,EAAO,CACTM,QAASA,EAAQM,MACjBD,KAAMA,UAGVZ,EAAMI,OAAOJ,EAAMG,KAAKO,KAAMT,EAAMa,EAAQb,IAErCW,KAITE,EAAU,SAACb,SACiB,IAAvBA,EAAKM,QAAQQ,UAAkBf,EAAMG,KAAKF,KAAKe,QAAWhB,EAAMG,KAAKF,KAAKe,QAA+B,KAArBf,EAAKW,KAAKG,eAGlG,CACHR,QAAAA,EACAK,KAAAA,SC5DHK,MAAM,gBACFA,MAAM,gBACFA,MAAM,iCAKVA,MAAM,0EAPfC,2BAAAC,GACIC,2BAAAC,GACID,2BAAAE,oBACIF,8BAAOG,KAAK,QAAQN,MAAM,6DAAiBO,cAAUC,uBAA0BD,OAAKC,GAAIC,YAAY,IAAIC,aAAa,uCAA1EH,aAC3CJ,8BAAOH,MAAM,QAASW,wBAA2BJ,OAAKC,IAAI,0BAGlEL,2BAAAS,oBACIX,kDAAoBM,OAAKvB,eAAbE,wBAAZe,4BAAsCY,IAAK3B,EAAKsB,GAAWR,sCAAwBO,QAAQrB,EAAK4B,OAASC,2BAAOR,OAAOrB,EAAK4B,yBAAS5B,EAAK4B"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("vue"),t=e.defineComponent({props:{data:Object,item:Object,commit:Function},setup:t
|
|
1
|
+
"use strict";var e=require("vue"),t=e.defineComponent({props:{data:Object,item:Object,commit:Function},setup:function(t){return{address:e.computed({get:function(){return t.data[t.item.code]?t.data[t.item.code].address:""},set:function(e){var r={address:e};return t.commit(t.item.code,r,""!==e.trim()),e}})}}}),r={class:"component"},o={class:"user-form"},i={class:"control"},n=["id"],c=["for"];t.render=function(t,d,s,a,l,u){return e.openBlock(),e.createElementBlock("div",r,[e.createElementVNode("div",o,[e.createElementVNode("div",i,[e.withDirectives(e.createElementVNode("input",{type:"input",class:"input","onUpdate:modelValue":d[0]||(d[0]=function(e){return t.address=e}),id:"shipping-courier-"+t.item.id,placeholder:" ",autocomplete:"chrome-off"},null,8,n),[[e.vModelText,t.address]]),e.createElementVNode("label",{class:"label",for:"shipping-courier-"+t.item.id},"Адрес доставки",8,c)])])])},module.exports=t;
|
|
2
2
|
//# sourceMappingURL=CheckoutShippingNovaposhtaAddress.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CheckoutShippingNovaposhtaAddress.js","sources":["../../../../../../src/js/components/shop/order/shipping/CheckoutShippingNovaposhtaAddress.vue","../../../../../../src/js/components/shop/order/shipping/CheckoutShippingNovaposhtaAddress.vue?vue&type=template&id=092aa7da&lang.js"],"sourcesContent":["<template>\n <div class=\"component\">\n <div class=\"user-form\">\n <div class=\"control\">\n <input type=\"input\" class=\"input\" v-model=\"address\" :id=\"'shipping-courier-' + item.id\" placeholder=\" \" autocomplete=\"chrome-off\" />\n <label class=\"label\" :for=\"'shipping-courier-' + item.id\">Адрес доставки</label>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { computed, defineComponent } from 'vue';\n\nexport default defineComponent({\n props: {\n data: Object,\n item: Object,\n commit: Function\n },\n setup(props) {\n const address = computed({\n get() {\n return props.data[props.item.code] ? props.data[props.item.code].address : '';\n },\n set(address) {\n const data = {\n address: address\n };\n\n props.commit(props.item.code, data, address.trim() !== '');\n\n return address;\n }\n });\n\n return {\n address\n };\n }\n});\n</script>\n","<template>\n <div class=\"component\">\n <div class=\"user-form\">\n <div class=\"control\">\n <input type=\"input\" class=\"input\" v-model=\"address\" :id=\"'shipping-courier-' + item.id\" placeholder=\" \" autocomplete=\"chrome-off\" />\n <label class=\"label\" :for=\"'shipping-courier-' + item.id\">Адрес доставки</label>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { computed, defineComponent } from 'vue';\n\nexport default defineComponent({\n props: {\n data: Object,\n item: Object,\n commit: Function\n },\n setup(props) {\n const address = computed({\n get() {\n return props.data[props.item.code] ? props.data[props.item.code].address : '';\n },\n set(address) {\n const data = {\n address: address\n };\n\n props.commit(props.item.code, data, address.trim() !== '');\n\n return address;\n }\n });\n\n return {\n address\n };\n }\n});\n</script>\n"],"names":["defineComponent","props","data","Object","item","commit","Function","setup","address","computed","get","code","set","trim","class","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_hoisted_3","type","_ctx","id","placeholder","autocomplete","for"],"mappings":"oCAaeA,kBAAgB,CAC3BC,MAAO,CACHC,KAAMC,OACNC,KAAMD,OACNE,OAAQC,UAEZC,
|
|
1
|
+
{"version":3,"file":"CheckoutShippingNovaposhtaAddress.js","sources":["../../../../../../src/js/components/shop/order/shipping/CheckoutShippingNovaposhtaAddress.vue","../../../../../../src/js/components/shop/order/shipping/CheckoutShippingNovaposhtaAddress.vue?vue&type=template&id=092aa7da&lang.js"],"sourcesContent":["<template>\n <div class=\"component\">\n <div class=\"user-form\">\n <div class=\"control\">\n <input type=\"input\" class=\"input\" v-model=\"address\" :id=\"'shipping-courier-' + item.id\" placeholder=\" \" autocomplete=\"chrome-off\" />\n <label class=\"label\" :for=\"'shipping-courier-' + item.id\">Адрес доставки</label>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { computed, defineComponent } from 'vue';\n\nexport default defineComponent({\n props: {\n data: Object,\n item: Object,\n commit: Function\n },\n setup(props) {\n const address = computed({\n get() {\n return props.data[props.item.code] ? props.data[props.item.code].address : '';\n },\n set(address) {\n const data = {\n address: address\n };\n\n props.commit(props.item.code, data, address.trim() !== '');\n\n return address;\n }\n });\n\n return {\n address\n };\n }\n});\n</script>\n","<template>\n <div class=\"component\">\n <div class=\"user-form\">\n <div class=\"control\">\n <input type=\"input\" class=\"input\" v-model=\"address\" :id=\"'shipping-courier-' + item.id\" placeholder=\" \" autocomplete=\"chrome-off\" />\n <label class=\"label\" :for=\"'shipping-courier-' + item.id\">Адрес доставки</label>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { computed, defineComponent } from 'vue';\n\nexport default defineComponent({\n props: {\n data: Object,\n item: Object,\n commit: Function\n },\n setup(props) {\n const address = computed({\n get() {\n return props.data[props.item.code] ? props.data[props.item.code].address : '';\n },\n set(address) {\n const data = {\n address: address\n };\n\n props.commit(props.item.code, data, address.trim() !== '');\n\n return address;\n }\n });\n\n return {\n address\n };\n }\n});\n</script>\n"],"names":["defineComponent","props","data","Object","item","commit","Function","setup","address","computed","get","code","set","trim","class","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_hoisted_3","type","_ctx","id","placeholder","autocomplete","for"],"mappings":"oCAaeA,kBAAgB,CAC3BC,MAAO,CACHC,KAAMC,OACNC,KAAMD,OACNE,OAAQC,UAEZC,eAAMN,SAgBK,CACHO,QAhBYC,WAAS,CACrBC,sBACWT,EAAMC,KAAKD,EAAMG,KAAKO,MAAQV,EAAMC,KAAKD,EAAMG,KAAKO,MAAMH,QAAU,IAE/EI,aAAIJ,OACMN,EAAO,CACTM,QAASA,UAGbP,EAAMI,OAAOJ,EAAMG,KAAKO,KAAMT,EAAyB,KAAnBM,EAAQK,QAErCL,YC9BdM,MAAM,gBACFA,MAAM,gBACFA,MAAM,kFAFnBC,2BAAAC,GACIC,2BAAAC,GACID,2BAAAE,oBACIF,8BAAOG,KAAK,QAAQN,MAAM,6DAAiBO,cAAUC,uBAA0BD,OAAKC,GAAIC,YAAY,IAAIC,aAAa,uCAA1EH,aAC3CJ,8BAAOH,MAAM,QAASW,wBAA2BJ,OAAKC,IAAI"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("vue"),o=e.defineComponent({props:{data:Object,item:Object,commit:Function},setup(o){var
|
|
1
|
+
"use strict";var e=require("vue");function t(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}var o=e.defineComponent({props:{data:Object,item:Object,commit:Function},setup:function(o){var n,a,u=e.computed({get:function(){return o.data[o.item.code]?o.data[o.item.code].city:null},set:function(e){var t={city:e};o.commit(o.item.code,t,l(t))}}),r=e.computed({get:function(){return o.data[o.item.code]?o.data[o.item.code].warehouse:null},set:function(e){var t={city:u.value,warehouse:e};o.commit(o.item.code,t,l(t))}}),l=function(e){return!(!e.city||!e.warehouse)},i=e.ref(!1),c=e.ref(!1),s=e.ref(""),d=e.ref(""),p=e.ref([]),y=e.ref([]),v=e.ref([]),h=e.ref(null),m=e.ref(null),f=e.ref(!1),w=e.ref(!1),k=e.ref(!1),C=e.ref(!1);e.onMounted((function(){o.item.data&&o.item.data.length&&(y.value=o.item.data)}));var g=function(){i.value=!1,c.value=!1,k.value=!1,C.value=!1};window.addEventListener("keyup",(function(e){(i.value||c.value)&&"Escape"===e.key&&g()})),window.addEventListener("click",(function(e){e.target.closest(".novaposhta-wrapper")||g()})),e.watch(s,(function(e){clearTimeout(a),u.value=null,e&&(f.value=!0,a=setTimeout((function(){$http.post($ziggy("api.delivery-nova-poshta"),{q:e,action:"cities"}).then((function(e){p.value=e.data.cities})).finally((function(){f.value=!1}))}),400))})),e.watch(d,(function(e){clearTimeout(a),e?(w.value=!0,a=setTimeout((function(){$http.post($ziggy("api.delivery-nova-poshta"),{q:e,city:u.value.id,action:"warehouses"}).then((function(e){v.value=e.data.warehouses})).finally((function(){w.value=!1}))}),400)):(r.value=null,v.value=[])}));return t(n={isCityOpened:i,isWarehouseOpened:c,openCity:function(){i.value=!0},openWarehouse:function(){c.value=!0},cities:p,citiesPopular:y,warehouses:v,chooseCity:function(e,t){e.stopPropagation(),u.value=t,v.value=[],d.value="",k.value=!1,$http.post($ziggy("api.delivery-nova-poshta"),{city:t.id,action:"warehouses"}).then((function(e){v.value=e.data.warehouses})).finally((function(){w.value=!1})),g()},chooseWarehouse:function(e,t){e.stopPropagation(),r.value=t,C.value=!1,r.value=t,g()},queryCity:s,queryWarehouse:d,city:u,warehouse:r,loadingCity:f,loadingWarehouse:w,focusWarehouse:function(){i.value=!1,k.value=!1,C.value||(C.value=!0,e.nextTick((function(){m.value.value=" ",m.value.focus()})))},focusCity:function(){c.value=!1,C.value=!1,k.value||(k.value=!0,e.nextTick((function(){h.value.value=" ",h.value.focus()})))}},"city",u),t(n,"warehouse",r),t(n,"cityQueryInput",h),t(n,"warehouseQueryInput",m),t(n,"cityQueryInputInQueryMode",k),t(n,"warehouseQueryInputInQueryMode",C),n}}),n={class:"component novaposhta-wrapper"},a={class:"user-form"},u=["value"],r={class:"label"},l=e.createElementVNode("svg",null,[e.createElementVNode("use",{"xlink:href":"#arrow-down"})],-1),i={class:"dropdown-menu"},c={class:"dropdown-content"},s=["onClick"],d={key:0,class:"dropdown-item"},p={class:"user-form"},y=["value"],v={class:"label"},h=e.createElementVNode("svg",null,[e.createElementVNode("use",{"xlink:href":"#arrow-down"})],-1),m={class:"dropdown-menu"},f={class:"dropdown-content"},w=["onClick"],k={key:0,class:"dropdown-item"};o.render=function(t,o,C,g,E,I){return e.openBlock(),e.createElementBlock("div",n,[e.createElementVNode("div",{class:e.normalizeClass(["dropdown",{"is-active":t.isCityOpened,"is-top":t.cityQueryInputInQueryMode}]),onMouseleave:o[4]||(o[4]=function(){return t.close&&t.close.apply(t,arguments)})},[e.createElementVNode("div",{class:"dropdown-trigger",onClick:o[3]||(o[3]=function(){return t.openCity&&t.openCity.apply(t,arguments)})},[e.createElementVNode("div",a,[e.createElementVNode("div",{class:e.normalizeClass(["control",{"is-loading":t.loadingCity}])},[e.withDirectives(e.createElementVNode("input",{type:"text",class:"input is-nolabel","onUpdate:modelValue":o[0]||(o[0]=function(e){return t.queryCity=e}),onFocus:o[1]||(o[1]=function(){return t.focusCity&&t.focusCity.apply(t,arguments)}),placeholder:"Введите название города",autocomplete:"chrome-off",ref:"cityQueryInput"},null,544),[[e.vModelText,t.queryCity],[e.vShow,t.cityQueryInputInQueryMode]]),e.createCommentVNode(' <label class="label" v-show="cityQueryInputInQueryMode">Город</label> '),e.withDirectives(e.createElementVNode("input",{type:"text",class:"input",value:t.city?t.city.name:"",onFocus:o[2]||(o[2]=function(){return t.focusCity&&t.focusCity.apply(t,arguments)}),placeholder:" "},null,40,u),[[e.vShow,!t.cityQueryInputInQueryMode]]),e.withDirectives(e.createElementVNode("label",r,"Город",512),[[e.vShow,!t.cityQueryInputInQueryMode]]),l],2)])]),e.createElementVNode("div",i,[e.createElementVNode("div",c,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.queryCity?t.cities:t.citiesPopular,(function(o){return e.openBlock(),e.createElementBlock("a",{class:"dropdown-item",key:o.id,onClick:function(e){return t.chooseCity(e,o)}},e.toDisplayString(o.name),9,s)})),128)),!t.queryCity||t.cities.length||t.loadingCity?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("div",d,e.toDisplayString(t.__("shop.checkout.shipment.warehouse.not_found")),1))])])],34),t.city?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["dropdown",{"is-active":t.isWarehouseOpened,"is-top":t.warehouseQueryInputInQueryMode}]),onMouseleave:o[9]||(o[9]=function(){return t.close&&t.close.apply(t,arguments)})},[e.createElementVNode("div",{class:"dropdown-trigger",onClick:o[8]||(o[8]=function(){return t.openWarehouse&&t.openWarehouse.apply(t,arguments)})},[e.createElementVNode("div",p,[e.createElementVNode("div",{class:e.normalizeClass(["control",{"is-loading":t.loadingWarehouse}])},[e.withDirectives(e.createElementVNode("input",{type:"text",class:"input is-nolabel","onUpdate:modelValue":o[5]||(o[5]=function(e){return t.queryWarehouse=e}),onFocus:o[6]||(o[6]=function(){return t.focusWarehouse&&t.focusWarehouse.apply(t,arguments)}),placeholder:"Введите номер отделения или адрес",autocomplete:"chrome-off",ref:"warehouseQueryInput"},null,544),[[e.vModelText,t.queryWarehouse],[e.vShow,t.warehouseQueryInputInQueryMode]]),e.createCommentVNode(' <label class="label" v-show="warehouseQueryInputInQueryMode">Отделение</label> '),e.withDirectives(e.createElementVNode("input",{type:"text",class:"input",value:t.warehouse?t.warehouse.name:"",onFocus:o[7]||(o[7]=function(){return t.focusWarehouse&&t.focusWarehouse.apply(t,arguments)}),placeholder:" "},null,40,y),[[e.vShow,!t.warehouseQueryInputInQueryMode]]),e.withDirectives(e.createElementVNode("label",v,"Отделение",512),[[e.vShow,!t.warehouseQueryInputInQueryMode]]),h],2)])]),e.createElementVNode("div",m,[e.createElementVNode("div",f,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.warehouses,(function(o){return e.openBlock(),e.createElementBlock("a",{class:"dropdown-item",key:o.id,onClick:function(e){return t.chooseWarehouse(e,o)}},e.toDisplayString(o.name),9,w)})),128)),!t.queryWarehouse||t.warehouses.length||t.loadingWarehouse?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("div",k,e.toDisplayString(t.__("shop.checkout.shipment.warehouse.not_found")),1))])])],34)):e.createCommentVNode("v-if",!0)])},module.exports=o;
|
|
2
2
|
//# sourceMappingURL=CheckoutShippingNovaposhtaWarehouse.js.map
|