@ozdao/martyrs 0.2.485 → 0.2.486
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-DlUBwVWs.js → Media-CXQSPHt2.js} +1 -1
- package/dist/{Media-ByPHBvAU.cjs → Media-DhpD64nT.cjs} +1 -1
- 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 +2 -23
- package/dist/auth.server.js +1 -22
- package/dist/globals.crud-BQG1Lm0A.js +90 -0
- package/dist/globals.crud-Dv7UXbRM.cjs +89 -0
- 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/{main-CK6rC5Sz.js → main-Cfh5138F.js} +2155 -2087
- package/dist/main-DKJqboZy.cjs +11 -0
- 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/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/FieldTags/FieldTags.vue.cjs +1 -1
- package/dist/martyrs/src/components/FieldTags/FieldTags.vue.js +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/modules/auth/views/components/pages/EnterPassword.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +2 -2
- 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 +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs +2 -2
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +2 -2
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +3 -3
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +3 -3
- package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +2 -2
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +2 -2
- 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 +2 -2
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +2 -2
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.js +1 -1
- package/dist/martyrs/src/modules/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 +2 -2
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +2 -2
- 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/components/blocks/AlertDialog.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/AlertDialog.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.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 +1 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.js +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/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/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/UploadForm.vue.cjs +328 -0
- package/dist/martyrs/src/modules/music/components/forms/UploadForm.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/forms/UploadForm.vue.js +328 -0
- package/dist/martyrs/src/modules/music/components/forms/UploadForm.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.cjs +115 -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 +115 -0
- package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/lists/AlbumList.vue.cjs +44 -0
- package/dist/martyrs/src/modules/music/components/lists/AlbumList.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/lists/AlbumList.vue.js +44 -0
- package/dist/martyrs/src/modules/music/components/lists/AlbumList.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/lists/ArtistList.vue.cjs +305 -0
- package/dist/martyrs/src/modules/music/components/lists/ArtistList.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/lists/ArtistList.vue.js +305 -0
- package/dist/martyrs/src/modules/music/components/lists/ArtistList.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/lists/PlaylistList.vue.cjs +44 -0
- package/dist/martyrs/src/modules/music/components/lists/PlaylistList.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/lists/PlaylistList.vue.js +44 -0
- package/dist/martyrs/src/modules/music/components/lists/PlaylistList.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/lists/TrackList.vue.cjs +199 -0
- package/dist/martyrs/src/modules/music/components/lists/TrackList.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/lists/TrackList.vue.js +199 -0
- package/dist/martyrs/src/modules/music/components/lists/TrackList.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/AlbumDetail.vue.cjs +290 -0
- package/dist/martyrs/src/modules/music/components/pages/AlbumDetail.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/AlbumDetail.vue.js +290 -0
- package/dist/martyrs/src/modules/music/components/pages/AlbumDetail.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/ArtistDetail.vue.cjs +467 -0
- package/dist/martyrs/src/modules/music/components/pages/ArtistDetail.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/ArtistDetail.vue.js +467 -0
- package/dist/martyrs/src/modules/music/components/pages/ArtistDetail.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/ArtistForm.vue.cjs +382 -0
- package/dist/martyrs/src/modules/music/components/pages/ArtistForm.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/ArtistForm.vue.js +382 -0
- package/dist/martyrs/src/modules/music/components/pages/ArtistForm.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/ArtistManager.vue.cjs +303 -0
- package/dist/martyrs/src/modules/music/components/pages/ArtistManager.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/ArtistManager.vue.js +303 -0
- package/dist/martyrs/src/modules/music/components/pages/ArtistManager.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.cjs +221 -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 +221 -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 +200 -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 +200 -0
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/MusicUpload.vue.cjs +50 -0
- package/dist/martyrs/src/modules/music/components/pages/MusicUpload.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/MusicUpload.vue.js +50 -0
- package/dist/martyrs/src/modules/music/components/pages/MusicUpload.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/PlaylistDetail.vue.cjs +556 -0
- package/dist/martyrs/src/modules/music/components/pages/PlaylistDetail.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/PlaylistDetail.vue.js +556 -0
- package/dist/martyrs/src/modules/music/components/pages/PlaylistDetail.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.cjs +449 -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 +449 -0
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/TrackDetail.vue.cjs +87 -0
- package/dist/martyrs/src/modules/music/components/pages/TrackDetail.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/TrackDetail.vue.js +87 -0
- package/dist/martyrs/src/modules/music/components/pages/TrackDetail.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/music.cjs +99 -0
- package/dist/martyrs/src/modules/music/router/music.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/router/music.js +99 -0
- package/dist/martyrs/src/modules/music/router/music.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 +154 -0
- package/dist/martyrs/src/modules/music/store/artists.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/store/artists.js +154 -0
- package/dist/martyrs/src/modules/music/store/artists.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 +174 -0
- package/dist/martyrs/src/modules/music/store/playlists.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/store/playlists.js +174 -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 +180 -0
- package/dist/martyrs/src/modules/music/store/tracks.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/store/tracks.js +180 -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 +2 -2
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +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 +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/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 +1 -1
- package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.cjs +2 -2
- package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/blocks/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/pages/Categories.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.cjs +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 +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/sections/EditIngredients.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditIngredients.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.cjs +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 +2 -2
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.cjs +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 +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs +2 -2
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +2 -2
- package/dist/martyrs/src/modules/spots/components/pages/Map.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.cjs +2 -2
- package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +2 -2
- package/dist/martyrs.cjs.js +1 -1
- package/dist/martyrs.css +1 -1
- package/dist/martyrs.es.js +38 -36
- package/dist/music.server.cjs +1407 -0
- package/dist/music.server.js +1407 -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 +3 -88
- package/dist/orders.server.js +2 -87
- package/dist/socials.schema-BOZV82Mp.js +25 -0
- package/dist/socials.schema-CtpSF9dE.cjs +24 -0
- package/dist/style.css +155 -15
- package/package.json +1 -1
- package/src/.martyrs/filemap.json +2 -2
- package/src/components/Feed/Feed.vue +1 -1
- package/src/components/index.js +2 -0
- package/src/main.js +6 -0
- package/src/modules/events/components/pages/EditEvent.vue +1 -1
- package/src/modules/globals/views/components/blocks/PopupDateSelector.vue +1 -1
- package/src/modules/globals/views/utils/axios-instance.js +15 -1
- package/src/modules/products/components/pages/Product.vue +1 -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/DatePicker/Calendar.vue.cjs.map +0 -1
- package/dist/martyrs/src/components/DatePicker/Calendar.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/components/{DatePicker → Calendar}/Calendar.vue +0 -0
|
@@ -0,0 +1,467 @@
|
|
|
1
|
+
import { ref, computed, onMounted, createElementBlock, openBlock, createVNode, createElementVNode, unref, withCtx, createTextVNode, normalizeStyle, createCommentVNode, normalizeClass, toDisplayString, Fragment, renderList, createBlock } from "vue";
|
|
2
|
+
import { useRouter, useRoute } from "vue-router";
|
|
3
|
+
import _sfc_main$1 from "../../../../components/Button/Button.vue.js";
|
|
4
|
+
import Loader from "../../../../components/Loader/Loader.vue2.js";
|
|
5
|
+
import { state, actions } from "../../store/artists.js";
|
|
6
|
+
import { state as state$1 } from "../../../auth/views/store/auth.js";
|
|
7
|
+
import { actions as actions$1 } from "../../../globals/views/store/globals.js";
|
|
8
|
+
import { useGlobalMixins } from "../../../globals/views/mixins/mixins.js";
|
|
9
|
+
const _hoisted_1 = {
|
|
10
|
+
key: 0,
|
|
11
|
+
class: "flex-center flex pd-extra"
|
|
12
|
+
};
|
|
13
|
+
const _hoisted_2 = {
|
|
14
|
+
key: 1,
|
|
15
|
+
class: "flex-center flex-column flex pd-extra"
|
|
16
|
+
};
|
|
17
|
+
const _hoisted_3 = { key: 2 };
|
|
18
|
+
const _hoisted_4 = {
|
|
19
|
+
key: 0,
|
|
20
|
+
class: "pos-absolute pos-t-medium pos-r-medium z-index-1"
|
|
21
|
+
};
|
|
22
|
+
const _hoisted_5 = { class: "flex-v-center pos-absolute pos-b-0 pos-l-0 w-100 pd-medium z-index-1 flex mobile:flex-column mobile:flex-h-center" };
|
|
23
|
+
const _hoisted_6 = { class: "w-15r h-15r radius-medium o-hidden mn-r-medium bs-black mobile:mn-r-0 mobile:mn-b-medium" };
|
|
24
|
+
const _hoisted_7 = ["src"];
|
|
25
|
+
const _hoisted_8 = {
|
|
26
|
+
key: 1,
|
|
27
|
+
class: "w-100 h-100 bg-white flex-center flex"
|
|
28
|
+
};
|
|
29
|
+
const _hoisted_9 = { class: "h1" };
|
|
30
|
+
const _hoisted_10 = { class: "t-white mobile:t-center" };
|
|
31
|
+
const _hoisted_11 = { class: "flex-v-center flex-nowrap flex mn-b-small mobile:flex-center" };
|
|
32
|
+
const _hoisted_12 = { class: "h1 mn-r-small" };
|
|
33
|
+
const _hoisted_13 = {
|
|
34
|
+
key: 0,
|
|
35
|
+
class: "bg-main-nano pd-micro radius-small"
|
|
36
|
+
};
|
|
37
|
+
const _hoisted_14 = {
|
|
38
|
+
key: 0,
|
|
39
|
+
class: "p-medium mn-b-small"
|
|
40
|
+
};
|
|
41
|
+
const _hoisted_15 = { class: "flex flex-nowrap gap-small mobile:flex-center" };
|
|
42
|
+
const _hoisted_16 = ["href"];
|
|
43
|
+
const _hoisted_17 = ["href"];
|
|
44
|
+
const _hoisted_18 = ["href"];
|
|
45
|
+
const _hoisted_19 = ["href"];
|
|
46
|
+
const _hoisted_20 = ["href"];
|
|
47
|
+
const _hoisted_21 = { class: "pd-medium" };
|
|
48
|
+
const _hoisted_22 = { class: "cols-2-1_2 gap-medium mobile:cols-1" };
|
|
49
|
+
const _hoisted_23 = { class: "bg-light pd-medium radius-medium mn-b-medium" };
|
|
50
|
+
const _hoisted_24 = {
|
|
51
|
+
key: 0,
|
|
52
|
+
class: "p-medium"
|
|
53
|
+
};
|
|
54
|
+
const _hoisted_25 = {
|
|
55
|
+
key: 1,
|
|
56
|
+
class: "p-medium t-transp"
|
|
57
|
+
};
|
|
58
|
+
const _hoisted_26 = {
|
|
59
|
+
key: 0,
|
|
60
|
+
class: "bg-light pd-medium radius-medium"
|
|
61
|
+
};
|
|
62
|
+
const _hoisted_27 = { class: "flex flex-wrap gap-small" };
|
|
63
|
+
const _hoisted_28 = {
|
|
64
|
+
key: 0,
|
|
65
|
+
class: "bg-light pd-medium radius-medium mn-b-medium"
|
|
66
|
+
};
|
|
67
|
+
const _hoisted_29 = { class: "cols-2 gap-small mobile:cols-1" };
|
|
68
|
+
const _hoisted_30 = ["onClick"];
|
|
69
|
+
const _hoisted_31 = { class: "w-3r h-3r radius-small o-hidden mn-r-small" };
|
|
70
|
+
const _hoisted_32 = ["src"];
|
|
71
|
+
const _hoisted_33 = {
|
|
72
|
+
key: 1,
|
|
73
|
+
class: "w-100 h-100 bg-light flex-center flex"
|
|
74
|
+
};
|
|
75
|
+
const _hoisted_34 = { class: "w-100 o-hidden" };
|
|
76
|
+
const _hoisted_35 = { class: "p-medium t-truncate" };
|
|
77
|
+
const _hoisted_36 = { class: "p-small t-transp" };
|
|
78
|
+
const _hoisted_37 = {
|
|
79
|
+
key: 1,
|
|
80
|
+
class: "bg-light pd-medium radius-medium"
|
|
81
|
+
};
|
|
82
|
+
const _hoisted_38 = { class: "cols-1 gap-small" };
|
|
83
|
+
const _hoisted_39 = ["onClick"];
|
|
84
|
+
const _hoisted_40 = { class: "w-3r h-3r radius-small o-hidden mn-r-small" };
|
|
85
|
+
const _hoisted_41 = ["src"];
|
|
86
|
+
const _hoisted_42 = {
|
|
87
|
+
key: 1,
|
|
88
|
+
class: "w-100 h-100 bg-light flex-center flex"
|
|
89
|
+
};
|
|
90
|
+
const _hoisted_43 = { class: "w-100 o-hidden" };
|
|
91
|
+
const _hoisted_44 = { class: "p-medium t-truncate" };
|
|
92
|
+
const _hoisted_45 = { class: "p-small t-transp" };
|
|
93
|
+
const _hoisted_46 = {
|
|
94
|
+
key: 2,
|
|
95
|
+
class: "bg-light pd-medium radius-medium t-center"
|
|
96
|
+
};
|
|
97
|
+
const _hoisted_47 = {
|
|
98
|
+
key: 0,
|
|
99
|
+
class: "mn-t-medium"
|
|
100
|
+
};
|
|
101
|
+
const _hoisted_48 = { class: "cols-5 gap-medium mobile:cols-2" };
|
|
102
|
+
const _hoisted_49 = ["onClick"];
|
|
103
|
+
const _hoisted_50 = { class: "w-100 aspect-1x1 radius-medium o-hidden mn-b-small" };
|
|
104
|
+
const _hoisted_51 = ["src"];
|
|
105
|
+
const _hoisted_52 = {
|
|
106
|
+
key: 1,
|
|
107
|
+
class: "w-100 h-100 bg-light flex-center flex"
|
|
108
|
+
};
|
|
109
|
+
const _hoisted_53 = { class: "p-medium t-truncate" };
|
|
110
|
+
const _sfc_main = {
|
|
111
|
+
__name: "ArtistDetail",
|
|
112
|
+
setup(__props) {
|
|
113
|
+
const { formatDate } = useGlobalMixins();
|
|
114
|
+
const router = useRouter();
|
|
115
|
+
const route = useRoute();
|
|
116
|
+
const isLoading = ref(true);
|
|
117
|
+
const genres = ref([]);
|
|
118
|
+
const artist = computed(() => {
|
|
119
|
+
return state.currentArtist;
|
|
120
|
+
});
|
|
121
|
+
const discography = computed(() => {
|
|
122
|
+
return state.discography;
|
|
123
|
+
});
|
|
124
|
+
const relatedArtists = computed(() => {
|
|
125
|
+
return state.relatedArtists;
|
|
126
|
+
});
|
|
127
|
+
const isOwner = computed(() => {
|
|
128
|
+
var _a, _b;
|
|
129
|
+
if (!artist.value || !state$1.user._id) return false;
|
|
130
|
+
return ((_b = (_a = artist.value.creator) == null ? void 0 : _a.target) == null ? void 0 : _b._id) === state$1.user._id;
|
|
131
|
+
});
|
|
132
|
+
const fetchArtist = async () => {
|
|
133
|
+
var _a;
|
|
134
|
+
isLoading.value = true;
|
|
135
|
+
try {
|
|
136
|
+
const url = route.params.url;
|
|
137
|
+
if (!url) {
|
|
138
|
+
throw new Error("Artist URL is required");
|
|
139
|
+
}
|
|
140
|
+
await actions.fetchArtistByUrl(url);
|
|
141
|
+
if (((_a = artist.value) == null ? void 0 : _a.genre) && artist.value.genre.length > 0) {
|
|
142
|
+
await fetchGenres();
|
|
143
|
+
}
|
|
144
|
+
} catch (error) {
|
|
145
|
+
console.error("Error fetching artist:", error);
|
|
146
|
+
actions$1.setError({
|
|
147
|
+
message: "Failed to load artist"
|
|
148
|
+
});
|
|
149
|
+
} finally {
|
|
150
|
+
isLoading.value = false;
|
|
151
|
+
}
|
|
152
|
+
};
|
|
153
|
+
const fetchGenres = async () => {
|
|
154
|
+
};
|
|
155
|
+
const editArtist = () => {
|
|
156
|
+
router.push({
|
|
157
|
+
name: "artist-edit",
|
|
158
|
+
params: { url: artist.value.url }
|
|
159
|
+
});
|
|
160
|
+
};
|
|
161
|
+
const manageContent = () => {
|
|
162
|
+
router.push({
|
|
163
|
+
name: "artist-manage-content",
|
|
164
|
+
params: { artistId: artist.value._id }
|
|
165
|
+
});
|
|
166
|
+
};
|
|
167
|
+
const navigateToAlbum = (album) => {
|
|
168
|
+
router.push({
|
|
169
|
+
name: "album-detail",
|
|
170
|
+
params: { url: album.url }
|
|
171
|
+
});
|
|
172
|
+
};
|
|
173
|
+
const navigateToTrack = (track) => {
|
|
174
|
+
router.push({
|
|
175
|
+
name: "track-detail",
|
|
176
|
+
params: { url: track.url }
|
|
177
|
+
});
|
|
178
|
+
};
|
|
179
|
+
const navigateToArtist = (artist2) => {
|
|
180
|
+
router.push({
|
|
181
|
+
name: "artist-detail",
|
|
182
|
+
params: { url: artist2.url }
|
|
183
|
+
});
|
|
184
|
+
};
|
|
185
|
+
const viewAllAlbums = () => {
|
|
186
|
+
router.push({
|
|
187
|
+
name: "artist-albums",
|
|
188
|
+
params: { artistId: artist.value._id }
|
|
189
|
+
});
|
|
190
|
+
};
|
|
191
|
+
const viewAllSingles = () => {
|
|
192
|
+
router.push({
|
|
193
|
+
name: "artist-singles",
|
|
194
|
+
params: { artistId: artist.value._id }
|
|
195
|
+
});
|
|
196
|
+
};
|
|
197
|
+
const addRelease = () => {
|
|
198
|
+
router.push({
|
|
199
|
+
name: "release-create",
|
|
200
|
+
query: { artistId: artist.value._id }
|
|
201
|
+
});
|
|
202
|
+
};
|
|
203
|
+
onMounted(async () => {
|
|
204
|
+
await fetchArtist();
|
|
205
|
+
});
|
|
206
|
+
return (_ctx, _cache) => {
|
|
207
|
+
return openBlock(), createElementBlock("div", null, [
|
|
208
|
+
isLoading.value ? (openBlock(), createElementBlock("div", _hoisted_1, [
|
|
209
|
+
createVNode(Loader)
|
|
210
|
+
])) : !artist.value ? (openBlock(), createElementBlock("div", _hoisted_2, [
|
|
211
|
+
_cache[1] || (_cache[1] = createElementVNode("h2", { class: "h2 mn-b-medium" }, "Artist Not Found", -1)),
|
|
212
|
+
_cache[2] || (_cache[2] = createElementVNode("p", { class: "p-medium t-transp mn-b-medium" }, "The artist you are looking for doesn't exist or may have been removed.", -1)),
|
|
213
|
+
createVNode(_sfc_main$1, {
|
|
214
|
+
submit: () => unref(router).push({ name: "music-home" }),
|
|
215
|
+
class: "bg-main t-white",
|
|
216
|
+
showSucces: false,
|
|
217
|
+
showLoader: false
|
|
218
|
+
}, {
|
|
219
|
+
default: withCtx(() => _cache[0] || (_cache[0] = [
|
|
220
|
+
createTextVNode(" Back to Music ")
|
|
221
|
+
])),
|
|
222
|
+
_: 1
|
|
223
|
+
}, 8, ["submit"])
|
|
224
|
+
])) : (openBlock(), createElementBlock("div", _hoisted_3, [
|
|
225
|
+
createElementVNode("div", {
|
|
226
|
+
class: "w-100 h-50vh pos-relative",
|
|
227
|
+
style: normalizeStyle(artist.value.coverUrl ? `background-image: url(${_ctx.FILE_SERVER_URL + artist.value.coverUrl}); background-size: cover; background-position: center;` : "")
|
|
228
|
+
}, [
|
|
229
|
+
createElementVNode("div", {
|
|
230
|
+
class: normalizeClass(["pos-absolute pos-t-0 pos-l-0 w-100 h-100 bg-blur-small", artist.value.coverUrl ? "bg-black-transp-50" : "bg-black"])
|
|
231
|
+
}, null, 2),
|
|
232
|
+
isOwner.value ? (openBlock(), createElementBlock("div", _hoisted_4, [
|
|
233
|
+
createVNode(_sfc_main$1, {
|
|
234
|
+
submit: editArtist,
|
|
235
|
+
class: "bg-main t-white mn-r-small",
|
|
236
|
+
showSucces: false,
|
|
237
|
+
showLoader: false
|
|
238
|
+
}, {
|
|
239
|
+
default: withCtx(() => _cache[3] || (_cache[3] = [
|
|
240
|
+
createTextVNode(" Edit Artist ")
|
|
241
|
+
])),
|
|
242
|
+
_: 1
|
|
243
|
+
}),
|
|
244
|
+
createVNode(_sfc_main$1, {
|
|
245
|
+
submit: manageContent,
|
|
246
|
+
class: "bg-white t-black",
|
|
247
|
+
showSucces: false,
|
|
248
|
+
showLoader: false
|
|
249
|
+
}, {
|
|
250
|
+
default: withCtx(() => _cache[4] || (_cache[4] = [
|
|
251
|
+
createTextVNode(" Manage Content ")
|
|
252
|
+
])),
|
|
253
|
+
_: 1
|
|
254
|
+
})
|
|
255
|
+
])) : createCommentVNode("", true),
|
|
256
|
+
createElementVNode("div", _hoisted_5, [
|
|
257
|
+
createElementVNode("div", _hoisted_6, [
|
|
258
|
+
artist.value.photoUrl ? (openBlock(), createElementBlock("img", {
|
|
259
|
+
key: 0,
|
|
260
|
+
src: _ctx.FILE_SERVER_URL + artist.value.photoUrl,
|
|
261
|
+
alt: "Artist photo",
|
|
262
|
+
class: "w-100 h-100 object-fit-cover"
|
|
263
|
+
}, null, 8, _hoisted_7)) : (openBlock(), createElementBlock("div", _hoisted_8, [
|
|
264
|
+
createElementVNode("span", _hoisted_9, toDisplayString(artist.value.name[0]), 1)
|
|
265
|
+
]))
|
|
266
|
+
]),
|
|
267
|
+
createElementVNode("div", _hoisted_10, [
|
|
268
|
+
createElementVNode("div", _hoisted_11, [
|
|
269
|
+
createElementVNode("h1", _hoisted_12, toDisplayString(artist.value.name), 1),
|
|
270
|
+
artist.value.isVerified ? (openBlock(), createElementBlock("span", _hoisted_13, " ✓ Verified ")) : createCommentVNode("", true)
|
|
271
|
+
]),
|
|
272
|
+
artist.value.location ? (openBlock(), createElementBlock("p", _hoisted_14, toDisplayString(artist.value.location), 1)) : createCommentVNode("", true),
|
|
273
|
+
createElementVNode("div", _hoisted_15, [
|
|
274
|
+
artist.value.socials.telegram ? (openBlock(), createElementBlock("a", {
|
|
275
|
+
key: 0,
|
|
276
|
+
href: `https://t.me/${artist.value.socials.telegram}`,
|
|
277
|
+
target: "_blank",
|
|
278
|
+
class: "bg-white t-black flex-center flex w-2r h-2r radius-extra"
|
|
279
|
+
}, _cache[5] || (_cache[5] = [
|
|
280
|
+
createElementVNode("span", null, "T", -1)
|
|
281
|
+
]), 8, _hoisted_16)) : createCommentVNode("", true),
|
|
282
|
+
artist.value.socials.twitter ? (openBlock(), createElementBlock("a", {
|
|
283
|
+
key: 1,
|
|
284
|
+
href: `https://twitter.com/${artist.value.socials.twitter}`,
|
|
285
|
+
target: "_blank",
|
|
286
|
+
class: "bg-white t-black flex-center flex w-2r h-2r radius-extra"
|
|
287
|
+
}, _cache[6] || (_cache[6] = [
|
|
288
|
+
createElementVNode("span", null, "𝕏", -1)
|
|
289
|
+
]), 8, _hoisted_17)) : createCommentVNode("", true),
|
|
290
|
+
artist.value.socials.instagram ? (openBlock(), createElementBlock("a", {
|
|
291
|
+
key: 2,
|
|
292
|
+
href: `https://instagram.com/${artist.value.socials.instagram}`,
|
|
293
|
+
target: "_blank",
|
|
294
|
+
class: "bg-white t-black flex-center flex w-2r h-2r radius-extra"
|
|
295
|
+
}, _cache[7] || (_cache[7] = [
|
|
296
|
+
createElementVNode("span", null, "I", -1)
|
|
297
|
+
]), 8, _hoisted_18)) : createCommentVNode("", true),
|
|
298
|
+
artist.value.socials.facebook ? (openBlock(), createElementBlock("a", {
|
|
299
|
+
key: 3,
|
|
300
|
+
href: `https://facebook.com/${artist.value.socials.facebook}`,
|
|
301
|
+
target: "_blank",
|
|
302
|
+
class: "bg-white t-black flex-center flex w-2r h-2r radius-extra"
|
|
303
|
+
}, _cache[8] || (_cache[8] = [
|
|
304
|
+
createElementVNode("span", null, "F", -1)
|
|
305
|
+
]), 8, _hoisted_19)) : createCommentVNode("", true),
|
|
306
|
+
artist.value.website ? (openBlock(), createElementBlock("a", {
|
|
307
|
+
key: 4,
|
|
308
|
+
href: artist.value.website,
|
|
309
|
+
target: "_blank",
|
|
310
|
+
class: "bg-white t-black flex-center flex w-2r h-2r radius-extra"
|
|
311
|
+
}, _cache[9] || (_cache[9] = [
|
|
312
|
+
createElementVNode("span", null, "W", -1)
|
|
313
|
+
]), 8, _hoisted_20)) : createCommentVNode("", true)
|
|
314
|
+
])
|
|
315
|
+
])
|
|
316
|
+
])
|
|
317
|
+
], 4),
|
|
318
|
+
createElementVNode("div", _hoisted_21, [
|
|
319
|
+
createElementVNode("div", _hoisted_22, [
|
|
320
|
+
createElementVNode("div", null, [
|
|
321
|
+
createElementVNode("div", _hoisted_23, [
|
|
322
|
+
_cache[10] || (_cache[10] = createElementVNode("h2", { class: "h3 mn-b-small" }, "Biography", -1)),
|
|
323
|
+
artist.value.bio ? (openBlock(), createElementBlock("p", _hoisted_24, toDisplayString(artist.value.bio), 1)) : (openBlock(), createElementBlock("p", _hoisted_25, "No biography available for this artist."))
|
|
324
|
+
]),
|
|
325
|
+
genres.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_26, [
|
|
326
|
+
_cache[11] || (_cache[11] = createElementVNode("h2", { class: "h3 mn-b-small" }, "Genres", -1)),
|
|
327
|
+
createElementVNode("div", _hoisted_27, [
|
|
328
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(genres.value, (genre) => {
|
|
329
|
+
return openBlock(), createElementBlock("span", {
|
|
330
|
+
key: genre._id,
|
|
331
|
+
class: "bg-white pd-thin radius-medium"
|
|
332
|
+
}, toDisplayString(genre.name), 1);
|
|
333
|
+
}), 128))
|
|
334
|
+
])
|
|
335
|
+
])) : createCommentVNode("", true)
|
|
336
|
+
]),
|
|
337
|
+
createElementVNode("div", null, [
|
|
338
|
+
discography.value.albums.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_28, [
|
|
339
|
+
_cache[14] || (_cache[14] = createElementVNode("h2", { class: "h3 mn-b-medium" }, "Albums", -1)),
|
|
340
|
+
createElementVNode("div", _hoisted_29, [
|
|
341
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(discography.value.albums, (album) => {
|
|
342
|
+
return openBlock(), createElementBlock("div", {
|
|
343
|
+
key: album._id,
|
|
344
|
+
class: "bg-white pd-small radius-medium flex-v-center flex cursor-pointer hover-bg-white",
|
|
345
|
+
onClick: ($event) => navigateToAlbum(album)
|
|
346
|
+
}, [
|
|
347
|
+
createElementVNode("div", _hoisted_31, [
|
|
348
|
+
album.coverUrl ? (openBlock(), createElementBlock("img", {
|
|
349
|
+
key: 0,
|
|
350
|
+
src: _ctx.FILE_SERVER_URL + album.coverUrl,
|
|
351
|
+
alt: "Album cover",
|
|
352
|
+
class: "w-100 h-100 object-fit-cover"
|
|
353
|
+
}, null, 8, _hoisted_32)) : (openBlock(), createElementBlock("div", _hoisted_33, _cache[12] || (_cache[12] = [
|
|
354
|
+
createElementVNode("span", null, "A", -1)
|
|
355
|
+
])))
|
|
356
|
+
]),
|
|
357
|
+
createElementVNode("div", _hoisted_34, [
|
|
358
|
+
createElementVNode("p", _hoisted_35, toDisplayString(album.title), 1),
|
|
359
|
+
createElementVNode("p", _hoisted_36, toDisplayString(unref(formatDate)(album.releaseDate)), 1)
|
|
360
|
+
])
|
|
361
|
+
], 8, _hoisted_30);
|
|
362
|
+
}), 128))
|
|
363
|
+
]),
|
|
364
|
+
discography.value.albums.length > 4 ? (openBlock(), createBlock(_sfc_main$1, {
|
|
365
|
+
key: 0,
|
|
366
|
+
submit: viewAllAlbums,
|
|
367
|
+
class: "mn-t-small w-100 bg-white t-black",
|
|
368
|
+
showSucces: false,
|
|
369
|
+
showLoader: false
|
|
370
|
+
}, {
|
|
371
|
+
default: withCtx(() => _cache[13] || (_cache[13] = [
|
|
372
|
+
createTextVNode(" View All Albums ")
|
|
373
|
+
])),
|
|
374
|
+
_: 1
|
|
375
|
+
})) : createCommentVNode("", true)
|
|
376
|
+
])) : createCommentVNode("", true),
|
|
377
|
+
discography.value.singles.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_37, [
|
|
378
|
+
_cache[17] || (_cache[17] = createElementVNode("h2", { class: "h3 mn-b-medium" }, "Singles & EPs", -1)),
|
|
379
|
+
createElementVNode("div", _hoisted_38, [
|
|
380
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(discography.value.singles, (single) => {
|
|
381
|
+
return openBlock(), createElementBlock("div", {
|
|
382
|
+
key: single._id,
|
|
383
|
+
class: "bg-white pd-small radius-medium flex-v-center flex cursor-pointer hover-bg-white",
|
|
384
|
+
onClick: ($event) => navigateToTrack(single)
|
|
385
|
+
}, [
|
|
386
|
+
createElementVNode("div", _hoisted_40, [
|
|
387
|
+
single.coverUrl ? (openBlock(), createElementBlock("img", {
|
|
388
|
+
key: 0,
|
|
389
|
+
src: _ctx.FILE_SERVER_URL + single.coverUrl,
|
|
390
|
+
alt: "Single cover",
|
|
391
|
+
class: "w-100 h-100 object-fit-cover"
|
|
392
|
+
}, null, 8, _hoisted_41)) : (openBlock(), createElementBlock("div", _hoisted_42, _cache[15] || (_cache[15] = [
|
|
393
|
+
createElementVNode("span", null, "S", -1)
|
|
394
|
+
])))
|
|
395
|
+
]),
|
|
396
|
+
createElementVNode("div", _hoisted_43, [
|
|
397
|
+
createElementVNode("p", _hoisted_44, toDisplayString(single.title), 1),
|
|
398
|
+
createElementVNode("p", _hoisted_45, toDisplayString(unref(formatDate)(single.releaseDate)), 1)
|
|
399
|
+
])
|
|
400
|
+
], 8, _hoisted_39);
|
|
401
|
+
}), 128))
|
|
402
|
+
]),
|
|
403
|
+
discography.value.singles.length > 5 ? (openBlock(), createBlock(_sfc_main$1, {
|
|
404
|
+
key: 0,
|
|
405
|
+
submit: viewAllSingles,
|
|
406
|
+
class: "mn-t-small w-100 bg-white t-black",
|
|
407
|
+
showSucces: false,
|
|
408
|
+
showLoader: false
|
|
409
|
+
}, {
|
|
410
|
+
default: withCtx(() => _cache[16] || (_cache[16] = [
|
|
411
|
+
createTextVNode(" View All Singles & EPs ")
|
|
412
|
+
])),
|
|
413
|
+
_: 1
|
|
414
|
+
})) : createCommentVNode("", true)
|
|
415
|
+
])) : createCommentVNode("", true),
|
|
416
|
+
discography.value.albums.length === 0 && discography.value.singles.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_46, [
|
|
417
|
+
_cache[19] || (_cache[19] = createElementVNode("p", { class: "p-medium mn-b-small" }, "No releases yet", -1)),
|
|
418
|
+
_cache[20] || (_cache[20] = createElementVNode("p", { class: "p-small t-transp" }, "This artist hasn't released any albums or singles yet.", -1)),
|
|
419
|
+
isOwner.value ? (openBlock(), createBlock(_sfc_main$1, {
|
|
420
|
+
key: 0,
|
|
421
|
+
submit: addRelease,
|
|
422
|
+
class: "mn-t-medium bg-main t-white",
|
|
423
|
+
showSucces: false,
|
|
424
|
+
showLoader: false
|
|
425
|
+
}, {
|
|
426
|
+
default: withCtx(() => _cache[18] || (_cache[18] = [
|
|
427
|
+
createTextVNode(" Add Release ")
|
|
428
|
+
])),
|
|
429
|
+
_: 1
|
|
430
|
+
})) : createCommentVNode("", true)
|
|
431
|
+
])) : createCommentVNode("", true)
|
|
432
|
+
])
|
|
433
|
+
]),
|
|
434
|
+
relatedArtists.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_47, [
|
|
435
|
+
_cache[21] || (_cache[21] = createElementVNode("h2", { class: "h3 mn-b-medium" }, "Fans Also Like", -1)),
|
|
436
|
+
createElementVNode("div", _hoisted_48, [
|
|
437
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(relatedArtists.value, (relatedArtist) => {
|
|
438
|
+
return openBlock(), createElementBlock("div", {
|
|
439
|
+
key: relatedArtist._id,
|
|
440
|
+
class: "t-center cursor-pointer",
|
|
441
|
+
onClick: ($event) => navigateToArtist(relatedArtist)
|
|
442
|
+
}, [
|
|
443
|
+
createElementVNode("div", _hoisted_50, [
|
|
444
|
+
relatedArtist.photoUrl ? (openBlock(), createElementBlock("img", {
|
|
445
|
+
key: 0,
|
|
446
|
+
src: _ctx.FILE_SERVER_URL + relatedArtist.photoUrl,
|
|
447
|
+
alt: "Artist photo",
|
|
448
|
+
class: "w-100 h-100 object-fit-cover"
|
|
449
|
+
}, null, 8, _hoisted_51)) : (openBlock(), createElementBlock("div", _hoisted_52, [
|
|
450
|
+
createElementVNode("span", null, toDisplayString(relatedArtist.name[0]), 1)
|
|
451
|
+
]))
|
|
452
|
+
]),
|
|
453
|
+
createElementVNode("p", _hoisted_53, toDisplayString(relatedArtist.name), 1)
|
|
454
|
+
], 8, _hoisted_49);
|
|
455
|
+
}), 128))
|
|
456
|
+
])
|
|
457
|
+
])) : createCommentVNode("", true)
|
|
458
|
+
])
|
|
459
|
+
]))
|
|
460
|
+
]);
|
|
461
|
+
};
|
|
462
|
+
}
|
|
463
|
+
};
|
|
464
|
+
export {
|
|
465
|
+
_sfc_main as default
|
|
466
|
+
};
|
|
467
|
+
//# sourceMappingURL=ArtistDetail.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArtistDetail.vue.js","sources":["../../../../../../../src/modules/music/components/pages/ArtistDetail.vue"],"sourcesContent":["<template>\n <div>\n <!-- Loading state -->\n <div v-if=\"isLoading\" class=\"flex-center flex pd-extra\">\n <Loader />\n </div>\n \n <!-- Artist not found -->\n <div v-else-if=\"!artist\" class=\"flex-center flex-column flex pd-extra\">\n <h2 class=\"h2 mn-b-medium\">Artist Not Found</h2>\n <p class=\"p-medium t-transp mn-b-medium\">The artist you are looking for doesn't exist or may have been removed.</p>\n <Button\n :submit=\"() => router.push({ name: 'music-home' })\"\n class=\"bg-main t-white\"\n :showSucces=\"false\"\n :showLoader=\"false\"\n >\n Back to Music\n </Button>\n </div>\n \n <!-- Artist content -->\n <div v-else>\n <!-- Cover image -->\n <div \n class=\"w-100 h-50vh pos-relative\"\n :style=\"artist.coverUrl ? `background-image: url(${FILE_SERVER_URL + artist.coverUrl}); background-size: cover; background-position: center;` : ''\"\n >\n <div class=\"pos-absolute pos-t-0 pos-l-0 w-100 h-100 bg-blur-small\" :class=\"artist.coverUrl ? 'bg-black-transp-50' : 'bg-black'\"></div>\n \n <!-- Artist actions for edit/manage -->\n <div v-if=\"isOwner\" class=\"pos-absolute pos-t-medium pos-r-medium z-index-1\">\n <Button\n :submit=\"editArtist\"\n class=\"bg-main t-white mn-r-small\"\n :showSucces=\"false\"\n :showLoader=\"false\"\n >\n Edit Artist\n </Button>\n \n <Button\n :submit=\"manageContent\"\n class=\"bg-white t-black\"\n :showSucces=\"false\"\n :showLoader=\"false\"\n >\n Manage Content\n </Button>\n </div>\n \n <!-- Artist profile info -->\n <div class=\"flex-v-center pos-absolute pos-b-0 pos-l-0 w-100 pd-medium z-index-1 flex mobile:flex-column mobile:flex-h-center\">\n <div class=\"w-15r h-15r radius-medium o-hidden mn-r-medium bs-black mobile:mn-r-0 mobile:mn-b-medium\">\n <img\n v-if=\"artist.photoUrl\"\n :src=\"FILE_SERVER_URL + artist.photoUrl\"\n alt=\"Artist photo\"\n class=\"w-100 h-100 object-fit-cover\"\n />\n <div v-else class=\"w-100 h-100 bg-white flex-center flex\">\n <span class=\"h1\">{{ artist.name[0] }}</span>\n </div>\n </div>\n \n <div class=\"t-white mobile:t-center\">\n <div class=\"flex-v-center flex-nowrap flex mn-b-small mobile:flex-center\">\n <h1 class=\"h1 mn-r-small\">{{ artist.name }}</h1>\n <span v-if=\"artist.isVerified\" class=\"bg-main-nano pd-micro radius-small\">\n ✓ Verified\n </span>\n </div>\n \n <p v-if=\"artist.location\" class=\"p-medium mn-b-small\">{{ artist.location }}</p>\n \n <!-- Social media links -->\n <div class=\"flex flex-nowrap gap-small mobile:flex-center\">\n <a \n v-if=\"artist.socials.telegram\" \n :href=\"`https://t.me/${artist.socials.telegram}`\" \n target=\"_blank\"\n class=\"bg-white t-black flex-center flex w-2r h-2r radius-extra\"\n >\n <span>T</span>\n </a>\n \n <a \n v-if=\"artist.socials.twitter\" \n :href=\"`https://twitter.com/${artist.socials.twitter}`\" \n target=\"_blank\"\n class=\"bg-white t-black flex-center flex w-2r h-2r radius-extra\"\n >\n <span>𝕏</span>\n </a>\n \n <a \n v-if=\"artist.socials.instagram\" \n :href=\"`https://instagram.com/${artist.socials.instagram}`\" \n target=\"_blank\"\n class=\"bg-white t-black flex-center flex w-2r h-2r radius-extra\"\n >\n <span>I</span>\n </a>\n \n <a \n v-if=\"artist.socials.facebook\" \n :href=\"`https://facebook.com/${artist.socials.facebook}`\" \n target=\"_blank\"\n class=\"bg-white t-black flex-center flex w-2r h-2r radius-extra\"\n >\n <span>F</span>\n </a>\n \n <a \n v-if=\"artist.website\" \n :href=\"artist.website\" \n target=\"_blank\"\n class=\"bg-white t-black flex-center flex w-2r h-2r radius-extra\"\n >\n <span>W</span>\n </a>\n </div>\n </div>\n </div>\n </div>\n \n <!-- Main content -->\n <div class=\"pd-medium\">\n <div class=\"cols-2-1_2 gap-medium mobile:cols-1\">\n <!-- Left column - Bio and details -->\n <div>\n <div class=\"bg-light pd-medium radius-medium mn-b-medium\">\n <h2 class=\"h3 mn-b-small\">Biography</h2>\n <p v-if=\"artist.bio\" class=\"p-medium\">{{ artist.bio }}</p>\n <p v-else class=\"p-medium t-transp\">No biography available for this artist.</p>\n </div>\n \n <!-- Genres -->\n <div v-if=\"genres.length > 0\" class=\"bg-light pd-medium radius-medium\">\n <h2 class=\"h3 mn-b-small\">Genres</h2>\n <div class=\"flex flex-wrap gap-small\">\n <span \n v-for=\"genre in genres\" \n :key=\"genre._id\"\n class=\"bg-white pd-thin radius-medium\"\n >\n {{ genre.name }}\n </span>\n </div>\n </div>\n </div>\n \n <!-- Right column - Discography -->\n <div>\n <!-- Albums section -->\n <div v-if=\"discography.albums.length > 0\" class=\"bg-light pd-medium radius-medium mn-b-medium\">\n <h2 class=\"h3 mn-b-medium\">Albums</h2>\n \n <div class=\"cols-2 gap-small mobile:cols-1\">\n <div\n v-for=\"album in discography.albums\"\n :key=\"album._id\"\n class=\"bg-white pd-small radius-medium flex-v-center flex cursor-pointer hover-bg-white\"\n @click=\"navigateToAlbum(album)\"\n >\n <div class=\"w-3r h-3r radius-small o-hidden mn-r-small\">\n <img\n v-if=\"album.coverUrl\"\n :src=\"FILE_SERVER_URL + album.coverUrl\"\n alt=\"Album cover\"\n class=\"w-100 h-100 object-fit-cover\"\n />\n <div v-else class=\"w-100 h-100 bg-light flex-center flex\">\n <span>A</span>\n </div>\n </div>\n \n <div class=\"w-100 o-hidden\">\n <p class=\"p-medium t-truncate\">{{ album.title }}</p>\n <p class=\"p-small t-transp\">{{ formatDate(album.releaseDate) }}</p>\n </div>\n </div>\n </div>\n \n <Button\n v-if=\"discography.albums.length > 4\"\n :submit=\"viewAllAlbums\"\n class=\"mn-t-small w-100 bg-white t-black\"\n :showSucces=\"false\"\n :showLoader=\"false\"\n >\n View All Albums\n </Button>\n </div>\n \n <!-- Singles section -->\n <div v-if=\"discography.singles.length > 0\" class=\"bg-light pd-medium radius-medium\">\n <h2 class=\"h3 mn-b-medium\">Singles & EPs</h2>\n \n <div class=\"cols-1 gap-small\">\n <div\n v-for=\"single in discography.singles\"\n :key=\"single._id\"\n class=\"bg-white pd-small radius-medium flex-v-center flex cursor-pointer hover-bg-white\"\n @click=\"navigateToTrack(single)\"\n >\n <div class=\"w-3r h-3r radius-small o-hidden mn-r-small\">\n <img\n v-if=\"single.coverUrl\"\n :src=\"FILE_SERVER_URL + single.coverUrl\"\n alt=\"Single cover\"\n class=\"w-100 h-100 object-fit-cover\"\n />\n <div v-else class=\"w-100 h-100 bg-light flex-center flex\">\n <span>S</span>\n </div>\n </div>\n \n <div class=\"w-100 o-hidden\">\n <p class=\"p-medium t-truncate\">{{ single.title }}</p>\n <p class=\"p-small t-transp\">{{ formatDate(single.releaseDate) }}</p>\n </div>\n </div>\n </div>\n \n <Button\n v-if=\"discography.singles.length > 5\"\n :submit=\"viewAllSingles\"\n class=\"mn-t-small w-100 bg-white t-black\"\n :showSucces=\"false\"\n :showLoader=\"false\"\n >\n View All Singles & EPs\n </Button>\n </div>\n \n <!-- No discography yet -->\n <div \n v-if=\"discography.albums.length === 0 && discography.singles.length === 0\" \n class=\"bg-light pd-medium radius-medium t-center\"\n >\n <p class=\"p-medium mn-b-small\">No releases yet</p>\n <p class=\"p-small t-transp\">This artist hasn't released any albums or singles yet.</p>\n \n <Button\n v-if=\"isOwner\"\n :submit=\"addRelease\"\n class=\"mn-t-medium bg-main t-white\"\n :showSucces=\"false\"\n :showLoader=\"false\"\n >\n Add Release\n </Button>\n </div>\n </div>\n </div>\n \n <!-- Related Artists -->\n <div v-if=\"relatedArtists.length > 0\" class=\"mn-t-medium\">\n <h2 class=\"h3 mn-b-medium\">Fans Also Like</h2>\n \n <div class=\"cols-5 gap-medium mobile:cols-2\">\n <div\n v-for=\"relatedArtist in relatedArtists\"\n :key=\"relatedArtist._id\"\n class=\"t-center cursor-pointer\"\n @click=\"navigateToArtist(relatedArtist)\"\n >\n <div class=\"w-100 aspect-1x1 radius-medium o-hidden mn-b-small\">\n <img\n v-if=\"relatedArtist.photoUrl\"\n :src=\"FILE_SERVER_URL + relatedArtist.photoUrl\"\n alt=\"Artist photo\"\n class=\"w-100 h-100 object-fit-cover\"\n />\n <div v-else class=\"w-100 h-100 bg-light flex-center flex\">\n <span>{{ relatedArtist.name[0] }}</span>\n </div>\n </div>\n \n <p class=\"p-medium t-truncate\">{{ relatedArtist.name }}</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed, onMounted } from 'vue';\nimport { useRouter, useRoute } from 'vue-router';\n\n// Import Martyrs components\nimport Button from '@martyrs/src/components/Button/Button.vue';\nimport Loader from '@martyrs/src/components/Loader/Loader.vue';\n\n// Import store\nimport * as artistsStore from '../../store/artists';\n// import * as genreStore from '../../store/genres'; // Assuming you have a genre store\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\nimport * as globals from '@martyrs/src/modules/globals/views/store/globals.js';\n\n// Import mixins\nimport { useGlobalMixins } from '@martyrs/src/modules/globals/views/mixins/mixins.js';\nconst { formatDate } = useGlobalMixins();\n\n// Router and route\nconst router = useRouter();\nconst route = useRoute();\n\n// State\nconst isLoading = ref(true);\nconst genres = ref([]);\n\n// Computed\nconst artist = computed(() => {\n return artistsStore.state.currentArtist;\n});\n\nconst discography = computed(() => {\n return artistsStore.state.discography;\n});\n\nconst relatedArtists = computed(() => {\n return artistsStore.state.relatedArtists;\n});\n\nconst isOwner = computed(() => {\n if (!artist.value || !auth.state.user._id) return false;\n \n // Check if current user is the creator of the artist\n return artist.value.creator?.target?._id === auth.state.user._id;\n});\n\n// Methods\nconst fetchArtist = async () => {\n isLoading.value = true;\n try {\n // Get URL from route params\n const url = route.params.url;\n if (!url) {\n throw new Error('Artist URL is required');\n }\n \n await artistsStore.actions.fetchArtistByUrl(url);\n \n // Fetch genre details if we have genre IDs\n if (artist.value?.genre && artist.value.genre.length > 0) {\n await fetchGenres();\n }\n } catch (error) {\n console.error('Error fetching artist:', error);\n globals.actions.setError({\n message: 'Failed to load artist'\n });\n } finally {\n isLoading.value = false;\n }\n};\n\nconst fetchGenres = async () => {\n try {\n // Assuming genreStore has a method to fetch multiple genres by IDs\n // const fetchedGenres = await genreStore.actions.fetchGenresByIds(artist.value.genre);\n // genres.value = fetchedGenres;\n } catch (error) {\n console.error('Error fetching genres:', error);\n }\n};\n\nconst editArtist = () => {\n router.push({\n name: 'artist-edit',\n params: { url: artist.value.url }\n });\n};\n\nconst manageContent = () => {\n // Navigate to a page for managing artist content (albums, tracks, etc.)\n router.push({\n name: 'artist-manage-content',\n params: { artistId: artist.value._id }\n });\n};\n\nconst navigateToAlbum = (album) => {\n router.push({\n name: 'album-detail',\n params: { url: album.url }\n });\n};\n\nconst navigateToTrack = (track) => {\n router.push({\n name: 'track-detail',\n params: { url: track.url }\n });\n};\n\nconst navigateToArtist = (artist) => {\n router.push({\n name: 'artist-detail',\n params: { url: artist.url }\n });\n};\n\nconst viewAllAlbums = () => {\n router.push({\n name: 'artist-albums',\n params: { artistId: artist.value._id }\n });\n};\n\nconst viewAllSingles = () => {\n router.push({\n name: 'artist-singles',\n params: { artistId: artist.value._id }\n });\n};\n\nconst addRelease = () => {\n router.push({\n name: 'release-create',\n query: { artistId: artist.value._id }\n });\n};\n\n// Lifecycle hooks\nonMounted(async () => {\n await fetchArtist();\n});\n</script>"],"names":["artistsStore.state","auth.state","artistsStore.actions","globals.actions","artist"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiTA,UAAM,EAAE,WAAY,IAAG,gBAAiB;AAGxC,UAAM,SAAS,UAAW;AAC1B,UAAM,QAAQ,SAAU;AAGxB,UAAM,YAAY,IAAI,IAAI;AAC1B,UAAM,SAAS,IAAI,EAAE;AAGrB,UAAM,SAAS,SAAS,MAAM;AAC5B,aAAOA,MAAmB;AAAA,IAC5B,CAAC;AAED,UAAM,cAAc,SAAS,MAAM;AACjC,aAAOA,MAAmB;AAAA,IAC5B,CAAC;AAED,UAAM,iBAAiB,SAAS,MAAM;AACpC,aAAOA,MAAmB;AAAA,IAC5B,CAAC;AAED,UAAM,UAAU,SAAS,MAAM;;AAC7B,UAAI,CAAC,OAAO,SAAS,CAACC,QAAW,KAAK,IAAK,QAAO;AAGlD,eAAO,kBAAO,MAAM,YAAb,mBAAsB,WAAtB,mBAA8B,SAAQA,QAAW,KAAK;AAAA,IAC/D,CAAC;AAGD,UAAM,cAAc,YAAY;;AAC9B,gBAAU,QAAQ;AAClB,UAAI;AAEF,cAAM,MAAM,MAAM,OAAO;AACzB,YAAI,CAAC,KAAK;AACR,gBAAM,IAAI,MAAM,wBAAwB;AAAA,QAC9C;AAEI,cAAMC,QAAqB,iBAAiB,GAAG;AAG/C,cAAI,YAAO,UAAP,mBAAc,UAAS,OAAO,MAAM,MAAM,SAAS,GAAG;AACxD,gBAAM,YAAa;AAAA,QACzB;AAAA,MACG,SAAQ,OAAO;AACd,gBAAQ,MAAM,0BAA0B,KAAK;AAC7CC,kBAAgB,SAAS;AAAA,UACvB,SAAS;AAAA,QACf,CAAK;AAAA,MACL,UAAY;AACR,kBAAU,QAAQ;AAAA,MACtB;AAAA,IACA;AAEA,UAAM,cAAc,YAAY;AAAA,IAQhC;AAEA,UAAM,aAAa,MAAM;AACvB,aAAO,KAAK;AAAA,QACV,MAAM;AAAA,QACN,QAAQ,EAAE,KAAK,OAAO,MAAM,IAAG;AAAA,MACnC,CAAG;AAAA,IACH;AAEA,UAAM,gBAAgB,MAAM;AAE1B,aAAO,KAAK;AAAA,QACV,MAAM;AAAA,QACN,QAAQ,EAAE,UAAU,OAAO,MAAM,IAAG;AAAA,MACxC,CAAG;AAAA,IACH;AAEA,UAAM,kBAAkB,CAAC,UAAU;AACjC,aAAO,KAAK;AAAA,QACV,MAAM;AAAA,QACN,QAAQ,EAAE,KAAK,MAAM,IAAG;AAAA,MAC5B,CAAG;AAAA,IACH;AAEA,UAAM,kBAAkB,CAAC,UAAU;AACjC,aAAO,KAAK;AAAA,QACV,MAAM;AAAA,QACN,QAAQ,EAAE,KAAK,MAAM,IAAG;AAAA,MAC5B,CAAG;AAAA,IACH;AAEA,UAAM,mBAAmB,CAACC,YAAW;AACnC,aAAO,KAAK;AAAA,QACV,MAAM;AAAA,QACN,QAAQ,EAAE,KAAKA,QAAO,IAAG;AAAA,MAC7B,CAAG;AAAA,IACH;AAEA,UAAM,gBAAgB,MAAM;AAC1B,aAAO,KAAK;AAAA,QACV,MAAM;AAAA,QACN,QAAQ,EAAE,UAAU,OAAO,MAAM,IAAG;AAAA,MACxC,CAAG;AAAA,IACH;AAEA,UAAM,iBAAiB,MAAM;AAC3B,aAAO,KAAK;AAAA,QACV,MAAM;AAAA,QACN,QAAQ,EAAE,UAAU,OAAO,MAAM,IAAG;AAAA,MACxC,CAAG;AAAA,IACH;AAEA,UAAM,aAAa,MAAM;AACvB,aAAO,KAAK;AAAA,QACV,MAAM;AAAA,QACN,OAAO,EAAE,UAAU,OAAO,MAAM,IAAG;AAAA,MACvC,CAAG;AAAA,IACH;AAGA,cAAU,YAAY;AACpB,YAAM,YAAa;AAAA,IACrB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|