@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.
Files changed (341) hide show
  1. package/dist/_virtual/index.cjs +4 -4
  2. package/dist/_virtual/index.js +4 -4
  3. package/dist/_virtual/index2.cjs +4 -4
  4. package/dist/_virtual/index2.js +4 -4
  5. package/dist/builder.cjs +53 -90
  6. package/dist/builder.js +54 -91
  7. package/dist/{crud-B-kQw3Z5.cjs → crud-JN_LFj01.cjs} +3 -0
  8. package/dist/{crud-Cwx5VlSm.js → crud-sE7GLPbj.js} +3 -0
  9. package/dist/globals.server.cjs +322 -3
  10. package/dist/globals.server.js +303 -1
  11. package/dist/{globals.verifier-D68mHEBl.cjs → globals.verifier-C0zj_LLo.cjs} +8 -1
  12. package/dist/{globals.verifier-CWFz5Gh2.js → globals.verifier-DFqKQ7hK.js} +8 -1
  13. package/dist/inventory.server.cjs +2 -2
  14. package/dist/inventory.server.js +2 -2
  15. package/dist/{main-SZQ1QjeP.js → main-CJm5myDI.js} +631 -607
  16. package/dist/{main-MzmGbSxs.cjs → main-DTaE01lg.cjs} +6 -6
  17. package/dist/martyrs/src/components/Calendar/Calendar.vue2.cjs +1 -1
  18. package/dist/martyrs/src/components/Calendar/Calendar.vue2.cjs.map +1 -1
  19. package/dist/martyrs/src/components/Calendar/Calendar.vue2.js +1 -1
  20. package/dist/martyrs/src/components/Calendar/Calendar.vue2.js.map +1 -1
  21. package/dist/martyrs/src/components/Feed/Feed.vue.cjs +33 -7
  22. package/dist/martyrs/src/components/Feed/Feed.vue.cjs.map +1 -1
  23. package/dist/martyrs/src/components/Feed/Feed.vue.js +33 -7
  24. package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
  25. package/dist/martyrs/src/components/Field/{Field.vue2.cjs → Field.vue.cjs} +2 -2
  26. package/dist/martyrs/src/components/Field/{Field.vue2.js.map → Field.vue.cjs.map} +1 -1
  27. package/dist/martyrs/src/components/Field/{Field.vue2.js → Field.vue.js} +2 -2
  28. package/dist/martyrs/src/components/Field/Field.vue.js.map +1 -0
  29. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.cjs +1 -1
  30. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +1 -1
  31. package/dist/martyrs/src/components/FieldTags/FieldTags.vue.cjs +1 -1
  32. package/dist/martyrs/src/components/FieldTags/FieldTags.vue.js +1 -1
  33. package/dist/martyrs/src/components/Menu/{Menu.vue.cjs → Menu.vue2.cjs} +2 -2
  34. package/dist/martyrs/src/components/Menu/Menu.vue2.cjs.map +1 -0
  35. package/dist/martyrs/src/components/Menu/{Menu.vue.js → Menu.vue2.js} +2 -2
  36. package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +1 -0
  37. package/dist/martyrs/src/components/Menu/MenuItem.vue.js +2 -2
  38. package/dist/martyrs/src/components/Menu/MenuItem.vue.js.map +1 -1
  39. package/dist/martyrs/src/components/PhotoViewer/PhotoViewer.vue.js +4 -4
  40. package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.cjs +1 -1
  41. package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.js +1 -1
  42. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs +1 -1
  43. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +1 -1
  44. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +1 -1
  45. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +1 -1
  46. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +2 -2
  47. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +2 -2
  48. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.cjs +1 -1
  49. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +1 -1
  50. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.cjs +1 -1
  51. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +1 -1
  52. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs +1 -1
  53. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +1 -1
  54. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs +1 -1
  55. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +1 -1
  56. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.cjs +1 -1
  57. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +1 -1
  58. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +2 -2
  59. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +2 -2
  60. package/dist/martyrs/src/modules/constructor/components/elements/Card.vue.cjs +1 -1
  61. package/dist/martyrs/src/modules/constructor/components/elements/Card.vue.js +1 -1
  62. package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.cjs +1 -1
  63. package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.js +1 -1
  64. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +1 -1
  65. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +1 -1
  66. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs +1 -1
  67. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
  68. package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +1 -1
  69. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +1 -1
  70. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +1 -1
  71. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +1 -1
  72. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.cjs +1 -1
  73. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.js +1 -1
  74. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue.cjs +1 -1
  75. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue.js +1 -1
  76. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +5 -1
  77. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs.map +1 -1
  78. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +5 -1
  79. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js.map +1 -1
  80. package/dist/martyrs/src/modules/icons/entities/IconTime.vue.cjs +2 -2
  81. package/dist/martyrs/src/modules/icons/entities/IconTime.vue.js +2 -2
  82. package/dist/martyrs/src/modules/icons/navigation/IconChevronLeft.vue.cjs +2 -2
  83. package/dist/martyrs/src/modules/icons/navigation/IconChevronLeft.vue.js +2 -2
  84. package/dist/martyrs/src/modules/icons/navigation/IconChevronRight.vue.cjs +2 -2
  85. package/dist/martyrs/src/modules/icons/navigation/IconChevronRight.vue.js +2 -2
  86. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js +6 -6
  87. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js.map +1 -1
  88. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.cjs +1 -1
  89. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +1 -1
  90. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.cjs +1 -1
  91. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +1 -1
  92. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.cjs +1 -1
  93. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.cjs +1 -1
  94. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +1 -1
  95. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.cjs +22 -15
  96. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.cjs.map +1 -1
  97. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +23 -16
  98. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js.map +1 -1
  99. package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.cjs +2 -2
  100. package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.cjs.map +1 -1
  101. package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.js +2 -2
  102. package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.js.map +1 -1
  103. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.cjs +31 -13
  104. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.cjs.map +1 -1
  105. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js +33 -15
  106. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js.map +1 -1
  107. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.cjs +39 -22
  108. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.cjs.map +1 -1
  109. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js +39 -22
  110. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js.map +1 -1
  111. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.cjs +1 -1
  112. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +1 -1
  113. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.cjs +1 -1
  114. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +1 -1
  115. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.cjs +385 -125
  116. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.cjs.map +1 -1
  117. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +391 -131
  118. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js.map +1 -1
  119. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.cjs +24 -7
  120. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.cjs.map +1 -1
  121. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js +25 -8
  122. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js.map +1 -1
  123. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs +99 -87
  124. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs.map +1 -1
  125. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +111 -99
  126. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js.map +1 -1
  127. package/dist/martyrs/src/modules/music/components/layouts/MusicBottomPlayer.vue.cjs +21 -0
  128. package/dist/martyrs/src/modules/music/components/layouts/MusicBottomPlayer.vue.cjs.map +1 -0
  129. package/dist/martyrs/src/modules/music/components/layouts/MusicBottomPlayer.vue.js +21 -0
  130. package/dist/martyrs/src/modules/music/components/layouts/MusicBottomPlayer.vue.js.map +1 -0
  131. package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs +442 -210
  132. package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs.map +1 -1
  133. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +445 -213
  134. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js.map +1 -1
  135. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.cjs +92 -117
  136. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.cjs.map +1 -1
  137. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +93 -118
  138. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js.map +1 -1
  139. package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.cjs +72 -113
  140. package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.cjs.map +1 -1
  141. package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.js +78 -119
  142. package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.js.map +1 -1
  143. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.cjs +15 -12
  144. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.cjs.map +1 -1
  145. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +15 -12
  146. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js.map +1 -1
  147. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs +558 -429
  148. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs.map +1 -1
  149. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +560 -431
  150. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js.map +1 -1
  151. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.cjs +146 -284
  152. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.cjs.map +1 -1
  153. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +149 -287
  154. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js.map +1 -1
  155. package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs +460 -63
  156. package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs.map +1 -1
  157. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +462 -65
  158. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js.map +1 -1
  159. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.cjs +126 -136
  160. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.cjs.map +1 -1
  161. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js +129 -139
  162. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js.map +1 -1
  163. package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.cjs +18 -15
  164. package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.cjs.map +1 -1
  165. package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.js +18 -15
  166. package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.js.map +1 -1
  167. package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.cjs +28 -23
  168. package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.cjs.map +1 -1
  169. package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.js +29 -24
  170. package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.js.map +1 -1
  171. package/dist/martyrs/src/modules/music/music.client.cjs +3 -6
  172. package/dist/martyrs/src/modules/music/music.client.cjs.map +1 -1
  173. package/dist/martyrs/src/modules/music/music.client.js +9 -12
  174. package/dist/martyrs/src/modules/music/music.client.js.map +1 -1
  175. package/dist/martyrs/src/modules/music/router/music.cjs +27 -1
  176. package/dist/martyrs/src/modules/music/router/music.cjs.map +1 -1
  177. package/dist/martyrs/src/modules/music/router/music.js +27 -1
  178. package/dist/martyrs/src/modules/music/router/music.js.map +1 -1
  179. package/dist/martyrs/src/modules/music/store/artists.cjs +6 -4
  180. package/dist/martyrs/src/modules/music/store/artists.cjs.map +1 -1
  181. package/dist/martyrs/src/modules/music/store/artists.js +6 -4
  182. package/dist/martyrs/src/modules/music/store/artists.js.map +1 -1
  183. package/dist/martyrs/src/modules/music/store/player.cjs +5 -0
  184. package/dist/martyrs/src/modules/music/store/player.cjs.map +1 -1
  185. package/dist/martyrs/src/modules/music/store/player.js +5 -0
  186. package/dist/martyrs/src/modules/music/store/player.js.map +1 -1
  187. package/dist/martyrs/src/modules/music/store/tracks.cjs +22 -0
  188. package/dist/martyrs/src/modules/music/store/tracks.cjs.map +1 -1
  189. package/dist/martyrs/src/modules/music/store/tracks.js +22 -0
  190. package/dist/martyrs/src/modules/music/store/tracks.js.map +1 -1
  191. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.js +2 -2
  192. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +2 -2
  193. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +1 -1
  194. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +1 -1
  195. package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.cjs +1 -1
  196. package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.js +1 -1
  197. package/dist/martyrs/src/modules/orders/components/sections/FormCustomerDetails.vue.cjs +1 -1
  198. package/dist/martyrs/src/modules/orders/components/sections/FormCustomerDetails.vue.js +1 -1
  199. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +1 -1
  200. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +1 -1
  201. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +2 -2
  202. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +1 -1
  203. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +1 -1
  204. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +1 -1
  205. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +1 -1
  206. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +1 -1
  207. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +1 -1
  208. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +1 -1
  209. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
  210. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +1 -1
  211. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +1 -1
  212. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs +1 -1
  213. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +1 -1
  214. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.cjs +1 -1
  215. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +1 -1
  216. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +1 -1
  217. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +1 -1
  218. package/dist/martyrs/src/modules/organizations/router/organizations.cjs +1 -1
  219. package/dist/martyrs/src/modules/organizations/router/organizations.js +1 -1
  220. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.cjs +1 -1
  221. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -1
  222. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.cjs +1 -1
  223. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -1
  224. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +1 -1
  225. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +1 -1
  226. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +1 -1
  227. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +1 -1
  228. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.cjs +1 -1
  229. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +1 -1
  230. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs +1 -1
  231. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +1 -1
  232. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs +1 -1
  233. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +1 -1
  234. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttBar.vue.cjs +4 -3
  235. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttBar.vue.cjs.map +1 -1
  236. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttBar.vue.js +4 -3
  237. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttBar.vue.js.map +1 -1
  238. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttChart.vue.cjs +37 -70
  239. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttChart.vue.cjs.map +1 -1
  240. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttChart.vue.js +38 -71
  241. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttChart.vue.js.map +1 -1
  242. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.cjs +2 -1
  243. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.cjs.map +1 -1
  244. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +6 -5
  245. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js.map +1 -1
  246. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.cjs +45 -52
  247. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.cjs.map +1 -1
  248. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js +46 -53
  249. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js.map +1 -1
  250. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.cjs +1 -1
  251. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +1 -1
  252. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.cjs +1 -1
  253. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js +1 -1
  254. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs +1 -1
  255. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +1 -1
  256. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +1 -1
  257. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +1 -1
  258. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.cjs +1 -1
  259. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +1 -1
  260. package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.cjs +1 -1
  261. package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.js +1 -1
  262. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.cjs +1 -1
  263. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +1 -1
  264. package/dist/martyrs.cjs.js +1 -1
  265. package/dist/martyrs.css +1 -1
  266. package/dist/martyrs.es.js +1 -1
  267. package/dist/music.server.cjs +124 -31
  268. package/dist/music.server.js +124 -31
  269. package/dist/organizations.server.cjs +1 -1
  270. package/dist/organizations.server.js +1 -1
  271. package/dist/products.server.cjs +2 -2
  272. package/dist/products.server.js +2 -2
  273. package/dist/rents.server.cjs +3 -3
  274. package/dist/rents.server.js +3 -3
  275. package/dist/style.css +373 -80
  276. package/dist/{web-D7lZjuC0.js → web-Dkk0_7TA.js} +1 -1
  277. package/dist/{web-D-YZ9KHz.cjs → web-stVkXd0l.cjs} +1 -1
  278. package/package.json +1 -1
  279. package/src/builder/modes/ssr.prod.js +21 -5
  280. package/src/builder/rspack/rspack.config.spa.client.js +0 -44
  281. package/src/builder/rspack/rspack.config.ssr.client.js +40 -40
  282. package/src/components/Calendar/Calendar.vue +378 -377
  283. package/src/components/Feed/Feed.vue +28 -2
  284. package/src/modules/globals/controllers/classes/crud/crud.policies.js +5 -0
  285. package/src/modules/globals/controllers/classes/globals.validator.js +8 -1
  286. package/src/modules/globals/views/components/layouts/Client.vue +7 -0
  287. package/src/modules/music/README.md +8 -0
  288. package/src/modules/music/components/SidebarMusic.vue +6 -9
  289. package/src/modules/music/components/cards/AlbumCard.vue +20 -14
  290. package/src/modules/music/components/cards/ArtistCard.vue +1 -1
  291. package/src/modules/music/components/cards/PlaylistCard.vue +31 -11
  292. package/src/modules/music/components/cards/TrackListCard.vue +24 -13
  293. package/src/modules/music/components/forms/PlaylistForm.vue +417 -107
  294. package/src/modules/music/components/forms/SearchForm.vue +31 -8
  295. package/src/modules/music/components/forms/TrackForm.vue +50 -32
  296. package/src/modules/music/components/layouts/MusicBottomPlayer.vue +17 -0
  297. package/src/modules/music/components/pages/Album.vue +373 -186
  298. package/src/modules/music/components/pages/Artist.vue +54 -94
  299. package/src/modules/music/components/pages/MusicHome.vue +59 -56
  300. package/src/modules/music/components/pages/MusicLibrary.vue +13 -11
  301. package/src/modules/music/components/pages/Playlist.vue +495 -379
  302. package/src/modules/music/components/pages/SearchResults.vue +185 -313
  303. package/src/modules/music/components/pages/Track.vue +363 -69
  304. package/src/modules/music/components/player/MusicPlayer.vue +368 -97
  305. package/src/modules/music/components/player/TrackProgress.vue +76 -22
  306. package/src/modules/music/components/player/VolumeControl.vue +61 -28
  307. package/src/modules/music/controllers/search.controller.js +3 -0
  308. package/src/modules/music/controllers/stream.controller.js +11 -3
  309. package/src/modules/music/middlewares/playlists.verifier.js +1 -1
  310. package/src/modules/music/music.client.js +3 -6
  311. package/src/modules/music/music.server.js +8 -4
  312. package/src/modules/music/router/music.js +8 -1
  313. package/src/modules/music/routes/albums.routes.js +37 -5
  314. package/src/modules/music/routes/artists.routes.js +14 -4
  315. package/src/modules/music/routes/genres.routes.js +5 -1
  316. package/src/modules/music/routes/playlists.routes.js +42 -9
  317. package/src/modules/music/routes/tracks.routes.js +27 -2
  318. package/src/modules/music/store/artists.js +6 -2
  319. package/src/modules/music/store/player.js +6 -0
  320. package/src/modules/music/store/tracks.js +31 -0
  321. package/src/modules/music/websocket/streaming.handler.js +7 -1
  322. package/src/modules/rents/controllers/services/rents.services.js +2 -2
  323. package/src/modules/rents/views/components/pages/Gant/GanttBar.vue +4 -3
  324. package/src/modules/rents/views/components/pages/Gant/GanttChart.vue +42 -40
  325. package/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue +3 -1
  326. package/src/modules/rents/views/components/pages/Rents.vue +60 -56
  327. package/dist/globals.websocket-DzvdIBf6.js +0 -306
  328. package/dist/globals.websocket-k6_B1T7k.cjs +0 -322
  329. package/dist/martyrs/src/components/Field/Field.vue2.cjs.map +0 -1
  330. package/dist/martyrs/src/components/Menu/Menu.vue.cjs.map +0 -1
  331. package/dist/martyrs/src/components/Menu/Menu.vue.js.map +0 -1
  332. package/dist/martyrs/src/modules/music/components/cards/TrackCard.vue.cjs +0 -69
  333. package/dist/martyrs/src/modules/music/components/cards/TrackCard.vue.cjs.map +0 -1
  334. package/dist/martyrs/src/modules/music/components/cards/TrackCard.vue.js +0 -69
  335. package/dist/martyrs/src/modules/music/components/cards/TrackCard.vue.js.map +0 -1
  336. package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.cjs +0 -104
  337. package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.cjs.map +0 -1
  338. package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.js +0 -104
  339. package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.js.map +0 -1
  340. package/src/modules/music/components/cards/TrackCard.vue +0 -86
  341. package/src/modules/music/components/layouts/MusicLayout.vue +0 -83
@@ -2,21 +2,26 @@
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
4
  const vueRouter = require("vue-router");
5
- const Feed = require("../../../../components/Feed/Feed.vue.cjs");
6
- const TrackCard = require("../cards/TrackCard.vue.cjs");
7
- const AlbumCard = require("../cards/AlbumCard.vue.cjs");
8
5
  const Button = require("../../../../components/Button/Button.vue.cjs");
9
6
  const Loader = require("../../../../components/Loader/Loader.vue2.cjs");
10
7
  const Media = require("../../../../components/Media/Media.vue.cjs");
11
8
  const Dropdown = require("../../../../components/Dropdown/Dropdown.vue.cjs");
9
+ const Feed = require("../../../../components/Feed/Feed.vue.cjs");
12
10
  const IconPlay = require("../../../icons/navigation/IconPlay.vue.cjs");
13
11
  const IconLike = require("../../../icons/navigation/IconLike.vue.cjs");
14
12
  const IconEllipsis = require("../../../icons/navigation/IconEllipsis.vue.cjs");
13
+ const IconShuffle = require("../../../icons/navigation/IconShuffle.vue.cjs");
14
+ const IconCalendar = require("../../../icons/entities/IconCalendar.vue.cjs");
15
+ const IconTime = require("../../../icons/entities/IconTime.vue.cjs");
16
+ const IconShow = require("../../../icons/actions/IconShow.vue.cjs");
17
+ const IconMusic = require("../../../icons/entities/IconMusic.vue.cjs");
18
+ const IconCheckmark = require("../../../icons/navigation/IconCheckmark.vue.cjs");
19
+ const TrackListCard = require("../cards/TrackListCard.vue.cjs");
20
+ const AlbumCard = require("../cards/AlbumCard.vue.cjs");
15
21
  const albums = require("../../store/albums.cjs");
16
22
  const player = require("../../store/player.cjs");
17
- ;/* empty css */
18
- const _pluginVue_exportHelper = require("../../../../../../_virtual/_plugin-vue_export-helper.cjs");
19
- const _hoisted_1 = { class: "album-page" };
23
+ const auth = require("../../../auth/views/store/auth.cjs");
24
+ const _hoisted_1 = { class: "album-page pd-small" };
20
25
  const _hoisted_2 = {
21
26
  key: 0,
22
27
  class: "w-100 h-25r flex-center flex"
@@ -25,290 +30,517 @@ const _hoisted_3 = {
25
30
  key: 1,
26
31
  class: "t-center pd-big"
27
32
  };
28
- const _hoisted_4 = { key: 2 };
29
- const _hoisted_5 = { class: "album-header mn-b-medium flex flex-v-center gap-medium" };
30
- const _hoisted_6 = { class: "album-cover" };
31
- const _hoisted_7 = { class: "album-info" };
32
- const _hoisted_8 = { class: "" };
33
- const _hoisted_9 = { class: "album-meta mn-t-small flex flex-v-center" };
34
- const _hoisted_10 = {
33
+ const _hoisted_4 = {
34
+ key: 2,
35
+ class: "album-content cols-2-fit-content mobile:cols-1 gap-big"
36
+ };
37
+ const _hoisted_5 = { class: "pos-sticky pos-t-0 mobile:pos-relative album-cover-section" };
38
+ const _hoisted_6 = { class: "cover-container relative mn-b-medium radius-big overflow-hidden shadow-big" };
39
+ const _hoisted_7 = { class: "stats-grid grid cols-2 gap-small" };
40
+ const _hoisted_8 = { class: "stat-card bg-light pd-medium radius-medium t-center" };
41
+ const _hoisted_9 = { class: "mn-b-thin" };
42
+ const _hoisted_10 = { class: "stat-card bg-light pd-medium radius-medium t-center" };
43
+ const _hoisted_11 = { class: "mn-b-thin" };
44
+ const _hoisted_12 = { class: "album-details-section" };
45
+ const _hoisted_13 = { class: "flex items-center gap-small mn-b-small" };
46
+ const _hoisted_14 = { class: "badge bg-primary-transp-20 t-primary pd-thin-big radius-small t-small t-uppercase" };
47
+ const _hoisted_15 = {
48
+ key: 0,
49
+ class: "badge bg-success-transp-20 t-success pd-thin-big radius-small t-small"
50
+ };
51
+ const _hoisted_16 = { class: "h1 mn-b-medium" };
52
+ const _hoisted_17 = { class: "flex gap-small mn-b-medium" };
53
+ const _hoisted_18 = { class: "dropdown-menu bg-dark pd-small radius-medium shadow-big mn-t-thin" };
54
+ const _hoisted_19 = { class: "artists-section mn-b-big" };
55
+ const _hoisted_20 = {
56
+ key: 0,
57
+ class: "t-medium mn-b-small"
58
+ };
59
+ const _hoisted_21 = { class: "flex flex-col gap-small" };
60
+ const _hoisted_22 = { class: "artist-avatar" };
61
+ const _hoisted_23 = {
35
62
  key: 1,
36
- class: "t-medium"
63
+ class: "w-4r h-4r radius-full bg-primary flex-center"
37
64
  };
38
- const _hoisted_11 = { class: "t-grey" };
39
- const _hoisted_12 = { class: "t-grey" };
40
- const _hoisted_13 = { class: "album-actions mn-b-medium flex flex-v-center gap-small" };
41
- const _hoisted_14 = {
65
+ const _hoisted_24 = { class: "flex items-center gap-thin" };
66
+ const _hoisted_25 = { class: "t-large" };
67
+ const _hoisted_26 = { class: "metadata-grid grid cols-2 gap-small mn-b-big" };
68
+ const _hoisted_27 = { class: "metadata-card bg-light pd-medium radius-medium flex items-center gap-medium" };
69
+ const _hoisted_28 = { class: "icon-wrapper bg-primary-transp-20 w-3r h-3r radius-small flex-center" };
70
+ const _hoisted_29 = { class: "t-medium" };
71
+ const _hoisted_30 = { class: "metadata-card bg-light pd-medium radius-medium flex items-center gap-medium" };
72
+ const _hoisted_31 = { class: "icon-wrapper bg-primary-transp-20 w-3r h-3r radius-small flex-center" };
73
+ const _hoisted_32 = { class: "t-medium" };
74
+ const _hoisted_33 = {
42
75
  key: 0,
43
- class: "pd-small bg-dark radius-small pos-absolute pos-t-100 pos-r-0 z-index-3 w-max-15r mn-t-thin"
76
+ class: "metadata-card bg-light pd-medium radius-medium flex items-center gap-medium"
44
77
  };
45
- const _hoisted_15 = { class: "mn-b-thin" };
46
- const _hoisted_16 = { class: "album-tracks" };
47
- const _hoisted_17 = {
78
+ const _hoisted_34 = { class: "icon-wrapper bg-primary-transp-20 w-3r h-3r radius-small flex-center" };
79
+ const _hoisted_35 = { class: "t-medium" };
80
+ const _hoisted_36 = { class: "metadata-card bg-light pd-medium radius-medium flex items-center gap-medium" };
81
+ const _hoisted_37 = { class: "icon-wrapper bg-primary-transp-20 w-3r h-3r radius-small flex-center" };
82
+ const _hoisted_38 = { class: "t-medium" };
83
+ const _hoisted_39 = {
48
84
  key: 0,
49
- class: "album-description mn-t-medium pd-medium bg-dark-transp-10 radius-medium"
85
+ class: "tags-section mn-b-medium"
50
86
  };
51
- const _hoisted_18 = { class: "t-grey" };
52
- const _hoisted_19 = {
87
+ const _hoisted_40 = { class: "flex gap-thin flex-wrap" };
88
+ const _hoisted_41 = {
53
89
  key: 1,
54
- class: "more-from-artist mn-t-medium"
90
+ class: "description-section bg-light pd-medium radius-medium mn-b-medium"
55
91
  };
56
- const _hoisted_20 = { class: "flex-between flex mn-b-small" };
57
- const _hoisted_21 = { class: "" };
58
- const _hoisted_22 = { class: "albums-grid cols-5 mobile:cols-2 gap-small" };
92
+ const _hoisted_42 = { class: "t-transp" };
93
+ const _hoisted_43 = {
94
+ key: 3,
95
+ class: "tracks-section mn-t-big"
96
+ };
97
+ const _hoisted_44 = { class: "bg-light radius-medium o-hidden" };
98
+ const _hoisted_45 = {
99
+ key: 4,
100
+ class: "more-albums-section mn-t-big"
101
+ };
102
+ const _hoisted_46 = { class: "flex justify-between items-center mn-b-medium" };
103
+ const _hoisted_47 = { class: "flex flex-nowrap gap-small o-x-scroll overscroll-behavior-x-contain scroll-behavior-smooth scroll-snap-type-x-mandatory scroll-hide" };
59
104
  const _sfc_main = {
60
105
  __name: "Album",
61
- setup(__props) {
106
+ emits: ["page-loading", "page-loaded"],
107
+ setup(__props, { emit: __emit }) {
62
108
  const route = vueRouter.useRoute();
63
- vueRouter.useRouter();
64
- const isLoading = vue.ref(true);
109
+ const router = vueRouter.useRouter();
110
+ const emits = __emit;
111
+ const hasLoaded = vue.ref(false);
65
112
  const isFavorite = vue.ref(false);
66
113
  const showDropdown = vue.ref(false);
67
- const moreFromArtist = vue.ref([]);
114
+ const followedArtists = vue.ref([]);
115
+ const moreAlbums = vue.ref([]);
116
+ albums.state.currentAlbum = null;
117
+ albums.state.currentAlbumTracks = [];
68
118
  const album = vue.computed(() => albums.state.currentAlbum);
69
- const albumTracks = vue.computed(() => albums.state.currentAlbumTracks);
70
- const getArtistName = (albumItem) => {
71
- if (!albumItem) return "Unknown Artist";
72
- if (albumItem.artist) {
73
- if (typeof albumItem.artist === "object") {
74
- return albumItem.artist.name || "Unknown Artist";
75
- }
76
- return albumItem.artist;
119
+ const albumTracks = vue.computed(() => albums.state.currentAlbumTracks || []);
120
+ const isOwner = vue.computed(() => {
121
+ return album.value?.owner?.target === auth.state.user?._id;
122
+ });
123
+ const totalDuration = vue.computed(() => {
124
+ if (!albumTracks.value.length) return "0:00";
125
+ const totalSeconds = albumTracks.value.reduce((sum, track) => sum + (track.duration || 0), 0);
126
+ return formatDuration(totalSeconds);
127
+ });
128
+ const formatDate = (dateString) => {
129
+ if (!dateString) return "Unknown";
130
+ return new Date(dateString).toLocaleDateString("en-US", {
131
+ year: "numeric",
132
+ month: "long",
133
+ day: "numeric"
134
+ });
135
+ };
136
+ const formatDuration = (seconds) => {
137
+ if (!seconds) return "0:00";
138
+ const h = Math.floor(seconds / 3600);
139
+ const m = Math.floor(seconds % 3600 / 60);
140
+ const s = Math.floor(seconds % 60);
141
+ if (h > 0) {
142
+ return `${h}:${m.toString().padStart(2, "0")}:${s.toString().padStart(2, "0")}`;
77
143
  }
78
- return "Unknown Artist";
144
+ return `${m}:${s.toString().padStart(2, "0")}`;
79
145
  };
80
- const formatReleaseYear = (dateString) => {
81
- if (!dateString) return "";
82
- return new Date(dateString).getFullYear();
146
+ const formatNumber = (num) => {
147
+ if (!num) return "0";
148
+ if (num >= 1e6) {
149
+ return (num / 1e6).toFixed(1) + "M";
150
+ } else if (num >= 1e3) {
151
+ return (num / 1e3).toFixed(1) + "K";
152
+ }
153
+ return num.toString();
83
154
  };
84
155
  const playAlbum = () => {
85
156
  if (albumTracks.value && albumTracks.value.length > 0) {
86
157
  player.actions.setQueue(albumTracks.value);
87
158
  }
88
159
  };
160
+ const shufflePlay = () => {
161
+ if (albumTracks.value && albumTracks.value.length > 0) {
162
+ const shuffled = [...albumTracks.value].sort(() => Math.random() - 0.5);
163
+ player.actions.setQueue(shuffled);
164
+ }
165
+ };
89
166
  const toggleFavorite = () => {
90
167
  isFavorite.value = !isFavorite.value;
91
168
  };
169
+ const toggleFollowArtist = (artistId) => {
170
+ const index = followedArtists.value.indexOf(artistId);
171
+ if (index > -1) {
172
+ followedArtists.value.splice(index, 1);
173
+ } else {
174
+ followedArtists.value.push(artistId);
175
+ }
176
+ };
92
177
  const addToQueue = () => {
93
- if (albumTracks.value && albumTracks.value.length > 0) {
178
+ if (albumTracks.value.length > 0) {
94
179
  albumTracks.value.forEach((track) => {
95
180
  player.actions.addToQueue(track);
96
181
  });
97
182
  showDropdown.value = false;
98
183
  }
99
184
  };
185
+ const editAlbum = () => {
186
+ router.push({ name: "album-edit", params: { url: album.value.url } });
187
+ };
188
+ const deleteAlbum = async () => {
189
+ if (confirm("Are you sure you want to delete this album?")) {
190
+ try {
191
+ await albums.actions.deleteAlbum(album.value._id);
192
+ router.push({ name: "music-library" });
193
+ } catch (error) {
194
+ console.error("Failed to delete album:", error);
195
+ }
196
+ }
197
+ };
100
198
  const copyLink = () => {
101
- const url = window.location.href;
102
- navigator.clipboard.writeText(url).then(() => {
103
- showDropdown.value = false;
104
- });
199
+ navigator.clipboard.writeText(window.location.href);
200
+ showDropdown.value = false;
105
201
  };
106
202
  const fetchAlbumData = async () => {
107
- isLoading.value = true;
108
203
  try {
109
204
  await albums.actions.fetchAlbumByUrl(route.params.url);
110
- if (album.value?.artist?._id) {
111
- const artistAlbums = await albums.actions.fetchAlbums({
112
- artist: album.value.artist._id,
205
+ if (album.value?.artists?.length) {
206
+ const artistIds = album.value.artists.map((a) => a._id);
207
+ const albums$1 = await albums.actions.fetchAlbums({
208
+ artist: { $in: artistIds },
113
209
  status: "published",
114
210
  isPublic: true,
115
- limit: 5
211
+ limit: 6
116
212
  });
117
- moreFromArtist.value = artistAlbums.filter((a) => a._id !== album.value._id);
213
+ moreAlbums.value = albums$1.filter((a) => a._id !== album.value._id).slice(0, 5);
118
214
  }
119
215
  } catch (error) {
120
216
  console.error("Error fetching album data:", error);
121
- } finally {
122
- isLoading.value = false;
123
217
  }
124
218
  };
125
- vue.onMounted(fetchAlbumData);
126
- vue.watch(() => route.params.url, (newUrl) => {
127
- if (newUrl) {
128
- fetchAlbumData();
129
- }
219
+ vue.onMounted(async () => {
220
+ emits("page-loading");
221
+ await fetchAlbumData();
222
+ hasLoaded.value = true;
223
+ emits("page-loaded");
130
224
  });
131
225
  return (_ctx, _cache) => {
132
226
  const _component_router_link = vue.resolveComponent("router-link");
133
227
  return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
134
- isLoading.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2, [
228
+ _ctx.isLoading ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2, [
135
229
  vue.createVNode(Loader.default)
136
- ])) : !album.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3, _cache[1] || (_cache[1] = [
230
+ ])) : vue.createCommentVNode("", true),
231
+ hasLoaded.value && !album.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3, _cache[1] || (_cache[1] = [
137
232
  vue.createElementVNode("h2", { class: "" }, "Album not found", -1),
138
- vue.createElementVNode("p", { class: "t-grey t-medium" }, "The album you're looking for doesn't exist or has been removed.", -1)
139
- ]))) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_4, [
233
+ vue.createElementVNode("p", { class: "t-transp t-medium" }, "The album you're looking for doesn't exist or has been removed.", -1)
234
+ ]))) : vue.createCommentVNode("", true),
235
+ album.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4, [
140
236
  vue.createElementVNode("div", _hoisted_5, [
141
237
  vue.createElementVNode("div", _hoisted_6, [
142
238
  vue.createVNode(Media.default, {
143
- url: album.value.coverUrl || "/assets/placeholder-album.jpg",
144
- class: "w-15r h-15r object-fit-cover shadow-lg radius-small"
145
- }, null, 8, ["url"])
239
+ url: album.value.coverArt || "/logo/logo-placeholder.jpg",
240
+ alt: album.value.title,
241
+ class: "aspect-1x1 w-100 radius-medium o-hidden"
242
+ }, null, 8, ["url", "alt"])
146
243
  ]),
147
244
  vue.createElementVNode("div", _hoisted_7, [
148
- _cache[4] || (_cache[4] = vue.createElementVNode("div", { class: "t-small t-uppercase" }, "Album", -1)),
149
- vue.createElementVNode("h1", _hoisted_8, vue.toDisplayString(album.value.title), 1),
150
- vue.createElementVNode("div", _hoisted_9, [
151
- album.value.artist && album.value.artist._id ? (vue.openBlock(), vue.createBlock(_component_router_link, {
152
- key: 0,
153
- to: { name: "artist", params: { url: album.value.artist.url } },
154
- class: "t-medium hover-t-main"
155
- }, {
156
- default: vue.withCtx(() => [
157
- vue.createTextVNode(vue.toDisplayString(getArtistName(album.value)), 1)
158
- ]),
159
- _: 1
160
- }, 8, ["to"])) : (vue.openBlock(), vue.createElementBlock("span", _hoisted_10, vue.toDisplayString(getArtistName(album.value)), 1)),
161
- _cache[2] || (_cache[2] = vue.createElementVNode("span", { class: "t-grey mn-l-small mn-r-small" }, "•", -1)),
162
- vue.createElementVNode("span", _hoisted_11, vue.toDisplayString(formatReleaseYear(album.value.releaseDate)), 1),
163
- _cache[3] || (_cache[3] = vue.createElementVNode("span", { class: "t-grey mn-l-small mn-r-small" }, "•", -1)),
164
- vue.createElementVNode("span", _hoisted_12, vue.toDisplayString(albumTracks.value.length) + " " + vue.toDisplayString(albumTracks.value.length === 1 ? "song" : "songs"), 1)
245
+ vue.createElementVNode("div", _hoisted_8, [
246
+ vue.createElementVNode("div", _hoisted_9, vue.toDisplayString(album.value.totalTracks || 0), 1),
247
+ _cache[2] || (_cache[2] = vue.createElementVNode("div", { class: "t-small t-transp t-uppercase" }, "Tracks", -1))
248
+ ]),
249
+ vue.createElementVNode("div", _hoisted_10, [
250
+ vue.createElementVNode("div", _hoisted_11, vue.toDisplayString(formatNumber(album.value.views)), 1),
251
+ _cache[3] || (_cache[3] = vue.createElementVNode("div", { class: "t-small t-transp t-uppercase" }, "Views", -1))
165
252
  ])
166
253
  ])
167
254
  ]),
168
- vue.createElementVNode("div", _hoisted_13, [
169
- vue.createVNode(Button.default, {
170
- onClick: playAlbum,
171
- class: "play-button bg-main radius-round pd-small flex-v-center flex gap-small hover-scale-1",
172
- showLoader: false,
173
- showSucces: false
174
- }, {
175
- default: vue.withCtx(() => [
176
- vue.createVNode(IconPlay.default, {
177
- class: "i-small",
178
- fill: "rgb(var(--black))"
179
- }),
180
- _cache[5] || (_cache[5] = vue.createElementVNode("span", { class: "t-black t-medium" }, "Play", -1))
181
- ]),
182
- _: 1
183
- }),
184
- vue.createVNode(Button.default, {
185
- onClick: toggleFavorite,
186
- class: "bg-transparent border-none pd-zero",
187
- showLoader: false,
188
- showSucces: false
189
- }, {
190
- default: vue.withCtx(() => [
191
- vue.createVNode(IconLike.default, {
192
- class: "i-medium",
193
- fill: isFavorite.value ? "rgb(var(--main))" : "rgb(var(--white))"
194
- }, null, 8, ["fill"])
195
- ]),
196
- _: 1
197
- }),
198
- vue.createVNode(Dropdown.default, { class: "pos-relative" }, {
199
- content: vue.withCtx(() => [
200
- showDropdown.value ? (vue.openBlock(), vue.createElementBlock("ul", _hoisted_14, [
201
- vue.createElementVNode("li", _hoisted_15, [
255
+ vue.createElementVNode("div", _hoisted_12, [
256
+ vue.createElementVNode("div", _hoisted_13, [
257
+ vue.createElementVNode("span", _hoisted_14, vue.toDisplayString(album.value.type), 1),
258
+ album.value.status === "published" ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_15, " Published ")) : vue.createCommentVNode("", true)
259
+ ]),
260
+ vue.createElementVNode("h1", _hoisted_16, vue.toDisplayString(album.value.title), 1),
261
+ vue.createElementVNode("div", _hoisted_17, [
262
+ vue.createVNode(Button.default, {
263
+ onClick: playAlbum,
264
+ color: "primary",
265
+ size: "medium",
266
+ class: "flex-1 flex-center gap-thin"
267
+ }, {
268
+ default: vue.withCtx(() => [
269
+ vue.createVNode(IconPlay.default, { class: "w-1r h-1r" }),
270
+ _cache[4] || (_cache[4] = vue.createTextVNode(" Play All "))
271
+ ]),
272
+ _: 1
273
+ }),
274
+ vue.createVNode(Button.default, {
275
+ onClick: toggleFavorite,
276
+ color: isFavorite.value ? "danger" : "transp",
277
+ size: "medium",
278
+ class: "w-3r h-3r radius-full"
279
+ }, {
280
+ default: vue.withCtx(() => [
281
+ vue.createVNode(IconLike.default, {
282
+ class: "w-1-25r h-1-25r",
283
+ fill: isFavorite.value
284
+ }, null, 8, ["fill"])
285
+ ]),
286
+ _: 1
287
+ }, 8, ["color"]),
288
+ vue.createVNode(Button.default, {
289
+ onClick: shufflePlay,
290
+ color: "transp",
291
+ size: "medium",
292
+ class: "w-3r h-3r radius-full"
293
+ }, {
294
+ default: vue.withCtx(() => [
295
+ vue.createVNode(IconShuffle.default, { class: "w-1-25r h-1-25r" })
296
+ ]),
297
+ _: 1
298
+ }),
299
+ vue.createVNode(Dropdown.default, {
300
+ modelValue: showDropdown.value,
301
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => showDropdown.value = $event),
302
+ class: "relative"
303
+ }, {
304
+ trigger: vue.withCtx(() => [
305
+ vue.createVNode(Button.default, {
306
+ color: "transp",
307
+ size: "medium",
308
+ class: "w-3r h-3r radius-full"
309
+ }, {
310
+ default: vue.withCtx(() => [
311
+ vue.createVNode(IconEllipsis.default, { class: "w-1-25r h-1-25r" })
312
+ ]),
313
+ _: 1
314
+ })
315
+ ]),
316
+ default: vue.withCtx(() => [
317
+ vue.createElementVNode("div", _hoisted_18, [
202
318
  vue.createVNode(Button.default, {
203
319
  onClick: addToQueue,
204
- class: "bg-transparent border-none pd-thin w-100 t-left hover-bg-dark radius-small",
205
- showLoader: false,
206
- showSucces: false
320
+ color: "transp",
321
+ size: "small",
322
+ class: "w-100 justify-start"
207
323
  }, {
208
- default: vue.withCtx(() => _cache[6] || (_cache[6] = [
209
- vue.createElementVNode("span", null, "Add to Queue", -1)
324
+ default: vue.withCtx(() => _cache[5] || (_cache[5] = [
325
+ vue.createTextVNode(" Add to Queue ")
210
326
  ])),
211
327
  _: 1
212
- })
213
- ]),
214
- vue.createElementVNode("li", null, [
328
+ }),
215
329
  vue.createVNode(Button.default, {
216
330
  onClick: copyLink,
217
- class: "bg-transparent border-none pd-thin w-100 t-left hover-bg-dark radius-small",
218
- showLoader: false,
219
- showSucces: false
331
+ color: "transp",
332
+ size: "small",
333
+ class: "w-100 justify-start"
220
334
  }, {
221
- default: vue.withCtx(() => _cache[7] || (_cache[7] = [
222
- vue.createElementVNode("span", null, "Copy Link", -1)
335
+ default: vue.withCtx(() => _cache[6] || (_cache[6] = [
336
+ vue.createTextVNode(" Copy Link ")
223
337
  ])),
224
338
  _: 1
225
- })
339
+ }),
340
+ isOwner.value ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
341
+ _cache[9] || (_cache[9] = vue.createElementVNode("hr", { class: "mn-v-thin border-dark-transp-10" }, null, -1)),
342
+ vue.createVNode(Button.default, {
343
+ onClick: editAlbum,
344
+ color: "transp",
345
+ size: "small",
346
+ class: "w-100 justify-start"
347
+ }, {
348
+ default: vue.withCtx(() => _cache[7] || (_cache[7] = [
349
+ vue.createTextVNode(" Edit Album ")
350
+ ])),
351
+ _: 1
352
+ }),
353
+ vue.createVNode(Button.default, {
354
+ onClick: deleteAlbum,
355
+ color: "danger",
356
+ size: "small",
357
+ class: "w-100 justify-start"
358
+ }, {
359
+ default: vue.withCtx(() => _cache[8] || (_cache[8] = [
360
+ vue.createTextVNode(" Delete Album ")
361
+ ])),
362
+ _: 1
363
+ })
364
+ ], 64)) : vue.createCommentVNode("", true)
226
365
  ])
227
- ])) : vue.createCommentVNode("", true)
366
+ ]),
367
+ _: 1
368
+ }, 8, ["modelValue"])
369
+ ]),
370
+ vue.createElementVNode("div", _hoisted_19, [
371
+ album.value.artists && album.value.artists.length > 1 ? (vue.openBlock(), vue.createElementBlock("h3", _hoisted_20, "Artists")) : vue.createCommentVNode("", true),
372
+ vue.createElementVNode("div", _hoisted_21, [
373
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(album.value.artists, (artist) => {
374
+ return vue.openBlock(), vue.createElementBlock("div", {
375
+ key: artist._id,
376
+ class: "artist-card bg-light pd-medium radius-medium flex items-center gap-medium"
377
+ }, [
378
+ vue.createVNode(_component_router_link, {
379
+ to: `/artist/${artist.url}`,
380
+ class: "flex items-center gap-medium flex-1 hover-opacity"
381
+ }, {
382
+ default: vue.withCtx(() => [
383
+ vue.createElementVNode("div", _hoisted_22, [
384
+ artist.photoUrl ? (vue.openBlock(), vue.createBlock(Media.default, {
385
+ key: 0,
386
+ url: artist.photoUrl,
387
+ alt: artist.name,
388
+ class: "w-4r h-4r radius-full object-cover"
389
+ }, null, 8, ["url", "alt"])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_23, vue.toDisplayString(artist.name.charAt(0)), 1))
390
+ ]),
391
+ vue.createElementVNode("div", null, [
392
+ vue.createElementVNode("div", _hoisted_24, [
393
+ vue.createElementVNode("span", _hoisted_25, vue.toDisplayString(artist.name), 1),
394
+ artist.isVerified ? (vue.openBlock(), vue.createBlock(IconCheckmark.default, {
395
+ key: 0,
396
+ class: "w-1r h-1r t-primary"
397
+ })) : vue.createCommentVNode("", true)
398
+ ]),
399
+ _cache[10] || (_cache[10] = vue.createElementVNode("span", { class: "t-small t-transp" }, "Artist", -1))
400
+ ])
401
+ ]),
402
+ _: 2
403
+ }, 1032, ["to"]),
404
+ !isOwner.value ? (vue.openBlock(), vue.createBlock(Button.default, {
405
+ key: 0,
406
+ onClick: () => toggleFollowArtist(artist._id),
407
+ color: followedArtists.value.includes(artist._id) ? "primary" : "transp",
408
+ size: "small"
409
+ }, {
410
+ default: vue.withCtx(() => [
411
+ vue.createTextVNode(vue.toDisplayString(followedArtists.value.includes(artist._id) ? "Following" : "Follow"), 1)
412
+ ]),
413
+ _: 2
414
+ }, 1032, ["onClick", "color"])) : vue.createCommentVNode("", true)
415
+ ]);
416
+ }), 128))
417
+ ])
418
+ ]),
419
+ vue.createElementVNode("div", _hoisted_26, [
420
+ vue.createElementVNode("div", _hoisted_27, [
421
+ vue.createElementVNode("div", _hoisted_28, [
422
+ vue.createVNode(IconCalendar.default, { class: "w-1-5r h-1-5r t-primary" })
423
+ ]),
424
+ vue.createElementVNode("div", null, [
425
+ _cache[11] || (_cache[11] = vue.createElementVNode("div", { class: "t-small t-transp t-uppercase" }, "Released", -1)),
426
+ vue.createElementVNode("div", _hoisted_29, vue.toDisplayString(formatDate(album.value.releaseDate)), 1)
427
+ ])
228
428
  ]),
229
- default: vue.withCtx(() => [
230
- vue.createVNode(Button.default, {
231
- onClick: _cache[0] || (_cache[0] = ($event) => showDropdown.value = !showDropdown.value),
232
- class: "bg-transparent border-none pd-zero",
233
- showLoader: false,
234
- showSucces: false
235
- }, {
236
- default: vue.withCtx(() => [
237
- vue.createVNode(IconEllipsis.default, {
238
- class: "i-medium",
239
- fill: "rgb(var(--white))"
240
- })
241
- ]),
242
- _: 1
243
- })
429
+ vue.createElementVNode("div", _hoisted_30, [
430
+ vue.createElementVNode("div", _hoisted_31, [
431
+ vue.createVNode(IconTime.default, { class: "w-1-5r h-1-5r t-primary" })
432
+ ]),
433
+ vue.createElementVNode("div", null, [
434
+ _cache[12] || (_cache[12] = vue.createElementVNode("div", { class: "t-small t-transp t-uppercase" }, "Duration", -1)),
435
+ vue.createElementVNode("div", _hoisted_32, vue.toDisplayString(totalDuration.value), 1)
436
+ ])
244
437
  ]),
245
- _: 1
246
- })
247
- ]),
248
- vue.createElementVNode("div", _hoisted_16, [
249
- vue.createVNode(Feed.default, {
250
- store: {
251
- read: () => _ctx.Promise.resolve(albumTracks.value),
252
- state: { isLoading: false }
253
- },
254
- external: true,
255
- items: albumTracks.value,
256
- states: {
257
- empty: {
258
- title: "No tracks in album",
259
- description: "This album appears to be empty",
260
- class: "pd-medium bg-dark-transp-10 radius-medium"
261
- }
262
- },
263
- class: "gap-thin"
264
- }, {
265
- default: vue.withCtx(({ items }) => [
266
- (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(items, (track) => {
267
- return vue.openBlock(), vue.createBlock(TrackCard.default, {
438
+ album.value.label ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_33, [
439
+ vue.createElementVNode("div", _hoisted_34, [
440
+ vue.createVNode(IconMusic.default, { class: "w-1-5r h-1-5r t-primary" })
441
+ ]),
442
+ vue.createElementVNode("div", null, [
443
+ _cache[13] || (_cache[13] = vue.createElementVNode("div", { class: "t-small t-transp t-uppercase" }, "Label", -1)),
444
+ vue.createElementVNode("div", _hoisted_35, vue.toDisplayString(album.value.label), 1)
445
+ ])
446
+ ])) : vue.createCommentVNode("", true),
447
+ vue.createElementVNode("div", _hoisted_36, [
448
+ vue.createElementVNode("div", _hoisted_37, [
449
+ vue.createVNode(IconShow.default, { class: "w-1-5r h-1-5r t-primary" })
450
+ ]),
451
+ vue.createElementVNode("div", null, [
452
+ _cache[14] || (_cache[14] = vue.createElementVNode("div", { class: "t-small t-transp t-uppercase" }, "Visibility", -1)),
453
+ vue.createElementVNode("div", _hoisted_38, vue.toDisplayString(album.value.isPublic ? "Public" : "Private"), 1)
454
+ ])
455
+ ])
456
+ ]),
457
+ album.value.genres && album.value.genres.length || album.value.tags && album.value.tags.length ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_39, [
458
+ _cache[15] || (_cache[15] = vue.createElementVNode("h3", { class: "t-medium mn-b-small" }, "Genres & Tags", -1)),
459
+ vue.createElementVNode("div", _hoisted_40, [
460
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(album.value.genres, (genre) => {
461
+ return vue.openBlock(), vue.createElementBlock("span", {
462
+ key: genre,
463
+ class: "tag bg-primary-transp-20 t-primary pd-thin-big radius-small t-small hover-bg-primary-transp-30 cursor-pointer"
464
+ }, vue.toDisplayString(genre), 1);
465
+ }), 128)),
466
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(album.value.tags, (tag) => {
467
+ return vue.openBlock(), vue.createElementBlock("span", {
468
+ key: tag,
469
+ class: "tag bg-light t-transp pd-thin-big radius-small t-small hover-bg-light cursor-pointer"
470
+ }, " #" + vue.toDisplayString(tag), 1);
471
+ }), 128))
472
+ ])
473
+ ])) : vue.createCommentVNode("", true),
474
+ album.value.description ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_41, [
475
+ _cache[16] || (_cache[16] = vue.createElementVNode("h3", { class: "t-medium mn-b-small" }, "About", -1)),
476
+ vue.createElementVNode("p", _hoisted_42, vue.toDisplayString(album.value.description), 1)
477
+ ])) : vue.createCommentVNode("", true)
478
+ ])
479
+ ])) : vue.createCommentVNode("", true),
480
+ !_ctx.isLoading && album.value && albumTracks.value.length ? (vue.openBlock(), vue.createElementBlock("section", _hoisted_43, [
481
+ _cache[17] || (_cache[17] = vue.createElementVNode("h2", { class: "h2 mn-b-medium" }, "Tracklist", -1)),
482
+ vue.createVNode(Feed.default, {
483
+ store: {
484
+ read: () => _ctx.Promise.resolve(albumTracks.value),
485
+ state: { isLoading: false }
486
+ },
487
+ external: true,
488
+ items: albumTracks.value,
489
+ states: {
490
+ empty: {
491
+ title: "No tracks in album",
492
+ description: "This album appears to be empty",
493
+ class: "pd-medium t-center"
494
+ }
495
+ }
496
+ }, {
497
+ default: vue.withCtx(({ items }) => [
498
+ vue.createElementVNode("div", _hoisted_44, [
499
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(items, (track, index) => {
500
+ return vue.openBlock(), vue.createBlock(TrackListCard.default, {
268
501
  key: track._id,
269
502
  track,
503
+ index: index + 1,
270
504
  showAlbum: false,
271
- showCover: false,
272
- class: "w-100 bg-dark-transp-10 radius-medium"
273
- }, null, 8, ["track"]);
505
+ showCover: false
506
+ }, null, 8, ["track", "index"]);
274
507
  }), 128))
275
- ]),
508
+ ])
509
+ ]),
510
+ _: 1
511
+ }, 8, ["store", "items"])
512
+ ])) : vue.createCommentVNode("", true),
513
+ !_ctx.isLoading && album.value && moreAlbums.value.length ? (vue.openBlock(), vue.createElementBlock("section", _hoisted_45, [
514
+ vue.createElementVNode("div", _hoisted_46, [
515
+ _cache[19] || (_cache[19] = vue.createElementVNode("h2", { class: "h2" }, "More Albums", -1)),
516
+ album.value.artists && album.value.artists[0] ? (vue.openBlock(), vue.createBlock(_component_router_link, {
517
+ key: 0,
518
+ to: `/artist/${album.value.artists[0].url}`,
519
+ class: "t-primary hover-opacity"
520
+ }, {
521
+ default: vue.withCtx(() => _cache[18] || (_cache[18] = [
522
+ vue.createTextVNode(" See all ")
523
+ ])),
276
524
  _: 1
277
- }, 8, ["store", "items"])
525
+ }, 8, ["to"])) : vue.createCommentVNode("", true)
278
526
  ]),
279
- album.value.description ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_17, [
280
- _cache[8] || (_cache[8] = vue.createElementVNode("h3", { class: "mn-b-small" }, "About", -1)),
281
- vue.createElementVNode("p", _hoisted_18, vue.toDisplayString(album.value.description), 1)
282
- ])) : vue.createCommentVNode("", true),
283
- moreFromArtist.value.length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_19, [
284
- vue.createElementVNode("div", _hoisted_20, [
285
- vue.createElementVNode("h2", _hoisted_21, "More by " + vue.toDisplayString(getArtistName(album.value)), 1),
286
- album.value.artist && album.value.artist._id ? (vue.openBlock(), vue.createBlock(_component_router_link, {
287
- key: 0,
288
- to: { name: "artist", params: { url: album.value.artist.url } },
289
- class: "t-main t-small hover-opacity"
290
- }, {
291
- default: vue.withCtx(() => _cache[9] || (_cache[9] = [
292
- vue.createTextVNode(" See all ")
293
- ])),
294
- _: 1
295
- }, 8, ["to"])) : vue.createCommentVNode("", true)
296
- ]),
297
- vue.createElementVNode("div", _hoisted_22, [
298
- (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(moreFromArtist.value, (relatedAlbum) => {
299
- return vue.openBlock(), vue.createElementBlock("div", {
300
- key: relatedAlbum._id
301
- }, [
302
- vue.createVNode(AlbumCard.default, { album: relatedAlbum }, null, 8, ["album"])
303
- ]);
304
- }), 128))
305
- ])
306
- ])) : vue.createCommentVNode("", true)
307
- ]))
527
+ vue.createElementVNode("div", _hoisted_47, [
528
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(moreAlbums.value, (relatedAlbum) => {
529
+ return vue.openBlock(), vue.createElementBlock("li", {
530
+ key: album.value._id,
531
+ class: "flex-none scroll-snap-align-start"
532
+ }, [
533
+ vue.createVNode(AlbumCard.default, {
534
+ album: relatedAlbum,
535
+ class: "w-min-15r transition-cubic-in-out"
536
+ }, null, 8, ["album"])
537
+ ]);
538
+ }), 128))
539
+ ])
540
+ ])) : vue.createCommentVNode("", true)
308
541
  ]);
309
542
  };
310
543
  }
311
544
  };
312
- const Album = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-ecbc3f9a"]]);
313
- exports.default = Album;
545
+ exports.default = _sfc_main;
314
546
  //# sourceMappingURL=Album.vue.cjs.map