@ozdao/martyrs 0.2.485 → 0.2.487
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Media-B2jWzwLB.cjs +1 -0
- package/dist/{Media-DlUBwVWs.js → Media-DZ5_ItXQ.js} +3 -3
- package/dist/_virtual/index.cjs +4 -4
- package/dist/_virtual/index.js +4 -4
- package/dist/_virtual/index2.cjs +4 -4
- package/dist/_virtual/index2.js +4 -4
- package/dist/auth.server.cjs +3 -24
- package/dist/auth.server.js +2 -23
- package/dist/{authJwt-DBB51Iql.cjs → authJwt-D35KyJlE.cjs} +31 -2
- package/dist/{authJwt-DcYNNwcr.js → authJwt-DqxhUym0.js} +31 -2
- package/dist/chats.server.cjs +1 -1
- package/dist/chats.server.js +1 -1
- package/dist/community.server.cjs +1 -1
- package/dist/community.server.js +1 -1
- package/dist/crud-BDIArc5A.cjs +1096 -0
- package/dist/crud-DJvpe0aZ.js +1097 -0
- package/dist/events.server.cjs +1 -1
- package/dist/events.server.js +1 -1
- package/dist/files.server.cjs +1 -1
- package/dist/files.server.js +1 -1
- package/dist/gallery.server.cjs +1 -1
- package/dist/gallery.server.js +1 -1
- package/dist/globals.server.cjs +3 -322
- package/dist/globals.server.js +1 -303
- package/dist/globals.websocket-DzvdIBf6.js +306 -0
- package/dist/globals.websocket-k6_B1T7k.cjs +322 -0
- package/dist/{index-CsJwdsBW.js → index-CVuQC4k1.js} +1 -1
- package/dist/{index-YNOkL1mu.cjs → index-DiSKVCaA.cjs} +1 -1
- package/dist/main-C6_DPWGX.cjs +11 -0
- package/dist/{main-CK6rC5Sz.js → main-nQmkbWsW.js} +2291 -2224
- package/dist/martyrs/src/components/Button/{Button.vue2.cjs → Button.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Button/{Button.vue2.js.map → Button.vue.cjs.map} +1 -1
- package/dist/martyrs/src/components/Button/{Button.vue2.js → Button.vue.js} +2 -2
- package/dist/martyrs/src/components/Button/Button.vue.js.map +1 -0
- package/dist/martyrs/src/components/{DatePicker → Calendar}/Calendar.vue.cjs +1 -1
- package/dist/martyrs/src/components/Calendar/Calendar.vue.cjs.map +1 -0
- package/dist/martyrs/src/components/{DatePicker → Calendar}/Calendar.vue.js +1 -1
- package/dist/martyrs/src/components/Calendar/Calendar.vue.js.map +1 -0
- package/dist/martyrs/src/components/Chips/{Chips.vue2.cjs → Chips.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Chips/Chips.vue.cjs.map +1 -0
- package/dist/martyrs/src/components/Chips/{Chips.vue2.js → Chips.vue.js} +2 -2
- package/dist/martyrs/src/components/Chips/Chips.vue.js.map +1 -0
- package/dist/martyrs/src/components/Feed/Feed.vue.cjs +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.js +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
- package/dist/martyrs/src/components/Field/{Field.vue.cjs → Field.vue2.cjs} +5 -6
- package/dist/martyrs/src/components/Field/Field.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Field/{Field.vue.js → Field.vue2.js} +5 -6
- package/dist/martyrs/src/components/Field/Field.vue2.js.map +1 -0
- package/dist/martyrs/src/components/FieldBig/FieldBig.vue.cjs +10 -9
- package/dist/martyrs/src/components/FieldBig/FieldBig.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +13 -12
- package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js.map +1 -1
- package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.cjs +1 -1
- package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.js +1 -1
- package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.js.map +1 -1
- package/dist/martyrs/src/components/FieldTags/FieldTags.vue.cjs +1 -1
- package/dist/martyrs/src/components/FieldTags/FieldTags.vue.js +1 -1
- package/dist/martyrs/src/components/Media/Media.vue.cjs +2 -2
- package/dist/martyrs/src/components/Media/Media.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Media/Media.vue.js +2 -2
- package/dist/martyrs/src/components/Media/Media.vue.js.map +1 -1
- package/dist/martyrs/src/components/Menu/{Menu.vue2.cjs → Menu.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Menu/Menu.vue.cjs.map +1 -0
- package/dist/martyrs/src/components/Menu/{Menu.vue2.js → Menu.vue.js} +2 -2
- package/dist/martyrs/src/components/Menu/Menu.vue.js.map +1 -0
- package/dist/martyrs/src/components/Popup/{Popup.vue2.cjs → Popup.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Popup/{Popup.vue2.js.map → Popup.vue.cjs.map} +1 -1
- package/dist/martyrs/src/components/Popup/{Popup.vue2.js → Popup.vue.js} +2 -2
- package/dist/martyrs/src/components/Popup/Popup.vue.js.map +1 -0
- package/dist/martyrs/src/components/Select/Select.vue.cjs +2 -2
- package/dist/martyrs/src/components/Select/Select.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Select/Select.vue.js +2 -2
- package/dist/martyrs/src/components/Select/Select.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.cjs +1 -0
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.js +1 -0
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +5 -5
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +5 -5
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +3 -2
- 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 +3 -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 +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.cjs +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +10 -10
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.cjs +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +4 -4
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +5 -5
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +4 -4
- package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.cjs +2 -2
- package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +23 -23
- 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/pages/BlogPost.vue.cjs +3 -3
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +3 -3
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +4 -4
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +13 -13
- package/dist/martyrs/src/modules/constructor/components/elements/Card.vue.cjs +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/Card.vue.js +3 -3
- package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.cjs +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.js +2 -2
- 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/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 +3 -3
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +25 -25
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs +3 -3
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +16 -16
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +9 -2
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +9 -2
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.js.map +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/gallery/components/pages/Gallery.vue.cjs +1 -1
- package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.js +1 -1
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +4 -3
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +4 -3
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.js +1 -1
- package/dist/martyrs/src/modules/globals/views/classes/globals.store.cjs +24 -58
- package/dist/martyrs/src/modules/globals/views/classes/globals.store.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/classes/globals.store.js +24 -58
- package/dist/martyrs/src/modules/globals/views/classes/globals.store.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/BlockSearch.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue.js +2 -2
- 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.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupAuth.vue.cjs +2 -2
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupAuth.vue.js +2 -2
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs +3 -3
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js +3 -3
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js.map +1 -1
- 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/components/sections/Filters.vue2.cjs +2 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.js +2 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterOptions.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterOptions.vue.js +2 -2
- package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterPrice.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterPrice.vue.js +3 -3
- package/dist/martyrs/src/modules/globals/views/store/globals.cjs +6 -0
- package/dist/martyrs/src/modules/globals/views/store/globals.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/store/globals.js +6 -0
- package/dist/martyrs/src/modules/globals/views/store/globals.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/utils/axios-instance.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/utils/axios-instance.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/utils/query-serializer.cjs +100 -0
- package/dist/martyrs/src/modules/globals/views/utils/query-serializer.cjs.map +1 -0
- package/dist/martyrs/src/modules/globals/views/utils/query-serializer.js +100 -0
- package/dist/martyrs/src/modules/globals/views/utils/query-serializer.js.map +1 -0
- package/dist/martyrs/src/modules/icons/components/IconSearchPopup.vue.cjs +224 -0
- package/dist/martyrs/src/modules/icons/components/IconSearchPopup.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/icons/components/IconSearchPopup.vue.js +224 -0
- package/dist/martyrs/src/modules/icons/components/IconSearchPopup.vue.js.map +1 -0
- package/dist/martyrs/src/modules/icons/entities/IconAddress.vue.cjs +40 -0
- package/dist/martyrs/src/modules/icons/entities/IconAddress.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/icons/entities/IconAddress.vue.js +40 -0
- package/dist/martyrs/src/modules/icons/entities/IconAddress.vue.js.map +1 -0
- package/dist/martyrs/src/modules/icons/entities/IconDate.vue.cjs +6 -6
- package/dist/martyrs/src/modules/icons/entities/IconDate.vue.js +6 -6
- package/dist/martyrs/src/modules/icons/entities/IconEmail.vue.cjs +32 -0
- package/dist/martyrs/src/modules/icons/entities/IconEmail.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/icons/entities/IconEmail.vue.js +32 -0
- package/dist/martyrs/src/modules/icons/entities/IconEmail.vue.js.map +1 -0
- package/dist/martyrs/src/modules/icons/entities/IconMusic.vue.cjs +10 -12
- package/dist/martyrs/src/modules/icons/entities/IconMusic.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/entities/IconMusic.vue.js +11 -13
- package/dist/martyrs/src/modules/icons/entities/IconMusic.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/entities/IconPhone.vue.cjs +32 -0
- package/dist/martyrs/src/modules/icons/entities/IconPhone.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/icons/entities/IconPhone.vue.js +32 -0
- package/dist/martyrs/src/modules/icons/entities/IconPhone.vue.js.map +1 -0
- package/dist/martyrs/src/modules/icons/icons.client.cjs +48 -4
- package/dist/martyrs/src/modules/icons/icons.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/icons.client.js +172 -128
- package/dist/martyrs/src/modules/icons/icons.client.js.map +1 -1
- package/dist/martyrs/src/modules/icons/navigation/IconCross.vue.cjs +5 -7
- package/dist/martyrs/src/modules/icons/navigation/IconCross.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/navigation/IconCross.vue.js +5 -7
- package/dist/martyrs/src/modules/icons/navigation/IconCross.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/navigation/IconPause.vue.cjs +6 -11
- package/dist/martyrs/src/modules/icons/navigation/IconPause.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/navigation/IconPause.vue.js +6 -11
- package/dist/martyrs/src/modules/icons/navigation/IconPause.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/navigation/IconRefresh.vue.cjs +6 -11
- package/dist/martyrs/src/modules/icons/navigation/IconRefresh.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/navigation/IconRefresh.vue.js +6 -11
- package/dist/martyrs/src/modules/icons/navigation/IconRefresh.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.cjs +62 -6
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js +189 -133
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/socials/dribbble.vue.cjs +21 -12
- package/dist/martyrs/src/modules/icons/socials/dribbble.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/socials/dribbble.vue.js +21 -12
- package/dist/martyrs/src/modules/icons/socials/dribbble.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/socials/facebook.vue.cjs +21 -12
- package/dist/martyrs/src/modules/icons/socials/facebook.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/socials/facebook.vue.js +21 -12
- package/dist/martyrs/src/modules/icons/socials/facebook.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/socials/instagram.vue.cjs +25 -17
- package/dist/martyrs/src/modules/icons/socials/instagram.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/socials/instagram.vue.js +25 -17
- package/dist/martyrs/src/modules/icons/socials/instagram.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/socials/line.vue.cjs +23 -14
- package/dist/martyrs/src/modules/icons/socials/line.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/socials/line.vue.js +23 -14
- package/dist/martyrs/src/modules/icons/socials/line.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/socials/linkedin.vue.cjs +26 -17
- package/dist/martyrs/src/modules/icons/socials/linkedin.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/socials/linkedin.vue.js +26 -17
- package/dist/martyrs/src/modules/icons/socials/linkedin.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/socials/reddit.vue.cjs +21 -12
- package/dist/martyrs/src/modules/icons/socials/reddit.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/socials/reddit.vue.js +21 -12
- package/dist/martyrs/src/modules/icons/socials/reddit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/socials/telegram.vue.cjs +29 -20
- package/dist/martyrs/src/modules/icons/socials/telegram.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/socials/telegram.vue.js +29 -20
- package/dist/martyrs/src/modules/icons/socials/telegram.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/socials/twitter.vue.cjs +21 -12
- package/dist/martyrs/src/modules/icons/socials/twitter.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/socials/twitter.vue.js +21 -12
- package/dist/martyrs/src/modules/icons/socials/twitter.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/socials/vk.vue.cjs +21 -12
- package/dist/martyrs/src/modules/icons/socials/vk.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/socials/vk.vue.js +21 -12
- package/dist/martyrs/src/modules/icons/socials/vk.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/socials/whatsapp.vue.cjs +32 -0
- package/dist/martyrs/src/modules/icons/socials/whatsapp.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/icons/socials/whatsapp.vue.js +32 -0
- package/dist/martyrs/src/modules/icons/socials/whatsapp.vue.js.map +1 -0
- package/dist/martyrs/src/modules/icons/socials/youtube.vue.cjs +21 -12
- package/dist/martyrs/src/modules/icons/socials/youtube.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/socials/youtube.vue.js +21 -12
- package/dist/martyrs/src/modules/icons/socials/youtube.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.cjs +87 -0
- package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +87 -0
- package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.cjs +83 -0
- package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.js +83 -0
- package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.cjs +83 -0
- package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js +83 -0
- package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/cards/TrackCard.vue.cjs +68 -0
- package/dist/martyrs/src/modules/music/components/cards/TrackCard.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/cards/TrackCard.vue.js +68 -0
- package/dist/martyrs/src/modules/music/components/cards/TrackCard.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.cjs +162 -0
- package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js +162 -0
- package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.cjs +437 -0
- package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +437 -0
- package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.cjs +416 -0
- package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +416 -0
- package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.cjs +174 -0
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +174 -0
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.cjs +80 -0
- package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js +80 -0
- package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs +554 -0
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +554 -0
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.cjs +104 -0
- package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.js +104 -0
- package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs +314 -0
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +314 -0
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/AlbumCreate.vue.cjs +14 -0
- package/dist/martyrs/src/modules/music/components/pages/AlbumCreate.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/AlbumCreate.vue.js +14 -0
- package/dist/martyrs/src/modules/music/components/pages/AlbumCreate.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/AlbumEdit.vue.cjs +23 -0
- package/dist/martyrs/src/modules/music/components/pages/AlbumEdit.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/AlbumEdit.vue.js +23 -0
- package/dist/martyrs/src/modules/music/components/pages/AlbumEdit.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.cjs +467 -0
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +467 -0
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/ArtistCreate.vue.cjs +14 -0
- package/dist/martyrs/src/modules/music/components/pages/ArtistCreate.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/ArtistCreate.vue.js +14 -0
- package/dist/martyrs/src/modules/music/components/pages/ArtistCreate.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/ArtistEdit.vue.cjs +23 -0
- package/dist/martyrs/src/modules/music/components/pages/ArtistEdit.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/ArtistEdit.vue.js +23 -0
- package/dist/martyrs/src/modules/music/components/pages/ArtistEdit.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.cjs +256 -0
- package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.js +256 -0
- package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.cjs +248 -0
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +248 -0
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs +580 -0
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +580 -0
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/PlaylistCreate.vue.cjs +14 -0
- package/dist/martyrs/src/modules/music/components/pages/PlaylistCreate.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/PlaylistCreate.vue.js +14 -0
- package/dist/martyrs/src/modules/music/components/pages/PlaylistCreate.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/PlaylistEdit.vue.cjs +23 -0
- package/dist/martyrs/src/modules/music/components/pages/PlaylistEdit.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/PlaylistEdit.vue.js +23 -0
- package/dist/martyrs/src/modules/music/components/pages/PlaylistEdit.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.cjs +473 -0
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +473 -0
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs +111 -0
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +111 -0
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.cjs +28 -0
- package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.js +28 -0
- package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/TrackEdit.vue.cjs +23 -0
- package/dist/martyrs/src/modules/music/components/pages/TrackEdit.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/TrackEdit.vue.js +23 -0
- package/dist/martyrs/src/modules/music/components/pages/TrackEdit.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.cjs +227 -0
- package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js +227 -0
- package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.cjs +85 -0
- package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.js +85 -0
- package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.cjs +71 -0
- package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.js +71 -0
- package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/music.client.cjs +137 -0
- package/dist/martyrs/src/modules/music/music.client.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/music.client.js +137 -0
- package/dist/martyrs/src/modules/music/music.client.js.map +1 -0
- package/dist/martyrs/src/modules/music/router/albums.cjs +34 -0
- package/dist/martyrs/src/modules/music/router/albums.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/router/albums.js +34 -0
- package/dist/martyrs/src/modules/music/router/albums.js.map +1 -0
- package/dist/martyrs/src/modules/music/router/artists.cjs +34 -0
- package/dist/martyrs/src/modules/music/router/artists.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/router/artists.js +34 -0
- package/dist/martyrs/src/modules/music/router/artists.js.map +1 -0
- package/dist/martyrs/src/modules/music/router/music.cjs +47 -0
- package/dist/martyrs/src/modules/music/router/music.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/router/music.js +47 -0
- package/dist/martyrs/src/modules/music/router/music.js.map +1 -0
- package/dist/martyrs/src/modules/music/router/playlists.cjs +34 -0
- package/dist/martyrs/src/modules/music/router/playlists.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/router/playlists.js +34 -0
- package/dist/martyrs/src/modules/music/router/playlists.js.map +1 -0
- package/dist/martyrs/src/modules/music/router/tracks.cjs +34 -0
- package/dist/martyrs/src/modules/music/router/tracks.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/router/tracks.js +34 -0
- package/dist/martyrs/src/modules/music/router/tracks.js.map +1 -0
- package/dist/martyrs/src/modules/music/store/albums.cjs +167 -0
- package/dist/martyrs/src/modules/music/store/albums.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/store/albums.js +167 -0
- package/dist/martyrs/src/modules/music/store/albums.js.map +1 -0
- package/dist/martyrs/src/modules/music/store/artists.cjs +160 -0
- package/dist/martyrs/src/modules/music/store/artists.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/store/artists.js +160 -0
- package/dist/martyrs/src/modules/music/store/artists.js.map +1 -0
- package/dist/martyrs/src/modules/music/store/genres.cjs +123 -0
- package/dist/martyrs/src/modules/music/store/genres.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/store/genres.js +123 -0
- package/dist/martyrs/src/modules/music/store/genres.js.map +1 -0
- package/dist/martyrs/src/modules/music/store/player.cjs +297 -0
- package/dist/martyrs/src/modules/music/store/player.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/store/player.js +297 -0
- package/dist/martyrs/src/modules/music/store/player.js.map +1 -0
- package/dist/martyrs/src/modules/music/store/playlists.cjs +182 -0
- package/dist/martyrs/src/modules/music/store/playlists.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/store/playlists.js +182 -0
- package/dist/martyrs/src/modules/music/store/playlists.js.map +1 -0
- package/dist/martyrs/src/modules/music/store/search.cjs +109 -0
- package/dist/martyrs/src/modules/music/store/search.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/store/search.js +109 -0
- package/dist/martyrs/src/modules/music/store/search.js.map +1 -0
- package/dist/martyrs/src/modules/music/store/tracks.cjs +184 -0
- package/dist/martyrs/src/modules/music/store/tracks.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/store/tracks.js +184 -0
- package/dist/martyrs/src/modules/music/store/tracks.js.map +1 -0
- package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.cjs +1 -1
- package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js +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 +3 -2
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +3 -2
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.cjs +2 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.js +2 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormCustomerDetails.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormCustomerDetails.vue.js +5 -5
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +2 -2
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +3 -3
- 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/blocks/Socials.vue.js +16 -16
- 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 +3 -3
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +16 -16
- 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 +3 -3
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +17 -17
- 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 +3 -3
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +4 -4
- package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +8 -8
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +2 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +2 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.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/blocks/CardPage.vue.cjs +2 -1
- package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +2 -1
- package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js.map +1 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.cjs +2 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +2 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js.map +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/ProductDiscounts.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/forms/ReorderSettingsForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/forms/ReorderSettingsForm.vue.js +8 -8
- package/dist/martyrs/src/modules/products/components/forms/StockAuditForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/forms/StockAuditForm.vue.js +12 -12
- 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 +3 -3
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +13 -13
- package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.cjs +3 -3
- package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.js +11 -11
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +18 -18
- package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.cjs +3 -3
- package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +7 -7
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs +3 -3
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +13 -13
- 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 +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs +3 -3
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +17 -17
- package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +1 -1
- 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/rents/views/components/pages/RentsEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +5 -5
- 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/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/blocks/SpotMemberModify.vue.cjs +1 -0
- package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js +1 -0
- package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js.map +1 -1
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs +1 -0
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +1 -0
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js.map +1 -1
- 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 +3 -3
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +14 -14
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.cjs +3 -3
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +9 -9
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.js +2 -2
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +2 -2
- package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.cjs +3 -3
- package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +3 -3
- package/dist/martyrs.cjs.js +1 -1
- package/dist/martyrs.css +1 -1
- package/dist/martyrs.es.js +38 -36
- package/dist/music.server.cjs +2021 -0
- package/dist/music.server.js +2021 -0
- 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/orders.server.cjs +1 -1
- package/dist/orders.server.js +1 -1
- package/dist/organizations.server.cjs +1 -1
- package/dist/organizations.server.js +1 -1
- package/dist/products.server.cjs +3 -1093
- package/dist/products.server.js +2 -1092
- package/dist/rents.server.cjs +1 -1
- package/dist/rents.server.js +1 -1
- package/dist/socials.schema-BOZV82Mp.js +25 -0
- package/dist/socials.schema-CtpSF9dE.cjs +24 -0
- package/dist/style.css +230 -46
- package/dist/wallet.server.cjs +1 -1
- package/dist/wallet.server.js +1 -1
- package/package.json +1 -1
- package/src/.martyrs/filemap.json +2 -2
- package/src/components/Feed/Feed.vue +1 -1
- package/src/components/Field/Field.vue +13 -8
- package/src/components/FieldBig/FieldBig.vue +3 -5
- package/src/components/FieldPhone/FieldPhone.vue +1 -1
- package/src/components/Media/Media.vue +1 -1
- package/src/components/Select/Select.vue +1 -1
- package/src/components/Status/Snack.vue +83 -0
- package/src/components/index.js +2 -0
- package/src/main.js +6 -0
- package/src/modules/auth/controllers/middlewares/authJwt.js +59 -6
- package/src/modules/events/components/pages/EditEvent.vue +1 -1
- package/src/modules/globals/views/classes/globals.store.js +31 -66
- package/src/modules/globals/views/components/blocks/PopupDateSelector.vue +1 -1
- package/src/modules/globals/views/components/partials/FooterAlt.vue +363 -0
- package/src/modules/globals/views/store/globals.js +42 -0
- package/src/modules/globals/views/utils/axios-instance.js +15 -1
- package/src/modules/globals/views/utils/query-serializer.js +182 -0
- package/src/modules/icons/components/IconSearchPopup.vue +254 -0
- package/src/modules/icons/entities/IconAddress.vue +17 -0
- package/src/modules/icons/entities/IconDate.vue +3 -3
- package/src/modules/icons/entities/IconEmail.vue +14 -0
- package/src/modules/icons/entities/IconMusic.vue +3 -3
- package/src/modules/icons/entities/IconPhone.vue +14 -0
- package/src/modules/icons/icons.client.js +85 -31
- package/src/modules/icons/icons.server.js +292 -0
- package/src/modules/icons/navigation/IconCross.vue +4 -16
- package/src/modules/icons/navigation/IconPause.vue +9 -24
- package/src/modules/icons/navigation/IconRefresh.vue +9 -24
- package/src/modules/icons/pages/IconsPage.vue +78 -2
- package/src/modules/icons/routes/icons.routes.js +81 -0
- package/src/modules/icons/socials/dribbble.vue +11 -2
- package/src/modules/icons/socials/facebook.vue +11 -2
- package/src/modules/icons/socials/instagram.vue +11 -4
- package/src/modules/icons/socials/line.vue +11 -2
- package/src/modules/icons/socials/linkedin.vue +11 -2
- package/src/modules/icons/socials/reddit.vue +10 -1
- package/src/modules/icons/socials/telegram.vue +11 -2
- package/src/modules/icons/socials/twitter.vue +11 -2
- package/src/modules/icons/socials/vk.vue +11 -2
- package/src/modules/icons/socials/whatsapp.vue +12 -0
- package/src/modules/icons/socials/youtube.vue +11 -2
- package/src/modules/music/.claude/settings.local.json +8 -0
- package/src/modules/music/CLAUDE.md +312 -0
- package/src/modules/music/components/SidebarMusic.vue +8 -8
- package/src/modules/music/components/cards/AlbumCard.vue +2 -2
- package/src/modules/music/components/cards/ArtistCard.vue +2 -2
- package/src/modules/music/components/cards/PlaylistCard.vue +2 -2
- package/src/modules/music/components/cards/TrackCard.vue +1 -1
- package/src/modules/music/components/cards/TrackListCard.vue +135 -0
- package/src/modules/music/components/forms/AlbumForm.vue +463 -0
- package/src/modules/music/components/{pages → forms}/ArtistForm.vue +127 -96
- package/src/modules/music/components/forms/PlaylistForm.vue +10 -10
- package/src/modules/music/components/forms/SearchForm.vue +1 -1
- package/src/modules/music/components/forms/TrackForm.vue +577 -0
- package/src/modules/music/components/layouts/MusicLayout.vue +35 -41
- package/src/modules/music/components/pages/{AlbumDetail.vue → Album.vue} +42 -20
- package/src/modules/music/components/pages/AlbumCreate.vue +7 -0
- package/src/modules/music/components/pages/AlbumEdit.vue +14 -0
- package/src/modules/music/components/pages/{ArtistDetail.vue → Artist.vue} +9 -9
- package/src/modules/music/components/pages/ArtistCreate.vue +7 -0
- package/src/modules/music/components/pages/ArtistEdit.vue +14 -0
- package/src/modules/music/components/pages/MusicHome.vue +86 -67
- package/src/modules/music/components/pages/MusicLibrary.vue +136 -105
- package/src/modules/music/components/pages/{PlaylistDetail.vue → Playlist.vue} +56 -34
- package/src/modules/music/components/pages/PlaylistCreate.vue +7 -0
- package/src/modules/music/components/pages/PlaylistEdit.vue +14 -0
- package/src/modules/music/components/pages/SearchResults.vue +49 -27
- package/src/modules/music/components/pages/{TrackDetail.vue → Track.vue} +36 -14
- package/src/modules/music/components/pages/TrackCreate.vue +23 -0
- package/src/modules/music/components/pages/TrackEdit.vue +14 -0
- package/src/modules/music/components/player/MusicPlayer.vue +2 -2
- package/src/modules/music/middlewares/albums.verifier.js +234 -0
- package/src/modules/music/middlewares/artists.verifier.js +213 -0
- package/src/modules/music/middlewares/genres.verifier.js +148 -0
- package/src/modules/music/middlewares/playlists.verifier.js +219 -0
- package/src/modules/music/middlewares/tracks.verifier.js +263 -0
- package/src/modules/music/music.client.js +31 -33
- package/src/modules/music/music.server.js +33 -26
- package/src/modules/music/router/albums.js +31 -0
- package/src/modules/music/router/artists.js +31 -0
- package/src/modules/music/router/music.js +14 -65
- package/src/modules/music/router/playlists.js +31 -0
- package/src/modules/music/router/tracks.js +31 -0
- package/src/modules/music/routes/albums.routes.js +126 -0
- package/src/modules/music/routes/artists.routes.js +171 -0
- package/src/modules/music/routes/genres.routes.js +118 -0
- package/src/modules/music/routes/playlists.routes.js +239 -0
- package/src/modules/music/routes/tracks.routes.js +149 -0
- package/src/modules/music/store/artists.js +17 -7
- package/src/modules/music/store/genres.js +150 -0
- package/src/modules/music/store/playlists.js +19 -6
- package/src/modules/music/store/tracks.js +9 -2
- package/src/modules/products/components/pages/Product.vue +1 -1
- package/dist/Media-ByPHBvAU.cjs +0 -1
- package/dist/main-137vO86w.cjs +0 -11
- package/dist/martyrs/src/components/Button/Button.vue2.cjs.map +0 -1
- package/dist/martyrs/src/components/Chips/Chips.vue2.cjs.map +0 -1
- package/dist/martyrs/src/components/Chips/Chips.vue2.js.map +0 -1
- package/dist/martyrs/src/components/DatePicker/Calendar.vue.cjs.map +0 -1
- package/dist/martyrs/src/components/DatePicker/Calendar.vue.js.map +0 -1
- package/dist/martyrs/src/components/Field/Field.vue.cjs.map +0 -1
- package/dist/martyrs/src/components/Field/Field.vue.js.map +0 -1
- package/dist/martyrs/src/components/Menu/Menu.vue2.cjs.map +0 -1
- package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +0 -1
- package/dist/martyrs/src/components/Popup/Popup.vue2.cjs.map +0 -1
- package/src/modules/music/components/forms/UploadForm.vue +0 -313
- package/src/modules/music/components/lists/AlbumList.vue +0 -25
- package/src/modules/music/components/lists/ArtistList.vue +0 -280
- package/src/modules/music/components/lists/PlaylistList.vue +0 -25
- package/src/modules/music/components/lists/TrackList.vue +0 -175
- package/src/modules/music/components/pages/ArtistManager.vue +0 -277
- package/src/modules/music/components/pages/MusicUpload.vue +0 -44
- package/src/modules/music/controllers/album.controller.js +0 -82
- package/src/modules/music/controllers/artist.controller.js +0 -99
- package/src/modules/music/controllers/genre.controller.js +0 -63
- package/src/modules/music/controllers/music.controller.js +0 -145
- package/src/modules/music/controllers/playlist.controller.js +0 -146
- package/src/modules/music/routes/album.routes.js +0 -28
- package/src/modules/music/routes/artist.routes.js +0 -30
- package/src/modules/music/routes/genre.routes.js +0 -28
- package/src/modules/music/routes/music.routes.js +0 -106
- package/src/modules/music/routes/playlist.routes.js +0 -47
- /package/src/components/{DatePicker → Calendar}/Calendar.vue +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Button.vue2.cjs","sources":["../../../../../src/components/Button/Button.vue"],"sourcesContent":["<script setup>\n\timport { ref } from 'vue'\n\n\timport Loader from '@martyrs/src/components/Loader/Loader.vue'\n\n\tconst props = defineProps({\n\t\tsubmit: {\n\t\t\ttype: Function,\n\t\t\tdefault: async () => { console.log('Button click.') }\n\t\t},\n\t\ttext: {\n\t\t\ttype: Object,\n\t\t\tdefault: (textComponent) => {\n\t\t\t\treturn textComponent = {\n\t\t\t\t\t...textComponent.text,\n\t\t\t\t\tsuccess: '✔',\n\t\t\t\t\terror: '✖'\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tcounter: {\n\t type: Object\n\t },\n\t\tcallback: {\n\t\t\ttype: Function,\n\t\t\tdefault: async () => { console.log('Button callback.') }\n\t\t},\n\t\tcallbackDelay: {\n\t\t\ttype: Number,\n\t\t\tdefault: 750\n\t\t},\n\t\tshowSucces: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true\n\t\t},\n\t\tshowLoader: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true\n\t\t},\n\t\tvalidation: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t},\n\t})\t\n\n\tconst emits = defineEmits(['error'])\n\n\tconst button = ref(null);\n\tconst error = ref(null);\n\tconst loading = ref(false);\n\tconst finished = ref(false);\n\n\tasync function Submit() {\n\t\t\tconsole.log('click')\n\t\t\t\n\t button.value.style['pointer-events'] = 'none';\n\t error.value = null;\n\t loading.value = true;\n\n\t // Функция для сброса состояния кнопки.\n\t const resetButton = () => {\n if (button.value) {\n // button.value.classList.replace('bg-second', 'bg-main');\n button.value.style.pointerEvents = 'auto';\n loading.value = false;\n finished.value = false;\n error.value = null;\n }\n\t };\n\n\t try {\n await props.submit();\n\n button.value.classList.replace('bg-main', 'bg-second');\n\n loading.value = false;\n\n // Используем функцию сброса состояния кнопки здесь.\n if (props.showSucces) { \n\t\t\t\t\tfinished.value = true;\n setTimeout(resetButton, 500);\n } else {\n resetButton();\n }\n\n // Если есть callback, мы также установим таймер для его вызова.\n if (props.callback) setTimeout(() => props.callback(), props.callbackDelay);\n\n\t } catch (err) {\n \t\temits('error',err)\n // Если возникла ошибка, мы изменяем стили и устанавливаем сообщение об ошибке.\n button.value.classList.replace('bg-main', 'bg-fourth-nano');\n error.value = props.error;\n \n // После задержки снова сбрасываем состояние кнопки.\n setTimeout(() => {\n resetButton();\n // Так как класс кнопки был изменен, вернем его в исходное состояние.\n button.value.classList.replace('bg-fourth-nano', 'bg-main');\n }, 1330);\n\t }\n\t}\n\n</script>\n\n<template>\n\t<button @click.stop=\"Submit\" :disabled=\"validation\" ref=\"button\" class=\"button\">\n\t\t<transition name=\"FromTop\" >\n\t\t\t<!-- Slot -->\n\t\t\t<template v-if=\"!loading && !error && !finished || !showLoader\"><slot></slot></template>\n\t\t\t<!-- Loading Circle Animation -->\n\t\t\t<template v-else-if=\"loading && !error && showLoader\"><Loader class=\"pos-relative pos-t-0 pos-l-0 loading\"/></template>\n\t\t\t<!-- <Loader v-else-if=\"loading && !error && showLoader\"/> -->\n\t\t\t<!-- Success -->\n\t\t\t<span v-else-if=\"finished && showSucces\" class=\"t-semi t-center w-100 loading t-black\">{{text.success}}</span>\n\t\t\t<!-- Error if not finished -->\n\t\t\t<span v-else-if=\"error\" class=\"t-center w-100 error\">{{ error }}</span>\n\t\t</transition>\n\t\t<!-- Counter -->\n\t\t<div v-if=\"counter\" class=\"button-counter flex-center\"><span>{{counter}}</span></div> \n\n\t</button> \n</template>\n\n\n<style lang=\"scss\">\n\t.FromTop-enter-active,\n\t.FromTop-leave-active {\n\t\ttransform: translateY(0);\n\t\topacity: 1;\n\t\ttransition: all 0.5s ease; \n\t\t\n\t}\n\t.FromTop-enter-from,\n\t.FromTop-leave-to {\n\t\tposition: absolute;\n\t\ttransform: translateY(-1rem);\n\t\topacity: 0;\n\t\ttransition: all 0.5s ease;\n\t}\n\n\tbutton[disabled] {\n\t\topacity: 0.75 !important;\n\t \tpointer-events: none !important;\n\t \tcursor: default !important;\n\t \tcolor: rgba(var(--dark), 0.33) !important;\n\t\tbackground: rgba(var(--light), 1) !important; \n\t}\n\n\ta.button {\n\t\t\ttext-box: trim-both cap alphabetic;\n\t}\n\n\t.button {\n\t\tdisplay: flex;\n\n\t\tpadding: 0.5rem;\n\t\tborder-radius: 3rem;\n\t\ttext-box: trim-both cap alphabetic;\n\n\t\ttransform: scale(1);\n\t\topacity: 1;\n\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\t\n\t\tcolor: black;\n\t\ttext-align: center;\n\t\ttext-transform: uppercase;\n\t\tfont-size: 1rem;\n\t\tletter-spacing: 5%;\n\n\t\ttransition: all 0.33s ease;\n\t \n\t\t&:hover {\n\t\t\tcursor: pointer;\n\t\t\topacity: 0.9;\n\t\t}\n\n\t\t&:active {\n\t\t\ttransform: scale(0.95);\n\t\t}\n\n\t\t&-small {\n\t\t\tpadding: 0.75rem;\n\t\t\tborder-radius: 0.5rem;\n\t\t\theight: fit-content;\n\t\t}\n\n\t\t.button-counter {\n\t\t\tposition: absolute;\n\t\t\tright: -8px;\n\t bottom: -8px;\n\t background: yellow;\n\t height: 16px;\n\t border-radius: 16px;\n\t width: 16px;\n\t font-weight: 500;\n\t text-align: center;\n\t line-height: 16px;\n\t font-size: 10px;\n\t\t}\n\t}\n</style>"],"names":["ref"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKC,UAAM,QAAQ;AAwCd,UAAM,QAAQ;AAEd,UAAM,SAASA,IAAG,IAAC,IAAI;AACvB,UAAM,QAAQA,IAAG,IAAC,IAAI;AACtB,UAAM,UAAUA,IAAG,IAAC,KAAK;AACzB,UAAM,WAAWA,IAAG,IAAC,KAAK;AAE1B,mBAAe,SAAS;AACtB,cAAQ,IAAI,OAAO;AAEjB,aAAO,MAAM,MAAM,gBAAgB,IAAI;AACvC,YAAM,QAAQ;AACd,cAAQ,QAAQ;AAGhB,YAAM,cAAc,MAAM;AACvB,YAAI,OAAO,OAAO;AAEhB,iBAAO,MAAM,MAAM,gBAAgB;AACnC,kBAAQ,QAAQ;AAChB,mBAAS,QAAQ;AACjB,gBAAM,QAAQ;AAAA,QACxB;AAAA,MACM;AAED,UAAI;AACD,cAAM,MAAM,OAAQ;AAEpB,eAAO,MAAM,UAAU,QAAQ,WAAW,WAAW;AAErD,gBAAQ,QAAQ;AAGhB,YAAI,MAAM,YAAY;AACzB,mBAAS,QAAQ;AACZ,qBAAW,aAAa,GAAG;AAAA,QACrC,OAAe;AACL,sBAAa;AAAA,QACvB;AAGQ,YAAI,MAAM,SAAU,YAAW,MAAM,MAAM,SAAU,GAAE,MAAM,aAAa;AAAA,MAE5E,SAAQ,KAAK;AACb,cAAM,SAAQ,GAAG;AAEf,eAAO,MAAM,UAAU,QAAQ,WAAW,gBAAgB;AAC1D,cAAM,QAAQ,MAAM;AAGpB,mBAAW,MAAM;AACf,sBAAa;AAEb,iBAAO,MAAM,UAAU,QAAQ,kBAAkB,SAAS;AAAA,QAC3D,GAAE,IAAI;AAAA,MACf;AAAA,IACA;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Chips.vue2.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Chips.vue2.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Calendar.vue.cjs","sources":["../../../../../src/components/DatePicker/Calendar.vue"],"sourcesContent":["<template>\n <div class=\"calendar\" :aria-disabled=\"disabled\"> \n <div v-if=\"allowRange && !disablePastDates\" class=\"br-b br-solid br-grey-transp-25 gap-thin flex flex-nowrap pd-thin\">\n <button @click=\"selectToday\" class=\"font-second t-nowrap pd-thin bg-white radius-small\">Today</button>\n <button @click=\"selectLastWeek\" class=\"font-second t-nowrap pd-thin bg-white radius-small\">Last Week</button>\n <button @click=\"selectLastMonth\" class=\"font-second t-nowrap pd-thin bg-white radius-small\">Last Month</button>\n <button @click=\"selectLastYear\" class=\"font-second t-nowrap pd-thin bg-white radius-small\">All time</button>\n </div>\n <div class=\"pd-thin flex flex-nowrap flex-v-center flex-justify-between\">\n <button @click.stop=\"prevMonth\" class=\"aspect-1x1 pd-thin bg-white radius-extra\" :disabled=\"isPrevMonthDisabled\">\n <svg class=\"i-regular\" xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"20\" viewBox=\"0 0 12 20\" fill=\"none\">\n <path d=\"M0.610352 10.0068C0.615885 9.81315 0.654622 9.63607 0.726562 9.47559C0.798503 9.3151 0.90918 9.16016 1.05859 9.01074L9.37598 0.958984C9.61393 0.721029 9.90723 0.602051 10.2559 0.602051C10.4883 0.602051 10.6986 0.657389 10.8867 0.768066C11.0804 0.878743 11.2326 1.02816 11.3433 1.21631C11.4595 1.40446 11.5176 1.61475 11.5176 1.84717C11.5176 2.19027 11.3875 2.49186 11.1274 2.75195L3.60693 9.99854L11.1274 17.2534C11.3875 17.519 11.5176 17.8206 11.5176 18.1582C11.5176 18.3962 11.4595 18.6092 11.3433 18.7974C11.2326 18.9855 11.0804 19.1349 10.8867 19.2456C10.6986 19.3618 10.4883 19.4199 10.2559 19.4199C9.90723 19.4199 9.61393 19.2982 9.37598 19.0547L1.05859 11.0029C0.903646 10.8535 0.790202 10.6986 0.718262 10.5381C0.646322 10.3721 0.610352 10.195 0.610352 10.0068Z\" :fill=\"isPrevMonthDisabled ? '#303030' : '#007AFF'\"/>\n </svg>\n </button>\n <span class=\"t-semi\">{{ monthYear }}</span>\n <button @click.stop=\"nextMonth\" class=\"aspect-1x1 pd-thin bg-white radius-extra\">\n <svg class=\"i-regular \" xmlns=\"http://www.w3.org/2000/svg\" width=\"11\" height=\"20\" viewBox=\"0 0 11 20\" fill=\"none\">\n <path d=\"M10.9072 10.0151C10.9017 10.2088 10.863 10.3859 10.791 10.5464C10.7191 10.7069 10.6084 10.8618 10.459 11.0112L2.1416 19.063C1.90365 19.3009 1.61035 19.4199 1.26172 19.4199C1.0293 19.4199 0.81901 19.3646 0.630859 19.2539C0.437175 19.1432 0.284994 18.9938 0.174316 18.8057C0.0581055 18.6175 8.85326e-08 18.4072 1.08852e-07 18.1748C1.38846e-07 17.8317 0.130046 17.5301 0.390137 17.27L7.91065 10.0234L0.390138 2.76855C0.130047 2.50293 1.5053e-06 2.20133 1.53481e-06 1.86377C1.55561e-06 1.62581 0.058107 1.41276 0.174318 1.22461C0.284995 1.03646 0.437176 0.887043 0.630861 0.776366C0.819012 0.660155 1.0293 0.60205 1.26172 0.60205C1.61035 0.60205 1.90365 0.723795 2.1416 0.967284L10.459 9.01904C10.6139 9.16846 10.7274 9.3234 10.7993 9.48389C10.8713 9.6499 10.9072 9.82699 10.9072 10.0151Z\" :fill=\"isPrevMonthDisabled ? '#303030' : '#007AFF'\"/>\n </svg>\n </button>\n </div>\n\n <div class=\"pd-thin calendar__body\">\n <div class=\"calendar__week\">\n <div v-for=\"(day, index) in daysOfWeek\" :key=\"index\" class=\"calendar__weekday\">\n {{ day }}\n </div>\n </div>\n <div class=\"gap-micro calendar__dates\">\n <div\n v-for=\"day in daysInMonth\"\n :key=\"day.date\"\n :class=\"[\n 'flex flex-center cursor-pointer aspect-1x1 radius-small',\n { 'calendar__date--today': day.isToday },\n { 'calendar__date--selected': isSelected(day.date) },\n { 'calendar__date--range': isInRange(day.date) },\n { 'calendar__date--in-other-month': !isSameMonth(day.date) },\n { 'calendar__date--disabled': isPastDate(day.date) },\n { 'calendar__date--low-availability': isLowAvailability(day.date) },\n { 'calendar__date--unavailable': !isAvailable(day.date) && !isPastDate(day.date) },\n ]\"\n @click.stop=\"selectDate(day.date)\"\n >\n {{ day.day }}\n <span v-if=\"showAvailability && getAvailability(day.date)\" class=\"availability-indicator\">\n {{ getAvailability(day.date) }}\n </span>\n </div>\n </div>\n </div>\n \n </div>\n</template>\n\n<script setup>\nimport { computed, ref, watch } from 'vue'\n\nconst props = defineProps({\n modelValue: [Date, Object],\n allowRange: Boolean,\n disabled: Boolean,\n disablePastDates: {\n type: Boolean,\n default: false\n },\n availabilityData: {\n type: Array,\n default: () => []\n },\n showAvailability: {\n type: Boolean,\n default: false\n },\n lowAvailabilityThreshold: {\n type: Number,\n default: 3\n }\n})\n\nconst emit = defineEmits(['update:modelValue'])\n\nconst dateCalendar = defineModel('date')\n\nconst today = new Date()\nconst currentDate = ref(today)\nconst selectedDate = ref(null)\nconst startDate = ref(null)\nconst endDate = ref(null)\n\nconst daysOfWeek = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']\n\n// Watch for availability data updates\nwatch(() => props.availabilityData, (newData) => {\n // You could perform additional processing when availability data changes\n}, { deep: true })\n\nconst toUTC = (date) => {\n return new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()))\n}\n\nconst toEndOfDayUTC = (date) => {\n const endOfDay = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59));\n return endOfDay;\n}\n\nconst dateToString = (date) => {\n return date.toISOString().split('T')[0];\n}\n\nconst monthYear = computed(() => {\n const month = currentDate.value.toLocaleString('default', { month: 'long', timeZone: 'UTC' })\n const year = currentDate.value.getUTCFullYear()\n return `${month} ${year}`\n})\n\nconst isPrevMonthDisabled = computed(() => {\n if (!props.disablePastDates) return false;\n \n // Check if current view month is the current month\n return currentDate.value.getUTCMonth() === today.getUTCMonth() && \n currentDate.value.getUTCFullYear() === today.getUTCFullYear();\n})\n\nconst daysInMonth = computed(() => {\n const days = []\n const firstDay = new Date(Date.UTC(\n currentDate.value.getUTCFullYear(),\n currentDate.value.getUTCMonth(),\n 1\n ))\n const lastDay = new Date(Date.UTC(\n currentDate.value.getUTCFullYear(),\n currentDate.value.getUTCMonth() + 1,\n 0\n ))\n\n const firstDayOfWeek = firstDay.getUTCDay()\n\n let date = new Date(firstDay)\n\n date.setUTCDate(date.getUTCDate() - firstDayOfWeek)\n\n for (let i = 0; i < firstDayOfWeek; i++) {\n days.push({\n date: new Date(date),\n day: date.getUTCDate(),\n isToday: isToday(date),\n })\n date.setUTCDate(date.getUTCDate() + 1)\n }\n\n let day = 1\n\n for (date = firstDay; date <= lastDay; date.setUTCDate(date.getUTCDate() + 1)) {\n days.push({\n date: new Date(date),\n day,\n isToday: isToday(date),\n })\n day++\n }\n\n const lastDayOfWeek = days[days.length - 1].date.getUTCDay()\n\n for (let i = lastDayOfWeek + 1; i <= 6; i++) {\n days.push({\n date: new Date(date),\n day: date.getUTCDate(),\n isToday: isToday(date),\n })\n date.setUTCDate(date.getUTCDate() + 1)\n }\n\n return days\n})\n\nconst isToday = (date) => {\n const today = new Date()\n return (\n date.getUTCDate() === today.getUTCDate() &&\n date.getUTCMonth() === today.getUTCMonth() &&\n date.getUTCFullYear() === today.getUTCFullYear()\n )\n}\n\nconst isSameMonth = (date) => {\n return (\n date.getUTCMonth() === currentDate.value.getUTCMonth() &&\n date.getUTCFullYear() === currentDate.value.getUTCFullYear()\n )\n}\n\nconst isPastDate = (date) => {\n if (!props.disablePastDates) return false;\n \n const now = new Date();\n // Compare only dates without time\n const todayDate = new Date(Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate()));\n const compareDate = new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()));\n \n return compareDate < todayDate;\n}\n\nconst getAvailabilityInfo = (date) => {\n if (!props.availabilityData || props.availabilityData.length === 0) return null;\n \n const dateStr = dateToString(date);\n return props.availabilityData.find(item => item.date === dateStr);\n}\n\nconst isAvailable = (date) => {\n if (!props.availabilityData || props.availabilityData.length === 0) return true;\n \n const availabilityInfo = getAvailabilityInfo(date);\n return !availabilityInfo || availabilityInfo.availableQuantity > 0;\n}\n\nconst isLowAvailability = (date) => {\n if (!props.availabilityData || props.availabilityData.length === 0) return false;\n \n const availabilityInfo = getAvailabilityInfo(date);\n return availabilityInfo && \n availabilityInfo.availableQuantity > 0 && \n availabilityInfo.availableQuantity <= props.lowAvailabilityThreshold;\n}\n\nconst getAvailability = (date) => {\n if (!props.showAvailability) return null;\n \n const availabilityInfo = getAvailabilityInfo(date);\n return availabilityInfo ? availabilityInfo.availableQuantity : null;\n}\n\nconst isSelected = (date) => {\n if (props.allowRange) {\n if (startDate.value && endDate.value) {\n return date >= new Date(startDate.value) && toEndOfDayUTC(date) <= new Date(endDate.value);\n } else if (startDate.value) {\n return date.getTime() === new Date(startDate.value).getTime();\n }\n } else {\n return selectedDate.value && date.getTime() === new Date(selectedDate.value).getTime();\n }\n}\n\nconst isInRange = (date) => {\n if (startDate.value && endDate.value) {\n return date > startDate.value && toEndOfDayUTC(date) < endDate.value\n }\n return false\n}\n\nconst selectDate = (date) => {\n // Don't allow selection of past dates or unavailable dates\n if (props.disablePastDates && isPastDate(date)) return;\n if (!isAvailable(date)) return;\n \n // If selecting a date from another month, switch to that month\n if (!isSameMonth(date)) {\n // currentDate.value = new Date(Date.UTC(\n // date.getUTCFullYear(),\n // date.getUTCMonth(),\n // 1\n // ));\n }\n \n const formattedDate = toUTC(date)\n \n if (!props.allowRange) {\n selectedDate.value = formattedDate\n dateCalendar.value = formattedDate\n } else if (!startDate.value && !endDate.value) {\n startDate.value = formattedDate\n dateCalendar.value = { start: formattedDate, end: null }\n } else if (!endDate.value) {\n endDate.value = toEndOfDayUTC(date)\n if (formattedDate < startDate.value) {\n const temp = toEndOfDayUTC(startDate.value)\n startDate.value = formattedDate\n endDate.value = temp\n }\n // Verify all dates in the range are available\n if (props.availabilityData && props.availabilityData.length > 0) {\n let allDatesAvailable = true;\n let currentDate = new Date(startDate.value);\n \n while (currentDate <= endDate.value) {\n if (!isAvailable(currentDate)) {\n allDatesAvailable = false;\n break;\n }\n currentDate.setUTCDate(currentDate.getUTCDate() + 1);\n }\n if (!allDatesAvailable) {\n // Instead of resetting the end date, start a new range\n startDate.value = formattedDate\n endDate.value = null\n dateCalendar.value = { start: formattedDate, end: null }\n return;\n }\n }\n dateCalendar.value = { start: startDate.value, end: endDate.value }\n } else {\n startDate.value = formattedDate\n endDate.value = null\n dateCalendar.value = { start: formattedDate, end: null }\n }\n}\n\nconst prevMonth = () => {\n // Prevent navigating to past months if disablePastDates is true\n if (props.disablePastDates) {\n const newDate = new Date(Date.UTC(\n currentDate.value.getUTCFullYear(),\n currentDate.value.getUTCMonth() - 1,\n 1\n ));\n \n if (newDate.getUTCFullYear() < today.getUTCFullYear() || \n (newDate.getUTCFullYear() === today.getUTCFullYear() && \n newDate.getUTCMonth() < today.getUTCMonth())) {\n return;\n }\n }\n \n currentDate.value = new Date(Date.UTC(\n currentDate.value.getUTCFullYear(),\n currentDate.value.getUTCMonth() - 1,\n 1\n ));\n}\n\nconst nextMonth = () => {\n currentDate.value = new Date(Date.UTC(\n currentDate.value.getUTCFullYear(),\n currentDate.value.getUTCMonth() + 1,\n 1\n ))\n}\n\nconst selectToday = () => {\n const today = new Date(); \n const todayStart = new Date(Date.UTC(today.getUTCFullYear(), today.getUTCMonth(), today.getUTCDate(), 0, 0, 0, 0)); \n const todayEnd = new Date(Date.UTC(today.getUTCFullYear(), today.getUTCMonth(), today.getUTCDate(), 23, 59, 59, 999)); \n\n // Check if today is available\n if (props.disablePastDates || isAvailable(todayStart)) {\n startDate.value = todayStart.toISOString();\n endDate.value = todayEnd.toISOString();\n dateCalendar.value = { start: startDate.value, end: endDate.value };\n }\n}\n\nconst selectLastWeek = () => {\n const today = new Date();\n const lastWeek = new Date(today);\n lastWeek.setUTCDate(today.getUTCDate() - 7);\n lastWeek.setUTCHours(0, 0, 0, 0);\n\n // Skip if disablePastDates is true\n if (props.disablePastDates) return;\n\n startDate.value = lastWeek;\n endDate.value = toEndOfDayUTC(today);\n \n today.setUTCHours(23, 59, 59, 999);\n\n const start = lastWeek.toISOString();\n const end = today.toISOString();\n \n dateCalendar.value = { start: start, end: end };\n}\n\nconst selectLastMonth = () => {\n const today = new Date();\n \n // Skip if disablePastDates is true\n if (props.disablePastDates) return;\n \n // Create date for last month\n const lastMonth = new Date(today);\n lastMonth.setUTCMonth(today.getUTCMonth() - 1);\n lastMonth.setUTCHours(0, 0, 0, 0);\n \n startDate.value = lastMonth;\n endDate.value = toEndOfDayUTC(today);\n\n today.setUTCHours(23, 59, 59, 999);\n \n const start = lastMonth.toISOString();\n const end = today.toISOString();\n \n dateCalendar.value = { start: start, end: end };\n}\n\nconst selectLastYear = () => {\n // Skip if disablePastDates is true\n if (props.disablePastDates) return;\n\n startDate.value = null;\n endDate.value = null;\n dateCalendar.value = { start: null, end: null };\n}\n</script>\n\n<style lang='scss' scoped>\n.calendar[aria-disabled=\"true\"] {\n cursor: not-allowed;\n\n * {\n pointer-events: none;\n }\n}\n.calendar__week {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n gap: 5px;\n margin-bottom: 10px;\n}\n\n.calendar__weekday {\n text-align: center;\n}\n\n.calendar__dates {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n grid-auto-rows: 1fr;\n}\n\n.calendar__dates::before {\n content: '';\n width: 0;\n padding-bottom: 100%;\n grid-row: 1 / 1;\n grid-column: 1 / 1;\n}\n\n.calendar__dates > *:first-child {\n grid-row: 1 / 1;\n grid-column: 1 / 1;\n}\n\n.calendar__date--today {\n background-color: rgb(var(--main)) !important;\n font-weight: bold;\n}\n\n.calendar__date--in-other-month {\n color: #aaaaaa; /* Grey text color for dates from adjacent months */\n}\n\n.calendar__date--selected {\n background-color: #007bff !important;\n color: #fff;\n}\n\n.calendar__date--range {\n background-color: #1c6ab8 !important;\n}\n\n.calendar__date--disabled, .calendar__date--unavailable {\n color: #ccc;\n cursor: not-allowed;\n text-decoration: line-through;\n opacity: 0.5;\n}\n\n.calendar__date--low-availability {\n position: relative;\n background-color: #f0f0f0;\n/* border: 1px solid #fff3cd;*/\n/* background-color: #fff3cd;*/\n}\n\n.availability-indicator {\n position: absolute;\n bottom: 2px;\n right: 2px;\n font-size: 8px;\n color: #6c757d;\n}\n\nbutton:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n</style>"],"names":["_useModel","ref","watch","computed","today","currentDate"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Calendar.vue.js","sources":["../../../../../src/components/DatePicker/Calendar.vue"],"sourcesContent":["<template>\n <div class=\"calendar\" :aria-disabled=\"disabled\"> \n <div v-if=\"allowRange && !disablePastDates\" class=\"br-b br-solid br-grey-transp-25 gap-thin flex flex-nowrap pd-thin\">\n <button @click=\"selectToday\" class=\"font-second t-nowrap pd-thin bg-white radius-small\">Today</button>\n <button @click=\"selectLastWeek\" class=\"font-second t-nowrap pd-thin bg-white radius-small\">Last Week</button>\n <button @click=\"selectLastMonth\" class=\"font-second t-nowrap pd-thin bg-white radius-small\">Last Month</button>\n <button @click=\"selectLastYear\" class=\"font-second t-nowrap pd-thin bg-white radius-small\">All time</button>\n </div>\n <div class=\"pd-thin flex flex-nowrap flex-v-center flex-justify-between\">\n <button @click.stop=\"prevMonth\" class=\"aspect-1x1 pd-thin bg-white radius-extra\" :disabled=\"isPrevMonthDisabled\">\n <svg class=\"i-regular\" xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"20\" viewBox=\"0 0 12 20\" fill=\"none\">\n <path d=\"M0.610352 10.0068C0.615885 9.81315 0.654622 9.63607 0.726562 9.47559C0.798503 9.3151 0.90918 9.16016 1.05859 9.01074L9.37598 0.958984C9.61393 0.721029 9.90723 0.602051 10.2559 0.602051C10.4883 0.602051 10.6986 0.657389 10.8867 0.768066C11.0804 0.878743 11.2326 1.02816 11.3433 1.21631C11.4595 1.40446 11.5176 1.61475 11.5176 1.84717C11.5176 2.19027 11.3875 2.49186 11.1274 2.75195L3.60693 9.99854L11.1274 17.2534C11.3875 17.519 11.5176 17.8206 11.5176 18.1582C11.5176 18.3962 11.4595 18.6092 11.3433 18.7974C11.2326 18.9855 11.0804 19.1349 10.8867 19.2456C10.6986 19.3618 10.4883 19.4199 10.2559 19.4199C9.90723 19.4199 9.61393 19.2982 9.37598 19.0547L1.05859 11.0029C0.903646 10.8535 0.790202 10.6986 0.718262 10.5381C0.646322 10.3721 0.610352 10.195 0.610352 10.0068Z\" :fill=\"isPrevMonthDisabled ? '#303030' : '#007AFF'\"/>\n </svg>\n </button>\n <span class=\"t-semi\">{{ monthYear }}</span>\n <button @click.stop=\"nextMonth\" class=\"aspect-1x1 pd-thin bg-white radius-extra\">\n <svg class=\"i-regular \" xmlns=\"http://www.w3.org/2000/svg\" width=\"11\" height=\"20\" viewBox=\"0 0 11 20\" fill=\"none\">\n <path d=\"M10.9072 10.0151C10.9017 10.2088 10.863 10.3859 10.791 10.5464C10.7191 10.7069 10.6084 10.8618 10.459 11.0112L2.1416 19.063C1.90365 19.3009 1.61035 19.4199 1.26172 19.4199C1.0293 19.4199 0.81901 19.3646 0.630859 19.2539C0.437175 19.1432 0.284994 18.9938 0.174316 18.8057C0.0581055 18.6175 8.85326e-08 18.4072 1.08852e-07 18.1748C1.38846e-07 17.8317 0.130046 17.5301 0.390137 17.27L7.91065 10.0234L0.390138 2.76855C0.130047 2.50293 1.5053e-06 2.20133 1.53481e-06 1.86377C1.55561e-06 1.62581 0.058107 1.41276 0.174318 1.22461C0.284995 1.03646 0.437176 0.887043 0.630861 0.776366C0.819012 0.660155 1.0293 0.60205 1.26172 0.60205C1.61035 0.60205 1.90365 0.723795 2.1416 0.967284L10.459 9.01904C10.6139 9.16846 10.7274 9.3234 10.7993 9.48389C10.8713 9.6499 10.9072 9.82699 10.9072 10.0151Z\" :fill=\"isPrevMonthDisabled ? '#303030' : '#007AFF'\"/>\n </svg>\n </button>\n </div>\n\n <div class=\"pd-thin calendar__body\">\n <div class=\"calendar__week\">\n <div v-for=\"(day, index) in daysOfWeek\" :key=\"index\" class=\"calendar__weekday\">\n {{ day }}\n </div>\n </div>\n <div class=\"gap-micro calendar__dates\">\n <div\n v-for=\"day in daysInMonth\"\n :key=\"day.date\"\n :class=\"[\n 'flex flex-center cursor-pointer aspect-1x1 radius-small',\n { 'calendar__date--today': day.isToday },\n { 'calendar__date--selected': isSelected(day.date) },\n { 'calendar__date--range': isInRange(day.date) },\n { 'calendar__date--in-other-month': !isSameMonth(day.date) },\n { 'calendar__date--disabled': isPastDate(day.date) },\n { 'calendar__date--low-availability': isLowAvailability(day.date) },\n { 'calendar__date--unavailable': !isAvailable(day.date) && !isPastDate(day.date) },\n ]\"\n @click.stop=\"selectDate(day.date)\"\n >\n {{ day.day }}\n <span v-if=\"showAvailability && getAvailability(day.date)\" class=\"availability-indicator\">\n {{ getAvailability(day.date) }}\n </span>\n </div>\n </div>\n </div>\n \n </div>\n</template>\n\n<script setup>\nimport { computed, ref, watch } from 'vue'\n\nconst props = defineProps({\n modelValue: [Date, Object],\n allowRange: Boolean,\n disabled: Boolean,\n disablePastDates: {\n type: Boolean,\n default: false\n },\n availabilityData: {\n type: Array,\n default: () => []\n },\n showAvailability: {\n type: Boolean,\n default: false\n },\n lowAvailabilityThreshold: {\n type: Number,\n default: 3\n }\n})\n\nconst emit = defineEmits(['update:modelValue'])\n\nconst dateCalendar = defineModel('date')\n\nconst today = new Date()\nconst currentDate = ref(today)\nconst selectedDate = ref(null)\nconst startDate = ref(null)\nconst endDate = ref(null)\n\nconst daysOfWeek = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']\n\n// Watch for availability data updates\nwatch(() => props.availabilityData, (newData) => {\n // You could perform additional processing when availability data changes\n}, { deep: true })\n\nconst toUTC = (date) => {\n return new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()))\n}\n\nconst toEndOfDayUTC = (date) => {\n const endOfDay = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59));\n return endOfDay;\n}\n\nconst dateToString = (date) => {\n return date.toISOString().split('T')[0];\n}\n\nconst monthYear = computed(() => {\n const month = currentDate.value.toLocaleString('default', { month: 'long', timeZone: 'UTC' })\n const year = currentDate.value.getUTCFullYear()\n return `${month} ${year}`\n})\n\nconst isPrevMonthDisabled = computed(() => {\n if (!props.disablePastDates) return false;\n \n // Check if current view month is the current month\n return currentDate.value.getUTCMonth() === today.getUTCMonth() && \n currentDate.value.getUTCFullYear() === today.getUTCFullYear();\n})\n\nconst daysInMonth = computed(() => {\n const days = []\n const firstDay = new Date(Date.UTC(\n currentDate.value.getUTCFullYear(),\n currentDate.value.getUTCMonth(),\n 1\n ))\n const lastDay = new Date(Date.UTC(\n currentDate.value.getUTCFullYear(),\n currentDate.value.getUTCMonth() + 1,\n 0\n ))\n\n const firstDayOfWeek = firstDay.getUTCDay()\n\n let date = new Date(firstDay)\n\n date.setUTCDate(date.getUTCDate() - firstDayOfWeek)\n\n for (let i = 0; i < firstDayOfWeek; i++) {\n days.push({\n date: new Date(date),\n day: date.getUTCDate(),\n isToday: isToday(date),\n })\n date.setUTCDate(date.getUTCDate() + 1)\n }\n\n let day = 1\n\n for (date = firstDay; date <= lastDay; date.setUTCDate(date.getUTCDate() + 1)) {\n days.push({\n date: new Date(date),\n day,\n isToday: isToday(date),\n })\n day++\n }\n\n const lastDayOfWeek = days[days.length - 1].date.getUTCDay()\n\n for (let i = lastDayOfWeek + 1; i <= 6; i++) {\n days.push({\n date: new Date(date),\n day: date.getUTCDate(),\n isToday: isToday(date),\n })\n date.setUTCDate(date.getUTCDate() + 1)\n }\n\n return days\n})\n\nconst isToday = (date) => {\n const today = new Date()\n return (\n date.getUTCDate() === today.getUTCDate() &&\n date.getUTCMonth() === today.getUTCMonth() &&\n date.getUTCFullYear() === today.getUTCFullYear()\n )\n}\n\nconst isSameMonth = (date) => {\n return (\n date.getUTCMonth() === currentDate.value.getUTCMonth() &&\n date.getUTCFullYear() === currentDate.value.getUTCFullYear()\n )\n}\n\nconst isPastDate = (date) => {\n if (!props.disablePastDates) return false;\n \n const now = new Date();\n // Compare only dates without time\n const todayDate = new Date(Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate()));\n const compareDate = new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()));\n \n return compareDate < todayDate;\n}\n\nconst getAvailabilityInfo = (date) => {\n if (!props.availabilityData || props.availabilityData.length === 0) return null;\n \n const dateStr = dateToString(date);\n return props.availabilityData.find(item => item.date === dateStr);\n}\n\nconst isAvailable = (date) => {\n if (!props.availabilityData || props.availabilityData.length === 0) return true;\n \n const availabilityInfo = getAvailabilityInfo(date);\n return !availabilityInfo || availabilityInfo.availableQuantity > 0;\n}\n\nconst isLowAvailability = (date) => {\n if (!props.availabilityData || props.availabilityData.length === 0) return false;\n \n const availabilityInfo = getAvailabilityInfo(date);\n return availabilityInfo && \n availabilityInfo.availableQuantity > 0 && \n availabilityInfo.availableQuantity <= props.lowAvailabilityThreshold;\n}\n\nconst getAvailability = (date) => {\n if (!props.showAvailability) return null;\n \n const availabilityInfo = getAvailabilityInfo(date);\n return availabilityInfo ? availabilityInfo.availableQuantity : null;\n}\n\nconst isSelected = (date) => {\n if (props.allowRange) {\n if (startDate.value && endDate.value) {\n return date >= new Date(startDate.value) && toEndOfDayUTC(date) <= new Date(endDate.value);\n } else if (startDate.value) {\n return date.getTime() === new Date(startDate.value).getTime();\n }\n } else {\n return selectedDate.value && date.getTime() === new Date(selectedDate.value).getTime();\n }\n}\n\nconst isInRange = (date) => {\n if (startDate.value && endDate.value) {\n return date > startDate.value && toEndOfDayUTC(date) < endDate.value\n }\n return false\n}\n\nconst selectDate = (date) => {\n // Don't allow selection of past dates or unavailable dates\n if (props.disablePastDates && isPastDate(date)) return;\n if (!isAvailable(date)) return;\n \n // If selecting a date from another month, switch to that month\n if (!isSameMonth(date)) {\n // currentDate.value = new Date(Date.UTC(\n // date.getUTCFullYear(),\n // date.getUTCMonth(),\n // 1\n // ));\n }\n \n const formattedDate = toUTC(date)\n \n if (!props.allowRange) {\n selectedDate.value = formattedDate\n dateCalendar.value = formattedDate\n } else if (!startDate.value && !endDate.value) {\n startDate.value = formattedDate\n dateCalendar.value = { start: formattedDate, end: null }\n } else if (!endDate.value) {\n endDate.value = toEndOfDayUTC(date)\n if (formattedDate < startDate.value) {\n const temp = toEndOfDayUTC(startDate.value)\n startDate.value = formattedDate\n endDate.value = temp\n }\n // Verify all dates in the range are available\n if (props.availabilityData && props.availabilityData.length > 0) {\n let allDatesAvailable = true;\n let currentDate = new Date(startDate.value);\n \n while (currentDate <= endDate.value) {\n if (!isAvailable(currentDate)) {\n allDatesAvailable = false;\n break;\n }\n currentDate.setUTCDate(currentDate.getUTCDate() + 1);\n }\n if (!allDatesAvailable) {\n // Instead of resetting the end date, start a new range\n startDate.value = formattedDate\n endDate.value = null\n dateCalendar.value = { start: formattedDate, end: null }\n return;\n }\n }\n dateCalendar.value = { start: startDate.value, end: endDate.value }\n } else {\n startDate.value = formattedDate\n endDate.value = null\n dateCalendar.value = { start: formattedDate, end: null }\n }\n}\n\nconst prevMonth = () => {\n // Prevent navigating to past months if disablePastDates is true\n if (props.disablePastDates) {\n const newDate = new Date(Date.UTC(\n currentDate.value.getUTCFullYear(),\n currentDate.value.getUTCMonth() - 1,\n 1\n ));\n \n if (newDate.getUTCFullYear() < today.getUTCFullYear() || \n (newDate.getUTCFullYear() === today.getUTCFullYear() && \n newDate.getUTCMonth() < today.getUTCMonth())) {\n return;\n }\n }\n \n currentDate.value = new Date(Date.UTC(\n currentDate.value.getUTCFullYear(),\n currentDate.value.getUTCMonth() - 1,\n 1\n ));\n}\n\nconst nextMonth = () => {\n currentDate.value = new Date(Date.UTC(\n currentDate.value.getUTCFullYear(),\n currentDate.value.getUTCMonth() + 1,\n 1\n ))\n}\n\nconst selectToday = () => {\n const today = new Date(); \n const todayStart = new Date(Date.UTC(today.getUTCFullYear(), today.getUTCMonth(), today.getUTCDate(), 0, 0, 0, 0)); \n const todayEnd = new Date(Date.UTC(today.getUTCFullYear(), today.getUTCMonth(), today.getUTCDate(), 23, 59, 59, 999)); \n\n // Check if today is available\n if (props.disablePastDates || isAvailable(todayStart)) {\n startDate.value = todayStart.toISOString();\n endDate.value = todayEnd.toISOString();\n dateCalendar.value = { start: startDate.value, end: endDate.value };\n }\n}\n\nconst selectLastWeek = () => {\n const today = new Date();\n const lastWeek = new Date(today);\n lastWeek.setUTCDate(today.getUTCDate() - 7);\n lastWeek.setUTCHours(0, 0, 0, 0);\n\n // Skip if disablePastDates is true\n if (props.disablePastDates) return;\n\n startDate.value = lastWeek;\n endDate.value = toEndOfDayUTC(today);\n \n today.setUTCHours(23, 59, 59, 999);\n\n const start = lastWeek.toISOString();\n const end = today.toISOString();\n \n dateCalendar.value = { start: start, end: end };\n}\n\nconst selectLastMonth = () => {\n const today = new Date();\n \n // Skip if disablePastDates is true\n if (props.disablePastDates) return;\n \n // Create date for last month\n const lastMonth = new Date(today);\n lastMonth.setUTCMonth(today.getUTCMonth() - 1);\n lastMonth.setUTCHours(0, 0, 0, 0);\n \n startDate.value = lastMonth;\n endDate.value = toEndOfDayUTC(today);\n\n today.setUTCHours(23, 59, 59, 999);\n \n const start = lastMonth.toISOString();\n const end = today.toISOString();\n \n dateCalendar.value = { start: start, end: end };\n}\n\nconst selectLastYear = () => {\n // Skip if disablePastDates is true\n if (props.disablePastDates) return;\n\n startDate.value = null;\n endDate.value = null;\n dateCalendar.value = { start: null, end: null };\n}\n</script>\n\n<style lang='scss' scoped>\n.calendar[aria-disabled=\"true\"] {\n cursor: not-allowed;\n\n * {\n pointer-events: none;\n }\n}\n.calendar__week {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n gap: 5px;\n margin-bottom: 10px;\n}\n\n.calendar__weekday {\n text-align: center;\n}\n\n.calendar__dates {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n grid-auto-rows: 1fr;\n}\n\n.calendar__dates::before {\n content: '';\n width: 0;\n padding-bottom: 100%;\n grid-row: 1 / 1;\n grid-column: 1 / 1;\n}\n\n.calendar__dates > *:first-child {\n grid-row: 1 / 1;\n grid-column: 1 / 1;\n}\n\n.calendar__date--today {\n background-color: rgb(var(--main)) !important;\n font-weight: bold;\n}\n\n.calendar__date--in-other-month {\n color: #aaaaaa; /* Grey text color for dates from adjacent months */\n}\n\n.calendar__date--selected {\n background-color: #007bff !important;\n color: #fff;\n}\n\n.calendar__date--range {\n background-color: #1c6ab8 !important;\n}\n\n.calendar__date--disabled, .calendar__date--unavailable {\n color: #ccc;\n cursor: not-allowed;\n text-decoration: line-through;\n opacity: 0.5;\n}\n\n.calendar__date--low-availability {\n position: relative;\n background-color: #f0f0f0;\n/* border: 1px solid #fff3cd;*/\n/* background-color: #fff3cd;*/\n}\n\n.availability-indicator {\n position: absolute;\n bottom: 2px;\n right: 2px;\n font-size: 8px;\n color: #6c757d;\n}\n\nbutton:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n</style>"],"names":["_useModel","today","currentDate"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Field.vue.cjs","sources":["../../../../../src/components/Field/Field.vue"],"sourcesContent":["<script setup>\nimport { ref, onMounted, nextTick, watch } from 'vue'\nimport IconShow from '@martyrs/src/modules/icons/actions/IconShow.vue';\n\nconst emit = defineEmits(['update:field', 'focus', 'blur']);\n\nconst props = defineProps({\n label: null,\n symbol: null,\n type: 'text',\n placeholder: 'Enter something here',\n field: null,\n value: null,\n validation: false,\n disabled: null,\n tabindex: -1,\n autofocus: false\n});\n\nif (props.value) {\n emit('update:field', props.value)\n}\n\nconst textarea = ref(null);\nconst input = ref(null);\nconst showPassword = ref(false);\n\nfunction resize() {\n if (!textarea.value) {\n textarea.value.style.height = '';\n return;\n }\n const el = textarea.value;\n el.style.height = '';\n const scrollHeight = el.scrollHeight;\n if (scrollHeight > 33) {\n el.style.height = scrollHeight + 'px';\n } else {\n el.style.height = '';\n }\n}\n\nfunction focus() {\n if (props.autofocus) {\n if (props.type === 'textarea' && textarea.value) {\n textarea.value.focus();\n } else if (input.value) {\n input.value.focus();\n }\n }\n}\n\nwatch(() => props.field, () => {\n if (props.type === 'textarea') {\n nextTick(resize);\n }\n});\n\nwatch(() => props.autofocus, (newVal) => {\n if (newVal) {\n nextTick(focus);\n }\n});\n\nonMounted(() => {\n nextTick(focus);\n nextTick(resize);\n});\n\nconst text = ref(props.field);\n</script>\n\n<template>\n <div\n :class=\"[\n $attrs.class,\n { 'bg-fourth-nano': validation }\n ]\"\n class=\"flex-center flex-nowrap flex\"\n >\n <div\n v-if=\"label\"\n class=\"t-transp mn-r-small\"\n >\n <span class=\"t-nowrap\">\n {{label}}\n </span>\n </div>\n <div class=\"w-100 pos-relative\">\n <input\n v-if=\"type !== 'textarea'\"\n ref=\"input\"\n @input=\"event => text = emit('update:field', event.target.value)\"\n @focus=\"event => emit('focus', event)\"\n @blur=\"event => emit('blur', event)\"\n :type=\"type === 'password' && !showPassword ? 'password' : type === 'password' ? 'text' : type\"\n class=\"w-100\"\n :value=\"field\"\n :placeholder=\"placeholder\"\n :tabindex=\"tabindex\"\n :disabled=\"disabled\"\n :autofocus=\"autofocus\"\n />\n <textarea\n v-else\n ref=\"textarea\"\n @input=\"event => text = emit('update:field', event.target.value)\"\n @focus=\"event => emit('focus', event)\"\n @blur=\"event => emit('blur', event)\"\n class=\"w-100\"\n :value=\"field\"\n :placeholder=\"placeholder\"\n :tabindex=\"tabindex\"\n :disabled=\"disabled\"\n />\n </div>\n <IconShow\n v-if=\"type === 'password'\"\n :show=\"!showPassword\"\n @click=\"showPassword = !showPassword\"\n class=\"i-medium cursor-pointer\"\n />\n <slot></slot>\n <div\n v-if=\"symbol\"\n class=\"t-transp mn-l-small\"\n >\n <span>\n {{symbol}}\n </span>\n </div>\n </div>\n <!-- Validation -->\n <transition name=\"fade\">\n <div v-if=\"validation\" class=\"mn-t-thin mn-b-thin mn-b-thin invalid-feedback\">\n * {{validation.message}}\n </div>\n </transition>\n</template>\n\n<style scoped>\ninput,\ntextarea,\nspan {\n line-height: 1;\n color: inherit;\n}\n\ntextarea {\n resize: none;\n overflow: hidden;\n height: 1rem;\n line-height: 1rem;\n}\n\ninput[type=\"date\"]::-webkit-calendar-picker-indicator,\ninput[type=\"time\"]::-webkit-calendar-picker-indicator {\n filter: invert(1);\n opacity: 1;\n color: inherit;\n}\n\n.cursor-pointer {\n cursor: pointer;\n}\n\n.pos-relative {\n position: relative;\n}\n</style>"],"names":["ref","watch","nextTick","onMounted"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,UAAM,OAAO;AAEb,UAAM,QAAQ;AAad,QAAI,MAAM,OAAO;AACf,WAAK,gBAAgB,MAAM,KAAK;AAAA,IAClC;AAEA,UAAM,WAAWA,IAAG,IAAC,IAAI;AACzB,UAAM,QAAQA,IAAG,IAAC,IAAI;AACtB,UAAM,eAAeA,IAAG,IAAC,KAAK;AAE9B,aAAS,SAAS;AAChB,UAAI,CAAC,SAAS,OAAO;AACnB,iBAAS,MAAM,MAAM,SAAS;AAC9B;AAAA,MACJ;AACE,YAAM,KAAK,SAAS;AACpB,SAAG,MAAM,SAAS;AAClB,YAAM,eAAe,GAAG;AACxB,UAAI,eAAe,IAAI;AACrB,WAAG,MAAM,SAAS,eAAe;AAAA,MACrC,OAAS;AACL,WAAG,MAAM,SAAS;AAAA,MACtB;AAAA,IACA;AAEA,aAAS,QAAQ;AACf,UAAI,MAAM,WAAW;AACnB,YAAI,MAAM,SAAS,cAAc,SAAS,OAAO;AAC/C,mBAAS,MAAM,MAAO;AAAA,QAC5B,WAAe,MAAM,OAAO;AACtB,gBAAM,MAAM,MAAO;AAAA,QACzB;AAAA,MACA;AAAA,IACA;AAEAC,QAAAA,MAAM,MAAM,MAAM,OAAO,MAAM;AAC7B,UAAI,MAAM,SAAS,YAAY;AAC7BC,YAAAA,SAAS,MAAM;AAAA,MACnB;AAAA,IACA,CAAC;AAEDD,QAAK,MAAC,MAAM,MAAM,WAAW,CAAC,WAAW;AACvC,UAAI,QAAQ;AACVC,YAAAA,SAAS,KAAK;AAAA,MAClB;AAAA,IACA,CAAC;AAEDC,QAAAA,UAAU,MAAM;AACdD,UAAAA,SAAS,KAAK;AACdA,UAAAA,SAAS,MAAM;AAAA,IACjB,CAAC;AAED,UAAM,OAAOF,IAAAA,IAAI,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Field.vue.js","sources":["../../../../../src/components/Field/Field.vue"],"sourcesContent":["<script setup>\nimport { ref, onMounted, nextTick, watch } from 'vue'\nimport IconShow from '@martyrs/src/modules/icons/actions/IconShow.vue';\n\nconst emit = defineEmits(['update:field', 'focus', 'blur']);\n\nconst props = defineProps({\n label: null,\n symbol: null,\n type: 'text',\n placeholder: 'Enter something here',\n field: null,\n value: null,\n validation: false,\n disabled: null,\n tabindex: -1,\n autofocus: false\n});\n\nif (props.value) {\n emit('update:field', props.value)\n}\n\nconst textarea = ref(null);\nconst input = ref(null);\nconst showPassword = ref(false);\n\nfunction resize() {\n if (!textarea.value) {\n textarea.value.style.height = '';\n return;\n }\n const el = textarea.value;\n el.style.height = '';\n const scrollHeight = el.scrollHeight;\n if (scrollHeight > 33) {\n el.style.height = scrollHeight + 'px';\n } else {\n el.style.height = '';\n }\n}\n\nfunction focus() {\n if (props.autofocus) {\n if (props.type === 'textarea' && textarea.value) {\n textarea.value.focus();\n } else if (input.value) {\n input.value.focus();\n }\n }\n}\n\nwatch(() => props.field, () => {\n if (props.type === 'textarea') {\n nextTick(resize);\n }\n});\n\nwatch(() => props.autofocus, (newVal) => {\n if (newVal) {\n nextTick(focus);\n }\n});\n\nonMounted(() => {\n nextTick(focus);\n nextTick(resize);\n});\n\nconst text = ref(props.field);\n</script>\n\n<template>\n <div\n :class=\"[\n $attrs.class,\n { 'bg-fourth-nano': validation }\n ]\"\n class=\"flex-center flex-nowrap flex\"\n >\n <div\n v-if=\"label\"\n class=\"t-transp mn-r-small\"\n >\n <span class=\"t-nowrap\">\n {{label}}\n </span>\n </div>\n <div class=\"w-100 pos-relative\">\n <input\n v-if=\"type !== 'textarea'\"\n ref=\"input\"\n @input=\"event => text = emit('update:field', event.target.value)\"\n @focus=\"event => emit('focus', event)\"\n @blur=\"event => emit('blur', event)\"\n :type=\"type === 'password' && !showPassword ? 'password' : type === 'password' ? 'text' : type\"\n class=\"w-100\"\n :value=\"field\"\n :placeholder=\"placeholder\"\n :tabindex=\"tabindex\"\n :disabled=\"disabled\"\n :autofocus=\"autofocus\"\n />\n <textarea\n v-else\n ref=\"textarea\"\n @input=\"event => text = emit('update:field', event.target.value)\"\n @focus=\"event => emit('focus', event)\"\n @blur=\"event => emit('blur', event)\"\n class=\"w-100\"\n :value=\"field\"\n :placeholder=\"placeholder\"\n :tabindex=\"tabindex\"\n :disabled=\"disabled\"\n />\n </div>\n <IconShow\n v-if=\"type === 'password'\"\n :show=\"!showPassword\"\n @click=\"showPassword = !showPassword\"\n class=\"i-medium cursor-pointer\"\n />\n <slot></slot>\n <div\n v-if=\"symbol\"\n class=\"t-transp mn-l-small\"\n >\n <span>\n {{symbol}}\n </span>\n </div>\n </div>\n <!-- Validation -->\n <transition name=\"fade\">\n <div v-if=\"validation\" class=\"mn-t-thin mn-b-thin mn-b-thin invalid-feedback\">\n * {{validation.message}}\n </div>\n </transition>\n</template>\n\n<style scoped>\ninput,\ntextarea,\nspan {\n line-height: 1;\n color: inherit;\n}\n\ntextarea {\n resize: none;\n overflow: hidden;\n height: 1rem;\n line-height: 1rem;\n}\n\ninput[type=\"date\"]::-webkit-calendar-picker-indicator,\ninput[type=\"time\"]::-webkit-calendar-picker-indicator {\n filter: invert(1);\n opacity: 1;\n color: inherit;\n}\n\n.cursor-pointer {\n cursor: pointer;\n}\n\n.pos-relative {\n position: relative;\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,UAAM,OAAO;AAEb,UAAM,QAAQ;AAad,QAAI,MAAM,OAAO;AACf,WAAK,gBAAgB,MAAM,KAAK;AAAA,IAClC;AAEA,UAAM,WAAW,IAAI,IAAI;AACzB,UAAM,QAAQ,IAAI,IAAI;AACtB,UAAM,eAAe,IAAI,KAAK;AAE9B,aAAS,SAAS;AAChB,UAAI,CAAC,SAAS,OAAO;AACnB,iBAAS,MAAM,MAAM,SAAS;AAC9B;AAAA,MACJ;AACE,YAAM,KAAK,SAAS;AACpB,SAAG,MAAM,SAAS;AAClB,YAAM,eAAe,GAAG;AACxB,UAAI,eAAe,IAAI;AACrB,WAAG,MAAM,SAAS,eAAe;AAAA,MACrC,OAAS;AACL,WAAG,MAAM,SAAS;AAAA,MACtB;AAAA,IACA;AAEA,aAAS,QAAQ;AACf,UAAI,MAAM,WAAW;AACnB,YAAI,MAAM,SAAS,cAAc,SAAS,OAAO;AAC/C,mBAAS,MAAM,MAAO;AAAA,QAC5B,WAAe,MAAM,OAAO;AACtB,gBAAM,MAAM,MAAO;AAAA,QACzB;AAAA,MACA;AAAA,IACA;AAEA,UAAM,MAAM,MAAM,OAAO,MAAM;AAC7B,UAAI,MAAM,SAAS,YAAY;AAC7B,iBAAS,MAAM;AAAA,MACnB;AAAA,IACA,CAAC;AAED,UAAM,MAAM,MAAM,WAAW,CAAC,WAAW;AACvC,UAAI,QAAQ;AACV,iBAAS,KAAK;AAAA,MAClB;AAAA,IACA,CAAC;AAED,cAAU,MAAM;AACd,eAAS,KAAK;AACd,eAAS,MAAM;AAAA,IACjB,CAAC;AAED,UAAM,OAAO,IAAI,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.vue2.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.vue2.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Popup.vue2.cjs","sources":["../../../../../src/components/Popup/Popup.vue"],"sourcesContent":["<template>\n <transition name=\"moveFromTop\">\n <teleport to=\"body\" v-if=\"isPopupOpen\">\n <div v-if=\"isPopupOpen\" key=\"popup-content\" class=\"z-index-6 popup-wrapper\"\n :class=\"{\n 'pd-t-extra': MOBILE_APP === 'ios',\n [alignClass]: true\n }\"\n >\n <transition name=\"TransitionTranslateY\" mode=\"out-in\">\n <section class=\"h-max-100 o-y-scroll pos-relative z-index-4\" v-bind=\"$attrs\" :class=\"$attrs.class\">\n <h4 v-if=\"title\" class=\"mn-b-medium\">{{title}}</h4>\n <IconCross :fill=\"'rgb(var(--white))'\" @click=\"closePopup()\" class=\"cursor-pointer bg-second pd-micro radius-extra pos-absolute pos-t-0 pos-r-0 mn-t-medium mn-r-medium hover-scale-1 i-medium z-index-5\"/>\n <slot></slot>\n </section> \n </transition>\n\n <div \n @click=\"closePopup()\" \n :class=\"{'active':isPopupOpen === true}\" \n class=\"color-overlay z-index-3\">\n </div>\n </div>\n </teleport>\n </transition>\n</template>\n\n<script setup>\nimport { computed, watch, onMounted, ref, nextTick } from 'vue';\n// Import libs\nimport { useRoute, useRouter } from 'vue-router'\n// import { useI18n } from 'vue-i18n'\n// Icons\nimport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue';\n// Define props\nconst props = defineProps({\n isPopupOpen: {\n type: Boolean,\n default: false\n },\n style: String,\n title: String,\n align: {\n type: String,\n default: 'center center',\n validator: (value) => {\n const validAlignments = [\n 'top left', 'top center', 'top right',\n 'center left', 'center center', 'center right',\n 'bottom left', 'bottom center', 'bottom right'\n ];\n return validAlignments.includes(value);\n }\n }\n});\n\nconst emits = defineEmits(['close-popup'])\n\n// Compute the alignment class from the align prop\nconst alignClass = computed(() => {\n return `align-${props.align.replace(/\\s+/g, '-')}`;\n});\n\nfunction closePopup() {\n emits(\"close-popup\");\n} \n\nwatch(() => props.isPopupOpen, (newVal) => {\n if (newVal) {\n document.body.classList.add('no-scroll');\n } else {\n document.body.classList.remove('no-scroll');\n }\n});\n\n// Accessing router and store\nconst route = useRoute()\nconst router = useRouter()\n// Localization\nconst text = {\n messages: {\n en: {},\n ru: {}\n }\n}\n// const { t } = useI18n(text)\n</script>\n\n<style lang=\"scss\">\n .no-scroll {\n overflow: hidden;\n\n #view {\n overflow: hidden;\n }\n }\n\n .popup-wrapper {\n display: flex;\n position: fixed;\n width: 100%;\n height: 100%;\n left: 0;\n top: 0;\n z-index: 40;\n\n /* Default alignment - center center */\n &.align-center-center {\n align-items: center;\n justify-content: center;\n }\n\n /* Top alignments */\n &.align-top-left {\n align-items: flex-start;\n justify-content: flex-start;\n }\n \n &.align-top-center {\n align-items: flex-start;\n justify-content: center;\n }\n \n &.align-top-right {\n align-items: flex-start;\n justify-content: flex-end;\n }\n\n /* Center alignments */\n &.align-center-left {\n align-items: center;\n justify-content: flex-start;\n }\n \n &.align-center-right {\n align-items: center;\n justify-content: flex-end;\n }\n\n /* Bottom alignments */\n &.align-bottom-left {\n align-items: flex-end;\n justify-content: flex-start;\n }\n \n &.align-bottom-center {\n align-items: flex-end;\n justify-content: center;\n }\n \n &.align-bottom-right {\n align-items: flex-end;\n justify-content: flex-end;\n }\n\n .popup {\n position: absolute;\n height: auto;\n padding: 2rem;\n min-width: 24rem;\n border-radius: 2rem;\n overflow: hidden;\n color: white;\n background: black;\n z-index: 40;\n }\n }\n\n .color-overlay {\n display: block;\n position: fixed;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n background: rgba(0,0,0,0.0);\n pointer-events: none;\n transform: scale(1.5);\n transition: all 0.5s cubic-bezier(.31,.79,.24,.92);\n \n &.active {\n background: rgba(#000,0.25);\n pointer-events: all;\n }\n }\n</style>"],"names":["computed","watch","useRoute","useRouter"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCA,UAAM,QAAQ;AAqBd,UAAM,QAAQ;AAGd,UAAM,aAAaA,IAAQ,SAAC,MAAM;AAChC,aAAO,SAAS,MAAM,MAAM,QAAQ,QAAQ,GAAG,CAAC;AAAA,IAClD,CAAC;AAED,aAAS,aAAa;AACpB,YAAM,aAAa;AAAA,IACrB;AAEAC,QAAK,MAAC,MAAM,MAAM,aAAa,CAAC,WAAW;AACzC,UAAI,QAAQ;AACV,iBAAS,KAAK,UAAU,IAAI,WAAW;AAAA,MAC3C,OAAS;AACL,iBAAS,KAAK,UAAU,OAAO,WAAW;AAAA,MAC9C;AAAA,IACA,CAAC;AAGaC,cAAQ,SAAA;AACPC,cAAS,UAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,313 +0,0 @@
|
|
|
1
|
-
<!-- components/forms/UploadForm.vue -->
|
|
2
|
-
<template>
|
|
3
|
-
<div class="upload-form">
|
|
4
|
-
<!-- <form @submit.prevent="submitForm"> -->
|
|
5
|
-
<div class="form-group mn-b-medium">
|
|
6
|
-
<label for="title" class="t-white t-medium mn-b-thin d-block">Track Title</label>
|
|
7
|
-
<Field
|
|
8
|
-
v-model:field="form.title"
|
|
9
|
-
id="title"
|
|
10
|
-
type="text"
|
|
11
|
-
placeholder="Track Title"
|
|
12
|
-
:validation="validationErrors.title"
|
|
13
|
-
class="w-100 pd-small bg-dark-transp-25 radius-small t-white"
|
|
14
|
-
/>
|
|
15
|
-
</div>
|
|
16
|
-
|
|
17
|
-
<div class="form-group mn-b-medium">
|
|
18
|
-
<label for="artist" class="t-white t-medium mn-b-thin d-block">Artist</label>
|
|
19
|
-
<Select
|
|
20
|
-
v-model:select="form.artist"
|
|
21
|
-
id="artist"
|
|
22
|
-
:options="artistOptions"
|
|
23
|
-
placeholder="Select an artist"
|
|
24
|
-
:validation="validationErrors.artist"
|
|
25
|
-
class="w-100 pd-small bg-dark-transp-25 radius-small t-white"
|
|
26
|
-
/>
|
|
27
|
-
</div>
|
|
28
|
-
|
|
29
|
-
<div class="form-group mn-b-medium">
|
|
30
|
-
<label for="album" class="t-white t-medium mn-b-thin d-block">Album (Optional)</label>
|
|
31
|
-
<Select
|
|
32
|
-
v-model:select="form.album"
|
|
33
|
-
id="album"
|
|
34
|
-
:options="albumOptions"
|
|
35
|
-
placeholder="Select an album"
|
|
36
|
-
class="w-100 pd-small bg-dark-transp-25 radius-small t-white"
|
|
37
|
-
/>
|
|
38
|
-
</div>
|
|
39
|
-
|
|
40
|
-
<div class="form-group mn-b-medium">
|
|
41
|
-
<label for="genre" class="t-white t-medium mn-b-thin d-block">Genre</label>
|
|
42
|
-
<Select
|
|
43
|
-
v-model:select="form.genre"
|
|
44
|
-
id="genre"
|
|
45
|
-
:options="genreOptions"
|
|
46
|
-
placeholder="Select a genre"
|
|
47
|
-
:validation="validationErrors.genre"
|
|
48
|
-
class="w-100 pd-small bg-dark-transp-25 radius-small t-white"
|
|
49
|
-
/>
|
|
50
|
-
</div>
|
|
51
|
-
|
|
52
|
-
<div class="form-group mn-b-medium">
|
|
53
|
-
<label for="releaseDate" class="t-white t-medium mn-b-thin d-block">Release Date</label>
|
|
54
|
-
<Field
|
|
55
|
-
v-model:field="form.releaseDate"
|
|
56
|
-
id="releaseDate"
|
|
57
|
-
type="date"
|
|
58
|
-
:validation="validationErrors.releaseDate"
|
|
59
|
-
class="w-100 pd-small bg-dark-transp-25 radius-small t-white"
|
|
60
|
-
/>
|
|
61
|
-
</div>
|
|
62
|
-
|
|
63
|
-
<div class="form-group mn-b-medium">
|
|
64
|
-
<label for="isExplicit" class="t-white t-medium mn-b-thin d-block">Explicit Content</label>
|
|
65
|
-
<Checkbox
|
|
66
|
-
v-model:checkbox="form.isExplicit"
|
|
67
|
-
id="isExplicit"
|
|
68
|
-
label="This track contains explicit content"
|
|
69
|
-
class="t-white"
|
|
70
|
-
/>
|
|
71
|
-
</div>
|
|
72
|
-
|
|
73
|
-
<div class="form-group mn-b-medium">
|
|
74
|
-
<label for="isPublic" class="t-white t-medium mn-b-thin d-block">Privacy</label>
|
|
75
|
-
<div class="flex gap-small">
|
|
76
|
-
<Radio
|
|
77
|
-
v-model:radio="form.isPublic"
|
|
78
|
-
:value="true"
|
|
79
|
-
name="privacy"
|
|
80
|
-
label="Public"
|
|
81
|
-
class="t-white"
|
|
82
|
-
/>
|
|
83
|
-
<Radio
|
|
84
|
-
v-model:radio="form.isPublic"
|
|
85
|
-
:value="false"
|
|
86
|
-
name="privacy"
|
|
87
|
-
label="Private"
|
|
88
|
-
class="t-white"
|
|
89
|
-
/>
|
|
90
|
-
</div>
|
|
91
|
-
</div>
|
|
92
|
-
|
|
93
|
-
<div class="form-group mn-b-medium">
|
|
94
|
-
<label class="t-white t-medium mn-b-thin d-block">Cover Image</label>
|
|
95
|
-
<div class="track-cover-upload flex gap-medium">
|
|
96
|
-
<div class="track-cover-preview bg-dark-transp-25 radius-small o-hidden">
|
|
97
|
-
<Media
|
|
98
|
-
v-if="form.coverUrl"
|
|
99
|
-
:url="form.coverUrl"
|
|
100
|
-
class="w-10r h-10r object-fit-cover"
|
|
101
|
-
/>
|
|
102
|
-
<div v-else class="w-10r h-10r flex-center flex">
|
|
103
|
-
<IconMusic class="i-big" fill="rgb(var(--grey))"/>
|
|
104
|
-
</div>
|
|
105
|
-
</div>
|
|
106
|
-
|
|
107
|
-
<UploadImage
|
|
108
|
-
v-model:photo="form.coverUrl"
|
|
109
|
-
uploadPath="tracks"
|
|
110
|
-
class="flex-1 h-10r bg-dark-transp-25 radius-small"
|
|
111
|
-
/>
|
|
112
|
-
</div>
|
|
113
|
-
</div>
|
|
114
|
-
|
|
115
|
-
<div class="form-group mn-b-medium">
|
|
116
|
-
<label class="t-white t-medium mn-b-thin d-block">Track Audio File</label>
|
|
117
|
-
<Upload
|
|
118
|
-
v-model:field="form.fileUrl"
|
|
119
|
-
@file-change="(url) => form.fileUrl = url"
|
|
120
|
-
type="file"
|
|
121
|
-
uploadPath="tracks"
|
|
122
|
-
class="bg-dark-transp-25 radius-small pd-small t-white"
|
|
123
|
-
/>
|
|
124
|
-
</div>
|
|
125
|
-
|
|
126
|
-
<div class="form-group mn-b-medium">
|
|
127
|
-
<label for="lyrics" class="t-white t-medium mn-b-thin d-block">Lyrics (Optional)</label>
|
|
128
|
-
<Field
|
|
129
|
-
v-model:field="form.lyrics"
|
|
130
|
-
id="lyrics"
|
|
131
|
-
type="textarea"
|
|
132
|
-
placeholder="Add lyrics"
|
|
133
|
-
class="w-100 pd-small bg-dark-transp-25 radius-small t-white"
|
|
134
|
-
/>
|
|
135
|
-
</div>
|
|
136
|
-
|
|
137
|
-
<div class="form-actions t-right">
|
|
138
|
-
<Button
|
|
139
|
-
@click="resetForm"
|
|
140
|
-
type="button"
|
|
141
|
-
class="bg-dark-transp-25 t-white pd-small radius-small mn-r-small hover-bg-dark"
|
|
142
|
-
:showLoader="false"
|
|
143
|
-
:showSucces="false"
|
|
144
|
-
>
|
|
145
|
-
Reset
|
|
146
|
-
</Button>
|
|
147
|
-
|
|
148
|
-
<Button
|
|
149
|
-
type="submit"
|
|
150
|
-
class="bg-main t-white pd-small radius-small hover-scale-1"
|
|
151
|
-
:submit="() => submitForm()"
|
|
152
|
-
:showLoader="true"
|
|
153
|
-
:showSucces="true"
|
|
154
|
-
>
|
|
155
|
-
Upload Track
|
|
156
|
-
</Button>
|
|
157
|
-
</div>
|
|
158
|
-
<!-- </form> -->
|
|
159
|
-
</div>
|
|
160
|
-
</template>
|
|
161
|
-
|
|
162
|
-
<script setup>
|
|
163
|
-
import { ref, reactive, onMounted } from 'vue';
|
|
164
|
-
import Field from '@martyrs/src/components/Field/Field.vue';
|
|
165
|
-
import Select from '@martyrs/src/components/Select/Select.vue';
|
|
166
|
-
import Radio from '@martyrs/src/components/Radio/Radio.vue';
|
|
167
|
-
import Checkbox from '@martyrs/src/components/Checkbox/Checkbox.vue';
|
|
168
|
-
import Button from '@martyrs/src/components/Button/Button.vue';
|
|
169
|
-
import Upload from '@martyrs/src/components/Upload/Upload.vue';
|
|
170
|
-
import UploadImage from '@martyrs/src/components/UploadImage/UploadImage.vue';
|
|
171
|
-
import Media from '@martyrs/src/components/Media/Media.vue';
|
|
172
|
-
import IconMusic from '@martyrs/src/modules/icons/entities/IconMusic.vue';
|
|
173
|
-
|
|
174
|
-
// Import stores
|
|
175
|
-
import { state as authState } from '@martyrs/src/modules/auth/views/store/auth.js';
|
|
176
|
-
import { actions as tracksActions } from '../../store/tracks.js';
|
|
177
|
-
import { state as artistsState, actions as artistsActions } from '../../store/artists.js';
|
|
178
|
-
import { state as albumsState, actions as albumsActions } from '../../store/albums.js';
|
|
179
|
-
|
|
180
|
-
const emit = defineEmits(['uploaded']);
|
|
181
|
-
|
|
182
|
-
// Form data
|
|
183
|
-
const form = reactive({
|
|
184
|
-
title: '',
|
|
185
|
-
artist: null,
|
|
186
|
-
album: null,
|
|
187
|
-
genre: [],
|
|
188
|
-
releaseDate: new Date().toISOString().split('T')[0],
|
|
189
|
-
isExplicit: false,
|
|
190
|
-
isPublic: true,
|
|
191
|
-
coverUrl: '',
|
|
192
|
-
fileUrl: '',
|
|
193
|
-
lyrics: ''
|
|
194
|
-
});
|
|
195
|
-
|
|
196
|
-
// Options for dropdowns
|
|
197
|
-
const artistOptions = ref([]);
|
|
198
|
-
const albumOptions = ref([]);
|
|
199
|
-
const genreOptions = ref([
|
|
200
|
-
'Pop', 'Rock', 'Hip Hop', 'R&B', 'Jazz', 'Electronic', 'Classical', 'Country', 'Folk', 'Blues'
|
|
201
|
-
]);
|
|
202
|
-
|
|
203
|
-
// Validation
|
|
204
|
-
const validationErrors = reactive({});
|
|
205
|
-
|
|
206
|
-
/// Form submission with improved error handling
|
|
207
|
-
const submitForm = async () => {
|
|
208
|
-
// Validate form (I'm keeping this commented out as in your original code)
|
|
209
|
-
// validationErrors.title = !form.title ? { message: 'Track title is required' } : null;
|
|
210
|
-
// validationErrors.artist = !form.artist ? { message: 'Artist is required' } : null;
|
|
211
|
-
// validationErrors.genre = !form.genre || form.genre.length === 0 ? { message: 'Genre is required' } : null;
|
|
212
|
-
// validationErrors.fileUrl = !form.fileUrl ? { message: 'Audio file is required' } : null;
|
|
213
|
-
|
|
214
|
-
// // If there are validation errors, don't submit
|
|
215
|
-
// if (Object.values(validationErrors).some(error => error !== null)) {
|
|
216
|
-
// console.log(error)
|
|
217
|
-
// return;
|
|
218
|
-
// }
|
|
219
|
-
|
|
220
|
-
console.log('Submitting form data:', form);
|
|
221
|
-
|
|
222
|
-
// Check if the API URL is correct
|
|
223
|
-
console.log('API URL:', process.env.API_URL);
|
|
224
|
-
|
|
225
|
-
// Prepare track data
|
|
226
|
-
const trackData = {
|
|
227
|
-
...form,
|
|
228
|
-
creator: {
|
|
229
|
-
type: 'user', // Make sure type matches what's expected on the server (lowercase)
|
|
230
|
-
target: authState.user._id
|
|
231
|
-
},
|
|
232
|
-
owner: {
|
|
233
|
-
type: 'user', // Make sure type matches what's expected on the server (lowercase)
|
|
234
|
-
target: authState.user._id
|
|
235
|
-
},
|
|
236
|
-
status: 'draft' // Add a default status if needed
|
|
237
|
-
};
|
|
238
|
-
|
|
239
|
-
try {
|
|
240
|
-
console.log('Sending track data to API:', trackData);
|
|
241
|
-
|
|
242
|
-
// Directly use the Store instance to debug the issue
|
|
243
|
-
// This bypasses the action layer to see if the issue is there
|
|
244
|
-
// const directApiResult = await trackStore.create(trackData);
|
|
245
|
-
// console.log('Direct API result:', directApiResult);
|
|
246
|
-
|
|
247
|
-
// If the direct approach works, try the normal action
|
|
248
|
-
const track = await tracksActions.createTrack(trackData);
|
|
249
|
-
console.log('Track created successfully:', track);
|
|
250
|
-
|
|
251
|
-
emit('uploaded', track);
|
|
252
|
-
resetForm();
|
|
253
|
-
} catch (error) {
|
|
254
|
-
console.error('Error uploading track:', error);
|
|
255
|
-
|
|
256
|
-
// Add more detailed error logging
|
|
257
|
-
if (error.status) {
|
|
258
|
-
console.error(`HTTP Status: ${error.status}`);
|
|
259
|
-
}
|
|
260
|
-
if (error.message) {
|
|
261
|
-
console.error(`Error message: ${error.message}`);
|
|
262
|
-
}
|
|
263
|
-
if (error.stack) {
|
|
264
|
-
console.error(`Stack trace: ${error.stack}`);
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
// Show error to user
|
|
268
|
-
// setError({
|
|
269
|
-
// message: 'Failed to upload track: ' + (error.message || 'Unknown error'),
|
|
270
|
-
// errorCode: error.errorCode || 'TRACK_UPLOAD_FAILED'
|
|
271
|
-
// });
|
|
272
|
-
}
|
|
273
|
-
};
|
|
274
|
-
const resetForm = () => {
|
|
275
|
-
Object.keys(form).forEach(key => {
|
|
276
|
-
if (key === 'releaseDate') {
|
|
277
|
-
form[key] = new Date().toISOString().split('T')[0];
|
|
278
|
-
} else if (key === 'isPublic') {
|
|
279
|
-
form[key] = true;
|
|
280
|
-
} else if (key === 'isExplicit') {
|
|
281
|
-
form[key] = false;
|
|
282
|
-
} else {
|
|
283
|
-
form[key] = '';
|
|
284
|
-
}
|
|
285
|
-
});
|
|
286
|
-
|
|
287
|
-
// Clear validation errors
|
|
288
|
-
Object.keys(validationErrors).forEach(key => {
|
|
289
|
-
validationErrors[key] = null;
|
|
290
|
-
});
|
|
291
|
-
};
|
|
292
|
-
|
|
293
|
-
// Fetch artists and albums for dropdowns
|
|
294
|
-
onMounted(async () => {
|
|
295
|
-
try {
|
|
296
|
-
// Fetch user's artists
|
|
297
|
-
const userArtists = await artistsActions.fetchUserArtists(authState.user._id);
|
|
298
|
-
artistOptions.value = userArtists.map(artist => ({
|
|
299
|
-
name: artist.name,
|
|
300
|
-
value: artist._id
|
|
301
|
-
}));
|
|
302
|
-
|
|
303
|
-
// Fetch user's albums
|
|
304
|
-
const userAlbums = await albumsActions.fetchUserAlbums(authState.user._id);
|
|
305
|
-
albumOptions.value = userAlbums.map(album => ({
|
|
306
|
-
name: album.title,
|
|
307
|
-
value: album._id
|
|
308
|
-
}));
|
|
309
|
-
} catch (error) {
|
|
310
|
-
console.error('Error fetching artists and albums:', error);
|
|
311
|
-
}
|
|
312
|
-
});
|
|
313
|
-
</script>
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
<!-- components/lists/AlbumList.vue -->
|
|
2
|
-
<template>
|
|
3
|
-
<div class="album-list">
|
|
4
|
-
<div v-if="albums.length === 0" class="empty-list t-center pd-medium">
|
|
5
|
-
<p class="t-grey">No albums found</p>
|
|
6
|
-
</div>
|
|
7
|
-
|
|
8
|
-
<div v-else class="album-grid cols-5 mobile:cols-2 gap-small">
|
|
9
|
-
<div v-for="album in albums" :key="album._id">
|
|
10
|
-
<AlbumCard :album="album" class="hover-scale-1 transition-cubic-in-out" />
|
|
11
|
-
</div>
|
|
12
|
-
</div>
|
|
13
|
-
</div>
|
|
14
|
-
</template>
|
|
15
|
-
|
|
16
|
-
<script setup>
|
|
17
|
-
import AlbumCard from '../cards/AlbumCard.vue';
|
|
18
|
-
|
|
19
|
-
const props = defineProps({
|
|
20
|
-
albums: {
|
|
21
|
-
type: Array,
|
|
22
|
-
required: true
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
</script>
|