@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
|
@@ -106,7 +106,7 @@
|
|
|
106
106
|
</div>
|
|
107
107
|
|
|
108
108
|
<TransitionGroup
|
|
109
|
-
v-if="isLoading"
|
|
109
|
+
v-if="isLoading && !keepSlotVisible"
|
|
110
110
|
tag="ul"
|
|
111
111
|
name="scaleTransition"
|
|
112
112
|
class="pos-relative z-index-1"
|
|
@@ -140,7 +140,7 @@
|
|
|
140
140
|
</TransitionGroup>
|
|
141
141
|
|
|
142
142
|
<TransitionGroup
|
|
143
|
-
v-else
|
|
143
|
+
v-else-if="!keepSlotVisible || !isLoading"
|
|
144
144
|
tag="ul"
|
|
145
145
|
name="feed"
|
|
146
146
|
:class="$attrs.class"
|
|
@@ -151,6 +151,28 @@
|
|
|
151
151
|
</slot>
|
|
152
152
|
</TransitionGroup>
|
|
153
153
|
|
|
154
|
+
<!-- Slot visible with overlay loader -->
|
|
155
|
+
<div v-else class="pos-relative">
|
|
156
|
+
<TransitionGroup
|
|
157
|
+
tag="ul"
|
|
158
|
+
name="feed"
|
|
159
|
+
:class="$attrs.class"
|
|
160
|
+
>
|
|
161
|
+
<slot
|
|
162
|
+
:items="itemsList"
|
|
163
|
+
>
|
|
164
|
+
</slot>
|
|
165
|
+
</TransitionGroup>
|
|
166
|
+
|
|
167
|
+
<!-- Overlay loader -->
|
|
168
|
+
<div
|
|
169
|
+
v-if="isLoading && keepSlotVisible"
|
|
170
|
+
class="pos-absolute pos-t-0 pos-l-0 w-100 h-100 flex-center bg-white-transp-90 z-index-10"
|
|
171
|
+
>
|
|
172
|
+
<Loader />
|
|
173
|
+
</div>
|
|
174
|
+
</div>
|
|
175
|
+
|
|
154
176
|
<button
|
|
155
177
|
v-if="showLoadMore && hasMoreItems && itemsList.length > 0 && !isLoadingExtra"
|
|
156
178
|
@click="loadMoreItems"
|
|
@@ -294,6 +316,10 @@ const props = defineProps({
|
|
|
294
316
|
contain: null,
|
|
295
317
|
}),
|
|
296
318
|
},
|
|
319
|
+
keepSlotVisible: {
|
|
320
|
+
type: Boolean,
|
|
321
|
+
default: false
|
|
322
|
+
},
|
|
297
323
|
});
|
|
298
324
|
|
|
299
325
|
const hasMoreItems = ref(false);
|
|
@@ -60,6 +60,11 @@ export default class CRUDPolicies {
|
|
|
60
60
|
);
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
+
// Проверяем еще раз, чтобы убедиться что не отключено
|
|
64
|
+
if (options.enabled === false) {
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
|
|
63
68
|
// Дефолтный ABAC middleware
|
|
64
69
|
return this.abac.middleware(this.crud.modelName, action, options);
|
|
65
70
|
}
|
|
@@ -98,7 +98,14 @@ class Validator {
|
|
|
98
98
|
boolean(message) {
|
|
99
99
|
this.rules.push({
|
|
100
100
|
type: 'boolean',
|
|
101
|
-
check: value =>
|
|
101
|
+
check: value => {
|
|
102
|
+
if (typeof value === 'boolean') return true;
|
|
103
|
+
if (typeof value === 'string') {
|
|
104
|
+
const lowered = value.toLowerCase();
|
|
105
|
+
return lowered === 'true' || lowered === 'false';
|
|
106
|
+
}
|
|
107
|
+
return false;
|
|
108
|
+
},
|
|
102
109
|
message,
|
|
103
110
|
});
|
|
104
111
|
return this;
|
|
@@ -151,6 +151,12 @@
|
|
|
151
151
|
</router-view>
|
|
152
152
|
</Suspense>
|
|
153
153
|
</div>
|
|
154
|
+
|
|
155
|
+
<component
|
|
156
|
+
v-if="route.meta.player"
|
|
157
|
+
class="z-index-2"
|
|
158
|
+
:is="route.meta.player"
|
|
159
|
+
/>
|
|
154
160
|
|
|
155
161
|
<component
|
|
156
162
|
v-if="!MOBILE_APP && route.meta.footer && !route.meta.hideFooter"
|
|
@@ -175,6 +181,7 @@
|
|
|
175
181
|
|
|
176
182
|
|
|
177
183
|
|
|
184
|
+
|
|
178
185
|
<component
|
|
179
186
|
v-if="MOBILE_APP && route.meta.title_hide"
|
|
180
187
|
class="z-index-2"
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# Music Module
|
|
2
|
+
|
|
3
|
+
## Задачи
|
|
4
|
+
|
|
5
|
+
### Оптимизация подсчета воспроизведений
|
|
6
|
+
- [ ] Перенести увеличение playCount из HTTP stream controller в WebSocket handler
|
|
7
|
+
- [ ] Сейчас playCount увеличивается при каждом HTTP range request, что может давать завышенные показатели
|
|
8
|
+
- [ ] WebSocket handler уже написан, но не работает из-за проблем с регистрацией модуля
|
|
@@ -9,10 +9,6 @@
|
|
|
9
9
|
class="flex-child-shrink-0"
|
|
10
10
|
>
|
|
11
11
|
<div class="pd-thin">
|
|
12
|
-
<div class="music-logo mn-b-medium">
|
|
13
|
-
<h3 class=" mn-b-small">Music</h3>
|
|
14
|
-
</div>
|
|
15
|
-
|
|
16
12
|
<nav class="music-nav mn-b-medium">
|
|
17
13
|
<ul class="flex flex-column gap-small">
|
|
18
14
|
<li>
|
|
@@ -47,7 +43,7 @@
|
|
|
47
43
|
|
|
48
44
|
<div class="music-playlists" v-if="isAuthenticated">
|
|
49
45
|
<div class="flex-between flex mn-b-small">
|
|
50
|
-
<h4 class="t-
|
|
46
|
+
<h4 class="t-transp t-medium">YOUR PLAYLISTS</h4>
|
|
51
47
|
<Button
|
|
52
48
|
@click="showCreatePlaylistModal = true"
|
|
53
49
|
class="bg-transparent cursor-pointer pd-micro radius-small hover-bg-dark"
|
|
@@ -108,17 +104,18 @@ import Sidebar from '@martyrs/src/modules/globals/views/components/partials/Side
|
|
|
108
104
|
import Button from '@martyrs/src/components/Button/Button.vue';
|
|
109
105
|
import Popup from '@martyrs/src/components/Popup/Popup.vue';
|
|
110
106
|
import Feed from '@martyrs/src/components/Feed/Feed.vue';
|
|
111
|
-
|
|
107
|
+
|
|
108
|
+
import PlaylistForm from './forms/PlaylistForm.vue';
|
|
112
109
|
|
|
113
110
|
// Icons
|
|
114
|
-
import IconHome from '@martyrs/src/modules/icons/
|
|
111
|
+
import IconHome from '@martyrs/src/modules/icons/entities/IconHome.vue';
|
|
115
112
|
import IconSearch from '@martyrs/src/modules/icons/navigation/IconSearch.vue';
|
|
116
|
-
import IconLibrary from '@martyrs/src/modules/icons/
|
|
113
|
+
import IconLibrary from '@martyrs/src/modules/icons/navigation/IconPlus.vue';
|
|
117
114
|
import IconPlus from '@martyrs/src/modules/icons/navigation/IconPlus.vue';
|
|
118
115
|
|
|
119
116
|
// Store
|
|
120
117
|
import { state as authState } from '@martyrs/src/modules/auth/views/store/auth.js';
|
|
121
|
-
import { state as playlistsState, actions as playlistsActions } from '
|
|
118
|
+
import { state as playlistsState, actions as playlistsActions } from '..//store/playlists.js';
|
|
122
119
|
|
|
123
120
|
const props = defineProps({
|
|
124
121
|
stateSidebar: {
|
|
@@ -2,27 +2,27 @@
|
|
|
2
2
|
<template>
|
|
3
3
|
<router-link
|
|
4
4
|
:to="{ name: 'album', params: { url: album.url } }"
|
|
5
|
-
class="album-card d-block radius-
|
|
5
|
+
class="album-card d-block radius-medium o-hidden"
|
|
6
6
|
>
|
|
7
7
|
<div class="album-cover pos-relative">
|
|
8
8
|
<Media
|
|
9
|
-
:url="album.coverUrl || '/
|
|
9
|
+
:url="album.coverArt || album.coverUrl || '/logo/logo-placeholder.jpg'"
|
|
10
10
|
class="w-100 aspect-1x1 object-fit-cover"
|
|
11
11
|
/>
|
|
12
|
-
<div class="album-overlay pos-absolute pos-t-0 pos-l-0 w-100 h-100 flex-center flex transition-cubic-in-out">
|
|
12
|
+
<div v-if="album.totalTracks && album.totalTracks > 0" class="album-overlay pos-absolute pos-t-0 pos-l-0 w-100 h-100 flex-center flex transition-cubic-in-out">
|
|
13
13
|
<Button
|
|
14
|
-
@click.stop="playAlbum(album)"
|
|
15
|
-
class="play-button bg-main radius-round flex-center flex aspect-1x1"
|
|
14
|
+
@click.stop.prevent="playAlbum(album)"
|
|
15
|
+
class="play-button i-big bg-main radius-round flex-center flex aspect-1x1"
|
|
16
16
|
:showLoader="false"
|
|
17
17
|
:showSucces="false"
|
|
18
18
|
>
|
|
19
|
-
<IconPlay class="i-small" fill="rgb(var(--
|
|
19
|
+
<IconPlay class="i-small" fill="rgb(var(--white))" />
|
|
20
20
|
</Button>
|
|
21
21
|
</div>
|
|
22
22
|
</div>
|
|
23
|
-
<div class="album-info pd-
|
|
24
|
-
<h3 class=" t-medium t-truncate">{{ album.title }}</h3>
|
|
25
|
-
<p class="t-
|
|
23
|
+
<div class="album-info pd-medium bg-light">
|
|
24
|
+
<h3 class="mn-b-thin t-medium t-truncate">{{ album.title }}</h3>
|
|
25
|
+
<p class="t-transp t-small t-truncate">{{ albumInfo }}</p>
|
|
26
26
|
</div>
|
|
27
27
|
</router-link>
|
|
28
28
|
</template>
|
|
@@ -49,10 +49,18 @@ const albumInfo = computed(() => {
|
|
|
49
49
|
const releaseYear = props.album.releaseDate ? new Date(props.album.releaseDate).getFullYear() : '';
|
|
50
50
|
let artistName = 'Unknown Artist';
|
|
51
51
|
|
|
52
|
-
|
|
52
|
+
// Handle artists array (model uses 'artists' not 'artist')
|
|
53
|
+
if (props.album.artists && props.album.artists.length > 0) {
|
|
54
|
+
// If populated, artists[0] will have name property
|
|
55
|
+
if (props.album.artists[0]?.name) {
|
|
56
|
+
artistName = props.album.artists.map(artist => artist.name).join(', ');
|
|
57
|
+
} else if (typeof props.album.artists[0] === 'string') {
|
|
58
|
+
// If not populated, it might be just IDs
|
|
59
|
+
artistName = 'Various Artists';
|
|
60
|
+
}
|
|
61
|
+
} else if (props.album.artist?.name) {
|
|
62
|
+
// Fallback for old data structure
|
|
53
63
|
artistName = props.album.artist.name;
|
|
54
|
-
} else if (typeof props.album.artist === 'string') {
|
|
55
|
-
artistName = props.album.artist;
|
|
56
64
|
}
|
|
57
65
|
|
|
58
66
|
return releaseYear ? `${artistName} • ${releaseYear}` : artistName;
|
|
@@ -95,8 +103,6 @@ const playAlbum = async (album) => {
|
|
|
95
103
|
}
|
|
96
104
|
|
|
97
105
|
.play-button {
|
|
98
|
-
width: 48px;
|
|
99
|
-
height: 48px;
|
|
100
106
|
transform: scale(0.8);
|
|
101
107
|
transition: transform 0.3s ease;
|
|
102
108
|
}
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
</div>
|
|
31
31
|
|
|
32
32
|
<div class="pd-small">
|
|
33
|
-
<h4 class="mn-b-
|
|
33
|
+
<h4 class="t-medium mn-b-small t-truncate">{{ artist.name }}</h4>
|
|
34
34
|
<p v-if="artist.genres && artist.genres.length" class="p-small t-transp t-trim">
|
|
35
35
|
{{ artist.genres.join(', ') }}
|
|
36
36
|
</p>
|
|
@@ -6,12 +6,12 @@
|
|
|
6
6
|
>
|
|
7
7
|
<div class="playlist-cover pos-relative">
|
|
8
8
|
<Media
|
|
9
|
-
:url="playlist.coverUrl || '/
|
|
9
|
+
:url="playlist.coverUrl || '/logo/logo-placeholder.jpg'"
|
|
10
10
|
class="w-100 aspect-1x1 object-fit-cover"
|
|
11
11
|
/>
|
|
12
|
-
<div class="playlist-overlay pos-absolute pos-t-0 pos-l-0 w-100 h-100 flex-center flex transition-cubic-in-out">
|
|
12
|
+
<div v-if="playlist.tracks && playlist.tracks.length > 0" class="playlist-overlay pos-absolute pos-t-0 pos-l-0 w-100 h-100 flex-center flex transition-cubic-in-out">
|
|
13
13
|
<Button
|
|
14
|
-
@click.stop="playPlaylist(playlist)"
|
|
14
|
+
@click.stop.prevent="playPlaylist(playlist)"
|
|
15
15
|
class="play-button bg-main radius-round flex-center flex aspect-1x1"
|
|
16
16
|
:showLoader="false"
|
|
17
17
|
:showSucces="false"
|
|
@@ -20,9 +20,9 @@
|
|
|
20
20
|
</Button>
|
|
21
21
|
</div>
|
|
22
22
|
</div>
|
|
23
|
-
<div class="playlist-info pd-small bg-
|
|
24
|
-
<h3 class=" t-medium t-truncate">{{ playlist.title }}</h3>
|
|
25
|
-
<p class="t-
|
|
23
|
+
<div class="playlist-info pd-small bg-light">
|
|
24
|
+
<h3 class=" t-medium mn-b-small t-truncate">{{ playlist.title }}</h3>
|
|
25
|
+
<p class="t-transp t-small t-truncate">{{ playlistInfo }}</p>
|
|
26
26
|
</div>
|
|
27
27
|
</router-link>
|
|
28
28
|
</template>
|
|
@@ -35,6 +35,7 @@ import IconPlay from '@martyrs/src/modules/icons/navigation/IconPlay.vue';
|
|
|
35
35
|
|
|
36
36
|
// Import player store
|
|
37
37
|
import { actions as playerActions } from '../../store/player.js';
|
|
38
|
+
import { state as playlistsState, actions as playlistsActions } from '../../store/playlists.js';
|
|
38
39
|
|
|
39
40
|
const props = defineProps({
|
|
40
41
|
playlist: {
|
|
@@ -58,12 +59,31 @@ const playlistInfo = computed(() => {
|
|
|
58
59
|
});
|
|
59
60
|
|
|
60
61
|
// Methods
|
|
61
|
-
const playPlaylist = (playlist) => {
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
const playPlaylist = async (playlist) => {
|
|
63
|
+
if (!playlist || !playlist.url) {
|
|
64
|
+
console.warn('Playlist or URL not available');
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
64
67
|
|
|
65
|
-
|
|
66
|
-
|
|
68
|
+
try {
|
|
69
|
+
console.log('Loading playlist:', playlist.url);
|
|
70
|
+
|
|
71
|
+
// Fetch full playlist data with populated tracks
|
|
72
|
+
await playlistsActions.fetchPlaylistByUrl(playlist.url);
|
|
73
|
+
|
|
74
|
+
// Get tracks from store after loading
|
|
75
|
+
const tracks = playlistsState.currentPlaylistTracks || [];
|
|
76
|
+
|
|
77
|
+
console.log('Loaded tracks:', tracks);
|
|
78
|
+
|
|
79
|
+
if (tracks.length > 0) {
|
|
80
|
+
console.log('Setting queue with tracks:', tracks);
|
|
81
|
+
playerActions.setQueue(tracks);
|
|
82
|
+
} else {
|
|
83
|
+
console.warn('No tracks found in playlist after loading');
|
|
84
|
+
}
|
|
85
|
+
} catch (error) {
|
|
86
|
+
console.error('Error loading playlist for playback:', error);
|
|
67
87
|
}
|
|
68
88
|
};
|
|
69
89
|
</script>
|
|
@@ -2,49 +2,60 @@
|
|
|
2
2
|
<template>
|
|
3
3
|
<div
|
|
4
4
|
class="track-item pd-small hover-bg-dark-transp-25 flex-v-center flex cursor-pointer"
|
|
5
|
-
:class="{'bg-
|
|
5
|
+
:class="{'bg-main-transp-10': isPlaying(track)}"
|
|
6
6
|
@click="playTrack(track)"
|
|
7
7
|
@dblclick="playTrack(track, true)"
|
|
8
8
|
@mouseenter="hoveredIndex = props.index"
|
|
9
9
|
@mouseleave="hoveredIndex = -1"
|
|
10
10
|
>
|
|
11
11
|
<div class="track-number w-3r t-center pos-relative">
|
|
12
|
-
<span v-if="!isPlaying(track) && hoveredIndex !== props.index" class="t-
|
|
12
|
+
<span v-if="!isPlaying(track) && hoveredIndex !== props.index" class="t-transp">{{ props.index + 1 }}</span>
|
|
13
13
|
<Button
|
|
14
14
|
v-else-if="!isPlaying(track) && hoveredIndex === props.index"
|
|
15
15
|
@click.stop="playTrack(track)"
|
|
16
|
-
class="bg-
|
|
16
|
+
class="bg-main pd-thin"
|
|
17
17
|
:showLoader="false"
|
|
18
18
|
:showSucces="false"
|
|
19
19
|
>
|
|
20
|
-
<IconPlay class="i-small" fill="rgb(var(--white))"/>
|
|
20
|
+
<IconPlay @click.stop="playTrack(track)" class="i-small" fill="rgb(var(--white))"/>
|
|
21
21
|
</Button>
|
|
22
22
|
<Button
|
|
23
23
|
v-else
|
|
24
24
|
@click.stop="pauseTrack()"
|
|
25
|
-
class="bg-
|
|
25
|
+
class="bg-main pd-thin"
|
|
26
26
|
:showLoader="false"
|
|
27
27
|
:showSucces="false"
|
|
28
28
|
>
|
|
29
|
-
<IconPause class="i-small" fill="rgb(var(--
|
|
29
|
+
<IconPause @click.stop="pauseTrack()" class="i-small" fill="rgb(var(--white))"/>
|
|
30
30
|
</Button>
|
|
31
31
|
</div>
|
|
32
32
|
|
|
33
33
|
<div class="track-title flex-child-1 flex flex-v-center">
|
|
34
34
|
<div v-if="showCover" class="track-cover mn-r-small">
|
|
35
35
|
<Media
|
|
36
|
-
:url="track.coverUrl || (track.album && track.album.coverUrl) || '/
|
|
36
|
+
:url="track.coverUrl || (track.album && track.album.coverUrl) || '/logo/logo-placeholder.jpg'"
|
|
37
37
|
class="w-3r h-3r object-fit-cover o-hidden radius-small"
|
|
38
38
|
/>
|
|
39
39
|
</div>
|
|
40
40
|
|
|
41
41
|
<div class="track-info">
|
|
42
|
-
<div class="track-name " :class="{'t-main': isPlaying(track)}">
|
|
43
|
-
|
|
42
|
+
<div class="track-name " :class="{'t-main': isPlaying(track)}">
|
|
43
|
+
<router-link
|
|
44
|
+
v-if="track.url"
|
|
45
|
+
:to="{ name: 'track', params: { url: track.url } }"
|
|
46
|
+
class="hover-t-main"
|
|
47
|
+
:class="{'t-main': isPlaying(track)}"
|
|
48
|
+
@click.stop
|
|
49
|
+
>
|
|
50
|
+
{{ track.title }}
|
|
51
|
+
</router-link>
|
|
52
|
+
<span v-else>{{ track.title }}</span>
|
|
53
|
+
</div>
|
|
54
|
+
<div :class="{'t-main': isPlaying(track)}" class="track-artist t-transp t-small">
|
|
44
55
|
<router-link
|
|
45
56
|
v-if="track.artist && track.artist._id"
|
|
46
57
|
:to="{ name: 'artist', params: { url: track.artist.url } }"
|
|
47
|
-
class="t-
|
|
58
|
+
class="t-transp hover-"
|
|
48
59
|
@click.stop
|
|
49
60
|
>
|
|
50
61
|
{{ getArtistName(track) }}
|
|
@@ -54,11 +65,11 @@
|
|
|
54
65
|
</div>
|
|
55
66
|
</div>
|
|
56
67
|
|
|
57
|
-
<div v-if="showAlbum" class="track-album
|
|
68
|
+
<div v-if="showAlbum" class="track-album w-15r mobile:w-0 mobile:hidden t-transp t-truncate">
|
|
58
69
|
<router-link
|
|
59
70
|
v-if="track.album && track.album._id"
|
|
60
71
|
:to="{ name: 'album', params: { url: track.album.url } }"
|
|
61
|
-
class="t-
|
|
72
|
+
class="t-transp hover-"
|
|
62
73
|
@click.stop
|
|
63
74
|
>
|
|
64
75
|
{{ track.album.title }}
|
|
@@ -66,7 +77,7 @@
|
|
|
66
77
|
<span v-else>{{ track.album?.title || 'Single' }}</span>
|
|
67
78
|
</div>
|
|
68
79
|
|
|
69
|
-
<div class="track-duration w-5r t-right t-
|
|
80
|
+
<div class="track-duration w-5r t-right t-transp">{{ formatDuration(track.duration) }}</div>
|
|
70
81
|
</div>
|
|
71
82
|
</template>
|
|
72
83
|
|