@perevorot/shop 3.0.16 → 3.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/dist/api.js.map +1 -1
  2. package/dist/components/account/OrderItem.js.map +1 -1
  3. package/dist/components/account/User.js.map +1 -1
  4. package/dist/components/auth/Forget.js.map +1 -1
  5. package/dist/components/auth/Login.js.map +1 -1
  6. package/dist/components/auth/Reset.js.map +1 -1
  7. package/dist/components/auth/User.js.map +1 -1
  8. package/dist/components/shop/CodeCopy.js.map +1 -1
  9. package/dist/components/shop/Gallery.js.map +1 -1
  10. package/dist/components/shop/Notice.js.map +1 -1
  11. package/dist/components/shop/PromoProducts.js.map +1 -1
  12. package/dist/components/shop/Search.js.map +1 -1
  13. package/dist/components/shop/bundle/Bundle.js.map +1 -1
  14. package/dist/components/shop/bundle/BundleAdd.js.map +1 -1
  15. package/dist/components/shop/cart/Cart.js.map +1 -1
  16. package/dist/components/shop/cart/CartAdd.js.map +1 -1
  17. package/dist/components/shop/cart/CartItem.js.map +1 -1
  18. package/dist/components/shop/cart/CartTrigger.js.map +1 -1
  19. package/dist/components/shop/compare/CompareAdd.js.map +1 -1
  20. package/dist/components/shop/compare/CompareDelete.js.map +1 -1
  21. package/dist/components/shop/compare/CompareDeleteAll.js.map +1 -1
  22. package/dist/components/shop/filters/FilterSearch.js.map +1 -1
  23. package/dist/components/shop/filters/Price.js.map +1 -1
  24. package/dist/components/shop/order/Checkout.js +1 -1
  25. package/dist/components/shop/order/Checkout.js.map +1 -1
  26. package/dist/components/shop/order/CheckoutItem.js.map +1 -1
  27. package/dist/components/shop/order/OneClick.js.map +1 -1
  28. package/dist/components/shop/order/shipping/CheckoutShippingCourier.js.map +1 -1
  29. package/dist/components/shop/order/shipping/CheckoutShippingNovaposhtaAddress.js.map +1 -1
  30. package/dist/components/shop/order/shipping/CheckoutShippingNovaposhtaWarehouse.js.map +1 -1
  31. package/dist/components/shop/order/shipping/CheckoutShippingPickup.js.map +1 -1
  32. package/dist/components/shop/order/shipping/CheckoutShippingUkrposhtaWarehouse.js.map +1 -1
  33. package/dist/components/shop/reviews/Question.js.map +1 -1
  34. package/dist/components/shop/reviews/Review.js.map +1 -1
  35. package/dist/components/shop/viewed/Viewed.js.map +1 -1
  36. package/dist/components/shop/viewed/ViewedDelete.js.map +1 -1
  37. package/dist/components/shop/viewed/Viewer.js.map +1 -1
  38. package/dist/components/shop/wishlist/WishlistAdd.js.map +1 -1
  39. package/dist/components/shop/wishlist/WishlistDelete.js.map +1 -1
  40. package/dist/forms/FormCheckbox.js.map +1 -1
  41. package/dist/forms/FormCheckboxes.js.map +1 -1
  42. package/dist/forms/FormPassword.js.map +1 -1
  43. package/dist/forms/FormRadio.js.map +1 -1
  44. package/dist/forms/FormRating.js.map +1 -1
  45. package/dist/forms/FormSelect.js.map +1 -1
  46. package/dist/forms/FormSwitch.js.map +1 -1
  47. package/dist/forms/FormText.js.map +1 -1
  48. package/dist/forms/FormTextarea.js.map +1 -1
  49. package/dist/global.js.map +1 -1
  50. package/dist/store.js +1 -1
  51. package/dist/store.js.map +1 -1
  52. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"CheckoutShippingPickup.js","sources":["../../../../../src/components/shop/order/shipping/CheckoutShippingPickup.vue","../../../../../src/components/shop/order/shipping/CheckoutShippingPickup.vue?vue&type=template&id=aaaf2324&lang.js"],"sourcesContent":["<template>\n <div class=\"component pickup-wrapper\" v-if=\"item.data.length\">\n <div class=\"label\" v-if=\"__('shop.order.pickup_label')\">{{ __('shop.order.pickup_label') }}</div>\n <div class=\"dropdown\" v-bind:class=\"{ 'is-active': isOpened }\" @mouseleave=\"close\">\n <div class=\"input dropdown-trigger\" @click=\"open\">\n <span v-bind:class=\"{ 'is-placeholder': !selected }\" v-text=\"selected ? selected.name : __('shop.order.pickup')\"></span>\n <svg>\n <use xlink:href=\"#arrow-down\"></use>\n </svg>\n </div>\n <div class=\"dropdown-menu\">\n <div class=\"dropdown-content\">\n <a class=\"dropdown-item\" v-for=\"option in item.data\" v-bind:key=\"option.id\" @click=\"choose($event, option)\" v-bind:class=\"{ 'is-active': selected && option.id == selected.id }\">{{ option.name }}</a>\n </div>\n </div>\n </div>\n <div class=\"data\" v-if=\"selected && (selected.hours || selected.map_url || selected.description || selected.image)\">\n <div class=\"columns is-gapless\">\n <div class=\"column\">\n <div class=\"data-wrapper\">\n <div v-if=\"selected.hours\" class=\"hours\">\n <svg>\n <use xlink:href=\"#hours\"></use>\n </svg>\n <span v-html=\"selected.hours\"></span>\n </div>\n <div v-if=\"selected.map_url\" class=\"map\">\n <a :href=\"selected.map_url\" target=\"_blank\" rel=\"noopener\">{{ __('shop.order.map') }}</a>\n </div>\n <div v-if=\"selected.description\" class=\"info\" v-html=\"nl2p(selected.description)\"></div>\n </div>\n </div>\n <div class=\"column is-4\" v-if=\"selected.image\">\n <div class=\"image\">\n <img :src=\"selected.image\" />\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { nl2p } from '@perevorot/shop/dist/helpers';\nimport { ref, computed, defineComponent, onMounted, inject } from 'vue';\n\nexport default defineComponent({\n props: {\n data: Object,\n item: Object,\n commit: Function\n },\n setup(props) {\n const selected = computed(() => {\n return props.item.data.find((item) => item.id == pickup.value);\n });\n\n const isValid = (id) => {\n if (!props.item.data.length) {\n return true;\n } else {\n return !!id;\n }\n };\n\n const shippingComponentValid = inject('shippingComponentValid');\n const shippingComponentUserData = inject('shippingComponentUserData');\n\n onMounted(() => {\n shippingComponentValid.value = async () => {\n return !!(selected.value);\n };\n\n shippingComponentUserData.value = {};\n\n if (!selected.value) {\n props.commit(props.item.code, {}, isValid());\n }\n });\n\n const pickup = computed({\n get() {\n return props.data[props.item.code] ? props.data[props.item.code].id : null;\n },\n set(id) {\n props.commit(\n props.item.code,\n {\n id: id\n },\n isValid(id)\n );\n }\n });\n\n const isOpened = ref(false);\n\n const open = () => {\n isOpened.value = true;\n };\n\n const close = () => {\n isOpened.value = false;\n };\n\n const choose = (e, option) => {\n e.stopPropagation();\n\n setTimeout(() => {\n pickup.value = option.id;\n }, 200);\n\n close();\n };\n\n window.addEventListener('keyup', (e) => {\n if (isOpened.value && e.key === 'Escape') {\n close();\n }\n });\n\n window.addEventListener('click', (e) => {\n if (!e.target.closest('.pickup-wrapper')) {\n close();\n }\n });\n\n return {\n selected,\n isOpened,\n open,\n choose,\n close,\n pickup,\n nl2p\n };\n }\n});\n</script>\n","<template>\n <div class=\"component pickup-wrapper\" v-if=\"item.data.length\">\n <div class=\"label\" v-if=\"__('shop.order.pickup_label')\">{{ __('shop.order.pickup_label') }}</div>\n <div class=\"dropdown\" v-bind:class=\"{ 'is-active': isOpened }\" @mouseleave=\"close\">\n <div class=\"input dropdown-trigger\" @click=\"open\">\n <span v-bind:class=\"{ 'is-placeholder': !selected }\" v-text=\"selected ? selected.name : __('shop.order.pickup')\"></span>\n <svg>\n <use xlink:href=\"#arrow-down\"></use>\n </svg>\n </div>\n <div class=\"dropdown-menu\">\n <div class=\"dropdown-content\">\n <a class=\"dropdown-item\" v-for=\"option in item.data\" v-bind:key=\"option.id\" @click=\"choose($event, option)\" v-bind:class=\"{ 'is-active': selected && option.id == selected.id }\">{{ option.name }}</a>\n </div>\n </div>\n </div>\n <div class=\"data\" v-if=\"selected && (selected.hours || selected.map_url || selected.description || selected.image)\">\n <div class=\"columns is-gapless\">\n <div class=\"column\">\n <div class=\"data-wrapper\">\n <div v-if=\"selected.hours\" class=\"hours\">\n <svg>\n <use xlink:href=\"#hours\"></use>\n </svg>\n <span v-html=\"selected.hours\"></span>\n </div>\n <div v-if=\"selected.map_url\" class=\"map\">\n <a :href=\"selected.map_url\" target=\"_blank\" rel=\"noopener\">{{ __('shop.order.map') }}</a>\n </div>\n <div v-if=\"selected.description\" class=\"info\" v-html=\"nl2p(selected.description)\"></div>\n </div>\n </div>\n <div class=\"column is-4\" v-if=\"selected.image\">\n <div class=\"image\">\n <img :src=\"selected.image\" />\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { nl2p } from '@perevorot/shop/dist/helpers';\nimport { ref, computed, defineComponent, onMounted, inject } from 'vue';\n\nexport default defineComponent({\n props: {\n data: Object,\n item: Object,\n commit: Function\n },\n setup(props) {\n const selected = computed(() => {\n return props.item.data.find((item) => item.id == pickup.value);\n });\n\n const isValid = (id) => {\n if (!props.item.data.length) {\n return true;\n } else {\n return !!id;\n }\n };\n\n const shippingComponentValid = inject('shippingComponentValid');\n const shippingComponentUserData = inject('shippingComponentUserData');\n\n onMounted(() => {\n shippingComponentValid.value = async () => {\n return !!(selected.value);\n };\n\n shippingComponentUserData.value = {};\n\n if (!selected.value) {\n props.commit(props.item.code, {}, isValid());\n }\n });\n\n const pickup = computed({\n get() {\n return props.data[props.item.code] ? props.data[props.item.code].id : null;\n },\n set(id) {\n props.commit(\n props.item.code,\n {\n id: id\n },\n isValid(id)\n );\n }\n });\n\n const isOpened = ref(false);\n\n const open = () => {\n isOpened.value = true;\n };\n\n const close = () => {\n isOpened.value = false;\n };\n\n const choose = (e, option) => {\n e.stopPropagation();\n\n setTimeout(() => {\n pickup.value = option.id;\n }, 200);\n\n close();\n };\n\n window.addEventListener('keyup', (e) => {\n if (isOpened.value && e.key === 'Escape') {\n close();\n }\n });\n\n window.addEventListener('click', (e) => {\n if (!e.target.closest('.pickup-wrapper')) {\n close();\n }\n });\n\n return {\n selected,\n isOpened,\n open,\n choose,\n close,\n pickup,\n nl2p\n };\n }\n});\n</script>\n"],"names":["script","defineComponent","props","data","Object","item","commit","Function","setup","selected","computed","find","id","pickup","value","isValid","length","shippingComponentValid","inject","shippingComponentUserData","onMounted","f","args","i","arguments","Promise","resolve","apply","this","e","code","get","set","isOpened","ref","close","window","addEventListener","key","target","closest","open","choose","option","stopPropagation","setTimeout","nl2p","class","_createElementVNode","createElementVNode","xlink:href","_hoisted_5","_hoisted_6","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_19","_ctx","_openBlock","openBlock","_createElementBlock","_hoisted_1","__","_hoisted_2","_toDisplayString","_normalizeClass","is-active","onMouseleave","onClick","textContent","toDisplayString","name","_hoisted_4","_Fragment","_renderList","renderList","createElementBlock","$event","_hoisted_7","hours","map_url","description","image","_hoisted_8","_hoisted_12","_hoisted_13","innerHTML","_hoisted_15","href","rel","_hoisted_16","_hoisted_18","src"],"mappings":"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"}
1
+ {"version":3,"file":"CheckoutShippingPickup.js","sources":["../../../../../src/components/shop/order/shipping/CheckoutShippingPickup.vue","../../../../../src/components/shop/order/shipping/CheckoutShippingPickup.vue?vue&type=template&id=aaaf2324&lang.js"],"sourcesContent":["<template>\n <div class=\"component pickup-wrapper\" v-if=\"item.data.length\">\n <div class=\"label\" v-if=\"__('shop.order.pickup_label')\">{{ __('shop.order.pickup_label') }}</div>\n <div class=\"dropdown\" v-bind:class=\"{ 'is-active': isOpened }\" @mouseleave=\"close\">\n <div class=\"input dropdown-trigger\" @click=\"open\">\n <span v-bind:class=\"{ 'is-placeholder': !selected }\" v-text=\"selected ? selected.name : __('shop.order.pickup')\"></span>\n <svg>\n <use xlink:href=\"#arrow-down\"></use>\n </svg>\n </div>\n <div class=\"dropdown-menu\">\n <div class=\"dropdown-content\">\n <a class=\"dropdown-item\" v-for=\"option in item.data\" v-bind:key=\"option.id\" @click=\"choose($event, option)\" v-bind:class=\"{ 'is-active': selected && option.id == selected.id }\">{{ option.name }}</a>\n </div>\n </div>\n </div>\n <div class=\"data\" v-if=\"selected && (selected.hours || selected.map_url || selected.description || selected.image)\">\n <div class=\"columns is-gapless\">\n <div class=\"column\">\n <div class=\"data-wrapper\">\n <div v-if=\"selected.hours\" class=\"hours\">\n <svg>\n <use xlink:href=\"#hours\"></use>\n </svg>\n <span v-html=\"selected.hours\"></span>\n </div>\n <div v-if=\"selected.map_url\" class=\"map\">\n <a :href=\"selected.map_url\" target=\"_blank\" rel=\"noopener\">{{ __('shop.order.map') }}</a>\n </div>\n <div v-if=\"selected.description\" class=\"info\" v-html=\"nl2p(selected.description)\"></div>\n </div>\n </div>\n <div class=\"column is-4\" v-if=\"selected.image\">\n <div class=\"image\">\n <img :src=\"selected.image\" />\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { nl2p } from '@perevorot/shop/dist/helpers';\nimport { ref, computed, defineComponent, onMounted, inject } from 'vue';\n\nexport default defineComponent({\n props: {\n data: Object,\n item: Object,\n commit: Function\n },\n setup(props) {\n const selected = computed(() => {\n return props.item.data.find((item) => item.id == pickup.value);\n });\n\n const isValid = (id) => {\n if (!props.item.data.length) {\n return true;\n } else {\n return !!id;\n }\n };\n\n const shippingComponentValid = inject('shippingComponentValid');\n const shippingComponentUserData = inject('shippingComponentUserData');\n\n onMounted(() => {\n shippingComponentValid.value = async () => {\n return !!(selected.value);\n };\n\n shippingComponentUserData.value = {};\n\n if (!selected.value) {\n props.commit(props.item.code, {}, isValid());\n }\n });\n\n const pickup = computed({\n get() {\n return props.data[props.item.code] ? props.data[props.item.code].id : null;\n },\n set(id) {\n props.commit(\n props.item.code,\n {\n id: id\n },\n isValid(id)\n );\n }\n });\n\n const isOpened = ref(false);\n\n const open = () => {\n isOpened.value = true;\n };\n\n const close = () => {\n isOpened.value = false;\n };\n\n const choose = (e, option) => {\n e.stopPropagation();\n\n setTimeout(() => {\n pickup.value = option.id;\n }, 200);\n\n close();\n };\n\n window.addEventListener('keyup', (e) => {\n if (isOpened.value && e.key === 'Escape') {\n close();\n }\n });\n\n window.addEventListener('click', (e) => {\n if (!e.target.closest('.pickup-wrapper')) {\n close();\n }\n });\n\n return {\n selected,\n isOpened,\n open,\n choose,\n close,\n pickup,\n nl2p\n };\n }\n});\n</script>\n","<template>\n <div class=\"component pickup-wrapper\" v-if=\"item.data.length\">\n <div class=\"label\" v-if=\"__('shop.order.pickup_label')\">{{ __('shop.order.pickup_label') }}</div>\n <div class=\"dropdown\" v-bind:class=\"{ 'is-active': isOpened }\" @mouseleave=\"close\">\n <div class=\"input dropdown-trigger\" @click=\"open\">\n <span v-bind:class=\"{ 'is-placeholder': !selected }\" v-text=\"selected ? selected.name : __('shop.order.pickup')\"></span>\n <svg>\n <use xlink:href=\"#arrow-down\"></use>\n </svg>\n </div>\n <div class=\"dropdown-menu\">\n <div class=\"dropdown-content\">\n <a class=\"dropdown-item\" v-for=\"option in item.data\" v-bind:key=\"option.id\" @click=\"choose($event, option)\" v-bind:class=\"{ 'is-active': selected && option.id == selected.id }\">{{ option.name }}</a>\n </div>\n </div>\n </div>\n <div class=\"data\" v-if=\"selected && (selected.hours || selected.map_url || selected.description || selected.image)\">\n <div class=\"columns is-gapless\">\n <div class=\"column\">\n <div class=\"data-wrapper\">\n <div v-if=\"selected.hours\" class=\"hours\">\n <svg>\n <use xlink:href=\"#hours\"></use>\n </svg>\n <span v-html=\"selected.hours\"></span>\n </div>\n <div v-if=\"selected.map_url\" class=\"map\">\n <a :href=\"selected.map_url\" target=\"_blank\" rel=\"noopener\">{{ __('shop.order.map') }}</a>\n </div>\n <div v-if=\"selected.description\" class=\"info\" v-html=\"nl2p(selected.description)\"></div>\n </div>\n </div>\n <div class=\"column is-4\" v-if=\"selected.image\">\n <div class=\"image\">\n <img :src=\"selected.image\" />\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { nl2p } from '@perevorot/shop/dist/helpers';\nimport { ref, computed, defineComponent, onMounted, inject } from 'vue';\n\nexport default defineComponent({\n props: {\n data: Object,\n item: Object,\n commit: Function\n },\n setup(props) {\n const selected = computed(() => {\n return props.item.data.find((item) => item.id == pickup.value);\n });\n\n const isValid = (id) => {\n if (!props.item.data.length) {\n return true;\n } else {\n return !!id;\n }\n };\n\n const shippingComponentValid = inject('shippingComponentValid');\n const shippingComponentUserData = inject('shippingComponentUserData');\n\n onMounted(() => {\n shippingComponentValid.value = async () => {\n return !!(selected.value);\n };\n\n shippingComponentUserData.value = {};\n\n if (!selected.value) {\n props.commit(props.item.code, {}, isValid());\n }\n });\n\n const pickup = computed({\n get() {\n return props.data[props.item.code] ? props.data[props.item.code].id : null;\n },\n set(id) {\n props.commit(\n props.item.code,\n {\n id: id\n },\n isValid(id)\n );\n }\n });\n\n const isOpened = ref(false);\n\n const open = () => {\n isOpened.value = true;\n };\n\n const close = () => {\n isOpened.value = false;\n };\n\n const choose = (e, option) => {\n e.stopPropagation();\n\n setTimeout(() => {\n pickup.value = option.id;\n }, 200);\n\n close();\n };\n\n window.addEventListener('keyup', (e) => {\n if (isOpened.value && e.key === 'Escape') {\n close();\n }\n });\n\n window.addEventListener('click', (e) => {\n if (!e.target.closest('.pickup-wrapper')) {\n close();\n }\n });\n\n return {\n selected,\n isOpened,\n open,\n choose,\n close,\n pickup,\n nl2p\n };\n }\n});\n</script>\n"],"names":["script","defineComponent","props","data","Object","item","commit","Function","setup","selected","computed","find","id","pickup","value","isValid","length","shippingComponentValid","inject","shippingComponentUserData","onMounted","f","args","i","arguments","Promise","resolve","apply","this","e","code","get","set","isOpened","ref","close","window","addEventListener","key","target","closest","open","choose","option","stopPropagation","setTimeout","nl2p","class","_createElementVNode","createElementVNode","xlink:href","_hoisted_5","_hoisted_6","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_19","_ctx","_openBlock","openBlock","_createElementBlock","_hoisted_1","__","_hoisted_2","_toDisplayString","_normalizeClass","is-active","onMouseleave","onClick","textContent","toDisplayString","name","_hoisted_4","_Fragment","_renderList","renderList","createElementBlock","$event","_hoisted_7","hours","map_url","description","image","_hoisted_8","_hoisted_12","_hoisted_13","innerHTML","_hoisted_15","href","rel","_hoisted_16","_hoisted_18","src"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CheckoutShippingUkrposhtaWarehouse.js","sources":["../../../../../src/components/shop/order/shipping/CheckoutShippingUkrposhtaWarehouse.vue","../../../../../src/components/shop/order/shipping/CheckoutShippingUkrposhtaWarehouse.vue?vue&type=template&id=783b4587&lang.js"],"sourcesContent":["<template>\n <div class=\"component ukrposhta-wrapper\">\n <checkout-shipping-other-recipient v-if=\"item.params?.is_other_recipient\" ref=\"userForm\"></checkout-shipping-other-recipient>\n <div class=\"dropdown\" v-bind:class=\"{ 'is-active': isCityOpened, 'is-top': cityQueryInputInQueryMode }\" @mouseleave=\"close\">\n <div class=\"dropdown-trigger\" @click=\"openCity\">\n <div class=\"user-form\">\n <div class=\"control\" v-bind:class=\"{ 'is-loading': loadingCity, 'is-danger': !cityIsValid }\">\n <input type=\"text\" class=\"input is-nolabel\" v-model=\"queryCity\" @focus=\"focusCity\" :placeholder=\"__('shop.order.city_placeholder')\" autocomplete=\"chrome-off\" v-show=\"cityQueryInputInQueryMode\" ref=\"cityQueryInput\" />\n <input type=\"text\" class=\"input\" :value=\"city ? city.name : ''\" @focus=\"focusCity\" placeholder=\" \" v-show=\"!cityQueryInputInQueryMode\" />\n <label class=\"label\" v-show=\"!cityQueryInputInQueryMode\">{{ __('shop.order.city') }}</label>\n <svg>\n <use xlink:href=\"#arrow-down\"></use>\n </svg>\n </div>\n <p class=\"help is-danger\" v-if=\"!cityIsValid\">{{ __('auth.validation.required') }}</p>\n </div>\n </div>\n <div class=\"dropdown-menu\">\n <div class=\"dropdown-content\">\n <a class=\"dropdown-item\" v-for=\"item in queryCity ? cities : citiesPopular\" v-bind:key=\"item.id\" @click=\"chooseCity($event, item)\">{{ item.name }}</a>\n <div class=\"dropdown-item\" v-if=\"queryCity && !cities.length && !loadingCity\">{{ __('shop.checkout.shipment.warehouse.not_found') }}</div>\n </div>\n </div>\n </div>\n <div class=\"dropdown\" v-bind:class=\"{ 'is-active': isWarehouseOpened, 'is-top': warehouseQueryInputInQueryMode }\" v-if=\"city\" @mouseleave=\"close\">\n <div class=\"dropdown-trigger\" @click=\"openWarehouse\">\n <div class=\"user-form\">\n <div class=\"control\" v-bind:class=\"{ 'is-loading': loadingWarehouse, 'is-danger': !warehouseIsValid }\">\n <input type=\"text\" class=\"input is-nolabel\" v-model=\"queryWarehouse\" @focus=\"focusWarehouse\" :placeholder=\"__('shop.order.warehouse_placeholder')\" autocomplete=\"chrome-off\" v-show=\"warehouseQueryInputInQueryMode\" ref=\"warehouseQueryInput\" />\n <input type=\"text\" class=\"input\" :value=\"warehouse ? warehouse.name : ''\" @focus=\"focusWarehouse\" placeholder=\" \" v-show=\"!warehouseQueryInputInQueryMode\" />\n <label class=\"label\" v-show=\"!warehouseQueryInputInQueryMode\">{{ __('shop.order.warehouse') }}</label>\n <svg>\n <use xlink:href=\"#arrow-down\"></use>\n </svg>\n </div>\n <p class=\"help is-danger\" v-if=\"!warehouseIsValid\">{{ __('auth.validation.required') }}</p>\n </div>\n </div>\n <div class=\"dropdown-menu\">\n <div class=\"dropdown-content\">\n <a class=\"dropdown-item\" v-for=\"item in warehouses\" v-bind:key=\"item.id\" @click=\"chooseWarehouse($event, item)\">{{ item.name }}</a>\n <div class=\"dropdown-item\" v-if=\"queryWarehouse && !warehouses.length && !loadingWarehouse\">{{ __('shop.checkout.shipment.warehouse.not_found') }}</div>\n </div>\n </div>\n </div>\n <div class=\"dropdown\" v-bind:class=\"{ 'is-top': warehouseQueryInputInQueryMode }\" v-else>\n <div class=\"dropdown-trigger\">\n <div class=\"user-form\">\n <div class=\"control\">\n <input type=\"text\" class=\"input\" disabled />\n <label class=\"label\">{{ __('shop.order.warehouse') }}</label>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, computed, watch, onMounted, defineComponent, nextTick, inject } from 'vue';\n\nexport default defineComponent({\n props: {\n data: Object,\n item: Object,\n commit: Function,\n takeUserData: Boolean,\n },\n setup(props) {\n const city = computed({\n get() {\n return props.data[props.item.code] ? props.data[props.item.code].city : userCity.value;\n },\n set(city) {\n const data = {\n city: city\n };\n\n props.commit(props.item.code, data, isValid(data));\n return city;\n }\n });\n\n const warehouse = computed({\n get() {\n return props.data[props.item.code] ? props.data[props.item.code].warehouse : userWarehouse.value;\n },\n set(warehouse) {\n const data = {\n city: city.value,\n warehouse: warehouse\n };\n\n props.commit(props.item.code, data, isValid(data));\n return warehouse;\n }\n });\n\n const userForm = ref(null);\n\n const isValid = (data) => {\n return !!(data.city && data.warehouse);\n };\n\n const shippingComponentValid = inject('shippingComponentValid');\n const shippingComponentUserData = inject('shippingComponentUserData');\n\n const isCityOpened = ref(false);\n const isWarehouseOpened = ref(false);\n const queryCity = ref('');\n const queryWarehouse = ref('');\n const cities = ref([]);\n const citiesPopular = ref([]);\n const warehouses = ref([]);\n const cityQueryInput = ref(null);\n const warehouseQueryInput = ref(null);\n const loadingCity = ref(false);\n const loadingWarehouse = ref(false);\n const cityQueryInputInQueryMode = ref(false);\n const warehouseQueryInputInQueryMode = ref(false);\n const userCity = ref(null);\n const userWarehouse = ref(null);\n\n const cityIsValid = computed(() => {\n return city.value ? true : (!isCityInputBlured.value ? true : false);\n });\n\n const isCityInputBlured = ref(false);\n\n const warehouseIsValid = computed(() => {\n return warehouse.value ? true : (!isWarehouseInputBlured.value ? true : false);\n });\n\n const isWarehouseInputBlured = ref(false);\n\n let typeTimeout;\n\n onMounted(() => {\n if (props.item.data && props.item.data.length) {\n citiesPopular.value = props.item.data;\n }\n\n if (props.takeUserData) {\n const loggedUser = inject('loggedUser');\n const code = loggedUser.value.shipping_data?.delivery;\n\n if (code === props.item.code) {\n setTimeout(() => {\n userCity.value = JSON.parse(JSON.stringify(loggedUser.value.shipping_data?.city));\n userWarehouse.value = JSON.parse(JSON.stringify(loggedUser.value.shipping_data?.warehouse));\n }, 300);\n }\n }\n\n shippingComponentValid.value = async () => {\n isCityInputBlured.value = true;\n isWarehouseInputBlured.value = true;\n\n if (props.item.params?.is_other_recipient && userForm.value) {\n const valid = await userForm.value.isValid();\n\n if (valid) {\n shippingComponentUserData.value = userForm.value.getValue();\n }\n\n return !!(city.value && warehouse.value && valid);\n }\n\n return !!(city.value && warehouse.value);\n };\n });\n\n const openCity = () => {\n isCityOpened.value = true;\n };\n\n const openWarehouse = () => {\n isWarehouseOpened.value = true;\n };\n\n const close = () => {\n isCityOpened.value = false;\n isWarehouseOpened.value = false;\n\n cityQueryInputInQueryMode.value = false;\n warehouseQueryInputInQueryMode.value = false;\n\n isCityInputBlured.value = true;\n isWarehouseInputBlured.value = true;\n };\n\n const chooseCity = (e, item) => {\n e.stopPropagation();\n\n city.value = item;\n //warehouse.value = null;\n warehouses.value = [];\n queryWarehouse.value = '';\n\n cityQueryInputInQueryMode.value = false;\n\n $http\n .post($ziggy('api.delivery-ukr-poshta'), {\n city: item.id,\n action: 'warehouses'\n })\n .then((response) => {\n warehouses.value = response.data.warehouses;\n })\n .finally(() => {\n loadingWarehouse.value = false;\n });\n\n close();\n };\n\n const chooseWarehouse = (e, item) => {\n e.stopPropagation();\n\n warehouse.value = item;\n warehouseQueryInputInQueryMode.value = false;\n warehouse.value = item;\n\n close();\n };\n\n window.addEventListener('keyup', (e) => {\n if ((isCityOpened.value || isWarehouseOpened.value) && e.key === 'Escape') {\n close();\n }\n });\n\n window.addEventListener('click', (e) => {\n if ((isCityOpened.value || isWarehouseOpened.value) && !e.target.closest('.dropdown')) {\n close();\n }\n });\n\n watch(queryCity, (q) => {\n clearTimeout(typeTimeout);\n city.value = null;\n\n if (q) {\n loadingCity.value = true;\n\n typeTimeout = setTimeout(() => {\n $http\n .post($ziggy('api.delivery-ukr-poshta'), {\n q: q,\n action: 'cities'\n })\n .then((response) => {\n cities.value = response.data.cities;\n })\n .finally(() => {\n loadingCity.value = false;\n });\n }, 400);\n }\n });\n\n watch(queryWarehouse, (q) => {\n clearTimeout(typeTimeout);\n\n if (q) {\n loadingWarehouse.value = true;\n\n typeTimeout = setTimeout(() => {\n $http\n .post($ziggy('api.delivery-ukr-poshta'), {\n q: q,\n city: city.value.id,\n action: 'warehouses'\n })\n .then((response) => {\n warehouses.value = response.data.warehouses;\n })\n .finally(() => {\n loadingWarehouse.value = false;\n });\n }, 400);\n } else {\n warehouse.value = null;\n warehouses.value = [];\n }\n });\n\n const focusWarehouse = () => {\n isWarehouseInputBlured.value = false;\n isCityOpened.value = false;\n cityQueryInputInQueryMode.value = false;\n\n if (!warehouseQueryInputInQueryMode.value) {\n warehouseQueryInputInQueryMode.value = true;\n\n nextTick(() => {\n warehouseQueryInput.value.value = ' ';\n warehouseQueryInput.value.focus();\n });\n }\n };\n\n const focusCity = () => {\n isCityInputBlured.value = false;\n isWarehouseInputBlured.value = false;\n isWarehouseOpened.value = false;\n warehouseQueryInputInQueryMode.value = false;\n\n if (!cityQueryInputInQueryMode.value) {\n cityQueryInputInQueryMode.value = true;\n\n nextTick(() => {\n cityQueryInput.value.value = ' ';\n cityQueryInput.value.focus();\n });\n }\n };\n\n return {\n isCityOpened,\n isWarehouseOpened,\n openCity,\n openWarehouse,\n cities,\n citiesPopular,\n warehouses,\n chooseCity,\n chooseWarehouse,\n queryCity,\n queryWarehouse,\n city,\n warehouse,\n loadingCity,\n loadingWarehouse,\n focusWarehouse,\n focusCity,\n city,\n warehouse,\n cityQueryInput,\n warehouseQueryInput,\n cityQueryInputInQueryMode,\n warehouseQueryInputInQueryMode,\n userForm,\n cityIsValid,\n warehouseIsValid\n };\n }\n});\n</script>\n","<template>\n <div class=\"component ukrposhta-wrapper\">\n <checkout-shipping-other-recipient v-if=\"item.params?.is_other_recipient\" ref=\"userForm\"></checkout-shipping-other-recipient>\n <div class=\"dropdown\" v-bind:class=\"{ 'is-active': isCityOpened, 'is-top': cityQueryInputInQueryMode }\" @mouseleave=\"close\">\n <div class=\"dropdown-trigger\" @click=\"openCity\">\n <div class=\"user-form\">\n <div class=\"control\" v-bind:class=\"{ 'is-loading': loadingCity, 'is-danger': !cityIsValid }\">\n <input type=\"text\" class=\"input is-nolabel\" v-model=\"queryCity\" @focus=\"focusCity\" :placeholder=\"__('shop.order.city_placeholder')\" autocomplete=\"chrome-off\" v-show=\"cityQueryInputInQueryMode\" ref=\"cityQueryInput\" />\n <input type=\"text\" class=\"input\" :value=\"city ? city.name : ''\" @focus=\"focusCity\" placeholder=\" \" v-show=\"!cityQueryInputInQueryMode\" />\n <label class=\"label\" v-show=\"!cityQueryInputInQueryMode\">{{ __('shop.order.city') }}</label>\n <svg>\n <use xlink:href=\"#arrow-down\"></use>\n </svg>\n </div>\n <p class=\"help is-danger\" v-if=\"!cityIsValid\">{{ __('auth.validation.required') }}</p>\n </div>\n </div>\n <div class=\"dropdown-menu\">\n <div class=\"dropdown-content\">\n <a class=\"dropdown-item\" v-for=\"item in queryCity ? cities : citiesPopular\" v-bind:key=\"item.id\" @click=\"chooseCity($event, item)\">{{ item.name }}</a>\n <div class=\"dropdown-item\" v-if=\"queryCity && !cities.length && !loadingCity\">{{ __('shop.checkout.shipment.warehouse.not_found') }}</div>\n </div>\n </div>\n </div>\n <div class=\"dropdown\" v-bind:class=\"{ 'is-active': isWarehouseOpened, 'is-top': warehouseQueryInputInQueryMode }\" v-if=\"city\" @mouseleave=\"close\">\n <div class=\"dropdown-trigger\" @click=\"openWarehouse\">\n <div class=\"user-form\">\n <div class=\"control\" v-bind:class=\"{ 'is-loading': loadingWarehouse, 'is-danger': !warehouseIsValid }\">\n <input type=\"text\" class=\"input is-nolabel\" v-model=\"queryWarehouse\" @focus=\"focusWarehouse\" :placeholder=\"__('shop.order.warehouse_placeholder')\" autocomplete=\"chrome-off\" v-show=\"warehouseQueryInputInQueryMode\" ref=\"warehouseQueryInput\" />\n <input type=\"text\" class=\"input\" :value=\"warehouse ? warehouse.name : ''\" @focus=\"focusWarehouse\" placeholder=\" \" v-show=\"!warehouseQueryInputInQueryMode\" />\n <label class=\"label\" v-show=\"!warehouseQueryInputInQueryMode\">{{ __('shop.order.warehouse') }}</label>\n <svg>\n <use xlink:href=\"#arrow-down\"></use>\n </svg>\n </div>\n <p class=\"help is-danger\" v-if=\"!warehouseIsValid\">{{ __('auth.validation.required') }}</p>\n </div>\n </div>\n <div class=\"dropdown-menu\">\n <div class=\"dropdown-content\">\n <a class=\"dropdown-item\" v-for=\"item in warehouses\" v-bind:key=\"item.id\" @click=\"chooseWarehouse($event, item)\">{{ item.name }}</a>\n <div class=\"dropdown-item\" v-if=\"queryWarehouse && !warehouses.length && !loadingWarehouse\">{{ __('shop.checkout.shipment.warehouse.not_found') }}</div>\n </div>\n </div>\n </div>\n <div class=\"dropdown\" v-bind:class=\"{ 'is-top': warehouseQueryInputInQueryMode }\" v-else>\n <div class=\"dropdown-trigger\">\n <div class=\"user-form\">\n <div class=\"control\">\n <input type=\"text\" class=\"input\" disabled />\n <label class=\"label\">{{ __('shop.order.warehouse') }}</label>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, computed, watch, onMounted, defineComponent, nextTick, inject } from 'vue';\n\nexport default defineComponent({\n props: {\n data: Object,\n item: Object,\n commit: Function,\n takeUserData: Boolean,\n },\n setup(props) {\n const city = computed({\n get() {\n return props.data[props.item.code] ? props.data[props.item.code].city : userCity.value;\n },\n set(city) {\n const data = {\n city: city\n };\n\n props.commit(props.item.code, data, isValid(data));\n return city;\n }\n });\n\n const warehouse = computed({\n get() {\n return props.data[props.item.code] ? props.data[props.item.code].warehouse : userWarehouse.value;\n },\n set(warehouse) {\n const data = {\n city: city.value,\n warehouse: warehouse\n };\n\n props.commit(props.item.code, data, isValid(data));\n return warehouse;\n }\n });\n\n const userForm = ref(null);\n\n const isValid = (data) => {\n return !!(data.city && data.warehouse);\n };\n\n const shippingComponentValid = inject('shippingComponentValid');\n const shippingComponentUserData = inject('shippingComponentUserData');\n\n const isCityOpened = ref(false);\n const isWarehouseOpened = ref(false);\n const queryCity = ref('');\n const queryWarehouse = ref('');\n const cities = ref([]);\n const citiesPopular = ref([]);\n const warehouses = ref([]);\n const cityQueryInput = ref(null);\n const warehouseQueryInput = ref(null);\n const loadingCity = ref(false);\n const loadingWarehouse = ref(false);\n const cityQueryInputInQueryMode = ref(false);\n const warehouseQueryInputInQueryMode = ref(false);\n const userCity = ref(null);\n const userWarehouse = ref(null);\n\n const cityIsValid = computed(() => {\n return city.value ? true : (!isCityInputBlured.value ? true : false);\n });\n\n const isCityInputBlured = ref(false);\n\n const warehouseIsValid = computed(() => {\n return warehouse.value ? true : (!isWarehouseInputBlured.value ? true : false);\n });\n\n const isWarehouseInputBlured = ref(false);\n\n let typeTimeout;\n\n onMounted(() => {\n if (props.item.data && props.item.data.length) {\n citiesPopular.value = props.item.data;\n }\n\n if (props.takeUserData) {\n const loggedUser = inject('loggedUser');\n const code = loggedUser.value.shipping_data?.delivery;\n\n if (code === props.item.code) {\n setTimeout(() => {\n userCity.value = JSON.parse(JSON.stringify(loggedUser.value.shipping_data?.city));\n userWarehouse.value = JSON.parse(JSON.stringify(loggedUser.value.shipping_data?.warehouse));\n }, 300);\n }\n }\n\n shippingComponentValid.value = async () => {\n isCityInputBlured.value = true;\n isWarehouseInputBlured.value = true;\n\n if (props.item.params?.is_other_recipient && userForm.value) {\n const valid = await userForm.value.isValid();\n\n if (valid) {\n shippingComponentUserData.value = userForm.value.getValue();\n }\n\n return !!(city.value && warehouse.value && valid);\n }\n\n return !!(city.value && warehouse.value);\n };\n });\n\n const openCity = () => {\n isCityOpened.value = true;\n };\n\n const openWarehouse = () => {\n isWarehouseOpened.value = true;\n };\n\n const close = () => {\n isCityOpened.value = false;\n isWarehouseOpened.value = false;\n\n cityQueryInputInQueryMode.value = false;\n warehouseQueryInputInQueryMode.value = false;\n\n isCityInputBlured.value = true;\n isWarehouseInputBlured.value = true;\n };\n\n const chooseCity = (e, item) => {\n e.stopPropagation();\n\n city.value = item;\n //warehouse.value = null;\n warehouses.value = [];\n queryWarehouse.value = '';\n\n cityQueryInputInQueryMode.value = false;\n\n $http\n .post($ziggy('api.delivery-ukr-poshta'), {\n city: item.id,\n action: 'warehouses'\n })\n .then((response) => {\n warehouses.value = response.data.warehouses;\n })\n .finally(() => {\n loadingWarehouse.value = false;\n });\n\n close();\n };\n\n const chooseWarehouse = (e, item) => {\n e.stopPropagation();\n\n warehouse.value = item;\n warehouseQueryInputInQueryMode.value = false;\n warehouse.value = item;\n\n close();\n };\n\n window.addEventListener('keyup', (e) => {\n if ((isCityOpened.value || isWarehouseOpened.value) && e.key === 'Escape') {\n close();\n }\n });\n\n window.addEventListener('click', (e) => {\n if ((isCityOpened.value || isWarehouseOpened.value) && !e.target.closest('.dropdown')) {\n close();\n }\n });\n\n watch(queryCity, (q) => {\n clearTimeout(typeTimeout);\n city.value = null;\n\n if (q) {\n loadingCity.value = true;\n\n typeTimeout = setTimeout(() => {\n $http\n .post($ziggy('api.delivery-ukr-poshta'), {\n q: q,\n action: 'cities'\n })\n .then((response) => {\n cities.value = response.data.cities;\n })\n .finally(() => {\n loadingCity.value = false;\n });\n }, 400);\n }\n });\n\n watch(queryWarehouse, (q) => {\n clearTimeout(typeTimeout);\n\n if (q) {\n loadingWarehouse.value = true;\n\n typeTimeout = setTimeout(() => {\n $http\n .post($ziggy('api.delivery-ukr-poshta'), {\n q: q,\n city: city.value.id,\n action: 'warehouses'\n })\n .then((response) => {\n warehouses.value = response.data.warehouses;\n })\n .finally(() => {\n loadingWarehouse.value = false;\n });\n }, 400);\n } else {\n warehouse.value = null;\n warehouses.value = [];\n }\n });\n\n const focusWarehouse = () => {\n isWarehouseInputBlured.value = false;\n isCityOpened.value = false;\n cityQueryInputInQueryMode.value = false;\n\n if (!warehouseQueryInputInQueryMode.value) {\n warehouseQueryInputInQueryMode.value = true;\n\n nextTick(() => {\n warehouseQueryInput.value.value = ' ';\n warehouseQueryInput.value.focus();\n });\n }\n };\n\n const focusCity = () => {\n isCityInputBlured.value = false;\n isWarehouseInputBlured.value = false;\n isWarehouseOpened.value = false;\n warehouseQueryInputInQueryMode.value = false;\n\n if (!cityQueryInputInQueryMode.value) {\n cityQueryInputInQueryMode.value = true;\n\n nextTick(() => {\n cityQueryInput.value.value = ' ';\n cityQueryInput.value.focus();\n });\n }\n };\n\n return {\n isCityOpened,\n isWarehouseOpened,\n openCity,\n openWarehouse,\n cities,\n citiesPopular,\n warehouses,\n chooseCity,\n chooseWarehouse,\n queryCity,\n queryWarehouse,\n city,\n warehouse,\n loadingCity,\n loadingWarehouse,\n focusWarehouse,\n focusCity,\n city,\n warehouse,\n cityQueryInput,\n warehouseQueryInput,\n cityQueryInputInQueryMode,\n warehouseQueryInputInQueryMode,\n userForm,\n cityIsValid,\n warehouseIsValid\n };\n }\n});\n</script>\n"],"names":["script","defineComponent","props","data","Object","item","commit","Function","takeUserData","Boolean","setup","typeTimeout","city","computed","get","code","userCity","value","set","isValid","warehouse","userWarehouse","userForm","ref","shippingComponentValid","inject","shippingComponentUserData","isCityOpened","isWarehouseOpened","queryCity","queryWarehouse","cities","citiesPopular","warehouses","cityQueryInput","warehouseQueryInput","loadingCity","loadingWarehouse","cityQueryInputInQueryMode","warehouseQueryInputInQueryMode","cityIsValid","isCityInputBlured","warehouseIsValid","isWarehouseInputBlured","onMounted","length","_loggedUser$value$shi","loggedUser","shipping_data","delivery","setTimeout","_loggedUser$value$shi2","_loggedUser$value$shi3","JSON","parse","stringify","_exit","_invoke","_props$item$params","then","direct","params","is_other_recipient","valid","getValue","_temp","Promise","resolve","_result","args","i","arguments","e","close","window","addEventListener","key","target","closest","watch","q","clearTimeout","$http","post","$ziggy","action","response","id","_defineProperty","openCity","openWarehouse","chooseCity","stopPropagation","chooseWarehouse","focusWarehouse","nextTick","focus","focusCity","_hoisted_1","class","_hoisted_2","_createElementVNode","createElementVNode","xlink:href","_hoisted_7","_hoisted_8","_hoisted_11","_hoisted_16","_hoisted_17","_hoisted_20","_hoisted_21","_hoisted_22","type","disabled","_hoisted_24","_openBlock","openBlock","_createElementBlock","_ctx","_ctx$item$params","_createBlock","createBlock","_component_checkout_shipping_other_recipient","_normalizeClass","is-active","onMouseleave","apply","onClick","is-loading","$event","onFocus","placeholder","__","autocomplete","name","_withDirectives","_hoisted_5","_hoisted_6","_toDisplayString","createElementBlock","_Fragment","_hoisted_9","_hoisted_10","_hoisted_14","_hoisted_15","_renderList","_hoisted_18","_hoisted_19","toDisplayString","is-top","_hoisted_23"],"mappings":"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"}
1
+ {"version":3,"file":"CheckoutShippingUkrposhtaWarehouse.js","sources":["../../../../../src/components/shop/order/shipping/CheckoutShippingUkrposhtaWarehouse.vue","../../../../../src/components/shop/order/shipping/CheckoutShippingUkrposhtaWarehouse.vue?vue&type=template&id=783b4587&lang.js"],"sourcesContent":["<template>\n <div class=\"component ukrposhta-wrapper\">\n <checkout-shipping-other-recipient v-if=\"item.params?.is_other_recipient\" ref=\"userForm\"></checkout-shipping-other-recipient>\n <div class=\"dropdown\" v-bind:class=\"{ 'is-active': isCityOpened, 'is-top': cityQueryInputInQueryMode }\" @mouseleave=\"close\">\n <div class=\"dropdown-trigger\" @click=\"openCity\">\n <div class=\"user-form\">\n <div class=\"control\" v-bind:class=\"{ 'is-loading': loadingCity, 'is-danger': !cityIsValid }\">\n <input type=\"text\" class=\"input is-nolabel\" v-model=\"queryCity\" @focus=\"focusCity\" :placeholder=\"__('shop.order.city_placeholder')\" autocomplete=\"chrome-off\" v-show=\"cityQueryInputInQueryMode\" ref=\"cityQueryInput\" />\n <input type=\"text\" class=\"input\" :value=\"city ? city.name : ''\" @focus=\"focusCity\" placeholder=\" \" v-show=\"!cityQueryInputInQueryMode\" />\n <label class=\"label\" v-show=\"!cityQueryInputInQueryMode\">{{ __('shop.order.city') }}</label>\n <svg>\n <use xlink:href=\"#arrow-down\"></use>\n </svg>\n </div>\n <p class=\"help is-danger\" v-if=\"!cityIsValid\">{{ __('auth.validation.required') }}</p>\n </div>\n </div>\n <div class=\"dropdown-menu\">\n <div class=\"dropdown-content\">\n <a class=\"dropdown-item\" v-for=\"item in queryCity ? cities : citiesPopular\" v-bind:key=\"item.id\" @click=\"chooseCity($event, item)\">{{ item.name }}</a>\n <div class=\"dropdown-item\" v-if=\"queryCity && !cities.length && !loadingCity\">{{ __('shop.checkout.shipment.warehouse.not_found') }}</div>\n </div>\n </div>\n </div>\n <div class=\"dropdown\" v-bind:class=\"{ 'is-active': isWarehouseOpened, 'is-top': warehouseQueryInputInQueryMode }\" v-if=\"city\" @mouseleave=\"close\">\n <div class=\"dropdown-trigger\" @click=\"openWarehouse\">\n <div class=\"user-form\">\n <div class=\"control\" v-bind:class=\"{ 'is-loading': loadingWarehouse, 'is-danger': !warehouseIsValid }\">\n <input type=\"text\" class=\"input is-nolabel\" v-model=\"queryWarehouse\" @focus=\"focusWarehouse\" :placeholder=\"__('shop.order.warehouse_placeholder')\" autocomplete=\"chrome-off\" v-show=\"warehouseQueryInputInQueryMode\" ref=\"warehouseQueryInput\" />\n <input type=\"text\" class=\"input\" :value=\"warehouse ? warehouse.name : ''\" @focus=\"focusWarehouse\" placeholder=\" \" v-show=\"!warehouseQueryInputInQueryMode\" />\n <label class=\"label\" v-show=\"!warehouseQueryInputInQueryMode\">{{ __('shop.order.warehouse') }}</label>\n <svg>\n <use xlink:href=\"#arrow-down\"></use>\n </svg>\n </div>\n <p class=\"help is-danger\" v-if=\"!warehouseIsValid\">{{ __('auth.validation.required') }}</p>\n </div>\n </div>\n <div class=\"dropdown-menu\">\n <div class=\"dropdown-content\">\n <a class=\"dropdown-item\" v-for=\"item in warehouses\" v-bind:key=\"item.id\" @click=\"chooseWarehouse($event, item)\">{{ item.name }}</a>\n <div class=\"dropdown-item\" v-if=\"queryWarehouse && !warehouses.length && !loadingWarehouse\">{{ __('shop.checkout.shipment.warehouse.not_found') }}</div>\n </div>\n </div>\n </div>\n <div class=\"dropdown\" v-bind:class=\"{ 'is-top': warehouseQueryInputInQueryMode }\" v-else>\n <div class=\"dropdown-trigger\">\n <div class=\"user-form\">\n <div class=\"control\">\n <input type=\"text\" class=\"input\" disabled />\n <label class=\"label\">{{ __('shop.order.warehouse') }}</label>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, computed, watch, onMounted, defineComponent, nextTick, inject } from 'vue';\n\nexport default defineComponent({\n props: {\n data: Object,\n item: Object,\n commit: Function,\n takeUserData: Boolean,\n },\n setup(props) {\n const city = computed({\n get() {\n return props.data[props.item.code] ? props.data[props.item.code].city : userCity.value;\n },\n set(city) {\n const data = {\n city: city\n };\n\n props.commit(props.item.code, data, isValid(data));\n return city;\n }\n });\n\n const warehouse = computed({\n get() {\n return props.data[props.item.code] ? props.data[props.item.code].warehouse : userWarehouse.value;\n },\n set(warehouse) {\n const data = {\n city: city.value,\n warehouse: warehouse\n };\n\n props.commit(props.item.code, data, isValid(data));\n return warehouse;\n }\n });\n\n const userForm = ref(null);\n\n const isValid = (data) => {\n return !!(data.city && data.warehouse);\n };\n\n const shippingComponentValid = inject('shippingComponentValid');\n const shippingComponentUserData = inject('shippingComponentUserData');\n\n const isCityOpened = ref(false);\n const isWarehouseOpened = ref(false);\n const queryCity = ref('');\n const queryWarehouse = ref('');\n const cities = ref([]);\n const citiesPopular = ref([]);\n const warehouses = ref([]);\n const cityQueryInput = ref(null);\n const warehouseQueryInput = ref(null);\n const loadingCity = ref(false);\n const loadingWarehouse = ref(false);\n const cityQueryInputInQueryMode = ref(false);\n const warehouseQueryInputInQueryMode = ref(false);\n const userCity = ref(null);\n const userWarehouse = ref(null);\n\n const cityIsValid = computed(() => {\n return city.value ? true : (!isCityInputBlured.value ? true : false);\n });\n\n const isCityInputBlured = ref(false);\n\n const warehouseIsValid = computed(() => {\n return warehouse.value ? true : (!isWarehouseInputBlured.value ? true : false);\n });\n\n const isWarehouseInputBlured = ref(false);\n\n let typeTimeout;\n\n onMounted(() => {\n if (props.item.data && props.item.data.length) {\n citiesPopular.value = props.item.data;\n }\n\n if (props.takeUserData) {\n const loggedUser = inject('loggedUser');\n const code = loggedUser.value.shipping_data?.delivery;\n\n if (code === props.item.code) {\n setTimeout(() => {\n userCity.value = JSON.parse(JSON.stringify(loggedUser.value.shipping_data?.city));\n userWarehouse.value = JSON.parse(JSON.stringify(loggedUser.value.shipping_data?.warehouse));\n }, 300);\n }\n }\n\n shippingComponentValid.value = async () => {\n isCityInputBlured.value = true;\n isWarehouseInputBlured.value = true;\n\n if (props.item.params?.is_other_recipient && userForm.value) {\n const valid = await userForm.value.isValid();\n\n if (valid) {\n shippingComponentUserData.value = userForm.value.getValue();\n }\n\n return !!(city.value && warehouse.value && valid);\n }\n\n return !!(city.value && warehouse.value);\n };\n });\n\n const openCity = () => {\n isCityOpened.value = true;\n };\n\n const openWarehouse = () => {\n isWarehouseOpened.value = true;\n };\n\n const close = () => {\n isCityOpened.value = false;\n isWarehouseOpened.value = false;\n\n cityQueryInputInQueryMode.value = false;\n warehouseQueryInputInQueryMode.value = false;\n\n isCityInputBlured.value = true;\n isWarehouseInputBlured.value = true;\n };\n\n const chooseCity = (e, item) => {\n e.stopPropagation();\n\n city.value = item;\n //warehouse.value = null;\n warehouses.value = [];\n queryWarehouse.value = '';\n\n cityQueryInputInQueryMode.value = false;\n\n $http\n .post($ziggy('api.delivery-ukr-poshta'), {\n city: item.id,\n action: 'warehouses'\n })\n .then((response) => {\n warehouses.value = response.data.warehouses;\n })\n .finally(() => {\n loadingWarehouse.value = false;\n });\n\n close();\n };\n\n const chooseWarehouse = (e, item) => {\n e.stopPropagation();\n\n warehouse.value = item;\n warehouseQueryInputInQueryMode.value = false;\n warehouse.value = item;\n\n close();\n };\n\n window.addEventListener('keyup', (e) => {\n if ((isCityOpened.value || isWarehouseOpened.value) && e.key === 'Escape') {\n close();\n }\n });\n\n window.addEventListener('click', (e) => {\n if ((isCityOpened.value || isWarehouseOpened.value) && !e.target.closest('.dropdown')) {\n close();\n }\n });\n\n watch(queryCity, (q) => {\n clearTimeout(typeTimeout);\n city.value = null;\n\n if (q) {\n loadingCity.value = true;\n\n typeTimeout = setTimeout(() => {\n $http\n .post($ziggy('api.delivery-ukr-poshta'), {\n q: q,\n action: 'cities'\n })\n .then((response) => {\n cities.value = response.data.cities;\n })\n .finally(() => {\n loadingCity.value = false;\n });\n }, 400);\n }\n });\n\n watch(queryWarehouse, (q) => {\n clearTimeout(typeTimeout);\n\n if (q) {\n loadingWarehouse.value = true;\n\n typeTimeout = setTimeout(() => {\n $http\n .post($ziggy('api.delivery-ukr-poshta'), {\n q: q,\n city: city.value.id,\n action: 'warehouses'\n })\n .then((response) => {\n warehouses.value = response.data.warehouses;\n })\n .finally(() => {\n loadingWarehouse.value = false;\n });\n }, 400);\n } else {\n warehouse.value = null;\n warehouses.value = [];\n }\n });\n\n const focusWarehouse = () => {\n isWarehouseInputBlured.value = false;\n isCityOpened.value = false;\n cityQueryInputInQueryMode.value = false;\n\n if (!warehouseQueryInputInQueryMode.value) {\n warehouseQueryInputInQueryMode.value = true;\n\n nextTick(() => {\n warehouseQueryInput.value.value = ' ';\n warehouseQueryInput.value.focus();\n });\n }\n };\n\n const focusCity = () => {\n isCityInputBlured.value = false;\n isWarehouseInputBlured.value = false;\n isWarehouseOpened.value = false;\n warehouseQueryInputInQueryMode.value = false;\n\n if (!cityQueryInputInQueryMode.value) {\n cityQueryInputInQueryMode.value = true;\n\n nextTick(() => {\n cityQueryInput.value.value = ' ';\n cityQueryInput.value.focus();\n });\n }\n };\n\n return {\n isCityOpened,\n isWarehouseOpened,\n openCity,\n openWarehouse,\n cities,\n citiesPopular,\n warehouses,\n chooseCity,\n chooseWarehouse,\n queryCity,\n queryWarehouse,\n city,\n warehouse,\n loadingCity,\n loadingWarehouse,\n focusWarehouse,\n focusCity,\n city,\n warehouse,\n cityQueryInput,\n warehouseQueryInput,\n cityQueryInputInQueryMode,\n warehouseQueryInputInQueryMode,\n userForm,\n cityIsValid,\n warehouseIsValid\n };\n }\n});\n</script>\n","<template>\n <div class=\"component ukrposhta-wrapper\">\n <checkout-shipping-other-recipient v-if=\"item.params?.is_other_recipient\" ref=\"userForm\"></checkout-shipping-other-recipient>\n <div class=\"dropdown\" v-bind:class=\"{ 'is-active': isCityOpened, 'is-top': cityQueryInputInQueryMode }\" @mouseleave=\"close\">\n <div class=\"dropdown-trigger\" @click=\"openCity\">\n <div class=\"user-form\">\n <div class=\"control\" v-bind:class=\"{ 'is-loading': loadingCity, 'is-danger': !cityIsValid }\">\n <input type=\"text\" class=\"input is-nolabel\" v-model=\"queryCity\" @focus=\"focusCity\" :placeholder=\"__('shop.order.city_placeholder')\" autocomplete=\"chrome-off\" v-show=\"cityQueryInputInQueryMode\" ref=\"cityQueryInput\" />\n <input type=\"text\" class=\"input\" :value=\"city ? city.name : ''\" @focus=\"focusCity\" placeholder=\" \" v-show=\"!cityQueryInputInQueryMode\" />\n <label class=\"label\" v-show=\"!cityQueryInputInQueryMode\">{{ __('shop.order.city') }}</label>\n <svg>\n <use xlink:href=\"#arrow-down\"></use>\n </svg>\n </div>\n <p class=\"help is-danger\" v-if=\"!cityIsValid\">{{ __('auth.validation.required') }}</p>\n </div>\n </div>\n <div class=\"dropdown-menu\">\n <div class=\"dropdown-content\">\n <a class=\"dropdown-item\" v-for=\"item in queryCity ? cities : citiesPopular\" v-bind:key=\"item.id\" @click=\"chooseCity($event, item)\">{{ item.name }}</a>\n <div class=\"dropdown-item\" v-if=\"queryCity && !cities.length && !loadingCity\">{{ __('shop.checkout.shipment.warehouse.not_found') }}</div>\n </div>\n </div>\n </div>\n <div class=\"dropdown\" v-bind:class=\"{ 'is-active': isWarehouseOpened, 'is-top': warehouseQueryInputInQueryMode }\" v-if=\"city\" @mouseleave=\"close\">\n <div class=\"dropdown-trigger\" @click=\"openWarehouse\">\n <div class=\"user-form\">\n <div class=\"control\" v-bind:class=\"{ 'is-loading': loadingWarehouse, 'is-danger': !warehouseIsValid }\">\n <input type=\"text\" class=\"input is-nolabel\" v-model=\"queryWarehouse\" @focus=\"focusWarehouse\" :placeholder=\"__('shop.order.warehouse_placeholder')\" autocomplete=\"chrome-off\" v-show=\"warehouseQueryInputInQueryMode\" ref=\"warehouseQueryInput\" />\n <input type=\"text\" class=\"input\" :value=\"warehouse ? warehouse.name : ''\" @focus=\"focusWarehouse\" placeholder=\" \" v-show=\"!warehouseQueryInputInQueryMode\" />\n <label class=\"label\" v-show=\"!warehouseQueryInputInQueryMode\">{{ __('shop.order.warehouse') }}</label>\n <svg>\n <use xlink:href=\"#arrow-down\"></use>\n </svg>\n </div>\n <p class=\"help is-danger\" v-if=\"!warehouseIsValid\">{{ __('auth.validation.required') }}</p>\n </div>\n </div>\n <div class=\"dropdown-menu\">\n <div class=\"dropdown-content\">\n <a class=\"dropdown-item\" v-for=\"item in warehouses\" v-bind:key=\"item.id\" @click=\"chooseWarehouse($event, item)\">{{ item.name }}</a>\n <div class=\"dropdown-item\" v-if=\"queryWarehouse && !warehouses.length && !loadingWarehouse\">{{ __('shop.checkout.shipment.warehouse.not_found') }}</div>\n </div>\n </div>\n </div>\n <div class=\"dropdown\" v-bind:class=\"{ 'is-top': warehouseQueryInputInQueryMode }\" v-else>\n <div class=\"dropdown-trigger\">\n <div class=\"user-form\">\n <div class=\"control\">\n <input type=\"text\" class=\"input\" disabled />\n <label class=\"label\">{{ __('shop.order.warehouse') }}</label>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, computed, watch, onMounted, defineComponent, nextTick, inject } from 'vue';\n\nexport default defineComponent({\n props: {\n data: Object,\n item: Object,\n commit: Function,\n takeUserData: Boolean,\n },\n setup(props) {\n const city = computed({\n get() {\n return props.data[props.item.code] ? props.data[props.item.code].city : userCity.value;\n },\n set(city) {\n const data = {\n city: city\n };\n\n props.commit(props.item.code, data, isValid(data));\n return city;\n }\n });\n\n const warehouse = computed({\n get() {\n return props.data[props.item.code] ? props.data[props.item.code].warehouse : userWarehouse.value;\n },\n set(warehouse) {\n const data = {\n city: city.value,\n warehouse: warehouse\n };\n\n props.commit(props.item.code, data, isValid(data));\n return warehouse;\n }\n });\n\n const userForm = ref(null);\n\n const isValid = (data) => {\n return !!(data.city && data.warehouse);\n };\n\n const shippingComponentValid = inject('shippingComponentValid');\n const shippingComponentUserData = inject('shippingComponentUserData');\n\n const isCityOpened = ref(false);\n const isWarehouseOpened = ref(false);\n const queryCity = ref('');\n const queryWarehouse = ref('');\n const cities = ref([]);\n const citiesPopular = ref([]);\n const warehouses = ref([]);\n const cityQueryInput = ref(null);\n const warehouseQueryInput = ref(null);\n const loadingCity = ref(false);\n const loadingWarehouse = ref(false);\n const cityQueryInputInQueryMode = ref(false);\n const warehouseQueryInputInQueryMode = ref(false);\n const userCity = ref(null);\n const userWarehouse = ref(null);\n\n const cityIsValid = computed(() => {\n return city.value ? true : (!isCityInputBlured.value ? true : false);\n });\n\n const isCityInputBlured = ref(false);\n\n const warehouseIsValid = computed(() => {\n return warehouse.value ? true : (!isWarehouseInputBlured.value ? true : false);\n });\n\n const isWarehouseInputBlured = ref(false);\n\n let typeTimeout;\n\n onMounted(() => {\n if (props.item.data && props.item.data.length) {\n citiesPopular.value = props.item.data;\n }\n\n if (props.takeUserData) {\n const loggedUser = inject('loggedUser');\n const code = loggedUser.value.shipping_data?.delivery;\n\n if (code === props.item.code) {\n setTimeout(() => {\n userCity.value = JSON.parse(JSON.stringify(loggedUser.value.shipping_data?.city));\n userWarehouse.value = JSON.parse(JSON.stringify(loggedUser.value.shipping_data?.warehouse));\n }, 300);\n }\n }\n\n shippingComponentValid.value = async () => {\n isCityInputBlured.value = true;\n isWarehouseInputBlured.value = true;\n\n if (props.item.params?.is_other_recipient && userForm.value) {\n const valid = await userForm.value.isValid();\n\n if (valid) {\n shippingComponentUserData.value = userForm.value.getValue();\n }\n\n return !!(city.value && warehouse.value && valid);\n }\n\n return !!(city.value && warehouse.value);\n };\n });\n\n const openCity = () => {\n isCityOpened.value = true;\n };\n\n const openWarehouse = () => {\n isWarehouseOpened.value = true;\n };\n\n const close = () => {\n isCityOpened.value = false;\n isWarehouseOpened.value = false;\n\n cityQueryInputInQueryMode.value = false;\n warehouseQueryInputInQueryMode.value = false;\n\n isCityInputBlured.value = true;\n isWarehouseInputBlured.value = true;\n };\n\n const chooseCity = (e, item) => {\n e.stopPropagation();\n\n city.value = item;\n //warehouse.value = null;\n warehouses.value = [];\n queryWarehouse.value = '';\n\n cityQueryInputInQueryMode.value = false;\n\n $http\n .post($ziggy('api.delivery-ukr-poshta'), {\n city: item.id,\n action: 'warehouses'\n })\n .then((response) => {\n warehouses.value = response.data.warehouses;\n })\n .finally(() => {\n loadingWarehouse.value = false;\n });\n\n close();\n };\n\n const chooseWarehouse = (e, item) => {\n e.stopPropagation();\n\n warehouse.value = item;\n warehouseQueryInputInQueryMode.value = false;\n warehouse.value = item;\n\n close();\n };\n\n window.addEventListener('keyup', (e) => {\n if ((isCityOpened.value || isWarehouseOpened.value) && e.key === 'Escape') {\n close();\n }\n });\n\n window.addEventListener('click', (e) => {\n if ((isCityOpened.value || isWarehouseOpened.value) && !e.target.closest('.dropdown')) {\n close();\n }\n });\n\n watch(queryCity, (q) => {\n clearTimeout(typeTimeout);\n city.value = null;\n\n if (q) {\n loadingCity.value = true;\n\n typeTimeout = setTimeout(() => {\n $http\n .post($ziggy('api.delivery-ukr-poshta'), {\n q: q,\n action: 'cities'\n })\n .then((response) => {\n cities.value = response.data.cities;\n })\n .finally(() => {\n loadingCity.value = false;\n });\n }, 400);\n }\n });\n\n watch(queryWarehouse, (q) => {\n clearTimeout(typeTimeout);\n\n if (q) {\n loadingWarehouse.value = true;\n\n typeTimeout = setTimeout(() => {\n $http\n .post($ziggy('api.delivery-ukr-poshta'), {\n q: q,\n city: city.value.id,\n action: 'warehouses'\n })\n .then((response) => {\n warehouses.value = response.data.warehouses;\n })\n .finally(() => {\n loadingWarehouse.value = false;\n });\n }, 400);\n } else {\n warehouse.value = null;\n warehouses.value = [];\n }\n });\n\n const focusWarehouse = () => {\n isWarehouseInputBlured.value = false;\n isCityOpened.value = false;\n cityQueryInputInQueryMode.value = false;\n\n if (!warehouseQueryInputInQueryMode.value) {\n warehouseQueryInputInQueryMode.value = true;\n\n nextTick(() => {\n warehouseQueryInput.value.value = ' ';\n warehouseQueryInput.value.focus();\n });\n }\n };\n\n const focusCity = () => {\n isCityInputBlured.value = false;\n isWarehouseInputBlured.value = false;\n isWarehouseOpened.value = false;\n warehouseQueryInputInQueryMode.value = false;\n\n if (!cityQueryInputInQueryMode.value) {\n cityQueryInputInQueryMode.value = true;\n\n nextTick(() => {\n cityQueryInput.value.value = ' ';\n cityQueryInput.value.focus();\n });\n }\n };\n\n return {\n isCityOpened,\n isWarehouseOpened,\n openCity,\n openWarehouse,\n cities,\n citiesPopular,\n warehouses,\n chooseCity,\n chooseWarehouse,\n queryCity,\n queryWarehouse,\n city,\n warehouse,\n loadingCity,\n loadingWarehouse,\n focusWarehouse,\n focusCity,\n city,\n warehouse,\n cityQueryInput,\n warehouseQueryInput,\n cityQueryInputInQueryMode,\n warehouseQueryInputInQueryMode,\n userForm,\n cityIsValid,\n warehouseIsValid\n };\n }\n});\n</script>\n"],"names":["script","defineComponent","props","data","Object","item","commit","Function","takeUserData","Boolean","setup","typeTimeout","city","computed","get","code","userCity","value","set","isValid","warehouse","userWarehouse","userForm","ref","shippingComponentValid","inject","shippingComponentUserData","isCityOpened","isWarehouseOpened","queryCity","queryWarehouse","cities","citiesPopular","warehouses","cityQueryInput","warehouseQueryInput","loadingCity","loadingWarehouse","cityQueryInputInQueryMode","warehouseQueryInputInQueryMode","cityIsValid","isCityInputBlured","warehouseIsValid","isWarehouseInputBlured","onMounted","length","_loggedUser$value$shi","loggedUser","shipping_data","delivery","setTimeout","_loggedUser$value$shi2","_loggedUser$value$shi3","JSON","parse","stringify","_exit","_invoke","_props$item$params","then","direct","params","is_other_recipient","valid","getValue","_temp","Promise","resolve","_result","args","i","arguments","e","close","window","addEventListener","key","target","closest","watch","q","clearTimeout","$http","post","$ziggy","action","response","id","_defineProperty","openCity","openWarehouse","chooseCity","stopPropagation","chooseWarehouse","focusWarehouse","nextTick","focus","focusCity","_hoisted_1","class","_hoisted_2","_createElementVNode","createElementVNode","xlink:href","_hoisted_7","_hoisted_8","_hoisted_11","_hoisted_16","_hoisted_17","_hoisted_20","_hoisted_21","_hoisted_22","type","disabled","_hoisted_24","_openBlock","openBlock","_createElementBlock","_ctx","_ctx$item$params","_createBlock","createBlock","_component_checkout_shipping_other_recipient","_normalizeClass","is-active","onMouseleave","apply","onClick","is-loading","$event","onFocus","placeholder","__","autocomplete","name","_withDirectives","_hoisted_5","_hoisted_6","_toDisplayString","createElementBlock","_Fragment","_hoisted_9","_hoisted_10","_hoisted_14","_hoisted_15","_renderList","_hoisted_18","_hoisted_19","toDisplayString","is-top","_hoisted_23"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Question.js","sources":["../../../../src/components/shop/reviews/Question.vue","../../../../src/components/shop/reviews/Question.vue?vue&type=template&id=22162317&lang.js"],"sourcesContent":["<template>\n <div class=\"shop-reviews\">\n <button class=\"button review-add\" @click=\"add\">{{ __(\"shop.question.add\") }}</button>\n <div class=\"modal\" v-bind:class=\"{ 'is-active': modal }\">\n <div class=\"modal-background\" @click=\"cancel\"></div>\n <div class=\"modal-content\">\n <button class=\"modal-close is-large\" @click=\"cancel\">\n <svg class=\"icon close\">\n <use xlink:href=\"#close\" />\n </svg>\n </button>\n <div class=\"box\">\n <div class=\"title\">{{ __(\"shop.question.title\") }}</div>\n <div class=\"shop-reviews-form\" 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 <div class=\"columns is-vcentered\">\n <div class=\"column\">\n <button class=\"button is-link\" type=\"submit\" v-bind:class=\"{\n 'is-loading': loading,\n }\">{{ __(\"shop.question.save\") }}</button>\n </div>\n <div class=\"column has-text-right\">\n <button class=\"button\" @click=\"cancel\">{{ __(\"shop.question.cancel\") }}</button>\n </div>\n </div>\n </div>\n </template>\n </SchemaForm>\n </div>\n <div class=\"shop-reviews-thanks\" v-show=\"thanks\">\n <div class=\"message\" v-html=\"__('shop.question.thanks')\"></div>\n <div class=\"mt-3\">\n <button class=\"button\" @click=\"cancel\">{{ __(\"shop.question.continue\") }}</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, markRaw, computed, defineComponent } from \"vue\";\nimport { useStore } from \"vuex\";\nimport { SchemaFormFactory, useSchemaForm } from \"formvuelate\";\nimport VeeValidatePlugin from \"@formvuelate/plugin-vee-validate\";\nimport FormTextarea from \"@perevorot/shop/dist/forms/FormTextarea\";\nimport FormText from \"@perevorot/shop/dist/forms/FormText\";\nimport * as yup from \"yup\";\n\nmarkRaw(FormTextarea);\nmarkRaw(FormText);\n\nconst SchemaForm = SchemaFormFactory([VeeValidatePlugin({})]);\n\nexport default /*#__PURE__*/ defineComponent({\n name: \"review\",\n components: {\n SchemaForm,\n },\n props: {\n id: Number,\n },\n setup(props) {\n const loading = ref(false);\n const store = useStore();\n const key = ref(0);\n const errors = ref({});\n const modal = ref(false);\n const user = computed(() => store.getters[\"auth/me\"]);\n const thanks = ref(false);\n\n const schema = ref({\n review: {\n component: FormTextarea,\n label: __(\"shop.question.review\"),\n model: \"review\",\n },\n name: {\n component: FormText,\n label: __(\"shop.question.name\"),\n model: \"name\",\n },\n });\n\n const validation = yup.object().shape({\n review: yup.string().required(__(\"auth.validation.required\")),\n name: yup.string().required(__(\"auth.validation.required\")),\n });\n\n const model = ref({\n review: \"\",\n question: true,\n name: user.value.name,\n id: props.id,\n });\n\n useSchemaForm(model);\n\n const add = () => {\n modal.value = true;\n\n document.documentElement.classList.add('is-modal-open');\n };\n\n const cancel = () => {\n if (modal.value) {\n modal.value = false;\n thanks.value = false;\n\n document.documentElement.classList.remove('is-modal-open');\n }\n };\n\n const onSubmit = () => {\n loading.value = true;\n\n $http\n .post($ziggy(\"api.review\"), model.value)\n .then(() => {\n thanks.value = true;\n\n model.value = {\n review: \"\",\n question: true,\n name: user.value.name,\n id: props.id,\n };\n })\n .catch((error) => {\n errors.value = {};\n\n if (error.response.data && error.response.data.errors) {\n for (const [field, messages] of Object.entries(\n error.response.data.errors\n )) {\n if (messages[0]) {\n errors.value[field] = messages[0];\n }\n }\n\n key.value++;\n }\n })\n .finally(() => {\n loading.value = false;\n });\n };\n\n window.addEventListener(\"keyup\", (e) => {\n if (modal.value && e.key === \"Escape\") {\n cancel();\n }\n });\n\n document.addEventListener(\"DOMContentLoaded\", () => {\n if (modal.value) {\n document.documentElement.classList.add('is-modal-open');\n }\n\n const showMore = document.getElementById('questions-show-more');\n\n if (showMore) {\n showMore.addEventListener('click', () => {\n document.getElementById('questions-list').querySelectorAll('.review.is-hidden').forEach(review => {\n review.classList.remove('is-hidden');\n showMore.remove();\n });\n });\n }\n }, false);\n\n return {\n loading,\n modal,\n schema,\n validation,\n add,\n cancel,\n schema,\n onSubmit,\n errors,\n key,\n model,\n thanks,\n };\n },\n});\n</script>","<template>\n <div class=\"shop-reviews\">\n <button class=\"button review-add\" @click=\"add\">{{ __(\"shop.question.add\") }}</button>\n <div class=\"modal\" v-bind:class=\"{ 'is-active': modal }\">\n <div class=\"modal-background\" @click=\"cancel\"></div>\n <div class=\"modal-content\">\n <button class=\"modal-close is-large\" @click=\"cancel\">\n <svg class=\"icon close\">\n <use xlink:href=\"#close\" />\n </svg>\n </button>\n <div class=\"box\">\n <div class=\"title\">{{ __(\"shop.question.title\") }}</div>\n <div class=\"shop-reviews-form\" 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 <div class=\"columns is-vcentered\">\n <div class=\"column\">\n <button class=\"button is-link\" type=\"submit\" v-bind:class=\"{\n 'is-loading': loading,\n }\">{{ __(\"shop.question.save\") }}</button>\n </div>\n <div class=\"column has-text-right\">\n <button class=\"button\" @click=\"cancel\">{{ __(\"shop.question.cancel\") }}</button>\n </div>\n </div>\n </div>\n </template>\n </SchemaForm>\n </div>\n <div class=\"shop-reviews-thanks\" v-show=\"thanks\">\n <div class=\"message\" v-html=\"__('shop.question.thanks')\"></div>\n <div class=\"mt-3\">\n <button class=\"button\" @click=\"cancel\">{{ __(\"shop.question.continue\") }}</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, markRaw, computed, defineComponent } from \"vue\";\nimport { useStore } from \"vuex\";\nimport { SchemaFormFactory, useSchemaForm } from \"formvuelate\";\nimport VeeValidatePlugin from \"@formvuelate/plugin-vee-validate\";\nimport FormTextarea from \"@perevorot/shop/dist/forms/FormTextarea\";\nimport FormText from \"@perevorot/shop/dist/forms/FormText\";\nimport * as yup from \"yup\";\n\nmarkRaw(FormTextarea);\nmarkRaw(FormText);\n\nconst SchemaForm = SchemaFormFactory([VeeValidatePlugin({})]);\n\nexport default /*#__PURE__*/ defineComponent({\n name: \"review\",\n components: {\n SchemaForm,\n },\n props: {\n id: Number,\n },\n setup(props) {\n const loading = ref(false);\n const store = useStore();\n const key = ref(0);\n const errors = ref({});\n const modal = ref(false);\n const user = computed(() => store.getters[\"auth/me\"]);\n const thanks = ref(false);\n\n const schema = ref({\n review: {\n component: FormTextarea,\n label: __(\"shop.question.review\"),\n model: \"review\",\n },\n name: {\n component: FormText,\n label: __(\"shop.question.name\"),\n model: \"name\",\n },\n });\n\n const validation = yup.object().shape({\n review: yup.string().required(__(\"auth.validation.required\")),\n name: yup.string().required(__(\"auth.validation.required\")),\n });\n\n const model = ref({\n review: \"\",\n question: true,\n name: user.value.name,\n id: props.id,\n });\n\n useSchemaForm(model);\n\n const add = () => {\n modal.value = true;\n\n document.documentElement.classList.add('is-modal-open');\n };\n\n const cancel = () => {\n if (modal.value) {\n modal.value = false;\n thanks.value = false;\n\n document.documentElement.classList.remove('is-modal-open');\n }\n };\n\n const onSubmit = () => {\n loading.value = true;\n\n $http\n .post($ziggy(\"api.review\"), model.value)\n .then(() => {\n thanks.value = true;\n\n model.value = {\n review: \"\",\n question: true,\n name: user.value.name,\n id: props.id,\n };\n })\n .catch((error) => {\n errors.value = {};\n\n if (error.response.data && error.response.data.errors) {\n for (const [field, messages] of Object.entries(\n error.response.data.errors\n )) {\n if (messages[0]) {\n errors.value[field] = messages[0];\n }\n }\n\n key.value++;\n }\n })\n .finally(() => {\n loading.value = false;\n });\n };\n\n window.addEventListener(\"keyup\", (e) => {\n if (modal.value && e.key === \"Escape\") {\n cancel();\n }\n });\n\n document.addEventListener(\"DOMContentLoaded\", () => {\n if (modal.value) {\n document.documentElement.classList.add('is-modal-open');\n }\n\n const showMore = document.getElementById('questions-show-more');\n\n if (showMore) {\n showMore.addEventListener('click', () => {\n document.getElementById('questions-list').querySelectorAll('.review.is-hidden').forEach(review => {\n review.classList.remove('is-hidden');\n showMore.remove();\n });\n });\n }\n }, false);\n\n return {\n loading,\n modal,\n schema,\n validation,\n add,\n cancel,\n schema,\n onSubmit,\n errors,\n key,\n model,\n thanks,\n };\n },\n});\n</script>"],"names":["markRaw","FormTextarea","FormText","SchemaForm","SchemaFormFactory","VeeValidatePlugin","script","defineComponent","name","components","props","id","Number","setup","loading","ref","store","useStore","key","errors","modal","user","computed","getters","thanks","schema","review","component","label","__","model","validation","yup","object","shape","string","required","question","value","useSchemaForm","cancel","document","documentElement","classList","remove","window","addEventListener","e","add","showMore","getElementById","querySelectorAll","forEach","_defineProperty","onSubmit","$http","post","$ziggy","then","error","response","data","_i","_Object$entries","Object","entries","length","_Object$entries$_i","_slicedToArray","field","messages","_hoisted_1","class","_hoisted_2","_createElementVNode","createElementVNode","xlink:href","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_14","_openBlock","_createElementBlock","onClick","_ctx","apply","arguments","_normalizeClass","is-active","_toDisplayString","toDisplayString","_withDirectives","_createBlock","_component_SchemaForm","schemaRowClasses","validation-schema","initial-errors","afterForm","type","withDirectives","innerHTML"],"mappings":"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"}
1
+ {"version":3,"file":"Question.js","sources":["../../../../src/components/shop/reviews/Question.vue","../../../../src/components/shop/reviews/Question.vue?vue&type=template&id=22162317&lang.js"],"sourcesContent":["<template>\n <div class=\"shop-reviews\">\n <button class=\"button review-add\" @click=\"add\">{{ __(\"shop.question.add\") }}</button>\n <div class=\"modal\" v-bind:class=\"{ 'is-active': modal }\">\n <div class=\"modal-background\" @click=\"cancel\"></div>\n <div class=\"modal-content\">\n <button class=\"modal-close is-large\" @click=\"cancel\">\n <svg class=\"icon close\">\n <use xlink:href=\"#close\" />\n </svg>\n </button>\n <div class=\"box\">\n <div class=\"title\">{{ __(\"shop.question.title\") }}</div>\n <div class=\"shop-reviews-form\" 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 <div class=\"columns is-vcentered\">\n <div class=\"column\">\n <button class=\"button is-link\" type=\"submit\" v-bind:class=\"{\n 'is-loading': loading,\n }\">{{ __(\"shop.question.save\") }}</button>\n </div>\n <div class=\"column has-text-right\">\n <button class=\"button\" @click=\"cancel\">{{ __(\"shop.question.cancel\") }}</button>\n </div>\n </div>\n </div>\n </template>\n </SchemaForm>\n </div>\n <div class=\"shop-reviews-thanks\" v-show=\"thanks\">\n <div class=\"message\" v-html=\"__('shop.question.thanks')\"></div>\n <div class=\"mt-3\">\n <button class=\"button\" @click=\"cancel\">{{ __(\"shop.question.continue\") }}</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, markRaw, computed, defineComponent } from \"vue\";\nimport { useStore } from \"vuex\";\nimport { SchemaFormFactory, useSchemaForm } from \"formvuelate\";\nimport VeeValidatePlugin from \"@formvuelate/plugin-vee-validate\";\nimport FormTextarea from \"@perevorot/shop/dist/forms/FormTextarea\";\nimport FormText from \"@perevorot/shop/dist/forms/FormText\";\nimport * as yup from \"yup\";\n\nmarkRaw(FormTextarea);\nmarkRaw(FormText);\n\nconst SchemaForm = SchemaFormFactory([VeeValidatePlugin({})]);\n\nexport default /*#__PURE__*/ defineComponent({\n name: \"review\",\n components: {\n SchemaForm,\n },\n props: {\n id: Number,\n },\n setup(props) {\n const loading = ref(false);\n const store = useStore();\n const key = ref(0);\n const errors = ref({});\n const modal = ref(false);\n const user = computed(() => store.getters[\"auth/me\"]);\n const thanks = ref(false);\n\n const schema = ref({\n review: {\n component: FormTextarea,\n label: __(\"shop.question.review\"),\n model: \"review\",\n },\n name: {\n component: FormText,\n label: __(\"shop.question.name\"),\n model: \"name\",\n },\n });\n\n const validation = yup.object().shape({\n review: yup.string().required(__(\"auth.validation.required\")),\n name: yup.string().required(__(\"auth.validation.required\")),\n });\n\n const model = ref({\n review: \"\",\n question: true,\n name: user.value.name,\n id: props.id,\n });\n\n useSchemaForm(model);\n\n const add = () => {\n modal.value = true;\n\n document.documentElement.classList.add('is-modal-open');\n };\n\n const cancel = () => {\n if (modal.value) {\n modal.value = false;\n thanks.value = false;\n\n document.documentElement.classList.remove('is-modal-open');\n }\n };\n\n const onSubmit = () => {\n loading.value = true;\n\n $http\n .post($ziggy(\"api.review\"), model.value)\n .then(() => {\n thanks.value = true;\n\n model.value = {\n review: \"\",\n question: true,\n name: user.value.name,\n id: props.id,\n };\n })\n .catch((error) => {\n errors.value = {};\n\n if (error.response.data && error.response.data.errors) {\n for (const [field, messages] of Object.entries(\n error.response.data.errors\n )) {\n if (messages[0]) {\n errors.value[field] = messages[0];\n }\n }\n\n key.value++;\n }\n })\n .finally(() => {\n loading.value = false;\n });\n };\n\n window.addEventListener(\"keyup\", (e) => {\n if (modal.value && e.key === \"Escape\") {\n cancel();\n }\n });\n\n document.addEventListener(\"DOMContentLoaded\", () => {\n if (modal.value) {\n document.documentElement.classList.add('is-modal-open');\n }\n\n const showMore = document.getElementById('questions-show-more');\n\n if (showMore) {\n showMore.addEventListener('click', () => {\n document.getElementById('questions-list').querySelectorAll('.review.is-hidden').forEach(review => {\n review.classList.remove('is-hidden');\n showMore.remove();\n });\n });\n }\n }, false);\n\n return {\n loading,\n modal,\n schema,\n validation,\n add,\n cancel,\n schema,\n onSubmit,\n errors,\n key,\n model,\n thanks,\n };\n },\n});\n</script>","<template>\n <div class=\"shop-reviews\">\n <button class=\"button review-add\" @click=\"add\">{{ __(\"shop.question.add\") }}</button>\n <div class=\"modal\" v-bind:class=\"{ 'is-active': modal }\">\n <div class=\"modal-background\" @click=\"cancel\"></div>\n <div class=\"modal-content\">\n <button class=\"modal-close is-large\" @click=\"cancel\">\n <svg class=\"icon close\">\n <use xlink:href=\"#close\" />\n </svg>\n </button>\n <div class=\"box\">\n <div class=\"title\">{{ __(\"shop.question.title\") }}</div>\n <div class=\"shop-reviews-form\" 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 <div class=\"columns is-vcentered\">\n <div class=\"column\">\n <button class=\"button is-link\" type=\"submit\" v-bind:class=\"{\n 'is-loading': loading,\n }\">{{ __(\"shop.question.save\") }}</button>\n </div>\n <div class=\"column has-text-right\">\n <button class=\"button\" @click=\"cancel\">{{ __(\"shop.question.cancel\") }}</button>\n </div>\n </div>\n </div>\n </template>\n </SchemaForm>\n </div>\n <div class=\"shop-reviews-thanks\" v-show=\"thanks\">\n <div class=\"message\" v-html=\"__('shop.question.thanks')\"></div>\n <div class=\"mt-3\">\n <button class=\"button\" @click=\"cancel\">{{ __(\"shop.question.continue\") }}</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, markRaw, computed, defineComponent } from \"vue\";\nimport { useStore } from \"vuex\";\nimport { SchemaFormFactory, useSchemaForm } from \"formvuelate\";\nimport VeeValidatePlugin from \"@formvuelate/plugin-vee-validate\";\nimport FormTextarea from \"@perevorot/shop/dist/forms/FormTextarea\";\nimport FormText from \"@perevorot/shop/dist/forms/FormText\";\nimport * as yup from \"yup\";\n\nmarkRaw(FormTextarea);\nmarkRaw(FormText);\n\nconst SchemaForm = SchemaFormFactory([VeeValidatePlugin({})]);\n\nexport default /*#__PURE__*/ defineComponent({\n name: \"review\",\n components: {\n SchemaForm,\n },\n props: {\n id: Number,\n },\n setup(props) {\n const loading = ref(false);\n const store = useStore();\n const key = ref(0);\n const errors = ref({});\n const modal = ref(false);\n const user = computed(() => store.getters[\"auth/me\"]);\n const thanks = ref(false);\n\n const schema = ref({\n review: {\n component: FormTextarea,\n label: __(\"shop.question.review\"),\n model: \"review\",\n },\n name: {\n component: FormText,\n label: __(\"shop.question.name\"),\n model: \"name\",\n },\n });\n\n const validation = yup.object().shape({\n review: yup.string().required(__(\"auth.validation.required\")),\n name: yup.string().required(__(\"auth.validation.required\")),\n });\n\n const model = ref({\n review: \"\",\n question: true,\n name: user.value.name,\n id: props.id,\n });\n\n useSchemaForm(model);\n\n const add = () => {\n modal.value = true;\n\n document.documentElement.classList.add('is-modal-open');\n };\n\n const cancel = () => {\n if (modal.value) {\n modal.value = false;\n thanks.value = false;\n\n document.documentElement.classList.remove('is-modal-open');\n }\n };\n\n const onSubmit = () => {\n loading.value = true;\n\n $http\n .post($ziggy(\"api.review\"), model.value)\n .then(() => {\n thanks.value = true;\n\n model.value = {\n review: \"\",\n question: true,\n name: user.value.name,\n id: props.id,\n };\n })\n .catch((error) => {\n errors.value = {};\n\n if (error.response.data && error.response.data.errors) {\n for (const [field, messages] of Object.entries(\n error.response.data.errors\n )) {\n if (messages[0]) {\n errors.value[field] = messages[0];\n }\n }\n\n key.value++;\n }\n })\n .finally(() => {\n loading.value = false;\n });\n };\n\n window.addEventListener(\"keyup\", (e) => {\n if (modal.value && e.key === \"Escape\") {\n cancel();\n }\n });\n\n document.addEventListener(\"DOMContentLoaded\", () => {\n if (modal.value) {\n document.documentElement.classList.add('is-modal-open');\n }\n\n const showMore = document.getElementById('questions-show-more');\n\n if (showMore) {\n showMore.addEventListener('click', () => {\n document.getElementById('questions-list').querySelectorAll('.review.is-hidden').forEach(review => {\n review.classList.remove('is-hidden');\n showMore.remove();\n });\n });\n }\n }, false);\n\n return {\n loading,\n modal,\n schema,\n validation,\n add,\n cancel,\n schema,\n onSubmit,\n errors,\n key,\n model,\n thanks,\n };\n },\n});\n</script>"],"names":["markRaw","FormTextarea","FormText","SchemaForm","SchemaFormFactory","VeeValidatePlugin","script","defineComponent","name","components","props","id","Number","setup","loading","ref","store","useStore","key","errors","modal","user","computed","getters","thanks","schema","review","component","label","__","model","validation","yup","object","shape","string","required","question","value","useSchemaForm","cancel","document","documentElement","classList","remove","window","addEventListener","e","add","showMore","getElementById","querySelectorAll","forEach","_defineProperty","onSubmit","$http","post","$ziggy","then","error","response","data","_i","_Object$entries","Object","entries","length","_Object$entries$_i","_slicedToArray","field","messages","_hoisted_1","class","_hoisted_2","_createElementVNode","createElementVNode","xlink:href","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_14","_openBlock","_createElementBlock","onClick","_ctx","apply","arguments","_normalizeClass","is-active","_toDisplayString","toDisplayString","_withDirectives","_createBlock","_component_SchemaForm","schemaRowClasses","validation-schema","initial-errors","afterForm","type","withDirectives","innerHTML"],"mappings":"sjEAmDAA,EAAOA,QAACC,EAAY,SACpBD,EAAOA,QAACE,EAAQ,SAEhB,IAAMC,EAAaC,EAAAA,kBAAkB,CAACC,EAAiB,QAAC,MAEzCC,EAAcC,kBAAgB,CACzCC,KAAM,SACNC,WAAY,CACRN,WAAAA,GAEJO,MAAO,CACHC,GAAIC,QAERC,MAAAA,SAAMH,GACF,IAAMI,EAAUC,OAAI,GACdC,EAAQC,EAAAA,WACRC,EAAMH,MAAI,GACVI,EAASJ,MAAI,IACbK,EAAQL,OAAI,GACZM,EAAOC,EAAAA,UAAS,WAAA,OAAMN,EAAMO,QAAQ,cACpCC,EAAST,OAAI,GAEbU,EAASV,EAAAA,IAAI,CACfW,OAAQ,CACJC,UAAW1B,EAAY,QACvB2B,MAAOC,GAAG,wBACVC,MAAO,UAEXtB,KAAM,CACFmB,UAAWzB,EAAQ,QACnB0B,MAAOC,GAAG,sBACVC,MAAO,UAITC,EAAaC,EAAIC,SAASC,MAAM,CAClCR,OAAQM,EAAIG,SAASC,SAASP,GAAG,6BACjCrB,KAAMwB,EAAIG,SAASC,SAASP,GAAG,+BAG7BC,EAAQf,EAAAA,IAAI,CACdW,OAAQ,GACRW,UAAU,EACV7B,KAAMa,EAAKiB,MAAM9B,KACjBG,GAAID,EAAMC,KAGd4B,EAAaA,cAACT,GAEd,IAMMU,EAAS,WACPpB,EAAMkB,QACNlB,EAAMkB,OAAQ,EACdd,EAAOc,OAAQ,EAEfG,SAASC,gBAAgBC,UAAUC,OAAO,mBA8DlD,OAvBAC,OAAOC,iBAAiB,SAAS,SAACC,GAC1B3B,EAAMkB,OAAmB,WAAVS,EAAE7B,KACjBsB,OAIRC,SAASK,iBAAiB,oBAAoB,WACtC1B,EAAMkB,OACNG,SAASC,gBAAgBC,UAAUK,IAAI,iBAG3C,IAAMC,EAAWR,SAASS,eAAe,uBAErCD,GACAA,EAASH,iBAAiB,SAAS,WAC/BL,SAASS,eAAe,kBAAkBC,iBAAiB,qBAAqBC,SAAQ,SAAA1B,GACpFA,EAAOiB,UAAUC,OAAO,aACxBK,EAASL,kBAItB,GAEHS,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAA,CACIvC,QAAAA,EACAM,MAAAA,EACAK,OAAAA,EACAM,WAAAA,EACAiB,IA9EQ,WACR5B,EAAMkB,OAAQ,EAEdG,SAASC,gBAAgBC,UAAUK,IAAI,kBA4EvCR,OAAAA,GACAf,SAAAA,GACA6B,YAlEa,WACbxC,EAAQwB,OAAQ,EAEhBiB,MACKC,KAAKC,OAAO,cAAe3B,EAAMQ,OACjCoB,MAAK,WACFlC,EAAOc,OAAQ,EAEfR,EAAMQ,MAAQ,CACVZ,OAAQ,GACRW,UAAU,EACV7B,KAAMa,EAAKiB,MAAM9B,KACjBG,GAAID,EAAMC,OAEjB,OACM,SAACgD,GAGJ,GAFAxC,EAAOmB,MAAQ,GAEXqB,EAAMC,SAASC,MAAQF,EAAMC,SAASC,KAAK1C,OAAQ,CACnD,IAAA2C,IAAAA,EAAAC,EAAAA,EAAgCC,OAAOC,QACnCN,EAAMC,SAASC,KAAK1C,QACvB2C,EAAAC,EAAAG,OAAAJ,IAAE,CAFE,IAAAK,EAAAC,EAAAL,EAAAD,GAAA,GAAOO,EAAKF,EAAA,GAAEG,EAAQH,EAAA,GAGnBG,EAAS,KACTnD,EAAOmB,MAAM+B,GAASC,EAAS,IAIvCpD,EAAIoB,YAGJ,SAAC,WACLxB,EAAQwB,OAAQ,QAoCxBnB,SAAAA,SACAD,GAAG,QACHY,GAAK,SACLN,MCxLH+C,EAAA,CAAAC,MAAM,gBAIEC,EAAA,CAAAD,MAAM,oBAEHE,EAEKC,mBAAA,MAAA,CAFAH,MAAM,cAAY,CACnBE,EAA0BC,mBAAA,MAAA,CAArBC,aAAW,iBAGnBC,EAAA,CAAAL,MAAM,OACFM,EAAA,CAAAN,MAAM,SACNO,EAAA,CAAAP,MAAM,qBAGMQ,EAAA,CAAAR,MAAM,SACFS,EAAA,CAAAT,MAAM,wBACFU,EAAA,CAAAV,MAAM,UAKNW,EAAA,CAAAX,MAAM,yBAQ1BY,EAAA,CAAAZ,MAAM,uCAEFa,EAAA,CAAAb,MAAM,8EAhC/B,OAAAc,EAAAA,YAAAC,qBAuCK,MAvCLhB,EAuCK,CAtCDG,EAAoFC,mBAAA,SAAA,CAA5EH,MAAM,oBAAqBgB,sCAAOC,EAAGzC,KAAAyC,EAAAzC,IAAA0C,MAAAD,EAAAE,gCAAKF,EAAE5D,GAAA,sBAAA,GACpD6C,EAoCKC,mBAAA,MAAA,CApCAH,MAAKoB,EAAAA,eAAA,CAAC,QAAQ,CAAAC,YAA6BJ,EAAMrE,WAClDsD,EAAmDC,mBAAA,MAAA,CAA9CH,MAAM,mBAAoBgB,sCAAOC,EAAMjD,QAAAiD,EAAAjD,OAAAkD,MAAAD,EAAAE,eAC5CjB,EAAAC,mBAiCK,MAjCLF,EAiCK,CAhCDC,EAAAA,mBAIQ,SAAA,CAJAF,MAAM,uBAAwBgB,sCAAOC,EAAMjD,QAAAiD,EAAAjD,OAAAkD,MAAAD,EAAAE,iBAKnDjB,qBA0BK,MA1BLG,EA0BK,CAzBDH,EAAuDC,mBAAA,MAAvDG,EAAuDgB,EAAAC,gBAAjCN,EAAE5D,GAAA,wBAAA,GACxBmE,EAAAA,eAAAtB,EAAAC,mBAiBK,MAjBLI,EAiBK,gBAhBDkB,EAAAA,YAeYC,EAAA,CAfAC,iBAAiB,QAAS1E,OAAQgE,EAAMhE,OAAG2E,oBAAmBX,EAAU1D,WAAGsE,iBAAgBZ,EAAMtE,OAAGD,IAAKuE,EAAGvE,IAAGoC,SAAQmC,EAAQnC,WAC5HgD,qBACP,WAAA,MAWK,CAXL5B,EAAAA,mBAWK,MAXLM,EAWK,CAVDN,EAAAC,mBASK,MATLM,EASK,CARDP,EAAAC,mBAIK,MAJLO,EAIK,CAHDR,EAAAA,mBAEyC,SAAA,CAFjCF,wBAAM,+BAA6CiB,EAAA3E,WAA5ByF,KAAK,4BAE9Bd,EAAE5D,GAAA,uBAAA,KAEZ6C,EAAAC,mBAEK,MAFLQ,EAEK,CADDT,EAAAA,mBAA+E,SAAA,CAAvEF,MAAM,SAAUgB,sCAAOC,EAAMjD,QAAAiD,EAAAjD,OAAAkD,MAAAD,EAAAE,gCAAKF,EAAE5D,GAAA,yBAAA,kGAX5B4D,EAAMjE,UAkB9CwE,EAAAQ,eAAA9B,qBAKK,MALLU,EAKK,CAJDV,EAA8DC,mBAAA,MAAA,CAAzDH,MAAM,UAAUiC,UAAQhB,EAAE5D,GAAA,mCAC/B6C,EAAAA,mBAEK,MAFLW,EAEK,CADDX,EAAiFC,mBAAA,SAAA,CAAzEH,MAAM,SAAUgB,sCAAOC,EAAMjD,QAAAiD,EAAAjD,OAAAkD,MAAAD,EAAAE,gCAAKF,EAAE5D,GAAA,2BAAA,qBAHX4D,EAAMjE"}
@@ -1 +1 @@
1
- {"version":3,"file":"Review.js","sources":["../../../../src/components/shop/reviews/Review.vue","../../../../src/components/shop/reviews/Review.vue?vue&type=template&id=3317de44&lang.js"],"sourcesContent":["<template>\n <div class=\"shop-reviews\">\n <button class=\"button review-add\" @click=\"add\">{{ __(\"shop.review.add\") }}</button>\n <div class=\"modal\" v-bind:class=\"{ 'is-active': modal }\">\n <div class=\"modal-background\" @click=\"cancel\"></div>\n <div class=\"modal-content\">\n <button class=\"modal-close is-large\" @click=\"cancel\">\n <svg class=\"icon close\">\n <use xlink:href=\"#close\" />\n </svg>\n </button>\n <div class=\"box\">\n <div class=\"title\">{{ __(\"shop.review.title\") }}</div>\n <div class=\"shop-reviews-form\" v-show=\"!thanks\">\n <SchemaForm\n schemaRowClasses=\"field\"\n :schema=\"schema\"\n :validation-schema=\"validation\"\n :initial-errors=\"errors\"\n :key=\"key\"\n @submit=\"onSubmit\"\n >\n <template #afterForm>\n <div class=\"field\">\n <div class=\"columns is-vcentered\">\n <div class=\"column\">\n <button\n class=\"button is-link\"\n type=\"submit\"\n v-bind:class=\"{\n 'is-loading': loading,\n }\"\n >{{ __(\"shop.review.save\") }}</button>\n </div>\n <div class=\"column has-text-right\">\n <button\n class=\"button\"\n @click=\"cancel\"\n >{{ __(\"shop.review.cancel\") }}</button>\n </div>\n </div>\n </div>\n </template>\n </SchemaForm>\n </div>\n <div class=\"shop-reviews-thanks\" v-show=\"thanks\">\n <div class=\"message\" v-html=\"__('shop.review.thanks')\"></div>\n <div class=\"mt-3\">\n <button class=\"button\" @click=\"cancel\">{{ __(\"shop.review.continue\") }}</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, markRaw, computed, defineComponent } from \"vue\";\nimport { useStore } from \"vuex\";\nimport { SchemaFormFactory, useSchemaForm } from \"formvuelate\";\nimport VeeValidatePlugin from \"@formvuelate/plugin-vee-validate\";\nimport FormTextarea from \"@perevorot/shop/dist/forms/FormTextarea\";\nimport FormText from \"@perevorot/shop/dist/forms/FormText\";\nimport FormRating from \"@perevorot/shop/dist/forms/FormRating\";\nimport * as yup from \"yup\";\n\nmarkRaw(FormRating);\nmarkRaw(FormTextarea);\nmarkRaw(FormText);\n\nconst SchemaForm = SchemaFormFactory([VeeValidatePlugin({})]);\n\nexport default /*#__PURE__*/ defineComponent({\n name: \"review\",\n components: {\n SchemaForm,\n },\n props: {\n id: Number,\n },\n setup(props) {\n const loading = ref(false);\n const store = useStore();\n const key = ref(0);\n const errors = ref({});\n const modal = computed(() => store.getters[\"review/modal\"]);\n const auth = computed(() => store.getters[\"auth/is\"]);\n const user = computed(() => store.getters[\"auth/me\"]);\n const thanks = ref(false);\n\n const schema = ref({\n rating: {\n component: FormRating,\n model: \"rating\",\n },\n review: {\n component: FormTextarea,\n label: __(\"shop.review.review\"),\n model: \"review\",\n },\n name: {\n component: FormText,\n label: __(\"shop.review.name\"),\n model: \"name\",\n },\n });\n\n const validation = yup.object().shape({\n review: yup.string().required(__(\"auth.validation.required\")),\n rating: yup\n .number()\n .min(1, __(\"auth.validation.required\"))\n .required(__(\"auth.validation.required\")),\n name: yup.string().required(__(\"auth.validation.required\")),\n });\n\n const model = ref({\n review: \"\",\n rating: 0,\n name: user.value.name,\n id: props.id,\n });\n\n useSchemaForm(model);\n\n const add = () => {\n if (!auth.value) {\n store.commit(\"auth/modal\", \"login\");\n } else {\n store.commit(\"review/modal\", true);\n }\n };\n\n const cancel = () => {\n store.commit(\"review/modal\", false);\n thanks.value = false;\n };\n\n const onSubmit = () => {\n loading.value = true;\n\n $http\n .post($ziggy(\"api.review\"), model.value)\n .then(() => {\n thanks.value = true;\n\n model.value = {\n review: \"\",\n rating: 0,\n name: user.value.name,\n id: props.id,\n };\n })\n .catch((error) => {\n errors.value = {};\n\n if (error.response.data && error.response.data.errors) {\n for (const [field, messages] of Object.entries(\n error.response.data.errors\n )) {\n if (messages[0]) {\n errors.value[field] = messages[0];\n }\n }\n\n key.value++;\n }\n })\n .finally(() => {\n loading.value = false;\n });\n };\n\n window.addEventListener(\"keyup\", (e) => {\n if (modal.value && e.key === \"Escape\") {\n cancel();\n }\n });\n\n document.addEventListener(\"DOMContentLoaded\", () => {\n if (modal.value) {\n document.documentElement.classList.add('is-modal-open');\n }\n\n const showMore = document.getElementById('reviews-show-more');\n\n if (showMore) {\n showMore.addEventListener('click', () => {\n document.getElementById('reviews-list').querySelectorAll('.review.is-hidden').forEach(review => {\n review.classList.remove('is-hidden');\n showMore.remove();\n });\n });\n }\n }, false);\n\n return {\n loading,\n modal,\n schema,\n validation,\n add,\n cancel,\n schema,\n onSubmit,\n errors,\n key,\n model,\n thanks,\n };\n },\n});\n</script>","<template>\n <div class=\"shop-reviews\">\n <button class=\"button review-add\" @click=\"add\">{{ __(\"shop.review.add\") }}</button>\n <div class=\"modal\" v-bind:class=\"{ 'is-active': modal }\">\n <div class=\"modal-background\" @click=\"cancel\"></div>\n <div class=\"modal-content\">\n <button class=\"modal-close is-large\" @click=\"cancel\">\n <svg class=\"icon close\">\n <use xlink:href=\"#close\" />\n </svg>\n </button>\n <div class=\"box\">\n <div class=\"title\">{{ __(\"shop.review.title\") }}</div>\n <div class=\"shop-reviews-form\" v-show=\"!thanks\">\n <SchemaForm\n schemaRowClasses=\"field\"\n :schema=\"schema\"\n :validation-schema=\"validation\"\n :initial-errors=\"errors\"\n :key=\"key\"\n @submit=\"onSubmit\"\n >\n <template #afterForm>\n <div class=\"field\">\n <div class=\"columns is-vcentered\">\n <div class=\"column\">\n <button\n class=\"button is-link\"\n type=\"submit\"\n v-bind:class=\"{\n 'is-loading': loading,\n }\"\n >{{ __(\"shop.review.save\") }}</button>\n </div>\n <div class=\"column has-text-right\">\n <button\n class=\"button\"\n @click=\"cancel\"\n >{{ __(\"shop.review.cancel\") }}</button>\n </div>\n </div>\n </div>\n </template>\n </SchemaForm>\n </div>\n <div class=\"shop-reviews-thanks\" v-show=\"thanks\">\n <div class=\"message\" v-html=\"__('shop.review.thanks')\"></div>\n <div class=\"mt-3\">\n <button class=\"button\" @click=\"cancel\">{{ __(\"shop.review.continue\") }}</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, markRaw, computed, defineComponent } from \"vue\";\nimport { useStore } from \"vuex\";\nimport { SchemaFormFactory, useSchemaForm } from \"formvuelate\";\nimport VeeValidatePlugin from \"@formvuelate/plugin-vee-validate\";\nimport FormTextarea from \"@perevorot/shop/dist/forms/FormTextarea\";\nimport FormText from \"@perevorot/shop/dist/forms/FormText\";\nimport FormRating from \"@perevorot/shop/dist/forms/FormRating\";\nimport * as yup from \"yup\";\n\nmarkRaw(FormRating);\nmarkRaw(FormTextarea);\nmarkRaw(FormText);\n\nconst SchemaForm = SchemaFormFactory([VeeValidatePlugin({})]);\n\nexport default /*#__PURE__*/ defineComponent({\n name: \"review\",\n components: {\n SchemaForm,\n },\n props: {\n id: Number,\n },\n setup(props) {\n const loading = ref(false);\n const store = useStore();\n const key = ref(0);\n const errors = ref({});\n const modal = computed(() => store.getters[\"review/modal\"]);\n const auth = computed(() => store.getters[\"auth/is\"]);\n const user = computed(() => store.getters[\"auth/me\"]);\n const thanks = ref(false);\n\n const schema = ref({\n rating: {\n component: FormRating,\n model: \"rating\",\n },\n review: {\n component: FormTextarea,\n label: __(\"shop.review.review\"),\n model: \"review\",\n },\n name: {\n component: FormText,\n label: __(\"shop.review.name\"),\n model: \"name\",\n },\n });\n\n const validation = yup.object().shape({\n review: yup.string().required(__(\"auth.validation.required\")),\n rating: yup\n .number()\n .min(1, __(\"auth.validation.required\"))\n .required(__(\"auth.validation.required\")),\n name: yup.string().required(__(\"auth.validation.required\")),\n });\n\n const model = ref({\n review: \"\",\n rating: 0,\n name: user.value.name,\n id: props.id,\n });\n\n useSchemaForm(model);\n\n const add = () => {\n if (!auth.value) {\n store.commit(\"auth/modal\", \"login\");\n } else {\n store.commit(\"review/modal\", true);\n }\n };\n\n const cancel = () => {\n store.commit(\"review/modal\", false);\n thanks.value = false;\n };\n\n const onSubmit = () => {\n loading.value = true;\n\n $http\n .post($ziggy(\"api.review\"), model.value)\n .then(() => {\n thanks.value = true;\n\n model.value = {\n review: \"\",\n rating: 0,\n name: user.value.name,\n id: props.id,\n };\n })\n .catch((error) => {\n errors.value = {};\n\n if (error.response.data && error.response.data.errors) {\n for (const [field, messages] of Object.entries(\n error.response.data.errors\n )) {\n if (messages[0]) {\n errors.value[field] = messages[0];\n }\n }\n\n key.value++;\n }\n })\n .finally(() => {\n loading.value = false;\n });\n };\n\n window.addEventListener(\"keyup\", (e) => {\n if (modal.value && e.key === \"Escape\") {\n cancel();\n }\n });\n\n document.addEventListener(\"DOMContentLoaded\", () => {\n if (modal.value) {\n document.documentElement.classList.add('is-modal-open');\n }\n\n const showMore = document.getElementById('reviews-show-more');\n\n if (showMore) {\n showMore.addEventListener('click', () => {\n document.getElementById('reviews-list').querySelectorAll('.review.is-hidden').forEach(review => {\n review.classList.remove('is-hidden');\n showMore.remove();\n });\n });\n }\n }, false);\n\n return {\n loading,\n modal,\n schema,\n validation,\n add,\n cancel,\n schema,\n onSubmit,\n errors,\n key,\n model,\n thanks,\n };\n },\n});\n</script>"],"names":["markRaw","FormRating","FormTextarea","FormText","SchemaForm","SchemaFormFactory","VeeValidatePlugin","script","defineComponent","name","components","props","id","Number","setup","loading","ref","store","useStore","key","errors","modal","computed","getters","auth","user","thanks","schema","rating","component","model","review","label","__","validation","yup","object","shape","string","required","number","min","value","useSchemaForm","cancel","commit","window","addEventListener","e","document","documentElement","classList","add","showMore","getElementById","querySelectorAll","forEach","remove","_defineProperty","onSubmit","$http","post","$ziggy","then","error","response","data","_i","_Object$entries","Object","entries","length","_Object$entries$_i","_slicedToArray","field","messages","_hoisted_1","class","_hoisted_2","_createElementVNode","createElementVNode","xlink:href","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_14","_openBlock","_createElementBlock","onClick","_ctx","apply","arguments","_normalizeClass","is-active","_toDisplayString","toDisplayString","_withDirectives","_createBlock","_component_SchemaForm","schemaRowClasses","validation-schema","initial-errors","afterForm","type","withDirectives","innerHTML"],"mappings":"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"}
1
+ {"version":3,"file":"Review.js","sources":["../../../../src/components/shop/reviews/Review.vue","../../../../src/components/shop/reviews/Review.vue?vue&type=template&id=3317de44&lang.js"],"sourcesContent":["<template>\n <div class=\"shop-reviews\">\n <button class=\"button review-add\" @click=\"add\">{{ __(\"shop.review.add\") }}</button>\n <div class=\"modal\" v-bind:class=\"{ 'is-active': modal }\">\n <div class=\"modal-background\" @click=\"cancel\"></div>\n <div class=\"modal-content\">\n <button class=\"modal-close is-large\" @click=\"cancel\">\n <svg class=\"icon close\">\n <use xlink:href=\"#close\" />\n </svg>\n </button>\n <div class=\"box\">\n <div class=\"title\">{{ __(\"shop.review.title\") }}</div>\n <div class=\"shop-reviews-form\" v-show=\"!thanks\">\n <SchemaForm\n schemaRowClasses=\"field\"\n :schema=\"schema\"\n :validation-schema=\"validation\"\n :initial-errors=\"errors\"\n :key=\"key\"\n @submit=\"onSubmit\"\n >\n <template #afterForm>\n <div class=\"field\">\n <div class=\"columns is-vcentered\">\n <div class=\"column\">\n <button\n class=\"button is-link\"\n type=\"submit\"\n v-bind:class=\"{\n 'is-loading': loading,\n }\"\n >{{ __(\"shop.review.save\") }}</button>\n </div>\n <div class=\"column has-text-right\">\n <button\n class=\"button\"\n @click=\"cancel\"\n >{{ __(\"shop.review.cancel\") }}</button>\n </div>\n </div>\n </div>\n </template>\n </SchemaForm>\n </div>\n <div class=\"shop-reviews-thanks\" v-show=\"thanks\">\n <div class=\"message\" v-html=\"__('shop.review.thanks')\"></div>\n <div class=\"mt-3\">\n <button class=\"button\" @click=\"cancel\">{{ __(\"shop.review.continue\") }}</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, markRaw, computed, defineComponent } from \"vue\";\nimport { useStore } from \"vuex\";\nimport { SchemaFormFactory, useSchemaForm } from \"formvuelate\";\nimport VeeValidatePlugin from \"@formvuelate/plugin-vee-validate\";\nimport FormTextarea from \"@perevorot/shop/dist/forms/FormTextarea\";\nimport FormText from \"@perevorot/shop/dist/forms/FormText\";\nimport FormRating from \"@perevorot/shop/dist/forms/FormRating\";\nimport * as yup from \"yup\";\n\nmarkRaw(FormRating);\nmarkRaw(FormTextarea);\nmarkRaw(FormText);\n\nconst SchemaForm = SchemaFormFactory([VeeValidatePlugin({})]);\n\nexport default /*#__PURE__*/ defineComponent({\n name: \"review\",\n components: {\n SchemaForm,\n },\n props: {\n id: Number,\n },\n setup(props) {\n const loading = ref(false);\n const store = useStore();\n const key = ref(0);\n const errors = ref({});\n const modal = computed(() => store.getters[\"review/modal\"]);\n const auth = computed(() => store.getters[\"auth/is\"]);\n const user = computed(() => store.getters[\"auth/me\"]);\n const thanks = ref(false);\n\n const schema = ref({\n rating: {\n component: FormRating,\n model: \"rating\",\n },\n review: {\n component: FormTextarea,\n label: __(\"shop.review.review\"),\n model: \"review\",\n },\n name: {\n component: FormText,\n label: __(\"shop.review.name\"),\n model: \"name\",\n },\n });\n\n const validation = yup.object().shape({\n review: yup.string().required(__(\"auth.validation.required\")),\n rating: yup\n .number()\n .min(1, __(\"auth.validation.required\"))\n .required(__(\"auth.validation.required\")),\n name: yup.string().required(__(\"auth.validation.required\")),\n });\n\n const model = ref({\n review: \"\",\n rating: 0,\n name: user.value.name,\n id: props.id,\n });\n\n useSchemaForm(model);\n\n const add = () => {\n if (!auth.value) {\n store.commit(\"auth/modal\", \"login\");\n } else {\n store.commit(\"review/modal\", true);\n }\n };\n\n const cancel = () => {\n store.commit(\"review/modal\", false);\n thanks.value = false;\n };\n\n const onSubmit = () => {\n loading.value = true;\n\n $http\n .post($ziggy(\"api.review\"), model.value)\n .then(() => {\n thanks.value = true;\n\n model.value = {\n review: \"\",\n rating: 0,\n name: user.value.name,\n id: props.id,\n };\n })\n .catch((error) => {\n errors.value = {};\n\n if (error.response.data && error.response.data.errors) {\n for (const [field, messages] of Object.entries(\n error.response.data.errors\n )) {\n if (messages[0]) {\n errors.value[field] = messages[0];\n }\n }\n\n key.value++;\n }\n })\n .finally(() => {\n loading.value = false;\n });\n };\n\n window.addEventListener(\"keyup\", (e) => {\n if (modal.value && e.key === \"Escape\") {\n cancel();\n }\n });\n\n document.addEventListener(\"DOMContentLoaded\", () => {\n if (modal.value) {\n document.documentElement.classList.add('is-modal-open');\n }\n\n const showMore = document.getElementById('reviews-show-more');\n\n if (showMore) {\n showMore.addEventListener('click', () => {\n document.getElementById('reviews-list').querySelectorAll('.review.is-hidden').forEach(review => {\n review.classList.remove('is-hidden');\n showMore.remove();\n });\n });\n }\n }, false);\n\n return {\n loading,\n modal,\n schema,\n validation,\n add,\n cancel,\n schema,\n onSubmit,\n errors,\n key,\n model,\n thanks,\n };\n },\n});\n</script>","<template>\n <div class=\"shop-reviews\">\n <button class=\"button review-add\" @click=\"add\">{{ __(\"shop.review.add\") }}</button>\n <div class=\"modal\" v-bind:class=\"{ 'is-active': modal }\">\n <div class=\"modal-background\" @click=\"cancel\"></div>\n <div class=\"modal-content\">\n <button class=\"modal-close is-large\" @click=\"cancel\">\n <svg class=\"icon close\">\n <use xlink:href=\"#close\" />\n </svg>\n </button>\n <div class=\"box\">\n <div class=\"title\">{{ __(\"shop.review.title\") }}</div>\n <div class=\"shop-reviews-form\" v-show=\"!thanks\">\n <SchemaForm\n schemaRowClasses=\"field\"\n :schema=\"schema\"\n :validation-schema=\"validation\"\n :initial-errors=\"errors\"\n :key=\"key\"\n @submit=\"onSubmit\"\n >\n <template #afterForm>\n <div class=\"field\">\n <div class=\"columns is-vcentered\">\n <div class=\"column\">\n <button\n class=\"button is-link\"\n type=\"submit\"\n v-bind:class=\"{\n 'is-loading': loading,\n }\"\n >{{ __(\"shop.review.save\") }}</button>\n </div>\n <div class=\"column has-text-right\">\n <button\n class=\"button\"\n @click=\"cancel\"\n >{{ __(\"shop.review.cancel\") }}</button>\n </div>\n </div>\n </div>\n </template>\n </SchemaForm>\n </div>\n <div class=\"shop-reviews-thanks\" v-show=\"thanks\">\n <div class=\"message\" v-html=\"__('shop.review.thanks')\"></div>\n <div class=\"mt-3\">\n <button class=\"button\" @click=\"cancel\">{{ __(\"shop.review.continue\") }}</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, markRaw, computed, defineComponent } from \"vue\";\nimport { useStore } from \"vuex\";\nimport { SchemaFormFactory, useSchemaForm } from \"formvuelate\";\nimport VeeValidatePlugin from \"@formvuelate/plugin-vee-validate\";\nimport FormTextarea from \"@perevorot/shop/dist/forms/FormTextarea\";\nimport FormText from \"@perevorot/shop/dist/forms/FormText\";\nimport FormRating from \"@perevorot/shop/dist/forms/FormRating\";\nimport * as yup from \"yup\";\n\nmarkRaw(FormRating);\nmarkRaw(FormTextarea);\nmarkRaw(FormText);\n\nconst SchemaForm = SchemaFormFactory([VeeValidatePlugin({})]);\n\nexport default /*#__PURE__*/ defineComponent({\n name: \"review\",\n components: {\n SchemaForm,\n },\n props: {\n id: Number,\n },\n setup(props) {\n const loading = ref(false);\n const store = useStore();\n const key = ref(0);\n const errors = ref({});\n const modal = computed(() => store.getters[\"review/modal\"]);\n const auth = computed(() => store.getters[\"auth/is\"]);\n const user = computed(() => store.getters[\"auth/me\"]);\n const thanks = ref(false);\n\n const schema = ref({\n rating: {\n component: FormRating,\n model: \"rating\",\n },\n review: {\n component: FormTextarea,\n label: __(\"shop.review.review\"),\n model: \"review\",\n },\n name: {\n component: FormText,\n label: __(\"shop.review.name\"),\n model: \"name\",\n },\n });\n\n const validation = yup.object().shape({\n review: yup.string().required(__(\"auth.validation.required\")),\n rating: yup\n .number()\n .min(1, __(\"auth.validation.required\"))\n .required(__(\"auth.validation.required\")),\n name: yup.string().required(__(\"auth.validation.required\")),\n });\n\n const model = ref({\n review: \"\",\n rating: 0,\n name: user.value.name,\n id: props.id,\n });\n\n useSchemaForm(model);\n\n const add = () => {\n if (!auth.value) {\n store.commit(\"auth/modal\", \"login\");\n } else {\n store.commit(\"review/modal\", true);\n }\n };\n\n const cancel = () => {\n store.commit(\"review/modal\", false);\n thanks.value = false;\n };\n\n const onSubmit = () => {\n loading.value = true;\n\n $http\n .post($ziggy(\"api.review\"), model.value)\n .then(() => {\n thanks.value = true;\n\n model.value = {\n review: \"\",\n rating: 0,\n name: user.value.name,\n id: props.id,\n };\n })\n .catch((error) => {\n errors.value = {};\n\n if (error.response.data && error.response.data.errors) {\n for (const [field, messages] of Object.entries(\n error.response.data.errors\n )) {\n if (messages[0]) {\n errors.value[field] = messages[0];\n }\n }\n\n key.value++;\n }\n })\n .finally(() => {\n loading.value = false;\n });\n };\n\n window.addEventListener(\"keyup\", (e) => {\n if (modal.value && e.key === \"Escape\") {\n cancel();\n }\n });\n\n document.addEventListener(\"DOMContentLoaded\", () => {\n if (modal.value) {\n document.documentElement.classList.add('is-modal-open');\n }\n\n const showMore = document.getElementById('reviews-show-more');\n\n if (showMore) {\n showMore.addEventListener('click', () => {\n document.getElementById('reviews-list').querySelectorAll('.review.is-hidden').forEach(review => {\n review.classList.remove('is-hidden');\n showMore.remove();\n });\n });\n }\n }, false);\n\n return {\n loading,\n modal,\n schema,\n validation,\n add,\n cancel,\n schema,\n onSubmit,\n errors,\n key,\n model,\n thanks,\n };\n },\n});\n</script>"],"names":["markRaw","FormRating","FormTextarea","FormText","SchemaForm","SchemaFormFactory","VeeValidatePlugin","script","defineComponent","name","components","props","id","Number","setup","loading","ref","store","useStore","key","errors","modal","computed","getters","auth","user","thanks","schema","rating","component","model","review","label","__","validation","yup","object","shape","string","required","number","min","value","useSchemaForm","cancel","commit","window","addEventListener","e","document","documentElement","classList","add","showMore","getElementById","querySelectorAll","forEach","remove","_defineProperty","onSubmit","$http","post","$ziggy","then","error","response","data","_i","_Object$entries","Object","entries","length","_Object$entries$_i","_slicedToArray","field","messages","_hoisted_1","class","_hoisted_2","_createElementVNode","createElementVNode","xlink:href","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_14","_openBlock","_createElementBlock","onClick","_ctx","apply","arguments","_normalizeClass","is-active","_toDisplayString","toDisplayString","_withDirectives","_createBlock","_component_SchemaForm","schemaRowClasses","validation-schema","initial-errors","afterForm","type","withDirectives","innerHTML"],"mappings":"gnEAkEAA,EAAOA,QAACC,EAAU,SAClBD,EAAOA,QAACE,EAAY,SACpBF,EAAOA,QAACG,EAAQ,SAEhB,IAAMC,EAAaC,EAAAA,kBAAkB,CAACC,EAAiB,QAAC,MAEzCC,EAAcC,kBAAgB,CACzCC,KAAM,SACNC,WAAY,CACRN,WAAAA,GAEJO,MAAO,CACHC,GAAIC,QAERC,MAAAA,SAAMH,GACF,IAAMI,EAAUC,OAAI,GACdC,EAAQC,EAAAA,WACRC,EAAMH,MAAI,GACVI,EAASJ,MAAI,IACbK,EAAQC,EAAAA,UAAS,WAAA,OAAML,EAAMM,QAAQ,mBACrCC,EAAOF,EAAAA,UAAS,WAAA,OAAML,EAAMM,QAAQ,cACpCE,EAAOH,EAAAA,UAAS,WAAA,OAAML,EAAMM,QAAQ,cACpCG,EAASV,OAAI,GAEbW,EAASX,EAAAA,IAAI,CACfY,OAAQ,CACJC,UAAW5B,EAAU,QACrB6B,MAAO,UAEXC,OAAQ,CACJF,UAAW3B,EAAY,QACvB8B,MAAOC,GAAG,sBACVH,MAAO,UAEXrB,KAAM,CACFoB,UAAW1B,EAAQ,QACnB6B,MAAOC,GAAG,oBACVH,MAAO,UAITI,EAAaC,EAAIC,SAASC,MAAM,CAClCN,OAAQI,EAAIG,SAASC,SAASN,GAAG,6BACjCL,OAAQO,EACHK,SACAC,IAAI,EAAGR,GAAG,6BACVM,SAASN,GAAG,6BACjBxB,KAAM0B,EAAIG,SAASC,SAASN,GAAG,+BAG7BH,EAAQd,EAAAA,IAAI,CACde,OAAQ,GACRH,OAAQ,EACRnB,KAAMgB,EAAKiB,MAAMjC,KACjBG,GAAID,EAAMC,KAGd+B,EAAaA,cAACb,GAEd,IAQMc,EAAS,WACX3B,EAAM4B,OAAO,gBAAgB,GAC7BnB,EAAOgB,OAAQ,GA6DnB,OAvBAI,OAAOC,iBAAiB,SAAS,SAACC,GAC1B3B,EAAMqB,OAAmB,WAAVM,EAAE7B,KACjByB,OAIRK,SAASF,iBAAiB,oBAAoB,WACtC1B,EAAMqB,OACNO,SAASC,gBAAgBC,UAAUC,IAAI,iBAG3C,IAAMC,EAAWJ,SAASK,eAAe,qBAErCD,GACAA,EAASN,iBAAiB,SAAS,WAC/BE,SAASK,eAAe,gBAAgBC,iBAAiB,qBAAqBC,SAAQ,SAAAzB,GAClFA,EAAOoB,UAAUM,OAAO,aACxBJ,EAASI,kBAItB,GAEHC,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAA,CACI3C,QAAAA,EACAM,MAAAA,EACAM,OAAAA,EACAO,WAAAA,EACAkB,IA5EQ,WACH5B,EAAKkB,MAGNzB,EAAM4B,OAAO,gBAAgB,GAF7B5B,EAAM4B,OAAO,aAAc,UA2E/BD,OAAAA,GACAjB,SAAAA,GACAgC,YAlEa,WACb5C,EAAQ2B,OAAQ,EAEhBkB,MACKC,KAAKC,OAAO,cAAehC,EAAMY,OACjCqB,MAAK,WACFrC,EAAOgB,OAAQ,EAEfZ,EAAMY,MAAQ,CACVX,OAAQ,GACRH,OAAQ,EACRnB,KAAMgB,EAAKiB,MAAMjC,KACjBG,GAAID,EAAMC,OAEjB,OACM,SAACoD,GAGJ,GAFA5C,EAAOsB,MAAQ,GAEXsB,EAAMC,SAASC,MAAQF,EAAMC,SAASC,KAAK9C,OAAQ,CACnD,IAAA+C,IAAAA,EAAAC,EAAAA,EAAgCC,OAAOC,QACnCN,EAAMC,SAASC,KAAK9C,QACvB+C,EAAAC,EAAAG,OAAAJ,IAAE,CAFE,IAAAK,EAAAC,EAAAL,EAAAD,GAAA,GAAOO,EAAKF,EAAA,GAAEG,EAAQH,EAAA,GAGnBG,EAAS,KACTvD,EAAOsB,MAAMgC,GAASC,EAAS,IAIvCxD,EAAIuB,YAGJ,SAAC,WACL3B,EAAQ2B,OAAQ,QAoCxBtB,SAAAA,SACAD,GAAG,QACHW,GAAK,SACLJ,MC/MHkD,EAAA,CAAAC,MAAM,gBAIEC,EAAA,CAAAD,MAAM,oBAEHE,EAEKC,mBAAA,MAAA,CAFAH,MAAM,cAAY,CACnBE,EAA0BC,mBAAA,MAAA,CAArBC,aAAW,iBAGnBC,EAAA,CAAAL,MAAM,OACFM,EAAA,CAAAN,MAAM,SACNO,EAAA,CAAAP,MAAM,qBAUMQ,EAAA,CAAAR,MAAM,SACFS,EAAA,CAAAT,MAAM,wBACFU,EAAA,CAAAV,MAAM,UASNW,EAAA,CAAAX,MAAM,yBAW1BY,EAAA,CAAAZ,MAAM,uCAEFa,EAAA,CAAAb,MAAM,8EA9C/B,OAAAc,EAAAA,YAAAC,qBAqDK,MArDLhB,EAqDK,CApDDG,EAAkFC,mBAAA,SAAA,CAA1EH,MAAM,oBAAqBgB,sCAAOC,EAAG1C,KAAA0C,EAAA1C,IAAA2C,MAAAD,EAAAE,gCAAKF,EAAE7D,GAAA,oBAAA,GACpD8C,EAkDKC,mBAAA,MAAA,CAlDAH,MAAKoB,EAAAA,eAAA,CAAC,QAAQ,CAAAC,YAA6BJ,EAAMzE,WAClD0D,EAAmDC,mBAAA,MAAA,CAA9CH,MAAM,mBAAoBgB,sCAAOC,EAAMlD,QAAAkD,EAAAlD,OAAAmD,MAAAD,EAAAE,eAC5CjB,EAAAC,mBA+CK,MA/CLF,EA+CK,CA9CDC,EAAAA,mBAIQ,SAAA,CAJAF,MAAM,uBAAwBgB,sCAAOC,EAAMlD,QAAAkD,EAAAlD,OAAAmD,MAAAD,EAAAE,iBAKnDjB,qBAwCK,MAxCLG,EAwCK,CAvCDH,EAAqDC,mBAAA,MAArDG,EAAqDgB,EAAAC,gBAA/BN,EAAE7D,GAAA,sBAAA,GACxBoE,EAAAA,eAAAtB,EAAAC,mBA+BK,MA/BLI,EA+BK,gBA9BDkB,EAAAA,YA6BYC,EAAA,CA5BRC,iBAAiB,QAChB7E,OAAQmE,EAAMnE,OACd8E,oBAAmBX,EAAU5D,WAC7BwE,iBAAgBZ,EAAM1E,OACtBD,IAAK2E,EAAG3E,IACRwC,SAAQmC,EAAQnC,WAENgD,qBACP,WAAA,MAkBK,CAlBL5B,EAAAA,mBAkBK,MAlBLM,EAkBK,CAjBDN,EAAAC,mBAgBK,MAhBLM,EAgBK,CAfDP,EAAAC,mBAQK,MARLO,EAQK,CAPDR,EAAAA,mBAMqC,SAAA,CALjCF,wBAAM,iBAAe,cAEPiB,EAAA/E,WADd6F,KAAK,4BAILd,EAAE7D,GAAA,qBAAA,KAEV8C,EAAAC,mBAKK,MALLQ,EAKK,CAJDT,EAAAA,mBAGuC,SAAA,CAFnCF,MAAM,SACLgB,sCAAOC,EAAMlD,QAAAkD,EAAAlD,OAAAmD,MAAAD,EAAAE,gCACdF,EAAE7D,GAAA,uBAAA,kGAzBU6D,EAAMpE,UAgC9C2E,EAAAQ,eAAA9B,qBAKK,MALLU,EAKK,CAJDV,EAA4DC,mBAAA,MAAA,CAAvDH,MAAM,UAAUiC,UAAQhB,EAAE7D,GAAA,iCAC/B8C,EAAAA,mBAEK,MAFLW,EAEK,CADDX,EAA+EC,mBAAA,SAAA,CAAvEH,MAAM,SAAUgB,sCAAOC,EAAMlD,QAAAkD,EAAAlD,OAAAmD,MAAAD,EAAAE,gCAAKF,EAAE7D,GAAA,yBAAA,qBAHX6D,EAAMpE"}
@@ -1 +1 @@
1
- {"version":3,"file":"Viewed.js","sources":["../../../../src/components/shop/viewed/Viewed.vue","../../../../src/components/shop/viewed/Viewed.vue?vue&type=template&id=7e9fd054&lang.js"],"sourcesContent":["<template>\n <div ref=\"container\">\n <component :is=\"component\"></component>\n </div>\n</template>\n<script>\nimport { ref, onMounted, nextTick, defineComponent } from 'vue';\nimport Swiper, { Navigation, Mousewheel } from 'swiper';\n\nexport default defineComponent({\n name: 'viewed',\n props: {\n slider: {\n type: Boolean,\n default: false\n }\n },\n setup(props) {\n let inited = false;\n\n const container = ref(null);\n const component = ref(null);\n\n const callback = (entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n if (!inited) {\n inited = true;\n load();\n }\n }\n });\n };\n\n const load = () => {\n $http\n .post($ziggy('api.viewed'), {\n action: 'list',\n account: window.location.href.indexOf('/account/viewed') !== -1\n })\n .then((response) => {\n window.app.component('viewed-container', {\n template: response.data ? response.data : '<i></i>'\n });\n\n component.value = 'viewed-container';\n\n nextTick(() => {\n if (props.slider) {\n const options = window.viewedSwiperOptions\n ? window.viewedSwiperOptions\n : {\n slidesPerView: 5,\n spaceBetween: 24,\n freeMode: true,\n navigation: {\n nextEl: '.swiper-button-next',\n prevEl: '.swiper-button-prev'\n },\n mousewheel: {\n forceToAxis: true\n }\n };\n\n options.modules = [Navigation, Mousewheel];\n\n new Swiper(container.value.querySelector('.swiper'), options);\n }\n\n if (window.lazyImages) {\n window.lazyImages.update();\n }\n\n if (window.promoCodeCallback && typeof window.promoCodeCallback === 'function') {\n window.promoCodeCallback(container.value);\n }\n });\n });\n };\n\n onMounted(() => {\n const observer = new IntersectionObserver(callback);\n observer.observe(container.value);\n });\n\n return {\n container,\n component\n };\n }\n});\n</script>\n","<template>\n <div ref=\"container\">\n <component :is=\"component\"></component>\n </div>\n</template>\n<script>\nimport { ref, onMounted, nextTick, defineComponent } from 'vue';\nimport Swiper, { Navigation, Mousewheel } from 'swiper';\n\nexport default defineComponent({\n name: 'viewed',\n props: {\n slider: {\n type: Boolean,\n default: false\n }\n },\n setup(props) {\n let inited = false;\n\n const container = ref(null);\n const component = ref(null);\n\n const callback = (entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n if (!inited) {\n inited = true;\n load();\n }\n }\n });\n };\n\n const load = () => {\n $http\n .post($ziggy('api.viewed'), {\n action: 'list',\n account: window.location.href.indexOf('/account/viewed') !== -1\n })\n .then((response) => {\n window.app.component('viewed-container', {\n template: response.data ? response.data : '<i></i>'\n });\n\n component.value = 'viewed-container';\n\n nextTick(() => {\n if (props.slider) {\n const options = window.viewedSwiperOptions\n ? window.viewedSwiperOptions\n : {\n slidesPerView: 5,\n spaceBetween: 24,\n freeMode: true,\n navigation: {\n nextEl: '.swiper-button-next',\n prevEl: '.swiper-button-prev'\n },\n mousewheel: {\n forceToAxis: true\n }\n };\n\n options.modules = [Navigation, Mousewheel];\n\n new Swiper(container.value.querySelector('.swiper'), options);\n }\n\n if (window.lazyImages) {\n window.lazyImages.update();\n }\n\n if (window.promoCodeCallback && typeof window.promoCodeCallback === 'function') {\n window.promoCodeCallback(container.value);\n }\n });\n });\n };\n\n onMounted(() => {\n const observer = new IntersectionObserver(callback);\n observer.observe(container.value);\n });\n\n return {\n container,\n component\n };\n }\n});\n</script>\n"],"names":["script","defineComponent","name","props","slider","type","Boolean","default","setup","inited","container","ref","component","callback","entries","forEach","entry","isIntersecting","load","$http","post","$ziggy","action","account","window","location","href","indexOf","then","response","app","template","data","value","nextTick","options","viewedSwiperOptions","slidesPerView","spaceBetween","freeMode","navigation","nextEl","prevEl","mousewheel","forceToAxis","modules","Navigation","Mousewheel","Swiper","querySelector","lazyImages","update","promoCodeCallback","onMounted","IntersectionObserver","observe","_hoisted_1","_openBlock","openBlock","_createElementBlock","_createBlock","_resolveDynamicComponent","_ctx"],"mappings":"yIASAA,EAAeC,kBAAgB,CAC3BC,KAAM,SACNC,MAAO,CACHC,OAAQ,CACJC,KAAMC,QACNC,SAAS,IAGjBC,MAAK,SAACL,GACF,IAAIM,GAAS,EAEPC,EAAYC,MAAI,MAChBC,EAAYD,MAAI,MAEhBE,EAAW,SAACC,GACdA,EAAQC,SAAQ,SAACC,GACTA,EAAMC,iBACDR,IACDA,GAAS,EACTS,UAMVA,EAAO,WACTC,MACKC,KAAKC,OAAO,cAAe,CACxBC,OAAQ,OACRC,SAA8D,IAArDC,OAAOC,SAASC,KAAKC,QAAQ,qBAEzCC,MAAK,SAACC,GACHL,OAAOM,IAAIlB,UAAU,mBAAoB,CACrCmB,SAAUF,EAASG,KAAOH,EAASG,KAAO,YAG9CpB,EAAUqB,MAAQ,mBAElBC,EAAAA,UAAS,WACL,GAAI/B,EAAMC,OAAQ,CACd,IAAM+B,EAAUX,OAAOY,oBACjBZ,OAAOY,oBACP,CACEC,cAAe,EACfC,aAAc,GACdC,UAAU,EACVC,WAAY,CACRC,OAAQ,sBACRC,OAAQ,uBAEZC,WAAY,CACRC,aAAa,IAIzBT,EAAQU,QAAU,CAACC,EAAUA,WAAEC,EAAUA,YAEzC,IAAIC,EAAAA,QAAOtC,EAAUuB,MAAMgB,cAAc,WAAYd,GAGrDX,OAAO0B,YACP1B,OAAO0B,WAAWC,SAGlB3B,OAAO4B,mBAAyD,mBAA7B5B,OAAO4B,mBAC1C5B,OAAO4B,kBAAkB1C,EAAUuB,cAWvD,OALAoB,EAAAA,WAAU,WACW,IAAIC,qBAAqBzC,GACjC0C,QAAQ7C,EAAUuB,UAGxB,CACHvB,UAAAA,EACAE,UAAAA,MCtFH4C,EAAA,CAAA7C,IAAI,4CAAT,OAAA8C,EAAAC,YAAAC,EAAAA,mBAEK,MAFLH,EAEK,EADDC,EAAAC,YAAAE,EAAAA,YAAsCC,EAAAA,wBAAtBC,EAASlD"}
1
+ {"version":3,"file":"Viewed.js","sources":["../../../../src/components/shop/viewed/Viewed.vue","../../../../src/components/shop/viewed/Viewed.vue?vue&type=template&id=7e9fd054&lang.js"],"sourcesContent":["<template>\n <div ref=\"container\">\n <component :is=\"component\"></component>\n </div>\n</template>\n<script>\nimport { ref, onMounted, nextTick, defineComponent } from 'vue';\nimport Swiper, { Navigation, Mousewheel } from 'swiper';\n\nexport default defineComponent({\n name: 'viewed',\n props: {\n slider: {\n type: Boolean,\n default: false\n }\n },\n setup(props) {\n let inited = false;\n\n const container = ref(null);\n const component = ref(null);\n\n const callback = (entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n if (!inited) {\n inited = true;\n load();\n }\n }\n });\n };\n\n const load = () => {\n $http\n .post($ziggy('api.viewed'), {\n action: 'list',\n account: window.location.href.indexOf('/account/viewed') !== -1\n })\n .then((response) => {\n window.app.component('viewed-container', {\n template: response.data ? response.data : '<i></i>'\n });\n\n component.value = 'viewed-container';\n\n nextTick(() => {\n if (props.slider) {\n const options = window.viewedSwiperOptions\n ? window.viewedSwiperOptions\n : {\n slidesPerView: 5,\n spaceBetween: 24,\n freeMode: true,\n navigation: {\n nextEl: '.swiper-button-next',\n prevEl: '.swiper-button-prev'\n },\n mousewheel: {\n forceToAxis: true\n }\n };\n\n options.modules = [Navigation, Mousewheel];\n\n new Swiper(container.value.querySelector('.swiper'), options);\n }\n\n if (window.lazyImages) {\n window.lazyImages.update();\n }\n\n if (window.promoCodeCallback && typeof window.promoCodeCallback === 'function') {\n window.promoCodeCallback(container.value);\n }\n });\n });\n };\n\n onMounted(() => {\n const observer = new IntersectionObserver(callback);\n observer.observe(container.value);\n });\n\n return {\n container,\n component\n };\n }\n});\n</script>\n","<template>\n <div ref=\"container\">\n <component :is=\"component\"></component>\n </div>\n</template>\n<script>\nimport { ref, onMounted, nextTick, defineComponent } from 'vue';\nimport Swiper, { Navigation, Mousewheel } from 'swiper';\n\nexport default defineComponent({\n name: 'viewed',\n props: {\n slider: {\n type: Boolean,\n default: false\n }\n },\n setup(props) {\n let inited = false;\n\n const container = ref(null);\n const component = ref(null);\n\n const callback = (entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n if (!inited) {\n inited = true;\n load();\n }\n }\n });\n };\n\n const load = () => {\n $http\n .post($ziggy('api.viewed'), {\n action: 'list',\n account: window.location.href.indexOf('/account/viewed') !== -1\n })\n .then((response) => {\n window.app.component('viewed-container', {\n template: response.data ? response.data : '<i></i>'\n });\n\n component.value = 'viewed-container';\n\n nextTick(() => {\n if (props.slider) {\n const options = window.viewedSwiperOptions\n ? window.viewedSwiperOptions\n : {\n slidesPerView: 5,\n spaceBetween: 24,\n freeMode: true,\n navigation: {\n nextEl: '.swiper-button-next',\n prevEl: '.swiper-button-prev'\n },\n mousewheel: {\n forceToAxis: true\n }\n };\n\n options.modules = [Navigation, Mousewheel];\n\n new Swiper(container.value.querySelector('.swiper'), options);\n }\n\n if (window.lazyImages) {\n window.lazyImages.update();\n }\n\n if (window.promoCodeCallback && typeof window.promoCodeCallback === 'function') {\n window.promoCodeCallback(container.value);\n }\n });\n });\n };\n\n onMounted(() => {\n const observer = new IntersectionObserver(callback);\n observer.observe(container.value);\n });\n\n return {\n container,\n component\n };\n }\n});\n</script>\n"],"names":["script","defineComponent","name","props","slider","type","Boolean","default","setup","inited","container","ref","component","callback","entries","forEach","entry","isIntersecting","load","$http","post","$ziggy","action","account","window","location","href","indexOf","then","response","app","template","data","value","nextTick","options","viewedSwiperOptions","slidesPerView","spaceBetween","freeMode","navigation","nextEl","prevEl","mousewheel","forceToAxis","modules","Navigation","Mousewheel","Swiper","querySelector","lazyImages","update","promoCodeCallback","onMounted","IntersectionObserver","observe","_hoisted_1","_openBlock","openBlock","_createElementBlock","_createBlock","_resolveDynamicComponent","_ctx"],"mappings":"yIASAA,EAAeC,kBAAgB,CAC3BC,KAAM,SACNC,MAAO,CACHC,OAAQ,CACJC,KAAMC,QACNC,SAAS,IAGjBC,MAAAA,SAAML,GACF,IAAIM,GAAS,EAEPC,EAAYC,MAAI,MAChBC,EAAYD,MAAI,MAEhBE,EAAW,SAACC,GACdA,EAAQC,SAAQ,SAACC,GACTA,EAAMC,iBACDR,IACDA,GAAS,EACTS,UAMVA,EAAO,WACTC,MACKC,KAAKC,OAAO,cAAe,CACxBC,OAAQ,OACRC,SAA8D,IAArDC,OAAOC,SAASC,KAAKC,QAAQ,qBAEzCC,MAAK,SAACC,GACHL,OAAOM,IAAIlB,UAAU,mBAAoB,CACrCmB,SAAUF,EAASG,KAAOH,EAASG,KAAO,YAG9CpB,EAAUqB,MAAQ,mBAElBC,EAAAA,UAAS,WACL,GAAI/B,EAAMC,OAAQ,CACd,IAAM+B,EAAUX,OAAOY,oBACjBZ,OAAOY,oBACP,CACEC,cAAe,EACfC,aAAc,GACdC,UAAU,EACVC,WAAY,CACRC,OAAQ,sBACRC,OAAQ,uBAEZC,WAAY,CACRC,aAAa,IAIzBT,EAAQU,QAAU,CAACC,EAAUA,WAAEC,EAAUA,YAEzC,IAAIC,EAAAA,QAAOtC,EAAUuB,MAAMgB,cAAc,WAAYd,GAGrDX,OAAO0B,YACP1B,OAAO0B,WAAWC,SAGlB3B,OAAO4B,mBAAyD,mBAA7B5B,OAAO4B,mBAC1C5B,OAAO4B,kBAAkB1C,EAAUuB,cAWvD,OALAoB,EAAAA,WAAU,WACW,IAAIC,qBAAqBzC,GACjC0C,QAAQ7C,EAAUuB,UAGxB,CACHvB,UAAAA,EACAE,UAAAA,MCtFH4C,EAAA,CAAA7C,IAAI,4CAAT,OAAA8C,EAAAC,YAAAC,EAAAA,mBAEK,MAFLH,EAEK,EADDC,EAAAC,YAAAE,EAAAA,YAAsCC,EAAAA,wBAAtBC,EAASlD"}
@@ -1 +1 @@
1
- {"version":3,"file":"ViewedDelete.js","sources":["../../../../src/components/shop/viewed/ViewedDelete.vue","../../../../src/components/shop/viewed/ViewedDelete.vue?vue&type=template&id=56faefa1&lang.js"],"sourcesContent":["<template>\n <button class=\"button viewed\" @click=\"action($event)\" v-bind:class=\"{ 'is-loading': loading }\" v-if=\"id\"></button>\n <button class=\"button is-delete-all-viewed\" @click=\"action($event)\" v-else>{{ __('shop.viewed.delete_all') }}</button>\n</template>\n<script>\nimport { ref, defineComponent } from 'vue';\n\nexport default /*#__PURE__*/ defineComponent({\n props: {\n id: Number\n },\n setup(props) {\n const loading = ref(false);\n\n const notice = () => {\n const notice = document.getElementById('viewed-notice');\n\n if (notice) {\n notice.classList.remove('is-hidden');\n }\n };\n\n const action = (e) => {\n if (!loading.value) {\n loading.value = true;\n\n let item = props.id ? e.currentTarget.closest('.product') : null;\n\n $http\n .post($ziggy('api.viewed'), {\n action: 'delete',\n id: props.id\n })\n .then(() => {\n if (item) {\n item.remove();\n\n if (!document.getElementById('viewed-items-container').querySelectorAll('.product').length) {\n document.getElementById('viewed-items-container').remove();\n\n notice();\n }\n } else {\n document.getElementById('viewed-items-container').remove();\n\n notice();\n }\n })\n .finally(() => {\n loading.value = false;\n });\n }\n };\n\n return {\n action,\n loading\n };\n }\n});\n</script>","<template>\n <button class=\"button viewed\" @click=\"action($event)\" v-bind:class=\"{ 'is-loading': loading }\" v-if=\"id\"></button>\n <button class=\"button is-delete-all-viewed\" @click=\"action($event)\" v-else>{{ __('shop.viewed.delete_all') }}</button>\n</template>\n<script>\nimport { ref, defineComponent } from 'vue';\n\nexport default /*#__PURE__*/ defineComponent({\n props: {\n id: Number\n },\n setup(props) {\n const loading = ref(false);\n\n const notice = () => {\n const notice = document.getElementById('viewed-notice');\n\n if (notice) {\n notice.classList.remove('is-hidden');\n }\n };\n\n const action = (e) => {\n if (!loading.value) {\n loading.value = true;\n\n let item = props.id ? e.currentTarget.closest('.product') : null;\n\n $http\n .post($ziggy('api.viewed'), {\n action: 'delete',\n id: props.id\n })\n .then(() => {\n if (item) {\n item.remove();\n\n if (!document.getElementById('viewed-items-container').querySelectorAll('.product').length) {\n document.getElementById('viewed-items-container').remove();\n\n notice();\n }\n } else {\n document.getElementById('viewed-items-container').remove();\n\n notice();\n }\n })\n .finally(() => {\n loading.value = false;\n });\n }\n };\n\n return {\n action,\n loading\n };\n }\n});\n</script>"],"names":["script","defineComponent","props","id","Number","setup","loading","ref","notice","document","getElementById","classList","remove","action","e","value","item","currentTarget","closest","$http","post","$ziggy","then","querySelectorAll","length","_ctx","_createElementBlock","class","_normalizeClass","is-loading","onClick","_cache","$event","__"],"mappings":"kCAOeA,EAAcC,kBAAgB,CACzCC,MAAO,CACHC,GAAIC,QAERC,MAAK,SAACH,GACF,IAAMI,EAAUC,OAAI,GAEdC,EAAS,WACX,IAAMA,EAASC,SAASC,eAAe,iBAEnCF,GACAA,EAAOG,UAAUC,OAAO,cAoChC,MAAO,CACHC,OAjCW,SAACC,GACZ,IAAKR,EAAQS,MAAO,CAChBT,EAAQS,OAAQ,EAEhB,IAAIC,EAAOd,EAAMC,GAAKW,EAAEG,cAAcC,QAAQ,YAAc,KAE5DC,MACKC,KAAKC,OAAO,cAAe,CACxBR,OAAQ,SACRV,GAAID,EAAMC,KAEbmB,MAAK,WACEN,GACAA,EAAKJ,SAEAH,SAASC,eAAe,0BAA0Ba,iBAAiB,YAAYC,SAChFf,SAASC,eAAe,0BAA0BE,SAElDJ,OAGJC,SAASC,eAAe,0BAA0BE,SAElDJ,QAGA,SAAC,WACLF,EAAQS,OAAQ,OAO5BT,QAAAA,4CCvD6FmB,EAAEtB,kBAAvGuB,EAAAA,mBAAiH,SAAA,OAAzGC,MAAKC,EAAAA,eAAA,CAAC,gBAAgB,CAAAC,aAAsDJ,EAAMnB,WAA3DwB,QAAKC,EAAA,KAAAA,EAAA,GAAA,SAAAC,GAAA,OAAEP,EAAMZ,OAACmB,8BAC7CN,EAAAA,mBAAqH,SAAA,OAA7GC,MAAM,8BAA+BG,QAAKC,EAAA,KAAAA,EAAA,GAAA,SAAAC,GAAA,OAAEP,EAAMZ,OAACmB,wBAAmBP,EAAEQ,GAAA,2BAAA"}
1
+ {"version":3,"file":"ViewedDelete.js","sources":["../../../../src/components/shop/viewed/ViewedDelete.vue","../../../../src/components/shop/viewed/ViewedDelete.vue?vue&type=template&id=56faefa1&lang.js"],"sourcesContent":["<template>\n <button class=\"button viewed\" @click=\"action($event)\" v-bind:class=\"{ 'is-loading': loading }\" v-if=\"id\"></button>\n <button class=\"button is-delete-all-viewed\" @click=\"action($event)\" v-else>{{ __('shop.viewed.delete_all') }}</button>\n</template>\n<script>\nimport { ref, defineComponent } from 'vue';\n\nexport default /*#__PURE__*/ defineComponent({\n props: {\n id: Number\n },\n setup(props) {\n const loading = ref(false);\n\n const notice = () => {\n const notice = document.getElementById('viewed-notice');\n\n if (notice) {\n notice.classList.remove('is-hidden');\n }\n };\n\n const action = (e) => {\n if (!loading.value) {\n loading.value = true;\n\n let item = props.id ? e.currentTarget.closest('.product') : null;\n\n $http\n .post($ziggy('api.viewed'), {\n action: 'delete',\n id: props.id\n })\n .then(() => {\n if (item) {\n item.remove();\n\n if (!document.getElementById('viewed-items-container').querySelectorAll('.product').length) {\n document.getElementById('viewed-items-container').remove();\n\n notice();\n }\n } else {\n document.getElementById('viewed-items-container').remove();\n\n notice();\n }\n })\n .finally(() => {\n loading.value = false;\n });\n }\n };\n\n return {\n action,\n loading\n };\n }\n});\n</script>","<template>\n <button class=\"button viewed\" @click=\"action($event)\" v-bind:class=\"{ 'is-loading': loading }\" v-if=\"id\"></button>\n <button class=\"button is-delete-all-viewed\" @click=\"action($event)\" v-else>{{ __('shop.viewed.delete_all') }}</button>\n</template>\n<script>\nimport { ref, defineComponent } from 'vue';\n\nexport default /*#__PURE__*/ defineComponent({\n props: {\n id: Number\n },\n setup(props) {\n const loading = ref(false);\n\n const notice = () => {\n const notice = document.getElementById('viewed-notice');\n\n if (notice) {\n notice.classList.remove('is-hidden');\n }\n };\n\n const action = (e) => {\n if (!loading.value) {\n loading.value = true;\n\n let item = props.id ? e.currentTarget.closest('.product') : null;\n\n $http\n .post($ziggy('api.viewed'), {\n action: 'delete',\n id: props.id\n })\n .then(() => {\n if (item) {\n item.remove();\n\n if (!document.getElementById('viewed-items-container').querySelectorAll('.product').length) {\n document.getElementById('viewed-items-container').remove();\n\n notice();\n }\n } else {\n document.getElementById('viewed-items-container').remove();\n\n notice();\n }\n })\n .finally(() => {\n loading.value = false;\n });\n }\n };\n\n return {\n action,\n loading\n };\n }\n});\n</script>"],"names":["script","defineComponent","props","id","Number","setup","loading","ref","notice","document","getElementById","classList","remove","action","e","value","item","currentTarget","closest","$http","post","$ziggy","then","querySelectorAll","length","_ctx","_createElementBlock","class","_normalizeClass","is-loading","onClick","_cache","$event","__"],"mappings":"kCAOeA,EAAcC,kBAAgB,CACzCC,MAAO,CACHC,GAAIC,QAERC,MAAAA,SAAMH,GACF,IAAMI,EAAUC,OAAI,GAEdC,EAAS,WACX,IAAMA,EAASC,SAASC,eAAe,iBAEnCF,GACAA,EAAOG,UAAUC,OAAO,cAoChC,MAAO,CACHC,OAjCW,SAACC,GACZ,IAAKR,EAAQS,MAAO,CAChBT,EAAQS,OAAQ,EAEhB,IAAIC,EAAOd,EAAMC,GAAKW,EAAEG,cAAcC,QAAQ,YAAc,KAE5DC,MACKC,KAAKC,OAAO,cAAe,CACxBR,OAAQ,SACRV,GAAID,EAAMC,KAEbmB,MAAK,WACEN,GACAA,EAAKJ,SAEAH,SAASC,eAAe,0BAA0Ba,iBAAiB,YAAYC,SAChFf,SAASC,eAAe,0BAA0BE,SAElDJ,OAGJC,SAASC,eAAe,0BAA0BE,SAElDJ,QAGA,SAAC,WACLF,EAAQS,OAAQ,OAO5BT,QAAAA,4CCvD6FmB,EAAEtB,kBAAvGuB,EAAAA,mBAAiH,SAAA,OAAzGC,MAAKC,EAAAA,eAAA,CAAC,gBAAgB,CAAAC,aAAsDJ,EAAMnB,WAA3DwB,QAAKC,EAAA,KAAAA,EAAA,GAAA,SAAAC,GAAA,OAAEP,EAAMZ,OAACmB,8BAC7CN,EAAAA,mBAAqH,SAAA,OAA7GC,MAAM,8BAA+BG,QAAKC,EAAA,KAAAA,EAAA,GAAA,SAAAC,GAAA,OAAEP,EAAMZ,OAACmB,wBAAmBP,EAAEQ,GAAA,2BAAA"}