@ozdao/martyrs 0.2.481 → 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/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.vue2.cjs.map +1 -1
- package/dist/martyrs/src/components/Button/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.vue.cjs → Chips.vue2.cjs} +7 -10
- package/dist/martyrs/src/components/Chips/Chips.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Chips/{Chips.vue.js → Chips.vue2.js} +8 -11
- package/dist/martyrs/src/components/Chips/Chips.vue2.js.map +1 -0
- 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/Menu/{Menu.vue.cjs → Menu.vue2.cjs} +2 -2
- package/dist/martyrs/src/components/Menu/Menu.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Menu/{Menu.vue.js → Menu.vue2.js} +2 -2
- package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +1 -0
- 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/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/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/CardBlogpost.vue.cjs +1 -1
- package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js +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 +1 -1
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
- 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/blocks/CardEvent.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +1 -1
- 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 +11 -11
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.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 +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.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/organizations/router/organizations.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/router/organizations.js +1 -1
- package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.cjs +1 -1
- package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +1 -1
- 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 +12 -13
- 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 +13 -14
- 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/CategoryEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +57 -40
- 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 +59 -42
- 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 +104 -84
- 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 +106 -86
- 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 +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +1 -1
- 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 +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.cjs +45 -30
- 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/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 +1 -1
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +1 -1
- 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/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/Chips/Chips.vue.cjs.map +0 -1
- package/dist/martyrs/src/components/Chips/Chips.vue.js.map +0 -1
- package/dist/martyrs/src/components/Menu/Menu.vue.cjs.map +0 -1
- package/dist/martyrs/src/components/Menu/Menu.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
|
@@ -64,7 +64,7 @@ const _sfc_main = {
|
|
|
64
64
|
});
|
|
65
65
|
return (_ctx, _cache) => {
|
|
66
66
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
67
|
-
class: vue.normalizeClass(["
|
|
67
|
+
class: vue.normalizeClass(["w-100 pos-relative", { "skeleton-wrapper--loading": __props.loading }])
|
|
68
68
|
}, [
|
|
69
69
|
hasDefaultSlot.value && !__props.structure.length ? vue.renderSlot(_ctx.$slots, "default", { key: 0 }, void 0, true) : __props.structure.length ? (vue.openBlock(), vue.createElementBlock("div", {
|
|
70
70
|
key: 1,
|
|
@@ -76,7 +76,8 @@ const _sfc_main = {
|
|
|
76
76
|
class: vue.normalizeClass(["skeleton-item", [
|
|
77
77
|
`skeleton-item--${item.block}`,
|
|
78
78
|
`skeleton-item--${item.size || "medium"}`,
|
|
79
|
-
{ "skeleton-item--rounded": item.rounded }
|
|
79
|
+
{ "skeleton-item--rounded": item.rounded },
|
|
80
|
+
item.class
|
|
80
81
|
]]),
|
|
81
82
|
style: vue.normalizeStyle(item.style)
|
|
82
83
|
}, null, 6);
|
|
@@ -90,6 +91,6 @@ const _sfc_main = {
|
|
|
90
91
|
};
|
|
91
92
|
}
|
|
92
93
|
};
|
|
93
|
-
const Skeleton = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-
|
|
94
|
+
const Skeleton = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-b175ac0f"]]);
|
|
94
95
|
exports.default = Skeleton;
|
|
95
96
|
//# sourceMappingURL=Skeleton.vue.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Skeleton.vue.cjs","sources":["../../../../../src/components/Skeleton/Skeleton.vue"],"sourcesContent":["<template>\n <div class=\"
|
|
1
|
+
{"version":3,"file":"Skeleton.vue.cjs","sources":["../../../../../src/components/Skeleton/Skeleton.vue"],"sourcesContent":["<template>\n <div class=\"w-100 pos-relative\" :class=\"{ 'skeleton-wrapper--loading': loading }\">\n <!-- Используем слот по умолчанию, если он есть -->\n <slot v-if=\"hasDefaultSlot && !structure.length\"></slot>\n \n <div \n v-else-if=\"structure.length\" \n class=\"skeleton-structure\"\n :class=\"{ 'skeleton-structure--horizontal': horizontal }\"\n >\n <div \n v-for=\"(item, index) in structure\" \n :key=\"index\" \n class=\"skeleton-item\"\n :class=\"[\n `skeleton-item--${item.block}`,\n `skeleton-item--${item.size || 'medium'}`,\n { 'skeleton-item--rounded': item.rounded },\n item.class\n ]\"\n :style=\"item.style\"\n />\n </div>\n \n <!-- Если слот пустой и структура не определена - показываем дефолтный скелетон -->\n <div v-else class=\"skeleton-default\">\n <div class=\"skeleton-item skeleton-item--text skeleton-item--small\"></div>\n <div class=\"skeleton-item skeleton-item--text skeleton-item--medium\"></div>\n <div class=\"skeleton-item skeleton-item--text skeleton-item--large\"></div>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, useSlots, computed, onMounted } from 'vue';\n\nconst slots = useSlots();\n\nconst props = defineProps({\n // Флаг загрузки, определяет, нужно ли показывать скелетон\n loading: {\n type: Boolean,\n default: false\n },\n // Структура скелетона, если не используется слот\n structure: {\n type: Array,\n default: () => []\n },\n // Горизонтальное расположение элементов (для карточек пользователей)\n horizontal: {\n type: Boolean,\n default: false\n },\n // Цвет фона карточки (светлый фон)\n cardColor: {\n type: String,\n default: 'rgb(var(--light))'\n },\n // Цвет блоков скелетона (серый)\n blockColor: {\n type: String,\n default: 'rgba(var(--white),0.25)'\n },\n // Цвет анимированной полосы (белый с прозрачностью)\n highlightColor: {\n type: String,\n default: 'rgba(var(--white), 0.9)'\n },\n // Скорость анимации в секундах\n animationDuration: {\n type: Number,\n default: 1.5\n },\n // Радиус закругления\n borderRadius: {\n type: String,\n default: '0.5rem'\n }\n});\n\n// Проверяем наличие слота по умолчанию\nconst hasDefaultSlot = computed(() => Boolean(slots.default));\n\n// Применяем CSS переменные для настройки стилей\nonMounted(() => {\n const root = document.documentElement;\n root.style.setProperty('--skeleton-card-color', props.cardColor);\n root.style.setProperty('--skeleton-block-color', props.blockColor);\n root.style.setProperty('--skeleton-highlight-color', props.highlightColor);\n root.style.setProperty('--skeleton-animation-duration', `${props.animationDuration}s`);\n root.style.setProperty('--skeleton-border-radius', props.borderRadius);\n});\n</script>\n\n<style scoped>\n/* Стили для режима загрузки */\n.skeleton-wrapper--loading ::v-deep(*) {\n color: transparent !important;\n border-color: transparent !important;\n position: relative;\n}\n\n.skeleton-wrapper--loading ::v-deep(img),\n.skeleton-wrapper--loading ::v-deep(svg),\n.skeleton-wrapper--loading ::v-deep(button),\n.skeleton-wrapper--loading ::v-deep(a) {\n opacity: 0;\n}\n\n.skeleton-wrapper--loading ::v-deep(*::before),\n.skeleton-wrapper--loading ::v-deep(*::after) {\n display: none !important;\n}\n\n.skeleton-wrapper--loading ::v-deep(*) {\n position: relative;\n background-color: var(--skeleton-block-color) !important;\n border-radius: var(--skeleton-border-radius);\n overflow: hidden;\n}\n\n.skeleton-wrapper--loading ::v-deep(*)::before {\n content: '';\n position: absolute;\n top: 0;\n left: -100%;\n width: 100%;\n height: 100%;\n display: block !important;\n animation: shimmer var(--skeleton-animation-duration) infinite;\n background: linear-gradient(\n 90deg,\n transparent 0%,\n var(--skeleton-highlight-color) 50%,\n transparent 100%\n );\n}\n\n/* Стили для структурного скелетона */\n.skeleton-structure {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n width: 100%;\n}\n\n/* Горизонтальный скелетон для карточек пользователей */\n.skeleton-structure--horizontal {\n flex-direction: row;\n align-items: center;\n flex-wrap: nowrap;\n}\n\n.skeleton-item {\n background-color: var(--skeleton-block-color);\n border-radius: var(--skeleton-border-radius);\n position: relative;\n overflow: hidden;\n}\n\n.skeleton-item::after {\n content: '';\n position: absolute;\n top: 0;\n left: -100%;\n width: 100%;\n height: 100%;\n animation: shimmer var(--skeleton-animation-duration) infinite;\n background: linear-gradient(\n 90deg,\n transparent 0%,\n var(--skeleton-highlight-color) 50%,\n transparent 100%\n );\n}\n\n/* Типы блоков */\n.skeleton-item--text {\n height: 1rem;\n width: 100%;\n}\n\n.skeleton-item--text-group {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n flex: 1;\n}\n\n.skeleton-item--image {\n width: 100%;\n aspect-ratio: 16 / 9;\n}\n\n.skeleton-item--avatar {\n width: 4rem;\n height: 4rem;\n border-radius: 50%;\n flex-shrink: 0;\n}\n\n.skeleton-item--button {\n height: 3rem;\n width: 8rem;\n}\n\n.skeleton-item--circle {\n border-radius: 50%;\n}\n\n.skeleton-item--action {\n width: 2rem;\n height: 2rem;\n border-radius: 50%;\n flex-shrink: 0;\n}\n\n.skeleton-item--actions-group {\n display: flex;\n gap: 0.5rem;\n margin-left: auto;\n}\n\n.skeleton-item--square {\n aspect-ratio: 1 / 1;\n}\n\n/* Размеры */\n.skeleton-item--small {\n width: 30%;\n}\n\n.skeleton-item--medium {\n width: 60%;\n}\n\n.skeleton-item--large {\n width: 100%;\n}\n\n.skeleton-item--rounded {\n border-radius: 50%;\n}\n\n/* Дефолтный скелетон */\n.skeleton-default {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n width: 100%;\n}\n\n/* Анимация движения полосы */\n@keyframes shimmer {\n 0% {\n left: -100%;\n }\n 100% {\n left: 100%;\n }\n}\n</style>"],"names":["useSlots","computed","onMounted"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCA,UAAM,QAAQA,IAAAA,SAAU;AAExB,UAAM,QAAQ;AA4Cd,UAAM,iBAAiBC,IAAAA,SAAS,MAAM,QAAQ,MAAM,OAAO,CAAC;AAG5DC,QAAAA,UAAU,MAAM;AACd,YAAM,OAAO,SAAS;AACtB,WAAK,MAAM,YAAY,yBAAyB,MAAM,SAAS;AAC/D,WAAK,MAAM,YAAY,0BAA0B,MAAM,UAAU;AACjE,WAAK,MAAM,YAAY,8BAA8B,MAAM,cAAc;AACzE,WAAK,MAAM,YAAY,iCAAiC,GAAG,MAAM,iBAAiB,GAAG;AACrF,WAAK,MAAM,YAAY,4BAA4B,MAAM,YAAY;AAAA,IACvE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -62,7 +62,7 @@ const _sfc_main = {
|
|
|
62
62
|
});
|
|
63
63
|
return (_ctx, _cache) => {
|
|
64
64
|
return openBlock(), createElementBlock("div", {
|
|
65
|
-
class: normalizeClass(["
|
|
65
|
+
class: normalizeClass(["w-100 pos-relative", { "skeleton-wrapper--loading": __props.loading }])
|
|
66
66
|
}, [
|
|
67
67
|
hasDefaultSlot.value && !__props.structure.length ? renderSlot(_ctx.$slots, "default", { key: 0 }, void 0, true) : __props.structure.length ? (openBlock(), createElementBlock("div", {
|
|
68
68
|
key: 1,
|
|
@@ -74,7 +74,8 @@ const _sfc_main = {
|
|
|
74
74
|
class: normalizeClass(["skeleton-item", [
|
|
75
75
|
`skeleton-item--${item.block}`,
|
|
76
76
|
`skeleton-item--${item.size || "medium"}`,
|
|
77
|
-
{ "skeleton-item--rounded": item.rounded }
|
|
77
|
+
{ "skeleton-item--rounded": item.rounded },
|
|
78
|
+
item.class
|
|
78
79
|
]]),
|
|
79
80
|
style: normalizeStyle(item.style)
|
|
80
81
|
}, null, 6);
|
|
@@ -88,7 +89,7 @@ const _sfc_main = {
|
|
|
88
89
|
};
|
|
89
90
|
}
|
|
90
91
|
};
|
|
91
|
-
const Skeleton = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
92
|
+
const Skeleton = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-b175ac0f"]]);
|
|
92
93
|
export {
|
|
93
94
|
Skeleton as default
|
|
94
95
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Skeleton.vue.js","sources":["../../../../../src/components/Skeleton/Skeleton.vue"],"sourcesContent":["<template>\n <div class=\"
|
|
1
|
+
{"version":3,"file":"Skeleton.vue.js","sources":["../../../../../src/components/Skeleton/Skeleton.vue"],"sourcesContent":["<template>\n <div class=\"w-100 pos-relative\" :class=\"{ 'skeleton-wrapper--loading': loading }\">\n <!-- Используем слот по умолчанию, если он есть -->\n <slot v-if=\"hasDefaultSlot && !structure.length\"></slot>\n \n <div \n v-else-if=\"structure.length\" \n class=\"skeleton-structure\"\n :class=\"{ 'skeleton-structure--horizontal': horizontal }\"\n >\n <div \n v-for=\"(item, index) in structure\" \n :key=\"index\" \n class=\"skeleton-item\"\n :class=\"[\n `skeleton-item--${item.block}`,\n `skeleton-item--${item.size || 'medium'}`,\n { 'skeleton-item--rounded': item.rounded },\n item.class\n ]\"\n :style=\"item.style\"\n />\n </div>\n \n <!-- Если слот пустой и структура не определена - показываем дефолтный скелетон -->\n <div v-else class=\"skeleton-default\">\n <div class=\"skeleton-item skeleton-item--text skeleton-item--small\"></div>\n <div class=\"skeleton-item skeleton-item--text skeleton-item--medium\"></div>\n <div class=\"skeleton-item skeleton-item--text skeleton-item--large\"></div>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, useSlots, computed, onMounted } from 'vue';\n\nconst slots = useSlots();\n\nconst props = defineProps({\n // Флаг загрузки, определяет, нужно ли показывать скелетон\n loading: {\n type: Boolean,\n default: false\n },\n // Структура скелетона, если не используется слот\n structure: {\n type: Array,\n default: () => []\n },\n // Горизонтальное расположение элементов (для карточек пользователей)\n horizontal: {\n type: Boolean,\n default: false\n },\n // Цвет фона карточки (светлый фон)\n cardColor: {\n type: String,\n default: 'rgb(var(--light))'\n },\n // Цвет блоков скелетона (серый)\n blockColor: {\n type: String,\n default: 'rgba(var(--white),0.25)'\n },\n // Цвет анимированной полосы (белый с прозрачностью)\n highlightColor: {\n type: String,\n default: 'rgba(var(--white), 0.9)'\n },\n // Скорость анимации в секундах\n animationDuration: {\n type: Number,\n default: 1.5\n },\n // Радиус закругления\n borderRadius: {\n type: String,\n default: '0.5rem'\n }\n});\n\n// Проверяем наличие слота по умолчанию\nconst hasDefaultSlot = computed(() => Boolean(slots.default));\n\n// Применяем CSS переменные для настройки стилей\nonMounted(() => {\n const root = document.documentElement;\n root.style.setProperty('--skeleton-card-color', props.cardColor);\n root.style.setProperty('--skeleton-block-color', props.blockColor);\n root.style.setProperty('--skeleton-highlight-color', props.highlightColor);\n root.style.setProperty('--skeleton-animation-duration', `${props.animationDuration}s`);\n root.style.setProperty('--skeleton-border-radius', props.borderRadius);\n});\n</script>\n\n<style scoped>\n/* Стили для режима загрузки */\n.skeleton-wrapper--loading ::v-deep(*) {\n color: transparent !important;\n border-color: transparent !important;\n position: relative;\n}\n\n.skeleton-wrapper--loading ::v-deep(img),\n.skeleton-wrapper--loading ::v-deep(svg),\n.skeleton-wrapper--loading ::v-deep(button),\n.skeleton-wrapper--loading ::v-deep(a) {\n opacity: 0;\n}\n\n.skeleton-wrapper--loading ::v-deep(*::before),\n.skeleton-wrapper--loading ::v-deep(*::after) {\n display: none !important;\n}\n\n.skeleton-wrapper--loading ::v-deep(*) {\n position: relative;\n background-color: var(--skeleton-block-color) !important;\n border-radius: var(--skeleton-border-radius);\n overflow: hidden;\n}\n\n.skeleton-wrapper--loading ::v-deep(*)::before {\n content: '';\n position: absolute;\n top: 0;\n left: -100%;\n width: 100%;\n height: 100%;\n display: block !important;\n animation: shimmer var(--skeleton-animation-duration) infinite;\n background: linear-gradient(\n 90deg,\n transparent 0%,\n var(--skeleton-highlight-color) 50%,\n transparent 100%\n );\n}\n\n/* Стили для структурного скелетона */\n.skeleton-structure {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n width: 100%;\n}\n\n/* Горизонтальный скелетон для карточек пользователей */\n.skeleton-structure--horizontal {\n flex-direction: row;\n align-items: center;\n flex-wrap: nowrap;\n}\n\n.skeleton-item {\n background-color: var(--skeleton-block-color);\n border-radius: var(--skeleton-border-radius);\n position: relative;\n overflow: hidden;\n}\n\n.skeleton-item::after {\n content: '';\n position: absolute;\n top: 0;\n left: -100%;\n width: 100%;\n height: 100%;\n animation: shimmer var(--skeleton-animation-duration) infinite;\n background: linear-gradient(\n 90deg,\n transparent 0%,\n var(--skeleton-highlight-color) 50%,\n transparent 100%\n );\n}\n\n/* Типы блоков */\n.skeleton-item--text {\n height: 1rem;\n width: 100%;\n}\n\n.skeleton-item--text-group {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n flex: 1;\n}\n\n.skeleton-item--image {\n width: 100%;\n aspect-ratio: 16 / 9;\n}\n\n.skeleton-item--avatar {\n width: 4rem;\n height: 4rem;\n border-radius: 50%;\n flex-shrink: 0;\n}\n\n.skeleton-item--button {\n height: 3rem;\n width: 8rem;\n}\n\n.skeleton-item--circle {\n border-radius: 50%;\n}\n\n.skeleton-item--action {\n width: 2rem;\n height: 2rem;\n border-radius: 50%;\n flex-shrink: 0;\n}\n\n.skeleton-item--actions-group {\n display: flex;\n gap: 0.5rem;\n margin-left: auto;\n}\n\n.skeleton-item--square {\n aspect-ratio: 1 / 1;\n}\n\n/* Размеры */\n.skeleton-item--small {\n width: 30%;\n}\n\n.skeleton-item--medium {\n width: 60%;\n}\n\n.skeleton-item--large {\n width: 100%;\n}\n\n.skeleton-item--rounded {\n border-radius: 50%;\n}\n\n/* Дефолтный скелетон */\n.skeleton-default {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n width: 100%;\n}\n\n/* Анимация движения полосы */\n@keyframes shimmer {\n 0% {\n left: -100%;\n }\n 100% {\n left: 100%;\n }\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCA,UAAM,QAAQ,SAAU;AAExB,UAAM,QAAQ;AA4Cd,UAAM,iBAAiB,SAAS,MAAM,QAAQ,MAAM,OAAO,CAAC;AAG5D,cAAU,MAAM;AACd,YAAM,OAAO,SAAS;AACtB,WAAK,MAAM,YAAY,yBAAyB,MAAM,SAAS;AAC/D,WAAK,MAAM,YAAY,0BAA0B,MAAM,UAAU;AACjE,WAAK,MAAM,YAAY,8BAA8B,MAAM,cAAc;AACzE,WAAK,MAAM,YAAY,iCAAiC,GAAG,MAAM,iBAAiB,GAAG;AACrF,WAAK,MAAM,YAAY,4BAA4B,MAAM,YAAY;AAAA,IACvE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,46 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
3
|
const vue = require("vue");
|
|
4
|
-
|
|
5
|
-
const vueI18n = require("vue-i18n");
|
|
6
|
-
const Loader = require("../Loader/Loader.vue2.cjs");
|
|
7
|
-
const _pluginVue_exportHelper = require("../../../../_virtual/_plugin-vue_export-helper.cjs");
|
|
4
|
+
;/* empty css */
|
|
8
5
|
const _hoisted_1 = { class: "pos-relative" };
|
|
9
6
|
const _hoisted_2 = {
|
|
10
|
-
key: 0,
|
|
11
|
-
class: "h-20r radius-semi pos-relative w-100 bg-light"
|
|
12
|
-
};
|
|
13
|
-
const _hoisted_3 = {
|
|
14
|
-
key: 1,
|
|
15
|
-
class: "bg-light radius-semi flex flex-center w-100 h-20r"
|
|
16
|
-
};
|
|
17
|
-
const _hoisted_4 = { class: "text-gray-500" };
|
|
18
|
-
const _hoisted_5 = {
|
|
19
7
|
key: 0,
|
|
20
8
|
class: "carousel__dots"
|
|
21
9
|
};
|
|
22
|
-
const
|
|
10
|
+
const _hoisted_3 = ["onClick"];
|
|
23
11
|
const _sfc_main = {
|
|
24
|
-
__name: "Slider
|
|
12
|
+
__name: "Slider",
|
|
25
13
|
props: {
|
|
26
14
|
showDots: Boolean,
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
15
|
+
slideCount: {
|
|
16
|
+
type: Number,
|
|
17
|
+
default: 0
|
|
18
|
+
}
|
|
31
19
|
},
|
|
32
20
|
setup(__props) {
|
|
33
21
|
const props = __props;
|
|
34
|
-
vueRouter.useRouter();
|
|
35
22
|
const carouselRef = vue.ref(null);
|
|
36
|
-
const entitiesState = vue.ref([]);
|
|
37
|
-
const isLoading = vue.ref(true);
|
|
38
23
|
const selectedIndex = vue.ref(0);
|
|
39
24
|
const autoplayInterval = vue.ref(null);
|
|
40
25
|
const scrollTimeout = vue.ref(null);
|
|
41
|
-
const { t } = vueI18n.useI18n({
|
|
42
|
-
messages: props.text
|
|
43
|
-
});
|
|
44
26
|
const scrollTo = (index) => {
|
|
45
27
|
if (!carouselRef.value) return;
|
|
46
28
|
const container = carouselRef.value.querySelector(".carousel__container");
|
|
@@ -69,7 +51,7 @@ const _sfc_main = {
|
|
|
69
51
|
const scrollPosition = container.scrollLeft;
|
|
70
52
|
const slideWidth = slides[0].offsetWidth;
|
|
71
53
|
const index = Math.round(scrollPosition / slideWidth);
|
|
72
|
-
const boundedIndex = Math.max(0, Math.min(index,
|
|
54
|
+
const boundedIndex = Math.max(0, Math.min(index, slides.length - 1));
|
|
73
55
|
selectedIndex.value = boundedIndex;
|
|
74
56
|
};
|
|
75
57
|
const setupAutoplay = () => {
|
|
@@ -77,20 +59,12 @@ const _sfc_main = {
|
|
|
77
59
|
clearInterval(autoplayInterval.value);
|
|
78
60
|
}
|
|
79
61
|
autoplayInterval.value = setInterval(() => {
|
|
80
|
-
const nextIndex = (selectedIndex.value + 1) %
|
|
62
|
+
const nextIndex = (selectedIndex.value + 1) % props.slideCount;
|
|
81
63
|
scrollTo(nextIndex);
|
|
82
64
|
}, 2e3);
|
|
83
65
|
};
|
|
84
|
-
vue.onMounted(
|
|
85
|
-
|
|
86
|
-
entitiesState.value = await props.store.read(props.options);
|
|
87
|
-
} catch (error) {
|
|
88
|
-
console.error("Error loading entities:", error);
|
|
89
|
-
entitiesState.value = [];
|
|
90
|
-
} finally {
|
|
91
|
-
isLoading.value = false;
|
|
92
|
-
}
|
|
93
|
-
if (entitiesState.value.length && carouselRef.value) {
|
|
66
|
+
vue.onMounted(() => {
|
|
67
|
+
if (carouselRef.value) {
|
|
94
68
|
const container = carouselRef.value.querySelector(".carousel__container");
|
|
95
69
|
const slides = container.querySelectorAll(".carousel__slide");
|
|
96
70
|
const observer = new IntersectionObserver((entries) => {
|
|
@@ -166,21 +140,9 @@ const _sfc_main = {
|
|
|
166
140
|
clearTimeout(scrollTimeout.value);
|
|
167
141
|
}
|
|
168
142
|
});
|
|
169
|
-
vue.watch(entitiesState, (newValue) => {
|
|
170
|
-
if (newValue.length && carouselRef.value) {
|
|
171
|
-
selectedIndex.value = 0;
|
|
172
|
-
scrollTo(0);
|
|
173
|
-
setupAutoplay();
|
|
174
|
-
}
|
|
175
|
-
});
|
|
176
143
|
return (_ctx, _cache) => {
|
|
177
144
|
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
|
|
178
|
-
|
|
179
|
-
vue.createVNode(Loader.default)
|
|
180
|
-
])) : !entitiesState.value.length ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3, [
|
|
181
|
-
vue.createElementVNode("p", _hoisted_4, vue.toDisplayString(vue.unref(t)("title")), 1)
|
|
182
|
-
])) : (vue.openBlock(), vue.createElementBlock("div", {
|
|
183
|
-
key: 2,
|
|
145
|
+
vue.createElementVNode("div", {
|
|
184
146
|
class: "carousel",
|
|
185
147
|
ref_key: "carouselRef",
|
|
186
148
|
ref: carouselRef
|
|
@@ -189,41 +151,21 @@ const _sfc_main = {
|
|
|
189
151
|
class: "carousel__container",
|
|
190
152
|
onScroll: handleScroll
|
|
191
153
|
}, [
|
|
192
|
-
|
|
193
|
-
return vue.openBlock(), vue.createElementBlock("div", {
|
|
194
|
-
class: "carousel__slide pd-nano",
|
|
195
|
-
key
|
|
196
|
-
}, [
|
|
197
|
-
vue.createVNode(vue.Transition, {
|
|
198
|
-
name: "fade",
|
|
199
|
-
mode: "out-in",
|
|
200
|
-
appear: ""
|
|
201
|
-
}, {
|
|
202
|
-
default: vue.withCtx(() => [
|
|
203
|
-
vue.renderSlot(_ctx.$slots, "default", {
|
|
204
|
-
item: entity,
|
|
205
|
-
user: __props.user
|
|
206
|
-
}, void 0, true)
|
|
207
|
-
]),
|
|
208
|
-
_: 2
|
|
209
|
-
}, 1024)
|
|
210
|
-
]);
|
|
211
|
-
}), 128))
|
|
154
|
+
vue.renderSlot(_ctx.$slots, "default")
|
|
212
155
|
], 32),
|
|
213
|
-
__props.showDots &&
|
|
214
|
-
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(
|
|
156
|
+
__props.showDots && __props.slideCount > 1 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2, [
|
|
157
|
+
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.slideCount, (index) => {
|
|
215
158
|
return vue.openBlock(), vue.createElementBlock("button", {
|
|
216
|
-
key: index,
|
|
217
|
-
class: vue.normalizeClass(["carousel__dot", { "carousel__dot--active": selectedIndex.value === index }]),
|
|
218
|
-
onClick: ($event) => scrollTo(index)
|
|
219
|
-
}, null, 10,
|
|
159
|
+
key: index - 1,
|
|
160
|
+
class: vue.normalizeClass(["carousel__dot", { "carousel__dot--active": selectedIndex.value === index - 1 }]),
|
|
161
|
+
onClick: ($event) => scrollTo(index - 1)
|
|
162
|
+
}, null, 10, _hoisted_3);
|
|
220
163
|
}), 128))
|
|
221
164
|
])) : vue.createCommentVNode("", true)
|
|
222
|
-
], 512)
|
|
165
|
+
], 512)
|
|
223
166
|
]);
|
|
224
167
|
};
|
|
225
168
|
}
|
|
226
169
|
};
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
//# sourceMappingURL=Slider.native.vue.cjs.map
|
|
170
|
+
exports.default = _sfc_main;
|
|
171
|
+
//# sourceMappingURL=Slider.vue.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Slider.vue.cjs","sources":["../../../../../src/components/Slider/Slider.vue"],"sourcesContent":["<template>\n <div class=\"pos-relative\">\n <!-- Native Carousel -->\n <div class=\"carousel\" ref=\"carouselRef\">\n <div class=\"carousel__container\" @scroll=\"handleScroll\">\n <slot></slot>\n </div>\n \n <!-- Navigation Dots (optional) -->\n <div class=\"carousel__dots\" v-if=\"showDots && slideCount > 1\">\n <button \n v-for=\"index in slideCount\" \n :key=\"index - 1\"\n class=\"carousel__dot\"\n :class=\"{ 'carousel__dot--active': selectedIndex === index - 1 }\"\n @click=\"scrollTo(index - 1)\"\n ></button>\n </div>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, onMounted, onBeforeUnmount, computed } from 'vue'\n\n// Props for customization\nconst props = defineProps({\n showDots: Boolean,\n slideCount: {\n type: Number,\n default: 0\n }\n});\n\nconst carouselRef = ref(null)\nconst selectedIndex = ref(0)\nconst autoplayInterval = ref(null)\nconst scrollTimeout = ref(null)\n\n// Scroll to specific slide\nconst scrollTo = (index) => {\n if (!carouselRef.value) return\n \n const container = carouselRef.value.querySelector('.carousel__container')\n const slides = container.querySelectorAll('.carousel__slide')\n \n if (slides[index]) {\n container.scrollTo({\n left: slides[index].offsetLeft,\n behavior: 'smooth'\n })\n \n selectedIndex.value = index\n }\n}\n\n// Handle scroll event with debounce\nconst handleScroll = () => {\n // Clear previous timeout\n if (scrollTimeout.value) {\n clearTimeout(scrollTimeout.value)\n }\n \n // Set a timeout to update the index when scrolling stops\n scrollTimeout.value = setTimeout(() => {\n updateSelectedIndex()\n }, 50) // Small delay to ensure scroll has completed\n}\n\n// Update selected index when scrolling\nconst updateSelectedIndex = () => {\n if (!carouselRef.value) return\n \n const container = carouselRef.value.querySelector('.carousel__container')\n const slides = container.querySelectorAll('.carousel__slide')\n \n if (!slides.length) return\n \n const scrollPosition = container.scrollLeft\n const slideWidth = slides[0].offsetWidth\n \n // Find current slide index based on scroll position\n const index = Math.round(scrollPosition / slideWidth)\n \n // Ensure index is within bounds\n const boundedIndex = Math.max(0, Math.min(index, slides.length - 1))\n \n // Update selected index\n selectedIndex.value = boundedIndex\n}\n\n// Setup autoplay functionality\nconst setupAutoplay = () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n \n autoplayInterval.value = setInterval(() => {\n const nextIndex = (selectedIndex.value + 1) % props.slideCount\n scrollTo(nextIndex)\n }, 2000) // 2 seconds interval like in original\n}\n\nonMounted(() => {\n // Initialize native carousel after component is mounted\n if (carouselRef.value) {\n // Listen for scroll end using intersection observer for better performance\n const container = carouselRef.value.querySelector('.carousel__container')\n const slides = container.querySelectorAll('.carousel__slide')\n \n // Create intersection observer to detect when slides are visible\n const observer = new IntersectionObserver((entries) => {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n // Find the index of the visible slide\n const slideIndex = Array.from(slides).indexOf(entry.target)\n if (slideIndex !== -1) {\n selectedIndex.value = slideIndex\n }\n }\n })\n }, {\n root: container,\n threshold: 0.7 // Consider slide visible when 70% is in view\n })\n \n // Observe all slides\n slides.forEach(slide => {\n observer.observe(slide)\n })\n \n // Add focus/blur events to pause autoplay on focus\n container.addEventListener('focusin', () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n })\n \n container.addEventListener('focusout', () => {\n setupAutoplay()\n })\n \n // Stop autoplay on touch/mouse interaction\n container.addEventListener('mousedown', () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n })\n \n container.addEventListener('touchstart', () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n })\n \n // Resume autoplay after interaction ends\n container.addEventListener('mouseup', () => {\n setupAutoplay()\n })\n \n container.addEventListener('touchend', () => {\n setupAutoplay()\n })\n \n // Initialize autoplay\n setupAutoplay()\n \n // Store observer for cleanup\n carouselRef.value._observer = observer\n }\n})\n\nonBeforeUnmount(() => {\n // Clean up all resources\n if (carouselRef.value) {\n // Clean up intersection observer\n if (carouselRef.value._observer) {\n carouselRef.value._observer.disconnect()\n }\n \n // Clean up event listeners\n const container = carouselRef.value.querySelector('.carousel__container')\n if (container) {\n container.removeEventListener('focusin', () => {})\n container.removeEventListener('focusout', () => {})\n container.removeEventListener('mousedown', () => {})\n container.removeEventListener('touchstart', () => {})\n container.removeEventListener('mouseup', () => {})\n container.removeEventListener('touchend', () => {})\n }\n }\n \n // Clear all timeouts and intervals\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n \n if (scrollTimeout.value) {\n clearTimeout(scrollTimeout.value)\n }\n})\n</script>\n\n<style >\n.carousel {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel__container {\n display: flex;\n scroll-snap-type: x mandatory;\n overflow-x: scroll;\n scrollbar-width: none; /* Firefox */\n -ms-overflow-style: none; /* IE and Edge */\n scroll-behavior: smooth;\n}\n\n.carousel__container::-webkit-scrollbar {\n display: none; /* Chrome, Safari, Opera */\n}\n\n.carousel__slide {\n flex: 0 0 100%;\n width: 100%;\n scroll-snap-align: start;\n scroll-snap-stop: always;\n}\n\n/* Navigation dots */\n.carousel__dots {\n display: flex;\n justify-content: center;\n gap: 0.5rem;\n margin-top: 1rem;\n}\n\n.carousel__dot {\n width: 0.625rem;\n height: 0.625rem;\n border-radius: 50%;\n background-color: rgba(0, 0, 0, 0.2);\n border: none;\n padding: 0;\n cursor: pointer;\n transition: background-color 0.3s ease;\n}\n\n.carousel__dot--active {\n background-color: rgba(0, 0, 0, 0.6);\n}\n</style>"],"names":["ref","onMounted","onBeforeUnmount"],"mappings":"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"}
|
|
@@ -1,44 +1,26 @@
|
|
|
1
|
-
import { ref, onMounted, onBeforeUnmount,
|
|
2
|
-
|
|
3
|
-
import { useI18n } from "vue-i18n";
|
|
4
|
-
import Loader from "../Loader/Loader.vue2.js";
|
|
5
|
-
import _export_sfc from "../../../../_virtual/_plugin-vue_export-helper.js";
|
|
1
|
+
import { ref, onMounted, onBeforeUnmount, createElementBlock, openBlock, createElementVNode, createCommentVNode, renderSlot, Fragment, renderList, normalizeClass } from "vue";
|
|
2
|
+
/* empty css */
|
|
6
3
|
const _hoisted_1 = { class: "pos-relative" };
|
|
7
4
|
const _hoisted_2 = {
|
|
8
|
-
key: 0,
|
|
9
|
-
class: "h-20r radius-semi pos-relative w-100 bg-light"
|
|
10
|
-
};
|
|
11
|
-
const _hoisted_3 = {
|
|
12
|
-
key: 1,
|
|
13
|
-
class: "bg-light radius-semi flex flex-center w-100 h-20r"
|
|
14
|
-
};
|
|
15
|
-
const _hoisted_4 = { class: "text-gray-500" };
|
|
16
|
-
const _hoisted_5 = {
|
|
17
5
|
key: 0,
|
|
18
6
|
class: "carousel__dots"
|
|
19
7
|
};
|
|
20
|
-
const
|
|
8
|
+
const _hoisted_3 = ["onClick"];
|
|
21
9
|
const _sfc_main = {
|
|
22
|
-
__name: "Slider
|
|
10
|
+
__name: "Slider",
|
|
23
11
|
props: {
|
|
24
12
|
showDots: Boolean,
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
13
|
+
slideCount: {
|
|
14
|
+
type: Number,
|
|
15
|
+
default: 0
|
|
16
|
+
}
|
|
29
17
|
},
|
|
30
18
|
setup(__props) {
|
|
31
19
|
const props = __props;
|
|
32
|
-
useRouter();
|
|
33
20
|
const carouselRef = ref(null);
|
|
34
|
-
const entitiesState = ref([]);
|
|
35
|
-
const isLoading = ref(true);
|
|
36
21
|
const selectedIndex = ref(0);
|
|
37
22
|
const autoplayInterval = ref(null);
|
|
38
23
|
const scrollTimeout = ref(null);
|
|
39
|
-
const { t } = useI18n({
|
|
40
|
-
messages: props.text
|
|
41
|
-
});
|
|
42
24
|
const scrollTo = (index) => {
|
|
43
25
|
if (!carouselRef.value) return;
|
|
44
26
|
const container = carouselRef.value.querySelector(".carousel__container");
|
|
@@ -67,7 +49,7 @@ const _sfc_main = {
|
|
|
67
49
|
const scrollPosition = container.scrollLeft;
|
|
68
50
|
const slideWidth = slides[0].offsetWidth;
|
|
69
51
|
const index = Math.round(scrollPosition / slideWidth);
|
|
70
|
-
const boundedIndex = Math.max(0, Math.min(index,
|
|
52
|
+
const boundedIndex = Math.max(0, Math.min(index, slides.length - 1));
|
|
71
53
|
selectedIndex.value = boundedIndex;
|
|
72
54
|
};
|
|
73
55
|
const setupAutoplay = () => {
|
|
@@ -75,20 +57,12 @@ const _sfc_main = {
|
|
|
75
57
|
clearInterval(autoplayInterval.value);
|
|
76
58
|
}
|
|
77
59
|
autoplayInterval.value = setInterval(() => {
|
|
78
|
-
const nextIndex = (selectedIndex.value + 1) %
|
|
60
|
+
const nextIndex = (selectedIndex.value + 1) % props.slideCount;
|
|
79
61
|
scrollTo(nextIndex);
|
|
80
62
|
}, 2e3);
|
|
81
63
|
};
|
|
82
|
-
onMounted(
|
|
83
|
-
|
|
84
|
-
entitiesState.value = await props.store.read(props.options);
|
|
85
|
-
} catch (error) {
|
|
86
|
-
console.error("Error loading entities:", error);
|
|
87
|
-
entitiesState.value = [];
|
|
88
|
-
} finally {
|
|
89
|
-
isLoading.value = false;
|
|
90
|
-
}
|
|
91
|
-
if (entitiesState.value.length && carouselRef.value) {
|
|
64
|
+
onMounted(() => {
|
|
65
|
+
if (carouselRef.value) {
|
|
92
66
|
const container = carouselRef.value.querySelector(".carousel__container");
|
|
93
67
|
const slides = container.querySelectorAll(".carousel__slide");
|
|
94
68
|
const observer = new IntersectionObserver((entries) => {
|
|
@@ -164,21 +138,9 @@ const _sfc_main = {
|
|
|
164
138
|
clearTimeout(scrollTimeout.value);
|
|
165
139
|
}
|
|
166
140
|
});
|
|
167
|
-
watch(entitiesState, (newValue) => {
|
|
168
|
-
if (newValue.length && carouselRef.value) {
|
|
169
|
-
selectedIndex.value = 0;
|
|
170
|
-
scrollTo(0);
|
|
171
|
-
setupAutoplay();
|
|
172
|
-
}
|
|
173
|
-
});
|
|
174
141
|
return (_ctx, _cache) => {
|
|
175
142
|
return openBlock(), createElementBlock("div", _hoisted_1, [
|
|
176
|
-
|
|
177
|
-
createVNode(Loader)
|
|
178
|
-
])) : !entitiesState.value.length ? (openBlock(), createElementBlock("div", _hoisted_3, [
|
|
179
|
-
createElementVNode("p", _hoisted_4, toDisplayString(unref(t)("title")), 1)
|
|
180
|
-
])) : (openBlock(), createElementBlock("div", {
|
|
181
|
-
key: 2,
|
|
143
|
+
createElementVNode("div", {
|
|
182
144
|
class: "carousel",
|
|
183
145
|
ref_key: "carouselRef",
|
|
184
146
|
ref: carouselRef
|
|
@@ -187,43 +149,23 @@ const _sfc_main = {
|
|
|
187
149
|
class: "carousel__container",
|
|
188
150
|
onScroll: handleScroll
|
|
189
151
|
}, [
|
|
190
|
-
(
|
|
191
|
-
return openBlock(), createElementBlock("div", {
|
|
192
|
-
class: "carousel__slide pd-nano",
|
|
193
|
-
key
|
|
194
|
-
}, [
|
|
195
|
-
createVNode(Transition, {
|
|
196
|
-
name: "fade",
|
|
197
|
-
mode: "out-in",
|
|
198
|
-
appear: ""
|
|
199
|
-
}, {
|
|
200
|
-
default: withCtx(() => [
|
|
201
|
-
renderSlot(_ctx.$slots, "default", {
|
|
202
|
-
item: entity,
|
|
203
|
-
user: __props.user
|
|
204
|
-
}, void 0, true)
|
|
205
|
-
]),
|
|
206
|
-
_: 2
|
|
207
|
-
}, 1024)
|
|
208
|
-
]);
|
|
209
|
-
}), 128))
|
|
152
|
+
renderSlot(_ctx.$slots, "default")
|
|
210
153
|
], 32),
|
|
211
|
-
__props.showDots &&
|
|
212
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList(
|
|
154
|
+
__props.showDots && __props.slideCount > 1 ? (openBlock(), createElementBlock("div", _hoisted_2, [
|
|
155
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(__props.slideCount, (index) => {
|
|
213
156
|
return openBlock(), createElementBlock("button", {
|
|
214
|
-
key: index,
|
|
215
|
-
class: normalizeClass(["carousel__dot", { "carousel__dot--active": selectedIndex.value === index }]),
|
|
216
|
-
onClick: ($event) => scrollTo(index)
|
|
217
|
-
}, null, 10,
|
|
157
|
+
key: index - 1,
|
|
158
|
+
class: normalizeClass(["carousel__dot", { "carousel__dot--active": selectedIndex.value === index - 1 }]),
|
|
159
|
+
onClick: ($event) => scrollTo(index - 1)
|
|
160
|
+
}, null, 10, _hoisted_3);
|
|
218
161
|
}), 128))
|
|
219
162
|
])) : createCommentVNode("", true)
|
|
220
|
-
], 512)
|
|
163
|
+
], 512)
|
|
221
164
|
]);
|
|
222
165
|
};
|
|
223
166
|
}
|
|
224
167
|
};
|
|
225
|
-
const SliderNative = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-a766dedc"]]);
|
|
226
168
|
export {
|
|
227
|
-
|
|
169
|
+
_sfc_main as default
|
|
228
170
|
};
|
|
229
|
-
//# sourceMappingURL=Slider.
|
|
171
|
+
//# sourceMappingURL=Slider.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Slider.vue.js","sources":["../../../../../src/components/Slider/Slider.vue"],"sourcesContent":["<template>\n <div class=\"pos-relative\">\n <!-- Native Carousel -->\n <div class=\"carousel\" ref=\"carouselRef\">\n <div class=\"carousel__container\" @scroll=\"handleScroll\">\n <slot></slot>\n </div>\n \n <!-- Navigation Dots (optional) -->\n <div class=\"carousel__dots\" v-if=\"showDots && slideCount > 1\">\n <button \n v-for=\"index in slideCount\" \n :key=\"index - 1\"\n class=\"carousel__dot\"\n :class=\"{ 'carousel__dot--active': selectedIndex === index - 1 }\"\n @click=\"scrollTo(index - 1)\"\n ></button>\n </div>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, onMounted, onBeforeUnmount, computed } from 'vue'\n\n// Props for customization\nconst props = defineProps({\n showDots: Boolean,\n slideCount: {\n type: Number,\n default: 0\n }\n});\n\nconst carouselRef = ref(null)\nconst selectedIndex = ref(0)\nconst autoplayInterval = ref(null)\nconst scrollTimeout = ref(null)\n\n// Scroll to specific slide\nconst scrollTo = (index) => {\n if (!carouselRef.value) return\n \n const container = carouselRef.value.querySelector('.carousel__container')\n const slides = container.querySelectorAll('.carousel__slide')\n \n if (slides[index]) {\n container.scrollTo({\n left: slides[index].offsetLeft,\n behavior: 'smooth'\n })\n \n selectedIndex.value = index\n }\n}\n\n// Handle scroll event with debounce\nconst handleScroll = () => {\n // Clear previous timeout\n if (scrollTimeout.value) {\n clearTimeout(scrollTimeout.value)\n }\n \n // Set a timeout to update the index when scrolling stops\n scrollTimeout.value = setTimeout(() => {\n updateSelectedIndex()\n }, 50) // Small delay to ensure scroll has completed\n}\n\n// Update selected index when scrolling\nconst updateSelectedIndex = () => {\n if (!carouselRef.value) return\n \n const container = carouselRef.value.querySelector('.carousel__container')\n const slides = container.querySelectorAll('.carousel__slide')\n \n if (!slides.length) return\n \n const scrollPosition = container.scrollLeft\n const slideWidth = slides[0].offsetWidth\n \n // Find current slide index based on scroll position\n const index = Math.round(scrollPosition / slideWidth)\n \n // Ensure index is within bounds\n const boundedIndex = Math.max(0, Math.min(index, slides.length - 1))\n \n // Update selected index\n selectedIndex.value = boundedIndex\n}\n\n// Setup autoplay functionality\nconst setupAutoplay = () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n \n autoplayInterval.value = setInterval(() => {\n const nextIndex = (selectedIndex.value + 1) % props.slideCount\n scrollTo(nextIndex)\n }, 2000) // 2 seconds interval like in original\n}\n\nonMounted(() => {\n // Initialize native carousel after component is mounted\n if (carouselRef.value) {\n // Listen for scroll end using intersection observer for better performance\n const container = carouselRef.value.querySelector('.carousel__container')\n const slides = container.querySelectorAll('.carousel__slide')\n \n // Create intersection observer to detect when slides are visible\n const observer = new IntersectionObserver((entries) => {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n // Find the index of the visible slide\n const slideIndex = Array.from(slides).indexOf(entry.target)\n if (slideIndex !== -1) {\n selectedIndex.value = slideIndex\n }\n }\n })\n }, {\n root: container,\n threshold: 0.7 // Consider slide visible when 70% is in view\n })\n \n // Observe all slides\n slides.forEach(slide => {\n observer.observe(slide)\n })\n \n // Add focus/blur events to pause autoplay on focus\n container.addEventListener('focusin', () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n })\n \n container.addEventListener('focusout', () => {\n setupAutoplay()\n })\n \n // Stop autoplay on touch/mouse interaction\n container.addEventListener('mousedown', () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n })\n \n container.addEventListener('touchstart', () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n })\n \n // Resume autoplay after interaction ends\n container.addEventListener('mouseup', () => {\n setupAutoplay()\n })\n \n container.addEventListener('touchend', () => {\n setupAutoplay()\n })\n \n // Initialize autoplay\n setupAutoplay()\n \n // Store observer for cleanup\n carouselRef.value._observer = observer\n }\n})\n\nonBeforeUnmount(() => {\n // Clean up all resources\n if (carouselRef.value) {\n // Clean up intersection observer\n if (carouselRef.value._observer) {\n carouselRef.value._observer.disconnect()\n }\n \n // Clean up event listeners\n const container = carouselRef.value.querySelector('.carousel__container')\n if (container) {\n container.removeEventListener('focusin', () => {})\n container.removeEventListener('focusout', () => {})\n container.removeEventListener('mousedown', () => {})\n container.removeEventListener('touchstart', () => {})\n container.removeEventListener('mouseup', () => {})\n container.removeEventListener('touchend', () => {})\n }\n }\n \n // Clear all timeouts and intervals\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n \n if (scrollTimeout.value) {\n clearTimeout(scrollTimeout.value)\n }\n})\n</script>\n\n<style >\n.carousel {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel__container {\n display: flex;\n scroll-snap-type: x mandatory;\n overflow-x: scroll;\n scrollbar-width: none; /* Firefox */\n -ms-overflow-style: none; /* IE and Edge */\n scroll-behavior: smooth;\n}\n\n.carousel__container::-webkit-scrollbar {\n display: none; /* Chrome, Safari, Opera */\n}\n\n.carousel__slide {\n flex: 0 0 100%;\n width: 100%;\n scroll-snap-align: start;\n scroll-snap-stop: always;\n}\n\n/* Navigation dots */\n.carousel__dots {\n display: flex;\n justify-content: center;\n gap: 0.5rem;\n margin-top: 1rem;\n}\n\n.carousel__dot {\n width: 0.625rem;\n height: 0.625rem;\n border-radius: 50%;\n background-color: rgba(0, 0, 0, 0.2);\n border: none;\n padding: 0;\n cursor: pointer;\n transition: background-color 0.3s ease;\n}\n\n.carousel__dot--active {\n background-color: rgba(0, 0, 0, 0.6);\n}\n</style>"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Status.vue.cjs","sources":["../../../../../src/components/Status/Status.vue"],"sourcesContent":["<template>\n\t<div class=\"pd-small error-wrapper\">\n\t\t<div class=\"\n\t\t\tflex-nowrap flex\n\t\t\tradius-small\n\t\t\tpd-small\n\t\t\tt-white \n\t\t\tbg-fourth\n\t\t\">\n\t\t\t<p class=\"w-100\">\n\t\t\t\t{{data.message}}\n\t\t\t\t<!-- <span class=\"t-semi\">Ошибка: {{status}} </span> -->\n\t\t\t\t<br>\n\t\t\t\t<!-- <span>Сообщение: {{message}}</span> -->\n\t\t\t</p>\n\t\t\t\n\t\t\t<IconCross @click=\"closeError()\" class=\"cursor-pointer hover-scale-1 i-regular z-index-5\"/>\n\t\t</div>\n\t</div>\n</template>\n\n\n<script setup=\"props\">\n\timport { computed } from 'vue'\n\timport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue';\n\n\tconst emits = defineEmits('close')\n\n\tconst props = defineProps({\n\t status: String,\n\t message: String,\n\t show: Boolean,\n\t data: Object\n\t})\n\n\tfunction closeError () {\n\t\temits('close')\n\t} \n</script>\n\n<style lang=\"scss\">\n\t.error-wrapper {\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\tright: 0;\n\t
|
|
1
|
+
{"version":3,"file":"Status.vue.cjs","sources":["../../../../../src/components/Status/Status.vue"],"sourcesContent":["<template>\n\t<div class=\"pd-small error-wrapper\">\n\t\t<div class=\"\n\t\t\tflex-nowrap flex\n\t\t\tradius-small\n\t\t\tpd-small\n\t\t\tt-white \n\t\t\tbg-fourth\n\t\t\">\n\t\t\t<p class=\"w-100\">\n\t\t\t\t{{data.message}}\n\t\t\t\t<!-- <span class=\"t-semi\">Ошибка: {{status}} </span> -->\n\t\t\t\t<br>\n\t\t\t\t<!-- <span>Сообщение: {{message}}</span> -->\n\t\t\t</p>\n\t\t\t\n\t\t\t<IconCross @click=\"closeError()\" class=\"cursor-pointer hover-scale-1 i-regular z-index-5\"/>\n\t\t</div>\n\t</div>\n</template>\n\n\n<script setup=\"props\">\n\timport { computed } from 'vue'\n\timport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue';\n\n\tconst emits = defineEmits('close')\n\n\tconst props = defineProps({\n\t status: String,\n\t message: String,\n\t show: Boolean,\n\t data: Object\n\t})\n\n\tfunction closeError () {\n\t\temits('close')\n\t} \n</script>\n\n<style lang=\"scss\">\n\t.error-wrapper {\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\tright: 0;\n\t}\n</style>\n\n\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AA0BC,UAAM,QAAQ;AASd,aAAS,aAAc;AACtB,YAAM,OAAO;AAAA,IACb;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Status.vue.js","sources":["../../../../../src/components/Status/Status.vue"],"sourcesContent":["<template>\n\t<div class=\"pd-small error-wrapper\">\n\t\t<div class=\"\n\t\t\tflex-nowrap flex\n\t\t\tradius-small\n\t\t\tpd-small\n\t\t\tt-white \n\t\t\tbg-fourth\n\t\t\">\n\t\t\t<p class=\"w-100\">\n\t\t\t\t{{data.message}}\n\t\t\t\t<!-- <span class=\"t-semi\">Ошибка: {{status}} </span> -->\n\t\t\t\t<br>\n\t\t\t\t<!-- <span>Сообщение: {{message}}</span> -->\n\t\t\t</p>\n\t\t\t\n\t\t\t<IconCross @click=\"closeError()\" class=\"cursor-pointer hover-scale-1 i-regular z-index-5\"/>\n\t\t</div>\n\t</div>\n</template>\n\n\n<script setup=\"props\">\n\timport { computed } from 'vue'\n\timport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue';\n\n\tconst emits = defineEmits('close')\n\n\tconst props = defineProps({\n\t status: String,\n\t message: String,\n\t show: Boolean,\n\t data: Object\n\t})\n\n\tfunction closeError () {\n\t\temits('close')\n\t} \n</script>\n\n<style lang=\"scss\">\n\t.error-wrapper {\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\tright: 0;\n\t
|
|
1
|
+
{"version":3,"file":"Status.vue.js","sources":["../../../../../src/components/Status/Status.vue"],"sourcesContent":["<template>\n\t<div class=\"pd-small error-wrapper\">\n\t\t<div class=\"\n\t\t\tflex-nowrap flex\n\t\t\tradius-small\n\t\t\tpd-small\n\t\t\tt-white \n\t\t\tbg-fourth\n\t\t\">\n\t\t\t<p class=\"w-100\">\n\t\t\t\t{{data.message}}\n\t\t\t\t<!-- <span class=\"t-semi\">Ошибка: {{status}} </span> -->\n\t\t\t\t<br>\n\t\t\t\t<!-- <span>Сообщение: {{message}}</span> -->\n\t\t\t</p>\n\t\t\t\n\t\t\t<IconCross @click=\"closeError()\" class=\"cursor-pointer hover-scale-1 i-regular z-index-5\"/>\n\t\t</div>\n\t</div>\n</template>\n\n\n<script setup=\"props\">\n\timport { computed } from 'vue'\n\timport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue';\n\n\tconst emits = defineEmits('close')\n\n\tconst props = defineProps({\n\t status: String,\n\t message: String,\n\t show: Boolean,\n\t data: Object\n\t})\n\n\tfunction closeError () {\n\t\temits('close')\n\t} \n</script>\n\n<style lang=\"scss\">\n\t.error-wrapper {\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\tright: 0;\n\t}\n</style>\n\n\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AA0BC,UAAM,QAAQ;AASd,aAAS,aAAc;AACtB,YAAM,OAAO;AAAA,IACb;;;;;;;;;;;;;;;;;"}
|
|
@@ -18,7 +18,7 @@ const _sfc_main = {
|
|
|
18
18
|
zIndex: 1e3,
|
|
19
19
|
background: "#333",
|
|
20
20
|
color: "#fff",
|
|
21
|
-
padding: "5px
|
|
21
|
+
padding: "5px",
|
|
22
22
|
borderRadius: "3px",
|
|
23
23
|
fontSize: "14px",
|
|
24
24
|
display: "none"
|
|
@@ -43,7 +43,9 @@ const _sfc_main = {
|
|
|
43
43
|
vue.createElementVNode("div", {
|
|
44
44
|
class: "tooltip-content",
|
|
45
45
|
style: vue.normalizeStyle(tooltipStyle)
|
|
46
|
-
},
|
|
46
|
+
}, [
|
|
47
|
+
vue.createElementVNode("span", null, vue.toDisplayString(__props.text), 1)
|
|
48
|
+
], 4)
|
|
47
49
|
], 32);
|
|
48
50
|
};
|
|
49
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.vue2.cjs","sources":["../../../../../src/components/Tooltip/Tooltip.vue"],"sourcesContent":["<template>\n <div class=\"cursor-pointer tooltip-container\" @mouseover=\"showTooltip\" @mouseleave=\"hideTooltip\">\n <slot></slot>\n <div class=\"tooltip-content\" :style=\"tooltipStyle\">\n {{ text }}
|
|
1
|
+
{"version":3,"file":"Tooltip.vue2.cjs","sources":["../../../../../src/components/Tooltip/Tooltip.vue"],"sourcesContent":["<template>\n <div class=\"cursor-pointer tooltip-container\" @mouseover=\"showTooltip\" @mouseleave=\"hideTooltip\">\n <slot></slot>\n <div class=\"tooltip-content\" :style=\"tooltipStyle\">\n <span>{{ text }}</span>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, reactive } from 'vue';\n\nconst props = defineProps({\n text: {\n type: String,\n required: true\n }\n});\n\nconst visible = ref(false);\n\nconst tooltipStyle = reactive({\n position: 'absolute',\n width: 'max-content',\n zIndex: 1000,\n background: '#333',\n color: '#fff',\n padding: '5px',\n borderRadius: '3px',\n fontSize: '14px',\n display: 'none',\n});\n\nfunction showTooltip(event) {\n visible.value = true;\n tooltipStyle.left = `${(event.clientX / 100) + 10 }px`;\n tooltipStyle.top = `${(event.clientY / 100) + 10 }px`;\n tooltipStyle.display = 'block';\n}\n\nfunction hideTooltip() {\n visible.value = false;\n tooltipStyle.display = 'none';\n}\n</script>\n\n<style >\n.tooltip-container {\n position: relative;\n display: inline-block;\n}\n\n.tooltip-content {\n pointer-events: none;\n}\n</style>"],"names":["ref","reactive"],"mappings":";;;;;;;;;;;;;AAmBA,UAAM,UAAUA,IAAG,IAAC,KAAK;AAEzB,UAAM,eAAeC,IAAAA,SAAS;AAAA,MAC5B,UAAU;AAAA,MACV,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,OAAO;AAAA,MACP,SAAS;AAAA,MACT,cAAc;AAAA,MACd,UAAU;AAAA,MACV,SAAS;AAAA,IACX,CAAC;AAED,aAAS,YAAY,OAAO;AAC1B,cAAQ,QAAQ;AAChB,mBAAa,OAAO,GAAI,MAAM,UAAU,MAAO,EAAE;AACjD,mBAAa,MAAM,GAAI,MAAM,UAAU,MAAO,EAAE;AAChD,mBAAa,UAAU;AAAA,IACzB;AAEA,aAAS,cAAc;AACrB,cAAQ,QAAQ;AAChB,mBAAa,UAAU;AAAA,IACzB;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -16,7 +16,7 @@ const _sfc_main = {
|
|
|
16
16
|
zIndex: 1e3,
|
|
17
17
|
background: "#333",
|
|
18
18
|
color: "#fff",
|
|
19
|
-
padding: "5px
|
|
19
|
+
padding: "5px",
|
|
20
20
|
borderRadius: "3px",
|
|
21
21
|
fontSize: "14px",
|
|
22
22
|
display: "none"
|
|
@@ -41,7 +41,9 @@ const _sfc_main = {
|
|
|
41
41
|
createElementVNode("div", {
|
|
42
42
|
class: "tooltip-content",
|
|
43
43
|
style: normalizeStyle(tooltipStyle)
|
|
44
|
-
},
|
|
44
|
+
}, [
|
|
45
|
+
createElementVNode("span", null, toDisplayString(__props.text), 1)
|
|
46
|
+
], 4)
|
|
45
47
|
], 32);
|
|
46
48
|
};
|
|
47
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.vue2.js","sources":["../../../../../src/components/Tooltip/Tooltip.vue"],"sourcesContent":["<template>\n <div class=\"cursor-pointer tooltip-container\" @mouseover=\"showTooltip\" @mouseleave=\"hideTooltip\">\n <slot></slot>\n <div class=\"tooltip-content\" :style=\"tooltipStyle\">\n {{ text }}
|
|
1
|
+
{"version":3,"file":"Tooltip.vue2.js","sources":["../../../../../src/components/Tooltip/Tooltip.vue"],"sourcesContent":["<template>\n <div class=\"cursor-pointer tooltip-container\" @mouseover=\"showTooltip\" @mouseleave=\"hideTooltip\">\n <slot></slot>\n <div class=\"tooltip-content\" :style=\"tooltipStyle\">\n <span>{{ text }}</span>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, reactive } from 'vue';\n\nconst props = defineProps({\n text: {\n type: String,\n required: true\n }\n});\n\nconst visible = ref(false);\n\nconst tooltipStyle = reactive({\n position: 'absolute',\n width: 'max-content',\n zIndex: 1000,\n background: '#333',\n color: '#fff',\n padding: '5px',\n borderRadius: '3px',\n fontSize: '14px',\n display: 'none',\n});\n\nfunction showTooltip(event) {\n visible.value = true;\n tooltipStyle.left = `${(event.clientX / 100) + 10 }px`;\n tooltipStyle.top = `${(event.clientY / 100) + 10 }px`;\n tooltipStyle.display = 'block';\n}\n\nfunction hideTooltip() {\n visible.value = false;\n tooltipStyle.display = 'none';\n}\n</script>\n\n<style >\n.tooltip-container {\n position: relative;\n display: inline-block;\n}\n\n.tooltip-content {\n pointer-events: none;\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;AAmBA,UAAM,UAAU,IAAI,KAAK;AAEzB,UAAM,eAAe,SAAS;AAAA,MAC5B,UAAU;AAAA,MACV,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,OAAO;AAAA,MACP,SAAS;AAAA,MACT,cAAc;AAAA,MACd,UAAU;AAAA,MACV,SAAS;AAAA,IACX,CAAC;AAED,aAAS,YAAY,OAAO;AAC1B,cAAQ,QAAQ;AAChB,mBAAa,OAAO,GAAI,MAAM,UAAU,MAAO,EAAE;AACjD,mBAAa,MAAM,GAAI,MAAM,UAAU,MAAO,EAAE;AAChD,mBAAa,UAAU;AAAA,IACzB;AAEA,aAAS,cAAc;AACrB,cAAQ,QAAQ;AAChB,mBAAa,UAAU;AAAA,IACzB;;;;;;;;;;;;;;;;;;"}
|
|
@@ -4,7 +4,7 @@ const vue = require("vue");
|
|
|
4
4
|
;/* empty css */
|
|
5
5
|
;/* empty css */
|
|
6
6
|
const Dropdown = require("../../../../../components/Dropdown/Dropdown.vue.cjs");
|
|
7
|
-
const Menu = require("../../../../../components/Menu/Menu.
|
|
7
|
+
const Menu = require("../../../../../components/Menu/Menu.vue2.cjs");
|
|
8
8
|
const MenuItem = require("../../../../../components/Menu/MenuItem.vue.cjs");
|
|
9
9
|
const ButtonToggleMembership = require("../../../../organizations/components/elements/ButtonToggleMembership.vue.cjs");
|
|
10
10
|
const FormReport = require("../../../../reports/components/sections/FormReport.vue.cjs");
|
|
@@ -105,6 +105,7 @@ const _sfc_main = {
|
|
|
105
105
|
}
|
|
106
106
|
return (_ctx, _cache) => {
|
|
107
107
|
var _a;
|
|
108
|
+
const _component_RouterView = vue.resolveComponent("RouterView");
|
|
108
109
|
return show.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
|
|
109
110
|
((_a = users.state.current) == null ? void 0 : _a.status) === "removed" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2, " Sorry, user has been removed. ")) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_3, [
|
|
110
111
|
vue.createElementVNode("section", _hoisted_4, [
|
|
@@ -193,6 +194,7 @@ const _sfc_main = {
|
|
|
193
194
|
class: "mn-r-auto mn-l-auto"
|
|
194
195
|
}, null, 8, ["telegram", "facebook", "instagram", "twitter"])
|
|
195
196
|
]),
|
|
197
|
+
vue.createVNode(_component_RouterView),
|
|
196
198
|
filteredModules.value.length > 0 ? (vue.openBlock(), vue.createBlock(Menu.default, {
|
|
197
199
|
key: 0,
|
|
198
200
|
class: "mn-b-regular bg-light"
|