@ozdao/martyrs 0.2.480 → 0.2.482
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/README.md +4 -13
- package/dist/{Media-CKk33U4A.js → Media-JBERcJWj.js} +1 -1
- package/dist/{Media-B1ZP3D7B.cjs → Media-p7Q8ZAQM.cjs} +1 -1
- package/dist/{abac-XF1JVCLI.cjs → abac-6LjoG9u-.cjs} +107 -26
- package/dist/{abac-BuL5pUZ4.js → abac-Cf_9lCSh.js} +107 -26
- package/dist/builder.cjs +8 -12
- package/dist/builder.js +8 -12
- package/dist/globals.server.cjs +1 -1
- package/dist/globals.server.js +1 -1
- package/dist/{main-BhAiwmnI.js → main-AtCVQKF9.js} +2855 -4162
- package/dist/main-B-we7C0w.cjs +11 -0
- package/dist/martyrs/src/components/Button/{Button.vue.cjs → Button.vue2.cjs} +2 -2
- package/dist/martyrs/src/components/Button/Button.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Button/{Button.vue.js → Button.vue2.js} +2 -2
- package/dist/martyrs/src/components/Button/{Button.vue.cjs.map → Button.vue2.js.map} +1 -1
- package/dist/martyrs/src/components/Checkbox/Checkbox.vue.cjs +28 -7
- package/dist/martyrs/src/components/Checkbox/Checkbox.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Checkbox/Checkbox.vue.js +29 -8
- package/dist/martyrs/src/components/Checkbox/Checkbox.vue.js.map +1 -1
- package/dist/martyrs/src/components/Chips/Chips.vue2.cjs +5 -8
- package/dist/martyrs/src/components/Chips/Chips.vue2.cjs.map +1 -1
- package/dist/martyrs/src/components/Chips/Chips.vue2.js +6 -9
- package/dist/martyrs/src/components/Chips/Chips.vue2.js.map +1 -1
- package/dist/martyrs/src/components/Feed/Carousel.vue.cjs +84 -0
- package/dist/martyrs/src/components/Feed/Carousel.vue.cjs.map +1 -0
- package/dist/martyrs/src/components/Feed/Carousel.vue.js +84 -0
- package/dist/martyrs/src/components/Feed/Carousel.vue.js.map +1 -0
- package/dist/martyrs/src/components/Feed/Feed.vue.cjs +4 -4
- package/dist/martyrs/src/components/Feed/Feed.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.js +4 -4
- package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
- package/dist/martyrs/src/components/Field/Field.vue.cjs +2 -1
- package/dist/martyrs/src/components/Field/Field.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Field/Field.vue.js +2 -1
- package/dist/martyrs/src/components/Field/Field.vue.js.map +1 -1
- package/dist/martyrs/src/components/PhotoViewer/PhotoViewer.vue.cjs +203 -151
- package/dist/martyrs/src/components/PhotoViewer/PhotoViewer.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/PhotoViewer/PhotoViewer.vue.js +204 -152
- package/dist/martyrs/src/components/PhotoViewer/PhotoViewer.vue.js.map +1 -1
- package/dist/martyrs/src/components/Popup/{Popup.vue.cjs → Popup.vue2.cjs} +2 -2
- package/dist/martyrs/src/components/Popup/Popup.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Popup/{Popup.vue.js → Popup.vue2.js} +2 -2
- package/dist/martyrs/src/components/Popup/{Popup.vue.cjs.map → Popup.vue2.js.map} +1 -1
- package/dist/martyrs/src/components/Radio/Radio.vue.cjs +2 -2
- package/dist/martyrs/src/components/Radio/Radio.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Radio/Radio.vue.js +2 -2
- package/dist/martyrs/src/components/Radio/Radio.vue.js.map +1 -1
- package/dist/martyrs/src/components/Skeleton/Skeleton.vue.cjs +4 -3
- package/dist/martyrs/src/components/Skeleton/Skeleton.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Skeleton/Skeleton.vue.js +4 -3
- package/dist/martyrs/src/components/Skeleton/Skeleton.vue.js.map +1 -1
- package/dist/martyrs/src/components/Slider/{Slider.native.vue.cjs → Slider.vue.cjs} +22 -80
- package/dist/martyrs/src/components/Slider/Slider.vue.cjs.map +1 -0
- package/dist/martyrs/src/components/Slider/{Slider.native.vue.js → Slider.vue.js} +23 -81
- package/dist/martyrs/src/components/Slider/Slider.vue.js.map +1 -0
- package/dist/martyrs/src/components/Status/Status.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Status/Status.vue.js.map +1 -1
- package/dist/martyrs/src/components/Tooltip/Tooltip.vue2.cjs +4 -2
- package/dist/martyrs/src/components/Tooltip/Tooltip.vue2.cjs.map +1 -1
- package/dist/martyrs/src/components/Tooltip/Tooltip.vue2.js +4 -2
- package/dist/martyrs/src/components/Tooltip/Tooltip.vue2.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +3 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +4 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.cjs +22 -149
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +24 -151
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.cjs +77 -0
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +77 -0
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js.map +1 -0
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.cjs +121 -0
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +121 -0
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js.map +1 -0
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditSidebar.vue.cjs +38 -0
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditSidebar.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditSidebar.vue.js +38 -0
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditSidebar.vue.js.map +1 -0
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/router/users.cjs +23 -16
- package/dist/martyrs/src/modules/auth/views/router/users.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/router/users.js +23 -16
- package/dist/martyrs/src/modules/auth/views/router/users.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/blocks/FooterBlogpost.vue.cjs +3 -3
- package/dist/martyrs/src/modules/community/components/blocks/FooterBlogpost.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/community/components/blocks/FooterBlogpost.vue.js +3 -3
- package/dist/martyrs/src/modules/community/components/blocks/FooterBlogpost.vue.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +6 -6
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs +5 -4
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +5 -4
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +2 -2
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +2 -2
- package/dist/martyrs/src/modules/community/components/sections/Comment.vue.cjs +92 -62
- package/dist/martyrs/src/modules/community/components/sections/Comment.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/community/components/sections/Comment.vue.js +93 -63
- package/dist/martyrs/src/modules/community/components/sections/Comment.vue.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/sections/Comments.vue.cjs +82 -53
- package/dist/martyrs/src/modules/community/components/sections/Comments.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/community/components/sections/Comments.vue.js +82 -53
- package/dist/martyrs/src/modules/community/components/sections/Comments.vue.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/sections/HotPosts.vue.cjs +2 -6
- package/dist/martyrs/src/modules/community/components/sections/HotPosts.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/community/components/sections/HotPosts.vue.js +2 -6
- package/dist/martyrs/src/modules/community/components/sections/HotPosts.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +2 -2
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +2 -2
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs +2 -2
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +2 -2
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.cjs +3 -9
- package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.js +3 -9
- package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.js.map +1 -1
- package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.cjs +1 -1
- package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.js +5 -5
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +2 -2
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +10 -10
- package/dist/martyrs/src/modules/globals/globals.client.cjs +2 -0
- package/dist/martyrs/src/modules/globals/globals.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/globals.client.js +2 -0
- package/dist/martyrs/src/modules/globals/globals.client.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/AlertDialog.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/AlertDialog.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +2 -2
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +2 -2
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupAuth.vue.cjs +84 -0
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupAuth.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupAuth.vue.js +84 -0
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupAuth.vue.js.map +1 -0
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs +2 -2
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js +2 -2
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +2 -2
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +2 -2
- package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/NavigationBar.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/NavigationBar.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/mixins/mixins.cjs +17 -0
- package/dist/martyrs/src/modules/globals/views/mixins/mixins.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/mixins/mixins.js +17 -0
- package/dist/martyrs/src/modules/globals/views/mixins/mixins.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/plugins/popup.auth.plugin.cjs +70 -0
- package/dist/martyrs/src/modules/globals/views/plugins/popup.auth.plugin.cjs.map +1 -0
- package/dist/martyrs/src/modules/globals/views/plugins/popup.auth.plugin.js +70 -0
- package/dist/martyrs/src/modules/globals/views/plugins/popup.auth.plugin.js.map +1 -0
- package/dist/martyrs/src/modules/icons/entities/IconList.vue.cjs +35 -0
- package/dist/martyrs/src/modules/icons/entities/IconList.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/icons/entities/IconList.vue.js +35 -0
- package/dist/martyrs/src/modules/icons/entities/IconList.vue.js.map +1 -0
- package/dist/martyrs/src/modules/icons/navigation/IconCheck.vue.cjs +1 -3
- package/dist/martyrs/src/modules/icons/navigation/IconCheck.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/navigation/IconCheck.vue.js +1 -3
- package/dist/martyrs/src/modules/icons/navigation/IconCheck.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/navigation/IconDoubleCheck.vue.cjs +1 -3
- package/dist/martyrs/src/modules/icons/navigation/IconDoubleCheck.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/navigation/IconDoubleCheck.vue.js +1 -3
- package/dist/martyrs/src/modules/icons/navigation/IconDoubleCheck.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/navigation/IconLike.vue.cjs +1 -3
- package/dist/martyrs/src/modules/icons/navigation/IconLike.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/navigation/IconLike.vue.js +1 -3
- package/dist/martyrs/src/modules/icons/navigation/IconLike.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/navigation/IconMute.vue.cjs +1 -3
- package/dist/martyrs/src/modules/icons/navigation/IconMute.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/navigation/IconMute.vue.js +1 -3
- package/dist/martyrs/src/modules/icons/navigation/IconMute.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/navigation/IconPause.vue.cjs +1 -3
- package/dist/martyrs/src/modules/icons/navigation/IconPause.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/navigation/IconPause.vue.js +1 -3
- package/dist/martyrs/src/modules/icons/navigation/IconPause.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/navigation/IconPlay.vue.cjs +21 -20
- package/dist/martyrs/src/modules/icons/navigation/IconPlay.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/navigation/IconPlay.vue.js +21 -20
- package/dist/martyrs/src/modules/icons/navigation/IconPlay.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/navigation/IconRefresh.vue.cjs +1 -3
- package/dist/martyrs/src/modules/icons/navigation/IconRefresh.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/navigation/IconRefresh.vue.js +1 -3
- package/dist/martyrs/src/modules/icons/navigation/IconRefresh.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/navigation/IconShuffle.vue.cjs +6 -13
- package/dist/martyrs/src/modules/icons/navigation/IconShuffle.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/navigation/IconShuffle.vue.js +6 -13
- package/dist/martyrs/src/modules/icons/navigation/IconShuffle.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/navigation/IconUnMute.vue.cjs +1 -3
- package/dist/martyrs/src/modules/icons/navigation/IconUnMute.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/navigation/IconUnMute.vue.js +1 -3
- package/dist/martyrs/src/modules/icons/navigation/IconUnMute.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/navigation/IconVolume.vue.cjs +1 -3
- package/dist/martyrs/src/modules/icons/navigation/IconVolume.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/navigation/IconVolume.vue.js +1 -3
- package/dist/martyrs/src/modules/icons/navigation/IconVolume.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.cjs +1 -3
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js +41 -43
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js.map +1 -1
- package/dist/martyrs/src/modules/notifications/components/blocks/NotificationItem.vue.cjs +8 -8
- package/dist/martyrs/src/modules/notifications/components/blocks/NotificationItem.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/notifications/components/blocks/NotificationItem.vue.js +8 -8
- package/dist/martyrs/src/modules/notifications/components/blocks/NotificationItem.vue.js.map +1 -1
- package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.cjs +50 -51
- package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js +51 -52
- package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +2 -2
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +2 -2
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.cjs +7 -4
- package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.js +18 -15
- package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.js.map +1 -1
- package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.cjs +1 -1
- package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.cjs +2 -2
- package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.cjs +7 -2
- package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.js +8 -3
- package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.cjs +11 -12
- package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.js +12 -13
- package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.cjs +33 -24
- package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.js +36 -27
- package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/ProductVariants.vue.cjs +4 -4
- package/dist/martyrs/src/modules/products/components/blocks/ProductVariants.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/ProductVariants.vue.js +4 -4
- package/dist/martyrs/src/modules/products/components/blocks/ProductVariants.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/elements/Price.vue.cjs +7 -5
- package/dist/martyrs/src/modules/products/components/elements/Price.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/elements/Price.vue.js +7 -5
- package/dist/martyrs/src/modules/products/components/elements/Price.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +58 -41
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +60 -43
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +105 -85
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +107 -87
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/sections/EditIngredients.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditIngredients.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.cjs +145 -0
- package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.js +145 -0
- package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.js.map +1 -0
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.cjs +46 -31
- package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js +50 -35
- package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/ProductsPopular.vue.cjs +43 -0
- package/dist/martyrs/src/modules/products/components/sections/ProductsPopular.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/products/components/sections/ProductsPopular.vue.js +43 -0
- package/dist/martyrs/src/modules/products/components/sections/ProductsPopular.vue.js.map +1 -0
- package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.cjs +131 -0
- package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +131 -0
- package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js.map +1 -0
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +1 -1
- package/dist/martyrs/src/modules/products/products.client.cjs +3 -3
- package/dist/martyrs/src/modules/products/products.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/products.client.js +3 -3
- package/dist/martyrs/src/modules/products/products.client.js.map +1 -1
- package/dist/martyrs/src/modules/products/store/products.cjs +4 -0
- package/dist/martyrs/src/modules/products/store/products.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/store/products.js +4 -0
- package/dist/martyrs/src/modules/products/store/products.js.map +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs +2 -2
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +2 -2
- package/dist/martyrs/src/modules/spots/components/pages/Map.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.cjs +2 -2
- package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +2 -2
- package/dist/martyrs.cjs.js +1 -1
- package/dist/martyrs.css +1 -1
- package/dist/martyrs.es.js +1 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/utils.cjs +1 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/utils.js +1 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/utils.cjs +1 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/utils.js +1 -1
- package/dist/organizations.server.cjs +1 -1
- package/dist/organizations.server.js +1 -1
- package/dist/products.server.cjs +111 -34
- package/dist/products.server.js +111 -34
- package/dist/style.css +196 -170
- package/package.json +1 -1
- package/src/.martyrs/chunks.json +325 -0
- package/src/.martyrs/filemap.json +6802 -0
- package/src/.martyrs/semantic-analysis.json +307 -0
- package/src/.martyrs/toc.json +14 -0
- package/src/builder/rspack/rspack.config.api.js +8 -11
- package/src/components/Button/Button.vue +2 -2
- package/src/components/Checkbox/Checkbox.vue +28 -16
- package/src/components/Chips/Chips.vue +4 -4
- package/src/components/Feed/Carousel.vue +72 -0
- package/src/components/Feed/Feed.vue +2 -2
- package/src/components/Field/Field.vue +1 -0
- package/src/components/PhotoViewer/PhotoViewer.vue +307 -220
- package/src/components/Radio/Radio.vue +2 -10
- package/src/components/Skeleton/Skeleton.vue +9 -12
- package/src/components/Slider/Slider.vue +220 -100
- package/src/components/Status/Status.vue +0 -1
- package/src/components/Tooltip/Tooltip.vue +2 -2
- package/src/modules/auth/views/components/pages/Profile.vue +1 -1
- package/src/modules/auth/views/components/pages/ProfileEdit.old.vue +189 -0
- package/src/modules/auth/views/components/pages/ProfileEdit.vue +19 -182
- package/src/modules/auth/views/components/pages/ProfileEditAccount.vue +72 -0
- package/src/modules/auth/views/components/pages/ProfileEditProfile.vue +110 -0
- package/src/modules/auth/views/components/pages/ProfileEditSidebar.vue +28 -0
- package/src/modules/auth/views/router/users.js +23 -12
- package/src/modules/community/components/blocks/FooterBlogpost.vue +3 -3
- package/src/modules/community/components/pages/BlogPost.vue +2 -1
- package/src/modules/community/components/sections/Comment.vue +161 -57
- package/src/modules/community/components/sections/Comments.vue +120 -63
- package/src/modules/community/components/sections/HotPosts.vue +7 -7
- package/src/modules/events/components/sections/EventsHot.vue +26 -33
- package/src/modules/globals/controllers/classes/abac/abac.core.js +3 -1
- package/src/modules/globals/controllers/classes/abac/abac.fields.js +126 -42
- package/src/modules/globals/controllers/classes/abac/v2/abac-core-fixed.js +313 -0
- package/src/modules/globals/controllers/classes/abac/v2/abac-express-fixed.js +276 -0
- package/src/modules/globals/controllers/classes/abac/v2/abac-fields-fixed.js +422 -0
- package/src/modules/globals/controllers/classes/abac/v2/abac-main-fixed.js +295 -0
- package/src/modules/globals/controllers/classes/abac/v2/abac-policies-fixed.js +316 -0
- package/src/modules/globals/controllers/classes/abac/v2/abac-ws-fixed.js +237 -0
- package/src/modules/globals/globals.client.js +2 -0
- package/src/modules/globals/views/components/blocks/CardFooter.vue +3 -3
- package/src/modules/globals/views/components/blocks/CardHeader.vue +1 -1
- package/src/modules/globals/views/components/blocks/PopupAuth.vue +66 -0
- package/src/modules/globals/views/mixins/mixins.js +37 -17
- package/src/modules/globals/views/plugins/popup.auth.plugin.js +77 -0
- package/src/modules/icons/entities/IconList.vue +14 -0
- package/src/modules/icons/navigation/IconCheck.vue +1 -3
- package/src/modules/icons/navigation/IconDoubleCheck.vue +1 -3
- package/src/modules/icons/navigation/IconLike.vue +1 -3
- package/src/modules/icons/navigation/IconMute.vue +1 -3
- package/src/modules/icons/navigation/IconPause.vue +1 -3
- package/src/modules/icons/navigation/IconPlay.vue +12 -15
- package/src/modules/icons/navigation/IconRefresh.vue +1 -3
- package/src/modules/icons/navigation/IconShuffle.vue +11 -26
- package/src/modules/icons/navigation/IconUnMute.vue +1 -3
- package/src/modules/icons/navigation/IconVolume.vue +1 -3
- package/src/modules/icons/pages/IconsPage.vue +0 -2
- package/src/modules/music/components/pages/AlbumDetail.vue +2 -2
- package/src/modules/music/components/pages/PlaylistDetail.vue +2 -2
- package/src/modules/music/components/pages/TrackDetail.vue +1 -1
- package/src/modules/music/components/player/MusicPlayer.vue +2 -2
- package/src/modules/notifications/components/blocks/NotificationItem.vue +6 -51
- package/src/modules/notifications/components/elements/NotificationBadge.vue +53 -97
- package/src/modules/organizations/configs/navigation.organization.config.js +8 -4
- package/src/modules/products/components/blocks/CardProduct.vue +8 -2
- package/src/modules/products/components/blocks/ProductDiscounts.vue +3 -4
- package/src/modules/products/components/blocks/ProductImages.vue +32 -23
- package/src/modules/products/components/blocks/ProductVariants.vue +6 -4
- package/src/modules/products/components/elements/Price.vue +3 -3
- package/src/modules/products/components/pages/Product.vue +32 -26
- package/src/modules/products/components/pages/ProductEdit.vue +95 -72
- package/src/modules/products/components/sections/EditRecommended.vue +131 -0
- package/src/modules/products/components/sections/ProductConfigurator.vue +35 -21
- package/src/modules/products/components/sections/ProductsPopular.vue +44 -0
- package/src/modules/products/components/sections/ProductsRecommended.vue +134 -0
- package/src/modules/products/controllers/configs/products.lookup.config.js +20 -15
- package/src/modules/products/controllers/products.controller.js +7 -22
- package/src/modules/products/models/category.model.js +28 -1
- package/src/modules/products/models/leftover.model.js +32 -0
- package/src/modules/products/models/product.model.js +37 -1
- package/src/modules/products/models/variant.model.js +35 -0
- package/src/modules/products/products.client.js +3 -3
- package/src/modules/products/routes/products.routes.js +1 -0
- package/src/modules/products/store/products.js +4 -0
- package/src/styles/base/all.scss +0 -38
- package/src/styles/base/shadow_transitions_hover_refactor.scss +20 -51
- package/src/styles/config.scss +51 -1
- package/dist/main-C75EcBpE.cjs +0 -11
- package/dist/martyrs/src/components/Button/Button.vue.js.map +0 -1
- package/dist/martyrs/src/components/Popup/Popup.vue.js.map +0 -1
- package/dist/martyrs/src/components/Slider/Slider.native.vue.cjs.map +0 -1
- package/dist/martyrs/src/components/Slider/Slider.native.vue.js.map +0 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue2.cjs +0 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue2.cjs.map +0 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue2.js +0 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue2.js.map +0 -1
- package/dist/martyrs/src/modules/icons/navigation/IconHeart.vue.cjs +0 -34
- package/dist/martyrs/src/modules/icons/navigation/IconHeart.vue.cjs.map +0 -1
- package/dist/martyrs/src/modules/icons/navigation/IconHeart.vue.js +0 -34
- package/dist/martyrs/src/modules/icons/navigation/IconHeart.vue.js.map +0 -1
- package/dist/martyrs/src/modules/products/components/sections/PopularProducts.vue.cjs +0 -124
- package/dist/martyrs/src/modules/products/components/sections/PopularProducts.vue.cjs.map +0 -1
- package/dist/martyrs/src/modules/products/components/sections/PopularProducts.vue.js +0 -124
- package/dist/martyrs/src/modules/products/components/sections/PopularProducts.vue.js.map +0 -1
- package/src/components/Slider/Slider.native.vue +0 -313
- package/src/modules/products/components/sections/PopularProducts.vue +0 -156
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { ref, computed } from 'vue'
|
|
3
|
+
import { useRouter } from 'vue-router'
|
|
4
|
+
|
|
5
|
+
import Button from '@martyrs/src/components/Button/Button.vue'
|
|
6
|
+
import Checkbox from '@martyrs/src/components/Checkbox/Checkbox.vue'
|
|
7
|
+
|
|
8
|
+
import CardProduct from '@martyrs/src/modules/products/components/blocks/CardProduct.vue'
|
|
9
|
+
|
|
10
|
+
import IconShopcart from '@martyrs/src/modules/icons/entities/IconShopcart.vue';
|
|
11
|
+
import IconProducts from '@martyrs/src/modules/icons/entities/IconProducts.vue';
|
|
12
|
+
import IconShopcartAdd from '@martyrs/src/modules/icons/actions/IconShopcartAdd.vue'
|
|
13
|
+
|
|
14
|
+
import * as shopcart from '@martyrs/src/modules/orders/store/shopcart.js'
|
|
15
|
+
|
|
16
|
+
const router = useRouter()
|
|
17
|
+
|
|
18
|
+
// Props
|
|
19
|
+
const props = defineProps({
|
|
20
|
+
products: {
|
|
21
|
+
type: Array,
|
|
22
|
+
required: true,
|
|
23
|
+
default: () => []
|
|
24
|
+
}
|
|
25
|
+
})
|
|
26
|
+
|
|
27
|
+
// Состояние выбранных товаров - массив id товаров с вариантами
|
|
28
|
+
const selectedProducts = ref(props.products.filter(p => p.variants?.length > 0).map(p => p._id))
|
|
29
|
+
|
|
30
|
+
// Вычисляемая общая цена
|
|
31
|
+
const totalPrice = computed(() => {
|
|
32
|
+
return props.products
|
|
33
|
+
.filter(p => selectedProducts.value.includes(p._id))
|
|
34
|
+
.reduce((sum, p) => {
|
|
35
|
+
const price = p.variants?.[0]?.price || 0
|
|
36
|
+
return sum + price
|
|
37
|
+
}, 0)
|
|
38
|
+
.toFixed(2)
|
|
39
|
+
})
|
|
40
|
+
|
|
41
|
+
// Проверка возможности добавления в корзину
|
|
42
|
+
const canAddToCart = computed(() => {
|
|
43
|
+
const selected = props.products.filter(p => selectedProducts.value.includes(p._id))
|
|
44
|
+
return selected.length > 0 && selected.some(p => p.variants?.length > 0)
|
|
45
|
+
})
|
|
46
|
+
|
|
47
|
+
const handleProductClick = (product) => {
|
|
48
|
+
if (product?._id && product?.owner?.target) {
|
|
49
|
+
router.push({
|
|
50
|
+
name: 'Organization_Product',
|
|
51
|
+
params: {
|
|
52
|
+
_id: product.owner.target,
|
|
53
|
+
product: product._id
|
|
54
|
+
}
|
|
55
|
+
})
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// Добавление выбранных товаров в корзину
|
|
60
|
+
const addSelectedToCart = async () => {
|
|
61
|
+
const selected = props.products.filter(p => selectedProducts.value.includes(p._id))
|
|
62
|
+
|
|
63
|
+
if (selected.length === 0) return
|
|
64
|
+
|
|
65
|
+
try {
|
|
66
|
+
// Берем организацию первого товара
|
|
67
|
+
const firstProduct = selected[0]
|
|
68
|
+
const organizationId = firstProduct.owner?.target?._id || firstProduct.owner?.target
|
|
69
|
+
|
|
70
|
+
// Проверяем, что в корзине товары той же организации
|
|
71
|
+
if (shopcart.state.organization && shopcart.state.organization !== organizationId) {
|
|
72
|
+
// Можно добавить подтверждение замены корзины
|
|
73
|
+
shopcart.state.positions = []
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
shopcart.state.organization = organizationId
|
|
77
|
+
|
|
78
|
+
// Добавляем каждый выбранный товар
|
|
79
|
+
for (const product of selected) {
|
|
80
|
+
// Проверяем наличие варианта
|
|
81
|
+
if (!product.variants || product.variants.length === 0) continue
|
|
82
|
+
|
|
83
|
+
await shopcart.actions.addProductToCart(
|
|
84
|
+
product,
|
|
85
|
+
organizationId,
|
|
86
|
+
null // selectedDates для rent листинга
|
|
87
|
+
)
|
|
88
|
+
}
|
|
89
|
+
} catch (error) {
|
|
90
|
+
console.error('Error adding to cart:', error)
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
</script>
|
|
94
|
+
|
|
95
|
+
<template>
|
|
96
|
+
<div>
|
|
97
|
+
<h3 class="mn-b-small">Frequently Bought Together</h3>
|
|
98
|
+
<div class="recommended-products cols-4 mobile:cols-2 gap-thin">
|
|
99
|
+
|
|
100
|
+
<CardProduct
|
|
101
|
+
v-for="(product, index) in products"
|
|
102
|
+
:key="product?._id || index"
|
|
103
|
+
:product="product"
|
|
104
|
+
class="h-100 bg-light"
|
|
105
|
+
@click="handleProductClick(product)"
|
|
106
|
+
:showAddToCart="false"
|
|
107
|
+
>
|
|
108
|
+
<Checkbox
|
|
109
|
+
v-model:radio="selectedProducts"
|
|
110
|
+
:value="product._id"
|
|
111
|
+
mode="checkbox"
|
|
112
|
+
:validation="!product.variants || product.variants.length === 0"
|
|
113
|
+
class="pos-r-small pos-t-small pos-absolute"
|
|
114
|
+
@click.stop
|
|
115
|
+
/>
|
|
116
|
+
</CardProduct>
|
|
117
|
+
|
|
118
|
+
<div class="flex-center flex flex-column pd-small radius-small br-solid br-1px br-light">
|
|
119
|
+
<div class="mn-b-thin i-extra pd-small bg-light radius-extra">
|
|
120
|
+
<IconProducts class="i-big"/>
|
|
121
|
+
</div>
|
|
122
|
+
<p class="mn-b-small">Total price:</p>
|
|
123
|
+
<p class="mn-b-medium h3 t-medium">${{ totalPrice }}</p>
|
|
124
|
+
<Button
|
|
125
|
+
class="bg-main gap-micro"
|
|
126
|
+
:submit="canAddToCart ? addSelectedToCart : undefined"
|
|
127
|
+
>
|
|
128
|
+
<IconShopcartAdd class="i-semi"/>
|
|
129
|
+
<span>Add to Cart</span>
|
|
130
|
+
</Button>
|
|
131
|
+
</div>
|
|
132
|
+
</div>
|
|
133
|
+
</div>
|
|
134
|
+
</template>
|
|
@@ -104,6 +104,14 @@ export default {
|
|
|
104
104
|
}
|
|
105
105
|
]
|
|
106
106
|
},
|
|
107
|
+
recommended: {
|
|
108
|
+
lookup: {
|
|
109
|
+
from: 'products',
|
|
110
|
+
localField: 'recommended',
|
|
111
|
+
foreignField: '_id',
|
|
112
|
+
as: 'recommended'
|
|
113
|
+
}
|
|
114
|
+
},
|
|
107
115
|
// Лукап для категорий продукта
|
|
108
116
|
categories: {
|
|
109
117
|
lookup: {
|
|
@@ -112,24 +120,21 @@ export default {
|
|
|
112
120
|
foreignField: '_id',
|
|
113
121
|
as: 'category'
|
|
114
122
|
},
|
|
115
|
-
additionalStages: [
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
description: '$$cat.description',
|
|
127
|
-
url: '$$cat.url'
|
|
128
|
-
}
|
|
123
|
+
additionalStages: [{
|
|
124
|
+
$addFields: {
|
|
125
|
+
category: {
|
|
126
|
+
$map: {
|
|
127
|
+
input: '$category',
|
|
128
|
+
as: 'cat',
|
|
129
|
+
in: {
|
|
130
|
+
_id: '$$cat._id',
|
|
131
|
+
name: '$$cat.name',
|
|
132
|
+
description: '$$cat.description',
|
|
133
|
+
url: '$$cat.url'
|
|
129
134
|
}
|
|
130
135
|
}
|
|
131
136
|
}
|
|
132
137
|
}
|
|
133
|
-
]
|
|
138
|
+
}]
|
|
134
139
|
}
|
|
135
140
|
};
|
|
@@ -72,7 +72,7 @@ const controllerFactory = db => {
|
|
|
72
72
|
const Update = async (req, res) => {
|
|
73
73
|
try {
|
|
74
74
|
const { _id } = req.params;
|
|
75
|
-
|
|
75
|
+
|
|
76
76
|
const updateData = {
|
|
77
77
|
name: req.body.name,
|
|
78
78
|
status: req.body.status,
|
|
@@ -81,8 +81,10 @@ const controllerFactory = db => {
|
|
|
81
81
|
category: req.body.category?.map(cat => cat._id) || [],
|
|
82
82
|
images: req.body.images,
|
|
83
83
|
attributes: req.body.attributes,
|
|
84
|
+
recommended: req.body.recommended,
|
|
84
85
|
localization: req.body.translations,
|
|
85
86
|
discounts: req.body.discounts,
|
|
87
|
+
included: req.body.included
|
|
86
88
|
};
|
|
87
89
|
|
|
88
90
|
const updatedProduct = await Product.findOneAndUpdate({ _id }, updateData, { new: true });
|
|
@@ -90,7 +92,9 @@ const controllerFactory = db => {
|
|
|
90
92
|
if (!updatedProduct) {
|
|
91
93
|
return res.status(404).send({ message: 'Something wrong when updating product.' });
|
|
92
94
|
}
|
|
95
|
+
|
|
93
96
|
res.status(200).send(updatedProduct);
|
|
97
|
+
|
|
94
98
|
} catch (err) {
|
|
95
99
|
res.status(500).send({ message: err.message });
|
|
96
100
|
}
|
|
@@ -108,6 +112,7 @@ const controllerFactory = db => {
|
|
|
108
112
|
res.status(500).send({ message: err.message });
|
|
109
113
|
}
|
|
110
114
|
};
|
|
115
|
+
|
|
111
116
|
const getProductRecommendation = async (req, res) => {
|
|
112
117
|
const { mood } = req.body;
|
|
113
118
|
try {
|
|
@@ -155,32 +160,12 @@ const controllerFactory = db => {
|
|
|
155
160
|
res.status(500).send({ message: err });
|
|
156
161
|
}
|
|
157
162
|
};
|
|
158
|
-
|
|
159
|
-
Product.find({
|
|
160
|
-
status: 'published',
|
|
161
|
-
views: { $gt: 10 },
|
|
162
|
-
})
|
|
163
|
-
// .populate('variants')
|
|
164
|
-
.limit(10)
|
|
165
|
-
.exec((err, products) => {
|
|
166
|
-
// If error
|
|
167
|
-
if (err) {
|
|
168
|
-
return res.status(500).send({ message: err });
|
|
169
|
-
}
|
|
170
|
-
// If not found
|
|
171
|
-
if (!products) {
|
|
172
|
-
return res.status(404).send({ message: 'Products not found.' });
|
|
173
|
-
}
|
|
174
|
-
// If succes
|
|
175
|
-
res.status(200).send(products);
|
|
176
|
-
});
|
|
177
|
-
};
|
|
163
|
+
|
|
178
164
|
return {
|
|
179
165
|
Create,
|
|
180
166
|
Read,
|
|
181
167
|
Update,
|
|
182
168
|
Delete,
|
|
183
|
-
getProductsPopular,
|
|
184
169
|
getProductRecommendation,
|
|
185
170
|
};
|
|
186
171
|
};
|
|
@@ -24,8 +24,35 @@ export default db => {
|
|
|
24
24
|
ownership(CategorySchema, db);
|
|
25
25
|
metadata(CategorySchema, db);
|
|
26
26
|
engagement(CategorySchema, db);
|
|
27
|
-
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
// Текстовый индекс для поиска
|
|
28
30
|
CategorySchema.index({ name: 1 });
|
|
31
|
+
CategorySchema.index({ name: 'text', description: 'text' });
|
|
32
|
+
|
|
33
|
+
// Основные составные индексы (покрывают префиксные запросы)
|
|
34
|
+
CategorySchema.index({ 'owner.type': 1, 'owner.target': 1, status: 1, parent: 1 });
|
|
35
|
+
CategorySchema.index({ 'owner.type': 1, 'owner.target': 1, order: 1 });
|
|
36
|
+
CategorySchema.index({ parent: 1, status: 1, order: 1 });
|
|
37
|
+
CategorySchema.index({ parent: 1, status: 1, 'owner.type': 1 });
|
|
38
|
+
CategorySchema.index({ parent: 1, name: 1 });
|
|
39
|
+
CategorySchema.index({ parent: 1, createdAt: -1 });
|
|
40
|
+
CategorySchema.index({ parent: 1, updatedAt: -1 });
|
|
41
|
+
|
|
42
|
+
// Индексы для сортировки без parent
|
|
43
|
+
CategorySchema.index({ status: 1, order: 1 });
|
|
44
|
+
CategorySchema.index({ status: 1, name: 1 });
|
|
45
|
+
CategorySchema.index({ status: 1, createdAt: -1 });
|
|
46
|
+
CategorySchema.index({ status: 1, updatedAt: -1 });
|
|
47
|
+
|
|
48
|
+
// Специальный индекс для graphLookup
|
|
49
|
+
CategorySchema.index({ _id: 1, parent: 1 });
|
|
50
|
+
|
|
51
|
+
// Отдельные индексы для полей без префиксов в составных
|
|
52
|
+
CategorySchema.index({ order: 1 });
|
|
53
|
+
CategorySchema.index({ createdAt: -1 });
|
|
54
|
+
CategorySchema.index({ updatedAt: -1 });
|
|
55
|
+
|
|
29
56
|
const Category = db.mongoose.model('Category', CategorySchema, 'categories');
|
|
30
57
|
return Category;
|
|
31
58
|
};
|
|
@@ -65,7 +65,39 @@ export default db => {
|
|
|
65
65
|
|
|
66
66
|
applyOwnershipSchema(LeftoverSchema, db);
|
|
67
67
|
|
|
68
|
+
// Существующий составной индекс
|
|
68
69
|
LeftoverSchema.index({ storage: 1, order: 1, type: 1 });
|
|
70
|
+
|
|
71
|
+
// Текстовый индекс для поиска по позициям
|
|
72
|
+
LeftoverSchema.index({ 'positions.name': 'text', comment: 'text' });
|
|
73
|
+
|
|
74
|
+
// Основные составные индексы (покрывают префиксные запросы)
|
|
75
|
+
LeftoverSchema.index({ 'owner.type': 1, 'owner.target': 1, type: 1, storage: 1 });
|
|
76
|
+
LeftoverSchema.index({ 'owner.type': 1, 'owner.target': 1, createdAt: -1 });
|
|
77
|
+
LeftoverSchema.index({ 'owner.type': 1, 'owner.target': 1, updatedAt: -1 });
|
|
78
|
+
LeftoverSchema.index({ type: 1, 'owner.type': 1, 'owner.target': 1, createdAt: -1 });
|
|
79
|
+
LeftoverSchema.index({ type: 1, storage: 1 });
|
|
80
|
+
LeftoverSchema.index({ type: 1, order: 1 });
|
|
81
|
+
LeftoverSchema.index({ type: 1, createdAt: -1 });
|
|
82
|
+
LeftoverSchema.index({ type: 1, updatedAt: -1 });
|
|
83
|
+
LeftoverSchema.index({ type: 1, 'positions._id': 1 });
|
|
84
|
+
|
|
85
|
+
// Индексы для позиций с составными
|
|
86
|
+
LeftoverSchema.index({ 'positions._id': 1, type: 1, createdAt: -1 });
|
|
87
|
+
LeftoverSchema.index({ storage: 1, 'positions._id': 1, type: 1 });
|
|
88
|
+
LeftoverSchema.index({ storage: 1, createdAt: -1 });
|
|
89
|
+
LeftoverSchema.index({ order: 1, type: 1 });
|
|
90
|
+
LeftoverSchema.index({ order: 1, createdAt: -1 });
|
|
91
|
+
|
|
92
|
+
// Индексы для позиций
|
|
93
|
+
LeftoverSchema.index({ 'positions._id': 1 });
|
|
94
|
+
LeftoverSchema.index({ 'positions.product': 1 });
|
|
95
|
+
LeftoverSchema.index({ 'positions.variant._id': 1 });
|
|
96
|
+
LeftoverSchema.index({ 'positions.name': 1 });
|
|
97
|
+
|
|
98
|
+
// Отдельные индексы для полей без префиксов в составных
|
|
99
|
+
LeftoverSchema.index({ createdAt: -1 });
|
|
100
|
+
LeftoverSchema.index({ updatedAt: -1 });
|
|
69
101
|
|
|
70
102
|
const Leftover = db.mongoose.model('Leftover', LeftoverSchema);
|
|
71
103
|
|
|
@@ -28,10 +28,17 @@ export default db => {
|
|
|
28
28
|
description: {
|
|
29
29
|
type: String,
|
|
30
30
|
},
|
|
31
|
+
included: {
|
|
32
|
+
type: String
|
|
33
|
+
},
|
|
31
34
|
attributes: [{
|
|
32
35
|
name: { type: String },
|
|
33
36
|
value: { type: String },
|
|
34
37
|
}],
|
|
38
|
+
recommended: [{
|
|
39
|
+
type: db.mongoose.Schema.Types.ObjectId,
|
|
40
|
+
ref: 'Product'
|
|
41
|
+
}],
|
|
35
42
|
translations: {
|
|
36
43
|
type: Array,
|
|
37
44
|
},
|
|
@@ -45,9 +52,38 @@ export default db => {
|
|
|
45
52
|
applyCommonSchema(ProductSchema, db);
|
|
46
53
|
applyOwnershipSchema(ProductSchema, db);
|
|
47
54
|
|
|
48
|
-
|
|
55
|
+
// Текстовый индекс для поиска
|
|
49
56
|
ProductSchema.index({ name: 'text', description: 'text' });
|
|
50
57
|
|
|
58
|
+
// Основные составные индексы (покрывают префиксные запросы)
|
|
59
|
+
ProductSchema.index({ 'owner.type': 1, 'owner.target': 1, status: 1, category: 1 });
|
|
60
|
+
ProductSchema.index({ category: 1, status: 1, delivery: 1, price: 1 });
|
|
61
|
+
ProductSchema.index({ category: 1, status: 1, price: -1 });
|
|
62
|
+
ProductSchema.index({ category: 1, status: 1, views: -1 });
|
|
63
|
+
ProductSchema.index({ category: 1, status: 1, createdAt: -1 });
|
|
64
|
+
ProductSchema.index({ category: 1, status: 1, updatedAt: -1 });
|
|
65
|
+
ProductSchema.index({ category: 1, delivery: 1, price: 1 });
|
|
66
|
+
|
|
67
|
+
// Индексы для атрибутов
|
|
68
|
+
ProductSchema.index({ 'attributes.name': 1, 'attributes.value': 1 });
|
|
69
|
+
|
|
70
|
+
// Индексы для сортировки без категории
|
|
71
|
+
ProductSchema.index({ status: 1, delivery: 1, price: 1 });
|
|
72
|
+
ProductSchema.index({ status: 1, price: -1 });
|
|
73
|
+
ProductSchema.index({ status: 1, views: -1 });
|
|
74
|
+
ProductSchema.index({ status: 1, createdAt: -1 });
|
|
75
|
+
ProductSchema.index({ status: 1, updatedAt: -1 });
|
|
76
|
+
ProductSchema.index({ status: 1, name: 1 });
|
|
77
|
+
ProductSchema.index({ status: 1, 'attributes.name': 1, 'attributes.value': 1 });
|
|
78
|
+
|
|
79
|
+
// Отдельные индексы для полей без префиксов в составных
|
|
80
|
+
ProductSchema.index({ listing: 1 });
|
|
81
|
+
ProductSchema.index({ recommended: 1 });
|
|
82
|
+
ProductSchema.index({ price: 1 });
|
|
83
|
+
ProductSchema.index({ views: -1 });
|
|
84
|
+
ProductSchema.index({ createdAt: -1 });
|
|
85
|
+
ProductSchema.index({ updatedAt: -1 });
|
|
86
|
+
|
|
51
87
|
const Product = db.mongoose.model('Product', ProductSchema);
|
|
52
88
|
|
|
53
89
|
return Product;
|
|
@@ -58,7 +58,42 @@ export default db => {
|
|
|
58
58
|
applyCommonSchema(VariantSchema, db);
|
|
59
59
|
applyOwnershipSchema(VariantSchema, db);
|
|
60
60
|
|
|
61
|
+
// Существующий индекс
|
|
61
62
|
VariantSchema.index({ Variant: 1, name: 1 });
|
|
63
|
+
|
|
64
|
+
// Текстовый индекс для поиска
|
|
65
|
+
VariantSchema.index({ name: 'text', sku: 'text' });
|
|
66
|
+
|
|
67
|
+
// Основные составные индексы (покрывают префиксные запросы)
|
|
68
|
+
VariantSchema.index({ 'owner.type': 1, 'owner.target': 1, product: 1, status: 1 });
|
|
69
|
+
VariantSchema.index({ product: 1, status: 1, price: 1 });
|
|
70
|
+
VariantSchema.index({ product: 1, status: 1, quantity: 1 });
|
|
71
|
+
VariantSchema.index({ product: 1, sku: 1 });
|
|
72
|
+
VariantSchema.index({ product: 1, 'ingredients._id': 1 });
|
|
73
|
+
|
|
74
|
+
// Индексы для атрибутов
|
|
75
|
+
VariantSchema.index({ 'attributes.name': 1, 'attributes.value': 1 });
|
|
76
|
+
|
|
77
|
+
// Составные индексы для сортировки
|
|
78
|
+
VariantSchema.index({ status: 1, price: 1 });
|
|
79
|
+
VariantSchema.index({ status: 1, price: -1 });
|
|
80
|
+
VariantSchema.index({ status: 1, quantity: 1 });
|
|
81
|
+
VariantSchema.index({ status: 1, quantity: -1 });
|
|
82
|
+
VariantSchema.index({ status: 1, createdAt: -1 });
|
|
83
|
+
VariantSchema.index({ status: 1, updatedAt: -1 });
|
|
84
|
+
VariantSchema.index({ status: 1, quantity: 1, product: 1 });
|
|
85
|
+
|
|
86
|
+
// Индексы для ингредиентов
|
|
87
|
+
VariantSchema.index({ 'ingredients._id': 1 });
|
|
88
|
+
VariantSchema.index({ 'ingredients.quantity': 1 });
|
|
89
|
+
|
|
90
|
+
// Отдельные индексы для полей без префиксов в составных
|
|
91
|
+
VariantSchema.index({ sku: 1 });
|
|
92
|
+
VariantSchema.index({ name: 1 });
|
|
93
|
+
VariantSchema.index({ price: 1 });
|
|
94
|
+
VariantSchema.index({ quantity: 1 });
|
|
95
|
+
VariantSchema.index({ createdAt: -1 });
|
|
96
|
+
VariantSchema.index({ updatedAt: -1 });
|
|
62
97
|
|
|
63
98
|
const Variant = db.mongoose.model('Variant', VariantSchema);
|
|
64
99
|
|
|
@@ -20,7 +20,7 @@ import ProductImages from './components/blocks/ProductImages.vue';
|
|
|
20
20
|
import EditVariants from './components/sections/EditVariants.vue';
|
|
21
21
|
import FilterProducts from './components/sections/FilterProducts.vue';
|
|
22
22
|
import HeroRecommendation from './components/sections/HeroRecommendation.vue';
|
|
23
|
-
import
|
|
23
|
+
import ProductsPopular from './components/sections/ProductsPopular.vue';
|
|
24
24
|
import SectionProduct from './components/sections/SectionProduct.vue';
|
|
25
25
|
|
|
26
26
|
// Elements
|
|
@@ -72,7 +72,7 @@ const ModuleProducts = {
|
|
|
72
72
|
HeroRecommendation,
|
|
73
73
|
FilterProducts,
|
|
74
74
|
EditVariants,
|
|
75
|
-
|
|
75
|
+
ProductsPopular,
|
|
76
76
|
// Pages
|
|
77
77
|
Product,
|
|
78
78
|
ProductEdit,
|
|
@@ -98,7 +98,7 @@ export {
|
|
|
98
98
|
// Blocks
|
|
99
99
|
ProductImages,
|
|
100
100
|
Leftovers,
|
|
101
|
-
|
|
101
|
+
ProductsPopular,
|
|
102
102
|
// Elements
|
|
103
103
|
Price,
|
|
104
104
|
// Pages
|
|
@@ -9,5 +9,6 @@ export default (function (app, db, allowedOrigins) {
|
|
|
9
9
|
app.post('/api/products/:_id', controller.Update);
|
|
10
10
|
// (D) Delete product
|
|
11
11
|
app.delete('/api/products/:_id', controller.Delete);
|
|
12
|
+
|
|
12
13
|
app.post('/api/product/recommended', controller.getProductRecommendation);
|
|
13
14
|
});
|
|
@@ -25,8 +25,10 @@ const state = reactive({
|
|
|
25
25
|
price: 0,
|
|
26
26
|
price_cost: 0,
|
|
27
27
|
localization: [],
|
|
28
|
+
recommended: [],
|
|
28
29
|
variants: [],
|
|
29
30
|
discounts: [],
|
|
31
|
+
included: [],
|
|
30
32
|
ingredients: [],
|
|
31
33
|
description: '',
|
|
32
34
|
},
|
|
@@ -206,6 +208,7 @@ const actions = {
|
|
|
206
208
|
const mutations = {
|
|
207
209
|
resetProduct(product) {
|
|
208
210
|
state.current = {
|
|
211
|
+
included: [],
|
|
209
212
|
recommendation: false,
|
|
210
213
|
category: [],
|
|
211
214
|
status: 'unpublished',
|
|
@@ -220,6 +223,7 @@ const mutations = {
|
|
|
220
223
|
price_currency: '$',
|
|
221
224
|
localization: [],
|
|
222
225
|
variants: [],
|
|
226
|
+
recommended: [],
|
|
223
227
|
discounts: [],
|
|
224
228
|
ingredients: [],
|
|
225
229
|
description: '',
|
package/src/styles/base/all.scss
CHANGED
|
@@ -146,39 +146,9 @@ body {
|
|
|
146
146
|
// ////////////////////////////////////////
|
|
147
147
|
// Pointer Events
|
|
148
148
|
.no-events { pointer-events: none }
|
|
149
|
-
// Transition
|
|
150
149
|
// ////////////////////////////////////////
|
|
151
150
|
// Layout
|
|
152
151
|
// ////////////////////////////////////////
|
|
153
|
-
// Positions
|
|
154
|
-
.pos-relative { position: relative; }
|
|
155
|
-
.pos-absolute { position: absolute; }
|
|
156
|
-
.pos-fixed { position: fixed; }
|
|
157
|
-
.pos-sticky { position: sticky; }
|
|
158
|
-
.pos-static { position: static; }
|
|
159
|
-
// Overflow
|
|
160
|
-
.o-hidden {overflow: hidden; }
|
|
161
|
-
.o-scroll {overflow: scroll; }
|
|
162
|
-
.o-y-scroll {overflow-y: scroll; }
|
|
163
|
-
.o-x-scroll {overflow-x: scroll; } /* This was incorrect in your code */
|
|
164
|
-
.o-x-hidden {overflow-x: hidden; touch-action: pan-y;}
|
|
165
|
-
.o-auto {overflow: auto; }
|
|
166
|
-
.o-visible {overflow: visible; }
|
|
167
|
-
.o-clip {overflow: clip; } /* Modern alternative to hidden */
|
|
168
|
-
.o-y-auto {overflow-y: auto; }
|
|
169
|
-
.o-x-auto {overflow-x: auto; }
|
|
170
|
-
.o-y-hidden {overflow-y: hidden; }
|
|
171
|
-
.o-y-visible {overflow-y: visible; }
|
|
172
|
-
.o-x-visible {overflow-x: visible; }
|
|
173
|
-
.o-y-clip {overflow-y: clip; }
|
|
174
|
-
.o-x-clip {overflow-x: clip; }
|
|
175
|
-
.o-initial {overflow: initial; }
|
|
176
|
-
.o-inherit {overflow: inherit; }
|
|
177
|
-
.o-unset {overflow: unset; }
|
|
178
|
-
.o-revert {overflow: revert; }
|
|
179
|
-
.o-revert-layer {overflow: revert-layer; }
|
|
180
|
-
// Display
|
|
181
|
-
|
|
182
152
|
// Flex
|
|
183
153
|
.flex {
|
|
184
154
|
display: flex;
|
|
@@ -187,14 +157,6 @@ body {
|
|
|
187
157
|
&-center { align-items: center; justify-content: center; }
|
|
188
158
|
}
|
|
189
159
|
|
|
190
|
-
|
|
191
|
-
.d-flex {display: flex; }
|
|
192
|
-
.d-block {display: block; }
|
|
193
|
-
.d-inline-block {display: inline-block; }
|
|
194
|
-
.d-inline-flex {display: inline-flex; }
|
|
195
|
-
.d-grid {display: grid; }
|
|
196
|
-
.d-none {display: none; }
|
|
197
|
-
|
|
198
160
|
.align-self-start {
|
|
199
161
|
align-self: start;
|
|
200
162
|
}
|
|
@@ -40,6 +40,26 @@ body {
|
|
|
40
40
|
.hover-appeal-1 {&:hover {transform: translateY(-10px) scale(1.1) rotate(-5deg); } }
|
|
41
41
|
|
|
42
42
|
|
|
43
|
+
.bs-thin{box-shadow:0 2px 4px rgba(var(--dark),0.05),0 4px 6px rgba(var(--dark),0.08),0 6px 8px rgba(var(--dark),0.10);}
|
|
44
|
+
.bs-thin-hover:hover{box-shadow:0 4px 8px rgba(var(--dark),0.10),0 8px 12px rgba(var(--dark),0.10),0 12px 16px rgba(var(--dark),0.10);}
|
|
45
|
+
|
|
46
|
+
.bs-small{box-shadow:0 5px 10px rgba(var(--dark),0.05),0 10px 15px rgba(var(--dark),0.10),0 15px 25px rgba(var(--dark),0.10),0 0 5px rgba(var(--white),0),0 -10px 20px rgba(var(--white),0.10),0 -20px 30px rgba(var(--white),0.10),0 -30px 50px rgba(var(--white),0.10);}
|
|
47
|
+
.bs-small-hover:hover{box-shadow:0 20px 40px rgba(var(--dark),0.10),0 40px 60px rgba(var(--dark),0.10),0 60px 80px rgba(var(--dark),0.10);}
|
|
48
|
+
|
|
49
|
+
.bs-regular{box-shadow:0 10px 20px rgba(var(--dark),0.10),0 20px 30px rgba(var(--dark),0.10),0 30px 50px rgba(var(--dark),0.10),0 0 5px rgba(var(--white),0),0 -10px 20px rgba(var(--white),0.10),0 -20px 30px rgba(var(--white),0.10),0 -30px 50px rgba(var(--white),0.10);}
|
|
50
|
+
.bs-regular-hover:hover{box-shadow:0 25px 50px rgba(var(--dark),0.10),0 50px 75px rgba(var(--dark),0.10),0 75px 100px rgba(var(--dark),0.10);}
|
|
51
|
+
|
|
52
|
+
.bs-medium{box-shadow:0 0 7px rgba(var(--dark),0.05),0 15px 25px rgba(var(--dark),0.10),0 25px 40px rgba(var(--dark),0.10),0 40px 70px rgba(var(--dark),0.10);}
|
|
53
|
+
.bs-medium-hover:hover{box-shadow:0 0 15px rgba(var(--dark),0.10),0 30px 60px rgba(var(--dark),0.10),0 60px 90px rgba(var(--dark),0.10),0 90px 120px rgba(var(--dark),0.10);}
|
|
54
|
+
|
|
55
|
+
.bs-semi{box-shadow:0 0 10px rgba(var(--dark),0.05),0 20px 35px rgba(var(--dark),0.10),0 35px 55px rgba(var(--dark),0.10),0 55px 95px rgba(var(--dark),0.10);}
|
|
56
|
+
.bs-semi-hover:hover{box-shadow:0 0 18px rgba(var(--dark),0.10),0 40px 80px rgba(var(--dark),0.10),0 80px 120px rgba(var(--dark),0.10),0 120px 200px rgba(var(--dark),0.10);}
|
|
57
|
+
|
|
58
|
+
.bs-big{box-shadow:0 0 15px rgba(var(--dark),0.05),0 30px 50px rgba(var(--dark),0.10),0 50px 80px rgba(var(--dark),0.10),0 80px 130px rgba(var(--dark),0.10);}
|
|
59
|
+
.bs-big-hover:hover{box-shadow:0 0 25px rgba(var(--dark),0.10),0 60px 100px rgba(var(--dark),0.10),0 100px 150px rgba(var(--dark),0.10),0 150px 250px rgba(var(--dark),0.10);}
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
|
|
43
63
|
// Shadows
|
|
44
64
|
.bs-red { box-shadow: 0 0 5px red; }
|
|
45
65
|
|
|
@@ -75,57 +95,6 @@ body {
|
|
|
75
95
|
box-shadow: 0 0 5px rgba(0,0,0,0.1), 0 10px 20px rgba(0,0,0,0.4), 0 20px 30px rgba(0,0,0,0.5);
|
|
76
96
|
}
|
|
77
97
|
|
|
78
|
-
/* тень с эффектом расплывания */
|
|
79
|
-
.bs-blur-light {
|
|
80
|
-
box-shadow: 0 5px 10px rgba(0,0,0,0.1), 0 10px 15px rgba(0,0,0,0.15), 0 15px 25px rgba(0,0,0,0.2),0 0 5px rgba(255,255,255,0.05), 0 -10px 20px rgba(255,255,255,0.2), 0 -20px 30px rgba(255,255,255,0.25), 0 -30px 50px rgba(255,255,255,0.3);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
.bs-blur-light-hover {
|
|
84
|
-
&:hover {
|
|
85
|
-
box-shadow: 0 20px 40px rgba(0,0,0,0.3), 0 40px 60px rgba(0,0,0,0.35), 0 60px 80px rgba(0,0,0,0.4);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
.bs-blur-regular {
|
|
90
|
-
box-shadow: 0 10px 20px rgba(0,0,0,0.2), 0 20px 30px rgba(0,0,0,0.25), 0 30px 50px rgba(0,0,0,0.3),0 0 5px rgba(255,255,255,0.05), 0 -10px 20px rgba(255,255,255,0.2), 0 -20px 30px rgba(255,255,255,0.25), 0 -30px 50px rgba(255,255,255,0.3);
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
.bs-blur-regular-hover {
|
|
94
|
-
&:hover {
|
|
95
|
-
box-shadow: 0 25px 50px rgba(0,0,0,0.5), 0 50px 75px rgba(0,0,0,0.7), 0 75px 100px rgba(0,0,0,0.8);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
.bs-blur-medium {
|
|
100
|
-
box-shadow: 0 0 7px rgba(0,0,0,0.1), 0 15px 25px rgba(0,0,0,0.4), 0 25px 40px rgba(0,0,0,0.5), 0 40px 70px rgba(0,0,0,0.6);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
.bs-blur-medium-hover {
|
|
104
|
-
&:hover {
|
|
105
|
-
box-shadow: 0 0 15px rgba(0,0,0,0.2), 0 30px 60px rgba(0,0,0,0.5), 0 60px 90px rgba(0,0,0,0.7), 0 90px 120px rgba(0,0,0,0.8);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
.bs-blur-semi {
|
|
110
|
-
box-shadow: 0 0 10px rgba(0,0,0,0.1), 0 20px 35px rgba(0,0,0,0.4), 0 35px 55px rgba(0,0,0,0.5), 0 55px 95px rgba(0,0,0,0.6);
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
.bs-blur-semi-hover {
|
|
114
|
-
&:hover {
|
|
115
|
-
box-shadow: 0 0 18px rgba(0,0,0,0.2), 0 40px 80px rgba(0,0,0,0.5), 0 80px 120px rgba(0,0,0,0.7), 0 120px 200px rgba(0,0,0,0.8);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
.bs-blur-heavy {
|
|
120
|
-
box-shadow: 0 0 15px rgba(0,0,0,0.1), 0 30px 50px rgba(0,0,0,0.4), 0 50px 80px rgba(0,0,0,0.5), 0 80px 130px rgba(0,0,0,0.6);
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
.bs-blur-heavy-hover {
|
|
124
|
-
&:hover {
|
|
125
|
-
box-shadow: 0 0 25px rgba(0,0,0,0.2), 0 60px 100px rgba(0,0,0,0.5), 0 100px 150px rgba(0,0,0,0.7), 0 150px 250px rgba(0,0,0,0.8);
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
|
|
129
98
|
|
|
130
99
|
|
|
131
100
|
/* тень с эффектом перекрестия */
|