@ozdao/martyrs 0.2.492 → 0.2.494
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/_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/builder.cjs +53 -90
- package/dist/builder.js +54 -91
- package/dist/{crud-B-kQw3Z5.cjs → crud-JN_LFj01.cjs} +3 -0
- package/dist/{crud-Cwx5VlSm.js → crud-sE7GLPbj.js} +3 -0
- package/dist/globals.server.cjs +322 -3
- package/dist/globals.server.js +303 -1
- package/dist/{globals.verifier-D68mHEBl.cjs → globals.verifier-C0zj_LLo.cjs} +8 -1
- package/dist/{globals.verifier-CWFz5Gh2.js → globals.verifier-DFqKQ7hK.js} +8 -1
- package/dist/inventory.server.cjs +2 -2
- package/dist/inventory.server.js +2 -2
- package/dist/{main-SZQ1QjeP.js → main-CJm5myDI.js} +631 -607
- package/dist/{main-MzmGbSxs.cjs → main-DTaE01lg.cjs} +6 -6
- package/dist/martyrs/src/components/Calendar/Calendar.vue2.cjs +1 -1
- package/dist/martyrs/src/components/Calendar/Calendar.vue2.cjs.map +1 -1
- package/dist/martyrs/src/components/Calendar/Calendar.vue2.js +1 -1
- package/dist/martyrs/src/components/Calendar/Calendar.vue2.js.map +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.cjs +33 -7
- package/dist/martyrs/src/components/Feed/Feed.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.js +33 -7
- package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
- package/dist/martyrs/src/components/Field/{Field.vue2.cjs → Field.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Field/{Field.vue2.js.map → Field.vue.cjs.map} +1 -1
- package/dist/martyrs/src/components/Field/{Field.vue2.js → Field.vue.js} +2 -2
- package/dist/martyrs/src/components/Field/Field.vue.js.map +1 -0
- package/dist/martyrs/src/components/FieldBig/FieldBig.vue.cjs +1 -1
- package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +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.vue.cjs → Menu.vue2.cjs} +2 -2
- package/dist/martyrs/src/components/Menu/Menu.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Menu/{Menu.vue.js → Menu.vue2.js} +2 -2
- package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +1 -0
- package/dist/martyrs/src/components/Menu/MenuItem.vue.js +2 -2
- package/dist/martyrs/src/components/Menu/MenuItem.vue.js.map +1 -1
- package/dist/martyrs/src/components/PhotoViewer/PhotoViewer.vue.js +4 -4
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +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/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/CreateBlogPost.vue.cjs +2 -2
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +2 -2
- package/dist/martyrs/src/modules/constructor/components/elements/Card.vue.cjs +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/Card.vue.js +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.cjs +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +1 -1
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +1 -1
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +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/BlockSearch.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +5 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +5 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/entities/IconTime.vue.cjs +2 -2
- package/dist/martyrs/src/modules/icons/entities/IconTime.vue.js +2 -2
- package/dist/martyrs/src/modules/icons/navigation/IconChevronLeft.vue.cjs +2 -2
- package/dist/martyrs/src/modules/icons/navigation/IconChevronLeft.vue.js +2 -2
- package/dist/martyrs/src/modules/icons/navigation/IconChevronRight.vue.cjs +2 -2
- package/dist/martyrs/src/modules/icons/navigation/IconChevronRight.vue.js +2 -2
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js +6 -6
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js.map +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +1 -1
- package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.cjs +1 -1
- package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.cjs +22 -15
- package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +23 -16
- package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.cjs +2 -2
- package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.cjs +31 -13
- package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js +33 -15
- package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.cjs +39 -22
- package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js +39 -22
- package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.cjs +385 -125
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +391 -131
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.cjs +24 -7
- package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js +25 -8
- package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs +99 -87
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +111 -99
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/layouts/MusicBottomPlayer.vue.cjs +21 -0
- package/dist/martyrs/src/modules/music/components/layouts/MusicBottomPlayer.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/layouts/MusicBottomPlayer.vue.js +21 -0
- package/dist/martyrs/src/modules/music/components/layouts/MusicBottomPlayer.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs +442 -210
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +445 -213
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.cjs +92 -117
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +93 -118
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.cjs +72 -113
- package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.js +78 -119
- package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.cjs +15 -12
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +15 -12
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs +558 -429
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +560 -431
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.cjs +146 -284
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +149 -287
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs +460 -63
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +462 -65
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.cjs +126 -136
- package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js +129 -139
- package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.cjs +18 -15
- package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.js +18 -15
- package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.cjs +28 -23
- package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.js +29 -24
- package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/music.client.cjs +3 -6
- package/dist/martyrs/src/modules/music/music.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/music.client.js +9 -12
- package/dist/martyrs/src/modules/music/music.client.js.map +1 -1
- package/dist/martyrs/src/modules/music/router/music.cjs +27 -1
- package/dist/martyrs/src/modules/music/router/music.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/router/music.js +27 -1
- package/dist/martyrs/src/modules/music/router/music.js.map +1 -1
- package/dist/martyrs/src/modules/music/store/artists.cjs +6 -4
- package/dist/martyrs/src/modules/music/store/artists.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/store/artists.js +6 -4
- package/dist/martyrs/src/modules/music/store/artists.js.map +1 -1
- package/dist/martyrs/src/modules/music/store/player.cjs +5 -0
- package/dist/martyrs/src/modules/music/store/player.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/store/player.js +5 -0
- package/dist/martyrs/src/modules/music/store/player.js.map +1 -1
- package/dist/martyrs/src/modules/music/store/tracks.cjs +22 -0
- package/dist/martyrs/src/modules/music/store/tracks.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/store/tracks.js +22 -0
- package/dist/martyrs/src/modules/music/store/tracks.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/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/FormCustomerDetails.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormCustomerDetails.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/blocks/CardOrganization.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +1 -1
- 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/products/components/pages/CategoryEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/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 +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttBar.vue.cjs +4 -3
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttBar.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttBar.vue.js +4 -3
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttBar.vue.js.map +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttChart.vue.cjs +37 -70
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttChart.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttChart.vue.js +38 -71
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttChart.vue.js.map +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.cjs +2 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +6 -5
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js.map +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.cjs +45 -52
- package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js +46 -53
- package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js.map +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js +1 -1
- 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/SpotEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.js +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +1 -1
- package/dist/martyrs.cjs.js +1 -1
- package/dist/martyrs.css +1 -1
- package/dist/martyrs.es.js +1 -1
- package/dist/music.server.cjs +124 -31
- package/dist/music.server.js +124 -31
- package/dist/organizations.server.cjs +1 -1
- package/dist/organizations.server.js +1 -1
- package/dist/products.server.cjs +2 -2
- package/dist/products.server.js +2 -2
- package/dist/rents.server.cjs +3 -3
- package/dist/rents.server.js +3 -3
- package/dist/style.css +373 -80
- package/dist/{web-D7lZjuC0.js → web-Dkk0_7TA.js} +1 -1
- package/dist/{web-D-YZ9KHz.cjs → web-stVkXd0l.cjs} +1 -1
- package/package.json +1 -1
- package/src/builder/modes/ssr.prod.js +21 -5
- package/src/builder/rspack/rspack.config.spa.client.js +0 -44
- package/src/builder/rspack/rspack.config.ssr.client.js +40 -40
- package/src/components/Calendar/Calendar.vue +378 -377
- package/src/components/Feed/Feed.vue +28 -2
- package/src/modules/globals/controllers/classes/crud/crud.policies.js +5 -0
- package/src/modules/globals/controllers/classes/globals.validator.js +8 -1
- package/src/modules/globals/views/components/layouts/Client.vue +7 -0
- package/src/modules/music/README.md +8 -0
- package/src/modules/music/components/SidebarMusic.vue +6 -9
- package/src/modules/music/components/cards/AlbumCard.vue +20 -14
- package/src/modules/music/components/cards/ArtistCard.vue +1 -1
- package/src/modules/music/components/cards/PlaylistCard.vue +31 -11
- package/src/modules/music/components/cards/TrackListCard.vue +24 -13
- package/src/modules/music/components/forms/PlaylistForm.vue +417 -107
- package/src/modules/music/components/forms/SearchForm.vue +31 -8
- package/src/modules/music/components/forms/TrackForm.vue +50 -32
- package/src/modules/music/components/layouts/MusicBottomPlayer.vue +17 -0
- package/src/modules/music/components/pages/Album.vue +373 -186
- package/src/modules/music/components/pages/Artist.vue +54 -94
- package/src/modules/music/components/pages/MusicHome.vue +59 -56
- package/src/modules/music/components/pages/MusicLibrary.vue +13 -11
- package/src/modules/music/components/pages/Playlist.vue +495 -379
- package/src/modules/music/components/pages/SearchResults.vue +185 -313
- package/src/modules/music/components/pages/Track.vue +363 -69
- package/src/modules/music/components/player/MusicPlayer.vue +368 -97
- package/src/modules/music/components/player/TrackProgress.vue +76 -22
- package/src/modules/music/components/player/VolumeControl.vue +61 -28
- package/src/modules/music/controllers/search.controller.js +3 -0
- package/src/modules/music/controllers/stream.controller.js +11 -3
- package/src/modules/music/middlewares/playlists.verifier.js +1 -1
- package/src/modules/music/music.client.js +3 -6
- package/src/modules/music/music.server.js +8 -4
- package/src/modules/music/router/music.js +8 -1
- package/src/modules/music/routes/albums.routes.js +37 -5
- package/src/modules/music/routes/artists.routes.js +14 -4
- package/src/modules/music/routes/genres.routes.js +5 -1
- package/src/modules/music/routes/playlists.routes.js +42 -9
- package/src/modules/music/routes/tracks.routes.js +27 -2
- package/src/modules/music/store/artists.js +6 -2
- package/src/modules/music/store/player.js +6 -0
- package/src/modules/music/store/tracks.js +31 -0
- package/src/modules/music/websocket/streaming.handler.js +7 -1
- package/src/modules/rents/controllers/services/rents.services.js +2 -2
- package/src/modules/rents/views/components/pages/Gant/GanttBar.vue +4 -3
- package/src/modules/rents/views/components/pages/Gant/GanttChart.vue +42 -40
- package/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue +3 -1
- package/src/modules/rents/views/components/pages/Rents.vue +60 -56
- package/dist/globals.websocket-DzvdIBf6.js +0 -306
- package/dist/globals.websocket-k6_B1T7k.cjs +0 -322
- package/dist/martyrs/src/components/Field/Field.vue2.cjs.map +0 -1
- package/dist/martyrs/src/components/Menu/Menu.vue.cjs.map +0 -1
- package/dist/martyrs/src/components/Menu/Menu.vue.js.map +0 -1
- package/dist/martyrs/src/modules/music/components/cards/TrackCard.vue.cjs +0 -69
- package/dist/martyrs/src/modules/music/components/cards/TrackCard.vue.cjs.map +0 -1
- package/dist/martyrs/src/modules/music/components/cards/TrackCard.vue.js +0 -69
- package/dist/martyrs/src/modules/music/components/cards/TrackCard.vue.js.map +0 -1
- package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.cjs +0 -104
- package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.cjs.map +0 -1
- package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.js +0 -104
- package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.js.map +0 -1
- package/src/modules/music/components/cards/TrackCard.vue +0 -86
- package/src/modules/music/components/layouts/MusicLayout.vue +0 -83
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VolumeControl.vue.cjs","sources":["../../../../../../../src/modules/music/components/player/VolumeControl.vue"],"sourcesContent":["<!-- components/player/VolumeControl.vue -->\n<template>\n <div \n ref=\"volumeBarContainer\"\n
|
|
1
|
+
{"version":3,"file":"VolumeControl.vue.cjs","sources":["../../../../../../../src/modules/music/components/player/VolumeControl.vue"],"sourcesContent":["<!-- components/player/VolumeControl.vue -->\n<template>\n <div class=\"volume-control\">\n <div \n ref=\"volumeBarContainer\"\n class=\"volume-bar-container\"\n @click=\"setVolume\"\n @mousedown=\"startVolumeChange\"\n @mousemove=\"updateVolumePosition\"\n @mouseup=\"endVolumeChange\"\n @mouseleave=\"endVolumeChange\"\n >\n <div \n class=\"volume-track\"\n :style=\"{ \n background: `linear-gradient(to right, rgb(var(--main)) 0%, rgb(var(--main)) ${volumePercentage}%, rgb(79, 79, 79) ${volumePercentage}%, rgb(79, 79, 79) 100%)`\n }\"\n >\n <div \n class=\"volume-thumb\"\n :style=\"{ \n left: `${volumePercentage}%`,\n opacity: muted ? 0 : 1\n }\"\n ></div>\n </div>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed } from 'vue';\n\n// Import player store\nimport { state as playerState, actions as playerActions } from '../../store/player.js';\n\n// Refs\nconst volumeBarContainer = ref(null);\nconst isChangingVolume = ref(false);\n\n// Computed properties\nconst volume = computed(() => playerState.volume);\nconst muted = computed(() => playerState.muted);\nconst volumePercentage = computed(() => {\n if (muted.value) return 0;\n return volume.value * 100;\n});\n\n// Methods\nconst calculateVolume = (event) => {\n if (!volumeBarContainer.value) return 0;\n \n const rect = volumeBarContainer.value.getBoundingClientRect();\n const offsetX = event.clientX - rect.left;\n \n return Math.max(0, Math.min(1, offsetX / rect.width));\n};\n\nconst setVolume = (event) => {\n const newVolume = calculateVolume(event);\n playerActions.setVolume(newVolume);\n \n // Unmute if was muted\n if (muted.value && newVolume > 0) {\n playerActions.toggleMute();\n }\n};\n\nconst startVolumeChange = (event) => {\n isChangingVolume.value = true;\n setVolume(event);\n};\n\nconst updateVolumePosition = (event) => {\n if (isChangingVolume.value) {\n setVolume(event);\n }\n};\n\nconst endVolumeChange = () => {\n isChangingVolume.value = false;\n};\n</script>\n\n<style scoped>\n.volume-control {\n width: 100%;\n}\n\n.volume-bar-container {\n width: 100%;\n height: 12px;\n display: flex;\n align-items: center;\n cursor: pointer;\n padding: 4px 0;\n}\n\n.volume-track {\n position: relative;\n width: 100%;\n height: 4px;\n border-radius: 2px;\n transition: height 0.2s ease;\n}\n\n.volume-thumb {\n position: absolute;\n top: 50%;\n width: 12px;\n height: 12px;\n background: rgb(var(--white));\n border-radius: 50%;\n transform: translate(-50%, -50%);\n transition: opacity 0.2s ease;\n opacity: 0;\n}\n\n.volume-bar-container:hover .volume-track {\n height: 6px;\n}\n\n.volume-bar-container:hover .volume-thumb {\n opacity: 1 !important;\n}\n\n/* Muted state */\n.volume-track.muted {\n opacity: 0.5;\n}\n</style>"],"names":["ref","computed","playerState","playerActions"],"mappings":";;;;;;;;;;AAqCA,UAAM,qBAAqBA,IAAAA,IAAI,IAAI;AACnC,UAAM,mBAAmBA,IAAAA,IAAI,KAAK;AAGlC,UAAM,SAASC,IAAAA,SAAS,MAAMC,OAAAA,MAAY,MAAM;AAChD,UAAM,QAAQD,IAAAA,SAAS,MAAMC,OAAAA,MAAY,KAAK;AAC9C,UAAM,mBAAmBD,IAAAA,SAAS,MAAM;AACtC,UAAI,MAAM,MAAO,QAAO;AACxB,aAAO,OAAO,QAAQ;AAAA,IACxB,CAAC;AAGD,UAAM,kBAAkB,CAAC,UAAU;AACjC,UAAI,CAAC,mBAAmB,MAAO,QAAO;AAEtC,YAAM,OAAO,mBAAmB,MAAM,sBAAqB;AAC3D,YAAM,UAAU,MAAM,UAAU,KAAK;AAErC,aAAO,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,UAAU,KAAK,KAAK,CAAC;AAAA,IACtD;AAEA,UAAM,YAAY,CAAC,UAAU;AAC3B,YAAM,YAAY,gBAAgB,KAAK;AACvCE,aAAAA,QAAc,UAAU,SAAS;AAGjC,UAAI,MAAM,SAAS,YAAY,GAAG;AAChCA,eAAAA,QAAc,WAAU;AAAA,MAC1B;AAAA,IACF;AAEA,UAAM,oBAAoB,CAAC,UAAU;AACnC,uBAAiB,QAAQ;AACzB,gBAAU,KAAK;AAAA,IACjB;AAEA,UAAM,uBAAuB,CAAC,UAAU;AACtC,UAAI,iBAAiB,OAAO;AAC1B,kBAAU,KAAK;AAAA,MACjB;AAAA,IACF;AAEA,UAAM,kBAAkB,MAAM;AAC5B,uBAAiB,QAAQ;AAAA,IAC3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { ref, computed, createElementBlock, openBlock, createElementVNode, normalizeStyle
|
|
1
|
+
import { ref, computed, createElementBlock, openBlock, createElementVNode, normalizeStyle } from "vue";
|
|
2
2
|
import { state, actions } from "../../store/player.js";
|
|
3
3
|
/* empty css */
|
|
4
4
|
import _export_sfc from "../../../../../../_virtual/_plugin-vue_export-helper.js";
|
|
5
|
+
const _hoisted_1 = { class: "volume-control" };
|
|
5
6
|
const _sfc_main = {
|
|
6
7
|
__name: "VolumeControl",
|
|
7
8
|
setup(__props) {
|
|
@@ -39,33 +40,37 @@ const _sfc_main = {
|
|
|
39
40
|
isChangingVolume.value = false;
|
|
40
41
|
};
|
|
41
42
|
return (_ctx, _cache) => {
|
|
42
|
-
return openBlock(), createElementBlock("div",
|
|
43
|
-
ref_key: "volumeBarContainer",
|
|
44
|
-
ref: volumeBarContainer,
|
|
45
|
-
class: "volume-bar-container w-100 h-thin bg-grey-transp-50 radius-extra pos-relative cursor-pointer",
|
|
46
|
-
onClick: setVolume,
|
|
47
|
-
onMousedown: startVolumeChange,
|
|
48
|
-
onMousemove: updateVolumePosition,
|
|
49
|
-
onMouseup: endVolumeChange,
|
|
50
|
-
onMouseleave: endVolumeChange
|
|
51
|
-
}, [
|
|
43
|
+
return openBlock(), createElementBlock("div", _hoisted_1, [
|
|
52
44
|
createElementVNode("div", {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
45
|
+
ref_key: "volumeBarContainer",
|
|
46
|
+
ref: volumeBarContainer,
|
|
47
|
+
class: "volume-bar-container",
|
|
48
|
+
onClick: setVolume,
|
|
49
|
+
onMousedown: startVolumeChange,
|
|
50
|
+
onMousemove: updateVolumePosition,
|
|
51
|
+
onMouseup: endVolumeChange,
|
|
52
|
+
onMouseleave: endVolumeChange
|
|
53
|
+
}, [
|
|
54
|
+
createElementVNode("div", {
|
|
55
|
+
class: "volume-track",
|
|
56
|
+
style: normalizeStyle({
|
|
57
|
+
background: `linear-gradient(to right, rgb(var(--main)) 0%, rgb(var(--main)) ${volumePercentage.value}%, rgb(79, 79, 79) ${volumePercentage.value}%, rgb(79, 79, 79) 100%)`
|
|
58
|
+
})
|
|
59
|
+
}, [
|
|
60
|
+
createElementVNode("div", {
|
|
61
|
+
class: "volume-thumb",
|
|
62
|
+
style: normalizeStyle({
|
|
63
|
+
left: `${volumePercentage.value}%`,
|
|
64
|
+
opacity: muted.value ? 0 : 1
|
|
65
|
+
})
|
|
66
|
+
}, null, 4)
|
|
67
|
+
], 4)
|
|
68
|
+
], 544)
|
|
69
|
+
]);
|
|
65
70
|
};
|
|
66
71
|
}
|
|
67
72
|
};
|
|
68
|
-
const VolumeControl = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
73
|
+
const VolumeControl = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-a6e8eccb"]]);
|
|
69
74
|
export {
|
|
70
75
|
VolumeControl as default
|
|
71
76
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VolumeControl.vue.js","sources":["../../../../../../../src/modules/music/components/player/VolumeControl.vue"],"sourcesContent":["<!-- components/player/VolumeControl.vue -->\n<template>\n <div \n ref=\"volumeBarContainer\"\n
|
|
1
|
+
{"version":3,"file":"VolumeControl.vue.js","sources":["../../../../../../../src/modules/music/components/player/VolumeControl.vue"],"sourcesContent":["<!-- components/player/VolumeControl.vue -->\n<template>\n <div class=\"volume-control\">\n <div \n ref=\"volumeBarContainer\"\n class=\"volume-bar-container\"\n @click=\"setVolume\"\n @mousedown=\"startVolumeChange\"\n @mousemove=\"updateVolumePosition\"\n @mouseup=\"endVolumeChange\"\n @mouseleave=\"endVolumeChange\"\n >\n <div \n class=\"volume-track\"\n :style=\"{ \n background: `linear-gradient(to right, rgb(var(--main)) 0%, rgb(var(--main)) ${volumePercentage}%, rgb(79, 79, 79) ${volumePercentage}%, rgb(79, 79, 79) 100%)`\n }\"\n >\n <div \n class=\"volume-thumb\"\n :style=\"{ \n left: `${volumePercentage}%`,\n opacity: muted ? 0 : 1\n }\"\n ></div>\n </div>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed } from 'vue';\n\n// Import player store\nimport { state as playerState, actions as playerActions } from '../../store/player.js';\n\n// Refs\nconst volumeBarContainer = ref(null);\nconst isChangingVolume = ref(false);\n\n// Computed properties\nconst volume = computed(() => playerState.volume);\nconst muted = computed(() => playerState.muted);\nconst volumePercentage = computed(() => {\n if (muted.value) return 0;\n return volume.value * 100;\n});\n\n// Methods\nconst calculateVolume = (event) => {\n if (!volumeBarContainer.value) return 0;\n \n const rect = volumeBarContainer.value.getBoundingClientRect();\n const offsetX = event.clientX - rect.left;\n \n return Math.max(0, Math.min(1, offsetX / rect.width));\n};\n\nconst setVolume = (event) => {\n const newVolume = calculateVolume(event);\n playerActions.setVolume(newVolume);\n \n // Unmute if was muted\n if (muted.value && newVolume > 0) {\n playerActions.toggleMute();\n }\n};\n\nconst startVolumeChange = (event) => {\n isChangingVolume.value = true;\n setVolume(event);\n};\n\nconst updateVolumePosition = (event) => {\n if (isChangingVolume.value) {\n setVolume(event);\n }\n};\n\nconst endVolumeChange = () => {\n isChangingVolume.value = false;\n};\n</script>\n\n<style scoped>\n.volume-control {\n width: 100%;\n}\n\n.volume-bar-container {\n width: 100%;\n height: 12px;\n display: flex;\n align-items: center;\n cursor: pointer;\n padding: 4px 0;\n}\n\n.volume-track {\n position: relative;\n width: 100%;\n height: 4px;\n border-radius: 2px;\n transition: height 0.2s ease;\n}\n\n.volume-thumb {\n position: absolute;\n top: 50%;\n width: 12px;\n height: 12px;\n background: rgb(var(--white));\n border-radius: 50%;\n transform: translate(-50%, -50%);\n transition: opacity 0.2s ease;\n opacity: 0;\n}\n\n.volume-bar-container:hover .volume-track {\n height: 6px;\n}\n\n.volume-bar-container:hover .volume-thumb {\n opacity: 1 !important;\n}\n\n/* Muted state */\n.volume-track.muted {\n opacity: 0.5;\n}\n</style>"],"names":["playerState","playerActions"],"mappings":";;;;;;;;AAqCA,UAAM,qBAAqB,IAAI,IAAI;AACnC,UAAM,mBAAmB,IAAI,KAAK;AAGlC,UAAM,SAAS,SAAS,MAAMA,MAAY,MAAM;AAChD,UAAM,QAAQ,SAAS,MAAMA,MAAY,KAAK;AAC9C,UAAM,mBAAmB,SAAS,MAAM;AACtC,UAAI,MAAM,MAAO,QAAO;AACxB,aAAO,OAAO,QAAQ;AAAA,IACxB,CAAC;AAGD,UAAM,kBAAkB,CAAC,UAAU;AACjC,UAAI,CAAC,mBAAmB,MAAO,QAAO;AAEtC,YAAM,OAAO,mBAAmB,MAAM,sBAAqB;AAC3D,YAAM,UAAU,MAAM,UAAU,KAAK;AAErC,aAAO,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,UAAU,KAAK,KAAK,CAAC;AAAA,IACtD;AAEA,UAAM,YAAY,CAAC,UAAU;AAC3B,YAAM,YAAY,gBAAgB,KAAK;AACvCC,cAAc,UAAU,SAAS;AAGjC,UAAI,MAAM,SAAS,YAAY,GAAG;AAChCA,gBAAc,WAAU;AAAA,MAC1B;AAAA,IACF;AAEA,UAAM,oBAAoB,CAAC,UAAU;AACnC,uBAAiB,QAAQ;AACzB,gBAAU,KAAK;AAAA,IACjB;AAEA,UAAM,uBAAuB,CAAC,UAAU;AACtC,UAAI,iBAAiB,OAAO;AAC1B,kBAAU,KAAK;AAAA,MACjB;AAAA,IACF;AAEA,UAAM,kBAAkB,MAAM;AAC5B,uBAAiB,QAAQ;AAAA,IAC3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -8,7 +8,7 @@ const playlists = require("./store/playlists.cjs");
|
|
|
8
8
|
const search = require("./store/search.cjs");
|
|
9
9
|
const tracks = require("./store/tracks.cjs");
|
|
10
10
|
const music = require("./router/music.cjs");
|
|
11
|
-
const
|
|
11
|
+
const MusicBottomPlayer = require("./components/layouts/MusicBottomPlayer.vue.cjs");
|
|
12
12
|
const Album = require("./components/pages/Album.vue.cjs");
|
|
13
13
|
const Artist = require("./components/pages/Artist.vue.cjs");
|
|
14
14
|
const MusicHome = require("./components/pages/MusicHome.vue.cjs");
|
|
@@ -23,7 +23,6 @@ const VolumeControl = require("./components/player/VolumeControl.vue.cjs");
|
|
|
23
23
|
const AlbumCard = require("./components/cards/AlbumCard.vue.cjs");
|
|
24
24
|
const ArtistCard = require("./components/cards/ArtistCard.vue.cjs");
|
|
25
25
|
const PlaylistCard = require("./components/cards/PlaylistCard.vue.cjs");
|
|
26
|
-
const TrackCard = require("./components/cards/TrackCard.vue.cjs");
|
|
27
26
|
const TrackListCard = require("./components/cards/TrackListCard.vue.cjs");
|
|
28
27
|
const ArtistForm = require("./components/forms/ArtistForm.vue.cjs");
|
|
29
28
|
const AlbumForm = require("./components/forms/AlbumForm.vue.cjs");
|
|
@@ -74,7 +73,7 @@ const ModuleMusic = {
|
|
|
74
73
|
},
|
|
75
74
|
components: {
|
|
76
75
|
// Layouts
|
|
77
|
-
|
|
76
|
+
MusicBottomPlayer: MusicBottomPlayer.default,
|
|
78
77
|
// Pages
|
|
79
78
|
MusicHome: MusicHome.default,
|
|
80
79
|
SearchResults: SearchResults.default,
|
|
@@ -89,7 +88,6 @@ const ModuleMusic = {
|
|
|
89
88
|
TrackProgress: TrackProgress.default,
|
|
90
89
|
VolumeControl: VolumeControl.default,
|
|
91
90
|
// Cards
|
|
92
|
-
TrackCard: TrackCard.default,
|
|
93
91
|
TrackListCard: TrackListCard.default,
|
|
94
92
|
AlbumCard: AlbumCard.default,
|
|
95
93
|
PlaylistCard: PlaylistCard.default,
|
|
@@ -111,7 +109,7 @@ exports.storePlaylists = playlists;
|
|
|
111
109
|
exports.storeSearch = search;
|
|
112
110
|
exports.storeTracks = tracks;
|
|
113
111
|
exports.routerMusic = music.default;
|
|
114
|
-
exports.
|
|
112
|
+
exports.MusicBottomPlayer = MusicBottomPlayer.default;
|
|
115
113
|
exports.Album = Album.default;
|
|
116
114
|
exports.Artist = Artist.default;
|
|
117
115
|
exports.MusicHome = MusicHome.default;
|
|
@@ -126,7 +124,6 @@ exports.VolumeControl = VolumeControl.default;
|
|
|
126
124
|
exports.AlbumCard = AlbumCard.default;
|
|
127
125
|
exports.ArtistCard = ArtistCard.default;
|
|
128
126
|
exports.PlaylistCard = PlaylistCard.default;
|
|
129
|
-
exports.TrackCard = TrackCard.default;
|
|
130
127
|
exports.TrackListCard = TrackListCard.default;
|
|
131
128
|
exports.ArtistForm = ArtistForm.default;
|
|
132
129
|
exports.AlbumForm = AlbumForm.default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"music.client.cjs","sources":["../../../../../src/modules/music/music.client.js"],"sourcesContent":["// Store modules\nimport * as storeAlbums from './store/albums.js';\nimport * as storeArtists from './store/artists.js';\nimport * as storeGenres from './store/genres.js';\nimport * as storePlayer from './store/player.js';\nimport * as storePlaylists from './store/playlists.js';\nimport * as storeSearch from './store/search.js';\nimport * as storeTracks from './store/tracks.js';\n\n// Router\nimport routerMusic from './router/music.js';\n\n// Layouts\nimport
|
|
1
|
+
{"version":3,"file":"music.client.cjs","sources":["../../../../../src/modules/music/music.client.js"],"sourcesContent":["// Store modules\nimport * as storeAlbums from './store/albums.js';\nimport * as storeArtists from './store/artists.js';\nimport * as storeGenres from './store/genres.js';\nimport * as storePlayer from './store/player.js';\nimport * as storePlaylists from './store/playlists.js';\nimport * as storeSearch from './store/search.js';\nimport * as storeTracks from './store/tracks.js';\n\n// Router\nimport routerMusic from './router/music.js';\n\n// Layouts\nimport MusicBottomPlayer from './components/layouts/MusicBottomPlayer.vue';\n\n// Pages\nimport Album from './components/pages/Album.vue';\nimport Artist from './components/pages/Artist.vue';\nimport MusicHome from './components/pages/MusicHome.vue';\nimport MusicLibrary from './components/pages/MusicLibrary.vue';\nimport TrackCreate from './components/pages/TrackCreate.vue';\nimport Playlist from './components/pages/Playlist.vue';\nimport SearchResults from './components/pages/SearchResults.vue';\nimport Track from './components/pages/Track.vue';\n\n// Components - Player\nimport MusicPlayer from './components/player/MusicPlayer.vue';\nimport TrackProgress from './components/player/TrackProgress.vue';\nimport VolumeControl from './components/player/VolumeControl.vue';\n\n// Components - Cards\nimport AlbumCard from './components/cards/AlbumCard.vue';\nimport ArtistCard from './components/cards/ArtistCard.vue';\nimport PlaylistCard from './components/cards/PlaylistCard.vue';\nimport TrackListCard from './components/cards/TrackListCard.vue';\n\n\n// Components - Forms\nimport ArtistForm from './components/forms/ArtistForm.vue';\nimport AlbumForm from './components/forms/AlbumForm.vue';\nimport PlaylistForm from './components/forms/PlaylistForm.vue';\nimport SearchForm from './components/forms/SearchForm.vue';\nimport TrackForm from './components/forms/TrackForm.vue';\n\n// WebSocket integration for streaming\nimport globalWebSocket from '@martyrs/src/modules/globals/views/classes/globals.websocket.js';\n\n/**\n * Initialize Music module on client-side\n * @param {Object} app - Vue app instance\n * @param {Object} store - Global store instance\n * @param {Object} router - Vue router instance\n * @param {Object} config - Configuration options\n * @param {Object} options - Additional options\n */\nfunction initializeMusic(app, store, router, config, options = {}) {\n const route = options.route || 'Home';\n\n // Register routes\n router.addRoute(route, routerMusic);\n\n // Register store modules\n store.addStore('tracks', storeTracks);\n store.addStore('playlists', storePlaylists);\n store.addStore('albums', storeAlbums);\n store.addStore('artists', storeArtists);\n store.addStore('genres', storeGenres);\n store.addStore('player', storePlayer);\n store.addStore('search', storeSearch);\n\n // Set up WebSocket subscription for music streaming\n if (options.enableStreaming !== false && app.config.globalProperties.WSS_URL) {\n globalWebSocket.initialize({\n wsUrl: app.config.globalProperties.WSS_URL,\n maxReconnectAttempts: 10,\n reconnectDelay: 2000,\n });\n\n // Subscribe to music streaming module when authenticated\n if (options.userId) {\n globalWebSocket\n .connect(options.userId)\n .then(() => {\n globalWebSocket.subscribeModule('music-streaming');\n })\n .catch(err => {\n console.error('Failed to connect to WebSocket for music streaming:', err);\n });\n }\n }\n\n // Register global components if needed\n app.component('MusicPlayer', MusicPlayer);\n}\n\n// Module export\nconst ModuleMusic = {\n initialize: initializeMusic,\n views: {\n store: {\n storeTracks,\n storePlaylists,\n storeAlbums,\n storeArtists,\n storeGenres,\n storePlayer,\n storeSearch,\n },\n router: {\n routerMusic,\n },\n components: {\n // Layouts\n MusicBottomPlayer,\n // Pages\n MusicHome,\n SearchResults,\n Artist,\n Album,\n Playlist,\n Track,\n MusicLibrary,\n TrackCreate,\n // Player Components\n MusicPlayer,\n TrackProgress,\n VolumeControl,\n // Cards\n TrackListCard,\n AlbumCard,\n PlaylistCard,\n ArtistCard,\n // Forms\n ArtistForm,\n AlbumForm,\n PlaylistForm,\n SearchForm,\n TrackForm,\n },\n },\n};\n\n// Named exports for direct component imports\nexport {\n AlbumCard,\n Album,\n ArtistCard,\n Artist,\n // Pages\n MusicHome,\n // Layout\n MusicBottomPlayer,\n MusicLibrary,\n // Player Components\n MusicPlayer,\n TrackCreate,\n PlaylistCard,\n Playlist,\n // Forms\n ArtistForm,\n AlbumForm,\n PlaylistForm,\n SearchForm,\n SearchResults,\n // Cards\n TrackListCard,\n Track,\n TrackForm,\n TrackProgress,\n VolumeControl,\n // Router\n routerMusic,\n storeAlbums,\n storeArtists,\n storeGenres,\n storePlayer,\n storePlaylists,\n storeSearch,\n // Store modules\n storeTracks,\n};\n\n// Default export\nexport default ModuleMusic;\n"],"names":["routerMusic","storeTracks","storePlaylists","storeAlbums","storeArtists","storeGenres","storePlayer","storeSearch","globalWebSocket","MusicPlayer","MusicBottomPlayer","MusicHome","SearchResults","Artist","Album","Playlist","Track","MusicLibrary","TrackCreate","TrackProgress","VolumeControl","TrackListCard","AlbumCard","PlaylistCard","ArtistCard","ArtistForm","AlbumForm","PlaylistForm","SearchForm","TrackForm"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuDA,SAAS,gBAAgB,KAAK,OAAO,QAAQ,QAAQ,UAAU,IAAI;AACjE,QAAM,QAAQ,QAAQ,SAAS;AAG/B,SAAO,SAAS,OAAOA,aAAW;AAGlC,QAAM,SAAS,UAAUC,MAAW;AACpC,QAAM,SAAS,aAAaC,SAAc;AAC1C,QAAM,SAAS,UAAUC,MAAW;AACpC,QAAM,SAAS,WAAWC,OAAY;AACtC,QAAM,SAAS,UAAUC,MAAW;AACpC,QAAM,SAAS,UAAUC,MAAW;AACpC,QAAM,SAAS,UAAUC,MAAW;AAGpC,MAAI,QAAQ,oBAAoB,SAAS,IAAI,OAAO,iBAAiB,SAAS;AAC5EC,sBAAAA,QAAgB,WAAW;AAAA,MACzB,OAAO,IAAI,OAAO,iBAAiB;AAAA,MACnC,sBAAsB;AAAA,MACtB,gBAAgB;AAAA,IACtB,CAAK;AAGD,QAAI,QAAQ,QAAQ;AAClBA,wBAAAA,QACG,QAAQ,QAAQ,MAAM,EACtB,KAAK,MAAM;AACVA,0BAAAA,QAAgB,gBAAgB,iBAAiB;AAAA,MACnD,CAAC,EACA,MAAM,SAAO;AACZ,gBAAQ,MAAM,uDAAuD,GAAG;AAAA,MAC1E,CAAC;AAAA,IACL;AAAA,EACF;AAGA,MAAI,UAAU,eAAeC,mBAAW;AAC1C;AAGK,MAAC,cAAc;AAAA,EAClB,YAAY;AAAA,EACZ,OAAO;AAAA,IACL,OAAO;AAAA,MACX,aAAMR;AAAAA,MACN,gBAAMC;AAAAA,MACN,aAAMC;AAAAA,MACN,cAAMC;AAAAA,MACN,aAAMC;AAAAA,MACN,aAAMC;AAAAA,MACN,aAAMC;AAAAA,IACN;AAAA,IACI,QAAQ;AAAA,MACZ,aAAMP,MAAAA;AAAAA,IACN;AAAA,IACI,YAAY;AAAA;AAAA,MAEhB,mBAAMU,kBAAAA;AAAAA;AAAAA,MAEN,WAAMC,UAAAA;AAAAA,MACN,eAAMC,cAAAA;AAAAA,MACN,QAAMC,OAAAA;AAAAA,MACN,OAAMC,MAAAA;AAAAA,MACN,UAAMC,SAAAA;AAAAA,MACN,OAAMC,MAAAA;AAAAA,MACN,cAAMC,aAAAA;AAAAA,MACN,aAAMC,YAAAA;AAAAA;AAAAA,MAEN,aAAMT,YAAAA;AAAAA,MACN,eAAMU,cAAAA;AAAAA,MACN,eAAMC,cAAAA;AAAAA;AAAAA,MAEN,eAAMC,cAAAA;AAAAA,MACN,WAAMC,UAAAA;AAAAA,MACN,cAAMC,aAAAA;AAAAA,MACN,YAAMC,WAAAA;AAAAA;AAAAA,MAEN,YAAMC,WAAAA;AAAAA,MACN,WAAMC,UAAAA;AAAAA,MACN,cAAMC,aAAAA;AAAAA,MACN,YAAMC,WAAAA;AAAAA,MACN,WAAMC,UAAAA;AAAAA,IACN;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -6,9 +6,9 @@ import * as playlists from "./store/playlists.js";
|
|
|
6
6
|
import * as search from "./store/search.js";
|
|
7
7
|
import * as tracks from "./store/tracks.js";
|
|
8
8
|
import routerMusic from "./router/music.js";
|
|
9
|
-
import _sfc_main$
|
|
10
|
-
import
|
|
11
|
-
import _sfc_main$
|
|
9
|
+
import _sfc_main$b from "./components/layouts/MusicBottomPlayer.vue.js";
|
|
10
|
+
import _sfc_main$9 from "./components/pages/Album.vue.js";
|
|
11
|
+
import _sfc_main$a from "./components/pages/Artist.vue.js";
|
|
12
12
|
import MusicHome from "./components/pages/MusicHome.vue.js";
|
|
13
13
|
import _sfc_main$6 from "./components/pages/MusicLibrary.vue.js";
|
|
14
14
|
import _sfc_main$5 from "./components/pages/TrackCreate.vue.js";
|
|
@@ -21,7 +21,6 @@ import VolumeControl from "./components/player/VolumeControl.vue.js";
|
|
|
21
21
|
import AlbumCard from "./components/cards/AlbumCard.vue.js";
|
|
22
22
|
import ArtistCard from "./components/cards/ArtistCard.vue.js";
|
|
23
23
|
import PlaylistCard from "./components/cards/PlaylistCard.vue.js";
|
|
24
|
-
import TrackCard from "./components/cards/TrackCard.vue.js";
|
|
25
24
|
import _sfc_main$4 from "./components/cards/TrackListCard.vue.js";
|
|
26
25
|
import _sfc_main$3 from "./components/forms/ArtistForm.vue.js";
|
|
27
26
|
import _sfc_main$2 from "./components/forms/AlbumForm.vue.js";
|
|
@@ -72,12 +71,12 @@ const ModuleMusic = {
|
|
|
72
71
|
},
|
|
73
72
|
components: {
|
|
74
73
|
// Layouts
|
|
75
|
-
|
|
74
|
+
MusicBottomPlayer: _sfc_main$b,
|
|
76
75
|
// Pages
|
|
77
76
|
MusicHome,
|
|
78
77
|
SearchResults,
|
|
79
|
-
Artist: _sfc_main$
|
|
80
|
-
Album,
|
|
78
|
+
Artist: _sfc_main$a,
|
|
79
|
+
Album: _sfc_main$9,
|
|
81
80
|
Playlist: _sfc_main$8,
|
|
82
81
|
Track: _sfc_main$7,
|
|
83
82
|
MusicLibrary: _sfc_main$6,
|
|
@@ -87,7 +86,6 @@ const ModuleMusic = {
|
|
|
87
86
|
TrackProgress,
|
|
88
87
|
VolumeControl,
|
|
89
88
|
// Cards
|
|
90
|
-
TrackCard,
|
|
91
89
|
TrackListCard: _sfc_main$4,
|
|
92
90
|
AlbumCard,
|
|
93
91
|
PlaylistCard,
|
|
@@ -102,14 +100,14 @@ const ModuleMusic = {
|
|
|
102
100
|
}
|
|
103
101
|
};
|
|
104
102
|
export {
|
|
105
|
-
Album,
|
|
103
|
+
_sfc_main$9 as Album,
|
|
106
104
|
AlbumCard,
|
|
107
105
|
_sfc_main$2 as AlbumForm,
|
|
108
|
-
_sfc_main$
|
|
106
|
+
_sfc_main$a as Artist,
|
|
109
107
|
ArtistCard,
|
|
110
108
|
_sfc_main$3 as ArtistForm,
|
|
109
|
+
_sfc_main$b as MusicBottomPlayer,
|
|
111
110
|
MusicHome,
|
|
112
|
-
_sfc_main$a as MusicLayout,
|
|
113
111
|
_sfc_main$6 as MusicLibrary,
|
|
114
112
|
MusicPlayer,
|
|
115
113
|
_sfc_main$8 as Playlist,
|
|
@@ -118,7 +116,6 @@ export {
|
|
|
118
116
|
SearchForm,
|
|
119
117
|
SearchResults,
|
|
120
118
|
_sfc_main$7 as Track,
|
|
121
|
-
TrackCard,
|
|
122
119
|
_sfc_main$5 as TrackCreate,
|
|
123
120
|
_sfc_main as TrackForm,
|
|
124
121
|
_sfc_main$4 as TrackListCard,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"music.client.js","sources":["../../../../../src/modules/music/music.client.js"],"sourcesContent":["// Store modules\nimport * as storeAlbums from './store/albums.js';\nimport * as storeArtists from './store/artists.js';\nimport * as storeGenres from './store/genres.js';\nimport * as storePlayer from './store/player.js';\nimport * as storePlaylists from './store/playlists.js';\nimport * as storeSearch from './store/search.js';\nimport * as storeTracks from './store/tracks.js';\n\n// Router\nimport routerMusic from './router/music.js';\n\n// Layouts\nimport
|
|
1
|
+
{"version":3,"file":"music.client.js","sources":["../../../../../src/modules/music/music.client.js"],"sourcesContent":["// Store modules\nimport * as storeAlbums from './store/albums.js';\nimport * as storeArtists from './store/artists.js';\nimport * as storeGenres from './store/genres.js';\nimport * as storePlayer from './store/player.js';\nimport * as storePlaylists from './store/playlists.js';\nimport * as storeSearch from './store/search.js';\nimport * as storeTracks from './store/tracks.js';\n\n// Router\nimport routerMusic from './router/music.js';\n\n// Layouts\nimport MusicBottomPlayer from './components/layouts/MusicBottomPlayer.vue';\n\n// Pages\nimport Album from './components/pages/Album.vue';\nimport Artist from './components/pages/Artist.vue';\nimport MusicHome from './components/pages/MusicHome.vue';\nimport MusicLibrary from './components/pages/MusicLibrary.vue';\nimport TrackCreate from './components/pages/TrackCreate.vue';\nimport Playlist from './components/pages/Playlist.vue';\nimport SearchResults from './components/pages/SearchResults.vue';\nimport Track from './components/pages/Track.vue';\n\n// Components - Player\nimport MusicPlayer from './components/player/MusicPlayer.vue';\nimport TrackProgress from './components/player/TrackProgress.vue';\nimport VolumeControl from './components/player/VolumeControl.vue';\n\n// Components - Cards\nimport AlbumCard from './components/cards/AlbumCard.vue';\nimport ArtistCard from './components/cards/ArtistCard.vue';\nimport PlaylistCard from './components/cards/PlaylistCard.vue';\nimport TrackListCard from './components/cards/TrackListCard.vue';\n\n\n// Components - Forms\nimport ArtistForm from './components/forms/ArtistForm.vue';\nimport AlbumForm from './components/forms/AlbumForm.vue';\nimport PlaylistForm from './components/forms/PlaylistForm.vue';\nimport SearchForm from './components/forms/SearchForm.vue';\nimport TrackForm from './components/forms/TrackForm.vue';\n\n// WebSocket integration for streaming\nimport globalWebSocket from '@martyrs/src/modules/globals/views/classes/globals.websocket.js';\n\n/**\n * Initialize Music module on client-side\n * @param {Object} app - Vue app instance\n * @param {Object} store - Global store instance\n * @param {Object} router - Vue router instance\n * @param {Object} config - Configuration options\n * @param {Object} options - Additional options\n */\nfunction initializeMusic(app, store, router, config, options = {}) {\n const route = options.route || 'Home';\n\n // Register routes\n router.addRoute(route, routerMusic);\n\n // Register store modules\n store.addStore('tracks', storeTracks);\n store.addStore('playlists', storePlaylists);\n store.addStore('albums', storeAlbums);\n store.addStore('artists', storeArtists);\n store.addStore('genres', storeGenres);\n store.addStore('player', storePlayer);\n store.addStore('search', storeSearch);\n\n // Set up WebSocket subscription for music streaming\n if (options.enableStreaming !== false && app.config.globalProperties.WSS_URL) {\n globalWebSocket.initialize({\n wsUrl: app.config.globalProperties.WSS_URL,\n maxReconnectAttempts: 10,\n reconnectDelay: 2000,\n });\n\n // Subscribe to music streaming module when authenticated\n if (options.userId) {\n globalWebSocket\n .connect(options.userId)\n .then(() => {\n globalWebSocket.subscribeModule('music-streaming');\n })\n .catch(err => {\n console.error('Failed to connect to WebSocket for music streaming:', err);\n });\n }\n }\n\n // Register global components if needed\n app.component('MusicPlayer', MusicPlayer);\n}\n\n// Module export\nconst ModuleMusic = {\n initialize: initializeMusic,\n views: {\n store: {\n storeTracks,\n storePlaylists,\n storeAlbums,\n storeArtists,\n storeGenres,\n storePlayer,\n storeSearch,\n },\n router: {\n routerMusic,\n },\n components: {\n // Layouts\n MusicBottomPlayer,\n // Pages\n MusicHome,\n SearchResults,\n Artist,\n Album,\n Playlist,\n Track,\n MusicLibrary,\n TrackCreate,\n // Player Components\n MusicPlayer,\n TrackProgress,\n VolumeControl,\n // Cards\n TrackListCard,\n AlbumCard,\n PlaylistCard,\n ArtistCard,\n // Forms\n ArtistForm,\n AlbumForm,\n PlaylistForm,\n SearchForm,\n TrackForm,\n },\n },\n};\n\n// Named exports for direct component imports\nexport {\n AlbumCard,\n Album,\n ArtistCard,\n Artist,\n // Pages\n MusicHome,\n // Layout\n MusicBottomPlayer,\n MusicLibrary,\n // Player Components\n MusicPlayer,\n TrackCreate,\n PlaylistCard,\n Playlist,\n // Forms\n ArtistForm,\n AlbumForm,\n PlaylistForm,\n SearchForm,\n SearchResults,\n // Cards\n TrackListCard,\n Track,\n TrackForm,\n TrackProgress,\n VolumeControl,\n // Router\n routerMusic,\n storeAlbums,\n storeArtists,\n storeGenres,\n storePlayer,\n storePlaylists,\n storeSearch,\n // Store modules\n storeTracks,\n};\n\n// Default export\nexport default ModuleMusic;\n"],"names":["storeTracks","storePlaylists","storeAlbums","storeArtists","storeGenres","storePlayer","storeSearch","MusicBottomPlayer","Artist","Album","Playlist","Track","MusicLibrary","TrackCreate","TrackListCard","ArtistForm","AlbumForm","PlaylistForm","TrackForm"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuDA,SAAS,gBAAgB,KAAK,OAAO,QAAQ,QAAQ,UAAU,IAAI;AACjE,QAAM,QAAQ,QAAQ,SAAS;AAG/B,SAAO,SAAS,OAAO,WAAW;AAGlC,QAAM,SAAS,UAAUA,MAAW;AACpC,QAAM,SAAS,aAAaC,SAAc;AAC1C,QAAM,SAAS,UAAUC,MAAW;AACpC,QAAM,SAAS,WAAWC,OAAY;AACtC,QAAM,SAAS,UAAUC,MAAW;AACpC,QAAM,SAAS,UAAUC,MAAW;AACpC,QAAM,SAAS,UAAUC,MAAW;AAGpC,MAAI,QAAQ,oBAAoB,SAAS,IAAI,OAAO,iBAAiB,SAAS;AAC5E,oBAAgB,WAAW;AAAA,MACzB,OAAO,IAAI,OAAO,iBAAiB;AAAA,MACnC,sBAAsB;AAAA,MACtB,gBAAgB;AAAA,IACtB,CAAK;AAGD,QAAI,QAAQ,QAAQ;AAClB,sBACG,QAAQ,QAAQ,MAAM,EACtB,KAAK,MAAM;AACV,wBAAgB,gBAAgB,iBAAiB;AAAA,MACnD,CAAC,EACA,MAAM,SAAO;AACZ,gBAAQ,MAAM,uDAAuD,GAAG;AAAA,MAC1E,CAAC;AAAA,IACL;AAAA,EACF;AAGA,MAAI,UAAU,eAAe,WAAW;AAC1C;AAGK,MAAC,cAAc;AAAA,EAClB,YAAY;AAAA,EACZ,OAAO;AAAA,IACL,OAAO;AAAA,MACX,aAAMN;AAAAA,MACN,gBAAMC;AAAAA,MACN,aAAMC;AAAAA,MACN,cAAMC;AAAAA,MACN,aAAMC;AAAAA,MACN,aAAMC;AAAAA,MACN,aAAMC;AAAAA,IACN;AAAA,IACI,QAAQ;AAAA,MACN;AAAA,IACN;AAAA,IACI,YAAY;AAAA;AAAA,MAEhB,mBAAMC;AAAAA;AAAAA,MAEA;AAAA,MACA;AAAA,MACN,QAAMC;AAAAA,MACN,OAAMC;AAAAA,MACN,UAAMC;AAAAA,MACN,OAAMC;AAAAA,MACN,cAAMC;AAAAA,MACN,aAAMC;AAAAA;AAAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MAEN,eAAMC;AAAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MAEN,YAAMC;AAAAA,MACN,WAAMC;AAAAA,MACN,cAAMC;AAAAA,MACA;AAAA,MACN,WAAMC;AAAAA,IACN;AAAA,EACA;AACA;"}
|
|
@@ -1,12 +1,38 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
+
require("vue");
|
|
4
|
+
require("vue-router");
|
|
5
|
+
require("../../globals/views/store/globals.cjs");
|
|
6
|
+
;/* empty css */
|
|
7
|
+
;/* empty css */
|
|
8
|
+
;/* empty css */
|
|
9
|
+
;/* empty css */
|
|
10
|
+
;/* empty css */
|
|
11
|
+
;/* empty css */
|
|
12
|
+
;/* empty css */
|
|
13
|
+
;/* empty css */
|
|
14
|
+
;/* empty css */
|
|
15
|
+
;/* empty css */
|
|
16
|
+
;/* empty css */
|
|
17
|
+
;/* empty css */
|
|
18
|
+
;/* empty css */
|
|
19
|
+
;/* empty css */
|
|
20
|
+
require("axios");
|
|
21
|
+
;/* empty css */
|
|
22
|
+
require("../store/playlists.cjs");
|
|
23
|
+
require("../store/tracks.cjs");
|
|
24
|
+
require("../../auth/views/store/auth.cjs");
|
|
25
|
+
const MusicBottomPlayer = require("../components/layouts/MusicBottomPlayer.vue.cjs");
|
|
3
26
|
const artists = require("./artists.cjs");
|
|
4
27
|
const albums = require("./albums.cjs");
|
|
5
28
|
const tracks = require("./tracks.cjs");
|
|
6
29
|
const playlists = require("./playlists.cjs");
|
|
7
30
|
const routerMusic = {
|
|
8
31
|
path: "music",
|
|
9
|
-
|
|
32
|
+
meta: {
|
|
33
|
+
// sidebar_navigation: SidebarMusic,
|
|
34
|
+
player: MusicBottomPlayer.default
|
|
35
|
+
},
|
|
10
36
|
children: [
|
|
11
37
|
{
|
|
12
38
|
path: "",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"music.cjs","sources":["../../../../../../src/modules/music/router/music.js"],"sourcesContent":["// router/music.js\nimport artistRoutes from './artists.js';\nimport albumRoutes from './albums.js';\nimport trackRoutes from './tracks.js';\nimport playlistRoutes from './playlists.js';\n\nexport default {\n path: 'music',\n
|
|
1
|
+
{"version":3,"file":"music.cjs","sources":["../../../../../../src/modules/music/router/music.js"],"sourcesContent":["import SidebarMusic from '../components/SidebarMusic.vue';\nimport MusicBottomPlayer from '../components/layouts/MusicBottomPlayer.vue';\n\n\n// router/music.js\nimport artistRoutes from './artists.js';\nimport albumRoutes from './albums.js';\nimport trackRoutes from './tracks.js';\nimport playlistRoutes from './playlists.js';\n\nexport default {\n path: 'music',\n meta: {\n // sidebar_navigation: SidebarMusic,\n player: MusicBottomPlayer, \n },\n children: [\n {\n path: '',\n name: 'music-home',\n component: () => import('../components/pages/MusicHome.vue'),\n meta: {\n title: 'Music Home',\n },\n },\n {\n path: 'search',\n name: 'music-search',\n component: () => import('../components/pages/SearchResults.vue'),\n meta: {\n title: 'Search Music',\n },\n },\n {\n path: 'library',\n name: 'music-library',\n component: () => import('../components/pages/MusicLibrary.vue'),\n meta: {\n title: 'My Library',\n requiresAuth: true,\n },\n },\n // Artists routes\n ...artistRoutes,\n // Albums routes\n ...albumRoutes,\n // Tracks routes\n ...trackRoutes,\n // Playlists routes\n ...playlistRoutes,\n ],\n};"],"names":["MusicBottomPlayer","artistRoutes","albumRoutes","trackRoutes","playlistRoutes"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,MAAA,cAAe;AAAA,EACb,MAAM;AAAA,EACN,MAAM;AAAA;AAAA,IAEH,QAAQA,kBAAAA;AAAAA,EACb;AAAA,EACE,UAAU;AAAA,IACR;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,QAAO,uCAAmC,CAAA;AAAA,MAC3D,MAAM;AAAA,QACJ,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,QAAO,2CAAuC,CAAA;AAAA,MAC/D,MAAM;AAAA,QACJ,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,QAAO,0CAAsC,CAAA;AAAA,MAC9D,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,cAAc;AAAA,MACtB;AAAA,IACA;AAAA;AAAA,IAEI,GAAGC,QAAAA;AAAAA;AAAAA,IAEH,GAAGC,OAAAA;AAAAA;AAAAA,IAEH,GAAGC,OAAAA;AAAAA;AAAAA,IAEH,GAAGC,UAAAA;AAAAA,EACP;AACA;;"}
|
|
@@ -1,10 +1,36 @@
|
|
|
1
|
+
import "vue";
|
|
2
|
+
import "vue-router";
|
|
3
|
+
import "../../globals/views/store/globals.js";
|
|
4
|
+
/* empty css */
|
|
5
|
+
/* empty css */
|
|
6
|
+
/* empty css */
|
|
7
|
+
/* empty css */
|
|
8
|
+
/* empty css */
|
|
9
|
+
/* empty css */
|
|
10
|
+
/* empty css */
|
|
11
|
+
/* empty css */
|
|
12
|
+
/* empty css */
|
|
13
|
+
/* empty css */
|
|
14
|
+
/* empty css */
|
|
15
|
+
/* empty css */
|
|
16
|
+
/* empty css */
|
|
17
|
+
/* empty css */
|
|
18
|
+
import "axios";
|
|
19
|
+
/* empty css */
|
|
20
|
+
import "../store/playlists.js";
|
|
21
|
+
import "../store/tracks.js";
|
|
22
|
+
import "../../auth/views/store/auth.js";
|
|
23
|
+
import _sfc_main from "../components/layouts/MusicBottomPlayer.vue.js";
|
|
1
24
|
import artistRoutes from "./artists.js";
|
|
2
25
|
import albumRoutes from "./albums.js";
|
|
3
26
|
import trackRoutes from "./tracks.js";
|
|
4
27
|
import playlistRoutes from "./playlists.js";
|
|
5
28
|
const routerMusic = {
|
|
6
29
|
path: "music",
|
|
7
|
-
|
|
30
|
+
meta: {
|
|
31
|
+
// sidebar_navigation: SidebarMusic,
|
|
32
|
+
player: _sfc_main
|
|
33
|
+
},
|
|
8
34
|
children: [
|
|
9
35
|
{
|
|
10
36
|
path: "",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"music.js","sources":["../../../../../../src/modules/music/router/music.js"],"sourcesContent":["// router/music.js\nimport artistRoutes from './artists.js';\nimport albumRoutes from './albums.js';\nimport trackRoutes from './tracks.js';\nimport playlistRoutes from './playlists.js';\n\nexport default {\n path: 'music',\n
|
|
1
|
+
{"version":3,"file":"music.js","sources":["../../../../../../src/modules/music/router/music.js"],"sourcesContent":["import SidebarMusic from '../components/SidebarMusic.vue';\nimport MusicBottomPlayer from '../components/layouts/MusicBottomPlayer.vue';\n\n\n// router/music.js\nimport artistRoutes from './artists.js';\nimport albumRoutes from './albums.js';\nimport trackRoutes from './tracks.js';\nimport playlistRoutes from './playlists.js';\n\nexport default {\n path: 'music',\n meta: {\n // sidebar_navigation: SidebarMusic,\n player: MusicBottomPlayer, \n },\n children: [\n {\n path: '',\n name: 'music-home',\n component: () => import('../components/pages/MusicHome.vue'),\n meta: {\n title: 'Music Home',\n },\n },\n {\n path: 'search',\n name: 'music-search',\n component: () => import('../components/pages/SearchResults.vue'),\n meta: {\n title: 'Search Music',\n },\n },\n {\n path: 'library',\n name: 'music-library',\n component: () => import('../components/pages/MusicLibrary.vue'),\n meta: {\n title: 'My Library',\n requiresAuth: true,\n },\n },\n // Artists routes\n ...artistRoutes,\n // Albums routes\n ...albumRoutes,\n // Tracks routes\n ...trackRoutes,\n // Playlists routes\n ...playlistRoutes,\n ],\n};"],"names":["MusicBottomPlayer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,MAAA,cAAe;AAAA,EACb,MAAM;AAAA,EACN,MAAM;AAAA;AAAA,IAEH,QAAQA;AAAAA,EACb;AAAA,EACE,UAAU;AAAA,IACR;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM,OAAO,sCAAmC;AAAA,MAC3D,MAAM;AAAA,QACJ,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM,OAAO,0CAAuC;AAAA,MAC/D,MAAM;AAAA,QACJ,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM,OAAO,yCAAsC;AAAA,MAC9D,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,cAAc;AAAA,MACtB;AAAA,IACA;AAAA;AAAA,IAEI,GAAG;AAAA;AAAA,IAEH,GAAG;AAAA;AAAA,IAEH,GAAG;AAAA;AAAA,IAEH,GAAG;AAAA,EACP;AACA;"}
|
|
@@ -10,7 +10,8 @@ const state = vue.reactive({
|
|
|
10
10
|
currentArtist: null,
|
|
11
11
|
discography: {
|
|
12
12
|
albums: [],
|
|
13
|
-
singles: []
|
|
13
|
+
singles: [],
|
|
14
|
+
tracks: []
|
|
14
15
|
},
|
|
15
16
|
relatedArtists: [],
|
|
16
17
|
isLoading: false,
|
|
@@ -59,9 +60,9 @@ const actions = {
|
|
|
59
60
|
try {
|
|
60
61
|
const response = await fetch(`${process.env.API_URL}/api/artists/url/${url}`);
|
|
61
62
|
const artist = await response.json();
|
|
62
|
-
state.currentArtist = artist;
|
|
63
63
|
await this.fetchArtistDiscography(artist._id);
|
|
64
64
|
await this.fetchRelatedArtists(artist._id);
|
|
65
|
+
state.currentArtist = artist;
|
|
65
66
|
return artist;
|
|
66
67
|
} catch (error) {
|
|
67
68
|
console.error("Error fetching artist by URL:", error);
|
|
@@ -74,12 +75,13 @@ const actions = {
|
|
|
74
75
|
const discography = await response.json();
|
|
75
76
|
state.discography = {
|
|
76
77
|
albums: discography.albums || [],
|
|
77
|
-
singles: discography.singles || []
|
|
78
|
+
singles: discography.singles || [],
|
|
79
|
+
tracks: discography.tracks || []
|
|
78
80
|
};
|
|
79
81
|
return discography;
|
|
80
82
|
} catch (error) {
|
|
81
83
|
console.error("Error fetching artist discography:", error);
|
|
82
|
-
return { albums: [], singles: [] };
|
|
84
|
+
return { albums: [], singles: [], tracks: [] };
|
|
83
85
|
}
|
|
84
86
|
},
|
|
85
87
|
async fetchRelatedArtists(artistId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artists.cjs","sources":["../../../../../../src/modules/music/store/artists.js"],"sourcesContent":["// store/artists.js\nimport Store from '@martyrs/src/modules/globals/views/classes/globals.store.js';\nimport { reactive } from 'vue';\n\n// Create store instance\nconst artistStore = new Store(`${process.env.API_URL}/api/artists`);\n\n// State\nexport const state = reactive({\n artists: [],\n topArtists: [],\n userArtists: [],\n currentArtist: null,\n discography: {\n albums: [],\n singles: [],\n },\n relatedArtists: [],\n isLoading: false,\n loadingTopArtists: false,\n});\n\n// Actions\nexport const actions = {\n async fetchArtists(options = {}) {\n state.isLoading = true;\n try {\n const artists = await artistStore.read(options);\n state.artists = artists;\n return artists;\n } catch (error) {\n console.error('Error fetching artists:', error);\n return [];\n } finally {\n state.isLoading = false;\n }\n },\n\n async fetchTopArtists(options = {}) {\n state.loadingTopArtists = true;\n try {\n // Обрабатываем options от Feed компонента\n const queryOptions = {\n limit: options.limit || 10,\n sortParam: options.sortParam || 'popularity',\n sortOrder: options.sortOrder || 'desc',\n status: 'published',\n };\n \n // Добавляем дополнительные параметры если есть\n if (options.skip) queryOptions.skip = options.skip;\n if (options.search) queryOptions.search = options.search;\n \n // Если указан top=true, используем сортировку по популярности\n if (options.top) {\n queryOptions.sortParam = 'popularity';\n queryOptions.sortOrder = 'desc';\n }\n\n const artists = await artistStore.read(queryOptions);\n state.topArtists = artists;\n return artists;\n } catch (error) {\n console.error('Error fetching top artists:', error);\n return [];\n } finally {\n state.loadingTopArtists = false;\n }\n },\n\n async fetchArtistByUrl(url) {\n try {\n const response = await fetch(`${process.env.API_URL}/api/artists/url/${url}`);\n const artist = await response.json();\n
|
|
1
|
+
{"version":3,"file":"artists.cjs","sources":["../../../../../../src/modules/music/store/artists.js"],"sourcesContent":["// store/artists.js\nimport Store from '@martyrs/src/modules/globals/views/classes/globals.store.js';\nimport { reactive } from 'vue';\n\n// Create store instance\nconst artistStore = new Store(`${process.env.API_URL}/api/artists`);\n\n// State\nexport const state = reactive({\n artists: [],\n topArtists: [],\n userArtists: [],\n currentArtist: null,\n discography: {\n albums: [],\n singles: [],\n tracks: [],\n },\n relatedArtists: [],\n isLoading: false,\n loadingTopArtists: false,\n});\n\n// Actions\nexport const actions = {\n async fetchArtists(options = {}) {\n state.isLoading = true;\n try {\n const artists = await artistStore.read(options);\n state.artists = artists;\n return artists;\n } catch (error) {\n console.error('Error fetching artists:', error);\n return [];\n } finally {\n state.isLoading = false;\n }\n },\n\n async fetchTopArtists(options = {}) {\n state.loadingTopArtists = true;\n try {\n // Обрабатываем options от Feed компонента\n const queryOptions = {\n limit: options.limit || 10,\n sortParam: options.sortParam || 'popularity',\n sortOrder: options.sortOrder || 'desc',\n status: 'published',\n };\n \n // Добавляем дополнительные параметры если есть\n if (options.skip) queryOptions.skip = options.skip;\n if (options.search) queryOptions.search = options.search;\n \n // Если указан top=true, используем сортировку по популярности\n if (options.top) {\n queryOptions.sortParam = 'popularity';\n queryOptions.sortOrder = 'desc';\n }\n\n const artists = await artistStore.read(queryOptions);\n state.topArtists = artists;\n return artists;\n } catch (error) {\n console.error('Error fetching top artists:', error);\n return [];\n } finally {\n state.loadingTopArtists = false;\n }\n },\n\n async fetchArtistByUrl(url) {\n try {\n const response = await fetch(`${process.env.API_URL}/api/artists/url/${url}`);\n const artist = await response.json();\n\n // Fetch artist discography\n await this.fetchArtistDiscography(artist._id);\n\n // Fetch related artists\n await this.fetchRelatedArtists(artist._id);\n\n // Set artist only after all data is loaded\n state.currentArtist = artist;\n\n return artist;\n } catch (error) {\n console.error('Error fetching artist by URL:', error);\n return null;\n }\n },\n\n async fetchArtistDiscography(artistId) {\n try {\n const response = await fetch(`${process.env.API_URL}/api/artists/${artistId}/discography`);\n const discography = await response.json();\n state.discography = {\n albums: discography.albums || [],\n singles: discography.singles || [],\n tracks: discography.tracks || [],\n };\n return discography;\n } catch (error) {\n console.error('Error fetching artist discography:', error);\n return { albums: [], singles: [], tracks: [] };\n }\n },\n\n async fetchRelatedArtists(artistId) {\n try {\n const response = await fetch(`${process.env.API_URL}/api/artists/${artistId}/related`);\n const artists = await response.json();\n state.relatedArtists = artists;\n return artists;\n } catch (error) {\n console.error('Error fetching related artists:', error);\n return [];\n }\n },\n\n async createArtist(artistData) {\n try {\n const createdArtist = await artistStore.create(artistData);\n // Update local state\n state.artists.unshift(createdArtist);\n state.userArtists.unshift(createdArtist);\n return createdArtist;\n } catch (error) {\n console.error('Error creating artist:', error);\n throw error;\n }\n },\n\n async updateArtist(artistData) {\n try {\n const updatedArtist = await artistStore.update(artistData);\n\n // Update local state\n const index = state.artists.findIndex(a => a._id === updatedArtist._id);\n if (index !== -1) {\n state.artists[index] = updatedArtist;\n }\n\n const userIndex = state.userArtists.findIndex(a => a._id === updatedArtist._id);\n if (userIndex !== -1) {\n state.userArtists[userIndex] = updatedArtist;\n }\n\n if (state.currentArtist && state.currentArtist._id === updatedArtist._id) {\n state.currentArtist = updatedArtist;\n }\n\n return updatedArtist;\n } catch (error) {\n console.error('Error updating artist:', error);\n throw error;\n }\n },\n\n async deleteArtist(artistId) {\n try {\n await artistStore.delete({ _id: artistId });\n\n // Update local state\n state.artists = state.artists.filter(a => a._id !== artistId);\n state.userArtists = state.userArtists.filter(a => a._id !== artistId);\n\n if (state.currentArtist && state.currentArtist._id === artistId) {\n state.currentArtist = null;\n }\n\n return true;\n } catch (error) {\n console.error('Error deleting artist:', error);\n throw error;\n }\n },\n\n async fetchUserArtists(userId) {\n try {\n const options = {\n creator: userId,\n limit: 100,\n };\n\n const artists = await artistStore.read(options);\n\n console.log('artists is', artists);\n state.userArtists = artists;\n console.log('state is', state);\n return artists;\n } catch (error) {\n console.error('Error fetching user artists:', error);\n return [];\n }\n },\n};\n"],"names":["Store","reactive"],"mappings":"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"}
|
|
@@ -8,7 +8,8 @@ const state = reactive({
|
|
|
8
8
|
currentArtist: null,
|
|
9
9
|
discography: {
|
|
10
10
|
albums: [],
|
|
11
|
-
singles: []
|
|
11
|
+
singles: [],
|
|
12
|
+
tracks: []
|
|
12
13
|
},
|
|
13
14
|
relatedArtists: [],
|
|
14
15
|
isLoading: false,
|
|
@@ -57,9 +58,9 @@ const actions = {
|
|
|
57
58
|
try {
|
|
58
59
|
const response = await fetch(`${process.env.API_URL}/api/artists/url/${url}`);
|
|
59
60
|
const artist = await response.json();
|
|
60
|
-
state.currentArtist = artist;
|
|
61
61
|
await this.fetchArtistDiscography(artist._id);
|
|
62
62
|
await this.fetchRelatedArtists(artist._id);
|
|
63
|
+
state.currentArtist = artist;
|
|
63
64
|
return artist;
|
|
64
65
|
} catch (error) {
|
|
65
66
|
console.error("Error fetching artist by URL:", error);
|
|
@@ -72,12 +73,13 @@ const actions = {
|
|
|
72
73
|
const discography = await response.json();
|
|
73
74
|
state.discography = {
|
|
74
75
|
albums: discography.albums || [],
|
|
75
|
-
singles: discography.singles || []
|
|
76
|
+
singles: discography.singles || [],
|
|
77
|
+
tracks: discography.tracks || []
|
|
76
78
|
};
|
|
77
79
|
return discography;
|
|
78
80
|
} catch (error) {
|
|
79
81
|
console.error("Error fetching artist discography:", error);
|
|
80
|
-
return { albums: [], singles: [] };
|
|
82
|
+
return { albums: [], singles: [], tracks: [] };
|
|
81
83
|
}
|
|
82
84
|
},
|
|
83
85
|
async fetchRelatedArtists(artistId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artists.js","sources":["../../../../../../src/modules/music/store/artists.js"],"sourcesContent":["// store/artists.js\nimport Store from '@martyrs/src/modules/globals/views/classes/globals.store.js';\nimport { reactive } from 'vue';\n\n// Create store instance\nconst artistStore = new Store(`${process.env.API_URL}/api/artists`);\n\n// State\nexport const state = reactive({\n artists: [],\n topArtists: [],\n userArtists: [],\n currentArtist: null,\n discography: {\n albums: [],\n singles: [],\n },\n relatedArtists: [],\n isLoading: false,\n loadingTopArtists: false,\n});\n\n// Actions\nexport const actions = {\n async fetchArtists(options = {}) {\n state.isLoading = true;\n try {\n const artists = await artistStore.read(options);\n state.artists = artists;\n return artists;\n } catch (error) {\n console.error('Error fetching artists:', error);\n return [];\n } finally {\n state.isLoading = false;\n }\n },\n\n async fetchTopArtists(options = {}) {\n state.loadingTopArtists = true;\n try {\n // Обрабатываем options от Feed компонента\n const queryOptions = {\n limit: options.limit || 10,\n sortParam: options.sortParam || 'popularity',\n sortOrder: options.sortOrder || 'desc',\n status: 'published',\n };\n \n // Добавляем дополнительные параметры если есть\n if (options.skip) queryOptions.skip = options.skip;\n if (options.search) queryOptions.search = options.search;\n \n // Если указан top=true, используем сортировку по популярности\n if (options.top) {\n queryOptions.sortParam = 'popularity';\n queryOptions.sortOrder = 'desc';\n }\n\n const artists = await artistStore.read(queryOptions);\n state.topArtists = artists;\n return artists;\n } catch (error) {\n console.error('Error fetching top artists:', error);\n return [];\n } finally {\n state.loadingTopArtists = false;\n }\n },\n\n async fetchArtistByUrl(url) {\n try {\n const response = await fetch(`${process.env.API_URL}/api/artists/url/${url}`);\n const artist = await response.json();\n
|
|
1
|
+
{"version":3,"file":"artists.js","sources":["../../../../../../src/modules/music/store/artists.js"],"sourcesContent":["// store/artists.js\nimport Store from '@martyrs/src/modules/globals/views/classes/globals.store.js';\nimport { reactive } from 'vue';\n\n// Create store instance\nconst artistStore = new Store(`${process.env.API_URL}/api/artists`);\n\n// State\nexport const state = reactive({\n artists: [],\n topArtists: [],\n userArtists: [],\n currentArtist: null,\n discography: {\n albums: [],\n singles: [],\n tracks: [],\n },\n relatedArtists: [],\n isLoading: false,\n loadingTopArtists: false,\n});\n\n// Actions\nexport const actions = {\n async fetchArtists(options = {}) {\n state.isLoading = true;\n try {\n const artists = await artistStore.read(options);\n state.artists = artists;\n return artists;\n } catch (error) {\n console.error('Error fetching artists:', error);\n return [];\n } finally {\n state.isLoading = false;\n }\n },\n\n async fetchTopArtists(options = {}) {\n state.loadingTopArtists = true;\n try {\n // Обрабатываем options от Feed компонента\n const queryOptions = {\n limit: options.limit || 10,\n sortParam: options.sortParam || 'popularity',\n sortOrder: options.sortOrder || 'desc',\n status: 'published',\n };\n \n // Добавляем дополнительные параметры если есть\n if (options.skip) queryOptions.skip = options.skip;\n if (options.search) queryOptions.search = options.search;\n \n // Если указан top=true, используем сортировку по популярности\n if (options.top) {\n queryOptions.sortParam = 'popularity';\n queryOptions.sortOrder = 'desc';\n }\n\n const artists = await artistStore.read(queryOptions);\n state.topArtists = artists;\n return artists;\n } catch (error) {\n console.error('Error fetching top artists:', error);\n return [];\n } finally {\n state.loadingTopArtists = false;\n }\n },\n\n async fetchArtistByUrl(url) {\n try {\n const response = await fetch(`${process.env.API_URL}/api/artists/url/${url}`);\n const artist = await response.json();\n\n // Fetch artist discography\n await this.fetchArtistDiscography(artist._id);\n\n // Fetch related artists\n await this.fetchRelatedArtists(artist._id);\n\n // Set artist only after all data is loaded\n state.currentArtist = artist;\n\n return artist;\n } catch (error) {\n console.error('Error fetching artist by URL:', error);\n return null;\n }\n },\n\n async fetchArtistDiscography(artistId) {\n try {\n const response = await fetch(`${process.env.API_URL}/api/artists/${artistId}/discography`);\n const discography = await response.json();\n state.discography = {\n albums: discography.albums || [],\n singles: discography.singles || [],\n tracks: discography.tracks || [],\n };\n return discography;\n } catch (error) {\n console.error('Error fetching artist discography:', error);\n return { albums: [], singles: [], tracks: [] };\n }\n },\n\n async fetchRelatedArtists(artistId) {\n try {\n const response = await fetch(`${process.env.API_URL}/api/artists/${artistId}/related`);\n const artists = await response.json();\n state.relatedArtists = artists;\n return artists;\n } catch (error) {\n console.error('Error fetching related artists:', error);\n return [];\n }\n },\n\n async createArtist(artistData) {\n try {\n const createdArtist = await artistStore.create(artistData);\n // Update local state\n state.artists.unshift(createdArtist);\n state.userArtists.unshift(createdArtist);\n return createdArtist;\n } catch (error) {\n console.error('Error creating artist:', error);\n throw error;\n }\n },\n\n async updateArtist(artistData) {\n try {\n const updatedArtist = await artistStore.update(artistData);\n\n // Update local state\n const index = state.artists.findIndex(a => a._id === updatedArtist._id);\n if (index !== -1) {\n state.artists[index] = updatedArtist;\n }\n\n const userIndex = state.userArtists.findIndex(a => a._id === updatedArtist._id);\n if (userIndex !== -1) {\n state.userArtists[userIndex] = updatedArtist;\n }\n\n if (state.currentArtist && state.currentArtist._id === updatedArtist._id) {\n state.currentArtist = updatedArtist;\n }\n\n return updatedArtist;\n } catch (error) {\n console.error('Error updating artist:', error);\n throw error;\n }\n },\n\n async deleteArtist(artistId) {\n try {\n await artistStore.delete({ _id: artistId });\n\n // Update local state\n state.artists = state.artists.filter(a => a._id !== artistId);\n state.userArtists = state.userArtists.filter(a => a._id !== artistId);\n\n if (state.currentArtist && state.currentArtist._id === artistId) {\n state.currentArtist = null;\n }\n\n return true;\n } catch (error) {\n console.error('Error deleting artist:', error);\n throw error;\n }\n },\n\n async fetchUserArtists(userId) {\n try {\n const options = {\n creator: userId,\n limit: 100,\n };\n\n const artists = await artistStore.read(options);\n\n console.log('artists is', artists);\n state.userArtists = artists;\n console.log('state is', state);\n return artists;\n } catch (error) {\n console.error('Error fetching user artists:', error);\n return [];\n }\n },\n};\n"],"names":[],"mappings":"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"}
|