@ozdao/prometheus-framework 0.2.323 → 0.2.325
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/Media-BjSScxrV.js +1 -0
- package/dist/Media-CCVndMgQ.mjs +111 -0
- package/dist/main-BBmjvE8i.js +92 -0
- package/dist/main-BCskq3d2.mjs +13068 -0
- package/dist/main.css +1 -1
- package/dist/prometheus-framework/src/components/Button/Button.vue.cjs +9 -11
- package/dist/prometheus-framework/src/components/Button/Button.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/components/Button/Button.vue.js +10 -12
- package/dist/prometheus-framework/src/components/Button/Button.vue.js.map +1 -1
- package/dist/prometheus-framework/src/components/DatePicker/Calendar.vue2.cjs +37 -9
- package/dist/prometheus-framework/src/components/DatePicker/Calendar.vue2.cjs.map +1 -1
- package/dist/prometheus-framework/src/components/DatePicker/Calendar.vue2.js +37 -9
- package/dist/prometheus-framework/src/components/DatePicker/Calendar.vue2.js.map +1 -1
- package/dist/prometheus-framework/src/components/DatePicker/DatePicker.vue.cjs +27 -18
- package/dist/prometheus-framework/src/components/DatePicker/DatePicker.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/components/DatePicker/DatePicker.vue.js +27 -18
- package/dist/prometheus-framework/src/components/DatePicker/DatePicker.vue.js.map +1 -1
- package/dist/prometheus-framework/src/components/EditImages/EditImages.vue.cjs +93 -0
- package/dist/prometheus-framework/src/components/EditImages/EditImages.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/components/EditImages/EditImages.vue.js +94 -1
- package/dist/prometheus-framework/src/components/EditImages/EditImages.vue.js.map +1 -1
- package/dist/prometheus-framework/src/components/EditImages/EditImages.vue2.cjs +0 -93
- package/dist/prometheus-framework/src/components/EditImages/EditImages.vue2.cjs.map +1 -1
- package/dist/prometheus-framework/src/components/EditImages/EditImages.vue2.js +1 -94
- package/dist/prometheus-framework/src/components/EditImages/EditImages.vue2.js.map +1 -1
- package/dist/prometheus-framework/src/components/EmptyState/EmptyState.vue.cjs +2 -2
- package/dist/prometheus-framework/src/components/EmptyState/EmptyState.vue.js +2 -2
- package/dist/prometheus-framework/src/components/Feed/Feed.vue.cjs +7 -3
- package/dist/prometheus-framework/src/components/Feed/Feed.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/components/Feed/Feed.vue.js +7 -3
- package/dist/prometheus-framework/src/components/Feed/Feed.vue.js.map +1 -1
- package/dist/prometheus-framework/src/components/Media/Media.vue.cjs +154 -0
- package/dist/prometheus-framework/src/components/Media/Media.vue.cjs.map +1 -0
- package/dist/prometheus-framework/src/components/Media/Media.vue.js +154 -0
- package/dist/prometheus-framework/src/components/Media/Media.vue.js.map +1 -0
- package/dist/prometheus-framework/src/components/Popup/Popup.vue.cjs +1 -4
- package/dist/prometheus-framework/src/components/Popup/Popup.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/components/Popup/Popup.vue.js +1 -4
- package/dist/prometheus-framework/src/components/Popup/Popup.vue.js.map +1 -1
- package/dist/prometheus-framework/src/components/Slider/Slider.vue.cjs +68 -37
- package/dist/prometheus-framework/src/components/Slider/Slider.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/components/Slider/Slider.vue.js +69 -38
- package/dist/prometheus-framework/src/components/Slider/Slider.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/Profile.vue.cjs +3 -2
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/Profile.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/Profile.vue.js +3 -2
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/Profile.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/backoffice/backoffice.client.cjs +0 -2
- package/dist/prometheus-framework/src/modules/backoffice/backoffice.client.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/backoffice/backoffice.client.js +4 -6
- package/dist/prometheus-framework/src/modules/backoffice/backoffice.client.js.map +1 -1
- package/dist/prometheus-framework/src/modules/backoffice/components/pages/Dashboard.vue.cjs +118 -3
- package/dist/prometheus-framework/src/modules/backoffice/components/pages/Dashboard.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/backoffice/components/pages/Dashboard.vue.js +119 -4
- package/dist/prometheus-framework/src/modules/backoffice/components/pages/Dashboard.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/backoffice/components/partials/Sidebar.vue.cjs +112 -163
- package/dist/prometheus-framework/src/modules/backoffice/components/partials/Sidebar.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/backoffice/components/partials/Sidebar.vue.js +119 -170
- package/dist/prometheus-framework/src/modules/backoffice/components/partials/Sidebar.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/backoffice/router/backoffice.cjs +0 -17
- package/dist/prometheus-framework/src/modules/backoffice/router/backoffice.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/backoffice/router/backoffice.js +2 -19
- package/dist/prometheus-framework/src/modules/backoffice/router/backoffice.js.map +1 -1
- package/dist/prometheus-framework/src/modules/community/components/blocks/CardBlogpost.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/community/components/blocks/CardBlogpost.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/community/components/layouts/Community.vue.cjs +18 -78
- package/dist/prometheus-framework/src/modules/community/components/layouts/Community.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/community/components/layouts/Community.vue.js +23 -83
- package/dist/prometheus-framework/src/modules/community/components/layouts/Community.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/community/components/pages/BlogPost.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/community/components/pages/BlogPost.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/community/components/pages/Community.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/community/components/pages/Community.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/community/components/pages/CreateBlogPost.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/community/components/sections/HotPosts.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/community/components/sections/HotPosts.vue.js +5 -5
- package/dist/prometheus-framework/src/modules/events/components/blocks/CardEvent.vue.cjs +34 -25
- package/dist/prometheus-framework/src/modules/events/components/blocks/CardEvent.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/events/components/blocks/CardEvent.vue.js +35 -26
- package/dist/prometheus-framework/src/modules/events/components/blocks/CardEvent.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/events/components/pages/EditEvent.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/events/components/pages/EditEvent.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/events/components/pages/EditEventTickets.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/events/components/pages/Event.vue.cjs +45 -38
- package/dist/prometheus-framework/src/modules/events/components/pages/Event.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/events/components/pages/Event.vue.js +56 -49
- package/dist/prometheus-framework/src/modules/events/components/pages/Event.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/events/components/pages/Events.vue.cjs +221 -50
- package/dist/prometheus-framework/src/modules/events/components/pages/Events.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/events/components/pages/Events.vue.js +225 -54
- package/dist/prometheus-framework/src/modules/events/components/pages/Events.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/events/components/sections/EventsHot.vue.cjs +98 -0
- package/dist/prometheus-framework/src/modules/events/components/sections/EventsHot.vue.cjs.map +1 -0
- package/dist/prometheus-framework/src/modules/events/components/sections/EventsHot.vue.js +98 -0
- package/dist/prometheus-framework/src/modules/events/components/sections/EventsHot.vue.js.map +1 -0
- package/dist/prometheus-framework/src/modules/events/components/sections/FeaturedEvents.vue.cjs +9 -9
- package/dist/prometheus-framework/src/modules/events/components/sections/FeaturedEvents.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/events/components/sections/FeaturedEvents.vue.js +9 -9
- package/dist/prometheus-framework/src/modules/events/components/sections/FeaturedEvents.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/events/components/sections/List.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/events/components/sections/List.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/events/components/sections/List.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/events/components/sections/List.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/events/events.client.cjs +1 -0
- package/dist/prometheus-framework/src/modules/events/events.client.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/events/events.client.js +1 -0
- package/dist/prometheus-framework/src/modules/events/events.client.js.map +1 -1
- package/dist/prometheus-framework/src/modules/events/router/events.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/events/router/events.js.map +1 -1
- package/dist/prometheus-framework/src/modules/events/store/events.cjs +2 -1
- package/dist/prometheus-framework/src/modules/events/store/events.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/events/store/events.js +2 -1
- package/dist/prometheus-framework/src/modules/events/store/events.js.map +1 -1
- package/dist/prometheus-framework/src/modules/gallery/components/pages/Gallery.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/gallery/components/pages/Gallery.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +4 -4
- package/dist/prometheus-framework/src/modules/gallery/components/sections/BackofficeGallery.vue.js +4 -4
- package/dist/prometheus-framework/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/globals/views/components/blocks/CardHeader.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/globals/views/components/layouts/App.vue.cjs +4 -4
- package/dist/prometheus-framework/src/modules/globals/views/components/layouts/App.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/globals/views/components/layouts/App.vue.js +4 -4
- package/dist/prometheus-framework/src/modules/globals/views/components/layouts/App.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/globals/views/components/layouts/Client.vue.cjs +11 -5
- package/dist/prometheus-framework/src/modules/globals/views/components/layouts/Client.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/globals/views/components/layouts/Client.vue.js +11 -5
- package/dist/prometheus-framework/src/modules/globals/views/components/layouts/Client.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/globals/views/components/partials/CitySelection.vue.cjs +100 -0
- package/dist/prometheus-framework/src/modules/globals/views/components/partials/CitySelection.vue.cjs.map +1 -0
- package/dist/prometheus-framework/src/modules/globals/views/components/partials/CitySelection.vue.js +100 -0
- package/dist/prometheus-framework/src/modules/globals/views/components/partials/CitySelection.vue.js.map +1 -0
- package/dist/prometheus-framework/src/modules/globals/views/components/partials/Header.vue.cjs +6 -7
- package/dist/prometheus-framework/src/modules/globals/views/components/partials/Header.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/globals/views/components/partials/Header.vue.js +6 -7
- package/dist/prometheus-framework/src/modules/globals/views/components/partials/Header.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/globals/views/components/partials/Sidebar.vue.cjs +1 -6
- package/dist/prometheus-framework/src/modules/globals/views/components/partials/Sidebar.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/globals/views/components/partials/Sidebar.vue.js +1 -6
- package/dist/prometheus-framework/src/modules/globals/views/components/partials/Sidebar.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/globals/views/mixins/mixins.cjs +30 -14
- package/dist/prometheus-framework/src/modules/globals/views/mixins/mixins.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/globals/views/mixins/mixins.js +30 -14
- package/dist/prometheus-framework/src/modules/globals/views/mixins/mixins.js.map +1 -1
- package/dist/prometheus-framework/src/modules/icons/actions/IconShopcartAdd.vue.cjs +33 -0
- package/dist/prometheus-framework/src/modules/icons/actions/IconShopcartAdd.vue.cjs.map +1 -0
- package/dist/prometheus-framework/src/modules/icons/actions/IconShopcartAdd.vue.js +33 -0
- package/dist/prometheus-framework/src/modules/icons/actions/IconShopcartAdd.vue.js.map +1 -0
- package/dist/prometheus-framework/src/modules/icons/entities/IconCommunity.vue.cjs +4 -17
- package/dist/prometheus-framework/src/modules/icons/entities/IconCommunity.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/icons/entities/IconCommunity.vue.js +4 -17
- package/dist/prometheus-framework/src/modules/icons/entities/IconCommunity.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/icons/entities/IconPayments.vue.cjs +34 -0
- package/dist/prometheus-framework/src/modules/icons/entities/IconPayments.vue.cjs.map +1 -0
- package/dist/prometheus-framework/src/modules/icons/entities/IconPayments.vue.js +34 -0
- package/dist/prometheus-framework/src/modules/icons/entities/IconPayments.vue.js.map +1 -0
- package/dist/prometheus-framework/src/modules/icons/entities/IconPrice.vue.cjs +27 -17
- package/dist/prometheus-framework/src/modules/icons/entities/IconPrice.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/icons/entities/IconPrice.vue.js +28 -18
- package/dist/prometheus-framework/src/modules/icons/entities/IconPrice.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/icons/icons.client.cjs +2 -0
- package/dist/prometheus-framework/src/modules/icons/icons.client.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/icons/icons.client.js +50 -48
- package/dist/prometheus-framework/src/modules/icons/icons.client.js.map +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/blocks/CardOrderItem.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/blocks/CardOrderItem.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/blocks/CardOrderItem.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/blocks/CardOrderItem.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/pages/OrderBackoffice.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/orders/components/sections/FormAddCustomer.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/sections/FormAddCustomer.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/sections/FormCustomerDetails.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/sections/FormCustomerDetails.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/sections/FormPayment.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/sections/FormPayment.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/orders/store/shopcart.cjs +67 -2
- package/dist/prometheus-framework/src/modules/orders/store/shopcart.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/orders/store/shopcart.js +67 -2
- package/dist/prometheus-framework/src/modules/orders/store/shopcart.js.map +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardOrganization.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardOrganization.vue.js +7 -7
- package/dist/prometheus-framework/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/organizations/components/pages/DepartmentEdit.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Members.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Members.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationEdit.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Organizations.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Organizations.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Organizations.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Organizations.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/sections/DetailsTabSection.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/organizations/components/sections/DetailsTabSection.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/organizations/components/sections/Documents.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/sections/Documents.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/sections/MembersAdd.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/sections/MembersAdd.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/sections/Organizations.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/sections/Organizations.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/pages/pages.client.cjs +821 -789
- package/dist/prometheus-framework/src/modules/pages/pages.client.js +821 -789
- package/dist/prometheus-framework/src/modules/pages/views/components/partials/SidebarPages.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/pages/views/components/partials/SidebarPages.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/components/blocks/CardPosition.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/blocks/CardPosition.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/components/blocks/CardProduct.vue.cjs +4 -15
- package/dist/prometheus-framework/src/modules/products/components/blocks/CardProduct.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/products/components/blocks/CardProduct.vue.js +4 -15
- package/dist/prometheus-framework/src/modules/products/components/blocks/CardProduct.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/products/components/blocks/ImagesThumbnails.vue.cjs +4 -4
- package/dist/prometheus-framework/src/modules/products/components/blocks/ImagesThumbnails.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/products/components/blocks/ImagesThumbnails.vue.js +4 -4
- package/dist/prometheus-framework/src/modules/products/components/blocks/ImagesThumbnails.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/products/components/elements/Price.vue.cjs +24 -30
- package/dist/prometheus-framework/src/modules/products/components/elements/Price.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/products/components/elements/Price.vue.js +25 -31
- package/dist/prometheus-framework/src/modules/products/components/elements/Price.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/Categories.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/Categories.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/CategoryEdit.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/products/components/pages/CategoryEdit.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/products/components/pages/EditLeftover.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/products/components/pages/EditLeftover.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/products/components/pages/Product.vue.cjs +236 -13
- package/dist/prometheus-framework/src/modules/products/components/pages/Product.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/Product.vue.js +239 -16
- package/dist/prometheus-framework/src/modules/products/components/pages/Product.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/ProductEdit.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/products/components/pages/ProductEdit.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/products/components/sections/EditProductInfo.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/EditProductInfo.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/SectionProduct.vue.cjs +60 -14
- package/dist/prometheus-framework/src/modules/products/components/sections/SectionProduct.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/SectionProduct.vue.js +67 -21
- package/dist/prometheus-framework/src/modules/products/components/sections/SectionProduct.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/products/products.client.cjs +0 -3
- package/dist/prometheus-framework/src/modules/products/products.client.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/products/products.client.js +48 -51
- package/dist/prometheus-framework/src/modules/products/products.client.js.map +1 -1
- package/dist/prometheus-framework/src/modules/reports/components/sections/FormReport.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/reports/components/sections/FormReport.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/spots/components/blocks/CardSpot.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/blocks/CardSpot.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/blocks/SpotMemberModify.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/blocks/SpotMemberModify.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/layouts/Spots.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/layouts/Spots.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/pages/SpotEdit.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/spots/components/pages/SpotEdit.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/wallet/views/components/pages/Wallet.vue.cjs +4 -4
- package/dist/prometheus-framework/src/modules/wallet/views/components/pages/Wallet.vue.js +4 -4
- package/dist/prometheus-framework.cjs.js +1 -92
- package/dist/prometheus-framework.es.js +36 -13005
- package/package.json +1 -1
- package/src/components/Button/Button.vue +43 -40
- package/src/components/DatePicker/Calendar.vue +15 -7
- package/src/components/DatePicker/DatePicker.vue +50 -40
- package/src/components/EmptyState/EmptyState.vue +2 -2
- package/src/components/Feed/Feed.vue +6 -2
- package/src/components/Media/Media.vue +211 -0
- package/src/components/Popup/Popup.vue +19 -21
- package/src/components/Slider/Slider.vue +57 -21
- package/src/components/index.js +1 -0
- package/src/main.js +3 -1
- package/src/modules/auth/views/components/pages/Profile.vue +2 -1
- package/src/modules/backoffice/backoffice.client.js +0 -2
- package/src/modules/backoffice/components/pages/Dashboard.vue +95 -2
- package/src/modules/backoffice/components/partials/Sidebar.vue +115 -132
- package/src/modules/backoffice/router/backoffice.js +0 -14
- package/src/modules/community/components/layouts/Community.vue +1 -52
- package/src/modules/events/components/blocks/CardEvent.vue +28 -22
- package/src/modules/events/components/pages/Event.vue +11 -8
- package/src/modules/events/components/pages/Events.vue +241 -56
- package/src/modules/events/components/sections/EventsHot.vue +93 -0
- package/src/modules/events/components/sections/FeaturedEvents.vue +17 -15
- package/src/modules/events/components/sections/List.vue +1 -1
- package/src/modules/events/events.client.js +1 -0
- package/src/modules/events/router/events.js +0 -4
- package/src/modules/events/store/events.js +1 -0
- package/src/modules/globals/views/components/layouts/App.vue +4 -5
- package/src/modules/globals/views/components/layouts/Client.vue +8 -2
- package/src/modules/globals/views/components/partials/CitySelection.vue +88 -0
- package/src/modules/globals/views/components/partials/Header.vue +3 -3
- package/src/modules/globals/views/components/partials/Navigation.vue +75 -20
- package/src/modules/globals/views/components/partials/Sidebar.vue +2 -9
- package/src/modules/globals/views/mixins/mixins.js +56 -35
- package/src/modules/governance/DESCRIPTION.MD +238 -0
- package/src/modules/governance/controllers/factories/initiatives.controller.js +3 -1
- package/src/modules/governance/controllers/routes/initiatives.routes.js +1 -1
- package/src/modules/governance/controllers/routes/tasks.routes.js +1 -1
- package/src/modules/governance/controllers/routes/votes.routes.js +1 -1
- package/src/modules/governance/controllers/routes/votings.routes.js +1 -1
- package/src/modules/governance/governance.client.js +35 -35
- package/src/modules/governance/governance.server.js +8 -8
- package/src/modules/governance/models/milestone.model.js +98 -0
- package/src/modules/governance/models/task.model.js +39 -7
- package/src/modules/governance/views/components/pages/Initiative.vue +1 -1
- package/src/modules/governance/views/components/pages/InitiativeCreate.vue +2 -2
- package/src/modules/governance/views/components/pages/Initiatives.vue +3 -2
- package/src/modules/governance/views/components/pages/Task.vue +1 -1
- package/src/modules/governance/views/components/pages/TaskCreate.vue +2 -2
- package/src/modules/governance/views/components/pages/Tasks.vue +2 -2
- package/src/modules/governance/views/components/pages/Voting.vue +3 -3
- package/src/modules/governance/views/components/pages/VotingCreate.vue +2 -2
- package/src/modules/governance/views/components/pages/Votings.vue +2 -2
- package/src/modules/governance/views/components/sections/VoteForm.vue +1 -1
- package/src/modules/governance/views/router/goverance.router.js +263 -0
- package/src/modules/icons/actions/IconShopcartAdd.vue +15 -0
- package/src/modules/icons/entities/IconCommunity.vue +4 -6
- package/src/modules/icons/entities/IconPayments.vue +14 -0
- package/src/modules/icons/entities/IconPrice.vue +12 -3
- package/src/modules/icons/icons.client.js +5 -0
- package/src/modules/icons/logos/Logotype.vue +50 -17
- package/src/modules/orders/components/blocks/CardOrderItem.vue +2 -0
- package/src/modules/orders/store/shopcart.js +100 -1
- package/src/modules/organizations/components/pages/Organizations.vue +1 -1
- package/src/modules/products/components/blocks/CardProduct.vue +5 -11
- package/src/modules/products/components/blocks/ImagesThumbnails.vue +4 -4
- package/src/modules/products/components/elements/Price.vue +33 -56
- package/src/modules/products/components/pages/Product.vue +235 -13
- package/src/modules/products/components/sections/SectionProduct.vue +50 -25
- package/src/modules/products/products.client.js +0 -4
- package/src/styles/base/all.scss +15 -16
- package/src/styles/config.scss +2 -2
- package/src/modules/backoffice/components/layouts/Backoffice.vue +0 -55
- package/src/modules/events/components/sections/SectionLineup.vue +0 -42
- package/src/modules/events/components/sections/SectionMainGuest.vue +0 -95
- package/src/modules/events/components/sections/SectionPreviousEvents.vue +0 -117
- package/src/modules/events/components/sections/SectionSpecialGuests.vue +0 -46
- package/src/modules/governance/controllers/factories/projects.controller.js +0 -65
- package/src/modules/governance/controllers/routes/projects.routes.js +0 -34
- package/src/modules/governance/models/project.model.js +0 -26
@@ -1,15 +1,61 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
3
3
|
const vue = require("vue");
|
4
|
+
const Button = require("../../../../components/Button/Button.vue.cjs");
|
5
|
+
const Popup = require("../../../../components/Popup/Popup.vue.cjs");
|
6
|
+
const Tab = require("../../../../components/Tab/Tab.vue.cjs");
|
7
|
+
const Calendar = require("../../../../components/DatePicker/Calendar.vue2.cjs");
|
8
|
+
const IconEdit = require("../../../icons/navigation/IconEdit.vue.cjs");
|
9
|
+
const IconShopcartAdd = require("../../../icons/actions/IconShopcartAdd.vue.cjs");
|
10
|
+
const PlaceholderImage = require("../../../icons/placeholders/PlaceholderImage.vue.cjs");
|
11
|
+
const Images360 = require("../blocks/Images360.vue.cjs");
|
12
|
+
const ImagesThumbnails = require("../blocks/ImagesThumbnails.vue.cjs");
|
13
|
+
const Price = require("../elements/Price.vue.cjs");
|
4
14
|
const PopularProducts = require("../sections/PopularProducts.vue.cjs");
|
5
|
-
|
15
|
+
;/* empty css */
|
6
16
|
const vueRouter = require("vue-router");
|
7
17
|
const vueI18n = require("vue-i18n");
|
8
|
-
const
|
18
|
+
const shopcart = require("../../../orders/store/shopcart.cjs");
|
19
|
+
require("../../../auth/views/store/auth.cjs");
|
9
20
|
const products = require("../../store/products.cjs");
|
10
21
|
require("../../store/categories.cjs");
|
11
|
-
const _hoisted_1 = { class: "h-100 w-100 bg-white" };
|
12
|
-
const _hoisted_2 = { class: "
|
22
|
+
const _hoisted_1 = { class: "h-100 w-100 mobile:pd-thin pd-big bg-white" };
|
23
|
+
const _hoisted_2 = { class: "cols-2-1_2 w-100 gap-medium" };
|
24
|
+
const _hoisted_3 = { class: "w-100 o-hidden bg-light radius-big flex-nowrap flex-column flex pos-relative" };
|
25
|
+
const _hoisted_4 = { class: "pd-semi w-100 bg-light radius-semi o-hidden" };
|
26
|
+
const _hoisted_5 = ["src"];
|
27
|
+
const _hoisted_6 = { class: "pos-relative w-100 h-100 flex-column flex-h-center flex" };
|
28
|
+
const _hoisted_7 = { class: "w-100 h1-product mn-b-small" };
|
29
|
+
const _hoisted_8 = {
|
30
|
+
key: 1,
|
31
|
+
class: "h-min-5r o-hidden radius-small bg-light mn-b-medium pos-relative"
|
32
|
+
};
|
33
|
+
const _hoisted_9 = {
|
34
|
+
key: 0,
|
35
|
+
class: "pd-medium"
|
36
|
+
};
|
37
|
+
const _hoisted_10 = {
|
38
|
+
key: 0,
|
39
|
+
class: "w-100 t-transp"
|
40
|
+
};
|
41
|
+
const _hoisted_11 = {
|
42
|
+
key: 1,
|
43
|
+
class: "w-100 t-transp"
|
44
|
+
};
|
45
|
+
const _hoisted_12 = {
|
46
|
+
key: 1,
|
47
|
+
class: "cols-2 pd-medium w-100 gap-small"
|
48
|
+
};
|
49
|
+
const _hoisted_13 = { class: "w-100 pd-small radius-small bg-white product-information" };
|
50
|
+
const _hoisted_14 = { class: "t-demi" };
|
51
|
+
const _hoisted_15 = { class: "w-max-33r" };
|
52
|
+
const _hoisted_16 = { class: "gap-thin flex flex-center flex-nowrap" };
|
53
|
+
const _hoisted_17 = {
|
54
|
+
key: 1,
|
55
|
+
class: "flex-center flex uppercase radius-big t-black w-max pd-small t-medium bg-grey h-3r w-100 mn-r-smallbutton"
|
56
|
+
};
|
57
|
+
const _hoisted_18 = { class: "gap-thin flex flex-center flex-nowrap" };
|
58
|
+
const _hoisted_19 = { class: "h-max pos-relative" };
|
13
59
|
const _sfc_main = {
|
14
60
|
__name: "Product",
|
15
61
|
setup(__props) {
|
@@ -18,23 +64,200 @@ const _sfc_main = {
|
|
18
64
|
route.meta.title.en = products.state.current.name;
|
19
65
|
route.meta.title.ru = products.state.current.name;
|
20
66
|
const product = vue.computed(() => products.state.current);
|
67
|
+
const images = vue.computed(() => products.state.current.images);
|
68
|
+
let rentDate = vue.ref({
|
69
|
+
start: null,
|
70
|
+
end: null
|
71
|
+
});
|
72
|
+
const tabProduct = vue.ref("description");
|
21
73
|
const text = {
|
22
|
-
|
74
|
+
en: {
|
75
|
+
addtoorder: "Add to Cart",
|
76
|
+
fastorder: "Fast Order"
|
77
|
+
},
|
78
|
+
ru: {
|
79
|
+
addtoorder: "Добавить в корзину",
|
80
|
+
fastorder: "Быстрый заказ"
|
81
|
+
}
|
23
82
|
};
|
83
|
+
const { t } = vueI18n.useI18n({ messages: text });
|
24
84
|
vue.onMounted(async () => {
|
25
85
|
await products.actions.read({ _id: route.params.product });
|
26
86
|
});
|
27
|
-
|
87
|
+
function validateToCard(product2) {
|
88
|
+
if (product2.quantity > 0) {
|
89
|
+
return false;
|
90
|
+
}
|
91
|
+
return true;
|
92
|
+
}
|
93
|
+
const isPopupVisible = vue.ref(false);
|
94
|
+
const openPopup = () => {
|
95
|
+
isPopupVisible.value = true;
|
96
|
+
};
|
97
|
+
const closePopup = () => {
|
98
|
+
isPopupVisible.value = false;
|
99
|
+
};
|
100
|
+
async function addToCart(product2) {
|
101
|
+
try {
|
102
|
+
if (shopcart.state.organization !== product2.owner.target) {
|
103
|
+
shopcart.state.organization = product2.owner.target;
|
104
|
+
shopcart.state.positions = [];
|
105
|
+
}
|
106
|
+
await shopcart.actions.addProductToCart(product2, product2.owner.target, rentDate);
|
107
|
+
return true;
|
108
|
+
} catch (error) {
|
109
|
+
console.error("Ошибка при добавлении товара в корзину:", error);
|
110
|
+
throw error;
|
111
|
+
}
|
112
|
+
}
|
28
113
|
return (_ctx, _cache) => {
|
29
114
|
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
|
30
|
-
product.value ? (vue.openBlock(), vue.createBlock(SectionProduct.default, {
|
31
|
-
key: 0,
|
32
|
-
product: product.value,
|
33
|
-
user: auth.state.user,
|
34
|
-
class: "pos-relative"
|
35
|
-
}, null, 8, ["product", "user"])) : vue.createCommentVNode("", true),
|
36
115
|
vue.createElementVNode("div", _hoisted_2, [
|
37
|
-
|
116
|
+
vue.createElementVNode("div", _hoisted_3, [
|
117
|
+
vue.createElementVNode("div", _hoisted_4, [
|
118
|
+
product.value && product.value.image3d ? (vue.openBlock(), vue.createBlock(Images360.default, {
|
119
|
+
key: 0,
|
120
|
+
class: "h-100 w-100",
|
121
|
+
imagePath: `/assets/images/products/${product.value.image3d}`,
|
122
|
+
imageCount: 36
|
123
|
+
}, null, 8, ["imagePath"])) : vue.createCommentVNode("", true),
|
124
|
+
images.value[0] && !product.value.image3d ? (vue.openBlock(), vue.createElementBlock("img", {
|
125
|
+
key: 1,
|
126
|
+
loading: "lazy",
|
127
|
+
class: "h-max h-max-15r bg-white radius-semi w-100",
|
128
|
+
style: { "object-fit": "contain" },
|
129
|
+
src: (_ctx.FILE_SERVER_URL || "") + images.value[0]
|
130
|
+
}, null, 8, _hoisted_5)) : vue.createCommentVNode("", true),
|
131
|
+
!images.value[0] && !product.value.image3d ? (vue.openBlock(), vue.createBlock(PlaceholderImage.default, {
|
132
|
+
key: 2,
|
133
|
+
class: "h-max-20r h-100 w-100",
|
134
|
+
style: { "object-fit": "cover" }
|
135
|
+
})) : vue.createCommentVNode("", true)
|
136
|
+
]),
|
137
|
+
images.value.length > 1 ? (vue.openBlock(), vue.createBlock(ImagesThumbnails.default, {
|
138
|
+
key: 0,
|
139
|
+
images: images.value,
|
140
|
+
class: "pd-semi pd-t-zero"
|
141
|
+
}, null, 8, ["images"])) : vue.createCommentVNode("", true)
|
142
|
+
]),
|
143
|
+
vue.createElementVNode("div", _hoisted_6, [
|
144
|
+
_ctx.accesses && _ctx.hasAccess(vue.unref(route).params._id, "products", "edit", _ctx.accesses) ? (vue.openBlock(), vue.createBlock(IconEdit.default, {
|
145
|
+
key: 0,
|
146
|
+
onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$router.push({
|
147
|
+
name: "ProductEdit",
|
148
|
+
params: {
|
149
|
+
_id: product.value.owner.target,
|
150
|
+
product: product.value._id
|
151
|
+
}
|
152
|
+
})),
|
153
|
+
class: "pos-absolute pos-t-regular pos-r-regular i-regular t-transp"
|
154
|
+
})) : vue.createCommentVNode("", true),
|
155
|
+
vue.createElementVNode("h2", _hoisted_7, vue.toDisplayString(product.value.name), 1),
|
156
|
+
vue.createVNode(Price.default, {
|
157
|
+
product: product.value,
|
158
|
+
size: "big",
|
159
|
+
class: "flex gap-thin flex-center pd-thin br-solid br-1px br-black-transp-10 w-max mn-b-medium"
|
160
|
+
}, null, 8, ["product"]),
|
161
|
+
product.value.description || product.value.specification ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_8, [
|
162
|
+
vue.createVNode(Tab.default, {
|
163
|
+
selected: tabProduct.value,
|
164
|
+
"onUpdate:selected": _cache[1] || (_cache[1] = ($event) => tabProduct.value = $event),
|
165
|
+
tabs: [
|
166
|
+
{ name: "Description", value: "description" },
|
167
|
+
{ name: "Specifications", value: "specifications" }
|
168
|
+
],
|
169
|
+
tabClass: "pd-thin bg-white radius-thin p-small uppercase t-medium",
|
170
|
+
class: "gap-micro bg-light pos-relative z-index-2 pd-thin br-solid br-b br-black-transp-10"
|
171
|
+
}, null, 8, ["selected"]),
|
172
|
+
vue.createVNode(vue.Transition, { name: "slide-fade" }, {
|
173
|
+
default: vue.withCtx(() => [
|
174
|
+
tabProduct.value === "description" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_9, [
|
175
|
+
product.value.description && !product.value.localization < 1 && !_ctx.recommendation ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_10, vue.toDisplayString(product.value.description), 1)) : vue.createCommentVNode("", true),
|
176
|
+
product.value.localization && product.value.localization.length > 1 && !_ctx.recommendation ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_11, vue.toDisplayString(vue.unref(t)("description")), 1)) : vue.createCommentVNode("", true)
|
177
|
+
])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_12, [
|
178
|
+
product.value.information.length > 0 ? (vue.openBlock(true), vue.createElementBlock(vue.Fragment, { key: 0 }, vue.renderList(product.value.information, (information) => {
|
179
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_13, [
|
180
|
+
vue.createElementVNode("p", _hoisted_14, vue.toDisplayString(information.name), 1),
|
181
|
+
vue.createElementVNode("p", null, vue.toDisplayString(information.value), 1)
|
182
|
+
]);
|
183
|
+
}), 256)) : vue.createCommentVNode("", true)
|
184
|
+
]))
|
185
|
+
]),
|
186
|
+
_: 1
|
187
|
+
})
|
188
|
+
])) : vue.createCommentVNode("", true),
|
189
|
+
vue.createElementVNode("div", _hoisted_15, [
|
190
|
+
product.value.quantity > 0 || product.value.listing === "rent" ? (vue.openBlock(), vue.createElementBlock("button", {
|
191
|
+
key: 0,
|
192
|
+
onClick: _cache[2] || (_cache[2] = ($event) => product.value.listing === "rent" ? openPopup() : addToCart(product.value)),
|
193
|
+
class: "cursor-pointer pd-small radius-big w-max mobile:w-100 bg-main button"
|
194
|
+
}, [
|
195
|
+
vue.createElementVNode("div", _hoisted_16, [
|
196
|
+
product.value.listing === "rent" ? (vue.openBlock(), vue.createBlock(IconShopcartAdd.default, {
|
197
|
+
key: 0,
|
198
|
+
class: "i-semi"
|
199
|
+
})) : vue.createCommentVNode("", true),
|
200
|
+
vue.createElementVNode("span", null, vue.toDisplayString(vue.unref(t)("addtoorder")), 1)
|
201
|
+
])
|
202
|
+
])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_17, " Out of Stock "))
|
203
|
+
]),
|
204
|
+
vue.createVNode(Popup.default, {
|
205
|
+
onClosePopup: closePopup,
|
206
|
+
isPopupOpen: isPopupVisible.value,
|
207
|
+
class: "radius-medium pd-medium bg-white o-hidden"
|
208
|
+
}, {
|
209
|
+
default: vue.withCtx(() => [
|
210
|
+
_cache[3] || (_cache[3] = vue.createElementVNode("h5", { class: "w-100 t-center mn-b-small" }, "Select Rent Period", -1)),
|
211
|
+
vue.createVNode(Calendar.default, {
|
212
|
+
date: vue.unref(rentDate),
|
213
|
+
allowRange: true,
|
214
|
+
class: "bg-light radius-small"
|
215
|
+
}, null, 8, ["date"]),
|
216
|
+
_cache[4] || (_cache[4] = vue.createElementVNode("p", { class: "flex flex-nowrap pd-t-small" }, [
|
217
|
+
vue.createElementVNode("span", { class: "w-100 t-transp" }, "$ 400 x 4 days"),
|
218
|
+
vue.createElementVNode("span", { class: "w-100 t-right" }, "$2000")
|
219
|
+
], -1)),
|
220
|
+
_cache[5] || (_cache[5] = vue.createElementVNode("p", { class: "flex flex-nowrap pd-t-small" }, [
|
221
|
+
vue.createElementVNode("span", { class: "w-100 t-transp" }, "Insurance Fee"),
|
222
|
+
vue.createElementVNode("span", { class: "w-100 t-right" }, "$200")
|
223
|
+
], -1)),
|
224
|
+
_cache[6] || (_cache[6] = vue.createElementVNode("p", { class: "flex flex-nowrap br-black-transp-10 br-solid br-b pd-b-small pd-t-small" }, [
|
225
|
+
vue.createElementVNode("span", { class: "w-100 t-transp" }, "VAT (20%)"),
|
226
|
+
vue.createElementVNode("span", { class: "w-100 t-right" }, "$300")
|
227
|
+
], -1)),
|
228
|
+
_cache[7] || (_cache[7] = vue.createElementVNode("p", { class: "p-big flex flex-nowrap pd-b-small pd-t-small" }, [
|
229
|
+
vue.createElementVNode("span", { class: "w-100 t-medium" }, "In Total"),
|
230
|
+
vue.createElementVNode("span", { class: "w-100 t-main t-medium t-right" }, "$2500")
|
231
|
+
], -1)),
|
232
|
+
product.value.quantity > 0 || product.value.listing === "rent" ? (vue.openBlock(), vue.createBlock(Button.default, {
|
233
|
+
key: 0,
|
234
|
+
submit: () => addToCart(product.value),
|
235
|
+
callback: () => closePopup(),
|
236
|
+
disabled: product.value.listing !== "rent" && validateToCard(product.value),
|
237
|
+
text: {
|
238
|
+
success: "Added",
|
239
|
+
error: "Error"
|
240
|
+
},
|
241
|
+
class: "h-3r w-100 bg-main button"
|
242
|
+
}, {
|
243
|
+
default: vue.withCtx(() => [
|
244
|
+
vue.createElementVNode("div", _hoisted_18, [
|
245
|
+
product.value.listing === "rent" ? (vue.openBlock(), vue.createBlock(IconShopcartAdd.default, {
|
246
|
+
key: 0,
|
247
|
+
class: "i-semi"
|
248
|
+
})) : vue.createCommentVNode("", true),
|
249
|
+
vue.createElementVNode("span", null, vue.toDisplayString(vue.unref(t)("addtoorder")), 1)
|
250
|
+
])
|
251
|
+
]),
|
252
|
+
_: 1
|
253
|
+
}, 8, ["submit", "callback", "disabled"])) : vue.createCommentVNode("", true)
|
254
|
+
]),
|
255
|
+
_: 1
|
256
|
+
}, 8, ["isPopupOpen"])
|
257
|
+
])
|
258
|
+
]),
|
259
|
+
vue.createElementVNode("div", _hoisted_19, [
|
260
|
+
_cache[8] || (_cache[8] = vue.createElementVNode("h3", { class: "pd-medium pd-b-small" }, "Most Popular", -1)),
|
38
261
|
vue.createVNode(PopularProducts.default)
|
39
262
|
])
|
40
263
|
]);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Product.vue.cjs","sources":["../../../../../../../src/modules/products/components/pages/Product.vue"],"sourcesContent":["<template>\n\t<div class=\"h-100 w-100 bg-white \">\n\t\t<!-- <Breadcrumbs class=\"bg-light radius-big pd-small\"/> -->\n\t\t<SectionProduct v-if=\"product\" :product=\"product\" :user=\"auth.state.user\" class=\"pos-relative\"/>\n\n\t\t<div class=\"h-max pos-relative\">\n\t\t <h3 class=\"pd-medium pd-b-small\">Most Popular</h3>\n\t\t\t<PopularProducts />\n\t\t</div>\n\t</div>\n</template>\n\n<script setup=\"props\">\n\t// Import components\n\t// import Breadcrumbs from '@pf/src/components/Breadcrumbs/Breadcrumbs.vue'\n\timport PopularProducts \tfrom '@pf/src/modules/products/components/sections/PopularProducts.vue'\n\timport SectionProduct from '@pf/src/modules/products/components/sections/SectionProduct.vue'\n\t// Import libs\n\timport { computed, onMounted } from 'vue'\n\timport { useRoute,useRouter } from 'vue-router'\n\timport { useI18n } from 'vue-i18n'\n\t\n import * as auth from '@pf/src/modules/auth/views/store/auth';\n \timport * as products from '@pf/src/modules/products/store/products';\n import * as categories from '@pf/src/modules/products/store/categories';\n\n\t// Accessing router and store\n\tconst route = useRoute()\n\tconst router = useRouter()\n\n\t\n\troute.meta.title.en = products.state.current.name\n\troute.meta.title.ru = products.state.current.name\n\n\t// Accessing state\n\tconst product = computed(() => products.state.current)\n\n\tconst text = {\n\t\tmessages: {\n\t\t}\n\t};\n\n\tonMounted(async ()=> {\n\t\tawait products.actions.read({_id: route.params.product});\n\n\t})\n\t\n\t// products.state.current.localization.forEach(localization => {\n \t// if (localization) text.messages[localization.locale].description = localization.text\n\t// })\n\n const { t } = useI18n(text)\n</script>\n\n<style lang=\"scss\">\n</style>\n"],"names":["useRoute","useRouter","products.state","computed","onMounted","products.actions","useI18n"],"mappings":";;;;;;;;;;;;;;;AA2BC,UAAM,QAAQA,UAAAA,SAAU;AACTC,wBAAW;AAG1B,UAAM,KAAK,MAAM,KAAKC,SAAc,MAAC,QAAQ;AAC7C,UAAM,KAAK,MAAM,KAAKA,SAAc,MAAC,QAAQ;AAG7C,UAAM,UAAUC,IAAAA,SAAS,MAAMD,SAAAA,MAAe,OAAO;AAErD,UAAM,OAAO;AAAA,MACZ,UAAU,CACT;AAAA,IACH;AAECE,QAAAA,UAAU,YAAW;AACpB,YAAMC,SAAAA,QAAiB,KAAK,EAAC,KAAK,MAAM,OAAO,QAAO,CAAC;AAAA,IAEzD,CAAE;AAMcC,YAAAA,QAAQ,IAAI;;;;;;;;;;;;;;;;;;"}
|
1
|
+
{"version":3,"file":"Product.vue.cjs","sources":["../../../../../../../src/modules/products/components/pages/Product.vue"],"sourcesContent":["<template>\n\t<div class=\"h-100 w-100 mobile:pd-thin pd-big bg-white \">\n\t\t<!-- <Breadcrumbs class=\"bg-light radius-big pd-small\"/> -->\n\t\t<div class=\"cols-2-1_2 w-100 gap-medium\">\n\t\t\n\t\t\t<div class=\"w-100 o-hidden bg-light radius-big flex-nowrap flex-column flex pos-relative\">\n\t\t\t\t<div class=\"pd-semi w-100 bg-light radius-semi o-hidden\">\n\t\t\t\t\t<!-- PRODUCT IMAGE -->\n\t\t\t\t\t<Images360\n\t\t\t\t\t\tv-if=\"product && product.image3d\"\n\t\t\t\t\t\tclass=\"h-100 w-100\"\n\t\t\t\t\t\t:imagePath=\"`/assets/images/products/${product.image3d}`\"\n\t\t\t\t\t\t:imageCount=\"36\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<img loading=\"lazy\" \n\t\t\t\t\t\tv-if=\"images[0] && !product.image3d\"\n\t\t\t\t\t\tclass=\"h-max h-max-15r bg-white radius-semi w-100\"\n\t\t\t\t\t\tstyle=\"object-fit: contain;\"\n\t\t\t\t\t\t:src=\"(FILE_SERVER_URL || '') + images[0]\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<PlaceholderImage\n\t\t\t\t\t\tv-if=\"!images[0] && !product.image3d\"\n\t\t\t\t\t\tclass=\"h-max-20r h-100 w-100\"\n\t\t\t\t\t\tstyle=\"object-fit: cover;\"\n\t\t\t\t\t/>\n\n\t\t\t\t</div>\n\n\t\t\t\t<ImagesThumbnails\n\t\t\t\t\tv-if=\"images.length > 1\"\n\t\t\t\t\t:images=\"images\"\n\t\t\t\t\tclass=\"pd-semi pd-t-zero\"\n\t\t\t\t/>\n\t\t\t</div>\n\n\t\t\t<div class=\"pos-relative w-100 h-100 flex-column flex-h-center flex\">\n\n\t\t\t\t<IconEdit\n\t\t\t\t\tv-if=\"accesses && hasAccess(route.params._id, 'products', 'edit', accesses)\"\n\t\t\t\t\t@click=\"$router.push({\n\t\t\t\t\t\tname: 'ProductEdit', \n\t\t\t\t\t\tparams: {\n\t\t\t\t\t\t\t_id: product.owner.target,\n\t\t\t\t\t\t\tproduct: product._id\n\t\t\t\t\t\t}\n\t\t\t\t\t})\" \n\t\t\t\t\tclass=\"pos-absolute pos-t-regular pos-r-regular i-regular t-transp\"\n\t\t\t\t/>\n\n\t\t\t\t<!-- Name -->\n\t\t\t\t<h2 class=\"w-100 h1-product mn-b-small\">{{ product.name }}</h2>\n\n\t\t\t\t<Price :product=\"product\" size=\"big\" class=\"flex gap-thin flex-center pd-thin br-solid br-1px br-black-transp-10 w-max mn-b-medium\" />\n\n\t\t\t\t<!-- Price -->\n\t\t\t\t<div v-if=\"product.description || product.specification\" class=\"h-min-5r o-hidden radius-small bg-light mn-b-medium pos-relative\">\n\t\t\t\t\t<Tab \n\t\t\t\t\t\tv-model:selected=\"tabProduct\"\n\t\t\t\t\t\t:tabs=\"[\n\t\t\t\t\t\t\t{name: 'Description', value: 'description'},\n\t\t\t\t\t\t\t{name: 'Specifications', value: 'specifications'}\n\t\t\t\t\t\t]\"\n\t\t\t\t\t\ttabClass=\"pd-thin bg-white radius-thin p-small uppercase t-medium\"\n\t\t\t\t\t\tclass=\"gap-micro bg-light pos-relative z-index-2 pd-thin br-solid br-b br-black-transp-10\"\n\t\t\t\t\t/>\n\t\t\t\t\t<transition name=\"slide-fade\">\n\t\t\t\t\t\t<div v-if=\"tabProduct === 'description'\" class=\" pd-medium\">\n\t\t\t\t\t\t\t<p v-if=\"product.description && !product.localization < 1 && !recommendation\" class=\"w-100 t-transp\">\n\t\t\t\t\t\t\t\t{{ product.description }}\n\t\t\t\t\t\t\t</p>\n\n\t\t\t\t\t\t\t<p v-if=\"product.localization && product.localization.length > 1 && !recommendation\" class=\"w-100 t-transp\">\n\t\t\t\t\t\t\t\t{{ t('description') }}\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div \n\t\t\t\t\t\t\tv-else\n\t\t\t\t\t\t\tclass=\"cols-2 pd-medium w-100 gap-small\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div \n\t\t\t\t\t\t\t\tv-if=\"product.information.length > 0\" \n\t\t\t\t\t\t\t\tv-for=\"information in product.information\" \n\t\t\t\t\t\t\t\tclass=\"w-100 pd-small radius-small bg-white product-information\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<p class=\"t-demi\">{{ information.name }}</p>\n\t\t\t\t\t\t\t\t<p>{{ information.value }}</p>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</transition>\n\t\t\t\t</div>\n\n\t\t\t\t\t\t\t<!-- Modifications -->\n\t\t\t\t<!-- <div v-if=\"product.modifications.length > 0\" class=\"flex-nojustify flex\">\n\t\t\t\t\t<SelectElement v-if=\"sizes2.length > 0\" :elements=\"sizes2\" :selected=\"product.selectedSize\" class=\"mn-r-medium\" />\n\t\t\t\t</div> -->\n\n\t\t\t\t<!-- Actions -->\n\t\t\t\t<div class=\"w-max-33r\">\n\t\t\t\t <button\n\t\t\t\t v-if=\"product.quantity > 0 || product.listing === 'rent'\"\n\t\t\t\t @click=\"product.listing === 'rent' ? openPopup() : addToCart(product)\" \n\t\t\t\t class=\"cursor-pointer pd-small radius-big w-max mobile:w-100 bg-main button\"\n\t\t\t\t > \n\t\t\t\t <div class=\"gap-thin flex flex-center flex-nowrap\">\n\t\t\t\t <IconShopcartAdd v-if=\"product.listing === 'rent'\" class=\"i-semi\" />\n\t\t\t\t <span>{{ t('addtoorder') }}</span>\n\t\t\t\t </div>\n\t\t\t\t </button>\n\n\t\t\t\t <div \n\t\t\t\t v-else \n\t\t\t\t class=\"flex-center flex uppercase radius-big t-black w-max pd-small t-medium bg-grey h-3r w-100 mn-r-smallbutton\"\n\t\t\t\t >\n\t\t\t\t Out of Stock\n\t\t\t\t </div>\n\t\t\t\t</div>\n\t\t\t\t<!-- Shopcart Adding Popup -->\n\t\t\t\t<Popup @close-popup=\"closePopup\" :isPopupOpen=\"isPopupVisible\" class=\"radius-medium pd-medium bg-white o-hidden\">\n\t\t <h5 class=\"w-100 t-center mn-b-small\">Select Rent Period</h5>\n\t\t <Calendar\n\t\t \t:date=\"rentDate\"\n\t\t \t:allowRange=\"true\"\n\t\t \tclass=\"bg-light radius-small\"\n\t\t />\n\n\t\t <p class=\"flex flex-nowrap pd-t-small\">\n\t\t \t<span class=\"w-100 t-transp\">$ 400 x 4 days</span>\n\t\t \t<span class=\"w-100 t-right\">$2000</span>\n\t\t </p>\n\t\t <p class=\"flex flex-nowrap pd-t-small\">\n\t\t \t<span class=\"w-100 t-transp\">Insurance Fee</span>\n\t\t \t<span class=\"w-100 t-right\">$200</span>\n\t\t </p>\n\t\t <p class=\"flex flex-nowrap br-black-transp-10 br-solid br-b pd-b-small pd-t-small\">\n\t\t \t<span class=\"w-100 t-transp\">VAT (20%)</span>\n\t\t \t<span class=\"w-100 t-right\">$300</span>\n\t\t </p>\n\t\t \n\t\t \t<p class=\"p-big flex flex-nowrap pd-b-small pd-t-small\">\n\t\t \t<span class=\"w-100 t-medium \">In Total</span>\n\t\t \t<span class=\"w-100 t-main t-medium t-right\">$2500</span>\n\t \t</p>\n\n\t \t<Button\n\t\t\t\t v-if=\"product.quantity > 0 || product.listing === 'rent'\"\n\t\t\t\t :submit=\"() => addToCart(product)\" \n\t\t\t\t :callback=\"() => closePopup()\"\n\t\t\t\t :disabled=\"product.listing !== 'rent' && validateToCard(product)\"\n\t\t\t\t :text=\"{\n\t\t\t\t success: 'Added',\n\t\t\t\t error: 'Error'\n\t\t\t\t }\"\n\t\t\t\t class=\"h-3r w-100 bg-main button\"\n\t\t\t\t > \n\t\t\t\t <div class=\"gap-thin flex flex-center flex-nowrap\">\n\t\t\t\t <IconShopcartAdd v-if=\"product.listing === 'rent'\" class=\"i-semi\" />\n\t\t\t\t <span>{{ t('addtoorder') }}</span>\n\t\t\t\t </div>\n\t\t\t\t </Button>\n\t\t </Popup>\n\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=\"h-max pos-relative\">\n\t\t <h3 class=\"pd-medium pd-b-small\">Most Popular</h3>\n\t\t\t<PopularProducts />\n\t\t</div>\n\t</div>\n</template>\n\n<script setup=\"props\">\n\t// Import components\n\t// import Breadcrumbs from '@pf/src/components/Breadcrumbs/Breadcrumbs.vue'\n\timport Button from '@pf/src/components/Button/Button.vue'\n\timport Popup from '@pf/src/components/Popup/Popup.vue'\n\timport Tab from '@pf/src/components/Tab/Tab.vue'\n\timport Calendar from '@pf/src/components/DatePicker/Calendar.vue'\n\n\timport IconEdit from '@pf/src/modules/icons/navigation/IconEdit.vue'\n\timport IconShopcartAdd from '@pf/src/modules/icons/actions/IconShopcartAdd.vue'\n\n\timport PlaceholderImage from '@pf/src/modules/icons/placeholders/PlaceholderImage.vue'\n\n\timport Images360 \tfrom '@pf/src/modules/products/components/blocks/Images360.vue'\n\timport ImagesThumbnails from \"@pf/src/modules/products/components/blocks/ImagesThumbnails.vue\";\n\n\timport Price from '@pf/src/modules/products/components/elements/Price.vue'\n\n\timport PopularProducts \tfrom '@pf/src/modules/products/components/sections/PopularProducts.vue'\n\timport SectionProduct from '@pf/src/modules/products/components/sections/SectionProduct.vue'\n\t// Import libs\n\timport { computed, ref, onMounted } from 'vue'\n\timport { useRoute,useRouter } from 'vue-router'\n\timport { useI18n } from 'vue-i18n'\n\t\n import * as auth from '@pf/src/modules/auth/views/store/auth';\n \timport * as products from '@pf/src/modules/products/store/products';\n import * as categories from '@pf/src/modules/products/store/categories';\n\n\timport * as shopcart from '@pf/src/modules/orders/store/shopcart';\n\n\t// Accessing router and store\n\tconst route = useRoute()\n\tconst router = useRouter()\n\t\n\troute.meta.title.en = products.state.current.name\n\troute.meta.title.ru = products.state.current.name\n\n\t// Accessing state\n\tconst product = computed(() => products.state.current)\n\tconst images = computed(() => products.state.current.images)\n\n\tlet rentDate = ref({\n\t\tstart: null,\n\t\tend: null\n\t})\n\n\n\tconst tabProduct = ref('description')\n\n\tconst text = {\n\t en: {\n\t \taddtoorder: 'Add to Cart',\n\t fastorder: 'Fast Order'\n\t },\n\t ru: {\n\t \taddtoorder: 'Добавить в корзину',\n\t fastorder: 'Быстрый заказ'\n\t }\n\t}\n\n const { t } = useI18n({messages: text})\n\n\tonMounted(async ()=> {\n\t\tawait products.actions.read({_id: route.params.product});\n\t})\n\n\t// Methods\n\tfunction validateToCard(product) {\n\t if (product.quantity > 0) {\n\t return false\n\t }\n\t return true\n\t}\n\n\tconst isPopupVisible = ref(false);\n\n\tconst openPopup = () => {\n\t isPopupVisible.value = true;\n\t};\n\n\tconst closePopup = () => {\n\t isPopupVisible.value = false;\n\t};\n\n\tasync function addToCart(product) {\n try {\n if (shopcart.state.organization !== product.owner.target) {\n shopcart.state.organization = product.owner.target\n shopcart.state.positions = []\n }\n \n await shopcart.actions.addProductToCart(product, product.owner.target, rentDate)\n\n return true\n } catch (error) {\n console.error('Ошибка при добавлении товара в корзину:', error)\n throw error\n }\n\t}\n</script>\n\n<style lang=\"scss\">\n</style>\n"],"names":["useRoute","useRouter","products.state","computed","ref","useI18n","onMounted","products.actions","product","shopcart.state","shopcart.actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8MC,UAAM,QAAQA,UAAAA,SAAU;AACTC,wBAAW;AAE1B,UAAM,KAAK,MAAM,KAAKC,SAAc,MAAC,QAAQ;AAC7C,UAAM,KAAK,MAAM,KAAKA,SAAc,MAAC,QAAQ;AAG7C,UAAM,UAAUC,IAAAA,SAAS,MAAMD,SAAAA,MAAe,OAAO;AACrD,UAAM,SAASC,IAAQ,SAAC,MAAMD,SAAAA,MAAe,QAAQ,MAAM;AAE3D,QAAI,WAAWE,IAAAA,IAAI;AAAA,MAClB,OAAO;AAAA,MACP,KAAK;AAAA,IACP,CAAE;AAGD,UAAM,aAAaA,IAAG,IAAC,aAAa;AAEpC,UAAM,OAAO;AAAA,MACX,IAAI;AAAA,QACH,YAAY;AAAA,QACX,WAAW;AAAA,MACZ;AAAA,MACD,IAAI;AAAA,QACH,YAAY;AAAA,QACX,WAAW;AAAA,MACZ;AAAA,IACF;AAEA,UAAM,EAAE,EAAC,IAAKC,QAAAA,QAAQ,EAAC,UAAU,KAAI,CAAC;AAEvCC,QAAAA,UAAU,YAAW;AACpB,YAAMC,SAAAA,QAAiB,KAAK,EAAC,KAAK,MAAM,OAAO,QAAO,CAAC;AAAA,IACzD,CAAE;AAGD,aAAS,eAAeC,UAAS;AAC/B,UAAIA,SAAQ,WAAW,GAAG;AACxB,eAAO;AAAA,MACR;AACD,aAAO;AAAA,IACR;AAED,UAAM,iBAAiBJ,QAAI,KAAK;AAEhC,UAAM,YAAY,MAAM;AACtB,qBAAe,QAAQ;AAAA,IAC1B;AAEC,UAAM,aAAa,MAAM;AACvB,qBAAe,QAAQ;AAAA,IAC1B;AAEC,mBAAe,UAAUI,UAAS;AAC/B,UAAI;AACF,YAAIC,SAAc,MAAC,iBAAiBD,SAAQ,MAAM,QAAQ;AACxDC,mBAAAA,MAAe,eAAeD,SAAQ,MAAM;AAC5CC,mBAAc,MAAC,YAAY,CAAE;AAAA,QAC9B;AAED,cAAMC,SAAAA,QAAiB,iBAAiBF,UAASA,SAAQ,MAAM,QAAQ,QAAQ;AAE/E,eAAO;AAAA,MACR,SAAQ,OAAO;AACd,gBAAQ,MAAM,2CAA2C,KAAK;AAC9D,cAAM;AAAA,MACP;AAAA,IACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
@@ -1,13 +1,59 @@
|
|
1
|
-
import { computed, onMounted, openBlock, createElementBlock, createBlock, createCommentVNode,
|
2
|
-
import _sfc_main$
|
3
|
-
import _sfc_main$
|
1
|
+
import { computed, ref, onMounted, openBlock, createElementBlock, createElementVNode, createBlock, createCommentVNode, unref, toDisplayString, createVNode, Transition, withCtx, Fragment, renderList } from "vue";
|
2
|
+
import _sfc_main$7 from "../../../../components/Button/Button.vue.js";
|
3
|
+
import _sfc_main$5 from "../../../../components/Popup/Popup.vue.js";
|
4
|
+
import _sfc_main$3 from "../../../../components/Tab/Tab.vue.js";
|
5
|
+
import _sfc_main$6 from "../../../../components/DatePicker/Calendar.vue2.js";
|
6
|
+
import _sfc_main$1 from "../../../icons/navigation/IconEdit.vue.js";
|
7
|
+
import _sfc_main$4 from "../../../icons/actions/IconShopcartAdd.vue.js";
|
8
|
+
import PlaceholderImage from "../../../icons/placeholders/PlaceholderImage.vue.js";
|
9
|
+
import Images360 from "../blocks/Images360.vue.js";
|
10
|
+
import ImagesThumbnails from "../blocks/ImagesThumbnails.vue.js";
|
11
|
+
import _sfc_main$2 from "../elements/Price.vue.js";
|
12
|
+
import _sfc_main$8 from "../sections/PopularProducts.vue.js";
|
13
|
+
/* empty css */
|
4
14
|
import { useRoute, useRouter } from "vue-router";
|
5
15
|
import { useI18n } from "vue-i18n";
|
6
|
-
import { state as state$1 } from "../../../
|
16
|
+
import { state as state$1, actions as actions$1 } from "../../../orders/store/shopcart.js";
|
17
|
+
import "../../../auth/views/store/auth.js";
|
7
18
|
import { state, actions } from "../../store/products.js";
|
8
19
|
import "../../store/categories.js";
|
9
|
-
const _hoisted_1 = { class: "h-100 w-100 bg-white" };
|
10
|
-
const _hoisted_2 = { class: "
|
20
|
+
const _hoisted_1 = { class: "h-100 w-100 mobile:pd-thin pd-big bg-white" };
|
21
|
+
const _hoisted_2 = { class: "cols-2-1_2 w-100 gap-medium" };
|
22
|
+
const _hoisted_3 = { class: "w-100 o-hidden bg-light radius-big flex-nowrap flex-column flex pos-relative" };
|
23
|
+
const _hoisted_4 = { class: "pd-semi w-100 bg-light radius-semi o-hidden" };
|
24
|
+
const _hoisted_5 = ["src"];
|
25
|
+
const _hoisted_6 = { class: "pos-relative w-100 h-100 flex-column flex-h-center flex" };
|
26
|
+
const _hoisted_7 = { class: "w-100 h1-product mn-b-small" };
|
27
|
+
const _hoisted_8 = {
|
28
|
+
key: 1,
|
29
|
+
class: "h-min-5r o-hidden radius-small bg-light mn-b-medium pos-relative"
|
30
|
+
};
|
31
|
+
const _hoisted_9 = {
|
32
|
+
key: 0,
|
33
|
+
class: "pd-medium"
|
34
|
+
};
|
35
|
+
const _hoisted_10 = {
|
36
|
+
key: 0,
|
37
|
+
class: "w-100 t-transp"
|
38
|
+
};
|
39
|
+
const _hoisted_11 = {
|
40
|
+
key: 1,
|
41
|
+
class: "w-100 t-transp"
|
42
|
+
};
|
43
|
+
const _hoisted_12 = {
|
44
|
+
key: 1,
|
45
|
+
class: "cols-2 pd-medium w-100 gap-small"
|
46
|
+
};
|
47
|
+
const _hoisted_13 = { class: "w-100 pd-small radius-small bg-white product-information" };
|
48
|
+
const _hoisted_14 = { class: "t-demi" };
|
49
|
+
const _hoisted_15 = { class: "w-max-33r" };
|
50
|
+
const _hoisted_16 = { class: "gap-thin flex flex-center flex-nowrap" };
|
51
|
+
const _hoisted_17 = {
|
52
|
+
key: 1,
|
53
|
+
class: "flex-center flex uppercase radius-big t-black w-max pd-small t-medium bg-grey h-3r w-100 mn-r-smallbutton"
|
54
|
+
};
|
55
|
+
const _hoisted_18 = { class: "gap-thin flex flex-center flex-nowrap" };
|
56
|
+
const _hoisted_19 = { class: "h-max pos-relative" };
|
11
57
|
const _sfc_main = {
|
12
58
|
__name: "Product",
|
13
59
|
setup(__props) {
|
@@ -16,24 +62,201 @@ const _sfc_main = {
|
|
16
62
|
route.meta.title.en = state.current.name;
|
17
63
|
route.meta.title.ru = state.current.name;
|
18
64
|
const product = computed(() => state.current);
|
65
|
+
const images = computed(() => state.current.images);
|
66
|
+
let rentDate = ref({
|
67
|
+
start: null,
|
68
|
+
end: null
|
69
|
+
});
|
70
|
+
const tabProduct = ref("description");
|
19
71
|
const text = {
|
20
|
-
|
72
|
+
en: {
|
73
|
+
addtoorder: "Add to Cart",
|
74
|
+
fastorder: "Fast Order"
|
75
|
+
},
|
76
|
+
ru: {
|
77
|
+
addtoorder: "Добавить в корзину",
|
78
|
+
fastorder: "Быстрый заказ"
|
79
|
+
}
|
21
80
|
};
|
81
|
+
const { t } = useI18n({ messages: text });
|
22
82
|
onMounted(async () => {
|
23
83
|
await actions.read({ _id: route.params.product });
|
24
84
|
});
|
25
|
-
|
85
|
+
function validateToCard(product2) {
|
86
|
+
if (product2.quantity > 0) {
|
87
|
+
return false;
|
88
|
+
}
|
89
|
+
return true;
|
90
|
+
}
|
91
|
+
const isPopupVisible = ref(false);
|
92
|
+
const openPopup = () => {
|
93
|
+
isPopupVisible.value = true;
|
94
|
+
};
|
95
|
+
const closePopup = () => {
|
96
|
+
isPopupVisible.value = false;
|
97
|
+
};
|
98
|
+
async function addToCart(product2) {
|
99
|
+
try {
|
100
|
+
if (state$1.organization !== product2.owner.target) {
|
101
|
+
state$1.organization = product2.owner.target;
|
102
|
+
state$1.positions = [];
|
103
|
+
}
|
104
|
+
await actions$1.addProductToCart(product2, product2.owner.target, rentDate);
|
105
|
+
return true;
|
106
|
+
} catch (error) {
|
107
|
+
console.error("Ошибка при добавлении товара в корзину:", error);
|
108
|
+
throw error;
|
109
|
+
}
|
110
|
+
}
|
26
111
|
return (_ctx, _cache) => {
|
27
112
|
return openBlock(), createElementBlock("div", _hoisted_1, [
|
28
|
-
product.value ? (openBlock(), createBlock(_sfc_main$1, {
|
29
|
-
key: 0,
|
30
|
-
product: product.value,
|
31
|
-
user: state$1.user,
|
32
|
-
class: "pos-relative"
|
33
|
-
}, null, 8, ["product", "user"])) : createCommentVNode("", true),
|
34
113
|
createElementVNode("div", _hoisted_2, [
|
35
|
-
|
36
|
-
|
114
|
+
createElementVNode("div", _hoisted_3, [
|
115
|
+
createElementVNode("div", _hoisted_4, [
|
116
|
+
product.value && product.value.image3d ? (openBlock(), createBlock(Images360, {
|
117
|
+
key: 0,
|
118
|
+
class: "h-100 w-100",
|
119
|
+
imagePath: `/assets/images/products/${product.value.image3d}`,
|
120
|
+
imageCount: 36
|
121
|
+
}, null, 8, ["imagePath"])) : createCommentVNode("", true),
|
122
|
+
images.value[0] && !product.value.image3d ? (openBlock(), createElementBlock("img", {
|
123
|
+
key: 1,
|
124
|
+
loading: "lazy",
|
125
|
+
class: "h-max h-max-15r bg-white radius-semi w-100",
|
126
|
+
style: { "object-fit": "contain" },
|
127
|
+
src: (_ctx.FILE_SERVER_URL || "") + images.value[0]
|
128
|
+
}, null, 8, _hoisted_5)) : createCommentVNode("", true),
|
129
|
+
!images.value[0] && !product.value.image3d ? (openBlock(), createBlock(PlaceholderImage, {
|
130
|
+
key: 2,
|
131
|
+
class: "h-max-20r h-100 w-100",
|
132
|
+
style: { "object-fit": "cover" }
|
133
|
+
})) : createCommentVNode("", true)
|
134
|
+
]),
|
135
|
+
images.value.length > 1 ? (openBlock(), createBlock(ImagesThumbnails, {
|
136
|
+
key: 0,
|
137
|
+
images: images.value,
|
138
|
+
class: "pd-semi pd-t-zero"
|
139
|
+
}, null, 8, ["images"])) : createCommentVNode("", true)
|
140
|
+
]),
|
141
|
+
createElementVNode("div", _hoisted_6, [
|
142
|
+
_ctx.accesses && _ctx.hasAccess(unref(route).params._id, "products", "edit", _ctx.accesses) ? (openBlock(), createBlock(_sfc_main$1, {
|
143
|
+
key: 0,
|
144
|
+
onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$router.push({
|
145
|
+
name: "ProductEdit",
|
146
|
+
params: {
|
147
|
+
_id: product.value.owner.target,
|
148
|
+
product: product.value._id
|
149
|
+
}
|
150
|
+
})),
|
151
|
+
class: "pos-absolute pos-t-regular pos-r-regular i-regular t-transp"
|
152
|
+
})) : createCommentVNode("", true),
|
153
|
+
createElementVNode("h2", _hoisted_7, toDisplayString(product.value.name), 1),
|
154
|
+
createVNode(_sfc_main$2, {
|
155
|
+
product: product.value,
|
156
|
+
size: "big",
|
157
|
+
class: "flex gap-thin flex-center pd-thin br-solid br-1px br-black-transp-10 w-max mn-b-medium"
|
158
|
+
}, null, 8, ["product"]),
|
159
|
+
product.value.description || product.value.specification ? (openBlock(), createElementBlock("div", _hoisted_8, [
|
160
|
+
createVNode(_sfc_main$3, {
|
161
|
+
selected: tabProduct.value,
|
162
|
+
"onUpdate:selected": _cache[1] || (_cache[1] = ($event) => tabProduct.value = $event),
|
163
|
+
tabs: [
|
164
|
+
{ name: "Description", value: "description" },
|
165
|
+
{ name: "Specifications", value: "specifications" }
|
166
|
+
],
|
167
|
+
tabClass: "pd-thin bg-white radius-thin p-small uppercase t-medium",
|
168
|
+
class: "gap-micro bg-light pos-relative z-index-2 pd-thin br-solid br-b br-black-transp-10"
|
169
|
+
}, null, 8, ["selected"]),
|
170
|
+
createVNode(Transition, { name: "slide-fade" }, {
|
171
|
+
default: withCtx(() => [
|
172
|
+
tabProduct.value === "description" ? (openBlock(), createElementBlock("div", _hoisted_9, [
|
173
|
+
product.value.description && !product.value.localization < 1 && !_ctx.recommendation ? (openBlock(), createElementBlock("p", _hoisted_10, toDisplayString(product.value.description), 1)) : createCommentVNode("", true),
|
174
|
+
product.value.localization && product.value.localization.length > 1 && !_ctx.recommendation ? (openBlock(), createElementBlock("p", _hoisted_11, toDisplayString(unref(t)("description")), 1)) : createCommentVNode("", true)
|
175
|
+
])) : (openBlock(), createElementBlock("div", _hoisted_12, [
|
176
|
+
product.value.information.length > 0 ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(product.value.information, (information) => {
|
177
|
+
return openBlock(), createElementBlock("div", _hoisted_13, [
|
178
|
+
createElementVNode("p", _hoisted_14, toDisplayString(information.name), 1),
|
179
|
+
createElementVNode("p", null, toDisplayString(information.value), 1)
|
180
|
+
]);
|
181
|
+
}), 256)) : createCommentVNode("", true)
|
182
|
+
]))
|
183
|
+
]),
|
184
|
+
_: 1
|
185
|
+
})
|
186
|
+
])) : createCommentVNode("", true),
|
187
|
+
createElementVNode("div", _hoisted_15, [
|
188
|
+
product.value.quantity > 0 || product.value.listing === "rent" ? (openBlock(), createElementBlock("button", {
|
189
|
+
key: 0,
|
190
|
+
onClick: _cache[2] || (_cache[2] = ($event) => product.value.listing === "rent" ? openPopup() : addToCart(product.value)),
|
191
|
+
class: "cursor-pointer pd-small radius-big w-max mobile:w-100 bg-main button"
|
192
|
+
}, [
|
193
|
+
createElementVNode("div", _hoisted_16, [
|
194
|
+
product.value.listing === "rent" ? (openBlock(), createBlock(_sfc_main$4, {
|
195
|
+
key: 0,
|
196
|
+
class: "i-semi"
|
197
|
+
})) : createCommentVNode("", true),
|
198
|
+
createElementVNode("span", null, toDisplayString(unref(t)("addtoorder")), 1)
|
199
|
+
])
|
200
|
+
])) : (openBlock(), createElementBlock("div", _hoisted_17, " Out of Stock "))
|
201
|
+
]),
|
202
|
+
createVNode(_sfc_main$5, {
|
203
|
+
onClosePopup: closePopup,
|
204
|
+
isPopupOpen: isPopupVisible.value,
|
205
|
+
class: "radius-medium pd-medium bg-white o-hidden"
|
206
|
+
}, {
|
207
|
+
default: withCtx(() => [
|
208
|
+
_cache[3] || (_cache[3] = createElementVNode("h5", { class: "w-100 t-center mn-b-small" }, "Select Rent Period", -1)),
|
209
|
+
createVNode(_sfc_main$6, {
|
210
|
+
date: unref(rentDate),
|
211
|
+
allowRange: true,
|
212
|
+
class: "bg-light radius-small"
|
213
|
+
}, null, 8, ["date"]),
|
214
|
+
_cache[4] || (_cache[4] = createElementVNode("p", { class: "flex flex-nowrap pd-t-small" }, [
|
215
|
+
createElementVNode("span", { class: "w-100 t-transp" }, "$ 400 x 4 days"),
|
216
|
+
createElementVNode("span", { class: "w-100 t-right" }, "$2000")
|
217
|
+
], -1)),
|
218
|
+
_cache[5] || (_cache[5] = createElementVNode("p", { class: "flex flex-nowrap pd-t-small" }, [
|
219
|
+
createElementVNode("span", { class: "w-100 t-transp" }, "Insurance Fee"),
|
220
|
+
createElementVNode("span", { class: "w-100 t-right" }, "$200")
|
221
|
+
], -1)),
|
222
|
+
_cache[6] || (_cache[6] = createElementVNode("p", { class: "flex flex-nowrap br-black-transp-10 br-solid br-b pd-b-small pd-t-small" }, [
|
223
|
+
createElementVNode("span", { class: "w-100 t-transp" }, "VAT (20%)"),
|
224
|
+
createElementVNode("span", { class: "w-100 t-right" }, "$300")
|
225
|
+
], -1)),
|
226
|
+
_cache[7] || (_cache[7] = createElementVNode("p", { class: "p-big flex flex-nowrap pd-b-small pd-t-small" }, [
|
227
|
+
createElementVNode("span", { class: "w-100 t-medium" }, "In Total"),
|
228
|
+
createElementVNode("span", { class: "w-100 t-main t-medium t-right" }, "$2500")
|
229
|
+
], -1)),
|
230
|
+
product.value.quantity > 0 || product.value.listing === "rent" ? (openBlock(), createBlock(_sfc_main$7, {
|
231
|
+
key: 0,
|
232
|
+
submit: () => addToCart(product.value),
|
233
|
+
callback: () => closePopup(),
|
234
|
+
disabled: product.value.listing !== "rent" && validateToCard(product.value),
|
235
|
+
text: {
|
236
|
+
success: "Added",
|
237
|
+
error: "Error"
|
238
|
+
},
|
239
|
+
class: "h-3r w-100 bg-main button"
|
240
|
+
}, {
|
241
|
+
default: withCtx(() => [
|
242
|
+
createElementVNode("div", _hoisted_18, [
|
243
|
+
product.value.listing === "rent" ? (openBlock(), createBlock(_sfc_main$4, {
|
244
|
+
key: 0,
|
245
|
+
class: "i-semi"
|
246
|
+
})) : createCommentVNode("", true),
|
247
|
+
createElementVNode("span", null, toDisplayString(unref(t)("addtoorder")), 1)
|
248
|
+
])
|
249
|
+
]),
|
250
|
+
_: 1
|
251
|
+
}, 8, ["submit", "callback", "disabled"])) : createCommentVNode("", true)
|
252
|
+
]),
|
253
|
+
_: 1
|
254
|
+
}, 8, ["isPopupOpen"])
|
255
|
+
])
|
256
|
+
]),
|
257
|
+
createElementVNode("div", _hoisted_19, [
|
258
|
+
_cache[8] || (_cache[8] = createElementVNode("h3", { class: "pd-medium pd-b-small" }, "Most Popular", -1)),
|
259
|
+
createVNode(_sfc_main$8)
|
37
260
|
])
|
38
261
|
]);
|
39
262
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Product.vue.js","sources":["../../../../../../../src/modules/products/components/pages/Product.vue"],"sourcesContent":["<template>\n\t<div class=\"h-100 w-100 bg-white \">\n\t\t<!-- <Breadcrumbs class=\"bg-light radius-big pd-small\"/> -->\n\t\t<SectionProduct v-if=\"product\" :product=\"product\" :user=\"auth.state.user\" class=\"pos-relative\"/>\n\n\t\t<div class=\"h-max pos-relative\">\n\t\t <h3 class=\"pd-medium pd-b-small\">Most Popular</h3>\n\t\t\t<PopularProducts />\n\t\t</div>\n\t</div>\n</template>\n\n<script setup=\"props\">\n\t// Import components\n\t// import Breadcrumbs from '@pf/src/components/Breadcrumbs/Breadcrumbs.vue'\n\timport PopularProducts \tfrom '@pf/src/modules/products/components/sections/PopularProducts.vue'\n\timport SectionProduct from '@pf/src/modules/products/components/sections/SectionProduct.vue'\n\t// Import libs\n\timport { computed, onMounted } from 'vue'\n\timport { useRoute,useRouter } from 'vue-router'\n\timport { useI18n } from 'vue-i18n'\n\t\n import * as auth from '@pf/src/modules/auth/views/store/auth';\n \timport * as products from '@pf/src/modules/products/store/products';\n import * as categories from '@pf/src/modules/products/store/categories';\n\n\t// Accessing router and store\n\tconst route = useRoute()\n\tconst router = useRouter()\n\n\t\n\troute.meta.title.en = products.state.current.name\n\troute.meta.title.ru = products.state.current.name\n\n\t// Accessing state\n\tconst product = computed(() => products.state.current)\n\n\tconst text = {\n\t\tmessages: {\n\t\t}\n\t};\n\n\tonMounted(async ()=> {\n\t\tawait products.actions.read({_id: route.params.product});\n\n\t})\n\t\n\t// products.state.current.localization.forEach(localization => {\n \t// if (localization) text.messages[localization.locale].description = localization.text\n\t// })\n\n const { t } = useI18n(text)\n</script>\n\n<style lang=\"scss\">\n</style>\n"],"names":["products.state","products.actions"],"mappings":";;;;;;;;;;;;;AA2BC,UAAM,QAAQ,SAAU;AACT,cAAW;AAG1B,UAAM,KAAK,MAAM,KAAKA,MAAe,QAAQ;AAC7C,UAAM,KAAK,MAAM,KAAKA,MAAe,QAAQ;AAG7C,UAAM,UAAU,SAAS,MAAMA,MAAe,OAAO;AAErD,UAAM,OAAO;AAAA,MACZ,UAAU,CACT;AAAA,IACH;AAEC,cAAU,YAAW;AACpB,YAAMC,QAAiB,KAAK,EAAC,KAAK,MAAM,OAAO,QAAO,CAAC;AAAA,IAEzD,CAAE;AAMc,YAAQ,IAAI;;;;;;;;;;;;;;;;;"}
|
1
|
+
{"version":3,"file":"Product.vue.js","sources":["../../../../../../../src/modules/products/components/pages/Product.vue"],"sourcesContent":["<template>\n\t<div class=\"h-100 w-100 mobile:pd-thin pd-big bg-white \">\n\t\t<!-- <Breadcrumbs class=\"bg-light radius-big pd-small\"/> -->\n\t\t<div class=\"cols-2-1_2 w-100 gap-medium\">\n\t\t\n\t\t\t<div class=\"w-100 o-hidden bg-light radius-big flex-nowrap flex-column flex pos-relative\">\n\t\t\t\t<div class=\"pd-semi w-100 bg-light radius-semi o-hidden\">\n\t\t\t\t\t<!-- PRODUCT IMAGE -->\n\t\t\t\t\t<Images360\n\t\t\t\t\t\tv-if=\"product && product.image3d\"\n\t\t\t\t\t\tclass=\"h-100 w-100\"\n\t\t\t\t\t\t:imagePath=\"`/assets/images/products/${product.image3d}`\"\n\t\t\t\t\t\t:imageCount=\"36\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<img loading=\"lazy\" \n\t\t\t\t\t\tv-if=\"images[0] && !product.image3d\"\n\t\t\t\t\t\tclass=\"h-max h-max-15r bg-white radius-semi w-100\"\n\t\t\t\t\t\tstyle=\"object-fit: contain;\"\n\t\t\t\t\t\t:src=\"(FILE_SERVER_URL || '') + images[0]\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<PlaceholderImage\n\t\t\t\t\t\tv-if=\"!images[0] && !product.image3d\"\n\t\t\t\t\t\tclass=\"h-max-20r h-100 w-100\"\n\t\t\t\t\t\tstyle=\"object-fit: cover;\"\n\t\t\t\t\t/>\n\n\t\t\t\t</div>\n\n\t\t\t\t<ImagesThumbnails\n\t\t\t\t\tv-if=\"images.length > 1\"\n\t\t\t\t\t:images=\"images\"\n\t\t\t\t\tclass=\"pd-semi pd-t-zero\"\n\t\t\t\t/>\n\t\t\t</div>\n\n\t\t\t<div class=\"pos-relative w-100 h-100 flex-column flex-h-center flex\">\n\n\t\t\t\t<IconEdit\n\t\t\t\t\tv-if=\"accesses && hasAccess(route.params._id, 'products', 'edit', accesses)\"\n\t\t\t\t\t@click=\"$router.push({\n\t\t\t\t\t\tname: 'ProductEdit', \n\t\t\t\t\t\tparams: {\n\t\t\t\t\t\t\t_id: product.owner.target,\n\t\t\t\t\t\t\tproduct: product._id\n\t\t\t\t\t\t}\n\t\t\t\t\t})\" \n\t\t\t\t\tclass=\"pos-absolute pos-t-regular pos-r-regular i-regular t-transp\"\n\t\t\t\t/>\n\n\t\t\t\t<!-- Name -->\n\t\t\t\t<h2 class=\"w-100 h1-product mn-b-small\">{{ product.name }}</h2>\n\n\t\t\t\t<Price :product=\"product\" size=\"big\" class=\"flex gap-thin flex-center pd-thin br-solid br-1px br-black-transp-10 w-max mn-b-medium\" />\n\n\t\t\t\t<!-- Price -->\n\t\t\t\t<div v-if=\"product.description || product.specification\" class=\"h-min-5r o-hidden radius-small bg-light mn-b-medium pos-relative\">\n\t\t\t\t\t<Tab \n\t\t\t\t\t\tv-model:selected=\"tabProduct\"\n\t\t\t\t\t\t:tabs=\"[\n\t\t\t\t\t\t\t{name: 'Description', value: 'description'},\n\t\t\t\t\t\t\t{name: 'Specifications', value: 'specifications'}\n\t\t\t\t\t\t]\"\n\t\t\t\t\t\ttabClass=\"pd-thin bg-white radius-thin p-small uppercase t-medium\"\n\t\t\t\t\t\tclass=\"gap-micro bg-light pos-relative z-index-2 pd-thin br-solid br-b br-black-transp-10\"\n\t\t\t\t\t/>\n\t\t\t\t\t<transition name=\"slide-fade\">\n\t\t\t\t\t\t<div v-if=\"tabProduct === 'description'\" class=\" pd-medium\">\n\t\t\t\t\t\t\t<p v-if=\"product.description && !product.localization < 1 && !recommendation\" class=\"w-100 t-transp\">\n\t\t\t\t\t\t\t\t{{ product.description }}\n\t\t\t\t\t\t\t</p>\n\n\t\t\t\t\t\t\t<p v-if=\"product.localization && product.localization.length > 1 && !recommendation\" class=\"w-100 t-transp\">\n\t\t\t\t\t\t\t\t{{ t('description') }}\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div \n\t\t\t\t\t\t\tv-else\n\t\t\t\t\t\t\tclass=\"cols-2 pd-medium w-100 gap-small\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div \n\t\t\t\t\t\t\t\tv-if=\"product.information.length > 0\" \n\t\t\t\t\t\t\t\tv-for=\"information in product.information\" \n\t\t\t\t\t\t\t\tclass=\"w-100 pd-small radius-small bg-white product-information\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<p class=\"t-demi\">{{ information.name }}</p>\n\t\t\t\t\t\t\t\t<p>{{ information.value }}</p>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</transition>\n\t\t\t\t</div>\n\n\t\t\t\t\t\t\t<!-- Modifications -->\n\t\t\t\t<!-- <div v-if=\"product.modifications.length > 0\" class=\"flex-nojustify flex\">\n\t\t\t\t\t<SelectElement v-if=\"sizes2.length > 0\" :elements=\"sizes2\" :selected=\"product.selectedSize\" class=\"mn-r-medium\" />\n\t\t\t\t</div> -->\n\n\t\t\t\t<!-- Actions -->\n\t\t\t\t<div class=\"w-max-33r\">\n\t\t\t\t <button\n\t\t\t\t v-if=\"product.quantity > 0 || product.listing === 'rent'\"\n\t\t\t\t @click=\"product.listing === 'rent' ? openPopup() : addToCart(product)\" \n\t\t\t\t class=\"cursor-pointer pd-small radius-big w-max mobile:w-100 bg-main button\"\n\t\t\t\t > \n\t\t\t\t <div class=\"gap-thin flex flex-center flex-nowrap\">\n\t\t\t\t <IconShopcartAdd v-if=\"product.listing === 'rent'\" class=\"i-semi\" />\n\t\t\t\t <span>{{ t('addtoorder') }}</span>\n\t\t\t\t </div>\n\t\t\t\t </button>\n\n\t\t\t\t <div \n\t\t\t\t v-else \n\t\t\t\t class=\"flex-center flex uppercase radius-big t-black w-max pd-small t-medium bg-grey h-3r w-100 mn-r-smallbutton\"\n\t\t\t\t >\n\t\t\t\t Out of Stock\n\t\t\t\t </div>\n\t\t\t\t</div>\n\t\t\t\t<!-- Shopcart Adding Popup -->\n\t\t\t\t<Popup @close-popup=\"closePopup\" :isPopupOpen=\"isPopupVisible\" class=\"radius-medium pd-medium bg-white o-hidden\">\n\t\t <h5 class=\"w-100 t-center mn-b-small\">Select Rent Period</h5>\n\t\t <Calendar\n\t\t \t:date=\"rentDate\"\n\t\t \t:allowRange=\"true\"\n\t\t \tclass=\"bg-light radius-small\"\n\t\t />\n\n\t\t <p class=\"flex flex-nowrap pd-t-small\">\n\t\t \t<span class=\"w-100 t-transp\">$ 400 x 4 days</span>\n\t\t \t<span class=\"w-100 t-right\">$2000</span>\n\t\t </p>\n\t\t <p class=\"flex flex-nowrap pd-t-small\">\n\t\t \t<span class=\"w-100 t-transp\">Insurance Fee</span>\n\t\t \t<span class=\"w-100 t-right\">$200</span>\n\t\t </p>\n\t\t <p class=\"flex flex-nowrap br-black-transp-10 br-solid br-b pd-b-small pd-t-small\">\n\t\t \t<span class=\"w-100 t-transp\">VAT (20%)</span>\n\t\t \t<span class=\"w-100 t-right\">$300</span>\n\t\t </p>\n\t\t \n\t\t \t<p class=\"p-big flex flex-nowrap pd-b-small pd-t-small\">\n\t\t \t<span class=\"w-100 t-medium \">In Total</span>\n\t\t \t<span class=\"w-100 t-main t-medium t-right\">$2500</span>\n\t \t</p>\n\n\t \t<Button\n\t\t\t\t v-if=\"product.quantity > 0 || product.listing === 'rent'\"\n\t\t\t\t :submit=\"() => addToCart(product)\" \n\t\t\t\t :callback=\"() => closePopup()\"\n\t\t\t\t :disabled=\"product.listing !== 'rent' && validateToCard(product)\"\n\t\t\t\t :text=\"{\n\t\t\t\t success: 'Added',\n\t\t\t\t error: 'Error'\n\t\t\t\t }\"\n\t\t\t\t class=\"h-3r w-100 bg-main button\"\n\t\t\t\t > \n\t\t\t\t <div class=\"gap-thin flex flex-center flex-nowrap\">\n\t\t\t\t <IconShopcartAdd v-if=\"product.listing === 'rent'\" class=\"i-semi\" />\n\t\t\t\t <span>{{ t('addtoorder') }}</span>\n\t\t\t\t </div>\n\t\t\t\t </Button>\n\t\t </Popup>\n\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=\"h-max pos-relative\">\n\t\t <h3 class=\"pd-medium pd-b-small\">Most Popular</h3>\n\t\t\t<PopularProducts />\n\t\t</div>\n\t</div>\n</template>\n\n<script setup=\"props\">\n\t// Import components\n\t// import Breadcrumbs from '@pf/src/components/Breadcrumbs/Breadcrumbs.vue'\n\timport Button from '@pf/src/components/Button/Button.vue'\n\timport Popup from '@pf/src/components/Popup/Popup.vue'\n\timport Tab from '@pf/src/components/Tab/Tab.vue'\n\timport Calendar from '@pf/src/components/DatePicker/Calendar.vue'\n\n\timport IconEdit from '@pf/src/modules/icons/navigation/IconEdit.vue'\n\timport IconShopcartAdd from '@pf/src/modules/icons/actions/IconShopcartAdd.vue'\n\n\timport PlaceholderImage from '@pf/src/modules/icons/placeholders/PlaceholderImage.vue'\n\n\timport Images360 \tfrom '@pf/src/modules/products/components/blocks/Images360.vue'\n\timport ImagesThumbnails from \"@pf/src/modules/products/components/blocks/ImagesThumbnails.vue\";\n\n\timport Price from '@pf/src/modules/products/components/elements/Price.vue'\n\n\timport PopularProducts \tfrom '@pf/src/modules/products/components/sections/PopularProducts.vue'\n\timport SectionProduct from '@pf/src/modules/products/components/sections/SectionProduct.vue'\n\t// Import libs\n\timport { computed, ref, onMounted } from 'vue'\n\timport { useRoute,useRouter } from 'vue-router'\n\timport { useI18n } from 'vue-i18n'\n\t\n import * as auth from '@pf/src/modules/auth/views/store/auth';\n \timport * as products from '@pf/src/modules/products/store/products';\n import * as categories from '@pf/src/modules/products/store/categories';\n\n\timport * as shopcart from '@pf/src/modules/orders/store/shopcart';\n\n\t// Accessing router and store\n\tconst route = useRoute()\n\tconst router = useRouter()\n\t\n\troute.meta.title.en = products.state.current.name\n\troute.meta.title.ru = products.state.current.name\n\n\t// Accessing state\n\tconst product = computed(() => products.state.current)\n\tconst images = computed(() => products.state.current.images)\n\n\tlet rentDate = ref({\n\t\tstart: null,\n\t\tend: null\n\t})\n\n\n\tconst tabProduct = ref('description')\n\n\tconst text = {\n\t en: {\n\t \taddtoorder: 'Add to Cart',\n\t fastorder: 'Fast Order'\n\t },\n\t ru: {\n\t \taddtoorder: 'Добавить в корзину',\n\t fastorder: 'Быстрый заказ'\n\t }\n\t}\n\n const { t } = useI18n({messages: text})\n\n\tonMounted(async ()=> {\n\t\tawait products.actions.read({_id: route.params.product});\n\t})\n\n\t// Methods\n\tfunction validateToCard(product) {\n\t if (product.quantity > 0) {\n\t return false\n\t }\n\t return true\n\t}\n\n\tconst isPopupVisible = ref(false);\n\n\tconst openPopup = () => {\n\t isPopupVisible.value = true;\n\t};\n\n\tconst closePopup = () => {\n\t isPopupVisible.value = false;\n\t};\n\n\tasync function addToCart(product) {\n try {\n if (shopcart.state.organization !== product.owner.target) {\n shopcart.state.organization = product.owner.target\n shopcart.state.positions = []\n }\n \n await shopcart.actions.addProductToCart(product, product.owner.target, rentDate)\n\n return true\n } catch (error) {\n console.error('Ошибка при добавлении товара в корзину:', error)\n throw error\n }\n\t}\n</script>\n\n<style lang=\"scss\">\n</style>\n"],"names":["products.state","products.actions","product","shopcart.state","shopcart.actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8MC,UAAM,QAAQ,SAAU;AACT,cAAW;AAE1B,UAAM,KAAK,MAAM,KAAKA,MAAe,QAAQ;AAC7C,UAAM,KAAK,MAAM,KAAKA,MAAe,QAAQ;AAG7C,UAAM,UAAU,SAAS,MAAMA,MAAe,OAAO;AACrD,UAAM,SAAS,SAAS,MAAMA,MAAe,QAAQ,MAAM;AAE3D,QAAI,WAAW,IAAI;AAAA,MAClB,OAAO;AAAA,MACP,KAAK;AAAA,IACP,CAAE;AAGD,UAAM,aAAa,IAAI,aAAa;AAEpC,UAAM,OAAO;AAAA,MACX,IAAI;AAAA,QACH,YAAY;AAAA,QACX,WAAW;AAAA,MACZ;AAAA,MACD,IAAI;AAAA,QACH,YAAY;AAAA,QACX,WAAW;AAAA,MACZ;AAAA,IACF;AAEA,UAAM,EAAE,EAAC,IAAK,QAAQ,EAAC,UAAU,KAAI,CAAC;AAEvC,cAAU,YAAW;AACpB,YAAMC,QAAiB,KAAK,EAAC,KAAK,MAAM,OAAO,QAAO,CAAC;AAAA,IACzD,CAAE;AAGD,aAAS,eAAeC,UAAS;AAC/B,UAAIA,SAAQ,WAAW,GAAG;AACxB,eAAO;AAAA,MACR;AACD,aAAO;AAAA,IACR;AAED,UAAM,iBAAiB,IAAI,KAAK;AAEhC,UAAM,YAAY,MAAM;AACtB,qBAAe,QAAQ;AAAA,IAC1B;AAEC,UAAM,aAAa,MAAM;AACvB,qBAAe,QAAQ;AAAA,IAC1B;AAEC,mBAAe,UAAUA,UAAS;AAC/B,UAAI;AACF,YAAIC,QAAe,iBAAiBD,SAAQ,MAAM,QAAQ;AACxDC,kBAAe,eAAeD,SAAQ,MAAM;AAC5CC,kBAAe,YAAY,CAAE;AAAA,QAC9B;AAED,cAAMC,UAAiB,iBAAiBF,UAASA,SAAQ,MAAM,QAAQ,QAAQ;AAE/E,eAAO;AAAA,MACR,SAAQ,OAAO;AACd,gBAAQ,MAAM,2CAA2C,KAAK;AAC9D,cAAM;AAAA,MACP;AAAA,IACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|