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