@perevorot/shop 1.1.1 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api.js +1 -1
- package/dist/api.js.map +1 -1
- package/dist/app.js +1 -1
- package/dist/app.js.map +1 -1
- package/dist/global.js +1 -1
- package/dist/global.js.map +1 -1
- package/dist/helpers.js +1 -1
- package/dist/helpers.js.map +1 -1
- package/dist/js/components/account/Account.js +1 -1
- package/dist/js/components/account/Account.js.map +1 -1
- package/dist/js/components/account/OrderItem.js +1 -1
- package/dist/js/components/account/OrderItem.js.map +1 -1
- package/dist/js/components/account/Orders.js +1 -1
- package/dist/js/components/account/Orders.js.map +1 -1
- package/dist/js/components/account/User.js +1 -1
- package/dist/js/components/account/User.js.map +1 -1
- package/dist/js/components/account/Wish.js +1 -1
- package/dist/js/components/account/Wish.js.map +1 -1
- package/dist/js/components/auth/Forget.js +1 -1
- package/dist/js/components/auth/Forget.js.map +1 -1
- package/dist/js/components/auth/Login.js +1 -1
- package/dist/js/components/auth/Login.js.map +1 -1
- package/dist/js/components/auth/Registration.js +1 -1
- package/dist/js/components/auth/Registration.js.map +1 -1
- package/dist/js/components/auth/Reset.js +1 -1
- package/dist/js/components/auth/Reset.js.map +1 -1
- package/dist/js/components/auth/User.js +1 -1
- package/dist/js/components/auth/User.js.map +1 -1
- package/dist/js/components/shop/Catalog.js +1 -1
- package/dist/js/components/shop/Catalog.js.map +1 -1
- package/dist/js/components/shop/CodeCopy.js +1 -1
- package/dist/js/components/shop/CodeCopy.js.map +1 -1
- package/dist/js/components/shop/Cross.js +1 -1
- package/dist/js/components/shop/Cross.js.map +1 -1
- package/dist/js/components/shop/FilterToggle.js +1 -1
- package/dist/js/components/shop/FilterToggle.js.map +1 -1
- package/dist/js/components/shop/Gallery.js +1 -1
- package/dist/js/components/shop/Gallery.js.map +1 -1
- package/dist/js/components/shop/Pagination.js +1 -1
- package/dist/js/components/shop/Pagination.js.map +1 -1
- package/dist/js/components/shop/PromoProducts.js +1 -1
- package/dist/js/components/shop/PromoProducts.js.map +1 -1
- package/dist/js/components/shop/Search.js +1 -1
- package/dist/js/components/shop/Search.js.map +1 -1
- package/dist/js/components/shop/bundle/Bundle.js +1 -1
- package/dist/js/components/shop/bundle/Bundle.js.map +1 -1
- package/dist/js/components/shop/bundle/BundleAdd.js +1 -1
- package/dist/js/components/shop/bundle/BundleAdd.js.map +1 -1
- package/dist/js/components/shop/cart/Cart.js +1 -1
- package/dist/js/components/shop/cart/Cart.js.map +1 -1
- package/dist/js/components/shop/cart/CartAdd.js +1 -1
- package/dist/js/components/shop/cart/CartAdd.js.map +1 -1
- package/dist/js/components/shop/cart/CartItem.js +1 -1
- package/dist/js/components/shop/cart/CartItem.js.map +1 -1
- package/dist/js/components/shop/cart/CartTrigger.js +1 -1
- package/dist/js/components/shop/cart/CartTrigger.js.map +1 -1
- package/dist/js/components/shop/cart/SuccessMessage.js +1 -1
- package/dist/js/components/shop/cart/SuccessMessage.js.map +1 -1
- package/dist/js/components/shop/compare/Compare.js +1 -1
- package/dist/js/components/shop/compare/Compare.js.map +1 -1
- package/dist/js/components/shop/compare/CompareAdd.js +1 -1
- package/dist/js/components/shop/compare/CompareAdd.js.map +1 -1
- package/dist/js/components/shop/compare/CompareDelete.js +1 -1
- package/dist/js/components/shop/compare/CompareDelete.js.map +1 -1
- package/dist/js/components/shop/compare/Comparsion.js +1 -1
- package/dist/js/components/shop/compare/Comparsion.js.map +1 -1
- package/dist/js/components/shop/compare/SuccessMessage.js +1 -1
- package/dist/js/components/shop/compare/SuccessMessage.js.map +1 -1
- package/dist/js/components/shop/filters/FilterSearch.js +1 -1
- package/dist/js/components/shop/filters/FilterSearch.js.map +1 -1
- package/dist/js/components/shop/filters/Price.js +1 -1
- package/dist/js/components/shop/filters/Price.js.map +1 -1
- package/dist/js/components/shop/order/Checkout.js +1 -1
- package/dist/js/components/shop/order/Checkout.js.map +1 -1
- package/dist/js/components/shop/order/CheckoutItem.js +1 -1
- package/dist/js/components/shop/order/CheckoutItem.js.map +1 -1
- package/dist/js/components/shop/order/OneClick.js +1 -1
- package/dist/js/components/shop/order/OneClick.js.map +1 -1
- package/dist/js/components/shop/order/shipping/CheckoutShippingCourier.js +1 -1
- package/dist/js/components/shop/order/shipping/CheckoutShippingCourier.js.map +1 -1
- package/dist/js/components/shop/order/shipping/CheckoutShippingNovaposhtaAddress.js +1 -1
- package/dist/js/components/shop/order/shipping/CheckoutShippingNovaposhtaAddress.js.map +1 -1
- package/dist/js/components/shop/order/shipping/CheckoutShippingNovaposhtaWarehouse.js +1 -1
- package/dist/js/components/shop/order/shipping/CheckoutShippingNovaposhtaWarehouse.js.map +1 -1
- package/dist/js/components/shop/order/shipping/CheckoutShippingPickup.js +1 -1
- package/dist/js/components/shop/order/shipping/CheckoutShippingPickup.js.map +1 -1
- package/dist/js/components/shop/reviews/Review.js +1 -1
- package/dist/js/components/shop/reviews/Review.js.map +1 -1
- package/dist/js/components/shop/viewed/Viewed.js +1 -1
- package/dist/js/components/shop/viewed/Viewed.js.map +1 -1
- package/dist/js/components/shop/viewed/ViewedDelete.js +1 -1
- package/dist/js/components/shop/viewed/ViewedDelete.js.map +1 -1
- package/dist/js/components/shop/viewed/Viewer.js +1 -1
- package/dist/js/components/shop/viewed/Viewer.js.map +1 -1
- package/dist/js/components/shop/wishlist/SuccessMessage.js +1 -1
- package/dist/js/components/shop/wishlist/SuccessMessage.js.map +1 -1
- package/dist/js/components/shop/wishlist/Wishlist.js +1 -1
- package/dist/js/components/shop/wishlist/Wishlist.js.map +1 -1
- package/dist/js/components/shop/wishlist/WishlistAdd.js +1 -1
- package/dist/js/components/shop/wishlist/WishlistAdd.js.map +1 -1
- package/dist/js/components/shop/wishlist/WishlistDelete.js +1 -1
- package/dist/js/components/shop/wishlist/WishlistDelete.js.map +1 -1
- package/dist/js/forms/FormCheckbox.js +1 -1
- package/dist/js/forms/FormCheckbox.js.map +1 -1
- package/dist/js/forms/FormCheckboxes.js +1 -1
- package/dist/js/forms/FormCheckboxes.js.map +1 -1
- package/dist/js/forms/FormPassword.js +1 -1
- package/dist/js/forms/FormPassword.js.map +1 -1
- package/dist/js/forms/FormRadio.js +1 -1
- package/dist/js/forms/FormRadio.js.map +1 -1
- package/dist/js/forms/FormRating.js +1 -1
- package/dist/js/forms/FormRating.js.map +1 -1
- package/dist/js/forms/FormSelect.js +1 -1
- package/dist/js/forms/FormSelect.js.map +1 -1
- package/dist/js/forms/FormSwitch.js +1 -1
- package/dist/js/forms/FormSwitch.js.map +1 -1
- package/dist/js/forms/FormText.js +1 -1
- package/dist/js/forms/FormText.js.map +1 -1
- package/dist/js/forms/FormTextarea.js +1 -1
- package/dist/js/forms/FormTextarea.js.map +1 -1
- package/dist/store.js +1 -1
- package/dist/store.js.map +1 -1
- package/dist/vuex.js +1 -1
- package/dist/vuex.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Orders.js","sources":["../../../../src/js/components/account/OrderItem.vue","../../../../src/js/components/account/OrderItem.vue?vue&type=template&id=5981189e&lang.js","../../../../src/js/components/account/Orders.vue","../../../../src/js/components/account/Orders.vue?vue&type=template&id=6c15a270&lang.js"],"sourcesContent":["<template>\n <div class=\"history-order\" v-bind:class=\"{ 'is-open': isOpen }\">\n <div class=\"history-order-head\" @click=\"toggle\">\n <div class=\"history-order-title\">\n №{{ item.id }} {{ __('shop.cart.bydate') }} {{ item.date }} <span>{{ pluralize(item.positions.length, __('shop.pluralize.products')) }} {{ __('shop.cart.bysum') }} <span v-html=\"$filters.price(item.total)\"></span></span>\n </div>\n <div class=\"history-order-status\" v-bind:style=\"'color:' + item.status.color\">{{ item.status.name }}</div>\n </div>\n <div class=\"history-order-body\">\n <table class=\"history-order-table\">\n <thead>\n <tr>\n <th>{{ __('shop.cart.table.product') }}</th>\n <th>{{ __('shop.cart.table.price') }}</th>\n <th>{{ __('shop.cart.table.quantity') }}</th>\n <th>{{ __('shop.cart.table.sum') }}</th>\n </tr>\n </thead>\n <tbody>\n <tr v-for=\"(p, key) in item.positions\" v-bind:key=\"key\">\n <td>\n <div class=\"product\">\n <div class=\"product-photo\">\n <img :src=\"p.image\" v-if=\"p.image\" />\n <img src=\"/images/blank.png\" v-else />\n </div>\n <div class=\"product-info\">\n <a :href=\"p.category.href\" class=\"product-category\">{{ p.category.name }}</a>\n <a :href=\"p.href\" class=\"product-title\">{{ p.name }}</a>\n </div>\n </div>\n </td>\n <td>\n <div class=\"cell-title\">{{ __('shop.cart.table.price') }}</div>\n <div v-html=\"$filters.price(p.price)\"></div>\n </td>\n <td>\n <div class=\"cell-title\">{{ __('shop.cart.table.quantity') }}</div>\n <div>{{ p.quantity }}</div>\n </td>\n <td>\n <div class=\"cell-title\">{{ __('shop.cart.table.sum') }}</div>\n <div v-html=\"$filters.price(p.quantity * p.price)\"></div>\n </td>\n </tr>\n </tbody>\n </table>\n <div class=\"history-order-summary\">\n <div class=\"history-order-delivery-payment\" v-if=\"item.delivery && item.payment\">\n <div class=\"delivery-group\">\n <div>{{ __('shop.cart.shipment_info') }}</div>\n <div>\n {{ item.delivery }} <br />\n <span v-html=\"item.property.pickup_name ? item.property.pickup_name + '<br>' : ''\"></span>\n <span v-html=\"item.property.novaposhta_city ? item.property.novaposhta_city + '<br>' + item.property.novaposhta_warehouse + '<br>' : ''\"></span>\n <span v-html=\"addressName(item.property) + '<br>'\"></span>\n <span v-html=\"item.property.shipping_time ? item.property.shipping_time + '<br />' : ''\"></span>\n </div>\n </div>\n <div class=\"payment-group\">\n <div>{{ __('shop.cart.payment_info') }}</div>\n <div>{{ item.payment }}</div>\n </div>\n </div>\n <div class=\"history-order-total\">\n <div class=\"total-item products-amount\">\n {{ __('shop.cart.products') }}: <span>{{ item.positions.length }}</span>\n </div>\n <div class=\"total-item summ-regular\">{{ __('shop.cart.table.sum') }}: <span v-html=\"$filters.price(item.total)\"></span></div>\n <a @click=\"repeat\" class=\"repeat-checkout-btn\">{{ __('shop.cart.repeat') }}</a>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, defineComponent } from 'vue';\nimport { useToast } from 'vue-toastification';\nimport { useStore } from 'vuex';\n\nexport default defineComponent({\n props: {\n item: Object\n },\n setup(props) {\n const store = useStore();\n const toast = useToast();\n const item = props.item;\n const isOpen = ref(false);\n\n const toggle = () => {\n isOpen.value = !isOpen.value;\n };\n\n const pluralize = (count, words) => {\n let cases = [2, 0, 1, 1, 1, 2];\n\n return count + ' ' + words[count % 100 > 4 && count % 100 < 20 ? 2 : cases[Math.min(count % 10, 5)]];\n };\n\n const addressName = (item) => {\n if (!item) {\n return '';\n }\n\n return (item.shipping_postcode ? item.shipping_postcode + ', ' : '') + (item.shipping_city ? item.shipping_city : '') + (item.shipping_street ? ', ' + item.shipping_street : '') + (item.shipping_house ? ' ' + item.shipping_house : '') + (item.shipping_building ? ', ' + __('shop.address.building') + ' ' + item.shipping_building : '') + (item.shipping_flat ? ', ' + __('shop.address.apartment') + ' ' + item.shipping_flat : '') + (item.shipping_floor ? ', ' + item.shipping_floor + __('shop.address.floor') : '');\n };\n\n const repeat = () => {\n $http\n .post($ziggy('account.forward.orders'), {\n action: 'repeat',\n id: item.id\n })\n .then((response) => {\n toast(__('shop.cart.repeated'), {\n type: 'success'\n });\n\n store.dispatch('cart/get', {\n finally: () => { }\n });\n })\n .catch(() => {\n toast(__('shop.cart.repeated_error'), {\n type: 'error'\n });\n });\n };\n\n return {\n item,\n isOpen,\n toggle,\n pluralize,\n addressName,\n repeat\n };\n }\n});\n</script>\n","<template>\n <div class=\"history-order\" v-bind:class=\"{ 'is-open': isOpen }\">\n <div class=\"history-order-head\" @click=\"toggle\">\n <div class=\"history-order-title\">\n №{{ item.id }} {{ __('shop.cart.bydate') }} {{ item.date }} <span>{{ pluralize(item.positions.length, __('shop.pluralize.products')) }} {{ __('shop.cart.bysum') }} <span v-html=\"$filters.price(item.total)\"></span></span>\n </div>\n <div class=\"history-order-status\" v-bind:style=\"'color:' + item.status.color\">{{ item.status.name }}</div>\n </div>\n <div class=\"history-order-body\">\n <table class=\"history-order-table\">\n <thead>\n <tr>\n <th>{{ __('shop.cart.table.product') }}</th>\n <th>{{ __('shop.cart.table.price') }}</th>\n <th>{{ __('shop.cart.table.quantity') }}</th>\n <th>{{ __('shop.cart.table.sum') }}</th>\n </tr>\n </thead>\n <tbody>\n <tr v-for=\"(p, key) in item.positions\" v-bind:key=\"key\">\n <td>\n <div class=\"product\">\n <div class=\"product-photo\">\n <img :src=\"p.image\" v-if=\"p.image\" />\n <img src=\"/images/blank.png\" v-else />\n </div>\n <div class=\"product-info\">\n <a :href=\"p.category.href\" class=\"product-category\">{{ p.category.name }}</a>\n <a :href=\"p.href\" class=\"product-title\">{{ p.name }}</a>\n </div>\n </div>\n </td>\n <td>\n <div class=\"cell-title\">{{ __('shop.cart.table.price') }}</div>\n <div v-html=\"$filters.price(p.price)\"></div>\n </td>\n <td>\n <div class=\"cell-title\">{{ __('shop.cart.table.quantity') }}</div>\n <div>{{ p.quantity }}</div>\n </td>\n <td>\n <div class=\"cell-title\">{{ __('shop.cart.table.sum') }}</div>\n <div v-html=\"$filters.price(p.quantity * p.price)\"></div>\n </td>\n </tr>\n </tbody>\n </table>\n <div class=\"history-order-summary\">\n <div class=\"history-order-delivery-payment\" v-if=\"item.delivery && item.payment\">\n <div class=\"delivery-group\">\n <div>{{ __('shop.cart.shipment_info') }}</div>\n <div>\n {{ item.delivery }} <br />\n <span v-html=\"item.property.pickup_name ? item.property.pickup_name + '<br>' : ''\"></span>\n <span v-html=\"item.property.novaposhta_city ? item.property.novaposhta_city + '<br>' + item.property.novaposhta_warehouse + '<br>' : ''\"></span>\n <span v-html=\"addressName(item.property) + '<br>'\"></span>\n <span v-html=\"item.property.shipping_time ? item.property.shipping_time + '<br />' : ''\"></span>\n </div>\n </div>\n <div class=\"payment-group\">\n <div>{{ __('shop.cart.payment_info') }}</div>\n <div>{{ item.payment }}</div>\n </div>\n </div>\n <div class=\"history-order-total\">\n <div class=\"total-item products-amount\">\n {{ __('shop.cart.products') }}: <span>{{ item.positions.length }}</span>\n </div>\n <div class=\"total-item summ-regular\">{{ __('shop.cart.table.sum') }}: <span v-html=\"$filters.price(item.total)\"></span></div>\n <a @click=\"repeat\" class=\"repeat-checkout-btn\">{{ __('shop.cart.repeat') }}</a>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, defineComponent } from 'vue';\nimport { useToast } from 'vue-toastification';\nimport { useStore } from 'vuex';\n\nexport default defineComponent({\n props: {\n item: Object\n },\n setup(props) {\n const store = useStore();\n const toast = useToast();\n const item = props.item;\n const isOpen = ref(false);\n\n const toggle = () => {\n isOpen.value = !isOpen.value;\n };\n\n const pluralize = (count, words) => {\n let cases = [2, 0, 1, 1, 1, 2];\n\n return count + ' ' + words[count % 100 > 4 && count % 100 < 20 ? 2 : cases[Math.min(count % 10, 5)]];\n };\n\n const addressName = (item) => {\n if (!item) {\n return '';\n }\n\n return (item.shipping_postcode ? item.shipping_postcode + ', ' : '') + (item.shipping_city ? item.shipping_city : '') + (item.shipping_street ? ', ' + item.shipping_street : '') + (item.shipping_house ? ' ' + item.shipping_house : '') + (item.shipping_building ? ', ' + __('shop.address.building') + ' ' + item.shipping_building : '') + (item.shipping_flat ? ', ' + __('shop.address.apartment') + ' ' + item.shipping_flat : '') + (item.shipping_floor ? ', ' + item.shipping_floor + __('shop.address.floor') : '');\n };\n\n const repeat = () => {\n $http\n .post($ziggy('account.forward.orders'), {\n action: 'repeat',\n id: item.id\n })\n .then((response) => {\n toast(__('shop.cart.repeated'), {\n type: 'success'\n });\n\n store.dispatch('cart/get', {\n finally: () => { }\n });\n })\n .catch(() => {\n toast(__('shop.cart.repeated_error'), {\n type: 'error'\n });\n });\n };\n\n return {\n item,\n isOpen,\n toggle,\n pluralize,\n addressName,\n repeat\n };\n }\n});\n</script>\n","<template>\n <div class=\"account-content\">\n <div class=\"block-head\">\n <h1 class=\"block-title\">{{ __('shop.account.orders.title') }}</h1>\n <div class=\"selector-item\">\n <div class=\"selector-item-label\">{{ __('shop.account.orders.period') }}:</div>\n <div class=\"selector-item-inner\">\n <div class=\"select-placeholder\" @click=\"toggleCalendar\">{{ rangeReadable[0] }}{{ rangeReadable[1] != rangeReadable[0] ? ' — ' + rangeReadable[1] : '' }}</div>\n\n <div class=\"calendar-dropdown\" v-bind:class=\"{ 'is-hidden': !calendarToggled }\" @mouseleave=\"calendarToggled = false\">\n <div class=\"calendar-dropdown-head\">\n <div class=\"presets\">\n <a\n v-for=\"(item, key) in presets\"\n :key=\"key\"\n v-text=\"__('shop.account.calendar.preset.' + item.text)\"\n :class=\"{\n 'is-active': activeRange == key\n }\"\n @click=\"setRange(item.range, key)\"\n ></a>\n </div>\n </div>\n <div class=\"calendar-dropdown-body\">\n <date-picker ref=\"calendar\" v-model=\"range\" :title-position=\"'left'\" :columns=\"2\" :mode=\"'date'\" :max-date=\"new Date()\" :locale=\"locale\" @dayclick=\"onDayClick\" is-range> </date-picker>\n <button class=\"calendar-submit\" @click=\"applyRange\">{{ __('shop.account.calendar.choose') }}</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"content-blocks orders-blocks\">\n <div class=\"content-column\">\n <div class=\"content-block group-orders\" v-if=\"orders\">\n <div class=\"content-block-list\" v-if=\"orders.length\">\n <item v-for=\"item in orders\" :item=\"item\" v-bind:key=\"item.id\"></item>\n </div>\n <div v-else>{{ __('shop.account.orders.no') }}</div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, defineComponent, nextTick } from 'vue';\nimport { DatePicker } from 'v-calendar';\nimport dayjs from 'dayjs';\nimport OrderItem from './OrderItem.vue';\nimport SecureLS from 'secure-ls';\n\nexport default defineComponent({\n components: {\n 'date-picker': DatePicker,\n item: OrderItem\n },\n setup() {\n let ls = new SecureLS({\n isCompression: false\n });\n\n let dates = ls.get('order-history');\n\n if (!dates || dayjs().diff(dates.expires, 'day') > 1) {\n dates = {\n start: dayjs().startOf('month').toDate(),\n end: dayjs().toDate(),\n expires: dayjs().add(1, 'day').toDate()\n };\n\n ls.set('order-history', dates);\n }\n\n const locale = $env.locale.current == 'ua' ? 'uk' : $env.locale.current;\n const calendar = ref(null);\n const date = ref('');\n const range = ref({\n start: dates.start,\n end: dates.end\n });\n const activeRange = ref(2);\n const calendarToggled = ref(false);\n const orders = ref(null);\n\n const presets = [\n {\n text: 'today',\n range: {\n start: dayjs().toDate(),\n end: dayjs().toDate()\n }\n },\n {\n text: 'yesterday',\n range: {\n start: dayjs().subtract(1, 'day').toDate(),\n end: dayjs().subtract(1, 'day').toDate()\n }\n },\n {\n text: 'currentmonth',\n range: {\n start: dayjs().startOf('month').toDate(),\n end: dayjs().toDate()\n }\n },\n {\n text: 'lastmonth',\n range: {\n start: dayjs().subtract(1, 'month').startOf('month').toDate(),\n end: dayjs().subtract(1, 'month').endOf('month').toDate()\n }\n },\n {\n text: 'lastyear',\n range: {\n start: dayjs().startOf('year').toDate(),\n end: dayjs().toDate()\n }\n }\n ];\n\n const rangeReadable = ref([dayjs(range.value.start).format('DD.MM.YYYY'), dayjs(range.value.end).format('DD.MM.YYYY')]);\n\n const onDayClick = () => {\n activeRange.value = null;\n };\n\n const setRange = (newRange, key) => {\n activeRange.value = key;\n range.value = newRange;\n\n calendar.value.move(range.value.start);\n };\n\n const applyRange = () => {\n rangeReadable.value = [dayjs(range.value.start).format('DD.MM.YYYY'), dayjs(range.value.end).format('DD.MM.YYYY')];\n\n calendarToggled.value = false;\n\n ls.set('order-history', {\n start: range.value.start,\n end: range.value.end,\n expires: dayjs().add(1, 'day').toDate()\n });\n\n nextTick(get);\n };\n\n const toggleCalendar = () => {\n calendarToggled.value = !calendarToggled.value;\n };\n\n const get = () => {\n $http\n .post($ziggy('account.orders'), {\n start: range.value.start,\n end: range.value.end\n })\n .then((response) => {\n orders.value = response.data.orders;\n });\n };\n get();\n\n return {\n date,\n range,\n rangeReadable,\n onDayClick,\n locale,\n calendar,\n setRange,\n activeRange,\n presets,\n calendarToggled,\n applyRange,\n toggleCalendar,\n orders\n };\n }\n});\n</script>","<template>\n <div class=\"account-content\">\n <div class=\"block-head\">\n <h1 class=\"block-title\">{{ __('shop.account.orders.title') }}</h1>\n <div class=\"selector-item\">\n <div class=\"selector-item-label\">{{ __('shop.account.orders.period') }}:</div>\n <div class=\"selector-item-inner\">\n <div class=\"select-placeholder\" @click=\"toggleCalendar\">{{ rangeReadable[0] }}{{ rangeReadable[1] != rangeReadable[0] ? ' — ' + rangeReadable[1] : '' }}</div>\n\n <div class=\"calendar-dropdown\" v-bind:class=\"{ 'is-hidden': !calendarToggled }\" @mouseleave=\"calendarToggled = false\">\n <div class=\"calendar-dropdown-head\">\n <div class=\"presets\">\n <a\n v-for=\"(item, key) in presets\"\n :key=\"key\"\n v-text=\"__('shop.account.calendar.preset.' + item.text)\"\n :class=\"{\n 'is-active': activeRange == key\n }\"\n @click=\"setRange(item.range, key)\"\n ></a>\n </div>\n </div>\n <div class=\"calendar-dropdown-body\">\n <date-picker ref=\"calendar\" v-model=\"range\" :title-position=\"'left'\" :columns=\"2\" :mode=\"'date'\" :max-date=\"new Date()\" :locale=\"locale\" @dayclick=\"onDayClick\" is-range> </date-picker>\n <button class=\"calendar-submit\" @click=\"applyRange\">{{ __('shop.account.calendar.choose') }}</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"content-blocks orders-blocks\">\n <div class=\"content-column\">\n <div class=\"content-block group-orders\" v-if=\"orders\">\n <div class=\"content-block-list\" v-if=\"orders.length\">\n <item v-for=\"item in orders\" :item=\"item\" v-bind:key=\"item.id\"></item>\n </div>\n <div v-else>{{ __('shop.account.orders.no') }}</div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, defineComponent, nextTick } from 'vue';\nimport { DatePicker } from 'v-calendar';\nimport dayjs from 'dayjs';\nimport OrderItem from './OrderItem.vue';\nimport SecureLS from 'secure-ls';\n\nexport default defineComponent({\n components: {\n 'date-picker': DatePicker,\n item: OrderItem\n },\n setup() {\n let ls = new SecureLS({\n isCompression: false\n });\n\n let dates = ls.get('order-history');\n\n if (!dates || dayjs().diff(dates.expires, 'day') > 1) {\n dates = {\n start: dayjs().startOf('month').toDate(),\n end: dayjs().toDate(),\n expires: dayjs().add(1, 'day').toDate()\n };\n\n ls.set('order-history', dates);\n }\n\n const locale = $env.locale.current == 'ua' ? 'uk' : $env.locale.current;\n const calendar = ref(null);\n const date = ref('');\n const range = ref({\n start: dates.start,\n end: dates.end\n });\n const activeRange = ref(2);\n const calendarToggled = ref(false);\n const orders = ref(null);\n\n const presets = [\n {\n text: 'today',\n range: {\n start: dayjs().toDate(),\n end: dayjs().toDate()\n }\n },\n {\n text: 'yesterday',\n range: {\n start: dayjs().subtract(1, 'day').toDate(),\n end: dayjs().subtract(1, 'day').toDate()\n }\n },\n {\n text: 'currentmonth',\n range: {\n start: dayjs().startOf('month').toDate(),\n end: dayjs().toDate()\n }\n },\n {\n text: 'lastmonth',\n range: {\n start: dayjs().subtract(1, 'month').startOf('month').toDate(),\n end: dayjs().subtract(1, 'month').endOf('month').toDate()\n }\n },\n {\n text: 'lastyear',\n range: {\n start: dayjs().startOf('year').toDate(),\n end: dayjs().toDate()\n }\n }\n ];\n\n const rangeReadable = ref([dayjs(range.value.start).format('DD.MM.YYYY'), dayjs(range.value.end).format('DD.MM.YYYY')]);\n\n const onDayClick = () => {\n activeRange.value = null;\n };\n\n const setRange = (newRange, key) => {\n activeRange.value = key;\n range.value = newRange;\n\n calendar.value.move(range.value.start);\n };\n\n const applyRange = () => {\n rangeReadable.value = [dayjs(range.value.start).format('DD.MM.YYYY'), dayjs(range.value.end).format('DD.MM.YYYY')];\n\n calendarToggled.value = false;\n\n ls.set('order-history', {\n start: range.value.start,\n end: range.value.end,\n expires: dayjs().add(1, 'day').toDate()\n });\n\n nextTick(get);\n };\n\n const toggleCalendar = () => {\n calendarToggled.value = !calendarToggled.value;\n };\n\n const get = () => {\n $http\n .post($ziggy('account.orders'), {\n start: range.value.start,\n end: range.value.end\n })\n .then((response) => {\n orders.value = response.data.orders;\n });\n };\n get();\n\n return {\n date,\n range,\n rangeReadable,\n onDayClick,\n locale,\n calendar,\n setRange,\n activeRange,\n presets,\n calendarToggled,\n applyRange,\n toggleCalendar,\n orders\n };\n }\n});\n</script>"],"names":["defineComponent","props","item","Object","setup","store","useStore","toast","useToast","isOpen","ref","toggle","value","pluralize","count","words","Math","min","addressName","shipping_postcode","shipping_city","shipping_street","shipping_house","shipping_building","__","shipping_flat","shipping_floor","repeat","$http","post","$ziggy","action","id","then","response","type","dispatch","finally","catch","class","src","_createElementVNode","_createElementBlock","_ctx","onClick","_hoisted_1","date","positions","length","innerHTML","price","total","style","status","color","name","_hoisted_3","_hoisted_4","p","key","_hoisted_5","_hoisted_6","image","_hoisted_8","_hoisted_9","href","category","_hoisted_12","_hoisted_14","quantity","_hoisted_15","_hoisted_17","delivery","payment","_hoisted_18","_hoisted_19","_hoisted_20","property","pickup_name","novaposhta_city","novaposhta_warehouse","shipping_time","_hoisted_25","_hoisted_26","_hoisted_27","_hoisted_28","components","DatePicker","OrderItem","ls","SecureLS","isCompression","dates","get","dayjs","diff","expires","start","startOf","toDate","end","add","set","locale","$env","current","calendar","range","activeRange","calendarToggled","orders","presets","text","subtract","endOf","rangeReadable","format","data","onDayClick","setRange","newRange","move","applyRange","nextTick","toggleCalendar","_hoisted_2","onMouseleave","_hoisted_7","_toDisplayString","_hoisted_10","_createVNode","columns","mode","Date","onDayclick","_hoisted_11","_hoisted_13","_createBlock"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Orders.js","sources":["../../../../src/js/components/account/OrderItem.vue","../../../../src/js/components/account/OrderItem.vue?vue&type=template&id=5981189e&lang.js","../../../../src/js/components/account/Orders.vue","../../../../src/js/components/account/Orders.vue?vue&type=template&id=6c15a270&lang.js"],"sourcesContent":["<template>\n <div class=\"history-order\" v-bind:class=\"{ 'is-open': isOpen }\">\n <div class=\"history-order-head\" @click=\"toggle\">\n <div class=\"history-order-title\">\n №{{ item.id }} {{ __('shop.cart.bydate') }} {{ item.date }} <span>{{ pluralize(item.positions.length, __('shop.pluralize.products')) }} {{ __('shop.cart.bysum') }} <span v-html=\"$filters.price(item.total)\"></span></span>\n </div>\n <div class=\"history-order-status\" v-bind:style=\"'color:' + item.status.color\">{{ item.status.name }}</div>\n </div>\n <div class=\"history-order-body\">\n <table class=\"history-order-table\">\n <thead>\n <tr>\n <th>{{ __('shop.cart.table.product') }}</th>\n <th>{{ __('shop.cart.table.price') }}</th>\n <th>{{ __('shop.cart.table.quantity') }}</th>\n <th>{{ __('shop.cart.table.sum') }}</th>\n </tr>\n </thead>\n <tbody>\n <tr v-for=\"(p, key) in item.positions\" v-bind:key=\"key\">\n <td>\n <div class=\"product\">\n <div class=\"product-photo\">\n <img :src=\"p.image\" v-if=\"p.image\" />\n <img src=\"/images/blank.png\" v-else />\n </div>\n <div class=\"product-info\">\n <a :href=\"p.category.href\" class=\"product-category\">{{ p.category.name }}</a>\n <a :href=\"p.href\" class=\"product-title\">{{ p.name }}</a>\n </div>\n </div>\n </td>\n <td>\n <div class=\"cell-title\">{{ __('shop.cart.table.price') }}</div>\n <div v-html=\"$filters.price(p.price)\"></div>\n </td>\n <td>\n <div class=\"cell-title\">{{ __('shop.cart.table.quantity') }}</div>\n <div>{{ p.quantity }}</div>\n </td>\n <td>\n <div class=\"cell-title\">{{ __('shop.cart.table.sum') }}</div>\n <div v-html=\"$filters.price(p.quantity * p.price)\"></div>\n </td>\n </tr>\n </tbody>\n </table>\n <div class=\"history-order-summary\">\n <div class=\"history-order-delivery-payment\" v-if=\"item.delivery && item.payment\">\n <div class=\"delivery-group\">\n <div>{{ __('shop.cart.shipment_info') }}</div>\n <div>\n {{ item.delivery }} <br />\n <span v-html=\"item.property.pickup_name ? item.property.pickup_name + '<br>' : ''\"></span>\n <span v-html=\"item.property.novaposhta_city ? item.property.novaposhta_city + '<br>' + item.property.novaposhta_warehouse + '<br>' : ''\"></span>\n <span v-html=\"addressName(item.property) + '<br>'\"></span>\n <span v-html=\"item.property.shipping_time ? item.property.shipping_time + '<br />' : ''\"></span>\n </div>\n </div>\n <div class=\"payment-group\">\n <div>{{ __('shop.cart.payment_info') }}</div>\n <div>{{ item.payment }}</div>\n </div>\n </div>\n <div class=\"history-order-total\">\n <div class=\"total-item products-amount\">\n {{ __('shop.cart.products') }}: <span>{{ item.positions.length }}</span>\n </div>\n <div class=\"total-item summ-regular\">{{ __('shop.cart.table.sum') }}: <span v-html=\"$filters.price(item.total)\"></span></div>\n <a @click=\"repeat\" class=\"repeat-checkout-btn\">{{ __('shop.cart.repeat') }}</a>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, defineComponent } from 'vue';\nimport { useToast } from 'vue-toastification';\nimport { useStore } from 'vuex';\n\nexport default defineComponent({\n props: {\n item: Object\n },\n setup(props) {\n const store = useStore();\n const toast = useToast();\n const item = props.item;\n const isOpen = ref(false);\n\n const toggle = () => {\n isOpen.value = !isOpen.value;\n };\n\n const pluralize = (count, words) => {\n let cases = [2, 0, 1, 1, 1, 2];\n\n return count + ' ' + words[count % 100 > 4 && count % 100 < 20 ? 2 : cases[Math.min(count % 10, 5)]];\n };\n\n const addressName = (item) => {\n if (!item) {\n return '';\n }\n\n return (item.shipping_postcode ? item.shipping_postcode + ', ' : '') + (item.shipping_city ? item.shipping_city : '') + (item.shipping_street ? ', ' + item.shipping_street : '') + (item.shipping_house ? ' ' + item.shipping_house : '') + (item.shipping_building ? ', ' + __('shop.address.building') + ' ' + item.shipping_building : '') + (item.shipping_flat ? ', ' + __('shop.address.apartment') + ' ' + item.shipping_flat : '') + (item.shipping_floor ? ', ' + item.shipping_floor + __('shop.address.floor') : '');\n };\n\n const repeat = () => {\n $http\n .post($ziggy('account.forward.orders'), {\n action: 'repeat',\n id: item.id\n })\n .then((response) => {\n toast(__('shop.cart.repeated'), {\n type: 'success'\n });\n\n store.dispatch('cart/get', {\n finally: () => { }\n });\n })\n .catch(() => {\n toast(__('shop.cart.repeated_error'), {\n type: 'error'\n });\n });\n };\n\n return {\n item,\n isOpen,\n toggle,\n pluralize,\n addressName,\n repeat\n };\n }\n});\n</script>\n","<template>\n <div class=\"history-order\" v-bind:class=\"{ 'is-open': isOpen }\">\n <div class=\"history-order-head\" @click=\"toggle\">\n <div class=\"history-order-title\">\n №{{ item.id }} {{ __('shop.cart.bydate') }} {{ item.date }} <span>{{ pluralize(item.positions.length, __('shop.pluralize.products')) }} {{ __('shop.cart.bysum') }} <span v-html=\"$filters.price(item.total)\"></span></span>\n </div>\n <div class=\"history-order-status\" v-bind:style=\"'color:' + item.status.color\">{{ item.status.name }}</div>\n </div>\n <div class=\"history-order-body\">\n <table class=\"history-order-table\">\n <thead>\n <tr>\n <th>{{ __('shop.cart.table.product') }}</th>\n <th>{{ __('shop.cart.table.price') }}</th>\n <th>{{ __('shop.cart.table.quantity') }}</th>\n <th>{{ __('shop.cart.table.sum') }}</th>\n </tr>\n </thead>\n <tbody>\n <tr v-for=\"(p, key) in item.positions\" v-bind:key=\"key\">\n <td>\n <div class=\"product\">\n <div class=\"product-photo\">\n <img :src=\"p.image\" v-if=\"p.image\" />\n <img src=\"/images/blank.png\" v-else />\n </div>\n <div class=\"product-info\">\n <a :href=\"p.category.href\" class=\"product-category\">{{ p.category.name }}</a>\n <a :href=\"p.href\" class=\"product-title\">{{ p.name }}</a>\n </div>\n </div>\n </td>\n <td>\n <div class=\"cell-title\">{{ __('shop.cart.table.price') }}</div>\n <div v-html=\"$filters.price(p.price)\"></div>\n </td>\n <td>\n <div class=\"cell-title\">{{ __('shop.cart.table.quantity') }}</div>\n <div>{{ p.quantity }}</div>\n </td>\n <td>\n <div class=\"cell-title\">{{ __('shop.cart.table.sum') }}</div>\n <div v-html=\"$filters.price(p.quantity * p.price)\"></div>\n </td>\n </tr>\n </tbody>\n </table>\n <div class=\"history-order-summary\">\n <div class=\"history-order-delivery-payment\" v-if=\"item.delivery && item.payment\">\n <div class=\"delivery-group\">\n <div>{{ __('shop.cart.shipment_info') }}</div>\n <div>\n {{ item.delivery }} <br />\n <span v-html=\"item.property.pickup_name ? item.property.pickup_name + '<br>' : ''\"></span>\n <span v-html=\"item.property.novaposhta_city ? item.property.novaposhta_city + '<br>' + item.property.novaposhta_warehouse + '<br>' : ''\"></span>\n <span v-html=\"addressName(item.property) + '<br>'\"></span>\n <span v-html=\"item.property.shipping_time ? item.property.shipping_time + '<br />' : ''\"></span>\n </div>\n </div>\n <div class=\"payment-group\">\n <div>{{ __('shop.cart.payment_info') }}</div>\n <div>{{ item.payment }}</div>\n </div>\n </div>\n <div class=\"history-order-total\">\n <div class=\"total-item products-amount\">\n {{ __('shop.cart.products') }}: <span>{{ item.positions.length }}</span>\n </div>\n <div class=\"total-item summ-regular\">{{ __('shop.cart.table.sum') }}: <span v-html=\"$filters.price(item.total)\"></span></div>\n <a @click=\"repeat\" class=\"repeat-checkout-btn\">{{ __('shop.cart.repeat') }}</a>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, defineComponent } from 'vue';\nimport { useToast } from 'vue-toastification';\nimport { useStore } from 'vuex';\n\nexport default defineComponent({\n props: {\n item: Object\n },\n setup(props) {\n const store = useStore();\n const toast = useToast();\n const item = props.item;\n const isOpen = ref(false);\n\n const toggle = () => {\n isOpen.value = !isOpen.value;\n };\n\n const pluralize = (count, words) => {\n let cases = [2, 0, 1, 1, 1, 2];\n\n return count + ' ' + words[count % 100 > 4 && count % 100 < 20 ? 2 : cases[Math.min(count % 10, 5)]];\n };\n\n const addressName = (item) => {\n if (!item) {\n return '';\n }\n\n return (item.shipping_postcode ? item.shipping_postcode + ', ' : '') + (item.shipping_city ? item.shipping_city : '') + (item.shipping_street ? ', ' + item.shipping_street : '') + (item.shipping_house ? ' ' + item.shipping_house : '') + (item.shipping_building ? ', ' + __('shop.address.building') + ' ' + item.shipping_building : '') + (item.shipping_flat ? ', ' + __('shop.address.apartment') + ' ' + item.shipping_flat : '') + (item.shipping_floor ? ', ' + item.shipping_floor + __('shop.address.floor') : '');\n };\n\n const repeat = () => {\n $http\n .post($ziggy('account.forward.orders'), {\n action: 'repeat',\n id: item.id\n })\n .then((response) => {\n toast(__('shop.cart.repeated'), {\n type: 'success'\n });\n\n store.dispatch('cart/get', {\n finally: () => { }\n });\n })\n .catch(() => {\n toast(__('shop.cart.repeated_error'), {\n type: 'error'\n });\n });\n };\n\n return {\n item,\n isOpen,\n toggle,\n pluralize,\n addressName,\n repeat\n };\n }\n});\n</script>\n","<template>\n <div class=\"account-content\">\n <div class=\"block-head\">\n <h1 class=\"block-title\">{{ __('shop.account.orders.title') }}</h1>\n <div class=\"selector-item\">\n <div class=\"selector-item-label\">{{ __('shop.account.orders.period') }}:</div>\n <div class=\"selector-item-inner\">\n <div class=\"select-placeholder\" @click=\"toggleCalendar\">{{ rangeReadable[0] }}{{ rangeReadable[1] != rangeReadable[0] ? ' — ' + rangeReadable[1] : '' }}</div>\n\n <div class=\"calendar-dropdown\" v-bind:class=\"{ 'is-hidden': !calendarToggled }\" @mouseleave=\"calendarToggled = false\">\n <div class=\"calendar-dropdown-head\">\n <div class=\"presets\">\n <a\n v-for=\"(item, key) in presets\"\n :key=\"key\"\n v-text=\"__('shop.account.calendar.preset.' + item.text)\"\n :class=\"{\n 'is-active': activeRange == key\n }\"\n @click=\"setRange(item.range, key)\"\n ></a>\n </div>\n </div>\n <div class=\"calendar-dropdown-body\">\n <date-picker ref=\"calendar\" v-model=\"range\" :title-position=\"'left'\" :columns=\"2\" :mode=\"'date'\" :max-date=\"new Date()\" :locale=\"locale\" @dayclick=\"onDayClick\" is-range> </date-picker>\n <button class=\"calendar-submit\" @click=\"applyRange\">{{ __('shop.account.calendar.choose') }}</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"content-blocks orders-blocks\">\n <div class=\"content-column\">\n <div class=\"content-block group-orders\" v-if=\"orders\">\n <div class=\"content-block-list\" v-if=\"orders.length\">\n <item v-for=\"item in orders\" :item=\"item\" v-bind:key=\"item.id\"></item>\n </div>\n <div v-else>{{ __('shop.account.orders.no') }}</div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, defineComponent, nextTick } from 'vue';\nimport { DatePicker } from 'v-calendar';\nimport dayjs from 'dayjs';\nimport OrderItem from './OrderItem.vue';\nimport SecureLS from 'secure-ls';\n\nexport default defineComponent({\n components: {\n 'date-picker': DatePicker,\n item: OrderItem\n },\n setup() {\n let ls = new SecureLS({\n isCompression: false\n });\n\n let dates = ls.get('order-history');\n\n if (!dates || dayjs().diff(dates.expires, 'day') > 1) {\n dates = {\n start: dayjs().startOf('month').toDate(),\n end: dayjs().toDate(),\n expires: dayjs().add(1, 'day').toDate()\n };\n\n ls.set('order-history', dates);\n }\n\n const locale = $env.locale.current == 'ua' ? 'uk' : $env.locale.current;\n const calendar = ref(null);\n const date = ref('');\n const range = ref({\n start: dates.start,\n end: dates.end\n });\n const activeRange = ref(2);\n const calendarToggled = ref(false);\n const orders = ref(null);\n\n const presets = [\n {\n text: 'today',\n range: {\n start: dayjs().toDate(),\n end: dayjs().toDate()\n }\n },\n {\n text: 'yesterday',\n range: {\n start: dayjs().subtract(1, 'day').toDate(),\n end: dayjs().subtract(1, 'day').toDate()\n }\n },\n {\n text: 'currentmonth',\n range: {\n start: dayjs().startOf('month').toDate(),\n end: dayjs().toDate()\n }\n },\n {\n text: 'lastmonth',\n range: {\n start: dayjs().subtract(1, 'month').startOf('month').toDate(),\n end: dayjs().subtract(1, 'month').endOf('month').toDate()\n }\n },\n {\n text: 'lastyear',\n range: {\n start: dayjs().startOf('year').toDate(),\n end: dayjs().toDate()\n }\n }\n ];\n\n const rangeReadable = ref([dayjs(range.value.start).format('DD.MM.YYYY'), dayjs(range.value.end).format('DD.MM.YYYY')]);\n\n const onDayClick = () => {\n activeRange.value = null;\n };\n\n const setRange = (newRange, key) => {\n activeRange.value = key;\n range.value = newRange;\n\n calendar.value.move(range.value.start);\n };\n\n const applyRange = () => {\n rangeReadable.value = [dayjs(range.value.start).format('DD.MM.YYYY'), dayjs(range.value.end).format('DD.MM.YYYY')];\n\n calendarToggled.value = false;\n\n ls.set('order-history', {\n start: range.value.start,\n end: range.value.end,\n expires: dayjs().add(1, 'day').toDate()\n });\n\n nextTick(get);\n };\n\n const toggleCalendar = () => {\n calendarToggled.value = !calendarToggled.value;\n };\n\n const get = () => {\n $http\n .post($ziggy('account.orders'), {\n start: range.value.start,\n end: range.value.end\n })\n .then((response) => {\n orders.value = response.data.orders;\n });\n };\n get();\n\n return {\n date,\n range,\n rangeReadable,\n onDayClick,\n locale,\n calendar,\n setRange,\n activeRange,\n presets,\n calendarToggled,\n applyRange,\n toggleCalendar,\n orders\n };\n }\n});\n</script>","<template>\n <div class=\"account-content\">\n <div class=\"block-head\">\n <h1 class=\"block-title\">{{ __('shop.account.orders.title') }}</h1>\n <div class=\"selector-item\">\n <div class=\"selector-item-label\">{{ __('shop.account.orders.period') }}:</div>\n <div class=\"selector-item-inner\">\n <div class=\"select-placeholder\" @click=\"toggleCalendar\">{{ rangeReadable[0] }}{{ rangeReadable[1] != rangeReadable[0] ? ' — ' + rangeReadable[1] : '' }}</div>\n\n <div class=\"calendar-dropdown\" v-bind:class=\"{ 'is-hidden': !calendarToggled }\" @mouseleave=\"calendarToggled = false\">\n <div class=\"calendar-dropdown-head\">\n <div class=\"presets\">\n <a\n v-for=\"(item, key) in presets\"\n :key=\"key\"\n v-text=\"__('shop.account.calendar.preset.' + item.text)\"\n :class=\"{\n 'is-active': activeRange == key\n }\"\n @click=\"setRange(item.range, key)\"\n ></a>\n </div>\n </div>\n <div class=\"calendar-dropdown-body\">\n <date-picker ref=\"calendar\" v-model=\"range\" :title-position=\"'left'\" :columns=\"2\" :mode=\"'date'\" :max-date=\"new Date()\" :locale=\"locale\" @dayclick=\"onDayClick\" is-range> </date-picker>\n <button class=\"calendar-submit\" @click=\"applyRange\">{{ __('shop.account.calendar.choose') }}</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"content-blocks orders-blocks\">\n <div class=\"content-column\">\n <div class=\"content-block group-orders\" v-if=\"orders\">\n <div class=\"content-block-list\" v-if=\"orders.length\">\n <item v-for=\"item in orders\" :item=\"item\" v-bind:key=\"item.id\"></item>\n </div>\n <div v-else>{{ __('shop.account.orders.no') }}</div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, defineComponent, nextTick } from 'vue';\nimport { DatePicker } from 'v-calendar';\nimport dayjs from 'dayjs';\nimport OrderItem from './OrderItem.vue';\nimport SecureLS from 'secure-ls';\n\nexport default defineComponent({\n components: {\n 'date-picker': DatePicker,\n item: OrderItem\n },\n setup() {\n let ls = new SecureLS({\n isCompression: false\n });\n\n let dates = ls.get('order-history');\n\n if (!dates || dayjs().diff(dates.expires, 'day') > 1) {\n dates = {\n start: dayjs().startOf('month').toDate(),\n end: dayjs().toDate(),\n expires: dayjs().add(1, 'day').toDate()\n };\n\n ls.set('order-history', dates);\n }\n\n const locale = $env.locale.current == 'ua' ? 'uk' : $env.locale.current;\n const calendar = ref(null);\n const date = ref('');\n const range = ref({\n start: dates.start,\n end: dates.end\n });\n const activeRange = ref(2);\n const calendarToggled = ref(false);\n const orders = ref(null);\n\n const presets = [\n {\n text: 'today',\n range: {\n start: dayjs().toDate(),\n end: dayjs().toDate()\n }\n },\n {\n text: 'yesterday',\n range: {\n start: dayjs().subtract(1, 'day').toDate(),\n end: dayjs().subtract(1, 'day').toDate()\n }\n },\n {\n text: 'currentmonth',\n range: {\n start: dayjs().startOf('month').toDate(),\n end: dayjs().toDate()\n }\n },\n {\n text: 'lastmonth',\n range: {\n start: dayjs().subtract(1, 'month').startOf('month').toDate(),\n end: dayjs().subtract(1, 'month').endOf('month').toDate()\n }\n },\n {\n text: 'lastyear',\n range: {\n start: dayjs().startOf('year').toDate(),\n end: dayjs().toDate()\n }\n }\n ];\n\n const rangeReadable = ref([dayjs(range.value.start).format('DD.MM.YYYY'), dayjs(range.value.end).format('DD.MM.YYYY')]);\n\n const onDayClick = () => {\n activeRange.value = null;\n };\n\n const setRange = (newRange, key) => {\n activeRange.value = key;\n range.value = newRange;\n\n calendar.value.move(range.value.start);\n };\n\n const applyRange = () => {\n rangeReadable.value = [dayjs(range.value.start).format('DD.MM.YYYY'), dayjs(range.value.end).format('DD.MM.YYYY')];\n\n calendarToggled.value = false;\n\n ls.set('order-history', {\n start: range.value.start,\n end: range.value.end,\n expires: dayjs().add(1, 'day').toDate()\n });\n\n nextTick(get);\n };\n\n const toggleCalendar = () => {\n calendarToggled.value = !calendarToggled.value;\n };\n\n const get = () => {\n $http\n .post($ziggy('account.orders'), {\n start: range.value.start,\n end: range.value.end\n })\n .then((response) => {\n orders.value = response.data.orders;\n });\n };\n get();\n\n return {\n date,\n range,\n rangeReadable,\n onDayClick,\n locale,\n calendar,\n setRange,\n activeRange,\n presets,\n calendarToggled,\n applyRange,\n toggleCalendar,\n orders\n };\n }\n});\n</script>"],"names":["defineComponent","props","item","Object","setup","store","useStore","toast","useToast","isOpen","ref","toggle","value","pluralize","count","words","Math","min","addressName","shipping_postcode","shipping_city","shipping_street","shipping_house","shipping_building","__","shipping_flat","shipping_floor","repeat","$http","post","$ziggy","action","id","then","response","type","dispatch","finally","catch","class","src","_createElementVNode","_createElementBlock","_ctx","onClick","_hoisted_1","date","positions","length","innerHTML","price","total","style","status","color","name","_hoisted_3","_hoisted_4","p","key","_hoisted_5","_hoisted_6","image","_hoisted_8","_hoisted_9","href","category","_hoisted_12","_hoisted_14","quantity","_hoisted_15","_hoisted_17","delivery","payment","_hoisted_18","_hoisted_19","_hoisted_20","property","pickup_name","novaposhta_city","novaposhta_warehouse","shipping_time","_hoisted_25","_hoisted_26","_hoisted_27","_hoisted_28","components","DatePicker","OrderItem","ls","SecureLS","isCompression","dates","get","dayjs","diff","expires","start","startOf","toDate","end","add","set","locale","$env","current","calendar","range","activeRange","calendarToggled","orders","presets","text","subtract","endOf","rangeReadable","format","data","onDayClick","setRange","newRange","move","applyRange","nextTick","toggleCalendar","_hoisted_2","onMouseleave","_hoisted_7","_toDisplayString","_hoisted_10","_createVNode","columns","mode","Date","onDayclick","_hoisted_11","_hoisted_13","_createBlock"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("vue"),r=require("vuex"),t=require("formvuelate"),a=require("vue-toastification"),
|
|
1
|
+
"use strict";var e=require("vue"),r=require("vuex"),t=require("formvuelate"),a=require("vue-toastification"),n=require("@formvuelate/plugin-vee-validate"),o=require("@perevorot/shop/dist/api"),i=require("@perevorot/shop/dist/helpers");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var u=l(n);function s(e,r){return function(e){if(Array.isArray(e))return e}(e)||function(e,r){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==t)return;var a,n,o=[],i=!0,l=!1;try{for(t=t.call(e);!(i=(a=t.next()).done)&&(o.push(a.value),!r||o.length!==r);i=!0);}catch(e){l=!0,n=e}finally{try{i||null==t.return||t.return()}finally{if(l)throw n}}return o}(e,r)||function(e,r){if(!e)return;if("string"==typeof e)return c(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return c(e,r)}(e,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,a=new Array(r);t<r;t++)a[t]=e[t];return a}var m={name:"user",components:{SchemaForm:t.SchemaFormFactory([u.default({})])},setup:function(){var n=r.useStore(),l=e.ref(!1),u=e.ref(!0),c=e.ref({}),m=e.ref({}),f=e.ref({}),d=e.ref({}),v=a.useToast(),h=e.ref(0);t.useSchemaForm(d);return o.auth.registerForm().then((function(e){var r=i.formParse(e.data);m.value=r.schema,d.value=Object.assign({},r.model,e.data.model),f.value=r.validation})).finally((function(){u.value=!1})),{loading:l,loadingForm:u,errors:c,schema:m,validation:f,onSubmit:function(){l.value=!0,n.dispatch("auth/update",{credentials:d.value,finally:function(){l.value=!1},callback:function(){v(__("auth.registration.form.saved"),{type:"success"}),n.dispatch("auth/me")},catch:function(e){if(e.response&&e.response.data&&e.response.data.errors)for(var r=0,t=Object.entries(e.response.data.errors);r<t.length;r++){var a=s(t[r],2),n=a[0],o=a[1];o[0]&&(c.value[n]=o[0])}else console.error(e);h.value++}})},model:d,key:h}}},f={key:0},d={class:"field"},v={class:"columns is-vcentered"},h={class:"column"};m.render=function(r,t,a,n,o,i){var l=e.resolveComponent("SchemaForm");return n.loadingForm?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("div",f,[e.createVNode(l,{schemaRowClasses:"field",schema:n.schema,"validation-schema":n.validation,"initial-errors":n.errors,key:n.key,onSubmit:n.onSubmit},{afterForm:e.withCtx((function(){return[e.createElementVNode("div",d,[e.createElementVNode("div",v,[e.createElementVNode("div",h,[e.createElementVNode("button",{class:e.normalizeClass(["button is-link",{"is-loading":n.loading}]),type:"submit"},e.toDisplayString(r.__("auth.registration.form.save")),3)])])])]})),_:1},8,["schema","validation-schema","initial-errors","onSubmit"])]))},module.exports=m;
|
|
2
2
|
//# sourceMappingURL=User.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"User.js","sources":["../../../../src/js/components/account/User.vue","../../../../src/js/components/account/User.vue?vue&type=template&id=18193776&lang.js"],"sourcesContent":["<template>\n <div v-if=\"!loadingForm\">\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=\"{ 'is-loading': loading }\">\n {{ __('auth.registration.form.save') }}\n </button>\n </div>\n </div>\n </div>\n </template>\n </SchemaForm>\n </div>\n</template>\n<script>\nimport { ref } from 'vue';\nimport { useStore } from 'vuex';\nimport { SchemaFormFactory, useSchemaForm } from 'formvuelate';\nimport { useToast } from 'vue-toastification';\n\nimport VeeValidatePlugin from '@formvuelate/plugin-vee-validate';\nimport { auth as api } from '@perevorot/shop/dist/api';\nimport { formParse } from '@perevorot/shop/dist/helpers';\n\nconst SchemaForm = SchemaFormFactory([VeeValidatePlugin({})]);\n\nexport default {\n name: 'user',\n components: {\n SchemaForm\n },\n setup() {\n const store = useStore();\n const loading = ref(false);\n const loadingForm = ref(true);\n const errors = ref({});\n const schema = ref({});\n const validation = ref({});\n const model = ref({});\n const toast = useToast();\n const key = ref(0);\n\n useSchemaForm(model);\n\n const onSubmit = () => {\n loading.value = true;\n\n store.dispatch('auth/update', {\n credentials: model.value,\n finally: () => {\n loading.value = false;\n },\n callback: () => {\n toast(__('auth.registration.form.saved'), {\n type: 'success'\n });\n\n store.dispatch('auth/me');\n },\n catch: (error) => {\n if (error.response && error.response.data && error.response.data.errors) {\n for (const [field, messages] of Object.entries(error.response.data.errors)) {\n if (messages[0]) {\n errors.value[field] = messages[0];\n }\n }\n } else {\n console.error(error);\n }\n\n key.value++;\n }\n });\n };\n\n api.registerForm()\n .then((response) => {\n const form = formParse(response.data);\n\n schema.value = form.schema;\n model.value = { ...form.model, ...response.data.model };\n validation.value = form.validation;\n })\n .finally(() => {\n loadingForm.value = false;\n });\n\n return {\n loading,\n loadingForm,\n errors,\n schema,\n validation,\n onSubmit,\n model,\n key\n };\n }\n};\n</script>","<template>\n <div v-if=\"!loadingForm\">\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=\"{ 'is-loading': loading }\">\n {{ __('auth.registration.form.save') }}\n </button>\n </div>\n </div>\n </div>\n </template>\n </SchemaForm>\n </div>\n</template>\n<script>\nimport { ref } from 'vue';\nimport { useStore } from 'vuex';\nimport { SchemaFormFactory, useSchemaForm } from 'formvuelate';\nimport { useToast } from 'vue-toastification';\n\nimport VeeValidatePlugin from '@formvuelate/plugin-vee-validate';\nimport { auth as api } from '@perevorot/shop/dist/api';\nimport { formParse } from '@perevorot/shop/dist/helpers';\n\nconst SchemaForm = SchemaFormFactory([VeeValidatePlugin({})]);\n\nexport default {\n name: 'user',\n components: {\n SchemaForm\n },\n setup() {\n const store = useStore();\n const loading = ref(false);\n const loadingForm = ref(true);\n const errors = ref({});\n const schema = ref({});\n const validation = ref({});\n const model = ref({});\n const toast = useToast();\n const key = ref(0);\n\n useSchemaForm(model);\n\n const onSubmit = () => {\n loading.value = true;\n\n store.dispatch('auth/update', {\n credentials: model.value,\n finally: () => {\n loading.value = false;\n },\n callback: () => {\n toast(__('auth.registration.form.saved'), {\n type: 'success'\n });\n\n store.dispatch('auth/me');\n },\n catch: (error) => {\n if (error.response && error.response.data && error.response.data.errors) {\n for (const [field, messages] of Object.entries(error.response.data.errors)) {\n if (messages[0]) {\n errors.value[field] = messages[0];\n }\n }\n } else {\n console.error(error);\n }\n\n key.value++;\n }\n });\n };\n\n api.registerForm()\n .then((response) => {\n const form = formParse(response.data);\n\n schema.value = form.schema;\n model.value = { ...form.model, ...response.data.model };\n validation.value = form.validation;\n })\n .finally(() => {\n loadingForm.value = false;\n });\n\n return {\n loading,\n loadingForm,\n errors,\n schema,\n validation,\n onSubmit,\n model,\n key\n };\n }\n};\n</script>"],"names":["name","components","SchemaForm","SchemaFormFactory","VeeValidatePlugin","setup","store","useStore","loading","ref","loadingForm","errors","schema","validation","model","toast","useToast","key","useSchemaForm","api","registerForm","then","response","form","formParse","data","value","finally","onSubmit","dispatch","credentials","callback","__","type","catch","error","
|
|
1
|
+
{"version":3,"file":"User.js","sources":["../../../../src/js/components/account/User.vue","../../../../src/js/components/account/User.vue?vue&type=template&id=18193776&lang.js"],"sourcesContent":["<template>\n <div v-if=\"!loadingForm\">\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=\"{ 'is-loading': loading }\">\n {{ __('auth.registration.form.save') }}\n </button>\n </div>\n </div>\n </div>\n </template>\n </SchemaForm>\n </div>\n</template>\n<script>\nimport { ref } from 'vue';\nimport { useStore } from 'vuex';\nimport { SchemaFormFactory, useSchemaForm } from 'formvuelate';\nimport { useToast } from 'vue-toastification';\n\nimport VeeValidatePlugin from '@formvuelate/plugin-vee-validate';\nimport { auth as api } from '@perevorot/shop/dist/api';\nimport { formParse } from '@perevorot/shop/dist/helpers';\n\nconst SchemaForm = SchemaFormFactory([VeeValidatePlugin({})]);\n\nexport default {\n name: 'user',\n components: {\n SchemaForm\n },\n setup() {\n const store = useStore();\n const loading = ref(false);\n const loadingForm = ref(true);\n const errors = ref({});\n const schema = ref({});\n const validation = ref({});\n const model = ref({});\n const toast = useToast();\n const key = ref(0);\n\n useSchemaForm(model);\n\n const onSubmit = () => {\n loading.value = true;\n\n store.dispatch('auth/update', {\n credentials: model.value,\n finally: () => {\n loading.value = false;\n },\n callback: () => {\n toast(__('auth.registration.form.saved'), {\n type: 'success'\n });\n\n store.dispatch('auth/me');\n },\n catch: (error) => {\n if (error.response && error.response.data && error.response.data.errors) {\n for (const [field, messages] of Object.entries(error.response.data.errors)) {\n if (messages[0]) {\n errors.value[field] = messages[0];\n }\n }\n } else {\n console.error(error);\n }\n\n key.value++;\n }\n });\n };\n\n api.registerForm()\n .then((response) => {\n const form = formParse(response.data);\n\n schema.value = form.schema;\n model.value = { ...form.model, ...response.data.model };\n validation.value = form.validation;\n })\n .finally(() => {\n loadingForm.value = false;\n });\n\n return {\n loading,\n loadingForm,\n errors,\n schema,\n validation,\n onSubmit,\n model,\n key\n };\n }\n};\n</script>","<template>\n <div v-if=\"!loadingForm\">\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=\"{ 'is-loading': loading }\">\n {{ __('auth.registration.form.save') }}\n </button>\n </div>\n </div>\n </div>\n </template>\n </SchemaForm>\n </div>\n</template>\n<script>\nimport { ref } from 'vue';\nimport { useStore } from 'vuex';\nimport { SchemaFormFactory, useSchemaForm } from 'formvuelate';\nimport { useToast } from 'vue-toastification';\n\nimport VeeValidatePlugin from '@formvuelate/plugin-vee-validate';\nimport { auth as api } from '@perevorot/shop/dist/api';\nimport { formParse } from '@perevorot/shop/dist/helpers';\n\nconst SchemaForm = SchemaFormFactory([VeeValidatePlugin({})]);\n\nexport default {\n name: 'user',\n components: {\n SchemaForm\n },\n setup() {\n const store = useStore();\n const loading = ref(false);\n const loadingForm = ref(true);\n const errors = ref({});\n const schema = ref({});\n const validation = ref({});\n const model = ref({});\n const toast = useToast();\n const key = ref(0);\n\n useSchemaForm(model);\n\n const onSubmit = () => {\n loading.value = true;\n\n store.dispatch('auth/update', {\n credentials: model.value,\n finally: () => {\n loading.value = false;\n },\n callback: () => {\n toast(__('auth.registration.form.saved'), {\n type: 'success'\n });\n\n store.dispatch('auth/me');\n },\n catch: (error) => {\n if (error.response && error.response.data && error.response.data.errors) {\n for (const [field, messages] of Object.entries(error.response.data.errors)) {\n if (messages[0]) {\n errors.value[field] = messages[0];\n }\n }\n } else {\n console.error(error);\n }\n\n key.value++;\n }\n });\n };\n\n api.registerForm()\n .then((response) => {\n const form = formParse(response.data);\n\n schema.value = form.schema;\n model.value = { ...form.model, ...response.data.model };\n validation.value = form.validation;\n })\n .finally(() => {\n loadingForm.value = false;\n });\n\n return {\n loading,\n loadingForm,\n errors,\n schema,\n validation,\n onSubmit,\n model,\n key\n };\n }\n};\n</script>"],"names":["name","components","SchemaForm","SchemaFormFactory","VeeValidatePlugin","setup","store","useStore","loading","ref","loadingForm","errors","schema","validation","model","toast","useToast","key","useSchemaForm","api","registerForm","then","response","form","formParse","data","value","finally","onSubmit","dispatch","credentials","callback","__","type","catch","error","Object","entries","field","messages","console","class","$setup","_createElementBlock","_createVNode","schemaRowClasses","afterForm","_createElementVNode","_hoisted_2","_hoisted_3","_hoisted_4","_ctx"],"mappings":"8wCA2BA,MAEe,CACXA,KAAM,OACNC,WAAY,CACRC,WALWC,oBAAkB,CAACC,UAAkB,OAOpDC,qBACUC,EAAQC,aACRC,EAAUC,OAAI,GACdC,EAAcD,OAAI,GAClBE,EAASF,MAAI,IACbG,EAASH,MAAI,IACbI,EAAaJ,MAAI,IACjBK,EAAQL,MAAI,IACZM,EAAQC,aACRC,EAAMR,MAAI,GAEhBS,gBAAcJ,UAiCdK,OAAIC,eACCC,MAAK,SAACC,OACGC,EAAOC,YAAUF,EAASG,MAEhCb,EAAOc,MAAQH,EAAKX,OACpBE,EAAMY,uBAAaH,EAAKT,MAAUQ,EAASG,KAAKX,OAChDD,EAAWa,MAAQH,EAAKV,cAE3Bc,SAAQ,WACLjB,EAAYgB,OAAQ,KAGrB,CACHlB,QAAAA,EACAE,YAAAA,EACAC,OAAAA,EACAC,OAAAA,EACAC,WAAAA,EACAe,SAjDa,WACbpB,EAAQkB,OAAQ,EAEhBpB,EAAMuB,SAAS,cAAe,CAC1BC,YAAahB,EAAMY,MACnBC,QAAS,WACLnB,EAAQkB,OAAQ,GAEpBK,SAAU,WACNhB,EAAMiB,GAAG,gCAAiC,CACtCC,KAAM,YAGV3B,EAAMuB,SAAS,YAEnBK,MAAO,SAACC,MACAA,EAAMb,UAAYa,EAAMb,SAASG,MAAQU,EAAMb,SAASG,KAAKd,qBAC7ByB,OAAOC,QAAQF,EAAMb,SAASG,KAAKd,uBAAS,iBAAhE2B,OAAOC,OACXA,EAAS,KACT5B,EAAOe,MAAMY,GAASC,EAAS,SAIvCC,QAAQL,MAAMA,GAGlBlB,EAAIS,YAwBZZ,MAAAA,EACAG,IAAAA,kBC9FSwB,MAAM,YACFA,MAAM,2BACFA,MAAM,uFALnBC,6DAAZC,8BACIC,iBAAYC,iBAAiB,QAASjC,OAAQ8B,6BAA4BA,8BAA6BA,SAASzB,IAAKyB,MAAMd,SAAQc,aACpHI,qBACP,kBAAAC,2BAAAC,GACID,2BAAAE,GACIF,2BAAAG,GACIH,+BAAQN,wBAAM,+BAA6DC,aAA5CT,KAAK,4BAC7BkB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var t=require("vue").defineAsyncComponent((function(){return new Promise((function(t,e){$http.post($ziggy("api.wishlist"),{action:"list"}).then((function(e){t({template:e.data,mounted:function(){window.lazyImages.update()}})}))}))}));module.exports=t;
|
|
2
2
|
//# sourceMappingURL=Wish.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Wish.js","sources":["../../../../src/js/components/account/Wish.vue"],"sourcesContent":["<script>\nimport { defineAsyncComponent } from \"vue\";\n\nexport default defineAsyncComponent(\n () =>\n new Promise((resolve, reject) => {\n $http\n .post($ziggy(\"api.wishlist\"), {\n action: \"list\",\n })\n .then((response) => {\n resolve({\n template: response.data,\n mounted() {\n window.lazyImages.update();\n },\n });\n });\n })\n);\n</script>\n"],"names":["Promise","resolve","reject","$http","post","$ziggy","action","then","response","template","data","mounted","window","lazyImages","update"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Wish.js","sources":["../../../../src/js/components/account/Wish.vue"],"sourcesContent":["<script>\nimport { defineAsyncComponent } from \"vue\";\n\nexport default defineAsyncComponent(\n () =>\n new Promise((resolve, reject) => {\n $http\n .post($ziggy(\"api.wishlist\"), {\n action: \"list\",\n })\n .then((response) => {\n resolve({\n template: response.data,\n mounted() {\n window.lazyImages.update();\n },\n });\n });\n })\n);\n</script>\n"],"names":["Promise","resolve","reject","$http","post","$ziggy","action","then","response","template","data","mounted","window","lazyImages","update"],"mappings":"wDAII,kBACI,IAAIA,SAAQ,SAACC,EAASC,GAClBC,MACKC,KAAKC,OAAO,gBAAiB,CAC1BC,OAAQ,SAEXC,MAAK,SAACC,GACHP,EAAQ,CACJQ,SAAUD,EAASE,KACnBC,mBACIC,OAAOC,WAAWC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("vue"),t=require("vuex"),a=require("formvuelate"),r=require("@formvuelate/plugin-vee-validate"),l=require("@perevorot/shop/dist/js/forms/FormText"),
|
|
1
|
+
"use strict";var e=require("vue"),t=require("vuex"),a=require("formvuelate"),r=require("@formvuelate/plugin-vee-validate"),l=require("@perevorot/shop/dist/js/forms/FormText"),n=require("yup");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function o(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(a){if("default"!==a){var r=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(t,a,r.get?r:{enumerable:!0,get:function(){return e[a]}})}})),t.default=e,Object.freeze(t)}var u=i(r),c=i(l),m=o(n);e.markRaw(c.default);var s={name:"forget",components:{SchemaForm:a.SchemaFormFactory([u.default({})])},props:{email:{type:String,default:""}},setup:function(r){var l=e.ref(!1),n=t.useStore(),i=e.ref(0),o=e.ref(""),u=e.ref(""),s=e.ref(!1),d=e.ref({email:{component:c.default,label:__("auth.login.form.email")}}),f=m.object().shape({email:m.string().email(__("auth.validation.email")).required(__("auth.validation.required"))}),v=e.ref({email:r.email});a.useSchemaForm(v);return{loading:l,key:i,schema:d,validation:f,remembered:function(){n.commit("auth/modal","login")},onSubmit:function(){l.value=!0,o.value="",u.value="",n.dispatch("auth/reset",{credentials:v.value,callback:function(e,t){t?u.value=e:o.value=e},finally:function(){v.value={},l.value=!1,s.value=!0,i.value++}})},again:function(){s.value=!1},sent:s,message:o,error:u,close:function(){n.commit("auth/modal",null)}}}},d={class:"form auth-forget"},f={class:"title"},v={class:"field"},h={class:"columns is-vcentered"},p={class:"column"},g={class:"mt-2"},b={class:"mt-2"},y={class:"mt-2"};s.render=function(t,a,r,l,n,i){var o=e.resolveComponent("SchemaForm");return e.openBlock(),e.createElementBlock("div",d,[e.createElementVNode("div",f,e.toDisplayString(t.__("auth.forget.title")),1),e.withDirectives(e.createElementVNode("div",null,[e.createVNode(o,{schemaRowClasses:"field",schema:l.schema,"validation-schema":l.validation,key:l.key,onSubmit:l.onSubmit},{afterForm:e.withCtx((function(){return[e.createElementVNode("div",v,[e.createElementVNode("div",h,[e.createElementVNode("div",p,[e.createElementVNode("button",{class:e.normalizeClass(["button is-link",{"is-loading":l.loading}]),type:"submit"},e.toDisplayString(t.__("auth.forget.form.submit")),3)])])])]})),_:1},8,["schema","validation-schema","onSubmit"]),e.createElementVNode("div",g,[e.createElementVNode("a",{onClick:a[0]||(a[0]=function(){return l.remembered&&l.remembered.apply(l,arguments)})},e.toDisplayString(t.__("auth.forget.remembered")),1)])],512),[[e.vShow,!l.sent]]),e.withDirectives(e.createElementVNode("div",null,[e.createElementVNode("div",null,e.toDisplayString(l.message),1),e.createElementVNode("div",b,[e.createElementVNode("a",{onClick:a[1]||(a[1]=function(){return l.close&&l.close.apply(l,arguments)})},e.toDisplayString(t.__("auth.forget.close")),1)])],512),[[e.vShow,l.sent&&l.message]]),e.withDirectives(e.createElementVNode("div",null,[e.createElementVNode("div",null,e.toDisplayString(l.error),1),e.createElementVNode("div",y,[e.createElementVNode("a",{onClick:a[2]||(a[2]=function(){return l.again&&l.again.apply(l,arguments)})},e.toDisplayString(t.__("auth.forget.send")),1)])],512),[[e.vShow,l.sent&&l.error]])])},module.exports=s;
|
|
2
2
|
//# sourceMappingURL=Forget.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Forget.js","sources":["../../../../src/js/components/auth/Forget.vue","../../../../src/js/components/auth/Forget.vue?vue&type=template&id=bdb2fe34&lang.js"],"sourcesContent":["<template>\n <div class=\"form auth-forget\">\n <div class=\"title\">{{ __('auth.forget.title') }}</div>\n <div v-show=\"!sent\">\n <SchemaForm schemaRowClasses=\"field\" :schema=\"schema\" :validation-schema=\"validation\" :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=\"{ 'is-loading': loading }\">\n {{ __('auth.forget.form.submit') }}\n </button>\n </div>\n </div>\n </div>\n </template>\n </SchemaForm>\n\n <div class=\"mt-2\">\n <a @click=\"remembered\">{{ __('auth.forget.remembered') }}</a>\n </div>\n </div>\n <div v-show=\"sent && message\">\n <div>{{ message }}</div>\n <div class=\"mt-2\">\n <a @click=\"close\">{{ __('auth.forget.close') }}</a>\n </div>\n </div>\n <div v-show=\"sent && error\">\n <div>{{ error }}</div>\n <div class=\"mt-2\">\n <a @click=\"again\">{{ __('auth.forget.send') }}</a>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, markRaw } from 'vue';\nimport { useStore } from 'vuex';\nimport { SchemaFormFactory, useSchemaForm } from 'formvuelate';\nimport VeeValidatePlugin from '@formvuelate/plugin-vee-validate';\nimport FormText from '@perevorot/shop/dist/js/forms/FormText';\nimport * as yup from 'yup';\n\nmarkRaw(FormText);\n\nconst SchemaForm = SchemaFormFactory([VeeValidatePlugin({})]);\n\nexport default {\n name: 'forget',\n components: {\n SchemaForm\n },\n props: {\n email: {\n type: String,\n default: ''\n }\n },\n setup(props) {\n const loading = ref(false);\n const store = useStore();\n const key = ref(0);\n const message = ref('');\n const error = ref('');\n const sent = ref(false);\n\n const schema = ref({\n email: {\n component: FormText,\n label: __('auth.login.form.email')\n }\n });\n\n const validation = yup.object().shape({\n email: yup.string().email(__('auth.validation.email')).required(__('auth.validation.required'))\n });\n\n const model = ref({\n email: props.email\n });\n\n useSchemaForm(model);\n\n const remembered = () => {\n store.commit('auth/modal', 'login');\n };\n\n const again = () => {\n sent.value = false;\n };\n\n const onSubmit = () => {\n loading.value = true;\n message.value = '';\n error.value = '';\n\n store.dispatch('auth/reset', {\n credentials: model.value,\n callback: (m, isError) => {\n if (!isError) {\n message.value = m;\n } else {\n error.value = m;\n }\n },\n finally: () => {\n model.value = {};\n loading.value = false;\n sent.value = true;\n key.value++;\n }\n });\n };\n\n const close = () => {\n store.commit('auth/modal', null);\n };\n\n return {\n loading,\n key,\n schema,\n validation,\n remembered,\n onSubmit,\n again,\n sent,\n message,\n error,\n close\n };\n }\n};\n</script>","<template>\n <div class=\"form auth-forget\">\n <div class=\"title\">{{ __('auth.forget.title') }}</div>\n <div v-show=\"!sent\">\n <SchemaForm schemaRowClasses=\"field\" :schema=\"schema\" :validation-schema=\"validation\" :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=\"{ 'is-loading': loading }\">\n {{ __('auth.forget.form.submit') }}\n </button>\n </div>\n </div>\n </div>\n </template>\n </SchemaForm>\n\n <div class=\"mt-2\">\n <a @click=\"remembered\">{{ __('auth.forget.remembered') }}</a>\n </div>\n </div>\n <div v-show=\"sent && message\">\n <div>{{ message }}</div>\n <div class=\"mt-2\">\n <a @click=\"close\">{{ __('auth.forget.close') }}</a>\n </div>\n </div>\n <div v-show=\"sent && error\">\n <div>{{ error }}</div>\n <div class=\"mt-2\">\n <a @click=\"again\">{{ __('auth.forget.send') }}</a>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, markRaw } from 'vue';\nimport { useStore } from 'vuex';\nimport { SchemaFormFactory, useSchemaForm } from 'formvuelate';\nimport VeeValidatePlugin from '@formvuelate/plugin-vee-validate';\nimport FormText from '@perevorot/shop/dist/js/forms/FormText';\nimport * as yup from 'yup';\n\nmarkRaw(FormText);\n\nconst SchemaForm = SchemaFormFactory([VeeValidatePlugin({})]);\n\nexport default {\n name: 'forget',\n components: {\n SchemaForm\n },\n props: {\n email: {\n type: String,\n default: ''\n }\n },\n setup(props) {\n const loading = ref(false);\n const store = useStore();\n const key = ref(0);\n const message = ref('');\n const error = ref('');\n const sent = ref(false);\n\n const schema = ref({\n email: {\n component: FormText,\n label: __('auth.login.form.email')\n }\n });\n\n const validation = yup.object().shape({\n email: yup.string().email(__('auth.validation.email')).required(__('auth.validation.required'))\n });\n\n const model = ref({\n email: props.email\n });\n\n useSchemaForm(model);\n\n const remembered = () => {\n store.commit('auth/modal', 'login');\n };\n\n const again = () => {\n sent.value = false;\n };\n\n const onSubmit = () => {\n loading.value = true;\n message.value = '';\n error.value = '';\n\n store.dispatch('auth/reset', {\n credentials: model.value,\n callback: (m, isError) => {\n if (!isError) {\n message.value = m;\n } else {\n error.value = m;\n }\n },\n finally: () => {\n model.value = {};\n loading.value = false;\n sent.value = true;\n key.value++;\n }\n });\n };\n\n const close = () => {\n store.commit('auth/modal', null);\n };\n\n return {\n loading,\n key,\n schema,\n validation,\n remembered,\n onSubmit,\n again,\n sent,\n message,\n error,\n close\n };\n }\n};\n</script>"],"names":["markRaw","FormText","name","components","SchemaForm","SchemaFormFactory","VeeValidatePlugin","props","email","type","String","default","setup","loading","ref","store","useStore","key","message","error","sent","schema","component","label","__","validation","yup","object","shape","string","required","model","useSchemaForm","remembered","commit","onSubmit","value","dispatch","credentials","callback","m","isError","finally","again","close","class","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_ctx","_createVNode","schemaRowClasses","$setup","afterForm","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","onClick","_hoisted_7","_hoisted_8"],"mappings":"gkBA4CAA,UAAQC,WAER,MAEe,CACXC,KAAM,SACNC,WAAY,CACRC,WALWC,oBAAkB,CAACC,UAAkB,OAOpDC,MAAO,CACHC,MAAO,CACHC,KAAMC,OACNC,QAAS,KAGjBC,MAAML,OACIM,EAAUC,OAAI,GACdC,EAAQC,aACRC,EAAMH,MAAI,GACVI,EAAUJ,MAAI,IACdK,EAAQL,MAAI,IACZM,EAAON,OAAI,GAEXO,EAASP,MAAI,CACfN,MAAO,CACHc,UAAWrB,UACXsB,MAAOC,GAAG,4BAIZC,EAAaC,EAAIC,SAASC,MAAM,CAClCpB,MAAOkB,EAAIG,SAASrB,MAAMgB,GAAG,0BAA0BM,SAASN,GAAG,+BAGjEO,EAAQjB,MAAI,CACdN,MAAOD,EAAMC,QAGjBwB,gBAAcD,SAqCP,CACHlB,QAAAA,EACAI,IAAAA,EACAI,OAAAA,EACAI,WAAAA,EACAQ,WAxCe,KACflB,EAAMmB,OAAO,aAAc,UAwC3BC,SAjCa,KACbtB,EAAQuB,OAAQ,EAChBlB,EAAQkB,MAAQ,GAChBjB,EAAMiB,MAAQ,GAEdrB,EAAMsB,SAAS,aAAc,CACzBC,YAAaP,EAAMK,MACnBG,SAAU,CAACC,EAAGC,KACLA,EAGDtB,EAAMiB,MAAQI,EAFdtB,EAAQkB,MAAQI,GAKxBE,QAAS,KACLX,EAAMK,MAAQ,GACdvB,EAAQuB,OAAQ,EAChBhB,EAAKgB,OAAQ,EACbnB,EAAImB,YAgBZO,MAtCU,KACVvB,EAAKgB,OAAQ,GAsCbhB,KAAAA,EACAF,QAAAA,EACAC,MAAAA,EACAyB,MAfU,KACV7B,EAAMmB,OAAO,aAAc,aCnH9BW,MAAM,uBACFA,MAAM,YAIMA,MAAM,YACFA,MAAM,2BACFA,MAAM,aAUtBA,MAAM,WAMNA,MAAM,WAMNA,MAAM,mGA7BnBC,2BAAAC,GACIC,2BAAAC,oBAAsBC,+CACtBF,iCACIG,iBAAYC,iBAAiB,QAAS/B,OAAQgC,6BAA4BA,aAAapC,IAAKoC,MAAMlB,SAAQkB,aAC3FC,oBACP,KAAAN,2BAAAO,GACIP,2BAAAQ,GACIR,2BAAAS,GACIT,+BAAQH,wBAAM,+BAA6DQ,aAA5C5C,KAAK,4BAC7ByC,8FAQ3BF,2BAAAU,GACIV,0BAAIW,sCAAON,8DAAeH,sDAhBpBG,2BAmBdL,iCACIA,kDAAQK,cACRL,2BAAAY,GACIZ,0BAAIW,sCAAON,oDAAUH,gDAHhBG,QAAQA,8BAMrBL,iCACIA,kDAAQK,YACRL,2BAAAa,GACIb,0BAAIW,sCAAON,oDAAUH,+CAHhBG,QAAQA"}
|
|
1
|
+
{"version":3,"file":"Forget.js","sources":["../../../../src/js/components/auth/Forget.vue","../../../../src/js/components/auth/Forget.vue?vue&type=template&id=bdb2fe34&lang.js"],"sourcesContent":["<template>\n <div class=\"form auth-forget\">\n <div class=\"title\">{{ __('auth.forget.title') }}</div>\n <div v-show=\"!sent\">\n <SchemaForm schemaRowClasses=\"field\" :schema=\"schema\" :validation-schema=\"validation\" :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=\"{ 'is-loading': loading }\">\n {{ __('auth.forget.form.submit') }}\n </button>\n </div>\n </div>\n </div>\n </template>\n </SchemaForm>\n\n <div class=\"mt-2\">\n <a @click=\"remembered\">{{ __('auth.forget.remembered') }}</a>\n </div>\n </div>\n <div v-show=\"sent && message\">\n <div>{{ message }}</div>\n <div class=\"mt-2\">\n <a @click=\"close\">{{ __('auth.forget.close') }}</a>\n </div>\n </div>\n <div v-show=\"sent && error\">\n <div>{{ error }}</div>\n <div class=\"mt-2\">\n <a @click=\"again\">{{ __('auth.forget.send') }}</a>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, markRaw } from 'vue';\nimport { useStore } from 'vuex';\nimport { SchemaFormFactory, useSchemaForm } from 'formvuelate';\nimport VeeValidatePlugin from '@formvuelate/plugin-vee-validate';\nimport FormText from '@perevorot/shop/dist/js/forms/FormText';\nimport * as yup from 'yup';\n\nmarkRaw(FormText);\n\nconst SchemaForm = SchemaFormFactory([VeeValidatePlugin({})]);\n\nexport default {\n name: 'forget',\n components: {\n SchemaForm\n },\n props: {\n email: {\n type: String,\n default: ''\n }\n },\n setup(props) {\n const loading = ref(false);\n const store = useStore();\n const key = ref(0);\n const message = ref('');\n const error = ref('');\n const sent = ref(false);\n\n const schema = ref({\n email: {\n component: FormText,\n label: __('auth.login.form.email')\n }\n });\n\n const validation = yup.object().shape({\n email: yup.string().email(__('auth.validation.email')).required(__('auth.validation.required'))\n });\n\n const model = ref({\n email: props.email\n });\n\n useSchemaForm(model);\n\n const remembered = () => {\n store.commit('auth/modal', 'login');\n };\n\n const again = () => {\n sent.value = false;\n };\n\n const onSubmit = () => {\n loading.value = true;\n message.value = '';\n error.value = '';\n\n store.dispatch('auth/reset', {\n credentials: model.value,\n callback: (m, isError) => {\n if (!isError) {\n message.value = m;\n } else {\n error.value = m;\n }\n },\n finally: () => {\n model.value = {};\n loading.value = false;\n sent.value = true;\n key.value++;\n }\n });\n };\n\n const close = () => {\n store.commit('auth/modal', null);\n };\n\n return {\n loading,\n key,\n schema,\n validation,\n remembered,\n onSubmit,\n again,\n sent,\n message,\n error,\n close\n };\n }\n};\n</script>","<template>\n <div class=\"form auth-forget\">\n <div class=\"title\">{{ __('auth.forget.title') }}</div>\n <div v-show=\"!sent\">\n <SchemaForm schemaRowClasses=\"field\" :schema=\"schema\" :validation-schema=\"validation\" :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=\"{ 'is-loading': loading }\">\n {{ __('auth.forget.form.submit') }}\n </button>\n </div>\n </div>\n </div>\n </template>\n </SchemaForm>\n\n <div class=\"mt-2\">\n <a @click=\"remembered\">{{ __('auth.forget.remembered') }}</a>\n </div>\n </div>\n <div v-show=\"sent && message\">\n <div>{{ message }}</div>\n <div class=\"mt-2\">\n <a @click=\"close\">{{ __('auth.forget.close') }}</a>\n </div>\n </div>\n <div v-show=\"sent && error\">\n <div>{{ error }}</div>\n <div class=\"mt-2\">\n <a @click=\"again\">{{ __('auth.forget.send') }}</a>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport { ref, markRaw } from 'vue';\nimport { useStore } from 'vuex';\nimport { SchemaFormFactory, useSchemaForm } from 'formvuelate';\nimport VeeValidatePlugin from '@formvuelate/plugin-vee-validate';\nimport FormText from '@perevorot/shop/dist/js/forms/FormText';\nimport * as yup from 'yup';\n\nmarkRaw(FormText);\n\nconst SchemaForm = SchemaFormFactory([VeeValidatePlugin({})]);\n\nexport default {\n name: 'forget',\n components: {\n SchemaForm\n },\n props: {\n email: {\n type: String,\n default: ''\n }\n },\n setup(props) {\n const loading = ref(false);\n const store = useStore();\n const key = ref(0);\n const message = ref('');\n const error = ref('');\n const sent = ref(false);\n\n const schema = ref({\n email: {\n component: FormText,\n label: __('auth.login.form.email')\n }\n });\n\n const validation = yup.object().shape({\n email: yup.string().email(__('auth.validation.email')).required(__('auth.validation.required'))\n });\n\n const model = ref({\n email: props.email\n });\n\n useSchemaForm(model);\n\n const remembered = () => {\n store.commit('auth/modal', 'login');\n };\n\n const again = () => {\n sent.value = false;\n };\n\n const onSubmit = () => {\n loading.value = true;\n message.value = '';\n error.value = '';\n\n store.dispatch('auth/reset', {\n credentials: model.value,\n callback: (m, isError) => {\n if (!isError) {\n message.value = m;\n } else {\n error.value = m;\n }\n },\n finally: () => {\n model.value = {};\n loading.value = false;\n sent.value = true;\n key.value++;\n }\n });\n };\n\n const close = () => {\n store.commit('auth/modal', null);\n };\n\n return {\n loading,\n key,\n schema,\n validation,\n remembered,\n onSubmit,\n again,\n sent,\n message,\n error,\n close\n };\n }\n};\n</script>"],"names":["markRaw","FormText","name","components","SchemaForm","SchemaFormFactory","VeeValidatePlugin","props","email","type","String","default","setup","loading","ref","store","useStore","key","message","error","sent","schema","component","label","__","validation","yup","object","shape","string","required","model","useSchemaForm","remembered","commit","onSubmit","value","dispatch","credentials","callback","m","isError","finally","again","close","class","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_ctx","_createVNode","schemaRowClasses","$setup","afterForm","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","onClick","_hoisted_7","_hoisted_8"],"mappings":"gkBA4CAA,UAAQC,WAER,MAEe,CACXC,KAAM,SACNC,WAAY,CACRC,WALWC,oBAAkB,CAACC,UAAkB,OAOpDC,MAAO,CACHC,MAAO,CACHC,KAAMC,OACNC,QAAS,KAGjBC,eAAML,OACIM,EAAUC,OAAI,GACdC,EAAQC,aACRC,EAAMH,MAAI,GACVI,EAAUJ,MAAI,IACdK,EAAQL,MAAI,IACZM,EAAON,OAAI,GAEXO,EAASP,MAAI,CACfN,MAAO,CACHc,UAAWrB,UACXsB,MAAOC,GAAG,4BAIZC,EAAaC,EAAIC,SAASC,MAAM,CAClCpB,MAAOkB,EAAIG,SAASrB,MAAMgB,GAAG,0BAA0BM,SAASN,GAAG,+BAGjEO,EAAQjB,MAAI,CACdN,MAAOD,EAAMC,QAGjBwB,gBAAcD,SAqCP,CACHlB,QAAAA,EACAI,IAAAA,EACAI,OAAAA,EACAI,WAAAA,EACAQ,WAxCe,WACflB,EAAMmB,OAAO,aAAc,UAwC3BC,SAjCa,WACbtB,EAAQuB,OAAQ,EAChBlB,EAAQkB,MAAQ,GAChBjB,EAAMiB,MAAQ,GAEdrB,EAAMsB,SAAS,aAAc,CACzBC,YAAaP,EAAMK,MACnBG,SAAU,SAACC,EAAGC,GACLA,EAGDtB,EAAMiB,MAAQI,EAFdtB,EAAQkB,MAAQI,GAKxBE,QAAS,WACLX,EAAMK,MAAQ,GACdvB,EAAQuB,OAAQ,EAChBhB,EAAKgB,OAAQ,EACbnB,EAAImB,YAgBZO,MAtCU,WACVvB,EAAKgB,OAAQ,GAsCbhB,KAAAA,EACAF,QAAAA,EACAC,MAAAA,EACAyB,MAfU,WACV7B,EAAMmB,OAAO,aAAc,aCnH9BW,MAAM,uBACFA,MAAM,YAIMA,MAAM,YACFA,MAAM,2BACFA,MAAM,aAUtBA,MAAM,WAMNA,MAAM,WAMNA,MAAM,mGA7BnBC,2BAAAC,GACIC,2BAAAC,oBAAsBC,+CACtBF,iCACIG,iBAAYC,iBAAiB,QAAS/B,OAAQgC,6BAA4BA,aAAapC,IAAKoC,MAAMlB,SAAQkB,aAC3FC,qBACP,kBAAAN,2BAAAO,GACIP,2BAAAQ,GACIR,2BAAAS,GACIT,+BAAQH,wBAAM,+BAA6DQ,aAA5C5C,KAAK,4BAC7ByC,gGAQ3BF,2BAAAU,GACIV,0BAAIW,sCAAON,mEAAeH,sDAhBpBG,2BAmBdL,iCACIA,kDAAQK,cACRL,2BAAAY,GACIZ,0BAAIW,sCAAON,yDAAUH,gDAHhBG,QAAQA,8BAMrBL,iCACIA,kDAAQK,YACRL,2BAAAa,GACIb,0BAAIW,sCAAON,yDAAUH,+CAHhBG,QAAQA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("vue"),
|
|
1
|
+
"use strict";var e=require("vue"),t=require("vuex"),r=require("formvuelate"),o=require("@formvuelate/plugin-vee-validate"),n=require("@perevorot/shop/dist/js/forms/FormText"),a=require("@perevorot/shop/dist/js/forms/FormPassword"),l=require("@perevorot/shop/dist/js/components/auth/Forget"),i=require("yup");function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function u(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,o.get?o:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var s=c(o),d=c(n),m=c(a),f=c(l),g=u(i);function p(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function h(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==r)return;var o,n,a=[],l=!0,i=!1;try{for(r=r.call(e);!(l=(o=r.next()).done)&&(a.push(o.value),!t||a.length!==t);l=!0);}catch(e){i=!0,n=e}finally{try{l||null==r.return||r.return()}finally{if(i)throw n}}return a}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return v(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return v(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,o=new Array(t);r<t;r++)o[r]=e[r];return o}e.markRaw(d.default);var b=r.SchemaFormFactory([s.default({})]),y={props:{loginCallback:Function,default:function(){}},name:"login",components:{SchemaForm:b,Forget:f.default},setup:function(o){var n,a=e.ref(!1),l=t.useStore(),i=e.ref(0),c=e.ref({}),u=e.computed((function(){return l.getters["auth/modal"]})),s=e.ref({email:{component:d.default,label:__("auth.login.form.email"),store:"login",model:"email"},password:{component:m.default,label:__("auth.login.form.password")}}),f=g.object().shape({email:g.string().email(__("auth.validation.email")).required(__("auth.validation.required")),password:g.string().required(__("auth.validation.required"))}),v=e.ref({email:"",password:""});r.useSchemaForm(v);return p(n={loading:a,modal:u,schema:s,validation:f,reset:function(){l.commit("auth/modal","forget")},facebook:function(){window.location.href=$ziggy("auth.login.social",{provider:"facebook"})},google:function(){window.location.href=$ziggy("auth.login.social",{provider:"google"})}},"schema",s),p(n,"onSubmit",(function(){a.value=!0,l.dispatch("auth/login",{credentials:v.value,callback:function(){o.loginCallback&&o.loginCallback()},finally:function(){a.value=!1},catch:function(e){if(e.response.data&&e.response.data.errors){for(var t=0,r=Object.entries(e.response.data.errors);t<r.length;t++){var o=h(r[t],2),n=o[0],a=o[1];a[0]&&(c.value[n]=a[0])}v.value.password="",i.value++}}})})),p(n,"errors",c),p(n,"key",i),p(n,"model",v),p(n,"register",(function(){l.commit("auth/modal","registration")})),n}},k={class:"auth-login"},_={class:"title"},w={class:"href-forget-password"},E={class:"field"},N={class:"socials"},V={class:"description has-text-centered"},S={class:"buttons"},j=[e.createElementVNode("svg",{class:"icon fb-btn"},[e.createElementVNode("use",{"xlink:href":"#logo-facebook-icon"})],-1),e.createElementVNode("span",null,"Facebook",-1)],C=[e.createElementVNode("svg",{class:"icon google-btn"},[e.createElementVNode("use",{"xlink:href":"#logo-google-icon"})],-1),e.createElementVNode("span",null,"Google",-1)],q={class:"href-register"};y.render=function(t,r,o,n,a,l){var i=e.resolveComponent("SchemaForm"),c=e.resolveComponent("forget");return e.openBlock(),e.createElementBlock("div",k,[e.withDirectives(e.createElementVNode("div",null,[e.createElementVNode("div",_,e.toDisplayString(t.__("auth.login.title")),1),e.createVNode(i,{schemaRowClasses:"field",schema:n.schema,"validation-schema":n.validation,"initial-errors":n.errors,key:n.key,onSubmit:n.onSubmit},{afterForm:e.withCtx((function(){return[e.createElementVNode("div",w,[e.createElementVNode("a",{onClick:r[0]||(r[0]=function(){return n.reset&&n.reset.apply(n,arguments)})},e.toDisplayString(t.__("auth.login.forget_password")),1)]),e.createElementVNode("div",E,[e.createElementVNode("button",{class:e.normalizeClass(["button is-link",{"is-loading":n.loading}]),type:"submit"},e.toDisplayString(t.__("auth.login.form.submit")),3)]),e.createElementVNode("div",N,[e.createElementVNode("div",V,e.toDisplayString(t.__("auth.login.socials")),1),e.createElementVNode("div",S,[e.createElementVNode("a",{class:"button",onClick:r[1]||(r[1]=function(){return n.facebook&&n.facebook.apply(n,arguments)})},j),e.createElementVNode("a",{class:"button",onClick:r[2]||(r[2]=function(){return n.google&&n.google.apply(n,arguments)})},C)])]),e.createElementVNode("div",q,[e.createElementVNode("a",{onClick:r[3]||(r[3]=function(){return n.register&&n.register.apply(n,arguments)})},e.toDisplayString(t.__("auth.login.signup")),1)])]})),_:1},8,["schema","validation-schema","initial-errors","onSubmit"])],512),[[e.vShow,"login"==n.modal]]),"forget"==n.modal?(e.openBlock(),e.createBlock(c,{key:0,email:n.model.email},null,8,["email"])):e.createCommentVNode("v-if",!0)])},module.exports=y;
|
|
2
2
|
//# sourceMappingURL=Login.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Login.js","sources":["../../../../src/js/components/auth/Login.vue","../../../../src/js/components/auth/Login.vue?vue&type=template&id=4373a806&lang.js"],"sourcesContent":["<template>\n <div class=\"auth-login\">\n <div v-show=\"modal == 'login'\">\n <div class=\"title\">{{ __('auth.login.title') }}</div>\n <SchemaForm schemaRowClasses=\"field\" :schema=\"schema\" :validation-schema=\"validation\" :initial-errors=\"errors\" :key=\"key\" @submit=\"onSubmit\">\n <template #afterForm>\n <div class=\"href-forget-password\">\n <a @click=\"reset\">{{ __('auth.login.forget_password') }}</a>\n </div>\n <div class=\"field\">\n <button class=\"button is-link\" type=\"submit\" v-bind:class=\"{ 'is-loading': loading }\">\n {{ __('auth.login.form.submit') }}\n </button>\n </div>\n <div class=\"socials\">\n <div class=\"description has-text-centered\">\n {{ __('auth.login.socials') }}\n </div>\n <div class=\"buttons\">\n <a class=\"button\" @click=\"facebook\">\n <svg class=\"icon fb-btn\">\n <use xlink:href=\"#logo-facebook-icon\" />\n </svg>\n <span>Facebook</span>\n </a>\n <a class=\"button\" @click=\"google\"><svg class=\"icon google-btn\">\n <use xlink:href=\"#logo-google-icon\" />\n </svg>\n <span>Google</span>\n </a>\n </div>\n </div>\n <div class=\"href-register\">\n <a @click=\"register\">{{ __('auth.login.signup') }}</a>\n </div>\n </template>\n </SchemaForm>\n </div>\n\n <forget v-if=\"modal == 'forget'\" :email=\"model.email\"></forget>\n </div>\n</template>\n<script>\nimport { ref, markRaw, computed } from 'vue';\nimport { useStore } from 'vuex';\nimport { SchemaFormFactory, useSchemaForm } from 'formvuelate';\nimport VeeValidatePlugin from '@formvuelate/plugin-vee-validate';\nimport FormText from '@perevorot/shop/dist/js/forms/FormText';\nimport FormPassword from '@perevorot/shop/dist/js/forms/FormPassword';\nimport Forget from '@perevorot/shop/dist/js/components/auth/Forget';\nimport * as yup from 'yup';\n\nmarkRaw(FormText);\n\nconst SchemaForm = SchemaFormFactory([VeeValidatePlugin({})]);\n\nexport default {\n props: {\n loginCallback: Function,\n default: () => { }\n },\n name: 'login',\n components: {\n SchemaForm,\n Forget\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['auth/modal']);\n\n const schema = ref({\n email: {\n component: FormText,\n label: __('auth.login.form.email'),\n store: 'login',\n model: 'email'\n },\n password: {\n component: FormPassword,\n label: __('auth.login.form.password')\n }\n });\n\n const validation = yup.object().shape({\n email: yup.string().email(__('auth.validation.email')).required(__('auth.validation.required')),\n password: yup.string().required(__('auth.validation.required'))\n });\n\n const model = ref({\n email: '',\n password: ''\n });\n\n useSchemaForm(model);\n\n const reset = () => {\n store.commit('auth/modal', 'forget');\n };\n\n const register = () => {\n store.commit('auth/modal', 'registration');\n };\n\n const facebook = () => {\n window.location.href = $ziggy('auth.login.social', {\n provider: 'facebook'\n });\n };\n\n const google = () => {\n window.location.href = $ziggy('auth.login.social', {\n provider: 'google'\n });\n };\n\n const onSubmit = () => {\n loading.value = true;\n\n store.dispatch('auth/login', {\n credentials: model.value,\n callback: () => {\n if (props.loginCallback) {\n props.loginCallback();\n }\n },\n finally: () => {\n loading.value = false;\n },\n catch: (error) => {\n if (error.response.data && error.response.data.errors) {\n for (const [field, messages] of Object.entries(error.response.data.errors)) {\n if (messages[0]) {\n errors.value[field] = messages[0];\n }\n }\n\n model.value.password = '';\n\n key.value++;\n }\n }\n });\n };\n\n return {\n loading,\n modal,\n schema,\n validation,\n reset,\n facebook,\n google,\n schema,\n onSubmit,\n errors,\n key,\n model,\n register\n };\n }\n};\n</script>","<template>\n <div class=\"auth-login\">\n <div v-show=\"modal == 'login'\">\n <div class=\"title\">{{ __('auth.login.title') }}</div>\n <SchemaForm schemaRowClasses=\"field\" :schema=\"schema\" :validation-schema=\"validation\" :initial-errors=\"errors\" :key=\"key\" @submit=\"onSubmit\">\n <template #afterForm>\n <div class=\"href-forget-password\">\n <a @click=\"reset\">{{ __('auth.login.forget_password') }}</a>\n </div>\n <div class=\"field\">\n <button class=\"button is-link\" type=\"submit\" v-bind:class=\"{ 'is-loading': loading }\">\n {{ __('auth.login.form.submit') }}\n </button>\n </div>\n <div class=\"socials\">\n <div class=\"description has-text-centered\">\n {{ __('auth.login.socials') }}\n </div>\n <div class=\"buttons\">\n <a class=\"button\" @click=\"facebook\">\n <svg class=\"icon fb-btn\">\n <use xlink:href=\"#logo-facebook-icon\" />\n </svg>\n <span>Facebook</span>\n </a>\n <a class=\"button\" @click=\"google\"><svg class=\"icon google-btn\">\n <use xlink:href=\"#logo-google-icon\" />\n </svg>\n <span>Google</span>\n </a>\n </div>\n </div>\n <div class=\"href-register\">\n <a @click=\"register\">{{ __('auth.login.signup') }}</a>\n </div>\n </template>\n </SchemaForm>\n </div>\n\n <forget v-if=\"modal == 'forget'\" :email=\"model.email\"></forget>\n </div>\n</template>\n<script>\nimport { ref, markRaw, computed } from 'vue';\nimport { useStore } from 'vuex';\nimport { SchemaFormFactory, useSchemaForm } from 'formvuelate';\nimport VeeValidatePlugin from '@formvuelate/plugin-vee-validate';\nimport FormText from '@perevorot/shop/dist/js/forms/FormText';\nimport FormPassword from '@perevorot/shop/dist/js/forms/FormPassword';\nimport Forget from '@perevorot/shop/dist/js/components/auth/Forget';\nimport * as yup from 'yup';\n\nmarkRaw(FormText);\n\nconst SchemaForm = SchemaFormFactory([VeeValidatePlugin({})]);\n\nexport default {\n props: {\n loginCallback: Function,\n default: () => { }\n },\n name: 'login',\n components: {\n SchemaForm,\n Forget\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['auth/modal']);\n\n const schema = ref({\n email: {\n component: FormText,\n label: __('auth.login.form.email'),\n store: 'login',\n model: 'email'\n },\n password: {\n component: FormPassword,\n label: __('auth.login.form.password')\n }\n });\n\n const validation = yup.object().shape({\n email: yup.string().email(__('auth.validation.email')).required(__('auth.validation.required')),\n password: yup.string().required(__('auth.validation.required'))\n });\n\n const model = ref({\n email: '',\n password: ''\n });\n\n useSchemaForm(model);\n\n const reset = () => {\n store.commit('auth/modal', 'forget');\n };\n\n const register = () => {\n store.commit('auth/modal', 'registration');\n };\n\n const facebook = () => {\n window.location.href = $ziggy('auth.login.social', {\n provider: 'facebook'\n });\n };\n\n const google = () => {\n window.location.href = $ziggy('auth.login.social', {\n provider: 'google'\n });\n };\n\n const onSubmit = () => {\n loading.value = true;\n\n store.dispatch('auth/login', {\n credentials: model.value,\n callback: () => {\n if (props.loginCallback) {\n props.loginCallback();\n }\n },\n finally: () => {\n loading.value = false;\n },\n catch: (error) => {\n if (error.response.data && error.response.data.errors) {\n for (const [field, messages] of Object.entries(error.response.data.errors)) {\n if (messages[0]) {\n errors.value[field] = messages[0];\n }\n }\n\n model.value.password = '';\n\n key.value++;\n }\n }\n });\n };\n\n return {\n loading,\n modal,\n schema,\n validation,\n reset,\n facebook,\n google,\n schema,\n onSubmit,\n errors,\n key,\n model,\n register\n };\n }\n};\n</script>"],"names":["markRaw","FormText","SchemaForm","SchemaFormFactory","VeeValidatePlugin","props","loginCallback","Function","default","name","components","Forget","setup","loading","ref","store","useStore","key","errors","modal","computed","getters","schema","email","component","label","__","model","password","FormPassword","validation","yup","object","shape","string","required","useSchemaForm","reset","commit","facebook","window","location","href","$ziggy","provider","google","onSubmit","value","dispatch","credentials","callback","finally","catch","error","response","data","field","messages","Object","entries","register","class","_createElementVNode","_createElementBlock","_hoisted_1","_hoisted_2","_ctx","_createVNode","schemaRowClasses","$setup","afterForm","_hoisted_3","onClick","_hoisted_4","type","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_14","_createBlock"],"mappings":"ksBAoDAA,UAAQC,WAER,IAAMC,EAAaC,oBAAkB,CAACC,UAAkB,QAEzC,CACXC,MAAO,CACHC,cAAeC,SACfC,QAAS,QAEbC,KAAM,QACNC,WAAY,CACRR,WAAAA,SACAS,WAEJC,MAAMP,OACIQ,EAAUC,OAAI,GACdC,EAAQC,aACRC,EAAMH,MAAI,GACVI,EAASJ,MAAI,IACbK,EAAQC,WAAS,IAAML,EAAMM,QAAQ,eAErCC,EAASR,MAAI,CACfS,MAAO,CACHC,UAAWvB,UACXwB,MAAOC,GAAG,yBACVX,MAAO,QACPY,MAAO,SAEXC,SAAU,CACNJ,UAAWK,UACXJ,MAAOC,GAAG,+BAIZI,EAAaC,EAAIC,SAASC,MAAM,CAClCV,MAAOQ,EAAIG,SAASX,MAAMG,GAAG,0BAA0BS,SAAST,GAAG,6BACnEE,SAAUG,EAAIG,SAASC,SAAST,GAAG,+BAGjCC,EAAQb,MAAI,CACdS,MAAO,GACPK,SAAU,KAGdQ,gBAAcT,SAmDP,CACHd,QAAAA,EACAM,MAAAA,EACAG,OAAAA,EACAQ,WAAAA,EACAO,MAtDU,KACVtB,EAAMuB,OAAO,aAAc,WAsD3BC,SA/Ca,KACbC,OAAOC,SAASC,KAAOC,OAAO,oBAAqB,CAC/CC,SAAU,cA8CdC,OA1CW,KACXL,OAAOC,SAASC,KAAOC,OAAO,oBAAqB,CAC/CC,SAAU,YAyCdtB,OAAAA,EACAwB,SAtCa,KACbjC,EAAQkC,OAAQ,EAEhBhC,EAAMiC,SAAS,aAAc,CACzBC,YAAatB,EAAMoB,MACnBG,SAAU,KACF7C,EAAMC,eACND,EAAMC,iBAGd6C,QAAS,KACLtC,EAAQkC,OAAQ,GAEpBK,MAAQC,OACAA,EAAMC,SAASC,MAAQF,EAAMC,SAASC,KAAKrC,OAAQ,KAC9C,IAAOsC,EAAOC,KAAaC,OAAOC,QAAQN,EAAMC,SAASC,KAAKrC,QAC3DuC,EAAS,KACTvC,EAAO6B,MAAMS,GAASC,EAAS,IAIvC9B,EAAMoB,MAAMnB,SAAW,GAEvBX,EAAI8B,aAgBhB7B,OAAAA,EACAD,IAAAA,EACAU,MAAAA,EACAiC,SA1Da,KACb7C,EAAMuB,OAAO,aAAc,uBCtG9BuB,MAAM,iBAEEA,MAAM,YAGEA,MAAM,2BAGNA,MAAM,YAKNA,MAAM,cACFA,MAAM,oCAGNA,MAAM,cAEHC,4BAAKD,MAAM,gBACPC,yCAAgB,6BAEpBA,iCAAM,mBAEwBA,4BAAKD,MAAM,oBACrCC,yCAAgB,2BAEpBA,iCAAM,iBAIbD,MAAM,2IA/B3BE,2BAAAC,oBACIF,iCACIA,2BAAAG,oBAAsBC,6BACtBC,iBAAYC,iBAAiB,QAAS9C,OAAQ+C,6BAA4BA,8BAA6BA,SAASpD,IAAKoD,MAAMvB,SAAQuB,aACpHC,oBACP,KAAAR,2BAAAS,GACIT,0BAAIU,sCAAOH,oDAAUH,yCAEzBJ,2BAAAW,GACIX,+BAAQD,wBAAM,+BAA6DQ,aAA5CK,KAAK,4BAC7BR,qCAGXJ,2BAAAa,GACIb,2BAAAc,oBACOV,+BAEPJ,2BAAAe,GACIf,0BAAGD,MAAM,SAAUW,sCAAOH,2CAM1BP,0BAAGD,MAAM,SAAUW,sCAAOH,2CAOlCP,2BAAAgB,GACIhB,0BAAIU,sCAAOH,0DAAaH,8HA/B3BG,qBAqCCA,uBAAdU,uBAAkCxD,MAAO8C,QAAM9C"}
|
|
1
|
+
{"version":3,"file":"Login.js","sources":["../../../../src/js/components/auth/Login.vue","../../../../src/js/components/auth/Login.vue?vue&type=template&id=4373a806&lang.js"],"sourcesContent":["<template>\n <div class=\"auth-login\">\n <div v-show=\"modal == 'login'\">\n <div class=\"title\">{{ __('auth.login.title') }}</div>\n <SchemaForm schemaRowClasses=\"field\" :schema=\"schema\" :validation-schema=\"validation\" :initial-errors=\"errors\" :key=\"key\" @submit=\"onSubmit\">\n <template #afterForm>\n <div class=\"href-forget-password\">\n <a @click=\"reset\">{{ __('auth.login.forget_password') }}</a>\n </div>\n <div class=\"field\">\n <button class=\"button is-link\" type=\"submit\" v-bind:class=\"{ 'is-loading': loading }\">\n {{ __('auth.login.form.submit') }}\n </button>\n </div>\n <div class=\"socials\">\n <div class=\"description has-text-centered\">\n {{ __('auth.login.socials') }}\n </div>\n <div class=\"buttons\">\n <a class=\"button\" @click=\"facebook\">\n <svg class=\"icon fb-btn\">\n <use xlink:href=\"#logo-facebook-icon\" />\n </svg>\n <span>Facebook</span>\n </a>\n <a class=\"button\" @click=\"google\"><svg class=\"icon google-btn\">\n <use xlink:href=\"#logo-google-icon\" />\n </svg>\n <span>Google</span>\n </a>\n </div>\n </div>\n <div class=\"href-register\">\n <a @click=\"register\">{{ __('auth.login.signup') }}</a>\n </div>\n </template>\n </SchemaForm>\n </div>\n\n <forget v-if=\"modal == 'forget'\" :email=\"model.email\"></forget>\n </div>\n</template>\n<script>\nimport { ref, markRaw, computed } from 'vue';\nimport { useStore } from 'vuex';\nimport { SchemaFormFactory, useSchemaForm } from 'formvuelate';\nimport VeeValidatePlugin from '@formvuelate/plugin-vee-validate';\nimport FormText from '@perevorot/shop/dist/js/forms/FormText';\nimport FormPassword from '@perevorot/shop/dist/js/forms/FormPassword';\nimport Forget from '@perevorot/shop/dist/js/components/auth/Forget';\nimport * as yup from 'yup';\n\nmarkRaw(FormText);\n\nconst SchemaForm = SchemaFormFactory([VeeValidatePlugin({})]);\n\nexport default {\n props: {\n loginCallback: Function,\n default: () => { }\n },\n name: 'login',\n components: {\n SchemaForm,\n Forget\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['auth/modal']);\n\n const schema = ref({\n email: {\n component: FormText,\n label: __('auth.login.form.email'),\n store: 'login',\n model: 'email'\n },\n password: {\n component: FormPassword,\n label: __('auth.login.form.password')\n }\n });\n\n const validation = yup.object().shape({\n email: yup.string().email(__('auth.validation.email')).required(__('auth.validation.required')),\n password: yup.string().required(__('auth.validation.required'))\n });\n\n const model = ref({\n email: '',\n password: ''\n });\n\n useSchemaForm(model);\n\n const reset = () => {\n store.commit('auth/modal', 'forget');\n };\n\n const register = () => {\n store.commit('auth/modal', 'registration');\n };\n\n const facebook = () => {\n window.location.href = $ziggy('auth.login.social', {\n provider: 'facebook'\n });\n };\n\n const google = () => {\n window.location.href = $ziggy('auth.login.social', {\n provider: 'google'\n });\n };\n\n const onSubmit = () => {\n loading.value = true;\n\n store.dispatch('auth/login', {\n credentials: model.value,\n callback: () => {\n if (props.loginCallback) {\n props.loginCallback();\n }\n },\n finally: () => {\n loading.value = false;\n },\n catch: (error) => {\n if (error.response.data && error.response.data.errors) {\n for (const [field, messages] of Object.entries(error.response.data.errors)) {\n if (messages[0]) {\n errors.value[field] = messages[0];\n }\n }\n\n model.value.password = '';\n\n key.value++;\n }\n }\n });\n };\n\n return {\n loading,\n modal,\n schema,\n validation,\n reset,\n facebook,\n google,\n schema,\n onSubmit,\n errors,\n key,\n model,\n register\n };\n }\n};\n</script>","<template>\n <div class=\"auth-login\">\n <div v-show=\"modal == 'login'\">\n <div class=\"title\">{{ __('auth.login.title') }}</div>\n <SchemaForm schemaRowClasses=\"field\" :schema=\"schema\" :validation-schema=\"validation\" :initial-errors=\"errors\" :key=\"key\" @submit=\"onSubmit\">\n <template #afterForm>\n <div class=\"href-forget-password\">\n <a @click=\"reset\">{{ __('auth.login.forget_password') }}</a>\n </div>\n <div class=\"field\">\n <button class=\"button is-link\" type=\"submit\" v-bind:class=\"{ 'is-loading': loading }\">\n {{ __('auth.login.form.submit') }}\n </button>\n </div>\n <div class=\"socials\">\n <div class=\"description has-text-centered\">\n {{ __('auth.login.socials') }}\n </div>\n <div class=\"buttons\">\n <a class=\"button\" @click=\"facebook\">\n <svg class=\"icon fb-btn\">\n <use xlink:href=\"#logo-facebook-icon\" />\n </svg>\n <span>Facebook</span>\n </a>\n <a class=\"button\" @click=\"google\"><svg class=\"icon google-btn\">\n <use xlink:href=\"#logo-google-icon\" />\n </svg>\n <span>Google</span>\n </a>\n </div>\n </div>\n <div class=\"href-register\">\n <a @click=\"register\">{{ __('auth.login.signup') }}</a>\n </div>\n </template>\n </SchemaForm>\n </div>\n\n <forget v-if=\"modal == 'forget'\" :email=\"model.email\"></forget>\n </div>\n</template>\n<script>\nimport { ref, markRaw, computed } from 'vue';\nimport { useStore } from 'vuex';\nimport { SchemaFormFactory, useSchemaForm } from 'formvuelate';\nimport VeeValidatePlugin from '@formvuelate/plugin-vee-validate';\nimport FormText from '@perevorot/shop/dist/js/forms/FormText';\nimport FormPassword from '@perevorot/shop/dist/js/forms/FormPassword';\nimport Forget from '@perevorot/shop/dist/js/components/auth/Forget';\nimport * as yup from 'yup';\n\nmarkRaw(FormText);\n\nconst SchemaForm = SchemaFormFactory([VeeValidatePlugin({})]);\n\nexport default {\n props: {\n loginCallback: Function,\n default: () => { }\n },\n name: 'login',\n components: {\n SchemaForm,\n Forget\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['auth/modal']);\n\n const schema = ref({\n email: {\n component: FormText,\n label: __('auth.login.form.email'),\n store: 'login',\n model: 'email'\n },\n password: {\n component: FormPassword,\n label: __('auth.login.form.password')\n }\n });\n\n const validation = yup.object().shape({\n email: yup.string().email(__('auth.validation.email')).required(__('auth.validation.required')),\n password: yup.string().required(__('auth.validation.required'))\n });\n\n const model = ref({\n email: '',\n password: ''\n });\n\n useSchemaForm(model);\n\n const reset = () => {\n store.commit('auth/modal', 'forget');\n };\n\n const register = () => {\n store.commit('auth/modal', 'registration');\n };\n\n const facebook = () => {\n window.location.href = $ziggy('auth.login.social', {\n provider: 'facebook'\n });\n };\n\n const google = () => {\n window.location.href = $ziggy('auth.login.social', {\n provider: 'google'\n });\n };\n\n const onSubmit = () => {\n loading.value = true;\n\n store.dispatch('auth/login', {\n credentials: model.value,\n callback: () => {\n if (props.loginCallback) {\n props.loginCallback();\n }\n },\n finally: () => {\n loading.value = false;\n },\n catch: (error) => {\n if (error.response.data && error.response.data.errors) {\n for (const [field, messages] of Object.entries(error.response.data.errors)) {\n if (messages[0]) {\n errors.value[field] = messages[0];\n }\n }\n\n model.value.password = '';\n\n key.value++;\n }\n }\n });\n };\n\n return {\n loading,\n modal,\n schema,\n validation,\n reset,\n facebook,\n google,\n schema,\n onSubmit,\n errors,\n key,\n model,\n register\n };\n }\n};\n</script>"],"names":["markRaw","FormText","SchemaForm","SchemaFormFactory","VeeValidatePlugin","props","loginCallback","Function","default","name","components","Forget","setup","loading","ref","store","useStore","key","errors","modal","computed","getters","schema","email","component","label","__","model","password","FormPassword","validation","yup","object","shape","string","required","useSchemaForm","reset","commit","facebook","window","location","href","$ziggy","provider","google","value","dispatch","credentials","callback","finally","catch","error","response","data","Object","entries","field","messages","class","_createElementVNode","_createElementBlock","_hoisted_1","_hoisted_2","_ctx","_createVNode","schemaRowClasses","$setup","onSubmit","afterForm","_hoisted_3","onClick","_hoisted_4","type","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_14","_createBlock"],"mappings":"0wDAoDAA,UAAQC,WAER,IAAMC,EAAaC,oBAAkB,CAACC,UAAkB,QAEzC,CACXC,MAAO,CACHC,cAAeC,SACfC,QAAS,cAEbC,KAAM,QACNC,WAAY,CACRR,WAAAA,EACAS,OAAAA,WAEJC,eAAMP,SACIQ,EAAUC,OAAI,GACdC,EAAQC,aACRC,EAAMH,MAAI,GACVI,EAASJ,MAAI,IACbK,EAAQC,YAAS,kBAAML,EAAMM,QAAQ,iBAErCC,EAASR,MAAI,CACfS,MAAO,CACHC,UAAWvB,UACXwB,MAAOC,GAAG,yBACVX,MAAO,QACPY,MAAO,SAEXC,SAAU,CACNJ,UAAWK,UACXJ,MAAOC,GAAG,+BAIZI,EAAaC,EAAIC,SAASC,MAAM,CAClCV,MAAOQ,EAAIG,SAASX,MAAMG,GAAG,0BAA0BS,SAAST,GAAG,6BACnEE,SAAUG,EAAIG,SAASC,SAAST,GAAG,+BAGjCC,EAAQb,MAAI,CACdS,MAAO,GACPK,SAAU,KAGdQ,gBAAcT,eAoDVd,QAAAA,EACAM,MAAAA,EACAG,OAAAA,EACAQ,WAAAA,EACAO,MAtDU,WACVtB,EAAMuB,OAAO,aAAc,WAsD3BC,SA/Ca,WACbC,OAAOC,SAASC,KAAOC,OAAO,oBAAqB,CAC/CC,SAAU,cA8CdC,OA1CW,WACXL,OAAOC,SAASC,KAAOC,OAAO,oBAAqB,CAC/CC,SAAU,sBAyCdtB,mBArCa,WACbT,EAAQiC,OAAQ,EAEhB/B,EAAMgC,SAAS,aAAc,CACzBC,YAAarB,EAAMmB,MACnBG,SAAU,WACF5C,EAAMC,eACND,EAAMC,iBAGd4C,QAAS,WACLrC,EAAQiC,OAAQ,GAEpBK,MAAO,SAACC,MACAA,EAAMC,SAASC,MAAQF,EAAMC,SAASC,KAAKpC,OAAQ,eACnBqC,OAAOC,QAAQJ,EAAMC,SAASC,KAAKpC,uBAAS,iBAAhEuC,OAAOC,OACXA,EAAS,KACTxC,EAAO4B,MAAMW,GAASC,EAAS,IAIvC/B,EAAMmB,MAAMlB,SAAW,GAEvBX,EAAI6B,4BAgBhB5B,aACAD,eACAU,mBAzDa,WACbZ,EAAMuB,OAAO,aAAc,0BCtG9BqB,MAAM,iBAEEA,MAAM,YAGEA,MAAM,2BAGNA,MAAM,YAKNA,MAAM,cACFA,MAAM,oCAGNA,MAAM,cAEHC,4BAAKD,MAAM,gBACPC,yCAAgB,6BAEpBA,iCAAM,mBAEwBA,4BAAKD,MAAM,oBACrCC,yCAAgB,2BAEpBA,iCAAM,iBAIbD,MAAM,2IA/B3BE,2BAAAC,oBACIF,iCACIA,2BAAAG,oBAAsBC,6BACtBC,iBAAYC,iBAAiB,QAAS5C,OAAQ6C,6BAA4BA,8BAA6BA,SAASlD,IAAKkD,MAAMC,SAAQD,aACpHE,qBACP,kBAAAT,2BAAAU,GACIV,0BAAIW,sCAAOJ,yDAAUH,yCAEzBJ,2BAAAY,GACIZ,+BAAQD,wBAAM,+BAA6DQ,aAA5CM,KAAK,4BAC7BT,qCAGXJ,2BAAAc,GACId,2BAAAe,oBACOX,+BAEPJ,2BAAAgB,GACIhB,0BAAGD,MAAM,SAAUY,sCAAOJ,gDAM1BP,0BAAGD,MAAM,SAAUY,sCAAOJ,gDAOlCP,2BAAAiB,GACIjB,0BAAIW,sCAAOJ,+DAAaH,gIA/B3BG,qBAqCCA,uBAAdW,uBAAkCvD,MAAO4C,QAAM5C"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("vue"),t=require("vuex"),
|
|
1
|
+
"use strict";var e=require("vue"),t=require("vuex"),r=require("formvuelate"),o=require("@formvuelate/plugin-vee-validate"),n=require("@perevorot/shop/dist/api"),a=require("@perevorot/shop/dist/helpers"),i=require("secure-ls");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=l(o),c=l(i);function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==r)return;var o,n,a=[],i=!0,l=!1;try{for(r=r.call(e);!(i=(o=r.next()).done)&&(a.push(o.value),!t||a.length!==t);i=!0);}catch(e){l=!0,n=e}finally{try{i||null==r.return||r.return()}finally{if(l)throw n}}return a}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return m(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return m(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,o=new Array(t);r<t;r++)o[r]=e[r];return o}var d={name:"registration",components:{SchemaForm:r.SchemaFormFactory([s.default({})])},setup:function(){var o,i=t.useStore(),l=e.ref(!1),s=e.ref(!0),m=e.ref(0),d=e.ref({}),f=e.ref(!1),v=e.ref(""),h=e.ref({}),g=e.ref({}),p=e.ref({});r.useSchemaForm(p);return n.auth.registerForm().then((function(e){var t=a.formParse(e.data);o=t.model,h.value=t.schema,p.value=t.model,g.value=t.validation,v.value=e.data.type})).finally((function(){s.value=!1})),{loading:l,loadingForm:s,key:m,errors:d,schema:h,validation:g,onSubmit:function(){l.value=!0,i.dispatch("auth/register",{type:v.value.charAt(0).toUpperCase()+v.value.slice(1),credentials:p.value,finally:function(){l.value=!1},callback:function(){f.value=!0,p.value=o,m.value++;var e=new c.default({isCompression:!1}),t=e.get("forms");t.registration&&(t.registration={}),e.set("forms",t)},catch:function(e){if(e.response.data&&e.response.data.errors){for(var t=0,r=Object.entries(e.response.data.errors);t<r.length;t++){var o=u(r[t],2),n=o[0],a=o[1];a[0]&&(d.value[n]=a[0])}m.value++}}})},facebook:function(){window.location.href=$ziggy("auth.login.social",{provider:"facebook"})},google:function(){window.location.href=$ziggy("auth.login.social",{provider:"google"})},thanks:f,model:p,close:function(){i.commit("auth/modal",null),i.dispatch("auth/me")},type:v,login:function(){i.commit("auth/modal","login")}}}},f={key:0,class:"auth-registration"},v={class:"title"},h={class:"field"},g={class:"socials"},p={class:"description has-text-centered"},y={class:"buttons"},b=[e.createElementVNode("svg",{class:"icon fb-btn"},[e.createElementVNode("use",{"xlink:href":"#logo-facebook-icon"})],-1),e.createElementVNode("span",null,"Facebook",-1)],k=[e.createElementVNode("svg",{class:"icon google-btn"},[e.createElementVNode("use",{"xlink:href":"#logo-google-icon"})],-1),e.createElementVNode("span",null,"Google",-1)],E={class:"href-already-register"},N={class:"mt-3"};d.render=function(t,r,o,n,a,i){var l=e.resolveComponent("SchemaForm");return n.loadingForm?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("div",f,[e.createElementVNode("div",v,e.toDisplayString(t.__("auth.registration.title")),1),e.withDirectives(e.createElementVNode("div",null,[e.createVNode(l,{schemaRowClasses:"field",schema:n.schema,"validation-schema":n.validation,"initial-errors":n.errors,key:n.key,onSubmit:n.onSubmit},{afterForm:e.withCtx((function(){return[e.createElementVNode("div",h,[e.createElementVNode("button",{class:e.normalizeClass(["button is-link",{"is-loading":n.loading}]),type:"submit"},e.toDisplayString(t.__("auth.registration.form.submit"+("short"==n.type?"_short":""))),3)]),e.createElementVNode("div",g,[e.createElementVNode("div",p,e.toDisplayString(t.__("auth.login.socials")),1),e.createElementVNode("div",y,[e.createElementVNode("a",{class:"button",onClick:r[0]||(r[0]=function(){return n.facebook&&n.facebook.apply(n,arguments)})},b),e.createElementVNode("a",{class:"button",onClick:r[1]||(r[1]=function(){return n.google&&n.google.apply(n,arguments)})},k)])]),e.createElementVNode("div",E,[e.createElementVNode("a",{onClick:r[2]||(r[2]=function(){return n.login&&n.login.apply(n,arguments)})},e.toDisplayString(t.__("auth.registration.already")),1)])]})),_:1},8,["schema","validation-schema","initial-errors","onSubmit"])],512),[[e.vShow,!n.thanks]]),e.withDirectives(e.createElementVNode("div",null,[e.createElementVNode("div",null,e.toDisplayString(t.__("auth.registration.thanks"+("short"==n.type?"_short":""),{email:n.model.email})),1),e.createElementVNode("div",N,[e.createElementVNode("button",{class:"button",onClick:r[3]||(r[3]=function(){return n.close&&n.close.apply(n,arguments)})},e.toDisplayString(t.__("auth.registration.continue")),1)])],512),[[e.vShow,n.thanks]])]))},module.exports=d;
|
|
2
2
|
//# sourceMappingURL=Registration.js.map
|