@ozdao/martyrs 0.2.484 → 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-2NvSR0vE.js → Media-CXQSPHt2.js} +1 -1
- package/dist/{Media-EYG9WPI4.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-BT1yoKH2.js → main-Cfh5138F.js} +2102 -1993
- 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/Dropdown/{Dropdown.vue2.cjs → Dropdown.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.js.map → Dropdown.vue.cjs.map} +1 -1
- package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.js → Dropdown.vue.js} +2 -2
- package/dist/martyrs/src/components/Dropdown/Dropdown.vue.js.map +1 -0
- package/dist/martyrs/src/components/Feed/Feed.vue.cjs +2 -2
- package/dist/martyrs/src/components/Feed/Feed.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.js +2 -2
- package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
- package/dist/martyrs/src/components/Field/Field.vue.cjs +13 -7
- package/dist/martyrs/src/components/Field/Field.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Field/Field.vue.js +14 -8
- package/dist/martyrs/src/components/Field/Field.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/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/auth.client.cjs +3 -0
- package/dist/martyrs/src/modules/auth/auth.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/auth.client.js +3 -0
- package/dist/martyrs/src/modules/auth/auth.client.js.map +1 -1
- package/dist/martyrs/src/modules/auth/locales/en.cjs +79 -0
- package/dist/martyrs/src/modules/auth/locales/en.cjs.map +1 -0
- package/dist/martyrs/src/modules/auth/locales/en.js +79 -0
- package/dist/martyrs/src/modules/auth/locales/en.js.map +1 -0
- package/dist/martyrs/src/modules/auth/locales/index.cjs +10 -0
- package/dist/martyrs/src/modules/auth/locales/index.cjs.map +1 -0
- package/dist/martyrs/src/modules/auth/locales/index.js +10 -0
- package/dist/martyrs/src/modules/auth/locales/index.js.map +1 -0
- package/dist/martyrs/src/modules/auth/locales/ru.cjs +79 -0
- package/dist/martyrs/src/modules/auth/locales/ru.cjs.map +1 -0
- package/dist/martyrs/src/modules/auth/locales/ru.js +79 -0
- package/dist/martyrs/src/modules/auth/locales/ru.js.map +1 -0
- package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs +0 -9
- package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js +2 -11
- package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.cjs +4 -6
- 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 +4 -6
- 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 +7 -9
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +7 -9
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js.map +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 +11 -13
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +11 -13
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs +12 -14
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +12 -14
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs +11 -13
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +11 -13
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.cjs +5 -47
- package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.js +5 -47
- package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.js.map +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/globals.client.cjs +1 -0
- package/dist/martyrs/src/modules/globals/globals.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/globals.client.js +1 -0
- package/dist/martyrs/src/modules/globals/globals.client.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/components/blocks/AlertDialog.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/AlertDialog.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +2 -2
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +2 -2
- 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/Navigation.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.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/icons/actions/IconShow.vue.cjs +49 -0
- package/dist/martyrs/src/modules/icons/actions/IconShow.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/icons/actions/IconShow.vue.js +49 -0
- package/dist/martyrs/src/modules/icons/actions/IconShow.vue.js.map +1 -0
- package/dist/martyrs/src/modules/icons/navigation/IconHeart.vue.cjs +34 -0
- package/dist/martyrs/src/modules/icons/navigation/IconHeart.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/icons/navigation/IconHeart.vue.js +34 -0
- package/dist/martyrs/src/modules/icons/navigation/IconHeart.vue.js.map +1 -0
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.cjs +115 -122
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js +163 -170
- package/dist/martyrs/src/modules/icons/pages/IconsPage.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/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 +2 -2
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/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 +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/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 +3 -3
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +3 -3
- package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.cjs +3 -3
- package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.js +3 -3
- package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.js +2 -2
- 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/layouts/Spots.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +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 +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 +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 +1407 -0
- package/dist/music.server.js +1407 -0
- 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 +250 -97
- 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 +42 -27
- package/src/components/index.js +2 -0
- package/src/main.js +6 -0
- package/src/modules/auth/auth.client.js +7 -0
- package/src/modules/auth/locales/en.js +76 -0
- package/src/modules/auth/locales/index.js +7 -0
- package/src/modules/auth/locales/ru.js +76 -0
- package/src/modules/auth/views/components/layouts/Auth.vue +2 -44
- package/src/modules/auth/views/components/pages/EnterCode.vue +5 -7
- package/src/modules/auth/views/components/pages/EnterPassword.vue +7 -10
- package/src/modules/auth/views/components/pages/ResetPassword.vue +9 -12
- package/src/modules/auth/views/components/pages/SignIn.vue +12 -15
- package/src/modules/auth/views/components/pages/SignUp.vue +9 -12
- package/src/modules/auth/views/components/sections/SliderFeatures.vue +11 -48
- package/src/modules/events/components/pages/EditEvent.vue +1 -1
- package/src/modules/globals/globals.client.js +1 -0
- 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/icons/actions/IconShow.vue +23 -0
- package/src/modules/icons/pages/IconsPage.vue +114 -120
- package/src/modules/products/components/pages/Product.vue +1 -1
- package/dist/main-rF15sgss.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/Dropdown/Dropdown.vue2.cjs.map +0 -1
- package/dist/martyrs/src/components/Popup/Popup.vue2.cjs.map +0 -1
- package/dist/martyrs/src/modules/auth/views/localization/EnterCode.json.cjs +0 -9
- package/dist/martyrs/src/modules/auth/views/localization/EnterCode.json.cjs.map +0 -1
- package/dist/martyrs/src/modules/auth/views/localization/EnterCode.json.js +0 -9
- package/dist/martyrs/src/modules/auth/views/localization/EnterCode.json.js.map +0 -1
- package/dist/martyrs/src/modules/auth/views/localization/EnterPassword.json.cjs +0 -9
- package/dist/martyrs/src/modules/auth/views/localization/EnterPassword.json.cjs.map +0 -1
- package/dist/martyrs/src/modules/auth/views/localization/EnterPassword.json.js +0 -9
- package/dist/martyrs/src/modules/auth/views/localization/EnterPassword.json.js.map +0 -1
- package/dist/martyrs/src/modules/auth/views/localization/ResetPassword.json.cjs +0 -9
- package/dist/martyrs/src/modules/auth/views/localization/ResetPassword.json.cjs.map +0 -1
- package/dist/martyrs/src/modules/auth/views/localization/ResetPassword.json.js +0 -9
- package/dist/martyrs/src/modules/auth/views/localization/ResetPassword.json.js.map +0 -1
- package/dist/martyrs/src/modules/auth/views/localization/SignIn.json.cjs +0 -9
- package/dist/martyrs/src/modules/auth/views/localization/SignIn.json.cjs.map +0 -1
- package/dist/martyrs/src/modules/auth/views/localization/SignIn.json.js +0 -9
- package/dist/martyrs/src/modules/auth/views/localization/SignIn.json.js.map +0 -1
- package/dist/martyrs/src/modules/auth/views/localization/SignUp.json.cjs +0 -9
- package/dist/martyrs/src/modules/auth/views/localization/SignUp.json.cjs.map +0 -1
- package/dist/martyrs/src/modules/auth/views/localization/SignUp.json.js +0 -9
- package/dist/martyrs/src/modules/auth/views/localization/SignUp.json.js.map +0 -1
- package/src/modules/auth/views/localization/EnterCode.json +0 -16
- package/src/modules/auth/views/localization/EnterPassword.json +0 -22
- package/src/modules/auth/views/localization/ResetPassword.json +0 -26
- package/src/modules/auth/views/localization/SignIn.json +0 -34
- package/src/modules/auth/views/localization/SignUp.json +0 -28
- /package/src/components/{DatePicker → Calendar}/Calendar.vue +0 -0
|
@@ -0,0 +1,328 @@
|
|
|
1
|
+
import { reactive, ref, onMounted, createElementBlock, openBlock, createElementVNode, createVNode, createBlock, withCtx, createTextVNode } from "vue";
|
|
2
|
+
import Field from "../../../../components/Field/Field.vue.js";
|
|
3
|
+
import Select from "../../../../components/Select/Select.vue.js";
|
|
4
|
+
import _sfc_main$2 from "../../../../components/Radio/Radio.vue.js";
|
|
5
|
+
import _sfc_main$1 from "../../../../components/Checkbox/Checkbox.vue.js";
|
|
6
|
+
import _sfc_main$5 from "../../../../components/Button/Button.vue.js";
|
|
7
|
+
import Upload from "../../../../components/Upload/Upload.vue.js";
|
|
8
|
+
import _sfc_main$4 from "../../../../components/UploadImage/UploadImage.vue.js";
|
|
9
|
+
import Media from "../../../../components/Media/Media.vue.js";
|
|
10
|
+
import _sfc_main$3 from "../../../icons/entities/IconMusic.vue.js";
|
|
11
|
+
import { state } from "../../../auth/views/store/auth.js";
|
|
12
|
+
import { actions as actions$2 } from "../../store/tracks.js";
|
|
13
|
+
import { actions } from "../../store/artists.js";
|
|
14
|
+
import { actions as actions$1 } from "../../store/albums.js";
|
|
15
|
+
const _hoisted_1 = { class: "upload-form" };
|
|
16
|
+
const _hoisted_2 = { class: "form-group mn-b-medium" };
|
|
17
|
+
const _hoisted_3 = { class: "form-group mn-b-medium" };
|
|
18
|
+
const _hoisted_4 = { class: "form-group mn-b-medium" };
|
|
19
|
+
const _hoisted_5 = { class: "form-group mn-b-medium" };
|
|
20
|
+
const _hoisted_6 = { class: "form-group mn-b-medium" };
|
|
21
|
+
const _hoisted_7 = { class: "form-group mn-b-medium" };
|
|
22
|
+
const _hoisted_8 = { class: "form-group mn-b-medium" };
|
|
23
|
+
const _hoisted_9 = { class: "flex gap-small" };
|
|
24
|
+
const _hoisted_10 = { class: "form-group mn-b-medium" };
|
|
25
|
+
const _hoisted_11 = { class: "track-cover-upload flex gap-medium" };
|
|
26
|
+
const _hoisted_12 = { class: "track-cover-preview bg-dark-transp-25 radius-small o-hidden" };
|
|
27
|
+
const _hoisted_13 = {
|
|
28
|
+
key: 1,
|
|
29
|
+
class: "w-10r h-10r flex-center flex"
|
|
30
|
+
};
|
|
31
|
+
const _hoisted_14 = { class: "form-group mn-b-medium" };
|
|
32
|
+
const _hoisted_15 = { class: "form-group mn-b-medium" };
|
|
33
|
+
const _hoisted_16 = { class: "form-actions t-right" };
|
|
34
|
+
const _sfc_main = {
|
|
35
|
+
__name: "UploadForm",
|
|
36
|
+
emits: ["uploaded"],
|
|
37
|
+
setup(__props, { emit: __emit }) {
|
|
38
|
+
const emit = __emit;
|
|
39
|
+
const form = reactive({
|
|
40
|
+
title: "",
|
|
41
|
+
artist: null,
|
|
42
|
+
album: null,
|
|
43
|
+
genre: [],
|
|
44
|
+
releaseDate: (/* @__PURE__ */ new Date()).toISOString().split("T")[0],
|
|
45
|
+
isExplicit: false,
|
|
46
|
+
isPublic: true,
|
|
47
|
+
coverUrl: "",
|
|
48
|
+
fileUrl: "",
|
|
49
|
+
lyrics: ""
|
|
50
|
+
});
|
|
51
|
+
const artistOptions = ref([]);
|
|
52
|
+
const albumOptions = ref([]);
|
|
53
|
+
const genreOptions = ref([
|
|
54
|
+
"Pop",
|
|
55
|
+
"Rock",
|
|
56
|
+
"Hip Hop",
|
|
57
|
+
"R&B",
|
|
58
|
+
"Jazz",
|
|
59
|
+
"Electronic",
|
|
60
|
+
"Classical",
|
|
61
|
+
"Country",
|
|
62
|
+
"Folk",
|
|
63
|
+
"Blues"
|
|
64
|
+
]);
|
|
65
|
+
const validationErrors = reactive({});
|
|
66
|
+
const submitForm = async () => {
|
|
67
|
+
console.log("Submitting form data:", form);
|
|
68
|
+
console.log("API URL:", process.env.API_URL);
|
|
69
|
+
const trackData = {
|
|
70
|
+
...form,
|
|
71
|
+
creator: {
|
|
72
|
+
type: "user",
|
|
73
|
+
// Make sure type matches what's expected on the server (lowercase)
|
|
74
|
+
target: state.user._id
|
|
75
|
+
},
|
|
76
|
+
owner: {
|
|
77
|
+
type: "user",
|
|
78
|
+
// Make sure type matches what's expected on the server (lowercase)
|
|
79
|
+
target: state.user._id
|
|
80
|
+
},
|
|
81
|
+
status: "draft"
|
|
82
|
+
// Add a default status if needed
|
|
83
|
+
};
|
|
84
|
+
try {
|
|
85
|
+
console.log("Sending track data to API:", trackData);
|
|
86
|
+
const track = await actions$2.createTrack(trackData);
|
|
87
|
+
console.log("Track created successfully:", track);
|
|
88
|
+
emit("uploaded", track);
|
|
89
|
+
resetForm();
|
|
90
|
+
} catch (error) {
|
|
91
|
+
console.error("Error uploading track:", error);
|
|
92
|
+
if (error.status) {
|
|
93
|
+
console.error(`HTTP Status: ${error.status}`);
|
|
94
|
+
}
|
|
95
|
+
if (error.message) {
|
|
96
|
+
console.error(`Error message: ${error.message}`);
|
|
97
|
+
}
|
|
98
|
+
if (error.stack) {
|
|
99
|
+
console.error(`Stack trace: ${error.stack}`);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
const resetForm = () => {
|
|
104
|
+
Object.keys(form).forEach((key) => {
|
|
105
|
+
if (key === "releaseDate") {
|
|
106
|
+
form[key] = (/* @__PURE__ */ new Date()).toISOString().split("T")[0];
|
|
107
|
+
} else if (key === "isPublic") {
|
|
108
|
+
form[key] = true;
|
|
109
|
+
} else if (key === "isExplicit") {
|
|
110
|
+
form[key] = false;
|
|
111
|
+
} else {
|
|
112
|
+
form[key] = "";
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
Object.keys(validationErrors).forEach((key) => {
|
|
116
|
+
validationErrors[key] = null;
|
|
117
|
+
});
|
|
118
|
+
};
|
|
119
|
+
onMounted(async () => {
|
|
120
|
+
try {
|
|
121
|
+
const userArtists = await actions.fetchUserArtists(state.user._id);
|
|
122
|
+
artistOptions.value = userArtists.map((artist) => ({
|
|
123
|
+
name: artist.name,
|
|
124
|
+
value: artist._id
|
|
125
|
+
}));
|
|
126
|
+
const userAlbums = await actions$1.fetchUserAlbums(state.user._id);
|
|
127
|
+
albumOptions.value = userAlbums.map((album) => ({
|
|
128
|
+
name: album.title,
|
|
129
|
+
value: album._id
|
|
130
|
+
}));
|
|
131
|
+
} catch (error) {
|
|
132
|
+
console.error("Error fetching artists and albums:", error);
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
return (_ctx, _cache) => {
|
|
136
|
+
return openBlock(), createElementBlock("div", _hoisted_1, [
|
|
137
|
+
createElementVNode("div", _hoisted_2, [
|
|
138
|
+
_cache[12] || (_cache[12] = createElementVNode("label", {
|
|
139
|
+
for: "title",
|
|
140
|
+
class: "t-white t-medium mn-b-thin d-block"
|
|
141
|
+
}, "Track Title", -1)),
|
|
142
|
+
createVNode(Field, {
|
|
143
|
+
field: form.title,
|
|
144
|
+
"onUpdate:field": _cache[0] || (_cache[0] = ($event) => form.title = $event),
|
|
145
|
+
id: "title",
|
|
146
|
+
type: "text",
|
|
147
|
+
placeholder: "Track Title",
|
|
148
|
+
validation: validationErrors.title,
|
|
149
|
+
class: "w-100 pd-small bg-dark-transp-25 radius-small t-white"
|
|
150
|
+
}, null, 8, ["field", "validation"])
|
|
151
|
+
]),
|
|
152
|
+
createElementVNode("div", _hoisted_3, [
|
|
153
|
+
_cache[13] || (_cache[13] = createElementVNode("label", {
|
|
154
|
+
for: "artist",
|
|
155
|
+
class: "t-white t-medium mn-b-thin d-block"
|
|
156
|
+
}, "Artist", -1)),
|
|
157
|
+
createVNode(Select, {
|
|
158
|
+
select: form.artist,
|
|
159
|
+
"onUpdate:select": _cache[1] || (_cache[1] = ($event) => form.artist = $event),
|
|
160
|
+
id: "artist",
|
|
161
|
+
options: artistOptions.value,
|
|
162
|
+
placeholder: "Select an artist",
|
|
163
|
+
validation: validationErrors.artist,
|
|
164
|
+
class: "w-100 pd-small bg-dark-transp-25 radius-small t-white"
|
|
165
|
+
}, null, 8, ["select", "options", "validation"])
|
|
166
|
+
]),
|
|
167
|
+
createElementVNode("div", _hoisted_4, [
|
|
168
|
+
_cache[14] || (_cache[14] = createElementVNode("label", {
|
|
169
|
+
for: "album",
|
|
170
|
+
class: "t-white t-medium mn-b-thin d-block"
|
|
171
|
+
}, "Album (Optional)", -1)),
|
|
172
|
+
createVNode(Select, {
|
|
173
|
+
select: form.album,
|
|
174
|
+
"onUpdate:select": _cache[2] || (_cache[2] = ($event) => form.album = $event),
|
|
175
|
+
id: "album",
|
|
176
|
+
options: albumOptions.value,
|
|
177
|
+
placeholder: "Select an album",
|
|
178
|
+
class: "w-100 pd-small bg-dark-transp-25 radius-small t-white"
|
|
179
|
+
}, null, 8, ["select", "options"])
|
|
180
|
+
]),
|
|
181
|
+
createElementVNode("div", _hoisted_5, [
|
|
182
|
+
_cache[15] || (_cache[15] = createElementVNode("label", {
|
|
183
|
+
for: "genre",
|
|
184
|
+
class: "t-white t-medium mn-b-thin d-block"
|
|
185
|
+
}, "Genre", -1)),
|
|
186
|
+
createVNode(Select, {
|
|
187
|
+
select: form.genre,
|
|
188
|
+
"onUpdate:select": _cache[3] || (_cache[3] = ($event) => form.genre = $event),
|
|
189
|
+
id: "genre",
|
|
190
|
+
options: genreOptions.value,
|
|
191
|
+
placeholder: "Select a genre",
|
|
192
|
+
validation: validationErrors.genre,
|
|
193
|
+
class: "w-100 pd-small bg-dark-transp-25 radius-small t-white"
|
|
194
|
+
}, null, 8, ["select", "options", "validation"])
|
|
195
|
+
]),
|
|
196
|
+
createElementVNode("div", _hoisted_6, [
|
|
197
|
+
_cache[16] || (_cache[16] = createElementVNode("label", {
|
|
198
|
+
for: "releaseDate",
|
|
199
|
+
class: "t-white t-medium mn-b-thin d-block"
|
|
200
|
+
}, "Release Date", -1)),
|
|
201
|
+
createVNode(Field, {
|
|
202
|
+
field: form.releaseDate,
|
|
203
|
+
"onUpdate:field": _cache[4] || (_cache[4] = ($event) => form.releaseDate = $event),
|
|
204
|
+
id: "releaseDate",
|
|
205
|
+
type: "date",
|
|
206
|
+
validation: validationErrors.releaseDate,
|
|
207
|
+
class: "w-100 pd-small bg-dark-transp-25 radius-small t-white"
|
|
208
|
+
}, null, 8, ["field", "validation"])
|
|
209
|
+
]),
|
|
210
|
+
createElementVNode("div", _hoisted_7, [
|
|
211
|
+
_cache[17] || (_cache[17] = createElementVNode("label", {
|
|
212
|
+
for: "isExplicit",
|
|
213
|
+
class: "t-white t-medium mn-b-thin d-block"
|
|
214
|
+
}, "Explicit Content", -1)),
|
|
215
|
+
createVNode(_sfc_main$1, {
|
|
216
|
+
checkbox: form.isExplicit,
|
|
217
|
+
"onUpdate:checkbox": _cache[5] || (_cache[5] = ($event) => form.isExplicit = $event),
|
|
218
|
+
id: "isExplicit",
|
|
219
|
+
label: "This track contains explicit content",
|
|
220
|
+
class: "t-white"
|
|
221
|
+
}, null, 8, ["checkbox"])
|
|
222
|
+
]),
|
|
223
|
+
createElementVNode("div", _hoisted_8, [
|
|
224
|
+
_cache[18] || (_cache[18] = createElementVNode("label", {
|
|
225
|
+
for: "isPublic",
|
|
226
|
+
class: "t-white t-medium mn-b-thin d-block"
|
|
227
|
+
}, "Privacy", -1)),
|
|
228
|
+
createElementVNode("div", _hoisted_9, [
|
|
229
|
+
createVNode(_sfc_main$2, {
|
|
230
|
+
radio: form.isPublic,
|
|
231
|
+
"onUpdate:radio": _cache[6] || (_cache[6] = ($event) => form.isPublic = $event),
|
|
232
|
+
value: true,
|
|
233
|
+
name: "privacy",
|
|
234
|
+
label: "Public",
|
|
235
|
+
class: "t-white"
|
|
236
|
+
}, null, 8, ["radio"]),
|
|
237
|
+
createVNode(_sfc_main$2, {
|
|
238
|
+
radio: form.isPublic,
|
|
239
|
+
"onUpdate:radio": _cache[7] || (_cache[7] = ($event) => form.isPublic = $event),
|
|
240
|
+
value: false,
|
|
241
|
+
name: "privacy",
|
|
242
|
+
label: "Private",
|
|
243
|
+
class: "t-white"
|
|
244
|
+
}, null, 8, ["radio"])
|
|
245
|
+
])
|
|
246
|
+
]),
|
|
247
|
+
createElementVNode("div", _hoisted_10, [
|
|
248
|
+
_cache[19] || (_cache[19] = createElementVNode("label", { class: "t-white t-medium mn-b-thin d-block" }, "Cover Image", -1)),
|
|
249
|
+
createElementVNode("div", _hoisted_11, [
|
|
250
|
+
createElementVNode("div", _hoisted_12, [
|
|
251
|
+
form.coverUrl ? (openBlock(), createBlock(Media, {
|
|
252
|
+
key: 0,
|
|
253
|
+
url: form.coverUrl,
|
|
254
|
+
class: "w-10r h-10r object-fit-cover"
|
|
255
|
+
}, null, 8, ["url"])) : (openBlock(), createElementBlock("div", _hoisted_13, [
|
|
256
|
+
createVNode(_sfc_main$3, {
|
|
257
|
+
class: "i-big",
|
|
258
|
+
fill: "rgb(var(--grey))"
|
|
259
|
+
})
|
|
260
|
+
]))
|
|
261
|
+
]),
|
|
262
|
+
createVNode(_sfc_main$4, {
|
|
263
|
+
photo: form.coverUrl,
|
|
264
|
+
"onUpdate:photo": _cache[8] || (_cache[8] = ($event) => form.coverUrl = $event),
|
|
265
|
+
uploadPath: "tracks",
|
|
266
|
+
class: "flex-1 h-10r bg-dark-transp-25 radius-small"
|
|
267
|
+
}, null, 8, ["photo"])
|
|
268
|
+
])
|
|
269
|
+
]),
|
|
270
|
+
createElementVNode("div", _hoisted_14, [
|
|
271
|
+
_cache[20] || (_cache[20] = createElementVNode("label", { class: "t-white t-medium mn-b-thin d-block" }, "Track Audio File", -1)),
|
|
272
|
+
createVNode(Upload, {
|
|
273
|
+
field: form.fileUrl,
|
|
274
|
+
"onUpdate:field": _cache[9] || (_cache[9] = ($event) => form.fileUrl = $event),
|
|
275
|
+
onFileChange: _cache[10] || (_cache[10] = (url) => form.fileUrl = url),
|
|
276
|
+
type: "file",
|
|
277
|
+
uploadPath: "tracks",
|
|
278
|
+
class: "bg-dark-transp-25 radius-small pd-small t-white"
|
|
279
|
+
}, null, 8, ["field"])
|
|
280
|
+
]),
|
|
281
|
+
createElementVNode("div", _hoisted_15, [
|
|
282
|
+
_cache[21] || (_cache[21] = createElementVNode("label", {
|
|
283
|
+
for: "lyrics",
|
|
284
|
+
class: "t-white t-medium mn-b-thin d-block"
|
|
285
|
+
}, "Lyrics (Optional)", -1)),
|
|
286
|
+
createVNode(Field, {
|
|
287
|
+
field: form.lyrics,
|
|
288
|
+
"onUpdate:field": _cache[11] || (_cache[11] = ($event) => form.lyrics = $event),
|
|
289
|
+
id: "lyrics",
|
|
290
|
+
type: "textarea",
|
|
291
|
+
placeholder: "Add lyrics",
|
|
292
|
+
class: "w-100 pd-small bg-dark-transp-25 radius-small t-white"
|
|
293
|
+
}, null, 8, ["field"])
|
|
294
|
+
]),
|
|
295
|
+
createElementVNode("div", _hoisted_16, [
|
|
296
|
+
createVNode(_sfc_main$5, {
|
|
297
|
+
onClick: resetForm,
|
|
298
|
+
type: "button",
|
|
299
|
+
class: "bg-dark-transp-25 t-white pd-small radius-small mn-r-small hover-bg-dark",
|
|
300
|
+
showLoader: false,
|
|
301
|
+
showSucces: false
|
|
302
|
+
}, {
|
|
303
|
+
default: withCtx(() => _cache[22] || (_cache[22] = [
|
|
304
|
+
createTextVNode(" Reset ")
|
|
305
|
+
])),
|
|
306
|
+
_: 1
|
|
307
|
+
}),
|
|
308
|
+
createVNode(_sfc_main$5, {
|
|
309
|
+
type: "submit",
|
|
310
|
+
class: "bg-main t-white pd-small radius-small hover-scale-1",
|
|
311
|
+
submit: () => submitForm(),
|
|
312
|
+
showLoader: true,
|
|
313
|
+
showSucces: true
|
|
314
|
+
}, {
|
|
315
|
+
default: withCtx(() => _cache[23] || (_cache[23] = [
|
|
316
|
+
createTextVNode(" Upload Track ")
|
|
317
|
+
])),
|
|
318
|
+
_: 1
|
|
319
|
+
}, 8, ["submit"])
|
|
320
|
+
])
|
|
321
|
+
]);
|
|
322
|
+
};
|
|
323
|
+
}
|
|
324
|
+
};
|
|
325
|
+
export {
|
|
326
|
+
_sfc_main as default
|
|
327
|
+
};
|
|
328
|
+
//# sourceMappingURL=UploadForm.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UploadForm.vue.js","sources":["../../../../../../../src/modules/music/components/forms/UploadForm.vue"],"sourcesContent":["<!-- components/forms/UploadForm.vue -->\n<template>\n <div class=\"upload-form\">\n <!-- <form @submit.prevent=\"submitForm\"> -->\n <div class=\"form-group mn-b-medium\">\n <label for=\"title\" class=\"t-white t-medium mn-b-thin d-block\">Track Title</label>\n <Field \n v-model:field=\"form.title\"\n id=\"title\"\n type=\"text\"\n placeholder=\"Track Title\"\n :validation=\"validationErrors.title\"\n class=\"w-100 pd-small bg-dark-transp-25 radius-small t-white\"\n />\n </div>\n\n <div class=\"form-group mn-b-medium\">\n <label for=\"artist\" class=\"t-white t-medium mn-b-thin d-block\">Artist</label>\n <Select \n v-model:select=\"form.artist\"\n id=\"artist\"\n :options=\"artistOptions\"\n placeholder=\"Select an artist\"\n :validation=\"validationErrors.artist\"\n class=\"w-100 pd-small bg-dark-transp-25 radius-small t-white\"\n />\n </div>\n\n <div class=\"form-group mn-b-medium\">\n <label for=\"album\" class=\"t-white t-medium mn-b-thin d-block\">Album (Optional)</label>\n <Select \n v-model:select=\"form.album\"\n id=\"album\"\n :options=\"albumOptions\"\n placeholder=\"Select an album\"\n class=\"w-100 pd-small bg-dark-transp-25 radius-small t-white\"\n />\n </div>\n \n <div class=\"form-group mn-b-medium\">\n <label for=\"genre\" class=\"t-white t-medium mn-b-thin d-block\">Genre</label>\n <Select \n v-model:select=\"form.genre\"\n id=\"genre\"\n :options=\"genreOptions\"\n placeholder=\"Select a genre\"\n :validation=\"validationErrors.genre\"\n class=\"w-100 pd-small bg-dark-transp-25 radius-small t-white\"\n />\n </div>\n \n <div class=\"form-group mn-b-medium\">\n <label for=\"releaseDate\" class=\"t-white t-medium mn-b-thin d-block\">Release Date</label>\n <Field \n v-model:field=\"form.releaseDate\"\n id=\"releaseDate\"\n type=\"date\"\n :validation=\"validationErrors.releaseDate\"\n class=\"w-100 pd-small bg-dark-transp-25 radius-small t-white\"\n />\n </div>\n \n <div class=\"form-group mn-b-medium\">\n <label for=\"isExplicit\" class=\"t-white t-medium mn-b-thin d-block\">Explicit Content</label>\n <Checkbox \n v-model:checkbox=\"form.isExplicit\"\n id=\"isExplicit\"\n label=\"This track contains explicit content\"\n class=\"t-white\"\n />\n </div>\n \n <div class=\"form-group mn-b-medium\">\n <label for=\"isPublic\" class=\"t-white t-medium mn-b-thin d-block\">Privacy</label>\n <div class=\"flex gap-small\">\n <Radio \n v-model:radio=\"form.isPublic\"\n :value=\"true\"\n name=\"privacy\"\n label=\"Public\"\n class=\"t-white\"\n />\n <Radio \n v-model:radio=\"form.isPublic\"\n :value=\"false\"\n name=\"privacy\"\n label=\"Private\"\n class=\"t-white\"\n />\n </div>\n </div>\n \n <div class=\"form-group mn-b-medium\">\n <label class=\"t-white t-medium mn-b-thin d-block\">Cover Image</label>\n <div class=\"track-cover-upload flex gap-medium\">\n <div class=\"track-cover-preview bg-dark-transp-25 radius-small o-hidden\">\n <Media \n v-if=\"form.coverUrl\"\n :url=\"form.coverUrl\"\n class=\"w-10r h-10r object-fit-cover\"\n />\n <div v-else class=\"w-10r h-10r flex-center flex\">\n <IconMusic class=\"i-big\" fill=\"rgb(var(--grey))\"/>\n </div>\n </div>\n \n <UploadImage\n v-model:photo=\"form.coverUrl\"\n uploadPath=\"tracks\"\n class=\"flex-1 h-10r bg-dark-transp-25 radius-small\"\n />\n </div>\n </div>\n \n <div class=\"form-group mn-b-medium\">\n <label class=\"t-white t-medium mn-b-thin d-block\">Track Audio File</label>\n <Upload\n v-model:field=\"form.fileUrl\"\n @file-change=\"(url) => form.fileUrl = url\"\n type=\"file\"\n uploadPath=\"tracks\"\n class=\"bg-dark-transp-25 radius-small pd-small t-white\"\n />\n </div>\n \n <div class=\"form-group mn-b-medium\">\n <label for=\"lyrics\" class=\"t-white t-medium mn-b-thin d-block\">Lyrics (Optional)</label>\n <Field \n v-model:field=\"form.lyrics\"\n id=\"lyrics\"\n type=\"textarea\"\n placeholder=\"Add lyrics\"\n class=\"w-100 pd-small bg-dark-transp-25 radius-small t-white\"\n />\n </div>\n \n <div class=\"form-actions t-right\">\n <Button \n @click=\"resetForm\"\n type=\"button\"\n class=\"bg-dark-transp-25 t-white pd-small radius-small mn-r-small hover-bg-dark\"\n :showLoader=\"false\" \n :showSucces=\"false\"\n >\n Reset\n </Button>\n \n <Button \n type=\"submit\"\n class=\"bg-main t-white pd-small radius-small hover-scale-1\"\n :submit=\"() => submitForm()\"\n :showLoader=\"true\" \n :showSucces=\"true\"\n >\n Upload Track\n </Button>\n </div>\n <!-- </form> -->\n </div>\n</template>\n\n<script setup>\nimport { ref, reactive, onMounted } from 'vue';\nimport Field from '@martyrs/src/components/Field/Field.vue';\nimport Select from '@martyrs/src/components/Select/Select.vue';\nimport Radio from '@martyrs/src/components/Radio/Radio.vue';\nimport Checkbox from '@martyrs/src/components/Checkbox/Checkbox.vue';\nimport Button from '@martyrs/src/components/Button/Button.vue';\nimport Upload from '@martyrs/src/components/Upload/Upload.vue';\nimport UploadImage from '@martyrs/src/components/UploadImage/UploadImage.vue';\nimport Media from '@martyrs/src/components/Media/Media.vue';\nimport IconMusic from '@martyrs/src/modules/icons/entities/IconMusic.vue';\n\n// Import stores\nimport { state as authState } from '@martyrs/src/modules/auth/views/store/auth.js';\nimport { actions as tracksActions } from '../../store/tracks.js';\nimport { state as artistsState, actions as artistsActions } from '../../store/artists.js';\nimport { state as albumsState, actions as albumsActions } from '../../store/albums.js';\n\nconst emit = defineEmits(['uploaded']);\n\n// Form data\nconst form = reactive({\n title: '',\n artist: null,\n album: null,\n genre: [],\n releaseDate: new Date().toISOString().split('T')[0],\n isExplicit: false,\n isPublic: true,\n coverUrl: '',\n fileUrl: '',\n lyrics: ''\n});\n\n// Options for dropdowns\nconst artistOptions = ref([]);\nconst albumOptions = ref([]);\nconst genreOptions = ref([\n 'Pop', 'Rock', 'Hip Hop', 'R&B', 'Jazz', 'Electronic', 'Classical', 'Country', 'Folk', 'Blues'\n]);\n\n// Validation\nconst validationErrors = reactive({});\n\n/// Form submission with improved error handling\nconst submitForm = async () => {\n // Validate form (I'm keeping this commented out as in your original code)\n // validationErrors.title = !form.title ? { message: 'Track title is required' } : null;\n // validationErrors.artist = !form.artist ? { message: 'Artist is required' } : null;\n // validationErrors.genre = !form.genre || form.genre.length === 0 ? { message: 'Genre is required' } : null;\n // validationErrors.fileUrl = !form.fileUrl ? { message: 'Audio file is required' } : null;\n \n // // If there are validation errors, don't submit\n // if (Object.values(validationErrors).some(error => error !== null)) {\n // console.log(error)\n // return;\n // }\n \n console.log('Submitting form data:', form);\n \n // Check if the API URL is correct\n console.log('API URL:', process.env.API_URL);\n \n // Prepare track data\n const trackData = {\n ...form,\n creator: {\n type: 'user', // Make sure type matches what's expected on the server (lowercase)\n target: authState.user._id\n },\n owner: {\n type: 'user', // Make sure type matches what's expected on the server (lowercase)\n target: authState.user._id\n },\n status: 'draft' // Add a default status if needed\n };\n \n try {\n console.log('Sending track data to API:', trackData);\n \n // Directly use the Store instance to debug the issue\n // This bypasses the action layer to see if the issue is there\n // const directApiResult = await trackStore.create(trackData);\n // console.log('Direct API result:', directApiResult);\n \n // If the direct approach works, try the normal action\n const track = await tracksActions.createTrack(trackData);\n console.log('Track created successfully:', track);\n \n emit('uploaded', track);\n resetForm();\n } catch (error) {\n console.error('Error uploading track:', error);\n \n // Add more detailed error logging\n if (error.status) {\n console.error(`HTTP Status: ${error.status}`);\n }\n if (error.message) {\n console.error(`Error message: ${error.message}`);\n }\n if (error.stack) {\n console.error(`Stack trace: ${error.stack}`);\n }\n \n // Show error to user\n // setError({\n // message: 'Failed to upload track: ' + (error.message || 'Unknown error'),\n // errorCode: error.errorCode || 'TRACK_UPLOAD_FAILED'\n // });\n }\n};\nconst resetForm = () => {\n Object.keys(form).forEach(key => {\n if (key === 'releaseDate') {\n form[key] = new Date().toISOString().split('T')[0];\n } else if (key === 'isPublic') {\n form[key] = true;\n } else if (key === 'isExplicit') {\n form[key] = false;\n } else {\n form[key] = '';\n }\n });\n \n // Clear validation errors\n Object.keys(validationErrors).forEach(key => {\n validationErrors[key] = null;\n });\n};\n\n// Fetch artists and albums for dropdowns\nonMounted(async () => {\n try {\n // Fetch user's artists\n const userArtists = await artistsActions.fetchUserArtists(authState.user._id);\n artistOptions.value = userArtists.map(artist => ({\n name: artist.name,\n value: artist._id\n }));\n \n // Fetch user's albums\n const userAlbums = await albumsActions.fetchUserAlbums(authState.user._id);\n albumOptions.value = userAlbums.map(album => ({\n name: album.title,\n value: album._id\n }));\n } catch (error) {\n console.error('Error fetching artists and albums:', error);\n }\n});\n</script>"],"names":["authState","tracksActions","artistsActions","albumsActions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmLA,UAAM,OAAO;AAGb,UAAM,OAAO,SAAS;AAAA,MACpB,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,OAAO,CAAE;AAAA,MACT,cAAa,oBAAI,QAAO,YAAa,EAAC,MAAM,GAAG,EAAE,CAAC;AAAA,MAClD,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,UAAU;AAAA,MACV,SAAS;AAAA,MACT,QAAQ;AAAA,IACV,CAAC;AAGD,UAAM,gBAAgB,IAAI,EAAE;AAC5B,UAAM,eAAe,IAAI,EAAE;AAC3B,UAAM,eAAe,IAAI;AAAA,MACvB;AAAA,MAAO;AAAA,MAAQ;AAAA,MAAW;AAAA,MAAO;AAAA,MAAQ;AAAA,MAAc;AAAA,MAAa;AAAA,MAAW;AAAA,MAAQ;AAAA,IACzF,CAAC;AAGD,UAAM,mBAAmB,SAAS,EAAE;AAGpC,UAAM,aAAa,YAAY;AAa7B,cAAQ,IAAI,yBAAyB,IAAI;AAGzC,cAAQ,IAAI,YAAY,QAAQ,IAAI,OAAO;AAG3C,YAAM,YAAY;AAAA,QAChB,GAAG;AAAA,QACH,SAAS;AAAA,UACP,MAAM;AAAA;AAAA,UACN,QAAQA,MAAU,KAAK;AAAA,QACxB;AAAA,QACD,OAAO;AAAA,UACL,MAAM;AAAA;AAAA,UACN,QAAQA,MAAU,KAAK;AAAA,QACxB;AAAA,QACD,QAAQ;AAAA;AAAA,MACT;AAED,UAAI;AACF,gBAAQ,IAAI,8BAA8B,SAAS;AAQnD,cAAM,QAAQ,MAAMC,UAAc,YAAY,SAAS;AACvD,gBAAQ,IAAI,+BAA+B,KAAK;AAEhD,aAAK,YAAY,KAAK;AACtB,kBAAW;AAAA,MACZ,SAAQ,OAAO;AACd,gBAAQ,MAAM,0BAA0B,KAAK;AAG7C,YAAI,MAAM,QAAQ;AAChB,kBAAQ,MAAM,gBAAgB,MAAM,MAAM,EAAE;AAAA,QAClD;AACI,YAAI,MAAM,SAAS;AACjB,kBAAQ,MAAM,kBAAkB,MAAM,OAAO,EAAE;AAAA,QACrD;AACI,YAAI,MAAM,OAAO;AACf,kBAAQ,MAAM,gBAAgB,MAAM,KAAK,EAAE;AAAA,QACjD;AAAA,MAOA;AAAA,IACA;AACA,UAAM,YAAY,MAAM;AACtB,aAAO,KAAK,IAAI,EAAE,QAAQ,SAAO;AAC/B,YAAI,QAAQ,eAAe;AACzB,eAAK,GAAG,KAAI,oBAAI,KAAM,GAAC,YAAW,EAAG,MAAM,GAAG,EAAE,CAAC;AAAA,QACvD,WAAe,QAAQ,YAAY;AAC7B,eAAK,GAAG,IAAI;AAAA,QAClB,WAAe,QAAQ,cAAc;AAC/B,eAAK,GAAG,IAAI;AAAA,QAClB,OAAW;AACL,eAAK,GAAG,IAAI;AAAA,QAClB;AAAA,MACA,CAAG;AAGD,aAAO,KAAK,gBAAgB,EAAE,QAAQ,SAAO;AAC3C,yBAAiB,GAAG,IAAI;AAAA,MAC5B,CAAG;AAAA,IACH;AAGA,cAAU,YAAY;AACpB,UAAI;AAEF,cAAM,cAAc,MAAMC,QAAe,iBAAiBF,MAAU,KAAK,GAAG;AAC5E,sBAAc,QAAQ,YAAY,IAAI,aAAW;AAAA,UAC/C,MAAM,OAAO;AAAA,UACb,OAAO,OAAO;AAAA,QACpB,EAAM;AAGF,cAAM,aAAa,MAAMG,UAAc,gBAAgBH,MAAU,KAAK,GAAG;AACzE,qBAAa,QAAQ,WAAW,IAAI,YAAU;AAAA,UAC5C,MAAM,MAAM;AAAA,UACZ,OAAO,MAAM;AAAA,QACnB,EAAM;AAAA,MACH,SAAQ,OAAO;AACd,gBAAQ,MAAM,sCAAsC,KAAK;AAAA,MAC7D;AAAA,IACA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
+
const vue = require("vue");
|
|
4
|
+
const vueRouter = require("vue-router");
|
|
5
|
+
const MusicPlayer = require("../player/MusicPlayer.vue.cjs");
|
|
6
|
+
const SearchForm = require("../forms/SearchForm.vue.cjs");
|
|
7
|
+
;/* empty css */
|
|
8
|
+
;/* empty css */
|
|
9
|
+
;/* empty css */
|
|
10
|
+
const IconChevronLeft = require("../../../icons/navigation/IconChevronLeft.vue.cjs");
|
|
11
|
+
const IconChevronRight = require("../../../icons/navigation/IconChevronRight.vue.cjs");
|
|
12
|
+
const player = require("../../store/player.cjs");
|
|
13
|
+
const auth = require("../../../auth/views/store/auth.cjs");
|
|
14
|
+
const _hoisted_1 = { class: "music-layout flex flex-nowrap o-hidden w-100 h-100" };
|
|
15
|
+
const _hoisted_2 = { class: "flex-child-1 flex flex-column h-100 o-hidden" };
|
|
16
|
+
const _hoisted_3 = { class: "flex-child-shrink-0 z-index-3 bg-dark flex-v-center flex-justify-between flex gap-small pd-small br-b br-solid br-dark-transp-20" };
|
|
17
|
+
const _hoisted_4 = { class: "flex-v-center flex gap-small" };
|
|
18
|
+
const _hoisted_5 = { class: "music-navigation-buttons flex gap-thin" };
|
|
19
|
+
const _hoisted_6 = {
|
|
20
|
+
key: 0,
|
|
21
|
+
class: "t-white"
|
|
22
|
+
};
|
|
23
|
+
const _hoisted_7 = {
|
|
24
|
+
key: 0,
|
|
25
|
+
class: "music-search-bar flex-child-1 mn-l-medium mn-r-medium"
|
|
26
|
+
};
|
|
27
|
+
const _hoisted_8 = { class: "music-user-menu flex-nowrap flex pos-relative" };
|
|
28
|
+
const _hoisted_9 = { class: "o-y-scroll o-x-hidden" };
|
|
29
|
+
const _sfc_main = {
|
|
30
|
+
__name: "MusicLayout",
|
|
31
|
+
setup(__props) {
|
|
32
|
+
const router = vueRouter.useRouter();
|
|
33
|
+
vue.ref(false);
|
|
34
|
+
vue.computed(() => {
|
|
35
|
+
return auth.state.access.status === true;
|
|
36
|
+
});
|
|
37
|
+
vue.computed(() => {
|
|
38
|
+
return auth.state.user;
|
|
39
|
+
});
|
|
40
|
+
const currentTrack = vue.computed(() => {
|
|
41
|
+
return player.state.currentTrack;
|
|
42
|
+
});
|
|
43
|
+
const handleSearch = (query) => {
|
|
44
|
+
router.push({ name: "music-search", query: { q: query } });
|
|
45
|
+
};
|
|
46
|
+
return (_ctx, _cache) => {
|
|
47
|
+
const _component_router_link = vue.resolveComponent("router-link");
|
|
48
|
+
const _component_router_view = vue.resolveComponent("router-view");
|
|
49
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
|
|
50
|
+
vue.createElementVNode("div", _hoisted_2, [
|
|
51
|
+
vue.createElementVNode("header", _hoisted_3, [
|
|
52
|
+
vue.createElementVNode("div", _hoisted_4, [
|
|
53
|
+
vue.createElementVNode("div", _hoisted_5, [
|
|
54
|
+
vue.createElementVNode("button", {
|
|
55
|
+
onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$router.go(-1)),
|
|
56
|
+
class: "bg-black radius-extra flex-center flex aspect-1x1 i-medium cursor-pointer hover-bg-dark pd-micro"
|
|
57
|
+
}, [
|
|
58
|
+
vue.createVNode(IconChevronLeft.default, {
|
|
59
|
+
class: "i-small",
|
|
60
|
+
fill: "rgb(var(--white))"
|
|
61
|
+
})
|
|
62
|
+
]),
|
|
63
|
+
vue.createElementVNode("button", {
|
|
64
|
+
onClick: _cache[1] || (_cache[1] = ($event) => _ctx.$router.go(1)),
|
|
65
|
+
class: "bg-black radius-extra flex-center flex aspect-1x1 i-medium cursor-pointer hover-bg-dark pd-micro"
|
|
66
|
+
}, [
|
|
67
|
+
vue.createVNode(IconChevronRight.default, {
|
|
68
|
+
class: "i-small",
|
|
69
|
+
fill: "rgb(var(--white))"
|
|
70
|
+
})
|
|
71
|
+
])
|
|
72
|
+
]),
|
|
73
|
+
_ctx.$route.meta.title ? (vue.openBlock(), vue.createElementBlock("h2", _hoisted_6, vue.toDisplayString(_ctx.$route.meta.title), 1)) : vue.createCommentVNode("", true)
|
|
74
|
+
]),
|
|
75
|
+
_ctx.$route.name !== "music-search" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7, [
|
|
76
|
+
vue.createVNode(SearchForm.default, {
|
|
77
|
+
onSearch: handleSearch,
|
|
78
|
+
placeholder: "Search music..."
|
|
79
|
+
})
|
|
80
|
+
])) : vue.createCommentVNode("", true),
|
|
81
|
+
vue.createElementVNode("div", _hoisted_8, [
|
|
82
|
+
vue.createVNode(_component_router_link, {
|
|
83
|
+
to: { name: "music-library" },
|
|
84
|
+
class: "t-white pd-thin w-100 d-block hover-bg-dark radius-small"
|
|
85
|
+
}, {
|
|
86
|
+
default: vue.withCtx(() => _cache[2] || (_cache[2] = [
|
|
87
|
+
vue.createTextVNode(" My Library ")
|
|
88
|
+
])),
|
|
89
|
+
_: 1
|
|
90
|
+
}),
|
|
91
|
+
vue.createVNode(_component_router_link, {
|
|
92
|
+
to: { name: "music-upload" },
|
|
93
|
+
class: "t-white pd-thin w-100 d-block hover-bg-dark radius-small"
|
|
94
|
+
}, {
|
|
95
|
+
default: vue.withCtx(() => _cache[3] || (_cache[3] = [
|
|
96
|
+
vue.createTextVNode(" Upload Music ")
|
|
97
|
+
])),
|
|
98
|
+
_: 1
|
|
99
|
+
})
|
|
100
|
+
])
|
|
101
|
+
]),
|
|
102
|
+
vue.createElementVNode("main", _hoisted_9, [
|
|
103
|
+
vue.createVNode(_component_router_view)
|
|
104
|
+
]),
|
|
105
|
+
currentTrack.value ? (vue.openBlock(), vue.createBlock(MusicPlayer.default, {
|
|
106
|
+
key: 0,
|
|
107
|
+
class: "flex-child-shrink-0"
|
|
108
|
+
})) : vue.createCommentVNode("", true)
|
|
109
|
+
])
|
|
110
|
+
]);
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
exports.default = _sfc_main;
|
|
115
|
+
//# sourceMappingURL=MusicLayout.vue.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MusicLayout.vue.cjs","sources":["../../../../../../../src/modules/music/components/layouts/MusicLayout.vue"],"sourcesContent":["<!-- components/layouts/MusicLayout.vue -->\n<template>\n <div class=\"music-layout flex flex-nowrap o-hidden w-100 h-100\">\n <!-- Main Content -->\n <div class=\"flex-child-1 flex flex-column h-100 o-hidden\">\n <!-- Header Bar -->\n <header class=\"flex-child-shrink-0 z-index-3 bg-dark flex-v-center flex-justify-between flex gap-small pd-small br-b br-solid br-dark-transp-20\">\n <div class=\"flex-v-center flex gap-small\">\n <div class=\"music-navigation-buttons flex gap-thin\">\n <button @click=\"$router.go(-1)\" class=\"bg-black radius-extra flex-center flex aspect-1x1 i-medium cursor-pointer hover-bg-dark pd-micro\">\n <IconChevronLeft class=\"i-small\" fill=\"rgb(var(--white))\"/>\n </button>\n <button @click=\"$router.go(1)\" class=\"bg-black radius-extra flex-center flex aspect-1x1 i-medium cursor-pointer hover-bg-dark pd-micro\">\n <IconChevronRight class=\"i-small\" fill=\"rgb(var(--white))\"/>\n </button>\n </div>\n \n <h2 v-if=\"$route.meta.title\" class=\"t-white\">{{ $route.meta.title }}</h2>\n </div>\n \n <div class=\"music-search-bar flex-child-1 mn-l-medium mn-r-medium\" v-if=\"$route.name !== 'music-search'\">\n <SearchForm @search=\"handleSearch\" placeholder=\"Search music...\" />\n </div>\n \n <div class=\"music-user-menu flex-nowrap flex pos-relative\">\n \n <router-link :to=\"{ name: 'music-library' }\" class=\"t-white pd-thin w-100 d-block hover-bg-dark radius-small\">\n My Library\n </router-link>\n <router-link :to=\"{ name: 'music-upload' }\" class=\"t-white pd-thin w-100 d-block hover-bg-dark radius-small\">\n Upload Music\n </router-link>\n \n </div>\n </header>\n \n <!-- Main Content Area -->\n <main class=\"o-y-scroll o-x-hidden\">\n <router-view></router-view>\n </main>\n \n <!-- Music Player Fixed at Bottom -->\n <MusicPlayer v-if=\"currentTrack\" class=\"flex-child-shrink-0\"/>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed, onMounted } from 'vue';\nimport { useRouter } from 'vue-router';\nimport MusicPlayer from '../player/MusicPlayer.vue';\nimport SearchForm from '../forms/SearchForm.vue';\nimport Button from '@martyrs/src/components/Button/Button.vue';\nimport Dropdown from '@martyrs/src/components/Dropdown/Dropdown.vue';\n\n// Icons - Import from icons in the Martyrs framework\nimport IconChevronLeft from '@martyrs/src/modules/icons/navigation/IconChevronLeft.vue';\nimport IconChevronRight from '@martyrs/src/modules/icons/navigation/IconChevronRight.vue';\nimport IconProfile from '@martyrs/src/modules/icons/entities/IconProfile.vue';\n\n// Import store modules\nimport { state as playerState } from '../../store/player.js';\nimport { state as authState, actions as authActions } from '@martyrs/src/modules/auth/views/store/auth.js';\n\nconst router = useRouter();\n\n// UI state\nconst showUserMenu = ref(false);\n\n// Auth computed properties\nconst isAuthenticated = computed(() => {\n return authState.access.status === true;\n});\n\nconst user = computed(() => {\n return authState.user;\n});\n\n// Current track from player store\nconst currentTrack = computed(() => {\n return playerState.currentTrack;\n});\n\n// Methods\nconst handleSearch = (query) => {\n router.push({ name: 'music-search', query: { q: query } });\n};\n\n</script>"],"names":["useRouter","ref","computed","authState","playerState"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgEA,UAAM,SAASA,UAAAA,UAAW;AAGLC,QAAAA,IAAI,KAAK;AAGNC,QAAAA,SAAS,MAAM;AACrC,aAAOC,KAAS,MAAC,OAAO,WAAW;AAAA,IACrC,CAAC;AAEYD,QAAAA,SAAS,MAAM;AAC1B,aAAOC,KAAS,MAAC;AAAA,IACnB,CAAC;AAGD,UAAM,eAAeD,IAAQ,SAAC,MAAM;AAClC,aAAOE,OAAW,MAAC;AAAA,IACrB,CAAC;AAGD,UAAM,eAAe,CAAC,UAAU;AAC9B,aAAO,KAAK,EAAE,MAAM,gBAAgB,OAAO,EAAE,GAAG,MAAK,GAAI;AAAA,IAC3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { ref, computed, resolveComponent, createElementBlock, openBlock, createElementVNode, createBlock, createCommentVNode, createVNode, toDisplayString, withCtx, createTextVNode } from "vue";
|
|
2
|
+
import { useRouter } from "vue-router";
|
|
3
|
+
import MusicPlayer from "../player/MusicPlayer.vue.js";
|
|
4
|
+
import SearchForm from "../forms/SearchForm.vue.js";
|
|
5
|
+
/* empty css */
|
|
6
|
+
/* empty css */
|
|
7
|
+
/* empty css */
|
|
8
|
+
import IconChevronLeft from "../../../icons/navigation/IconChevronLeft.vue.js";
|
|
9
|
+
import IconChevronRight from "../../../icons/navigation/IconChevronRight.vue.js";
|
|
10
|
+
import { state as state$1 } from "../../store/player.js";
|
|
11
|
+
import { state } from "../../../auth/views/store/auth.js";
|
|
12
|
+
const _hoisted_1 = { class: "music-layout flex flex-nowrap o-hidden w-100 h-100" };
|
|
13
|
+
const _hoisted_2 = { class: "flex-child-1 flex flex-column h-100 o-hidden" };
|
|
14
|
+
const _hoisted_3 = { class: "flex-child-shrink-0 z-index-3 bg-dark flex-v-center flex-justify-between flex gap-small pd-small br-b br-solid br-dark-transp-20" };
|
|
15
|
+
const _hoisted_4 = { class: "flex-v-center flex gap-small" };
|
|
16
|
+
const _hoisted_5 = { class: "music-navigation-buttons flex gap-thin" };
|
|
17
|
+
const _hoisted_6 = {
|
|
18
|
+
key: 0,
|
|
19
|
+
class: "t-white"
|
|
20
|
+
};
|
|
21
|
+
const _hoisted_7 = {
|
|
22
|
+
key: 0,
|
|
23
|
+
class: "music-search-bar flex-child-1 mn-l-medium mn-r-medium"
|
|
24
|
+
};
|
|
25
|
+
const _hoisted_8 = { class: "music-user-menu flex-nowrap flex pos-relative" };
|
|
26
|
+
const _hoisted_9 = { class: "o-y-scroll o-x-hidden" };
|
|
27
|
+
const _sfc_main = {
|
|
28
|
+
__name: "MusicLayout",
|
|
29
|
+
setup(__props) {
|
|
30
|
+
const router = useRouter();
|
|
31
|
+
ref(false);
|
|
32
|
+
computed(() => {
|
|
33
|
+
return state.access.status === true;
|
|
34
|
+
});
|
|
35
|
+
computed(() => {
|
|
36
|
+
return state.user;
|
|
37
|
+
});
|
|
38
|
+
const currentTrack = computed(() => {
|
|
39
|
+
return state$1.currentTrack;
|
|
40
|
+
});
|
|
41
|
+
const handleSearch = (query) => {
|
|
42
|
+
router.push({ name: "music-search", query: { q: query } });
|
|
43
|
+
};
|
|
44
|
+
return (_ctx, _cache) => {
|
|
45
|
+
const _component_router_link = resolveComponent("router-link");
|
|
46
|
+
const _component_router_view = resolveComponent("router-view");
|
|
47
|
+
return openBlock(), createElementBlock("div", _hoisted_1, [
|
|
48
|
+
createElementVNode("div", _hoisted_2, [
|
|
49
|
+
createElementVNode("header", _hoisted_3, [
|
|
50
|
+
createElementVNode("div", _hoisted_4, [
|
|
51
|
+
createElementVNode("div", _hoisted_5, [
|
|
52
|
+
createElementVNode("button", {
|
|
53
|
+
onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$router.go(-1)),
|
|
54
|
+
class: "bg-black radius-extra flex-center flex aspect-1x1 i-medium cursor-pointer hover-bg-dark pd-micro"
|
|
55
|
+
}, [
|
|
56
|
+
createVNode(IconChevronLeft, {
|
|
57
|
+
class: "i-small",
|
|
58
|
+
fill: "rgb(var(--white))"
|
|
59
|
+
})
|
|
60
|
+
]),
|
|
61
|
+
createElementVNode("button", {
|
|
62
|
+
onClick: _cache[1] || (_cache[1] = ($event) => _ctx.$router.go(1)),
|
|
63
|
+
class: "bg-black radius-extra flex-center flex aspect-1x1 i-medium cursor-pointer hover-bg-dark pd-micro"
|
|
64
|
+
}, [
|
|
65
|
+
createVNode(IconChevronRight, {
|
|
66
|
+
class: "i-small",
|
|
67
|
+
fill: "rgb(var(--white))"
|
|
68
|
+
})
|
|
69
|
+
])
|
|
70
|
+
]),
|
|
71
|
+
_ctx.$route.meta.title ? (openBlock(), createElementBlock("h2", _hoisted_6, toDisplayString(_ctx.$route.meta.title), 1)) : createCommentVNode("", true)
|
|
72
|
+
]),
|
|
73
|
+
_ctx.$route.name !== "music-search" ? (openBlock(), createElementBlock("div", _hoisted_7, [
|
|
74
|
+
createVNode(SearchForm, {
|
|
75
|
+
onSearch: handleSearch,
|
|
76
|
+
placeholder: "Search music..."
|
|
77
|
+
})
|
|
78
|
+
])) : createCommentVNode("", true),
|
|
79
|
+
createElementVNode("div", _hoisted_8, [
|
|
80
|
+
createVNode(_component_router_link, {
|
|
81
|
+
to: { name: "music-library" },
|
|
82
|
+
class: "t-white pd-thin w-100 d-block hover-bg-dark radius-small"
|
|
83
|
+
}, {
|
|
84
|
+
default: withCtx(() => _cache[2] || (_cache[2] = [
|
|
85
|
+
createTextVNode(" My Library ")
|
|
86
|
+
])),
|
|
87
|
+
_: 1
|
|
88
|
+
}),
|
|
89
|
+
createVNode(_component_router_link, {
|
|
90
|
+
to: { name: "music-upload" },
|
|
91
|
+
class: "t-white pd-thin w-100 d-block hover-bg-dark radius-small"
|
|
92
|
+
}, {
|
|
93
|
+
default: withCtx(() => _cache[3] || (_cache[3] = [
|
|
94
|
+
createTextVNode(" Upload Music ")
|
|
95
|
+
])),
|
|
96
|
+
_: 1
|
|
97
|
+
})
|
|
98
|
+
])
|
|
99
|
+
]),
|
|
100
|
+
createElementVNode("main", _hoisted_9, [
|
|
101
|
+
createVNode(_component_router_view)
|
|
102
|
+
]),
|
|
103
|
+
currentTrack.value ? (openBlock(), createBlock(MusicPlayer, {
|
|
104
|
+
key: 0,
|
|
105
|
+
class: "flex-child-shrink-0"
|
|
106
|
+
})) : createCommentVNode("", true)
|
|
107
|
+
])
|
|
108
|
+
]);
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
export {
|
|
113
|
+
_sfc_main as default
|
|
114
|
+
};
|
|
115
|
+
//# sourceMappingURL=MusicLayout.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MusicLayout.vue.js","sources":["../../../../../../../src/modules/music/components/layouts/MusicLayout.vue"],"sourcesContent":["<!-- components/layouts/MusicLayout.vue -->\n<template>\n <div class=\"music-layout flex flex-nowrap o-hidden w-100 h-100\">\n <!-- Main Content -->\n <div class=\"flex-child-1 flex flex-column h-100 o-hidden\">\n <!-- Header Bar -->\n <header class=\"flex-child-shrink-0 z-index-3 bg-dark flex-v-center flex-justify-between flex gap-small pd-small br-b br-solid br-dark-transp-20\">\n <div class=\"flex-v-center flex gap-small\">\n <div class=\"music-navigation-buttons flex gap-thin\">\n <button @click=\"$router.go(-1)\" class=\"bg-black radius-extra flex-center flex aspect-1x1 i-medium cursor-pointer hover-bg-dark pd-micro\">\n <IconChevronLeft class=\"i-small\" fill=\"rgb(var(--white))\"/>\n </button>\n <button @click=\"$router.go(1)\" class=\"bg-black radius-extra flex-center flex aspect-1x1 i-medium cursor-pointer hover-bg-dark pd-micro\">\n <IconChevronRight class=\"i-small\" fill=\"rgb(var(--white))\"/>\n </button>\n </div>\n \n <h2 v-if=\"$route.meta.title\" class=\"t-white\">{{ $route.meta.title }}</h2>\n </div>\n \n <div class=\"music-search-bar flex-child-1 mn-l-medium mn-r-medium\" v-if=\"$route.name !== 'music-search'\">\n <SearchForm @search=\"handleSearch\" placeholder=\"Search music...\" />\n </div>\n \n <div class=\"music-user-menu flex-nowrap flex pos-relative\">\n \n <router-link :to=\"{ name: 'music-library' }\" class=\"t-white pd-thin w-100 d-block hover-bg-dark radius-small\">\n My Library\n </router-link>\n <router-link :to=\"{ name: 'music-upload' }\" class=\"t-white pd-thin w-100 d-block hover-bg-dark radius-small\">\n Upload Music\n </router-link>\n \n </div>\n </header>\n \n <!-- Main Content Area -->\n <main class=\"o-y-scroll o-x-hidden\">\n <router-view></router-view>\n </main>\n \n <!-- Music Player Fixed at Bottom -->\n <MusicPlayer v-if=\"currentTrack\" class=\"flex-child-shrink-0\"/>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed, onMounted } from 'vue';\nimport { useRouter } from 'vue-router';\nimport MusicPlayer from '../player/MusicPlayer.vue';\nimport SearchForm from '../forms/SearchForm.vue';\nimport Button from '@martyrs/src/components/Button/Button.vue';\nimport Dropdown from '@martyrs/src/components/Dropdown/Dropdown.vue';\n\n// Icons - Import from icons in the Martyrs framework\nimport IconChevronLeft from '@martyrs/src/modules/icons/navigation/IconChevronLeft.vue';\nimport IconChevronRight from '@martyrs/src/modules/icons/navigation/IconChevronRight.vue';\nimport IconProfile from '@martyrs/src/modules/icons/entities/IconProfile.vue';\n\n// Import store modules\nimport { state as playerState } from '../../store/player.js';\nimport { state as authState, actions as authActions } from '@martyrs/src/modules/auth/views/store/auth.js';\n\nconst router = useRouter();\n\n// UI state\nconst showUserMenu = ref(false);\n\n// Auth computed properties\nconst isAuthenticated = computed(() => {\n return authState.access.status === true;\n});\n\nconst user = computed(() => {\n return authState.user;\n});\n\n// Current track from player store\nconst currentTrack = computed(() => {\n return playerState.currentTrack;\n});\n\n// Methods\nconst handleSearch = (query) => {\n router.push({ name: 'music-search', query: { q: query } });\n};\n\n</script>"],"names":["authState","playerState"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgEA,UAAM,SAAS,UAAW;AAGL,QAAI,KAAK;AAGN,aAAS,MAAM;AACrC,aAAOA,MAAU,OAAO,WAAW;AAAA,IACrC,CAAC;AAEY,aAAS,MAAM;AAC1B,aAAOA,MAAU;AAAA,IACnB,CAAC;AAGD,UAAM,eAAe,SAAS,MAAM;AAClC,aAAOC,QAAY;AAAA,IACrB,CAAC;AAGD,UAAM,eAAe,CAAC,UAAU;AAC9B,aAAO,KAAK,EAAE,MAAM,gBAAgB,OAAO,EAAE,GAAG,MAAK,GAAI;AAAA,IAC3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
+
const vue = require("vue");
|
|
4
|
+
const AlbumCard = require("../cards/AlbumCard.vue.cjs");
|
|
5
|
+
const _hoisted_1 = { class: "album-list" };
|
|
6
|
+
const _hoisted_2 = {
|
|
7
|
+
key: 0,
|
|
8
|
+
class: "empty-list t-center pd-medium"
|
|
9
|
+
};
|
|
10
|
+
const _hoisted_3 = {
|
|
11
|
+
key: 1,
|
|
12
|
+
class: "album-grid cols-5 mobile:cols-2 gap-small"
|
|
13
|
+
};
|
|
14
|
+
const _sfc_main = {
|
|
15
|
+
__name: "AlbumList",
|
|
16
|
+
props: {
|
|
17
|
+
albums: {
|
|
18
|
+
type: Array,
|
|
19
|
+
required: true
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
setup(__props) {
|
|
23
|
+
return (_ctx, _cache) => {
|
|
24
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
|
|
25
|
+
__props.albums.length === 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2, _cache[0] || (_cache[0] = [
|
|
26
|
+
vue.createElementVNode("p", { class: "t-grey" }, "No albums found", -1)
|
|
27
|
+
]))) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_3, [
|
|
28
|
+
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.albums, (album) => {
|
|
29
|
+
return vue.openBlock(), vue.createElementBlock("div", {
|
|
30
|
+
key: album._id
|
|
31
|
+
}, [
|
|
32
|
+
vue.createVNode(AlbumCard.default, {
|
|
33
|
+
album,
|
|
34
|
+
class: "hover-scale-1 transition-cubic-in-out"
|
|
35
|
+
}, null, 8, ["album"])
|
|
36
|
+
]);
|
|
37
|
+
}), 128))
|
|
38
|
+
]))
|
|
39
|
+
]);
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
exports.default = _sfc_main;
|
|
44
|
+
//# sourceMappingURL=AlbumList.vue.cjs.map
|