@ozdao/martyrs 0.2.484 → 0.2.486

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (436) hide show
  1. package/dist/{Media-2NvSR0vE.js → Media-CXQSPHt2.js} +1 -1
  2. package/dist/{Media-EYG9WPI4.cjs → Media-DhpD64nT.cjs} +1 -1
  3. package/dist/_virtual/index.cjs +4 -4
  4. package/dist/_virtual/index.js +4 -4
  5. package/dist/_virtual/index2.cjs +4 -4
  6. package/dist/_virtual/index2.js +4 -4
  7. package/dist/auth.server.cjs +2 -23
  8. package/dist/auth.server.js +1 -22
  9. package/dist/globals.crud-BQG1Lm0A.js +90 -0
  10. package/dist/globals.crud-Dv7UXbRM.cjs +89 -0
  11. package/dist/globals.server.cjs +3 -322
  12. package/dist/globals.server.js +1 -303
  13. package/dist/globals.websocket-DzvdIBf6.js +306 -0
  14. package/dist/globals.websocket-k6_B1T7k.cjs +322 -0
  15. package/dist/{main-BT1yoKH2.js → main-Cfh5138F.js} +2102 -1993
  16. package/dist/main-DKJqboZy.cjs +11 -0
  17. package/dist/martyrs/src/components/Button/{Button.vue2.cjs → Button.vue.cjs} +2 -2
  18. package/dist/martyrs/src/components/Button/{Button.vue2.js.map → Button.vue.cjs.map} +1 -1
  19. package/dist/martyrs/src/components/Button/{Button.vue2.js → Button.vue.js} +2 -2
  20. package/dist/martyrs/src/components/Button/Button.vue.js.map +1 -0
  21. package/dist/martyrs/src/components/{DatePicker → Calendar}/Calendar.vue.cjs +1 -1
  22. package/dist/martyrs/src/components/Calendar/Calendar.vue.cjs.map +1 -0
  23. package/dist/martyrs/src/components/{DatePicker → Calendar}/Calendar.vue.js +1 -1
  24. package/dist/martyrs/src/components/Calendar/Calendar.vue.js.map +1 -0
  25. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.cjs → Dropdown.vue.cjs} +2 -2
  26. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.js.map → Dropdown.vue.cjs.map} +1 -1
  27. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.js → Dropdown.vue.js} +2 -2
  28. package/dist/martyrs/src/components/Dropdown/Dropdown.vue.js.map +1 -0
  29. package/dist/martyrs/src/components/Feed/Feed.vue.cjs +2 -2
  30. package/dist/martyrs/src/components/Feed/Feed.vue.cjs.map +1 -1
  31. package/dist/martyrs/src/components/Feed/Feed.vue.js +2 -2
  32. package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
  33. package/dist/martyrs/src/components/Field/Field.vue.cjs +13 -7
  34. package/dist/martyrs/src/components/Field/Field.vue.cjs.map +1 -1
  35. package/dist/martyrs/src/components/Field/Field.vue.js +14 -8
  36. package/dist/martyrs/src/components/Field/Field.vue.js.map +1 -1
  37. package/dist/martyrs/src/components/FieldTags/FieldTags.vue.cjs +1 -1
  38. package/dist/martyrs/src/components/FieldTags/FieldTags.vue.js +1 -1
  39. package/dist/martyrs/src/components/Popup/{Popup.vue2.cjs → Popup.vue.cjs} +2 -2
  40. package/dist/martyrs/src/components/Popup/{Popup.vue2.js.map → Popup.vue.cjs.map} +1 -1
  41. package/dist/martyrs/src/components/Popup/{Popup.vue2.js → Popup.vue.js} +2 -2
  42. package/dist/martyrs/src/components/Popup/Popup.vue.js.map +1 -0
  43. package/dist/martyrs/src/modules/auth/auth.client.cjs +3 -0
  44. package/dist/martyrs/src/modules/auth/auth.client.cjs.map +1 -1
  45. package/dist/martyrs/src/modules/auth/auth.client.js +3 -0
  46. package/dist/martyrs/src/modules/auth/auth.client.js.map +1 -1
  47. package/dist/martyrs/src/modules/auth/locales/en.cjs +79 -0
  48. package/dist/martyrs/src/modules/auth/locales/en.cjs.map +1 -0
  49. package/dist/martyrs/src/modules/auth/locales/en.js +79 -0
  50. package/dist/martyrs/src/modules/auth/locales/en.js.map +1 -0
  51. package/dist/martyrs/src/modules/auth/locales/index.cjs +10 -0
  52. package/dist/martyrs/src/modules/auth/locales/index.cjs.map +1 -0
  53. package/dist/martyrs/src/modules/auth/locales/index.js +10 -0
  54. package/dist/martyrs/src/modules/auth/locales/index.js.map +1 -0
  55. package/dist/martyrs/src/modules/auth/locales/ru.cjs +79 -0
  56. package/dist/martyrs/src/modules/auth/locales/ru.cjs.map +1 -0
  57. package/dist/martyrs/src/modules/auth/locales/ru.js +79 -0
  58. package/dist/martyrs/src/modules/auth/locales/ru.js.map +1 -0
  59. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs +0 -9
  60. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs.map +1 -1
  61. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js +2 -11
  62. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js.map +1 -1
  63. package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.cjs +4 -6
  64. package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.cjs.map +1 -1
  65. package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.js +4 -6
  66. package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.js.map +1 -1
  67. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs +7 -9
  68. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs.map +1 -1
  69. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +7 -9
  70. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js.map +1 -1
  71. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +1 -1
  72. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +1 -1
  73. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +2 -2
  74. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +2 -2
  75. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.cjs +1 -1
  76. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +1 -1
  77. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.cjs +1 -1
  78. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +1 -1
  79. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.cjs +1 -1
  80. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +1 -1
  81. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.cjs +11 -13
  82. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.cjs.map +1 -1
  83. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +11 -13
  84. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js.map +1 -1
  85. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs +12 -14
  86. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs.map +1 -1
  87. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +12 -14
  88. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js.map +1 -1
  89. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs +11 -13
  90. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs.map +1 -1
  91. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +11 -13
  92. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js.map +1 -1
  93. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.cjs +1 -1
  94. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +1 -1
  95. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.cjs +5 -47
  96. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.cjs.map +1 -1
  97. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.js +5 -47
  98. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.js.map +1 -1
  99. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs +2 -2
  100. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +2 -2
  101. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +3 -3
  102. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +3 -3
  103. package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.cjs +1 -1
  104. package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.js +1 -1
  105. package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.cjs +1 -1
  106. package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.js +1 -1
  107. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +2 -2
  108. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs.map +1 -1
  109. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +2 -2
  110. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js.map +1 -1
  111. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs +2 -2
  112. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +2 -2
  113. package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs +1 -1
  114. package/dist/martyrs/src/modules/events/components/pages/Events.vue.js +1 -1
  115. package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.cjs +1 -1
  116. package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.js +1 -1
  117. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +2 -2
  118. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +2 -2
  119. package/dist/martyrs/src/modules/globals/globals.client.cjs +1 -0
  120. package/dist/martyrs/src/modules/globals/globals.client.cjs.map +1 -1
  121. package/dist/martyrs/src/modules/globals/globals.client.js +1 -0
  122. package/dist/martyrs/src/modules/globals/globals.client.js.map +1 -1
  123. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.cjs +1 -1
  124. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.js +1 -1
  125. package/dist/martyrs/src/modules/globals/views/components/blocks/AlertDialog.vue.cjs +1 -1
  126. package/dist/martyrs/src/modules/globals/views/components/blocks/AlertDialog.vue.js +1 -1
  127. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +2 -2
  128. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +2 -2
  129. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupAuth.vue.cjs +2 -2
  130. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupAuth.vue.js +2 -2
  131. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs +3 -3
  132. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs.map +1 -1
  133. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js +3 -3
  134. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js.map +1 -1
  135. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +2 -2
  136. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +2 -2
  137. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs +1 -1
  138. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js +1 -1
  139. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs +1 -1
  140. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js +1 -1
  141. package/dist/martyrs/src/modules/globals/views/components/partials/NavigationBar.vue.cjs +1 -1
  142. package/dist/martyrs/src/modules/globals/views/components/partials/NavigationBar.vue.js +1 -1
  143. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.cjs +1 -1
  144. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.js +1 -1
  145. package/dist/martyrs/src/modules/globals/views/utils/axios-instance.cjs.map +1 -1
  146. package/dist/martyrs/src/modules/globals/views/utils/axios-instance.js.map +1 -1
  147. package/dist/martyrs/src/modules/icons/actions/IconShow.vue.cjs +49 -0
  148. package/dist/martyrs/src/modules/icons/actions/IconShow.vue.cjs.map +1 -0
  149. package/dist/martyrs/src/modules/icons/actions/IconShow.vue.js +49 -0
  150. package/dist/martyrs/src/modules/icons/actions/IconShow.vue.js.map +1 -0
  151. package/dist/martyrs/src/modules/icons/navigation/IconHeart.vue.cjs +34 -0
  152. package/dist/martyrs/src/modules/icons/navigation/IconHeart.vue.cjs.map +1 -0
  153. package/dist/martyrs/src/modules/icons/navigation/IconHeart.vue.js +34 -0
  154. package/dist/martyrs/src/modules/icons/navigation/IconHeart.vue.js.map +1 -0
  155. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.cjs +115 -122
  156. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.cjs.map +1 -1
  157. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js +163 -170
  158. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js.map +1 -1
  159. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.cjs +87 -0
  160. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.cjs.map +1 -0
  161. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +87 -0
  162. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js.map +1 -0
  163. package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.cjs +83 -0
  164. package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.cjs.map +1 -0
  165. package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.js +83 -0
  166. package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.js.map +1 -0
  167. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.cjs +83 -0
  168. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.cjs.map +1 -0
  169. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js +83 -0
  170. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js.map +1 -0
  171. package/dist/martyrs/src/modules/music/components/cards/TrackCard.vue.cjs +68 -0
  172. package/dist/martyrs/src/modules/music/components/cards/TrackCard.vue.cjs.map +1 -0
  173. package/dist/martyrs/src/modules/music/components/cards/TrackCard.vue.js +68 -0
  174. package/dist/martyrs/src/modules/music/components/cards/TrackCard.vue.js.map +1 -0
  175. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.cjs +174 -0
  176. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.cjs.map +1 -0
  177. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +174 -0
  178. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js.map +1 -0
  179. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.cjs +80 -0
  180. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.cjs.map +1 -0
  181. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js +80 -0
  182. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js.map +1 -0
  183. package/dist/martyrs/src/modules/music/components/forms/UploadForm.vue.cjs +328 -0
  184. package/dist/martyrs/src/modules/music/components/forms/UploadForm.vue.cjs.map +1 -0
  185. package/dist/martyrs/src/modules/music/components/forms/UploadForm.vue.js +328 -0
  186. package/dist/martyrs/src/modules/music/components/forms/UploadForm.vue.js.map +1 -0
  187. package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.cjs +115 -0
  188. package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.cjs.map +1 -0
  189. package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.js +115 -0
  190. package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.js.map +1 -0
  191. package/dist/martyrs/src/modules/music/components/lists/AlbumList.vue.cjs +44 -0
  192. package/dist/martyrs/src/modules/music/components/lists/AlbumList.vue.cjs.map +1 -0
  193. package/dist/martyrs/src/modules/music/components/lists/AlbumList.vue.js +44 -0
  194. package/dist/martyrs/src/modules/music/components/lists/AlbumList.vue.js.map +1 -0
  195. package/dist/martyrs/src/modules/music/components/lists/ArtistList.vue.cjs +305 -0
  196. package/dist/martyrs/src/modules/music/components/lists/ArtistList.vue.cjs.map +1 -0
  197. package/dist/martyrs/src/modules/music/components/lists/ArtistList.vue.js +305 -0
  198. package/dist/martyrs/src/modules/music/components/lists/ArtistList.vue.js.map +1 -0
  199. package/dist/martyrs/src/modules/music/components/lists/PlaylistList.vue.cjs +44 -0
  200. package/dist/martyrs/src/modules/music/components/lists/PlaylistList.vue.cjs.map +1 -0
  201. package/dist/martyrs/src/modules/music/components/lists/PlaylistList.vue.js +44 -0
  202. package/dist/martyrs/src/modules/music/components/lists/PlaylistList.vue.js.map +1 -0
  203. package/dist/martyrs/src/modules/music/components/lists/TrackList.vue.cjs +199 -0
  204. package/dist/martyrs/src/modules/music/components/lists/TrackList.vue.cjs.map +1 -0
  205. package/dist/martyrs/src/modules/music/components/lists/TrackList.vue.js +199 -0
  206. package/dist/martyrs/src/modules/music/components/lists/TrackList.vue.js.map +1 -0
  207. package/dist/martyrs/src/modules/music/components/pages/AlbumDetail.vue.cjs +290 -0
  208. package/dist/martyrs/src/modules/music/components/pages/AlbumDetail.vue.cjs.map +1 -0
  209. package/dist/martyrs/src/modules/music/components/pages/AlbumDetail.vue.js +290 -0
  210. package/dist/martyrs/src/modules/music/components/pages/AlbumDetail.vue.js.map +1 -0
  211. package/dist/martyrs/src/modules/music/components/pages/ArtistDetail.vue.cjs +467 -0
  212. package/dist/martyrs/src/modules/music/components/pages/ArtistDetail.vue.cjs.map +1 -0
  213. package/dist/martyrs/src/modules/music/components/pages/ArtistDetail.vue.js +467 -0
  214. package/dist/martyrs/src/modules/music/components/pages/ArtistDetail.vue.js.map +1 -0
  215. package/dist/martyrs/src/modules/music/components/pages/ArtistForm.vue.cjs +382 -0
  216. package/dist/martyrs/src/modules/music/components/pages/ArtistForm.vue.cjs.map +1 -0
  217. package/dist/martyrs/src/modules/music/components/pages/ArtistForm.vue.js +382 -0
  218. package/dist/martyrs/src/modules/music/components/pages/ArtistForm.vue.js.map +1 -0
  219. package/dist/martyrs/src/modules/music/components/pages/ArtistManager.vue.cjs +303 -0
  220. package/dist/martyrs/src/modules/music/components/pages/ArtistManager.vue.cjs.map +1 -0
  221. package/dist/martyrs/src/modules/music/components/pages/ArtistManager.vue.js +303 -0
  222. package/dist/martyrs/src/modules/music/components/pages/ArtistManager.vue.js.map +1 -0
  223. package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.cjs +221 -0
  224. package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.cjs.map +1 -0
  225. package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.js +221 -0
  226. package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.js.map +1 -0
  227. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.cjs +200 -0
  228. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.cjs.map +1 -0
  229. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +200 -0
  230. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js.map +1 -0
  231. package/dist/martyrs/src/modules/music/components/pages/MusicUpload.vue.cjs +50 -0
  232. package/dist/martyrs/src/modules/music/components/pages/MusicUpload.vue.cjs.map +1 -0
  233. package/dist/martyrs/src/modules/music/components/pages/MusicUpload.vue.js +50 -0
  234. package/dist/martyrs/src/modules/music/components/pages/MusicUpload.vue.js.map +1 -0
  235. package/dist/martyrs/src/modules/music/components/pages/PlaylistDetail.vue.cjs +556 -0
  236. package/dist/martyrs/src/modules/music/components/pages/PlaylistDetail.vue.cjs.map +1 -0
  237. package/dist/martyrs/src/modules/music/components/pages/PlaylistDetail.vue.js +556 -0
  238. package/dist/martyrs/src/modules/music/components/pages/PlaylistDetail.vue.js.map +1 -0
  239. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.cjs +449 -0
  240. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.cjs.map +1 -0
  241. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +449 -0
  242. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js.map +1 -0
  243. package/dist/martyrs/src/modules/music/components/pages/TrackDetail.vue.cjs +87 -0
  244. package/dist/martyrs/src/modules/music/components/pages/TrackDetail.vue.cjs.map +1 -0
  245. package/dist/martyrs/src/modules/music/components/pages/TrackDetail.vue.js +87 -0
  246. package/dist/martyrs/src/modules/music/components/pages/TrackDetail.vue.js.map +1 -0
  247. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.cjs +227 -0
  248. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.cjs.map +1 -0
  249. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js +227 -0
  250. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js.map +1 -0
  251. package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.cjs +85 -0
  252. package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.cjs.map +1 -0
  253. package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.js +85 -0
  254. package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.js.map +1 -0
  255. package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.cjs +71 -0
  256. package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.cjs.map +1 -0
  257. package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.js +71 -0
  258. package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.js.map +1 -0
  259. package/dist/martyrs/src/modules/music/music.client.cjs +137 -0
  260. package/dist/martyrs/src/modules/music/music.client.cjs.map +1 -0
  261. package/dist/martyrs/src/modules/music/music.client.js +137 -0
  262. package/dist/martyrs/src/modules/music/music.client.js.map +1 -0
  263. package/dist/martyrs/src/modules/music/router/music.cjs +99 -0
  264. package/dist/martyrs/src/modules/music/router/music.cjs.map +1 -0
  265. package/dist/martyrs/src/modules/music/router/music.js +99 -0
  266. package/dist/martyrs/src/modules/music/router/music.js.map +1 -0
  267. package/dist/martyrs/src/modules/music/store/albums.cjs +167 -0
  268. package/dist/martyrs/src/modules/music/store/albums.cjs.map +1 -0
  269. package/dist/martyrs/src/modules/music/store/albums.js +167 -0
  270. package/dist/martyrs/src/modules/music/store/albums.js.map +1 -0
  271. package/dist/martyrs/src/modules/music/store/artists.cjs +154 -0
  272. package/dist/martyrs/src/modules/music/store/artists.cjs.map +1 -0
  273. package/dist/martyrs/src/modules/music/store/artists.js +154 -0
  274. package/dist/martyrs/src/modules/music/store/artists.js.map +1 -0
  275. package/dist/martyrs/src/modules/music/store/player.cjs +297 -0
  276. package/dist/martyrs/src/modules/music/store/player.cjs.map +1 -0
  277. package/dist/martyrs/src/modules/music/store/player.js +297 -0
  278. package/dist/martyrs/src/modules/music/store/player.js.map +1 -0
  279. package/dist/martyrs/src/modules/music/store/playlists.cjs +174 -0
  280. package/dist/martyrs/src/modules/music/store/playlists.cjs.map +1 -0
  281. package/dist/martyrs/src/modules/music/store/playlists.js +174 -0
  282. package/dist/martyrs/src/modules/music/store/playlists.js.map +1 -0
  283. package/dist/martyrs/src/modules/music/store/search.cjs +109 -0
  284. package/dist/martyrs/src/modules/music/store/search.cjs.map +1 -0
  285. package/dist/martyrs/src/modules/music/store/search.js +109 -0
  286. package/dist/martyrs/src/modules/music/store/search.js.map +1 -0
  287. package/dist/martyrs/src/modules/music/store/tracks.cjs +180 -0
  288. package/dist/martyrs/src/modules/music/store/tracks.cjs.map +1 -0
  289. package/dist/martyrs/src/modules/music/store/tracks.js +180 -0
  290. package/dist/martyrs/src/modules/music/store/tracks.js.map +1 -0
  291. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.cjs +1 -1
  292. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js +1 -1
  293. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +2 -2
  294. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +2 -2
  295. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs +1 -1
  296. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +1 -1
  297. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +2 -2
  298. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +2 -2
  299. package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.cjs +1 -1
  300. package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.js +1 -1
  301. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +2 -2
  302. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +2 -2
  303. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.cjs +1 -1
  304. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +1 -1
  305. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +2 -2
  306. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +2 -2
  307. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +1 -1
  308. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +1 -1
  309. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +2 -2
  310. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +2 -2
  311. package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.cjs +1 -1
  312. package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.js +1 -1
  313. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs +2 -2
  314. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +2 -2
  315. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.cjs +1 -1
  316. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +1 -1
  317. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +1 -1
  318. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +1 -1
  319. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.cjs +1 -1
  320. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -1
  321. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.cjs +1 -1
  322. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -1
  323. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.cjs +2 -2
  324. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +2 -2
  325. package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.cjs +1 -1
  326. package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.js +1 -1
  327. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs +1 -1
  328. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +1 -1
  329. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +3 -3
  330. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +3 -3
  331. package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.cjs +3 -3
  332. package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.js +3 -3
  333. package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.cjs +2 -2
  334. package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.js +2 -2
  335. package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +2 -2
  336. package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs.map +1 -1
  337. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +2 -2
  338. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js.map +1 -1
  339. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +1 -1
  340. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +1 -1
  341. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.cjs +2 -2
  342. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +2 -2
  343. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs +2 -2
  344. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +2 -2
  345. package/dist/martyrs/src/modules/products/components/sections/EditIngredients.vue.cjs +1 -1
  346. package/dist/martyrs/src/modules/products/components/sections/EditIngredients.vue.js +1 -1
  347. package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.cjs +1 -1
  348. package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.js +1 -1
  349. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs +2 -2
  350. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +2 -2
  351. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.cjs +1 -1
  352. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js +1 -1
  353. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.cjs +1 -1
  354. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +1 -1
  355. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.cjs +1 -1
  356. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +1 -1
  357. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.cjs +1 -1
  358. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +1 -1
  359. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs +2 -2
  360. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +2 -2
  361. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs +1 -1
  362. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +1 -1
  363. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.cjs +1 -1
  364. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js +1 -1
  365. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +2 -2
  366. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +2 -2
  367. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.cjs +2 -2
  368. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +2 -2
  369. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.cjs +3 -3
  370. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +3 -3
  371. package/dist/martyrs.cjs.js +1 -1
  372. package/dist/martyrs.css +1 -1
  373. package/dist/martyrs.es.js +38 -36
  374. package/dist/music.server.cjs +1407 -0
  375. package/dist/music.server.js +1407 -0
  376. package/dist/orders.server.cjs +3 -88
  377. package/dist/orders.server.js +2 -87
  378. package/dist/socials.schema-BOZV82Mp.js +25 -0
  379. package/dist/socials.schema-CtpSF9dE.cjs +24 -0
  380. package/dist/style.css +250 -97
  381. package/package.json +1 -1
  382. package/src/.martyrs/filemap.json +2 -2
  383. package/src/components/Feed/Feed.vue +1 -1
  384. package/src/components/Field/Field.vue +42 -27
  385. package/src/components/index.js +2 -0
  386. package/src/main.js +6 -0
  387. package/src/modules/auth/auth.client.js +7 -0
  388. package/src/modules/auth/locales/en.js +76 -0
  389. package/src/modules/auth/locales/index.js +7 -0
  390. package/src/modules/auth/locales/ru.js +76 -0
  391. package/src/modules/auth/views/components/layouts/Auth.vue +2 -44
  392. package/src/modules/auth/views/components/pages/EnterCode.vue +5 -7
  393. package/src/modules/auth/views/components/pages/EnterPassword.vue +7 -10
  394. package/src/modules/auth/views/components/pages/ResetPassword.vue +9 -12
  395. package/src/modules/auth/views/components/pages/SignIn.vue +12 -15
  396. package/src/modules/auth/views/components/pages/SignUp.vue +9 -12
  397. package/src/modules/auth/views/components/sections/SliderFeatures.vue +11 -48
  398. package/src/modules/events/components/pages/EditEvent.vue +1 -1
  399. package/src/modules/globals/globals.client.js +1 -0
  400. package/src/modules/globals/views/components/blocks/PopupDateSelector.vue +1 -1
  401. package/src/modules/globals/views/utils/axios-instance.js +15 -1
  402. package/src/modules/icons/actions/IconShow.vue +23 -0
  403. package/src/modules/icons/pages/IconsPage.vue +114 -120
  404. package/src/modules/products/components/pages/Product.vue +1 -1
  405. package/dist/main-rF15sgss.cjs +0 -11
  406. package/dist/martyrs/src/components/Button/Button.vue2.cjs.map +0 -1
  407. package/dist/martyrs/src/components/DatePicker/Calendar.vue.cjs.map +0 -1
  408. package/dist/martyrs/src/components/DatePicker/Calendar.vue.js.map +0 -1
  409. package/dist/martyrs/src/components/Dropdown/Dropdown.vue2.cjs.map +0 -1
  410. package/dist/martyrs/src/components/Popup/Popup.vue2.cjs.map +0 -1
  411. package/dist/martyrs/src/modules/auth/views/localization/EnterCode.json.cjs +0 -9
  412. package/dist/martyrs/src/modules/auth/views/localization/EnterCode.json.cjs.map +0 -1
  413. package/dist/martyrs/src/modules/auth/views/localization/EnterCode.json.js +0 -9
  414. package/dist/martyrs/src/modules/auth/views/localization/EnterCode.json.js.map +0 -1
  415. package/dist/martyrs/src/modules/auth/views/localization/EnterPassword.json.cjs +0 -9
  416. package/dist/martyrs/src/modules/auth/views/localization/EnterPassword.json.cjs.map +0 -1
  417. package/dist/martyrs/src/modules/auth/views/localization/EnterPassword.json.js +0 -9
  418. package/dist/martyrs/src/modules/auth/views/localization/EnterPassword.json.js.map +0 -1
  419. package/dist/martyrs/src/modules/auth/views/localization/ResetPassword.json.cjs +0 -9
  420. package/dist/martyrs/src/modules/auth/views/localization/ResetPassword.json.cjs.map +0 -1
  421. package/dist/martyrs/src/modules/auth/views/localization/ResetPassword.json.js +0 -9
  422. package/dist/martyrs/src/modules/auth/views/localization/ResetPassword.json.js.map +0 -1
  423. package/dist/martyrs/src/modules/auth/views/localization/SignIn.json.cjs +0 -9
  424. package/dist/martyrs/src/modules/auth/views/localization/SignIn.json.cjs.map +0 -1
  425. package/dist/martyrs/src/modules/auth/views/localization/SignIn.json.js +0 -9
  426. package/dist/martyrs/src/modules/auth/views/localization/SignIn.json.js.map +0 -1
  427. package/dist/martyrs/src/modules/auth/views/localization/SignUp.json.cjs +0 -9
  428. package/dist/martyrs/src/modules/auth/views/localization/SignUp.json.cjs.map +0 -1
  429. package/dist/martyrs/src/modules/auth/views/localization/SignUp.json.js +0 -9
  430. package/dist/martyrs/src/modules/auth/views/localization/SignUp.json.js.map +0 -1
  431. package/src/modules/auth/views/localization/EnterCode.json +0 -16
  432. package/src/modules/auth/views/localization/EnterPassword.json +0 -22
  433. package/src/modules/auth/views/localization/ResetPassword.json +0 -26
  434. package/src/modules/auth/views/localization/SignIn.json +0 -34
  435. package/src/modules/auth/views/localization/SignUp.json +0 -28
  436. /package/src/components/{DatePicker → Calendar}/Calendar.vue +0 -0
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const vue = require("vue");
4
+ const player = require("../../store/player.cjs");
5
+ const _pluginVue_exportHelper = require("../../../../../../_virtual/_plugin-vue_export-helper.cjs");
6
+ const _hoisted_1 = { class: "track-progress flex flex-v-center gap-small" };
7
+ const _hoisted_2 = { class: "current-time t-grey t-small" };
8
+ const _hoisted_3 = { class: "total-time t-grey t-small" };
9
+ const _sfc_main = {
10
+ __name: "TrackProgress",
11
+ setup(__props) {
12
+ const progressBarContainer = vue.ref(null);
13
+ const isSeeking = vue.ref(false);
14
+ const seekPosition = vue.ref(0);
15
+ const currentTime = vue.computed(() => player.state.currentTime);
16
+ const duration = vue.computed(() => player.state.duration);
17
+ const progressPercentage = vue.computed(() => {
18
+ if (!duration.value) return 0;
19
+ return Math.min(100, currentTime.value / duration.value * 100);
20
+ });
21
+ const formatTime = (seconds) => {
22
+ if (!seconds) return "0:00";
23
+ const minutes = Math.floor(seconds / 60);
24
+ const remainingSeconds = Math.floor(seconds % 60);
25
+ return `${minutes}:${remainingSeconds.toString().padStart(2, "0")}`;
26
+ };
27
+ const calculateSeekTime = (event) => {
28
+ if (!progressBarContainer.value || !duration.value) return 0;
29
+ const rect = progressBarContainer.value.getBoundingClientRect();
30
+ const offsetX = event.clientX - rect.left;
31
+ const percentage = Math.max(0, Math.min(1, offsetX / rect.width));
32
+ return percentage * duration.value;
33
+ };
34
+ const seek = (event) => {
35
+ const seekTime = calculateSeekTime(event);
36
+ player.actions.seek(seekTime);
37
+ };
38
+ const startSeek = (event) => {
39
+ isSeeking.value = true;
40
+ seekPosition.value = calculateSeekTime(event);
41
+ };
42
+ const updateSeekPosition = (event) => {
43
+ if (isSeeking.value) {
44
+ seekPosition.value = calculateSeekTime(event);
45
+ }
46
+ };
47
+ const endSeek = () => {
48
+ if (isSeeking.value) {
49
+ isSeeking.value = false;
50
+ player.actions.seek(seekPosition.value);
51
+ }
52
+ };
53
+ vue.onUnmounted(() => {
54
+ isSeeking.value = false;
55
+ });
56
+ return (_ctx, _cache) => {
57
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
58
+ vue.createElementVNode("div", _hoisted_2, vue.toDisplayString(formatTime(currentTime.value)), 1),
59
+ vue.createElementVNode("div", {
60
+ ref_key: "progressBarContainer",
61
+ ref: progressBarContainer,
62
+ class: "progress-bar-container flex-1 h-thin bg-grey radius-extra pos-relative cursor-pointer",
63
+ onClick: seek,
64
+ onMousedown: startSeek,
65
+ onMousemove: updateSeekPosition,
66
+ onMouseup: endSeek,
67
+ onMouseleave: endSeek
68
+ }, [
69
+ vue.createElementVNode("div", {
70
+ class: "progress-bar h-100 bg-white radius-extra",
71
+ style: vue.normalizeStyle({ width: progressPercentage.value + "%" })
72
+ }, null, 4),
73
+ vue.createElementVNode("div", {
74
+ class: "progress-handle w-thin h-thin bg-white radius-round pos-absolute pos-t-50 pos-l-0",
75
+ style: vue.normalizeStyle({ left: `calc(${progressPercentage.value}% - 4px)`, transform: "translateY(-50%)" })
76
+ }, null, 4)
77
+ ], 544),
78
+ vue.createElementVNode("div", _hoisted_3, vue.toDisplayString(formatTime(duration.value)), 1)
79
+ ]);
80
+ };
81
+ }
82
+ };
83
+ const TrackProgress = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-4326ac71"]]);
84
+ exports.default = TrackProgress;
85
+ //# sourceMappingURL=TrackProgress.vue.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TrackProgress.vue.cjs","sources":["../../../../../../../src/modules/music/components/player/TrackProgress.vue"],"sourcesContent":["<!-- components/player/TrackProgress.vue -->\n<template>\n <div class=\"track-progress flex flex-v-center gap-small\">\n <div class=\"current-time t-grey t-small\">{{ formatTime(currentTime) }}</div>\n \n <div \n ref=\"progressBarContainer\"\n class=\"progress-bar-container flex-1 h-thin bg-grey radius-extra pos-relative cursor-pointer\"\n @click=\"seek\"\n @mousedown=\"startSeek\"\n @mousemove=\"updateSeekPosition\"\n @mouseup=\"endSeek\"\n @mouseleave=\"endSeek\"\n >\n <div \n class=\"progress-bar h-100 bg-white radius-extra\" \n :style=\"{ width: progressPercentage + '%' }\"\n ></div>\n <div \n class=\"progress-handle w-thin h-thin bg-white radius-round pos-absolute pos-t-50 pos-l-0\"\n :style=\"{ left: `calc(${progressPercentage}% - 4px)`, transform: 'translateY(-50%)' }\"\n ></div>\n </div>\n \n <div class=\"total-time t-grey t-small\">{{ formatTime(duration) }}</div>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed, onMounted, onUnmounted } from 'vue';\n\n// Import player store\nimport { state as playerState, actions as playerActions } from '../../store/player.js';\n\n// Refs\nconst progressBarContainer = ref(null);\nconst isSeeking = ref(false);\nconst seekPosition = ref(0);\n\n// Computed properties\nconst currentTime = computed(() => playerState.currentTime);\nconst duration = computed(() => playerState.duration);\nconst progressPercentage = computed(() => {\n if (!duration.value) return 0;\n return Math.min(100, (currentTime.value / duration.value) * 100);\n});\n\n// Methods\nconst formatTime = (seconds) => {\n if (!seconds) return '0:00';\n \n const minutes = Math.floor(seconds / 60);\n const remainingSeconds = Math.floor(seconds % 60);\n \n return `${minutes}:${remainingSeconds.toString().padStart(2, '0')}`;\n};\n\nconst calculateSeekTime = (event) => {\n if (!progressBarContainer.value || !duration.value) return 0;\n \n const rect = progressBarContainer.value.getBoundingClientRect();\n const offsetX = event.clientX - rect.left;\n const percentage = Math.max(0, Math.min(1, offsetX / rect.width));\n \n return percentage * duration.value;\n};\n\nconst seek = (event) => {\n const seekTime = calculateSeekTime(event);\n playerActions.seek(seekTime);\n};\n\nconst startSeek = (event) => {\n isSeeking.value = true;\n seekPosition.value = calculateSeekTime(event);\n};\n\nconst updateSeekPosition = (event) => {\n if (isSeeking.value) {\n seekPosition.value = calculateSeekTime(event);\n }\n};\n\nconst endSeek = () => {\n if (isSeeking.value) {\n isSeeking.value = false;\n playerActions.seek(seekPosition.value);\n }\n};\n\n// Clean up event listeners when component is unmounted\nonUnmounted(() => {\n isSeeking.value = false;\n});\n</script>\n\n<style scoped>\n.progress-bar-container:hover .progress-bar {\n background-color: rgb(var(--main));\n}\n\n.progress-handle {\n display: none;\n}\n\n.progress-bar-container:hover .progress-handle {\n display: block;\n transform: translateY(-50%) scale(1.3);\n}\n</style>"],"names":["ref","computed","playerState","playerActions","onUnmounted"],"mappings":";;;;;;;;;;;AAmCA,UAAM,uBAAuBA,IAAG,IAAC,IAAI;AACrC,UAAM,YAAYA,IAAG,IAAC,KAAK;AAC3B,UAAM,eAAeA,IAAG,IAAC,CAAC;AAG1B,UAAM,cAAcC,IAAQ,SAAC,MAAMC,OAAW,MAAC,WAAW;AAC1D,UAAM,WAAWD,IAAQ,SAAC,MAAMC,OAAW,MAAC,QAAQ;AACpD,UAAM,qBAAqBD,IAAQ,SAAC,MAAM;AACxC,UAAI,CAAC,SAAS,MAAO,QAAO;AAC5B,aAAO,KAAK,IAAI,KAAM,YAAY,QAAQ,SAAS,QAAS,GAAG;AAAA,IACjE,CAAC;AAGD,UAAM,aAAa,CAAC,YAAY;AAC9B,UAAI,CAAC,QAAS,QAAO;AAErB,YAAM,UAAU,KAAK,MAAM,UAAU,EAAE;AACvC,YAAM,mBAAmB,KAAK,MAAM,UAAU,EAAE;AAEhD,aAAO,GAAG,OAAO,IAAI,iBAAiB,SAAU,EAAC,SAAS,GAAG,GAAG,CAAC;AAAA,IACnE;AAEA,UAAM,oBAAoB,CAAC,UAAU;AACnC,UAAI,CAAC,qBAAqB,SAAS,CAAC,SAAS,MAAO,QAAO;AAE3D,YAAM,OAAO,qBAAqB,MAAM,sBAAuB;AAC/D,YAAM,UAAU,MAAM,UAAU,KAAK;AACrC,YAAM,aAAa,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,UAAU,KAAK,KAAK,CAAC;AAEhE,aAAO,aAAa,SAAS;AAAA,IAC/B;AAEA,UAAM,OAAO,CAAC,UAAU;AACtB,YAAM,WAAW,kBAAkB,KAAK;AACxCE,aAAa,QAAC,KAAK,QAAQ;AAAA,IAC7B;AAEA,UAAM,YAAY,CAAC,UAAU;AAC3B,gBAAU,QAAQ;AAClB,mBAAa,QAAQ,kBAAkB,KAAK;AAAA,IAC9C;AAEA,UAAM,qBAAqB,CAAC,UAAU;AACpC,UAAI,UAAU,OAAO;AACnB,qBAAa,QAAQ,kBAAkB,KAAK;AAAA,MAChD;AAAA,IACA;AAEA,UAAM,UAAU,MAAM;AACpB,UAAI,UAAU,OAAO;AACnB,kBAAU,QAAQ;AAClBA,uBAAc,KAAK,aAAa,KAAK;AAAA,MACzC;AAAA,IACA;AAGAC,QAAAA,YAAY,MAAM;AAChB,gBAAU,QAAQ;AAAA,IACpB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,85 @@
1
+ import { ref, computed, onUnmounted, createElementBlock, openBlock, createElementVNode, toDisplayString, normalizeStyle } from "vue";
2
+ import { state, actions } from "../../store/player.js";
3
+ import _export_sfc from "../../../../../../_virtual/_plugin-vue_export-helper.js";
4
+ const _hoisted_1 = { class: "track-progress flex flex-v-center gap-small" };
5
+ const _hoisted_2 = { class: "current-time t-grey t-small" };
6
+ const _hoisted_3 = { class: "total-time t-grey t-small" };
7
+ const _sfc_main = {
8
+ __name: "TrackProgress",
9
+ setup(__props) {
10
+ const progressBarContainer = ref(null);
11
+ const isSeeking = ref(false);
12
+ const seekPosition = ref(0);
13
+ const currentTime = computed(() => state.currentTime);
14
+ const duration = computed(() => state.duration);
15
+ const progressPercentage = computed(() => {
16
+ if (!duration.value) return 0;
17
+ return Math.min(100, currentTime.value / duration.value * 100);
18
+ });
19
+ const formatTime = (seconds) => {
20
+ if (!seconds) return "0:00";
21
+ const minutes = Math.floor(seconds / 60);
22
+ const remainingSeconds = Math.floor(seconds % 60);
23
+ return `${minutes}:${remainingSeconds.toString().padStart(2, "0")}`;
24
+ };
25
+ const calculateSeekTime = (event) => {
26
+ if (!progressBarContainer.value || !duration.value) return 0;
27
+ const rect = progressBarContainer.value.getBoundingClientRect();
28
+ const offsetX = event.clientX - rect.left;
29
+ const percentage = Math.max(0, Math.min(1, offsetX / rect.width));
30
+ return percentage * duration.value;
31
+ };
32
+ const seek = (event) => {
33
+ const seekTime = calculateSeekTime(event);
34
+ actions.seek(seekTime);
35
+ };
36
+ const startSeek = (event) => {
37
+ isSeeking.value = true;
38
+ seekPosition.value = calculateSeekTime(event);
39
+ };
40
+ const updateSeekPosition = (event) => {
41
+ if (isSeeking.value) {
42
+ seekPosition.value = calculateSeekTime(event);
43
+ }
44
+ };
45
+ const endSeek = () => {
46
+ if (isSeeking.value) {
47
+ isSeeking.value = false;
48
+ actions.seek(seekPosition.value);
49
+ }
50
+ };
51
+ onUnmounted(() => {
52
+ isSeeking.value = false;
53
+ });
54
+ return (_ctx, _cache) => {
55
+ return openBlock(), createElementBlock("div", _hoisted_1, [
56
+ createElementVNode("div", _hoisted_2, toDisplayString(formatTime(currentTime.value)), 1),
57
+ createElementVNode("div", {
58
+ ref_key: "progressBarContainer",
59
+ ref: progressBarContainer,
60
+ class: "progress-bar-container flex-1 h-thin bg-grey radius-extra pos-relative cursor-pointer",
61
+ onClick: seek,
62
+ onMousedown: startSeek,
63
+ onMousemove: updateSeekPosition,
64
+ onMouseup: endSeek,
65
+ onMouseleave: endSeek
66
+ }, [
67
+ createElementVNode("div", {
68
+ class: "progress-bar h-100 bg-white radius-extra",
69
+ style: normalizeStyle({ width: progressPercentage.value + "%" })
70
+ }, null, 4),
71
+ createElementVNode("div", {
72
+ class: "progress-handle w-thin h-thin bg-white radius-round pos-absolute pos-t-50 pos-l-0",
73
+ style: normalizeStyle({ left: `calc(${progressPercentage.value}% - 4px)`, transform: "translateY(-50%)" })
74
+ }, null, 4)
75
+ ], 544),
76
+ createElementVNode("div", _hoisted_3, toDisplayString(formatTime(duration.value)), 1)
77
+ ]);
78
+ };
79
+ }
80
+ };
81
+ const TrackProgress = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-4326ac71"]]);
82
+ export {
83
+ TrackProgress as default
84
+ };
85
+ //# sourceMappingURL=TrackProgress.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TrackProgress.vue.js","sources":["../../../../../../../src/modules/music/components/player/TrackProgress.vue"],"sourcesContent":["<!-- components/player/TrackProgress.vue -->\n<template>\n <div class=\"track-progress flex flex-v-center gap-small\">\n <div class=\"current-time t-grey t-small\">{{ formatTime(currentTime) }}</div>\n \n <div \n ref=\"progressBarContainer\"\n class=\"progress-bar-container flex-1 h-thin bg-grey radius-extra pos-relative cursor-pointer\"\n @click=\"seek\"\n @mousedown=\"startSeek\"\n @mousemove=\"updateSeekPosition\"\n @mouseup=\"endSeek\"\n @mouseleave=\"endSeek\"\n >\n <div \n class=\"progress-bar h-100 bg-white radius-extra\" \n :style=\"{ width: progressPercentage + '%' }\"\n ></div>\n <div \n class=\"progress-handle w-thin h-thin bg-white radius-round pos-absolute pos-t-50 pos-l-0\"\n :style=\"{ left: `calc(${progressPercentage}% - 4px)`, transform: 'translateY(-50%)' }\"\n ></div>\n </div>\n \n <div class=\"total-time t-grey t-small\">{{ formatTime(duration) }}</div>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed, onMounted, onUnmounted } from 'vue';\n\n// Import player store\nimport { state as playerState, actions as playerActions } from '../../store/player.js';\n\n// Refs\nconst progressBarContainer = ref(null);\nconst isSeeking = ref(false);\nconst seekPosition = ref(0);\n\n// Computed properties\nconst currentTime = computed(() => playerState.currentTime);\nconst duration = computed(() => playerState.duration);\nconst progressPercentage = computed(() => {\n if (!duration.value) return 0;\n return Math.min(100, (currentTime.value / duration.value) * 100);\n});\n\n// Methods\nconst formatTime = (seconds) => {\n if (!seconds) return '0:00';\n \n const minutes = Math.floor(seconds / 60);\n const remainingSeconds = Math.floor(seconds % 60);\n \n return `${minutes}:${remainingSeconds.toString().padStart(2, '0')}`;\n};\n\nconst calculateSeekTime = (event) => {\n if (!progressBarContainer.value || !duration.value) return 0;\n \n const rect = progressBarContainer.value.getBoundingClientRect();\n const offsetX = event.clientX - rect.left;\n const percentage = Math.max(0, Math.min(1, offsetX / rect.width));\n \n return percentage * duration.value;\n};\n\nconst seek = (event) => {\n const seekTime = calculateSeekTime(event);\n playerActions.seek(seekTime);\n};\n\nconst startSeek = (event) => {\n isSeeking.value = true;\n seekPosition.value = calculateSeekTime(event);\n};\n\nconst updateSeekPosition = (event) => {\n if (isSeeking.value) {\n seekPosition.value = calculateSeekTime(event);\n }\n};\n\nconst endSeek = () => {\n if (isSeeking.value) {\n isSeeking.value = false;\n playerActions.seek(seekPosition.value);\n }\n};\n\n// Clean up event listeners when component is unmounted\nonUnmounted(() => {\n isSeeking.value = false;\n});\n</script>\n\n<style scoped>\n.progress-bar-container:hover .progress-bar {\n background-color: rgb(var(--main));\n}\n\n.progress-handle {\n display: none;\n}\n\n.progress-bar-container:hover .progress-handle {\n display: block;\n transform: translateY(-50%) scale(1.3);\n}\n</style>"],"names":["playerState","playerActions"],"mappings":";;;;;;;;;AAmCA,UAAM,uBAAuB,IAAI,IAAI;AACrC,UAAM,YAAY,IAAI,KAAK;AAC3B,UAAM,eAAe,IAAI,CAAC;AAG1B,UAAM,cAAc,SAAS,MAAMA,MAAY,WAAW;AAC1D,UAAM,WAAW,SAAS,MAAMA,MAAY,QAAQ;AACpD,UAAM,qBAAqB,SAAS,MAAM;AACxC,UAAI,CAAC,SAAS,MAAO,QAAO;AAC5B,aAAO,KAAK,IAAI,KAAM,YAAY,QAAQ,SAAS,QAAS,GAAG;AAAA,IACjE,CAAC;AAGD,UAAM,aAAa,CAAC,YAAY;AAC9B,UAAI,CAAC,QAAS,QAAO;AAErB,YAAM,UAAU,KAAK,MAAM,UAAU,EAAE;AACvC,YAAM,mBAAmB,KAAK,MAAM,UAAU,EAAE;AAEhD,aAAO,GAAG,OAAO,IAAI,iBAAiB,SAAU,EAAC,SAAS,GAAG,GAAG,CAAC;AAAA,IACnE;AAEA,UAAM,oBAAoB,CAAC,UAAU;AACnC,UAAI,CAAC,qBAAqB,SAAS,CAAC,SAAS,MAAO,QAAO;AAE3D,YAAM,OAAO,qBAAqB,MAAM,sBAAuB;AAC/D,YAAM,UAAU,MAAM,UAAU,KAAK;AACrC,YAAM,aAAa,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,UAAU,KAAK,KAAK,CAAC;AAEhE,aAAO,aAAa,SAAS;AAAA,IAC/B;AAEA,UAAM,OAAO,CAAC,UAAU;AACtB,YAAM,WAAW,kBAAkB,KAAK;AACxCC,cAAc,KAAK,QAAQ;AAAA,IAC7B;AAEA,UAAM,YAAY,CAAC,UAAU;AAC3B,gBAAU,QAAQ;AAClB,mBAAa,QAAQ,kBAAkB,KAAK;AAAA,IAC9C;AAEA,UAAM,qBAAqB,CAAC,UAAU;AACpC,UAAI,UAAU,OAAO;AACnB,qBAAa,QAAQ,kBAAkB,KAAK;AAAA,MAChD;AAAA,IACA;AAEA,UAAM,UAAU,MAAM;AACpB,UAAI,UAAU,OAAO;AACnB,kBAAU,QAAQ;AAClBA,gBAAc,KAAK,aAAa,KAAK;AAAA,MACzC;AAAA,IACA;AAGA,gBAAY,MAAM;AAChB,gBAAU,QAAQ;AAAA,IACpB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const vue = require("vue");
4
+ const player = require("../../store/player.cjs");
5
+ const _pluginVue_exportHelper = require("../../../../../../_virtual/_plugin-vue_export-helper.cjs");
6
+ const _sfc_main = {
7
+ __name: "VolumeControl",
8
+ setup(__props) {
9
+ const volumeBarContainer = vue.ref(null);
10
+ const isChangingVolume = vue.ref(false);
11
+ const volume = vue.computed(() => player.state.volume);
12
+ const muted = vue.computed(() => player.state.muted);
13
+ const volumePercentage = vue.computed(() => {
14
+ if (muted.value) return 0;
15
+ return volume.value * 100;
16
+ });
17
+ const calculateVolume = (event) => {
18
+ if (!volumeBarContainer.value) return 0;
19
+ const rect = volumeBarContainer.value.getBoundingClientRect();
20
+ const offsetX = event.clientX - rect.left;
21
+ return Math.max(0, Math.min(1, offsetX / rect.width));
22
+ };
23
+ const setVolume = (event) => {
24
+ const newVolume = calculateVolume(event);
25
+ player.actions.setVolume(newVolume);
26
+ if (muted.value && newVolume > 0) {
27
+ player.actions.toggleMute();
28
+ }
29
+ };
30
+ const startVolumeChange = (event) => {
31
+ isChangingVolume.value = true;
32
+ setVolume(event);
33
+ };
34
+ const updateVolumePosition = (event) => {
35
+ if (isChangingVolume.value) {
36
+ setVolume(event);
37
+ }
38
+ };
39
+ const endVolumeChange = () => {
40
+ isChangingVolume.value = false;
41
+ };
42
+ return (_ctx, _cache) => {
43
+ return vue.openBlock(), vue.createElementBlock("div", {
44
+ ref_key: "volumeBarContainer",
45
+ ref: volumeBarContainer,
46
+ class: "volume-bar-container w-100 h-thin bg-grey-transp-50 radius-extra pos-relative cursor-pointer",
47
+ onClick: setVolume,
48
+ onMousedown: startVolumeChange,
49
+ onMousemove: updateVolumePosition,
50
+ onMouseup: endVolumeChange,
51
+ onMouseleave: endVolumeChange
52
+ }, [
53
+ vue.createElementVNode("div", {
54
+ class: vue.normalizeClass(["volume-bar h-100 bg-white radius-extra", { "muted": muted.value }]),
55
+ style: vue.normalizeStyle({ width: volumePercentage.value + "%" })
56
+ }, null, 6),
57
+ vue.createElementVNode("div", {
58
+ class: "volume-handle w-thin h-thin bg-white radius-round pos-absolute pos-t-50 pos-l-0",
59
+ style: vue.normalizeStyle({
60
+ left: `calc(${volumePercentage.value}% - 4px)`,
61
+ transform: "translateY(-50%)",
62
+ opacity: muted.value ? 0 : 1
63
+ })
64
+ }, null, 4)
65
+ ], 544);
66
+ };
67
+ }
68
+ };
69
+ const VolumeControl = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-08586594"]]);
70
+ exports.default = VolumeControl;
71
+ //# sourceMappingURL=VolumeControl.vue.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VolumeControl.vue.cjs","sources":["../../../../../../../src/modules/music/components/player/VolumeControl.vue"],"sourcesContent":["<!-- components/player/VolumeControl.vue -->\n<template>\n <div \n ref=\"volumeBarContainer\"\n class=\"volume-bar-container w-100 h-thin bg-grey-transp-50 radius-extra pos-relative cursor-pointer\"\n @click=\"setVolume\"\n @mousedown=\"startVolumeChange\"\n @mousemove=\"updateVolumePosition\"\n @mouseup=\"endVolumeChange\"\n @mouseleave=\"endVolumeChange\"\n >\n <div \n class=\"volume-bar h-100 bg-white radius-extra\" \n :style=\"{ width: volumePercentage + '%' }\"\n :class=\"{ 'muted': muted }\"\n ></div>\n <div \n class=\"volume-handle w-thin h-thin bg-white radius-round pos-absolute pos-t-50 pos-l-0\"\n :style=\"{ \n left: `calc(${volumePercentage}% - 4px)`, \n transform: 'translateY(-50%)',\n opacity: muted ? 0 : 1\n }\"\n ></div>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed } from 'vue';\n\n// Import player store\nimport { state as playerState, actions as playerActions } from '../../store/player.js';\n\n// Refs\nconst volumeBarContainer = ref(null);\nconst isChangingVolume = ref(false);\n\n// Computed properties\nconst volume = computed(() => playerState.volume);\nconst muted = computed(() => playerState.muted);\nconst volumePercentage = computed(() => {\n if (muted.value) return 0;\n return volume.value * 100;\n});\n\n// Methods\nconst calculateVolume = (event) => {\n if (!volumeBarContainer.value) return 0;\n \n const rect = volumeBarContainer.value.getBoundingClientRect();\n const offsetX = event.clientX - rect.left;\n \n return Math.max(0, Math.min(1, offsetX / rect.width));\n};\n\nconst setVolume = (event) => {\n const newVolume = calculateVolume(event);\n playerActions.setVolume(newVolume);\n \n // Unmute if was muted\n if (muted.value && newVolume > 0) {\n playerActions.toggleMute();\n }\n};\n\nconst startVolumeChange = (event) => {\n isChangingVolume.value = true;\n setVolume(event);\n};\n\nconst updateVolumePosition = (event) => {\n if (isChangingVolume.value) {\n setVolume(event);\n }\n};\n\nconst endVolumeChange = () => {\n isChangingVolume.value = false;\n};\n</script>\n\n<style scoped>\n.volume-bar-container:hover .volume-bar:not(.muted) {\n background-color: rgb(var(--main));\n}\n\n.volume-handle {\n display: none;\n}\n\n.volume-bar-container:hover .volume-handle {\n display: block;\n}\n\n.muted {\n opacity: 0.5;\n}\n</style>"],"names":["ref","computed","playerState","playerActions"],"mappings":";;;;;;;;AAkCA,UAAM,qBAAqBA,IAAG,IAAC,IAAI;AACnC,UAAM,mBAAmBA,IAAG,IAAC,KAAK;AAGlC,UAAM,SAASC,IAAQ,SAAC,MAAMC,OAAW,MAAC,MAAM;AAChD,UAAM,QAAQD,IAAQ,SAAC,MAAMC,OAAW,MAAC,KAAK;AAC9C,UAAM,mBAAmBD,IAAQ,SAAC,MAAM;AACtC,UAAI,MAAM,MAAO,QAAO;AACxB,aAAO,OAAO,QAAQ;AAAA,IACxB,CAAC;AAGD,UAAM,kBAAkB,CAAC,UAAU;AACjC,UAAI,CAAC,mBAAmB,MAAO,QAAO;AAEtC,YAAM,OAAO,mBAAmB,MAAM,sBAAuB;AAC7D,YAAM,UAAU,MAAM,UAAU,KAAK;AAErC,aAAO,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,UAAU,KAAK,KAAK,CAAC;AAAA,IACtD;AAEA,UAAM,YAAY,CAAC,UAAU;AAC3B,YAAM,YAAY,gBAAgB,KAAK;AACvCE,aAAa,QAAC,UAAU,SAAS;AAGjC,UAAI,MAAM,SAAS,YAAY,GAAG;AAChCA,eAAAA,QAAc,WAAY;AAAA,MAC9B;AAAA,IACA;AAEA,UAAM,oBAAoB,CAAC,UAAU;AACnC,uBAAiB,QAAQ;AACzB,gBAAU,KAAK;AAAA,IACjB;AAEA,UAAM,uBAAuB,CAAC,UAAU;AACtC,UAAI,iBAAiB,OAAO;AAC1B,kBAAU,KAAK;AAAA,MACnB;AAAA,IACA;AAEA,UAAM,kBAAkB,MAAM;AAC5B,uBAAiB,QAAQ;AAAA,IAC3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,71 @@
1
+ import { ref, computed, createElementBlock, openBlock, createElementVNode, normalizeStyle, normalizeClass } from "vue";
2
+ import { state, actions } from "../../store/player.js";
3
+ import _export_sfc from "../../../../../../_virtual/_plugin-vue_export-helper.js";
4
+ const _sfc_main = {
5
+ __name: "VolumeControl",
6
+ setup(__props) {
7
+ const volumeBarContainer = ref(null);
8
+ const isChangingVolume = ref(false);
9
+ const volume = computed(() => state.volume);
10
+ const muted = computed(() => state.muted);
11
+ const volumePercentage = computed(() => {
12
+ if (muted.value) return 0;
13
+ return volume.value * 100;
14
+ });
15
+ const calculateVolume = (event) => {
16
+ if (!volumeBarContainer.value) return 0;
17
+ const rect = volumeBarContainer.value.getBoundingClientRect();
18
+ const offsetX = event.clientX - rect.left;
19
+ return Math.max(0, Math.min(1, offsetX / rect.width));
20
+ };
21
+ const setVolume = (event) => {
22
+ const newVolume = calculateVolume(event);
23
+ actions.setVolume(newVolume);
24
+ if (muted.value && newVolume > 0) {
25
+ actions.toggleMute();
26
+ }
27
+ };
28
+ const startVolumeChange = (event) => {
29
+ isChangingVolume.value = true;
30
+ setVolume(event);
31
+ };
32
+ const updateVolumePosition = (event) => {
33
+ if (isChangingVolume.value) {
34
+ setVolume(event);
35
+ }
36
+ };
37
+ const endVolumeChange = () => {
38
+ isChangingVolume.value = false;
39
+ };
40
+ return (_ctx, _cache) => {
41
+ return openBlock(), createElementBlock("div", {
42
+ ref_key: "volumeBarContainer",
43
+ ref: volumeBarContainer,
44
+ class: "volume-bar-container w-100 h-thin bg-grey-transp-50 radius-extra pos-relative cursor-pointer",
45
+ onClick: setVolume,
46
+ onMousedown: startVolumeChange,
47
+ onMousemove: updateVolumePosition,
48
+ onMouseup: endVolumeChange,
49
+ onMouseleave: endVolumeChange
50
+ }, [
51
+ createElementVNode("div", {
52
+ class: normalizeClass(["volume-bar h-100 bg-white radius-extra", { "muted": muted.value }]),
53
+ style: normalizeStyle({ width: volumePercentage.value + "%" })
54
+ }, null, 6),
55
+ createElementVNode("div", {
56
+ class: "volume-handle w-thin h-thin bg-white radius-round pos-absolute pos-t-50 pos-l-0",
57
+ style: normalizeStyle({
58
+ left: `calc(${volumePercentage.value}% - 4px)`,
59
+ transform: "translateY(-50%)",
60
+ opacity: muted.value ? 0 : 1
61
+ })
62
+ }, null, 4)
63
+ ], 544);
64
+ };
65
+ }
66
+ };
67
+ const VolumeControl = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-08586594"]]);
68
+ export {
69
+ VolumeControl as default
70
+ };
71
+ //# sourceMappingURL=VolumeControl.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VolumeControl.vue.js","sources":["../../../../../../../src/modules/music/components/player/VolumeControl.vue"],"sourcesContent":["<!-- components/player/VolumeControl.vue -->\n<template>\n <div \n ref=\"volumeBarContainer\"\n class=\"volume-bar-container w-100 h-thin bg-grey-transp-50 radius-extra pos-relative cursor-pointer\"\n @click=\"setVolume\"\n @mousedown=\"startVolumeChange\"\n @mousemove=\"updateVolumePosition\"\n @mouseup=\"endVolumeChange\"\n @mouseleave=\"endVolumeChange\"\n >\n <div \n class=\"volume-bar h-100 bg-white radius-extra\" \n :style=\"{ width: volumePercentage + '%' }\"\n :class=\"{ 'muted': muted }\"\n ></div>\n <div \n class=\"volume-handle w-thin h-thin bg-white radius-round pos-absolute pos-t-50 pos-l-0\"\n :style=\"{ \n left: `calc(${volumePercentage}% - 4px)`, \n transform: 'translateY(-50%)',\n opacity: muted ? 0 : 1\n }\"\n ></div>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed } from 'vue';\n\n// Import player store\nimport { state as playerState, actions as playerActions } from '../../store/player.js';\n\n// Refs\nconst volumeBarContainer = ref(null);\nconst isChangingVolume = ref(false);\n\n// Computed properties\nconst volume = computed(() => playerState.volume);\nconst muted = computed(() => playerState.muted);\nconst volumePercentage = computed(() => {\n if (muted.value) return 0;\n return volume.value * 100;\n});\n\n// Methods\nconst calculateVolume = (event) => {\n if (!volumeBarContainer.value) return 0;\n \n const rect = volumeBarContainer.value.getBoundingClientRect();\n const offsetX = event.clientX - rect.left;\n \n return Math.max(0, Math.min(1, offsetX / rect.width));\n};\n\nconst setVolume = (event) => {\n const newVolume = calculateVolume(event);\n playerActions.setVolume(newVolume);\n \n // Unmute if was muted\n if (muted.value && newVolume > 0) {\n playerActions.toggleMute();\n }\n};\n\nconst startVolumeChange = (event) => {\n isChangingVolume.value = true;\n setVolume(event);\n};\n\nconst updateVolumePosition = (event) => {\n if (isChangingVolume.value) {\n setVolume(event);\n }\n};\n\nconst endVolumeChange = () => {\n isChangingVolume.value = false;\n};\n</script>\n\n<style scoped>\n.volume-bar-container:hover .volume-bar:not(.muted) {\n background-color: rgb(var(--main));\n}\n\n.volume-handle {\n display: none;\n}\n\n.volume-bar-container:hover .volume-handle {\n display: block;\n}\n\n.muted {\n opacity: 0.5;\n}\n</style>"],"names":["playerState","playerActions"],"mappings":";;;;;;AAkCA,UAAM,qBAAqB,IAAI,IAAI;AACnC,UAAM,mBAAmB,IAAI,KAAK;AAGlC,UAAM,SAAS,SAAS,MAAMA,MAAY,MAAM;AAChD,UAAM,QAAQ,SAAS,MAAMA,MAAY,KAAK;AAC9C,UAAM,mBAAmB,SAAS,MAAM;AACtC,UAAI,MAAM,MAAO,QAAO;AACxB,aAAO,OAAO,QAAQ;AAAA,IACxB,CAAC;AAGD,UAAM,kBAAkB,CAAC,UAAU;AACjC,UAAI,CAAC,mBAAmB,MAAO,QAAO;AAEtC,YAAM,OAAO,mBAAmB,MAAM,sBAAuB;AAC7D,YAAM,UAAU,MAAM,UAAU,KAAK;AAErC,aAAO,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,UAAU,KAAK,KAAK,CAAC;AAAA,IACtD;AAEA,UAAM,YAAY,CAAC,UAAU;AAC3B,YAAM,YAAY,gBAAgB,KAAK;AACvCC,cAAc,UAAU,SAAS;AAGjC,UAAI,MAAM,SAAS,YAAY,GAAG;AAChCA,gBAAc,WAAY;AAAA,MAC9B;AAAA,IACA;AAEA,UAAM,oBAAoB,CAAC,UAAU;AACnC,uBAAiB,QAAQ;AACzB,gBAAU,KAAK;AAAA,IACjB;AAEA,UAAM,uBAAuB,CAAC,UAAU;AACtC,UAAI,iBAAiB,OAAO;AAC1B,kBAAU,KAAK;AAAA,MACnB;AAAA,IACA;AAEA,UAAM,kBAAkB,MAAM;AAC5B,uBAAiB,QAAQ;AAAA,IAC3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const albums = require("./store/albums.cjs");
4
+ const artists = require("./store/artists.cjs");
5
+ const player = require("./store/player.cjs");
6
+ const playlists = require("./store/playlists.cjs");
7
+ const search = require("./store/search.cjs");
8
+ const tracks = require("./store/tracks.cjs");
9
+ const music = require("./router/music.cjs");
10
+ const MusicLayout = require("./components/layouts/MusicLayout.vue.cjs");
11
+ const AlbumDetail = require("./components/pages/AlbumDetail.vue.cjs");
12
+ const ArtistDetail = require("./components/pages/ArtistDetail.vue.cjs");
13
+ const MusicHome = require("./components/pages/MusicHome.vue.cjs");
14
+ const MusicLibrary = require("./components/pages/MusicLibrary.vue.cjs");
15
+ const MusicUpload = require("./components/pages/MusicUpload.vue.cjs");
16
+ const PlaylistDetail = require("./components/pages/PlaylistDetail.vue.cjs");
17
+ const SearchResults = require("./components/pages/SearchResults.vue.cjs");
18
+ const TrackDetail = require("./components/pages/TrackDetail.vue.cjs");
19
+ const MusicPlayer = require("./components/player/MusicPlayer.vue.cjs");
20
+ const TrackProgress = require("./components/player/TrackProgress.vue.cjs");
21
+ const VolumeControl = require("./components/player/VolumeControl.vue.cjs");
22
+ const AlbumCard = require("./components/cards/AlbumCard.vue.cjs");
23
+ const ArtistCard = require("./components/cards/ArtistCard.vue.cjs");
24
+ const PlaylistCard = require("./components/cards/PlaylistCard.vue.cjs");
25
+ const TrackCard = require("./components/cards/TrackCard.vue.cjs");
26
+ const AlbumList = require("./components/lists/AlbumList.vue.cjs");
27
+ const ArtistList = require("./components/lists/ArtistList.vue.cjs");
28
+ const PlaylistList = require("./components/lists/PlaylistList.vue.cjs");
29
+ const TrackList = require("./components/lists/TrackList.vue.cjs");
30
+ const PlaylistForm = require("./components/forms/PlaylistForm.vue.cjs");
31
+ const SearchForm = require("./components/forms/SearchForm.vue.cjs");
32
+ const UploadForm = require("./components/forms/UploadForm.vue.cjs");
33
+ const globals_websocket = require("../globals/views/classes/globals.websocket.cjs");
34
+ function initializeMusic(app, store, router, config, options = {}) {
35
+ const route = options.route || "Home";
36
+ router.addRoute(route, music.default);
37
+ store.addStore("tracks", tracks);
38
+ store.addStore("playlists", playlists);
39
+ store.addStore("albums", albums);
40
+ store.addStore("artists", artists);
41
+ store.addStore("player", player);
42
+ store.addStore("search", search);
43
+ if (options.enableStreaming !== false && app.config.globalProperties.WSS_URL) {
44
+ globals_websocket.default.initialize({
45
+ wsUrl: app.config.globalProperties.WSS_URL,
46
+ maxReconnectAttempts: 10,
47
+ reconnectDelay: 2e3
48
+ });
49
+ if (options.userId) {
50
+ globals_websocket.default.connect(options.userId).then(() => {
51
+ globals_websocket.default.subscribeModule("music-streaming");
52
+ }).catch((err) => {
53
+ console.error("Failed to connect to WebSocket for music streaming:", err);
54
+ });
55
+ }
56
+ }
57
+ app.component("MusicPlayer", MusicPlayer.default);
58
+ }
59
+ const ModuleMusic = {
60
+ initialize: initializeMusic,
61
+ views: {
62
+ store: {
63
+ storeTracks: tracks,
64
+ storePlaylists: playlists,
65
+ storeAlbums: albums,
66
+ storeArtists: artists,
67
+ storePlayer: player,
68
+ storeSearch: search
69
+ },
70
+ router: {
71
+ routerMusic: music.default
72
+ },
73
+ components: {
74
+ // Layouts
75
+ MusicLayout: MusicLayout.default,
76
+ // Pages
77
+ MusicHome: MusicHome.default,
78
+ SearchResults: SearchResults.default,
79
+ ArtistDetail: ArtistDetail.default,
80
+ AlbumDetail: AlbumDetail.default,
81
+ PlaylistDetail: PlaylistDetail.default,
82
+ TrackDetail: TrackDetail.default,
83
+ MusicLibrary: MusicLibrary.default,
84
+ MusicUpload: MusicUpload.default,
85
+ // Player Components
86
+ MusicPlayer: MusicPlayer.default,
87
+ TrackProgress: TrackProgress.default,
88
+ VolumeControl: VolumeControl.default,
89
+ // Cards
90
+ TrackCard: TrackCard.default,
91
+ AlbumCard: AlbumCard.default,
92
+ PlaylistCard: PlaylistCard.default,
93
+ ArtistCard: ArtistCard.default,
94
+ // Lists
95
+ TrackList: TrackList.default,
96
+ AlbumList: AlbumList.default,
97
+ PlaylistList: PlaylistList.default,
98
+ ArtistList: ArtistList.default,
99
+ // Forms
100
+ PlaylistForm: PlaylistForm.default,
101
+ SearchForm: SearchForm.default,
102
+ UploadForm: UploadForm.default
103
+ }
104
+ }
105
+ };
106
+ exports.storeAlbums = albums;
107
+ exports.storeArtists = artists;
108
+ exports.storePlayer = player;
109
+ exports.storePlaylists = playlists;
110
+ exports.storeSearch = search;
111
+ exports.storeTracks = tracks;
112
+ exports.routerMusic = music.default;
113
+ exports.MusicLayout = MusicLayout.default;
114
+ exports.AlbumDetail = AlbumDetail.default;
115
+ exports.ArtistDetail = ArtistDetail.default;
116
+ exports.MusicHome = MusicHome.default;
117
+ exports.MusicLibrary = MusicLibrary.default;
118
+ exports.MusicUpload = MusicUpload.default;
119
+ exports.PlaylistDetail = PlaylistDetail.default;
120
+ exports.SearchResults = SearchResults.default;
121
+ exports.TrackDetail = TrackDetail.default;
122
+ exports.MusicPlayer = MusicPlayer.default;
123
+ exports.TrackProgress = TrackProgress.default;
124
+ exports.VolumeControl = VolumeControl.default;
125
+ exports.AlbumCard = AlbumCard.default;
126
+ exports.ArtistCard = ArtistCard.default;
127
+ exports.PlaylistCard = PlaylistCard.default;
128
+ exports.TrackCard = TrackCard.default;
129
+ exports.AlbumList = AlbumList.default;
130
+ exports.ArtistList = ArtistList.default;
131
+ exports.PlaylistList = PlaylistList.default;
132
+ exports.TrackList = TrackList.default;
133
+ exports.PlaylistForm = PlaylistForm.default;
134
+ exports.SearchForm = SearchForm.default;
135
+ exports.UploadForm = UploadForm.default;
136
+ exports.default = ModuleMusic;
137
+ //# sourceMappingURL=music.client.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"music.client.cjs","sources":["../../../../../src/modules/music/music.client.js"],"sourcesContent":["// Store modules\nimport * as storeAlbums from './store/albums.js';\nimport * as storeArtists from './store/artists.js';\nimport * as storePlayer from './store/player.js';\nimport * as storePlaylists from './store/playlists.js';\nimport * as storeSearch from './store/search.js';\nimport * as storeTracks from './store/tracks.js';\n\n// Router\nimport routerMusic from './router/music.js';\n\n// Layouts\nimport MusicLayout from './components/layouts/MusicLayout.vue';\n\n// Pages\nimport AlbumDetail from './components/pages/AlbumDetail.vue';\nimport ArtistDetail from './components/pages/ArtistDetail.vue';\nimport MusicHome from './components/pages/MusicHome.vue';\nimport MusicLibrary from './components/pages/MusicLibrary.vue';\nimport MusicUpload from './components/pages/MusicUpload.vue';\nimport PlaylistDetail from './components/pages/PlaylistDetail.vue';\nimport SearchResults from './components/pages/SearchResults.vue';\nimport TrackDetail from './components/pages/TrackDetail.vue';\n\n// Components - Player\nimport MusicPlayer from './components/player/MusicPlayer.vue';\nimport TrackProgress from './components/player/TrackProgress.vue';\nimport VolumeControl from './components/player/VolumeControl.vue';\n\n// Components - Cards\nimport AlbumCard from './components/cards/AlbumCard.vue';\nimport ArtistCard from './components/cards/ArtistCard.vue';\nimport PlaylistCard from './components/cards/PlaylistCard.vue';\nimport TrackCard from './components/cards/TrackCard.vue';\n\n// Components - Lists\nimport AlbumList from './components/lists/AlbumList.vue';\nimport ArtistList from './components/lists/ArtistList.vue';\nimport PlaylistList from './components/lists/PlaylistList.vue';\nimport TrackList from './components/lists/TrackList.vue';\n\n// Components - Forms\nimport PlaylistForm from './components/forms/PlaylistForm.vue';\nimport SearchForm from './components/forms/SearchForm.vue';\nimport UploadForm from './components/forms/UploadForm.vue';\n\n// WebSocket integration for streaming\nimport globalWebSocket from '@martyrs/src/modules/globals/views/classes/globals.websocket.js';\n\n/**\n * Initialize Music module on client-side\n * @param {Object} app - Vue app instance\n * @param {Object} store - Global store instance\n * @param {Object} router - Vue router instance\n * @param {Object} config - Configuration options\n * @param {Object} options - Additional options\n */\nfunction initializeMusic(app, store, router, config, options = {}) {\n const route = options.route || 'Home';\n\n // Register routes\n router.addRoute(route, routerMusic);\n\n // Register store modules\n store.addStore('tracks', storeTracks);\n store.addStore('playlists', storePlaylists);\n store.addStore('albums', storeAlbums);\n store.addStore('artists', storeArtists);\n store.addStore('player', storePlayer);\n store.addStore('search', storeSearch);\n\n // Set up WebSocket subscription for music streaming\n if (options.enableStreaming !== false && app.config.globalProperties.WSS_URL) {\n globalWebSocket.initialize({\n wsUrl: app.config.globalProperties.WSS_URL,\n maxReconnectAttempts: 10,\n reconnectDelay: 2000,\n });\n\n // Subscribe to music streaming module when authenticated\n if (options.userId) {\n globalWebSocket\n .connect(options.userId)\n .then(() => {\n globalWebSocket.subscribeModule('music-streaming');\n })\n .catch(err => {\n console.error('Failed to connect to WebSocket for music streaming:', err);\n });\n }\n }\n\n // Register global components if needed\n app.component('MusicPlayer', MusicPlayer);\n}\n\n// Module export\nconst ModuleMusic = {\n initialize: initializeMusic,\n views: {\n store: {\n storeTracks,\n storePlaylists,\n storeAlbums,\n storeArtists,\n storePlayer,\n storeSearch,\n },\n router: {\n routerMusic,\n },\n components: {\n // Layouts\n MusicLayout,\n // Pages\n MusicHome,\n SearchResults,\n ArtistDetail,\n AlbumDetail,\n PlaylistDetail,\n TrackDetail,\n MusicLibrary,\n MusicUpload,\n // Player Components\n MusicPlayer,\n TrackProgress,\n VolumeControl,\n // Cards\n TrackCard,\n AlbumCard,\n PlaylistCard,\n ArtistCard,\n // Lists\n TrackList,\n AlbumList,\n PlaylistList,\n ArtistList,\n // Forms\n PlaylistForm,\n SearchForm,\n UploadForm,\n },\n },\n};\n\n// Named exports for direct component imports\nexport {\n AlbumCard,\n AlbumDetail,\n AlbumList,\n ArtistCard,\n ArtistDetail,\n ArtistList,\n // Pages\n MusicHome,\n // Layout\n MusicLayout,\n MusicLibrary,\n // Player Components\n MusicPlayer,\n MusicUpload,\n PlaylistCard,\n PlaylistDetail,\n // Forms\n PlaylistForm,\n PlaylistList,\n SearchForm,\n SearchResults,\n // Cards\n TrackCard,\n TrackDetail,\n // Lists\n TrackList,\n TrackProgress,\n UploadForm,\n VolumeControl,\n // Router\n routerMusic,\n storeAlbums,\n storeArtists,\n storePlayer,\n storePlaylists,\n storeSearch,\n // Store modules\n storeTracks,\n};\n\n// Default export\nexport default ModuleMusic;\n"],"names":["routerMusic","storeTracks","storePlaylists","storeAlbums","storeArtists","storePlayer","storeSearch","globalWebSocket","MusicPlayer","MusicLayout","MusicHome","SearchResults","ArtistDetail","AlbumDetail","PlaylistDetail","TrackDetail","MusicLibrary","MusicUpload","TrackProgress","VolumeControl","TrackCard","AlbumCard","PlaylistCard","ArtistCard","TrackList","AlbumList","PlaylistList","ArtistList","PlaylistForm","SearchForm","UploadForm"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDA,SAAS,gBAAgB,KAAK,OAAO,QAAQ,QAAQ,UAAU,IAAI;AACjE,QAAM,QAAQ,QAAQ,SAAS;AAG/B,SAAO,SAAS,OAAOA,aAAW;AAGlC,QAAM,SAAS,UAAUC,MAAW;AACpC,QAAM,SAAS,aAAaC,SAAc;AAC1C,QAAM,SAAS,UAAUC,MAAW;AACpC,QAAM,SAAS,WAAWC,OAAY;AACtC,QAAM,SAAS,UAAUC,MAAW;AACpC,QAAM,SAAS,UAAUC,MAAW;AAGpC,MAAI,QAAQ,oBAAoB,SAAS,IAAI,OAAO,iBAAiB,SAAS;AAC5EC,sBAAAA,QAAgB,WAAW;AAAA,MACzB,OAAO,IAAI,OAAO,iBAAiB;AAAA,MACnC,sBAAsB;AAAA,MACtB,gBAAgB;AAAA,IACtB,CAAK;AAGD,QAAI,QAAQ,QAAQ;AAClBA,wBAAAA,QACG,QAAQ,QAAQ,MAAM,EACtB,KAAK,MAAM;AACVA,0BAAe,QAAC,gBAAgB,iBAAiB;AAAA,MAClD,CAAA,EACA,MAAM,SAAO;AACZ,gBAAQ,MAAM,uDAAuD,GAAG;AAAA,MAClF,CAAS;AAAA,IACT;AAAA,EACA;AAGE,MAAI,UAAU,eAAeC,mBAAW;AAC1C;AAGK,MAAC,cAAc;AAAA,EAClB,YAAY;AAAA,EACZ,OAAO;AAAA,IACL,OAAO;AAAA,MACX,aAAMP;AAAAA,MACN,gBAAMC;AAAAA,MACN,aAAMC;AAAAA,MACN,cAAMC;AAAAA,MACN,aAAMC;AAAAA,MACN,aAAMC;AAAAA,IACD;AAAA,IACD,QAAQ;AAAA,MACZ,aAAMN,MAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA;AAAA,MAEhB,aAAMS,YAAW;AAAA;AAAA,MAEjB,WAAMC,UAAS;AAAA,MACf,eAAMC,cAAa;AAAA,MACnB,cAAMC,aAAY;AAAA,MAClB,aAAMC,YAAW;AAAA,MACjB,gBAAMC,eAAc;AAAA,MACpB,aAAMC,YAAW;AAAA,MACjB,cAAMC,aAAY;AAAA,MAClB,aAAMC,YAAW;AAAA;AAAA,MAEjB,aAAMT,YAAW;AAAA,MACjB,eAAMU,cAAa;AAAA,MACnB,eAAMC,cAAa;AAAA;AAAA,MAEnB,WAAMC,UAAS;AAAA,MACf,WAAMC,UAAS;AAAA,MACf,cAAMC,aAAY;AAAA,MAClB,YAAMC,WAAU;AAAA;AAAA,MAEhB,WAAMC,UAAS;AAAA,MACf,WAAMC,UAAS;AAAA,MACf,cAAMC,aAAY;AAAA,MAClB,YAAMC,WAAU;AAAA;AAAA,MAEhB,cAAMC,aAAY;AAAA,MAClB,YAAMC,WAAU;AAAA,MAChB,YAAMC,WAAU;AAAA,IACX;AAAA,EACF;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,137 @@
1
+ import * as albums from "./store/albums.js";
2
+ import * as artists from "./store/artists.js";
3
+ import * as player from "./store/player.js";
4
+ import * as playlists from "./store/playlists.js";
5
+ import * as search from "./store/search.js";
6
+ import * as tracks from "./store/tracks.js";
7
+ import routerMusic from "./router/music.js";
8
+ import _sfc_main$a from "./components/layouts/MusicLayout.vue.js";
9
+ import AlbumDetail from "./components/pages/AlbumDetail.vue.js";
10
+ import _sfc_main$9 from "./components/pages/ArtistDetail.vue.js";
11
+ import MusicHome from "./components/pages/MusicHome.vue.js";
12
+ import _sfc_main$6 from "./components/pages/MusicLibrary.vue.js";
13
+ import _sfc_main$5 from "./components/pages/MusicUpload.vue.js";
14
+ import _sfc_main$8 from "./components/pages/PlaylistDetail.vue.js";
15
+ import SearchResults from "./components/pages/SearchResults.vue.js";
16
+ import _sfc_main$7 from "./components/pages/TrackDetail.vue.js";
17
+ import MusicPlayer from "./components/player/MusicPlayer.vue.js";
18
+ import TrackProgress from "./components/player/TrackProgress.vue.js";
19
+ import VolumeControl from "./components/player/VolumeControl.vue.js";
20
+ import AlbumCard from "./components/cards/AlbumCard.vue.js";
21
+ import ArtistCard from "./components/cards/ArtistCard.vue.js";
22
+ import PlaylistCard from "./components/cards/PlaylistCard.vue.js";
23
+ import TrackCard from "./components/cards/TrackCard.vue.js";
24
+ import _sfc_main$4 from "./components/lists/AlbumList.vue.js";
25
+ import _sfc_main$2 from "./components/lists/ArtistList.vue.js";
26
+ import _sfc_main$3 from "./components/lists/PlaylistList.vue.js";
27
+ import TrackList from "./components/lists/TrackList.vue.js";
28
+ import _sfc_main$1 from "./components/forms/PlaylistForm.vue.js";
29
+ import SearchForm from "./components/forms/SearchForm.vue.js";
30
+ import _sfc_main from "./components/forms/UploadForm.vue.js";
31
+ import globalWebSocket from "../globals/views/classes/globals.websocket.js";
32
+ function initializeMusic(app, store, router, config, options = {}) {
33
+ const route = options.route || "Home";
34
+ router.addRoute(route, routerMusic);
35
+ store.addStore("tracks", tracks);
36
+ store.addStore("playlists", playlists);
37
+ store.addStore("albums", albums);
38
+ store.addStore("artists", artists);
39
+ store.addStore("player", player);
40
+ store.addStore("search", search);
41
+ if (options.enableStreaming !== false && app.config.globalProperties.WSS_URL) {
42
+ globalWebSocket.initialize({
43
+ wsUrl: app.config.globalProperties.WSS_URL,
44
+ maxReconnectAttempts: 10,
45
+ reconnectDelay: 2e3
46
+ });
47
+ if (options.userId) {
48
+ globalWebSocket.connect(options.userId).then(() => {
49
+ globalWebSocket.subscribeModule("music-streaming");
50
+ }).catch((err) => {
51
+ console.error("Failed to connect to WebSocket for music streaming:", err);
52
+ });
53
+ }
54
+ }
55
+ app.component("MusicPlayer", MusicPlayer);
56
+ }
57
+ const ModuleMusic = {
58
+ initialize: initializeMusic,
59
+ views: {
60
+ store: {
61
+ storeTracks: tracks,
62
+ storePlaylists: playlists,
63
+ storeAlbums: albums,
64
+ storeArtists: artists,
65
+ storePlayer: player,
66
+ storeSearch: search
67
+ },
68
+ router: {
69
+ routerMusic
70
+ },
71
+ components: {
72
+ // Layouts
73
+ MusicLayout: _sfc_main$a,
74
+ // Pages
75
+ MusicHome,
76
+ SearchResults,
77
+ ArtistDetail: _sfc_main$9,
78
+ AlbumDetail,
79
+ PlaylistDetail: _sfc_main$8,
80
+ TrackDetail: _sfc_main$7,
81
+ MusicLibrary: _sfc_main$6,
82
+ MusicUpload: _sfc_main$5,
83
+ // Player Components
84
+ MusicPlayer,
85
+ TrackProgress,
86
+ VolumeControl,
87
+ // Cards
88
+ TrackCard,
89
+ AlbumCard,
90
+ PlaylistCard,
91
+ ArtistCard,
92
+ // Lists
93
+ TrackList,
94
+ AlbumList: _sfc_main$4,
95
+ PlaylistList: _sfc_main$3,
96
+ ArtistList: _sfc_main$2,
97
+ // Forms
98
+ PlaylistForm: _sfc_main$1,
99
+ SearchForm,
100
+ UploadForm: _sfc_main
101
+ }
102
+ }
103
+ };
104
+ export {
105
+ AlbumCard,
106
+ AlbumDetail,
107
+ _sfc_main$4 as AlbumList,
108
+ ArtistCard,
109
+ _sfc_main$9 as ArtistDetail,
110
+ _sfc_main$2 as ArtistList,
111
+ MusicHome,
112
+ _sfc_main$a as MusicLayout,
113
+ _sfc_main$6 as MusicLibrary,
114
+ MusicPlayer,
115
+ _sfc_main$5 as MusicUpload,
116
+ PlaylistCard,
117
+ _sfc_main$8 as PlaylistDetail,
118
+ _sfc_main$1 as PlaylistForm,
119
+ _sfc_main$3 as PlaylistList,
120
+ SearchForm,
121
+ SearchResults,
122
+ TrackCard,
123
+ _sfc_main$7 as TrackDetail,
124
+ TrackList,
125
+ TrackProgress,
126
+ _sfc_main as UploadForm,
127
+ VolumeControl,
128
+ ModuleMusic as default,
129
+ routerMusic,
130
+ albums as storeAlbums,
131
+ artists as storeArtists,
132
+ player as storePlayer,
133
+ playlists as storePlaylists,
134
+ search as storeSearch,
135
+ tracks as storeTracks
136
+ };
137
+ //# sourceMappingURL=music.client.js.map