@ozdao/martyrs 0.2.602 → 0.2.603

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 (714) hide show
  1. package/dist/{abac-BPl9Bmf9.js → abac-Blt8bUTL.js} +3 -3
  2. package/dist/{addUserStatusFields-Cc-JpmPo.js → addUserStatusFields-CjV_sbh7.js} +2 -2
  3. package/dist/auth.server.js +57 -2
  4. package/dist/builder.js +130 -81
  5. package/dist/community.server.js +11 -11
  6. package/dist/core.server.js +2 -2
  7. package/dist/{core.verifier-gPPX_jhf.js → core.verifier-DVB2a21y.js} +6 -3
  8. package/dist/{crud-DpOXTZep.js → crud-BT5FIvQC.js} +2 -3
  9. package/dist/engagement.schema-B-Cc_NsG.js +6 -0
  10. package/dist/events.server.js +3 -3
  11. package/dist/gallery.server.js +1 -1
  12. package/dist/governance.server.js +1632 -0
  13. package/dist/icons.server.js +267 -0
  14. package/dist/inventory.server.js +6 -6
  15. package/dist/martyrs/dist/martyrs.es3.js +116 -0
  16. package/dist/martyrs/dist/martyrs.es3.js.map +1 -0
  17. package/dist/martyrs/dist/martyrs.es39.js +124 -0
  18. package/dist/martyrs/dist/martyrs.es39.js.map +1 -0
  19. package/dist/martyrs/dist/martyrs.es43.js +30 -0
  20. package/dist/martyrs/dist/martyrs.es43.js.map +1 -0
  21. package/dist/martyrs/dist/martyrs.es44.js +28 -0
  22. package/dist/martyrs/dist/martyrs.es44.js.map +1 -0
  23. package/dist/martyrs/dist/martyrs.es46.js +10 -0
  24. package/dist/martyrs/dist/martyrs.es46.js.map +1 -0
  25. package/dist/martyrs/src/components/Address/{Address.vue.js → Address.vue2.js} +2 -2
  26. package/dist/martyrs/src/components/Address/Address.vue2.js.map +1 -0
  27. package/dist/martyrs/src/components/Block/Block.vue.js +1 -1
  28. package/dist/martyrs/src/components/Block/Block.vue.js.map +1 -1
  29. package/dist/martyrs/src/components/Button/{Button.vue.js → Button.vue2.js} +8 -5
  30. package/dist/martyrs/src/components/Button/Button.vue2.js.map +1 -0
  31. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.js → Dropdown.vue.js} +2 -2
  32. package/dist/martyrs/src/components/Dropdown/Dropdown.vue.js.map +1 -0
  33. package/dist/martyrs/src/components/EditImages/{EditImages.vue2.js → EditImages.vue.js} +2 -2
  34. package/dist/martyrs/src/components/EditImages/EditImages.vue.js.map +1 -0
  35. package/dist/martyrs/src/components/Feed/Feed.vue.js +2 -2
  36. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +4 -4
  37. package/dist/martyrs/src/components/LocationMarker/{LocationMarker.vue.js → LocationMarker.vue2.js} +2 -2
  38. package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue2.js.map +1 -0
  39. package/dist/martyrs/src/components/Tab/{Tab.vue2.js → Tab.vue.js} +2 -2
  40. package/dist/martyrs/src/components/Tab/Tab.vue.js.map +1 -0
  41. package/dist/martyrs/src/components/Table/StatusBadge.vue.js +19 -10
  42. package/dist/martyrs/src/components/Table/StatusBadge.vue.js.map +1 -1
  43. package/dist/martyrs/src/components/Text/Text.vue.js +1 -1
  44. package/dist/martyrs/src/components/Text/Text.vue.js.map +1 -1
  45. package/dist/martyrs/src/modules/auth/views/components/blocks/OtpDialog.vue.js +2 -2
  46. package/dist/martyrs/src/modules/auth/views/components/blocks/PopupAuth.vue.js +3 -3
  47. package/dist/martyrs/src/modules/auth/views/components/blocks/PopupAuth.vue.js.map +1 -1
  48. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +3 -3
  49. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +2 -2
  50. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js +17 -21
  51. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js.map +1 -1
  52. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +13 -13
  53. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +2 -2
  54. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +3 -3
  55. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +42 -4
  56. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js.map +1 -1
  57. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +3 -3
  58. package/dist/martyrs/src/modules/auth/views/components/pages/UserDashboard.vue.js +34 -66
  59. package/dist/martyrs/src/modules/auth/views/components/pages/UserDashboard.vue.js.map +1 -1
  60. package/dist/martyrs/src/modules/auth/views/router/users.router.js +0 -53
  61. package/dist/martyrs/src/modules/auth/views/router/users.router.js.map +1 -1
  62. package/dist/martyrs/src/modules/backoffice/components/pages/Dashboard.vue.js +515 -103
  63. package/dist/martyrs/src/modules/backoffice/components/pages/Dashboard.vue.js.map +1 -1
  64. package/dist/martyrs/src/modules/backoffice/configs/navigation.backoffice.config.js +1 -3
  65. package/dist/martyrs/src/modules/backoffice/configs/navigation.backoffice.config.js.map +1 -1
  66. package/dist/martyrs/src/modules/backoffice/router/backoffice.router.js +1 -32
  67. package/dist/martyrs/src/modules/backoffice/router/backoffice.router.js.map +1 -1
  68. package/dist/martyrs/src/modules/community/community.client.js +49 -8
  69. package/dist/martyrs/src/modules/community/community.client.js.map +1 -1
  70. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js +10 -4
  71. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js.map +1 -1
  72. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +3 -3
  73. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js.map +1 -1
  74. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +2 -2
  75. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js.map +1 -1
  76. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +28 -17
  77. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js.map +1 -1
  78. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.js +36 -28
  79. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.js.map +1 -1
  80. package/dist/martyrs/src/modules/community/components/sections/Comment.vue.js +2 -2
  81. package/dist/martyrs/src/modules/community/components/sections/Comment.vue.js.map +1 -1
  82. package/dist/martyrs/src/modules/community/router/community.backoffice.router.js +21 -0
  83. package/dist/martyrs/src/modules/community/router/community.backoffice.router.js.map +1 -0
  84. package/dist/martyrs/src/modules/community/router/community.organization.router.js +70 -0
  85. package/dist/martyrs/src/modules/community/router/community.organization.router.js.map +1 -0
  86. package/dist/martyrs/src/modules/community/router/community.router.js +73 -0
  87. package/dist/martyrs/src/modules/community/router/community.router.js.map +1 -0
  88. package/dist/martyrs/src/modules/community/router/community.user.router.js +20 -0
  89. package/dist/martyrs/src/modules/community/router/community.user.router.js.map +1 -0
  90. package/dist/martyrs/src/modules/constructor/components/elements/Textarea.vue2.js +1 -1
  91. package/dist/martyrs/src/modules/constructor/components/elements/Textarea.vue2.js.map +1 -1
  92. package/dist/martyrs/src/modules/constructor/components/sections/Constructor.vue.js.map +1 -1
  93. package/dist/martyrs/src/modules/core/views/classes/core.app.js +5 -3
  94. package/dist/martyrs/src/modules/core/views/classes/core.app.js.map +1 -1
  95. package/dist/martyrs/src/modules/core/views/classes/i18n.manager.js +7 -2
  96. package/dist/martyrs/src/modules/core/views/classes/i18n.manager.js.map +1 -1
  97. package/dist/martyrs/src/modules/core/views/classes/ws.manager.js +11 -5
  98. package/dist/martyrs/src/modules/core/views/classes/ws.manager.js.map +1 -1
  99. package/dist/martyrs/src/modules/core/views/components/blocks/Card.vue.js +53 -18
  100. package/dist/martyrs/src/modules/core/views/components/blocks/Card.vue.js.map +1 -1
  101. package/dist/martyrs/src/modules/core/views/components/blocks/CardHeader.vue.js +2 -2
  102. package/dist/martyrs/src/modules/core/views/components/blocks/CardStat.vue.js +44 -0
  103. package/dist/martyrs/src/modules/core/views/components/blocks/CardStat.vue.js.map +1 -0
  104. package/dist/martyrs/src/modules/core/views/components/blocks/PopupDateSelector.vue.js +5 -5
  105. package/dist/martyrs/src/modules/core/views/components/layouts/App.vue.js +1 -1
  106. package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js +9 -6
  107. package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js.map +1 -1
  108. package/dist/martyrs/src/modules/core/views/components/partials/BottomNavigationBar.vue.js +5 -5
  109. package/dist/martyrs/src/modules/core/views/components/partials/BottomNavigationBar.vue.js.map +1 -1
  110. package/dist/martyrs/src/modules/core/views/components/partials/Header.vue.js +14 -14
  111. package/dist/martyrs/src/modules/core/views/components/partials/Header.vue.js.map +1 -1
  112. package/dist/martyrs/src/modules/core/views/components/partials/LocationSelection.vue.js +2 -2
  113. package/dist/martyrs/src/modules/core/views/components/partials/Navigation.vue.js +28 -29
  114. package/dist/martyrs/src/modules/core/views/components/partials/Navigation.vue.js.map +1 -1
  115. package/dist/martyrs/src/modules/core/views/components/partials/NavigationBar.vue.js +6 -6
  116. package/dist/martyrs/src/modules/core/views/components/partials/Sidebar.vue.js +5 -7
  117. package/dist/martyrs/src/modules/core/views/components/partials/Sidebar.vue.js.map +1 -1
  118. package/dist/martyrs/src/modules/core/views/components/sections/{Filters.vue2.js → Filters.vue.js} +2 -2
  119. package/dist/martyrs/src/modules/core/views/components/sections/Filters.vue.js.map +1 -0
  120. package/dist/martyrs/src/modules/core/views/components/sections/SectionPageTitle.vue.js +28 -18
  121. package/dist/martyrs/src/modules/core/views/components/sections/SectionPageTitle.vue.js.map +1 -1
  122. package/dist/martyrs/src/modules/core/views/mixins/mixins.js +3 -3
  123. package/dist/martyrs/src/modules/core/views/mixins/mixins.js.map +1 -1
  124. package/dist/martyrs/src/modules/core/views/router/addRoutes.js +2 -3
  125. package/dist/martyrs/src/modules/core/views/router/addRoutes.js.map +1 -1
  126. package/dist/martyrs/src/modules/core/views/utils/vue-app-renderer.js +10 -0
  127. package/dist/martyrs/src/modules/core/views/utils/vue-app-renderer.js.map +1 -1
  128. package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.js +4 -4
  129. package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.js +2 -2
  130. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +3 -3
  131. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +9 -9
  132. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js.map +1 -1
  133. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +2 -2
  134. package/dist/martyrs/src/modules/events/components/pages/Events.vue.js +1 -0
  135. package/dist/martyrs/src/modules/events/components/pages/Events.vue.js.map +1 -1
  136. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js +23 -33
  137. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js.map +1 -1
  138. package/dist/martyrs/src/modules/events/components/sections/EditTickets.vue.js +13 -13
  139. package/dist/martyrs/src/modules/events/components/sections/List.vue.js +2 -2
  140. package/dist/martyrs/src/modules/events/components/sections/List.vue.js.map +1 -1
  141. package/dist/martyrs/src/modules/events/events.client.js +37 -15
  142. package/dist/martyrs/src/modules/events/events.client.js.map +1 -1
  143. package/dist/martyrs/src/modules/events/router/events.backoffice.router.js +95 -0
  144. package/dist/martyrs/src/modules/events/router/events.backoffice.router.js.map +1 -0
  145. package/dist/martyrs/src/modules/events/router/events.organization.router.js +95 -0
  146. package/dist/martyrs/src/modules/events/router/events.organization.router.js.map +1 -0
  147. package/dist/martyrs/src/modules/events/router/events.router.js +73 -364
  148. package/dist/martyrs/src/modules/events/router/events.router.js.map +1 -1
  149. package/dist/martyrs/src/modules/events/router/events.user.router.js +65 -0
  150. package/dist/martyrs/src/modules/events/router/events.user.router.js.map +1 -0
  151. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +4 -4
  152. package/dist/martyrs/src/modules/governance/configs/navigation.initiative.config.js +33 -0
  153. package/dist/martyrs/src/modules/governance/configs/navigation.initiative.config.js.map +1 -0
  154. package/dist/martyrs/src/modules/governance/governance.client.js +31 -0
  155. package/dist/martyrs/src/modules/governance/governance.client.js.map +1 -0
  156. package/dist/martyrs/src/modules/governance/views/components/blocks/CardInitiativeItem.vue.js +110 -0
  157. package/dist/martyrs/src/modules/governance/views/components/blocks/CardInitiativeItem.vue.js.map +1 -0
  158. package/dist/martyrs/src/modules/governance/views/components/blocks/CardSprintItem.vue.js +105 -0
  159. package/dist/martyrs/src/modules/governance/views/components/blocks/CardSprintItem.vue.js.map +1 -0
  160. package/dist/martyrs/src/modules/governance/views/components/blocks/CardTaskItem.vue.js +110 -0
  161. package/dist/martyrs/src/modules/governance/views/components/blocks/CardTaskItem.vue.js.map +1 -0
  162. package/dist/martyrs/src/modules/governance/views/components/blocks/CardVotingItem.vue.js +106 -0
  163. package/dist/martyrs/src/modules/governance/views/components/blocks/CardVotingItem.vue.js.map +1 -0
  164. package/dist/martyrs/src/modules/governance/views/components/pages/Governance.vue.js +52 -0
  165. package/dist/martyrs/src/modules/governance/views/components/pages/Governance.vue.js.map +1 -0
  166. package/dist/martyrs/src/modules/governance/views/components/pages/Initiative.vue.js +684 -0
  167. package/dist/martyrs/src/modules/governance/views/components/pages/Initiative.vue.js.map +1 -0
  168. package/dist/martyrs/src/modules/governance/views/components/pages/InitiativeCreate.vue.js +78 -0
  169. package/dist/martyrs/src/modules/governance/views/components/pages/InitiativeCreate.vue.js.map +1 -0
  170. package/dist/martyrs/src/modules/governance/views/components/pages/InitiativeSprints.vue.js +328 -0
  171. package/dist/martyrs/src/modules/governance/views/components/pages/InitiativeSprints.vue.js.map +1 -0
  172. package/dist/martyrs/src/modules/governance/views/components/pages/Initiatives.vue.js +145 -0
  173. package/dist/martyrs/src/modules/governance/views/components/pages/Initiatives.vue.js.map +1 -0
  174. package/dist/martyrs/src/modules/governance/views/components/pages/Sprint.vue.js +258 -0
  175. package/dist/martyrs/src/modules/governance/views/components/pages/Sprint.vue.js.map +1 -0
  176. package/dist/martyrs/src/modules/governance/views/components/pages/SprintCreate.vue.js +72 -0
  177. package/dist/martyrs/src/modules/governance/views/components/pages/SprintCreate.vue.js.map +1 -0
  178. package/dist/martyrs/src/modules/governance/views/components/pages/Task.vue.js +769 -0
  179. package/dist/martyrs/src/modules/governance/views/components/pages/Task.vue.js.map +1 -0
  180. package/dist/martyrs/src/modules/governance/views/components/pages/TaskCreate.vue.js +88 -0
  181. package/dist/martyrs/src/modules/governance/views/components/pages/TaskCreate.vue.js.map +1 -0
  182. package/dist/martyrs/src/modules/governance/views/components/pages/Tasks.vue.js +291 -0
  183. package/dist/martyrs/src/modules/governance/views/components/pages/Tasks.vue.js.map +1 -0
  184. package/dist/martyrs/src/modules/governance/views/components/pages/Voting.vue.js +267 -0
  185. package/dist/martyrs/src/modules/governance/views/components/pages/Voting.vue.js.map +1 -0
  186. package/dist/martyrs/src/modules/governance/views/components/pages/VotingCreate.vue.js +90 -0
  187. package/dist/martyrs/src/modules/governance/views/components/pages/VotingCreate.vue.js.map +1 -0
  188. package/dist/martyrs/src/modules/governance/views/components/pages/Votings.vue.js +68 -0
  189. package/dist/martyrs/src/modules/governance/views/components/pages/Votings.vue.js.map +1 -0
  190. package/dist/martyrs/src/modules/governance/views/components/partials/EmptyState.vue.js +47 -0
  191. package/dist/martyrs/src/modules/governance/views/components/partials/EmptyState.vue.js.map +1 -0
  192. package/dist/martyrs/src/modules/governance/views/components/partials/LinkedEntityCard.vue.js +164 -0
  193. package/dist/martyrs/src/modules/governance/views/components/partials/LinkedEntityCard.vue.js.map +1 -0
  194. package/dist/martyrs/src/modules/governance/views/components/partials/TaskStatusBadge.vue.js +39 -0
  195. package/dist/martyrs/src/modules/governance/views/components/partials/TaskStatusBadge.vue.js.map +1 -0
  196. package/dist/martyrs/src/modules/governance/views/components/partials/VoteForm.vue.js +112 -0
  197. package/dist/martyrs/src/modules/governance/views/components/partials/VoteForm.vue.js.map +1 -0
  198. package/dist/martyrs/src/modules/governance/views/components/partials/VotingResults.vue.js +187 -0
  199. package/dist/martyrs/src/modules/governance/views/components/partials/VotingResults.vue.js.map +1 -0
  200. package/dist/martyrs/src/modules/governance/views/components/sections/FormInitiativeDetails.vue.js +555 -0
  201. package/dist/martyrs/src/modules/governance/views/components/sections/FormInitiativeDetails.vue.js.map +1 -0
  202. package/dist/martyrs/src/modules/governance/views/components/sections/FormSprintDetails.vue.js +187 -0
  203. package/dist/martyrs/src/modules/governance/views/components/sections/FormSprintDetails.vue.js.map +1 -0
  204. package/dist/martyrs/src/modules/governance/views/components/sections/FormTaskDetails.vue.js +171 -0
  205. package/dist/martyrs/src/modules/governance/views/components/sections/FormTaskDetails.vue.js.map +1 -0
  206. package/dist/martyrs/src/modules/governance/views/components/sections/FormVotingDetails.vue.js +179 -0
  207. package/dist/martyrs/src/modules/governance/views/components/sections/FormVotingDetails.vue.js.map +1 -0
  208. package/dist/martyrs/src/modules/governance/views/router/governance.router.js +502 -0
  209. package/dist/martyrs/src/modules/governance/views/router/governance.router.js.map +1 -0
  210. package/dist/martyrs/src/modules/governance/views/store/initiatives.js +119 -0
  211. package/dist/martyrs/src/modules/governance/views/store/initiatives.js.map +1 -0
  212. package/dist/martyrs/src/modules/governance/views/store/sprints.js +99 -0
  213. package/dist/martyrs/src/modules/governance/views/store/sprints.js.map +1 -0
  214. package/dist/martyrs/src/modules/governance/views/store/tasks.js +115 -0
  215. package/dist/martyrs/src/modules/governance/views/store/tasks.js.map +1 -0
  216. package/dist/martyrs/src/modules/governance/views/store/votings.js +155 -0
  217. package/dist/martyrs/src/modules/governance/views/store/votings.js.map +1 -0
  218. package/dist/martyrs/src/modules/icons/entities/IconCash.vue.js +70 -0
  219. package/dist/martyrs/src/modules/icons/entities/IconCash.vue.js.map +1 -0
  220. package/dist/martyrs/src/modules/icons/icons.client.js +1 -1
  221. package/dist/martyrs/src/modules/icons/icons.client.js.map +1 -1
  222. package/dist/martyrs/src/modules/icons/{icons.router.js → router/icons.router.js} +1 -1
  223. package/dist/martyrs/src/modules/icons/router/icons.router.js.map +1 -0
  224. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +3 -3
  225. package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.js +3 -3
  226. package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js +2 -2
  227. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +3 -3
  228. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js +1 -1
  229. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +6 -6
  230. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js.map +1 -1
  231. package/dist/martyrs/src/modules/marketplace/views/components/pages/Marketplace.vue.js +1 -1
  232. package/dist/martyrs/src/modules/music/components/blocks/ActionButtons.vue.js +9 -9
  233. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +4 -4
  234. package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.js +2 -2
  235. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js +4 -4
  236. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js +7 -7
  237. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +3 -3
  238. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +3 -3
  239. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +3 -3
  240. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js +4 -4
  241. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +3 -3
  242. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +2 -2
  243. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +9 -9
  244. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +13 -13
  245. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +10 -10
  246. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +9 -9
  247. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +17 -17
  248. package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.js +1 -1
  249. package/dist/martyrs/src/modules/music/components/player/FullscreenPlayer.vue.js +2 -2
  250. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js +4 -4
  251. package/dist/martyrs/src/modules/music/components/player/PlayerControls.vue.js +10 -10
  252. package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.js +6 -6
  253. package/dist/martyrs/src/modules/music/components/sections/PopularTracks.vue.js +63 -0
  254. package/dist/martyrs/src/modules/music/components/sections/PopularTracks.vue.js.map +1 -0
  255. package/dist/martyrs/src/modules/music/music.client.js +29 -25
  256. package/dist/martyrs/src/modules/music/music.client.js.map +1 -1
  257. package/dist/martyrs/src/modules/music/{music.router.js → router/music.router.js} +16 -16
  258. package/dist/martyrs/src/modules/music/router/music.router.js.map +1 -0
  259. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js +26 -27
  260. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js.map +1 -1
  261. package/dist/martyrs/src/modules/notifications/components/sections/NotificationPreferences.vue.js +118 -59
  262. package/dist/martyrs/src/modules/notifications/components/sections/NotificationPreferences.vue.js.map +1 -1
  263. package/dist/martyrs/src/modules/notifications/notifications.client.js +74 -54
  264. package/dist/martyrs/src/modules/notifications/notifications.client.js.map +1 -1
  265. package/dist/martyrs/src/modules/notifications/{notifications.router.js → router/notifications.router.js} +3 -3
  266. package/dist/martyrs/src/modules/notifications/router/notifications.router.js.map +1 -0
  267. package/dist/martyrs/src/modules/orders/components/blocks/CardApplication.vue.js +34 -44
  268. package/dist/martyrs/src/modules/orders/components/blocks/CardApplication.vue.js.map +1 -1
  269. package/dist/martyrs/src/modules/orders/components/blocks/CardCustomer.vue.js +47 -57
  270. package/dist/martyrs/src/modules/orders/components/blocks/CardCustomer.vue.js.map +1 -1
  271. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.js +2 -2
  272. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.js.map +1 -1
  273. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.js +2 -2
  274. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.js.map +1 -1
  275. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +3 -3
  276. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +5 -5
  277. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js.map +1 -1
  278. package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js +7 -7
  279. package/dist/martyrs/src/modules/orders/components/pages/Applications.vue.js +61 -54
  280. package/dist/martyrs/src/modules/orders/components/pages/Applications.vue.js.map +1 -1
  281. package/dist/martyrs/src/modules/orders/components/pages/Customers.vue.js +43 -31
  282. package/dist/martyrs/src/modules/orders/components/pages/Customers.vue.js.map +1 -1
  283. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +13 -13
  284. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +3 -3
  285. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js.map +1 -1
  286. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +19 -19
  287. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.js +1 -1
  288. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js +7 -10
  289. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js.map +1 -1
  290. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js +7 -10
  291. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js.map +1 -1
  292. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +4 -4
  293. package/dist/martyrs/src/modules/orders/orders.client.js +16 -16
  294. package/dist/martyrs/src/modules/orders/orders.client.js.map +1 -1
  295. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +11 -4
  296. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js.map +1 -1
  297. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +2 -2
  298. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js +2 -2
  299. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js +22 -15
  300. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js.map +1 -1
  301. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js +2 -2
  302. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +63 -1
  303. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js.map +1 -1
  304. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +9 -3
  305. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js.map +1 -1
  306. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +14 -8
  307. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js.map +1 -1
  308. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js +24 -30
  309. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js.map +1 -1
  310. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +2 -2
  311. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +2 -2
  312. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +2 -2
  313. package/dist/martyrs/src/modules/organizations/organizations.client.js +42 -6
  314. package/dist/martyrs/src/modules/organizations/organizations.client.js.map +1 -1
  315. package/dist/martyrs/src/modules/organizations/router/organizations.backoffice.router.js +20 -0
  316. package/dist/martyrs/src/modules/organizations/router/organizations.backoffice.router.js.map +1 -0
  317. package/dist/martyrs/src/modules/organizations/router/organizations.router.js +102 -0
  318. package/dist/martyrs/src/modules/organizations/router/organizations.router.js.map +1 -0
  319. package/dist/martyrs/src/modules/organizations/router/organizations.user.router.js +20 -0
  320. package/dist/martyrs/src/modules/organizations/router/organizations.user.router.js.map +1 -0
  321. package/dist/martyrs/src/modules/pages/pages.client.js +1 -1
  322. package/dist/martyrs/src/modules/pages/pages.client.js.map +1 -1
  323. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -1
  324. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +3 -3
  325. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +2 -2
  326. package/dist/martyrs/src/modules/pages/{pages.router.js → views/router/pages.router.js} +8 -8
  327. package/dist/martyrs/src/modules/pages/views/router/pages.router.js.map +1 -0
  328. package/dist/martyrs/src/modules/products/components/blocks/CardPosition.vue.js +1 -1
  329. package/dist/martyrs/src/modules/products/components/blocks/CardPosition.vue.js.map +1 -1
  330. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +1 -1
  331. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +7 -7
  332. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +2 -2
  333. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +21 -21
  334. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +5 -5
  335. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js.map +1 -1
  336. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +3 -3
  337. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +3 -3
  338. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +20 -20
  339. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js +4 -4
  340. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +4 -4
  341. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +4 -4
  342. package/dist/martyrs/src/modules/rents/rents.client.js +1 -1
  343. package/dist/martyrs/src/modules/rents/rents.client.js.map +1 -1
  344. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +7 -7
  345. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js +1 -1
  346. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +4 -4
  347. package/dist/martyrs/src/modules/rents/{rents.router.js → views/router/rents.router.js} +4 -4
  348. package/dist/martyrs/src/modules/rents/views/router/rents.router.js.map +1 -0
  349. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +2 -2
  350. package/dist/martyrs/src/modules/reports/reports.client.js +1 -1
  351. package/dist/martyrs/src/modules/reports/reports.client.js.map +1 -1
  352. package/dist/martyrs/src/modules/reports/{reports.router.js → router/reports.router.js} +1 -1
  353. package/dist/martyrs/src/modules/reports/router/reports.router.js.map +1 -0
  354. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +1 -1
  355. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js +2 -2
  356. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +12 -12
  357. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +21 -21
  358. package/dist/martyrs/src/modules/wallet/views/components/pages/Payments.vue.js +68 -0
  359. package/dist/martyrs/src/modules/wallet/views/components/pages/Payments.vue.js.map +1 -0
  360. package/dist/martyrs/src/modules/wallet/views/router/wallet.router.js +48 -0
  361. package/dist/martyrs/src/modules/wallet/views/router/wallet.router.js.map +1 -0
  362. package/dist/martyrs/src/modules/wallet/views/store/payments.store.js +59 -0
  363. package/dist/martyrs/src/modules/wallet/views/store/payments.store.js.map +1 -0
  364. package/dist/martyrs/src/modules/wallet/wallet.client.js +20 -0
  365. package/dist/martyrs/src/modules/wallet/wallet.client.js.map +1 -0
  366. package/dist/martyrs.es.js +84 -41
  367. package/dist/martyrs.es10.js +126 -0
  368. package/dist/martyrs.es100.js +33 -0
  369. package/dist/martyrs.es102.js +39 -0
  370. package/dist/martyrs.es103.js +31 -0
  371. package/dist/martyrs.es105.js +27 -0
  372. package/dist/martyrs.es106.js +8 -0
  373. package/dist/martyrs.es107.js +9 -0
  374. package/dist/martyrs.es108.js +79 -0
  375. package/dist/martyrs.es109.js +7 -0
  376. package/dist/martyrs.es11.js +49 -0
  377. package/dist/{web-n_ivHO3v.js → martyrs.es110.js} +1 -1
  378. package/dist/martyrs.es111.js +327 -0
  379. package/dist/martyrs.es112.js +121 -0
  380. package/dist/martyrs.es115.js +4 -0
  381. package/dist/martyrs.es116.js +25 -0
  382. package/dist/martyrs.es117.js +7 -0
  383. package/dist/martyrs.es118.js +10 -0
  384. package/dist/martyrs.es119.js +169 -0
  385. package/dist/martyrs.es12.js +94 -0
  386. package/dist/martyrs.es120.js +460 -0
  387. package/dist/martyrs.es121.js +42 -0
  388. package/dist/martyrs.es122.js +12 -0
  389. package/dist/martyrs.es123.js +52 -0
  390. package/dist/martyrs.es124.js +14 -0
  391. package/dist/martyrs.es125.js +47 -0
  392. package/dist/martyrs.es126.js +7 -0
  393. package/dist/martyrs.es127.js +131 -0
  394. package/dist/martyrs.es128.js +103 -0
  395. package/dist/martyrs.es129.js +89 -0
  396. package/dist/martyrs.es13.js +48 -0
  397. package/dist/martyrs.es130.js +40 -0
  398. package/dist/martyrs.es131.js +14 -0
  399. package/dist/martyrs.es132.js +42 -0
  400. package/dist/martyrs.es133.js +11 -0
  401. package/dist/martyrs.es134.js +6 -0
  402. package/dist/martyrs.es135.js +119 -0
  403. package/dist/martyrs.es136.js +20 -0
  404. package/dist/martyrs.es137.js +18 -0
  405. package/dist/martyrs.es138.js +35 -0
  406. package/dist/martyrs.es139.js +12 -0
  407. package/dist/martyrs.es14.js +101 -0
  408. package/dist/martyrs.es140.js +23 -0
  409. package/dist/martyrs.es141.js +12 -0
  410. package/dist/martyrs.es142.js +11 -0
  411. package/dist/martyrs.es143.js +47 -0
  412. package/dist/martyrs.es144.js +483 -0
  413. package/dist/martyrs.es145.js +8 -0
  414. package/dist/martyrs.es146.js +4 -0
  415. package/dist/martyrs.es147.js +14 -0
  416. package/dist/martyrs.es148.js +33 -0
  417. package/dist/martyrs.es149.js +19 -0
  418. package/dist/martyrs.es15.js +408 -0
  419. package/dist/martyrs.es150.js +22 -0
  420. package/dist/martyrs.es151.js +31 -0
  421. package/dist/martyrs.es152.js +23 -0
  422. package/dist/martyrs.es16.js +58 -0
  423. package/dist/martyrs.es17.js +44 -0
  424. package/dist/martyrs.es18.js +42 -0
  425. package/dist/martyrs.es19.js +27 -0
  426. package/dist/martyrs.es2.js +88 -0
  427. package/dist/martyrs.es20.js +13 -0
  428. package/dist/martyrs.es21.js +57 -0
  429. package/dist/martyrs.es22.js +104 -0
  430. package/dist/martyrs.es23.js +178 -0
  431. package/dist/martyrs.es24.js +123 -0
  432. package/dist/martyrs.es25.js +139 -0
  433. package/dist/martyrs.es26.js +21 -0
  434. package/dist/martyrs.es27.js +60 -0
  435. package/dist/martyrs.es28.js +75 -0
  436. package/dist/martyrs.es29.js +36 -0
  437. package/dist/martyrs.es3.js +116 -0
  438. package/dist/martyrs.es30.js +348 -0
  439. package/dist/martyrs.es31.js +83 -0
  440. package/dist/martyrs.es32.js +148 -0
  441. package/dist/martyrs.es33.js +175 -0
  442. package/dist/martyrs.es34.js +66 -0
  443. package/dist/martyrs.es35.js +57 -0
  444. package/dist/martyrs.es36.js +76 -0
  445. package/dist/martyrs.es37.js +101 -0
  446. package/dist/martyrs.es38.js +39 -0
  447. package/dist/martyrs.es39.js +124 -0
  448. package/dist/martyrs.es4.js +85 -0
  449. package/dist/martyrs.es40.js +120 -0
  450. package/dist/martyrs.es41.js +229 -0
  451. package/dist/martyrs.es43.js +29 -0
  452. package/dist/martyrs.es44.js +27 -0
  453. package/dist/martyrs.es46.js +9 -0
  454. package/dist/martyrs.es48.js +18 -0
  455. package/dist/martyrs.es5.js +395 -0
  456. package/dist/martyrs.es50.js +42 -0
  457. package/dist/martyrs.es52.js +255 -0
  458. package/dist/martyrs.es54.js +8 -0
  459. package/dist/martyrs.es6.js +70 -0
  460. package/dist/martyrs.es61.js +139 -0
  461. package/dist/martyrs.es65.js +28 -0
  462. package/dist/martyrs.es68.js +33 -0
  463. package/dist/martyrs.es69.js +37 -0
  464. package/dist/martyrs.es7.js +17 -0
  465. package/dist/martyrs.es71.js +114 -0
  466. package/dist/martyrs.es73.js +83 -0
  467. package/dist/martyrs.es74.js +52 -0
  468. package/dist/martyrs.es75.js +75 -0
  469. package/dist/martyrs.es76.js +176 -0
  470. package/dist/martyrs.es77.js +31 -0
  471. package/dist/martyrs.es78.js +38 -0
  472. package/dist/martyrs.es8.js +127 -0
  473. package/dist/martyrs.es81.js +32 -0
  474. package/dist/martyrs.es86.js +37 -0
  475. package/dist/martyrs.es89.js +37 -0
  476. package/dist/martyrs.es9.js +396 -0
  477. package/dist/martyrs.es91.js +63 -0
  478. package/dist/martyrs.es92.js +7 -0
  479. package/dist/martyrs.es93.js +35 -0
  480. package/dist/martyrs.es95.js +41 -0
  481. package/dist/martyrs.es96.js +59 -0
  482. package/dist/martyrs.es97.js +123 -0
  483. package/dist/martyrs.es98.js +43 -0
  484. package/dist/martyrs.es99.js +86 -0
  485. package/dist/music.server.js +11 -11
  486. package/dist/notifications.server.js +16 -6
  487. package/dist/orders.server.js +264 -145
  488. package/dist/organizations.server.js +22 -6
  489. package/dist/products.server.js +7 -7
  490. package/dist/rents.server.js +4 -3
  491. package/dist/style.css +970 -986
  492. package/package.json +13 -6
  493. package/src/builder/modes/ssr.rspack.dev.js +32 -20
  494. package/src/builder/rspack/rspack.config.api.js +3 -0
  495. package/src/builder/rspack/rspack.config.base.js +9 -1
  496. package/src/builder/rspack/rspack.config.ssr.client.js +8 -5
  497. package/src/components/Block/Block.vue +1 -1
  498. package/src/components/Button/Button.vue +4 -4
  499. package/src/components/Table/StatusBadge.vue +24 -18
  500. package/src/components/Text/Text.vue +1 -1
  501. package/src/jit/core.js +72 -35
  502. package/src/jit/plugin.js +4 -3
  503. package/src/jit/rules.js +15 -15
  504. package/src/modules/TASKS.MD +30 -0
  505. package/src/modules/TASK_ACTIVITY.md +60 -0
  506. package/src/modules/TASK_MODULE_ARCH.md +391 -0
  507. package/src/modules/auth/controllers/routes/users.routes.js +8 -0
  508. package/src/modules/auth/controllers/services/users.service.js +51 -1
  509. package/src/modules/auth/views/components/blocks/PopupAuth.vue +1 -1
  510. package/src/modules/auth/views/components/pages/ProfileBlogposts.vue +25 -24
  511. package/src/modules/auth/views/components/pages/SignIn.vue +10 -1
  512. package/src/modules/auth/views/components/pages/UserDashboard.vue +35 -62
  513. package/src/modules/auth/views/router/users.router.js +0 -44
  514. package/src/modules/backoffice/components/pages/Dashboard.vue +423 -120
  515. package/src/modules/backoffice/configs/navigation.backoffice.config.js +0 -2
  516. package/src/modules/backoffice/router/backoffice.router.js +0 -25
  517. package/src/modules/community/community.client.js +54 -9
  518. package/src/modules/community/components/blocks/CardBlogpost.vue +10 -3
  519. package/src/modules/community/components/layouts/Community.vue +3 -3
  520. package/src/modules/community/components/pages/BlogPost.vue +1 -1
  521. package/src/modules/community/components/pages/CreateBlogPost.vue +19 -20
  522. package/src/modules/community/components/pages/Posts.vue +43 -28
  523. package/src/modules/community/components/sections/Comment.vue +1 -1
  524. package/src/modules/community/controllers/blog.controller.js +4 -5
  525. package/src/modules/community/models/reaction.model.js +1 -0
  526. package/src/modules/community/router/community.backoffice.router.js +16 -0
  527. package/src/modules/community/router/community.organization.router.js +56 -0
  528. package/src/modules/community/router/community.router.js +58 -106
  529. package/src/modules/community/router/community.user.router.js +15 -0
  530. package/src/modules/constructor/components/elements/Textarea.vue +1 -1
  531. package/src/modules/constructor/components/sections/Constructor.vue +1 -1
  532. package/src/modules/core/controllers/classes/core.validator.js +7 -1
  533. package/src/modules/core/controllers/classes/core.verifier.js +0 -2
  534. package/src/modules/core/controllers/classes/crud/crud.controller.js +0 -4
  535. package/src/modules/core/controllers/classes/crud/crud.service.js +1 -0
  536. package/src/modules/core/models/schemas/engagement.schema.js +19 -22
  537. package/src/modules/core/views/classes/core.app.js +6 -4
  538. package/src/modules/core/views/classes/i18n.manager.js +9 -2
  539. package/src/modules/core/views/classes/ws.manager.js +17 -7
  540. package/src/modules/core/views/components/blocks/Card.vue +47 -24
  541. package/src/modules/core/views/components/blocks/CardStat.vue +27 -0
  542. package/src/modules/core/views/components/blocks/PopupAuth.vue +1 -1
  543. package/src/modules/core/views/components/layouts/Client.vue +5 -4
  544. package/src/modules/core/views/components/partials/BottomNavigationBar.vue +5 -5
  545. package/src/modules/core/views/components/partials/Header.vue +2 -2
  546. package/src/modules/core/views/components/partials/Navigation.vue +13 -14
  547. package/src/modules/core/views/components/partials/Sidebar.vue +4 -6
  548. package/src/modules/core/views/components/sections/SectionPageTitle.vue +23 -15
  549. package/src/modules/core/views/mixins/mixins.js +4 -3
  550. package/src/modules/core/views/router/addRoutes.js +1 -2
  551. package/src/modules/core/views/utils/vue-app-renderer.js +12 -0
  552. package/src/modules/events/components/pages/EditEventTickets.vue +1 -1
  553. package/src/modules/events/components/pages/Events.vue +1 -0
  554. package/src/modules/events/components/pages/EventsBackoffice.vue +23 -48
  555. package/src/modules/events/components/sections/List.vue +2 -2
  556. package/src/modules/events/events.client.js +44 -17
  557. package/src/modules/events/router/events.backoffice.router.js +80 -0
  558. package/src/modules/events/router/events.organization.router.js +80 -0
  559. package/src/modules/events/router/events.router.js +55 -325
  560. package/src/modules/events/router/events.user.router.js +49 -0
  561. package/src/modules/governance/TASK-TRACKER.MD +534 -39
  562. package/src/modules/governance/configs/navigation.initiative.config.js +30 -0
  563. package/src/modules/governance/controllers/routes/initiatives.routes.js +55 -8
  564. package/src/modules/governance/controllers/routes/{milestones.routes.js → sprints.routes.js} +22 -22
  565. package/src/modules/governance/controllers/routes/tasks.routes.js +2 -2
  566. package/src/modules/governance/governance.client.js +1 -4
  567. package/src/modules/governance/governance.server.js +6 -6
  568. package/src/modules/governance/middlewares/initiatives.verifier.js +60 -0
  569. package/src/modules/governance/middlewares/{milestones.verifier.js → sprints.verifier.js} +10 -10
  570. package/src/modules/governance/middlewares/tasks.verifier.js +4 -4
  571. package/src/modules/governance/middlewares/votings.verifier.js +25 -7
  572. package/src/modules/governance/models/{milestone.model.js → sprint.model.js} +11 -11
  573. package/src/modules/governance/models/task.model.js +4 -4
  574. package/src/modules/governance/models/voting.model.js +10 -5
  575. package/src/modules/governance/views/components/blocks/CardInitiativeItem.vue +8 -13
  576. package/src/modules/governance/views/components/blocks/{CardMilestoneItem.vue → CardSprintItem.vue} +16 -17
  577. package/src/modules/governance/views/components/blocks/CardTaskItem.vue +7 -9
  578. package/src/modules/governance/views/components/blocks/CardVotingItem.vue +7 -9
  579. package/src/modules/governance/views/components/pages/Governance.vue +13 -34
  580. package/src/modules/governance/views/components/pages/Initiative.vue +73 -154
  581. package/src/modules/governance/views/components/pages/InitiativeCreate.vue +44 -7
  582. package/src/modules/governance/views/components/pages/{Roadmap.vue → InitiativeSprints.vue} +70 -69
  583. package/src/modules/governance/views/components/pages/Initiatives.vue +23 -108
  584. package/src/modules/governance/views/components/pages/{Milestone.vue → Sprint.vue} +43 -41
  585. package/src/modules/governance/views/components/pages/SprintCreate.vue +55 -0
  586. package/src/modules/governance/views/components/pages/Task.vue +95 -88
  587. package/src/modules/governance/views/components/pages/TaskCreate.vue +47 -9
  588. package/src/modules/governance/views/components/pages/Tasks.vue +25 -21
  589. package/src/modules/governance/views/components/pages/Voting.vue +84 -68
  590. package/src/modules/governance/views/components/pages/VotingCreate.vue +48 -8
  591. package/src/modules/governance/views/components/pages/Votings.vue +12 -57
  592. package/src/modules/governance/views/components/partials/EmptyState.vue +1 -1
  593. package/src/modules/governance/views/components/partials/LinkedEntityCard.vue +23 -11
  594. package/src/modules/governance/views/components/partials/TaskStatusBadge.vue +1 -1
  595. package/src/modules/governance/views/components/partials/VoteForm.vue +3 -3
  596. package/src/modules/governance/views/components/partials/VotingResults.vue +13 -19
  597. package/src/modules/governance/views/components/sections/FormInitiativeDetails.vue +413 -15
  598. package/src/modules/governance/views/components/sections/FormSprintDetails.vue +156 -0
  599. package/src/modules/governance/views/components/sections/FormTaskDetails.vue +125 -21
  600. package/src/modules/governance/views/components/sections/FormVotingDetails.vue +136 -17
  601. package/src/modules/governance/views/components/sections/VoteForm.vue +2 -2
  602. package/src/modules/governance/views/router/governance.router.js +255 -151
  603. package/src/modules/governance/views/store/initiatives.js +23 -2
  604. package/src/modules/governance/views/store/sprints.js +102 -0
  605. package/src/modules/governance/views/store/tasks.js +25 -9
  606. package/src/modules/governance/views/store/votings.js +106 -27
  607. package/src/modules/icons/icons.client.js +1 -1
  608. package/src/modules/inventory/components/pages/InventoryEdit.vue +1 -1
  609. package/src/modules/music/components/sections/PopularTracks.vue +52 -0
  610. package/src/modules/music/music.client.js +8 -1
  611. package/src/modules/music/router/music.router.js +13 -1
  612. package/src/modules/notifications/components/elements/NotificationBadge.vue +8 -33
  613. package/src/modules/notifications/components/sections/NotificationPreferences.vue +110 -48
  614. package/src/modules/notifications/notifications.client.js +78 -57
  615. package/src/modules/notifications/router/notifications.router.js +32 -15
  616. package/src/modules/notifications/services/notification.service.js +15 -6
  617. package/src/modules/notifications/services/web-push.service.js +2 -0
  618. package/src/modules/orders/components/blocks/CardApplication.vue +20 -40
  619. package/src/modules/orders/components/blocks/CardCustomer.vue +35 -55
  620. package/src/modules/orders/components/blocks/CardOrderItem.vue +2 -2
  621. package/src/modules/orders/components/blocks/CardOrderUser.vue +2 -2
  622. package/src/modules/orders/components/forms/FormCustomerDetails.vue +2 -2
  623. package/src/modules/orders/components/pages/Applications.vue +59 -57
  624. package/src/modules/orders/components/pages/Customers.vue +40 -27
  625. package/src/modules/orders/components/pages/OrderCreate.vue +1 -1
  626. package/src/modules/orders/components/sections/ApplicationDetails.vue +1 -4
  627. package/src/modules/orders/components/sections/CustomerDetails.vue +1 -4
  628. package/src/modules/orders/controllers/orders.controller.js +113 -0
  629. package/src/modules/orders/middlewares/applications.verifier.js +13 -37
  630. package/src/modules/orders/middlewares/customers.verifier.js +44 -121
  631. package/src/modules/orders/models/customer.model.js +0 -1
  632. package/src/modules/orders/routes/applications.routes.js +108 -50
  633. package/src/modules/orders/routes/orders.routes.js +9 -1
  634. package/src/modules/organizations/components/blocks/CardOrganization.vue +12 -4
  635. package/src/modules/organizations/components/forms/DepartmentForm.vue +9 -4
  636. package/src/modules/organizations/components/pages/Members.vue +62 -1
  637. package/src/modules/organizations/components/pages/Organization.new.vue +17 -17
  638. package/src/modules/organizations/components/pages/Organization.vue +8 -1
  639. package/src/modules/organizations/components/pages/OrganizationBackoffice.vue +1 -1
  640. package/src/modules/organizations/components/pages/OrganizationEdit.vue +11 -4
  641. package/src/modules/organizations/components/pages/Organizations.vue +33 -46
  642. package/src/modules/organizations/controllers/invites.controller.js +19 -0
  643. package/src/modules/organizations/controllers/memberships.controller.js +1 -0
  644. package/src/modules/organizations/organizations.client.js +48 -7
  645. package/src/modules/organizations/router/organizations.backoffice.router.js +15 -0
  646. package/src/modules/organizations/router/organizations.router.js +72 -112
  647. package/src/modules/organizations/router/organizations.user.router.js +15 -0
  648. package/src/modules/pages/pages.client.js +1 -1
  649. package/src/modules/pages/views/router/pages.router.js +95 -15
  650. package/src/modules/products/components/blocks/CardPosition.vue +1 -1
  651. package/src/modules/products/components/pages/Products.vue +3 -3
  652. package/src/modules/rents/controllers/services/rents.services.js +1 -0
  653. package/src/modules/rents/rents.client.js +1 -1
  654. package/src/modules/rents/views/router/rents.router.js +93 -33
  655. package/src/modules/reports/reports.client.js +1 -1
  656. package/src/modules/wallet/wallet.client.js +1 -1
  657. package/src/styles/theme.scss +5 -3
  658. package/dist/engagement.schema-fh6W1fb_.js +0 -24
  659. package/dist/main-DQm5pwFO.js +0 -8213
  660. package/dist/martyrs/dist/main-DQm5pwFO.js +0 -1080
  661. package/dist/martyrs/dist/main-DQm5pwFO.js.map +0 -1
  662. package/dist/martyrs/dist/web-n_ivHO3v.js +0 -55
  663. package/dist/martyrs/dist/web-n_ivHO3v.js.map +0 -1
  664. package/dist/martyrs/src/components/Address/Address.vue.js.map +0 -1
  665. package/dist/martyrs/src/components/Button/Button.vue.js.map +0 -1
  666. package/dist/martyrs/src/components/Dropdown/Dropdown.vue2.js.map +0 -1
  667. package/dist/martyrs/src/components/EditImages/EditImages.vue2.js.map +0 -1
  668. package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue.js.map +0 -1
  669. package/dist/martyrs/src/components/Tab/Tab.vue2.js.map +0 -1
  670. package/dist/martyrs/src/modules/community/community.router.js +0 -124
  671. package/dist/martyrs/src/modules/community/community.router.js.map +0 -1
  672. package/dist/martyrs/src/modules/core/views/components/sections/Filters.vue2.js.map +0 -1
  673. package/dist/martyrs/src/modules/icons/icons.router.js.map +0 -1
  674. package/dist/martyrs/src/modules/music/music.router.js.map +0 -1
  675. package/dist/martyrs/src/modules/notifications/notifications.router.js.map +0 -1
  676. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +0 -200
  677. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js.map +0 -1
  678. package/dist/martyrs/src/modules/organizations/organizations.router.js +0 -145
  679. package/dist/martyrs/src/modules/organizations/organizations.router.js.map +0 -1
  680. package/dist/martyrs/src/modules/pages/pages.router.js.map +0 -1
  681. package/dist/martyrs/src/modules/rents/rents.router.js.map +0 -1
  682. package/dist/martyrs/src/modules/reports/reports.router.js.map +0 -1
  683. package/dist/martyrs.css +0 -1
  684. package/dist/node_modules/.pnpm/@capacitor_device@7.0.1_@capacitor_core@7.4.4/node_modules/@capacitor/device/dist/esm/index.js +0 -8
  685. package/dist/node_modules/.pnpm/@capacitor_device@7.0.1_@capacitor_core@7.4.4/node_modules/@capacitor/device/dist/esm/index.js.map +0 -1
  686. package/dist/node_modules/.pnpm/@capacitor_device@7.0.1_@capacitor_core@7.4.4/node_modules/@capacitor/device/dist/esm/web.js +0 -146
  687. package/dist/node_modules/.pnpm/@capacitor_device@7.0.1_@capacitor_core@7.4.4/node_modules/@capacitor/device/dist/esm/web.js.map +0 -1
  688. package/dist/node_modules/.pnpm/@capacitor_keyboard@7.0.1_@capacitor_core@7.4.4/node_modules/@capacitor/keyboard/dist/esm/definitions.js +0 -18
  689. package/dist/node_modules/.pnpm/@capacitor_keyboard@7.0.1_@capacitor_core@7.4.4/node_modules/@capacitor/keyboard/dist/esm/definitions.js.map +0 -1
  690. package/dist/node_modules/.pnpm/@capacitor_keyboard@7.0.1_@capacitor_core@7.4.4/node_modules/@capacitor/keyboard/dist/esm/index.js +0 -9
  691. package/dist/node_modules/.pnpm/@capacitor_keyboard@7.0.1_@capacitor_core@7.4.4/node_modules/@capacitor/keyboard/dist/esm/index.js.map +0 -1
  692. package/dist/node_modules/.pnpm/@capacitor_push-notifications@7.0.3_@capacitor_core@7.4.4/node_modules/@capacitor/push-notifications/dist/esm/index.js +0 -6
  693. package/dist/node_modules/.pnpm/@capacitor_push-notifications@7.0.3_@capacitor_core@7.4.4/node_modules/@capacitor/push-notifications/dist/esm/index.js.map +0 -1
  694. package/src/jit/.claude/settings.local.json +0 -10
  695. package/src/modules/community/community.router.js +0 -107
  696. package/src/modules/governance/governance.router.js +0 -350
  697. package/src/modules/governance/seed-governance.js +0 -348
  698. package/src/modules/governance/views/components/pages/InitiativeMilestones.vue +0 -159
  699. package/src/modules/governance/views/router/goverance.router.js +0 -290
  700. package/src/modules/governance/views/store/votes.js +0 -113
  701. package/src/modules/icons/icons.router.js +0 -29
  702. package/src/modules/marketplace/marketplace.router.js +0 -66
  703. package/src/modules/music/.claude/settings.local.json +0 -8
  704. package/src/modules/music/music.router.js +0 -188
  705. package/src/modules/notifications/notifications.router.js +0 -47
  706. package/src/modules/orders/orders.router.js +0 -255
  707. package/src/modules/organizations/organizations.router.js +0 -123
  708. package/src/modules/organizations/router/backoffice.router.js +0 -27
  709. package/src/modules/organizations/router/departments.router.js +0 -15
  710. package/src/modules/organizations/router/members.router.js +0 -20
  711. package/src/modules/pages/pages.router.js +0 -107
  712. package/src/modules/rents/rents.router.js +0 -115
  713. package/src/modules/reports/reports.router.js +0 -33
  714. package/src/modules/wallet/wallet.router.js +0 -45
@@ -6,19 +6,20 @@ import * as playlists from "./store/playlists.js";
6
6
  import * as search from "./store/search.js";
7
7
  import * as tracks from "./store/tracks.js";
8
8
  import addRoutes from "../core/views/router/addRoutes.js";
9
- import { getRoutes } from "./music.router.js";
10
- import _sfc_main$c from "./components/layouts/MusicBottomPlayer.vue.js";
11
- import _sfc_main$9 from "./components/pages/Album.vue.js";
12
- import _sfc_main$a from "./components/pages/Artist.vue.js";
13
- import _sfc_main$b from "./components/pages/MusicHome.vue.js";
14
- import _sfc_main$6 from "./components/pages/MusicLibrary.vue.js";
15
- import _sfc_main$5 from "./components/pages/TrackCreate.vue.js";
16
- import _sfc_main$8 from "./components/pages/Playlist.vue.js";
9
+ import { getRoutes } from "./router/music.router.js";
10
+ import _sfc_main$d from "./components/layouts/MusicBottomPlayer.vue.js";
11
+ import _sfc_main$a from "./components/pages/Album.vue.js";
12
+ import _sfc_main$b from "./components/pages/Artist.vue.js";
13
+ import _sfc_main$c from "./components/pages/MusicHome.vue.js";
14
+ import _sfc_main$7 from "./components/pages/MusicLibrary.vue.js";
15
+ import _sfc_main$6 from "./components/pages/TrackCreate.vue.js";
16
+ import _sfc_main$9 from "./components/pages/Playlist.vue.js";
17
17
  import SearchResults from "./components/pages/SearchResults.vue.js";
18
- import _sfc_main$7 from "./components/pages/Track.vue.js";
18
+ import _sfc_main$8 from "./components/pages/Track.vue.js";
19
19
  import MusicPlayer from "./components/player/MusicPlayer.vue.js";
20
20
  import TrackProgress from "./components/player/TrackProgress.vue.js";
21
21
  import VolumeControl from "./components/player/VolumeControl.vue.js";
22
+ import _sfc_main$5 from "./components/sections/PopularTracks.vue.js";
22
23
  import AlbumCard from "./components/cards/AlbumCard.vue.js";
23
24
  import ArtistCard from "./components/cards/ArtistCard.vue.js";
24
25
  import PlaylistCard from "./components/cards/PlaylistCard.vue.js";
@@ -74,20 +75,22 @@ const ModuleMusic = {
74
75
  },
75
76
  components: {
76
77
  // Layouts
77
- MusicBottomPlayer: _sfc_main$c,
78
+ MusicBottomPlayer: _sfc_main$d,
78
79
  // Pages
79
- MusicHome: _sfc_main$b,
80
+ MusicHome: _sfc_main$c,
80
81
  SearchResults,
81
- Artist: _sfc_main$a,
82
- Album: _sfc_main$9,
83
- Playlist: _sfc_main$8,
84
- Track: _sfc_main$7,
85
- MusicLibrary: _sfc_main$6,
86
- TrackCreate: _sfc_main$5,
82
+ Artist: _sfc_main$b,
83
+ Album: _sfc_main$a,
84
+ Playlist: _sfc_main$9,
85
+ Track: _sfc_main$8,
86
+ MusicLibrary: _sfc_main$7,
87
+ TrackCreate: _sfc_main$6,
87
88
  // Player Components
88
89
  MusicPlayer,
89
90
  TrackProgress,
90
91
  VolumeControl,
92
+ // Sections
93
+ PopularTracks: _sfc_main$5,
91
94
  // Cards
92
95
  TrackListCard: _sfc_main$4,
93
96
  AlbumCard,
@@ -103,23 +106,24 @@ const ModuleMusic = {
103
106
  }
104
107
  };
105
108
  export {
106
- _sfc_main$9 as Album,
109
+ _sfc_main$a as Album,
107
110
  AlbumCard,
108
111
  _sfc_main$2 as AlbumForm,
109
- _sfc_main$a as Artist,
112
+ _sfc_main$b as Artist,
110
113
  ArtistCard,
111
114
  _sfc_main$3 as ArtistForm,
112
- _sfc_main$c as MusicBottomPlayer,
113
- _sfc_main$b as MusicHome,
114
- _sfc_main$6 as MusicLibrary,
115
+ _sfc_main$d as MusicBottomPlayer,
116
+ _sfc_main$c as MusicHome,
117
+ _sfc_main$7 as MusicLibrary,
115
118
  MusicPlayer,
116
- _sfc_main$8 as Playlist,
119
+ _sfc_main$9 as Playlist,
117
120
  PlaylistCard,
118
121
  _sfc_main$1 as PlaylistForm,
122
+ _sfc_main$5 as PopularTracks,
119
123
  SearchForm,
120
124
  SearchResults,
121
- _sfc_main$7 as Track,
122
- _sfc_main$5 as TrackCreate,
125
+ _sfc_main$8 as Track,
126
+ _sfc_main$6 as TrackCreate,
123
127
  _sfc_main as TrackForm,
124
128
  _sfc_main$4 as TrackListCard,
125
129
  TrackProgress,
@@ -1 +1 @@
1
- {"version":3,"file":"music.client.js","sources":["../../../../../src/modules/music/music.client.js"],"sourcesContent":["// Store modules\nimport * as storeAlbums from './store/albums.js';\nimport * as storeArtists from './store/artists.js';\nimport * as storeGenres from './store/genres.js';\nimport * as storePlayer from './store/player.js';\nimport * as storePlaylists from './store/playlists.js';\nimport * as storeSearch from './store/search.js';\nimport * as storeTracks from './store/tracks.js';\n\n// Router\nimport addRoutes from '@martyrs/src/modules/core/views/router/addRoutes.js';\nimport { getRoutes } from './music.router.js';\n\n// Layouts\nimport MusicBottomPlayer from './components/layouts/MusicBottomPlayer.vue';\n\n// Pages\nimport Album from './components/pages/Album.vue';\nimport Artist from './components/pages/Artist.vue';\nimport MusicHome from './components/pages/MusicHome.vue';\nimport MusicLibrary from './components/pages/MusicLibrary.vue';\nimport TrackCreate from './components/pages/TrackCreate.vue';\nimport Playlist from './components/pages/Playlist.vue';\nimport SearchResults from './components/pages/SearchResults.vue';\nimport Track from './components/pages/Track.vue';\n\n// Components - Player\nimport MusicPlayer from './components/player/MusicPlayer.vue';\nimport TrackProgress from './components/player/TrackProgress.vue';\nimport VolumeControl from './components/player/VolumeControl.vue';\n\n// Components - Cards\nimport AlbumCard from './components/cards/AlbumCard.vue';\nimport ArtistCard from './components/cards/ArtistCard.vue';\nimport PlaylistCard from './components/cards/PlaylistCard.vue';\nimport TrackListCard from './components/cards/TrackListCard.vue';\n\n\n// Components - Forms\nimport ArtistForm from './components/forms/ArtistForm.vue';\nimport AlbumForm from './components/forms/AlbumForm.vue';\nimport PlaylistForm from './components/forms/PlaylistForm.vue';\nimport SearchForm from './components/forms/SearchForm.vue';\nimport TrackForm from './components/forms/TrackForm.vue';\n\n// WebSocket integration for streaming\nimport wsManager from '@martyrs/src/modules/core/views/classes/ws.manager.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 routes = getRoutes(options);\n routes.forEach(({ parentName, config }) => {\n addRoutes(router, { ...config, parentName });\n });\n\n // Register store modules\n store.addStore('tracks', storeTracks);\n store.addStore('playlists', storePlaylists);\n store.addStore('albums', storeAlbums);\n store.addStore('artists', storeArtists);\n store.addStore('genres', storeGenres);\n store.addStore('player', storePlayer);\n store.addStore('search', storeSearch);\n\n // Set up WebSocket subscription for music streaming\n if (options.enableStreaming !== false && app.config.globalProperties.WSS_URL) {\n wsManager.initialize({\n wsUrl: process.env.WSS_URL,\n maxReconnectAttempts: 10,\n reconnectDelay: 2000,\n });\n\n // Subscribe to music streaming module when authenticated\n if (options.userId) {\n wsManager\n .connect(options.userId)\n .then(() => {\n wsManager.subscribeModule('music-streaming');\n })\n .catch(err => {\n console.error('Failed to connect to WebSocket for music streaming:', err);\n });\n }\n }\n\n // Register global components if needed\n app.component('MusicPlayer', MusicPlayer);\n}\n\n// Module export\nconst ModuleMusic = {\n initialize: initializeMusic,\n views: {\n store: {\n storeTracks,\n storePlaylists,\n storeAlbums,\n storeArtists,\n storeGenres,\n storePlayer,\n storeSearch,\n },\n router: {\n getRoutes,\n },\n components: {\n // Layouts\n MusicBottomPlayer,\n // Pages\n MusicHome,\n SearchResults,\n Artist,\n Album,\n Playlist,\n Track,\n MusicLibrary,\n TrackCreate,\n // Player Components\n MusicPlayer,\n TrackProgress,\n VolumeControl,\n // Cards\n TrackListCard,\n AlbumCard,\n PlaylistCard,\n ArtistCard,\n // Forms\n ArtistForm,\n AlbumForm,\n PlaylistForm,\n SearchForm,\n TrackForm,\n },\n },\n};\n\n// Named exports for direct component imports\nexport {\n AlbumCard,\n Album,\n ArtistCard,\n Artist,\n // Pages\n MusicHome,\n // Layout\n MusicBottomPlayer,\n MusicLibrary,\n // Player Components\n MusicPlayer,\n TrackCreate,\n PlaylistCard,\n Playlist,\n // Forms\n ArtistForm,\n AlbumForm,\n PlaylistForm,\n SearchForm,\n SearchResults,\n // Cards\n TrackListCard,\n Track,\n TrackForm,\n TrackProgress,\n VolumeControl,\n // Router\n getRoutes,\n storeAlbums,\n storeArtists,\n storeGenres,\n storePlayer,\n storePlaylists,\n storeSearch,\n // Store modules\n storeTracks,\n};\n\n// Default export\nexport default ModuleMusic;\n"],"names":["config","storeTracks","storePlaylists","storeAlbums","storeArtists","storeGenres","storePlayer","storeSearch","MusicBottomPlayer","MusicHome","Artist","Album","Playlist","Track","MusicLibrary","TrackCreate","TrackListCard","ArtistForm","AlbumForm","PlaylistForm","TrackForm"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwDA,SAAS,gBAAgB,KAAK,OAAO,QAAQ,QAAQ,UAAU,IAAI;AACjE,QAAM,SAAS,UAAU,OAAO;AAChC,SAAO,QAAQ,CAAC,EAAE,YAAY,QAAAA,QAAM,MAAO;AACzC,cAAU,QAAQ,EAAE,GAAGA,SAAQ,WAAU,CAAE;AAAA,EAC7C,CAAC;AAGD,QAAM,SAAS,UAAUC,MAAW;AACpC,QAAM,SAAS,aAAaC,SAAc;AAC1C,QAAM,SAAS,UAAUC,MAAW;AACpC,QAAM,SAAS,WAAWC,OAAY;AACtC,QAAM,SAAS,UAAUC,MAAW;AACpC,QAAM,SAAS,UAAUC,MAAW;AACpC,QAAM,SAAS,UAAUC,MAAW;AAGpC,MAAI,QAAQ,oBAAoB,SAAS,IAAI,OAAO,iBAAiB,SAAS;AAC5E,cAAU,WAAW;AAAA,MACnB,OAAO,QAAQ,IAAI;AAAA,MACnB,sBAAsB;AAAA,MACtB,gBAAgB;AAAA,IACtB,CAAK;AAGD,QAAI,QAAQ,QAAQ;AAClB,gBACG,QAAQ,QAAQ,MAAM,EACtB,KAAK,MAAM;AACV,kBAAU,gBAAgB,iBAAiB;AAAA,MAC7C,CAAC,EACA,MAAM,SAAO;AACZ,gBAAQ,MAAM,uDAAuD,GAAG;AAAA,MAC1E,CAAC;AAAA,IACL;AAAA,EACF;AAGA,MAAI,UAAU,eAAe,WAAW;AAC1C;AAGK,MAAC,cAAc;AAAA,EAClB,YAAY;AAAA,EACZ,OAAO;AAAA,IACL,OAAO;AAAA,MACX,aAAMN;AAAAA,MACN,gBAAMC;AAAAA,MACN,aAAMC;AAAAA,MACN,cAAMC;AAAAA,MACN,aAAMC;AAAAA,MACN,aAAMC;AAAAA,MACN,aAAMC;AAAAA,IACN;AAAA,IACI,QAAQ;AAAA,MACN;AAAA,IACN;AAAA,IACI,YAAY;AAAA;AAAA,MAEhB,mBAAMC;AAAAA;AAAAA,MAEN,WAAMC;AAAAA,MACA;AAAA,MACN,QAAMC;AAAAA,MACN,OAAMC;AAAAA,MACN,UAAMC;AAAAA,MACN,OAAMC;AAAAA,MACN,cAAMC;AAAAA,MACN,aAAMC;AAAAA;AAAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MAEN,eAAMC;AAAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MAEN,YAAMC;AAAAA,MACN,WAAMC;AAAAA,MACN,cAAMC;AAAAA,MACA;AAAA,MACN,WAAMC;AAAAA,IACN;AAAA,EACA;AACA;"}
1
+ {"version":3,"file":"music.client.js","sources":["../../../../../src/modules/music/music.client.js"],"sourcesContent":["// Store modules\nimport * as storeAlbums from './store/albums.js';\nimport * as storeArtists from './store/artists.js';\nimport * as storeGenres from './store/genres.js';\nimport * as storePlayer from './store/player.js';\nimport * as storePlaylists from './store/playlists.js';\nimport * as storeSearch from './store/search.js';\nimport * as storeTracks from './store/tracks.js';\n\n// Router\nimport addRoutes from '@martyrs/src/modules/core/views/router/addRoutes.js';\nimport { getRoutes } from './router/music.router.js';\n\n// Layouts\nimport MusicBottomPlayer from './components/layouts/MusicBottomPlayer.vue';\n\n// Pages\nimport Album from './components/pages/Album.vue';\nimport Artist from './components/pages/Artist.vue';\nimport MusicHome from './components/pages/MusicHome.vue';\nimport MusicLibrary from './components/pages/MusicLibrary.vue';\nimport TrackCreate from './components/pages/TrackCreate.vue';\nimport Playlist from './components/pages/Playlist.vue';\nimport SearchResults from './components/pages/SearchResults.vue';\nimport Track from './components/pages/Track.vue';\n\n// Components - Player\nimport MusicPlayer from './components/player/MusicPlayer.vue';\nimport TrackProgress from './components/player/TrackProgress.vue';\nimport VolumeControl from './components/player/VolumeControl.vue';\n\n// Components - Sections\nimport PopularTracks from './components/sections/PopularTracks.vue';\n\n// Components - Cards\nimport AlbumCard from './components/cards/AlbumCard.vue';\nimport ArtistCard from './components/cards/ArtistCard.vue';\nimport PlaylistCard from './components/cards/PlaylistCard.vue';\nimport TrackListCard from './components/cards/TrackListCard.vue';\n\n\n// Components - Forms\nimport ArtistForm from './components/forms/ArtistForm.vue';\nimport AlbumForm from './components/forms/AlbumForm.vue';\nimport PlaylistForm from './components/forms/PlaylistForm.vue';\nimport SearchForm from './components/forms/SearchForm.vue';\nimport TrackForm from './components/forms/TrackForm.vue';\n\n// WebSocket integration for streaming\nimport wsManager from '@martyrs/src/modules/core/views/classes/ws.manager.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 routes = getRoutes(options);\n routes.forEach(({ parentName, config }) => {\n addRoutes(router, { ...config, parentName });\n });\n\n // Register store modules\n store.addStore('tracks', storeTracks);\n store.addStore('playlists', storePlaylists);\n store.addStore('albums', storeAlbums);\n store.addStore('artists', storeArtists);\n store.addStore('genres', storeGenres);\n store.addStore('player', storePlayer);\n store.addStore('search', storeSearch);\n\n // Set up WebSocket subscription for music streaming\n if (options.enableStreaming !== false && app.config.globalProperties.WSS_URL) {\n wsManager.initialize({\n wsUrl: process.env.WSS_URL,\n maxReconnectAttempts: 10,\n reconnectDelay: 2000,\n });\n\n // Subscribe to music streaming module when authenticated\n if (options.userId) {\n wsManager\n .connect(options.userId)\n .then(() => {\n wsManager.subscribeModule('music-streaming');\n })\n .catch(err => {\n console.error('Failed to connect to WebSocket for music streaming:', err);\n });\n }\n }\n\n // Register global components if needed\n app.component('MusicPlayer', MusicPlayer);\n}\n\n// Module export\nconst ModuleMusic = {\n initialize: initializeMusic,\n views: {\n store: {\n storeTracks,\n storePlaylists,\n storeAlbums,\n storeArtists,\n storeGenres,\n storePlayer,\n storeSearch,\n },\n router: {\n getRoutes,\n },\n components: {\n // Layouts\n MusicBottomPlayer,\n // Pages\n MusicHome,\n SearchResults,\n Artist,\n Album,\n Playlist,\n Track,\n MusicLibrary,\n TrackCreate,\n // Player Components\n MusicPlayer,\n TrackProgress,\n VolumeControl,\n // Sections\n PopularTracks,\n // Cards\n TrackListCard,\n AlbumCard,\n PlaylistCard,\n ArtistCard,\n // Forms\n ArtistForm,\n AlbumForm,\n PlaylistForm,\n SearchForm,\n TrackForm,\n },\n },\n};\n\n// Named exports for direct component imports\nexport {\n AlbumCard,\n Album,\n ArtistCard,\n Artist,\n // Sections\n PopularTracks,\n // Pages\n MusicHome,\n // Layout\n MusicBottomPlayer,\n MusicLibrary,\n // Player Components\n MusicPlayer,\n TrackCreate,\n PlaylistCard,\n Playlist,\n // Forms\n ArtistForm,\n AlbumForm,\n PlaylistForm,\n SearchForm,\n SearchResults,\n // Cards\n TrackListCard,\n Track,\n TrackForm,\n TrackProgress,\n VolumeControl,\n // Router\n getRoutes,\n storeAlbums,\n storeArtists,\n storeGenres,\n storePlayer,\n storePlaylists,\n storeSearch,\n // Store modules\n storeTracks,\n};\n\n// Default export\nexport default ModuleMusic;\n"],"names":["config","storeTracks","storePlaylists","storeAlbums","storeArtists","storeGenres","storePlayer","storeSearch","MusicBottomPlayer","MusicHome","Artist","Album","Playlist","Track","MusicLibrary","TrackCreate","PopularTracks","TrackListCard","ArtistForm","AlbumForm","PlaylistForm","TrackForm"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2DA,SAAS,gBAAgB,KAAK,OAAO,QAAQ,QAAQ,UAAU,IAAI;AACjE,QAAM,SAAS,UAAU,OAAO;AAChC,SAAO,QAAQ,CAAC,EAAE,YAAY,QAAAA,QAAM,MAAO;AACzC,cAAU,QAAQ,EAAE,GAAGA,SAAQ,WAAU,CAAE;AAAA,EAC7C,CAAC;AAGD,QAAM,SAAS,UAAUC,MAAW;AACpC,QAAM,SAAS,aAAaC,SAAc;AAC1C,QAAM,SAAS,UAAUC,MAAW;AACpC,QAAM,SAAS,WAAWC,OAAY;AACtC,QAAM,SAAS,UAAUC,MAAW;AACpC,QAAM,SAAS,UAAUC,MAAW;AACpC,QAAM,SAAS,UAAUC,MAAW;AAGpC,MAAI,QAAQ,oBAAoB,SAAS,IAAI,OAAO,iBAAiB,SAAS;AAC5E,cAAU,WAAW;AAAA,MACnB,OAAO,QAAQ,IAAI;AAAA,MACnB,sBAAsB;AAAA,MACtB,gBAAgB;AAAA,IACtB,CAAK;AAGD,QAAI,QAAQ,QAAQ;AAClB,gBACG,QAAQ,QAAQ,MAAM,EACtB,KAAK,MAAM;AACV,kBAAU,gBAAgB,iBAAiB;AAAA,MAC7C,CAAC,EACA,MAAM,SAAO;AACZ,gBAAQ,MAAM,uDAAuD,GAAG;AAAA,MAC1E,CAAC;AAAA,IACL;AAAA,EACF;AAGA,MAAI,UAAU,eAAe,WAAW;AAC1C;AAGK,MAAC,cAAc;AAAA,EAClB,YAAY;AAAA,EACZ,OAAO;AAAA,IACL,OAAO;AAAA,MACX,aAAMN;AAAAA,MACN,gBAAMC;AAAAA,MACN,aAAMC;AAAAA,MACN,cAAMC;AAAAA,MACN,aAAMC;AAAAA,MACN,aAAMC;AAAAA,MACN,aAAMC;AAAAA,IACN;AAAA,IACI,QAAQ;AAAA,MACN;AAAA,IACN;AAAA,IACI,YAAY;AAAA;AAAA,MAEhB,mBAAMC;AAAAA;AAAAA,MAEN,WAAMC;AAAAA,MACA;AAAA,MACN,QAAMC;AAAAA,MACN,OAAMC;AAAAA,MACN,UAAMC;AAAAA,MACN,OAAMC;AAAAA,MACN,cAAMC;AAAAA,MACN,aAAMC;AAAAA;AAAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MAEN,eAAMC;AAAAA;AAAAA,MAEN,eAAMC;AAAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MAEN,YAAMC;AAAAA,MACN,WAAMC;AAAAA,MACN,cAAMC;AAAAA,MACA;AAAA,MACN,WAAMC;AAAAA,IACN;AAAA,EACA;AACA;"}
@@ -1,4 +1,4 @@
1
- import _sfc_main from "./components/layouts/MusicBottomPlayer.vue.js";
1
+ import _sfc_main from "../components/layouts/MusicBottomPlayer.vue.js";
2
2
  function createArtistRoutes() {
3
3
  return [
4
4
  {
@@ -6,7 +6,7 @@ function createArtistRoutes() {
6
6
  name: "artist-create",
7
7
  component: () => import(
8
8
  /* webpackChunkName: 'music-artist-create' */
9
- "./components/pages/ArtistCreate.vue.js"
9
+ "../components/pages/ArtistCreate.vue.js"
10
10
  ),
11
11
  meta: {
12
12
  title: "Create Artist",
@@ -18,7 +18,7 @@ function createArtistRoutes() {
18
18
  name: "artist-edit",
19
19
  component: () => import(
20
20
  /* webpackChunkName: 'music-artist-edit' */
21
- "./components/pages/ArtistEdit.vue.js"
21
+ "../components/pages/ArtistEdit.vue.js"
22
22
  ),
23
23
  props: true,
24
24
  meta: {
@@ -31,7 +31,7 @@ function createArtistRoutes() {
31
31
  name: "artist",
32
32
  component: () => import(
33
33
  /* webpackChunkName: 'music-artist' */
34
- "./components/pages/Artist.vue.js"
34
+ "../components/pages/Artist.vue.js"
35
35
  ),
36
36
  props: true,
37
37
  meta: {
@@ -47,7 +47,7 @@ function createAlbumRoutes() {
47
47
  name: "album-create",
48
48
  component: () => import(
49
49
  /* webpackChunkName: 'music-album-create' */
50
- "./components/pages/AlbumCreate.vue.js"
50
+ "../components/pages/AlbumCreate.vue.js"
51
51
  ),
52
52
  meta: {
53
53
  title: "Create Album",
@@ -59,7 +59,7 @@ function createAlbumRoutes() {
59
59
  name: "album-edit",
60
60
  component: () => import(
61
61
  /* webpackChunkName: 'music-album-edit' */
62
- "./components/pages/AlbumEdit.vue.js"
62
+ "../components/pages/AlbumEdit.vue.js"
63
63
  ),
64
64
  props: true,
65
65
  meta: {
@@ -72,7 +72,7 @@ function createAlbumRoutes() {
72
72
  name: "album",
73
73
  component: () => import(
74
74
  /* webpackChunkName: 'music-album' */
75
- "./components/pages/Album.vue.js"
75
+ "../components/pages/Album.vue.js"
76
76
  ),
77
77
  props: true,
78
78
  meta: {
@@ -88,7 +88,7 @@ function createTrackRoutes() {
88
88
  name: "track-create",
89
89
  component: () => import(
90
90
  /* webpackChunkName: 'music-track-create' */
91
- "./components/pages/TrackCreate.vue.js"
91
+ "../components/pages/TrackCreate.vue.js"
92
92
  ),
93
93
  meta: {
94
94
  title: "Create Track",
@@ -100,7 +100,7 @@ function createTrackRoutes() {
100
100
  name: "track-edit",
101
101
  component: () => import(
102
102
  /* webpackChunkName: 'music-track-edit' */
103
- "./components/pages/TrackEdit.vue.js"
103
+ "../components/pages/TrackEdit.vue.js"
104
104
  ),
105
105
  props: true,
106
106
  meta: {
@@ -113,7 +113,7 @@ function createTrackRoutes() {
113
113
  name: "track",
114
114
  component: () => import(
115
115
  /* webpackChunkName: 'music-track' */
116
- "./components/pages/Track.vue.js"
116
+ "../components/pages/Track.vue.js"
117
117
  ),
118
118
  props: true,
119
119
  meta: {
@@ -129,7 +129,7 @@ function createPlaylistRoutes() {
129
129
  name: "playlist-create",
130
130
  component: () => import(
131
131
  /* webpackChunkName: 'music-playlist-create' */
132
- "./components/pages/PlaylistCreate.vue.js"
132
+ "../components/pages/PlaylistCreate.vue.js"
133
133
  ),
134
134
  meta: {
135
135
  title: "Create Playlist",
@@ -141,7 +141,7 @@ function createPlaylistRoutes() {
141
141
  name: "playlist-edit",
142
142
  component: () => import(
143
143
  /* webpackChunkName: 'music-playlist-edit' */
144
- "./components/pages/PlaylistEdit.vue.js"
144
+ "../components/pages/PlaylistEdit.vue.js"
145
145
  ),
146
146
  props: true,
147
147
  meta: {
@@ -154,7 +154,7 @@ function createPlaylistRoutes() {
154
154
  name: "playlist",
155
155
  component: () => import(
156
156
  /* webpackChunkName: 'music-playlist' */
157
- "./components/pages/Playlist.vue.js"
157
+ "../components/pages/Playlist.vue.js"
158
158
  ),
159
159
  props: true,
160
160
  meta: {
@@ -170,7 +170,7 @@ function buildMusicRoutes() {
170
170
  name: "music-home",
171
171
  component: () => import(
172
172
  /* webpackChunkName: 'music-home' */
173
- "./components/pages/MusicHome.vue.js"
173
+ "../components/pages/MusicHome.vue.js"
174
174
  ),
175
175
  meta: {
176
176
  title: "Music Home"
@@ -181,7 +181,7 @@ function buildMusicRoutes() {
181
181
  name: "music-search",
182
182
  component: () => import(
183
183
  /* webpackChunkName: 'music-search' */
184
- "./components/pages/SearchResults.vue.js"
184
+ "../components/pages/SearchResults.vue.js"
185
185
  ),
186
186
  meta: {
187
187
  title: "Search Music"
@@ -192,7 +192,7 @@ function buildMusicRoutes() {
192
192
  name: "music-library",
193
193
  component: () => import(
194
194
  /* webpackChunkName: 'music-library' */
195
- "./components/pages/MusicLibrary.vue.js"
195
+ "../components/pages/MusicLibrary.vue.js"
196
196
  ),
197
197
  meta: {
198
198
  title: "My Library",
@@ -0,0 +1 @@
1
+ {"version":3,"file":"music.router.js","sources":["../../../../../../src/modules/music/router/music.router.js"],"sourcesContent":["import PlayerMusic from '../components/layouts/MusicBottomPlayer.vue'\n\n\nfunction createArtistRoutes() {\n return [\n {\n path: 'artists/create',\n name: 'artist-create',\n component: () => import(/* webpackChunkName: 'music-artist-create' */ '../components/pages/ArtistCreate.vue'),\n meta: {\n title: 'Create Artist',\n requiresAuth: true,\n },\n },\n {\n path: 'artists/:url/edit',\n name: 'artist-edit',\n component: () => import(/* webpackChunkName: 'music-artist-edit' */ '../components/pages/ArtistEdit.vue'),\n props: true,\n meta: {\n title: 'Edit Artist',\n requiresAuth: true,\n },\n },\n {\n path: 'artists/:url',\n name: 'artist',\n component: () => import(/* webpackChunkName: 'music-artist' */ '../components/pages/Artist.vue'),\n props: true,\n meta: {\n title: 'Artist',\n },\n },\n ];\n}\n\nfunction createAlbumRoutes() {\n return [\n {\n path: 'albums/create',\n name: 'album-create',\n component: () => import(/* webpackChunkName: 'music-album-create' */ '../components/pages/AlbumCreate.vue'),\n meta: {\n title: 'Create Album',\n requiresAuth: true,\n },\n },\n {\n path: 'albums/:url/edit',\n name: 'album-edit',\n component: () => import(/* webpackChunkName: 'music-album-edit' */ '../components/pages/AlbumEdit.vue'),\n props: true,\n meta: {\n title: 'Edit Album',\n requiresAuth: true,\n },\n },\n {\n path: 'albums/:url',\n name: 'album',\n component: () => import(/* webpackChunkName: 'music-album' */ '../components/pages/Album.vue'),\n props: true,\n meta: {\n title: 'Album',\n },\n },\n ];\n}\n\nfunction createTrackRoutes() {\n return [\n {\n path: 'tracks/create',\n name: 'track-create',\n component: () => import(/* webpackChunkName: 'music-track-create' */ '../components/pages/TrackCreate.vue'),\n meta: {\n title: 'Create Track',\n requiresAuth: true,\n },\n },\n {\n path: 'tracks/:url/edit',\n name: 'track-edit',\n component: () => import(/* webpackChunkName: 'music-track-edit' */ '../components/pages/TrackEdit.vue'),\n props: true,\n meta: {\n title: 'Edit Track',\n requiresAuth: true,\n },\n },\n {\n path: 'tracks/:url',\n name: 'track',\n component: () => import(/* webpackChunkName: 'music-track' */ '../components/pages/Track.vue'),\n props: true,\n meta: {\n title: 'Track',\n },\n },\n ];\n}\n\nfunction createPlaylistRoutes() {\n return [\n {\n path: 'playlists/create',\n name: 'playlist-create',\n component: () => import(/* webpackChunkName: 'music-playlist-create' */ '../components/pages/PlaylistCreate.vue'),\n meta: {\n title: 'Create Playlist',\n requiresAuth: true,\n },\n },\n {\n path: 'playlists/:url/edit',\n name: 'playlist-edit',\n component: () => import(/* webpackChunkName: 'music-playlist-edit' */ '../components/pages/PlaylistEdit.vue'),\n props: true,\n meta: {\n title: 'Edit Playlist',\n requiresAuth: true,\n },\n },\n {\n path: 'playlists/:url',\n name: 'playlist',\n component: () => import(/* webpackChunkName: 'music-playlist' */ '../components/pages/Playlist.vue'),\n props: true,\n meta: {\n title: 'Playlist',\n },\n },\n ];\n}\n\nfunction buildMusicRoutes() {\n return [\n {\n path: '',\n name: 'music-home',\n component: () => import(/* webpackChunkName: 'music-home' */ '../components/pages/MusicHome.vue'),\n meta: {\n title: 'Music Home',\n },\n },\n {\n path: 'search',\n name: 'music-search',\n component: () => import(/* webpackChunkName: 'music-search' */ '../components/pages/SearchResults.vue'),\n meta: {\n title: 'Search Music',\n },\n },\n {\n path: 'library',\n name: 'music-library',\n component: () => import(/* webpackChunkName: 'music-library' */ '../components/pages/MusicLibrary.vue'),\n meta: {\n title: 'My Library',\n requiresAuth: true,\n },\n },\n ...createArtistRoutes(),\n ...createAlbumRoutes(),\n ...createTrackRoutes(),\n ...createPlaylistRoutes(),\n ];\n}\n\nexport function getRoutes(options = {}) {\n const route = options.route || 'Home';\n const routes = [];\n\n routes.push({\n parentName: route,\n config: {\n basePath: options.basePath || 'music',\n meta: {\n player: PlayerMusic,\n },\n routes: buildMusicRoutes(options),\n },\n });\n\n return routes;\n}\n\nexport default { getRoutes };\n"],"names":["PlayerMusic"],"mappings":";AAGA,SAAS,qBAAqB;AAC5B,SAAO;AAAA,IACL;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM;AAAA;AAAA,QAAqD;AAAA,MAAsC;AAAA,MAC5G,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,cAAc;AAAA,MACtB;AAAA,IACA;AAAA,IACI;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM;AAAA;AAAA,QAAmD;AAAA,MAAoC;AAAA,MACxG,OAAO;AAAA,MACP,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,cAAc;AAAA,MACtB;AAAA,IACA;AAAA,IACI;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM;AAAA;AAAA,QAA8C;AAAA,MAAgC;AAAA,MAC/F,OAAO;AAAA,MACP,MAAM;AAAA,QACJ,OAAO;AAAA,MACf;AAAA,IACA;AAAA,EACA;AACA;AAEA,SAAS,oBAAoB;AAC3B,SAAO;AAAA,IACL;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM;AAAA;AAAA,QAAoD;AAAA,MAAqC;AAAA,MAC1G,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,cAAc;AAAA,MACtB;AAAA,IACA;AAAA,IACI;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM;AAAA;AAAA,QAAkD;AAAA,MAAmC;AAAA,MACtG,OAAO;AAAA,MACP,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,cAAc;AAAA,MACtB;AAAA,IACA;AAAA,IACI;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM;AAAA;AAAA,QAA6C;AAAA,MAA+B;AAAA,MAC7F,OAAO;AAAA,MACP,MAAM;AAAA,QACJ,OAAO;AAAA,MACf;AAAA,IACA;AAAA,EACA;AACA;AAEA,SAAS,oBAAoB;AAC3B,SAAO;AAAA,IACL;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM;AAAA;AAAA,QAAoD;AAAA,MAAqC;AAAA,MAC1G,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,cAAc;AAAA,MACtB;AAAA,IACA;AAAA,IACI;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM;AAAA;AAAA,QAAkD;AAAA,MAAmC;AAAA,MACtG,OAAO;AAAA,MACP,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,cAAc;AAAA,MACtB;AAAA,IACA;AAAA,IACI;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM;AAAA;AAAA,QAA6C;AAAA,MAA+B;AAAA,MAC7F,OAAO;AAAA,MACP,MAAM;AAAA,QACJ,OAAO;AAAA,MACf;AAAA,IACA;AAAA,EACA;AACA;AAEA,SAAS,uBAAuB;AAC9B,SAAO;AAAA,IACL;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM;AAAA;AAAA,QAAuD;AAAA,MAAwC;AAAA,MAChH,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,cAAc;AAAA,MACtB;AAAA,IACA;AAAA,IACI;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM;AAAA;AAAA,QAAqD;AAAA,MAAsC;AAAA,MAC5G,OAAO;AAAA,MACP,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,cAAc;AAAA,MACtB;AAAA,IACA;AAAA,IACI;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM;AAAA;AAAA,QAAgD;AAAA,MAAkC;AAAA,MACnG,OAAO;AAAA,MACP,MAAM;AAAA,QACJ,OAAO;AAAA,MACf;AAAA,IACA;AAAA,EACA;AACA;AAEA,SAAS,mBAAmB;AAC1B,SAAO;AAAA,IACL;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM;AAAA;AAAA,QAA4C;AAAA,MAAmC;AAAA,MAChG,MAAM;AAAA,QACJ,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM;AAAA;AAAA,QAA8C;AAAA,MAAuC;AAAA,MACtG,MAAM;AAAA,QACJ,OAAO;AAAA,MACf;AAAA,IACA;AAAA,IACI;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM;AAAA;AAAA,QAA+C;AAAA,MAAsC;AAAA,MACtG,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,cAAc;AAAA,MACtB;AAAA,IACA;AAAA,IACI,GAAG,mBAAkB;AAAA,IACrB,GAAG,kBAAiB;AAAA,IACpB,GAAG,kBAAiB;AAAA,IACpB,GAAG,qBAAoB;AAAA,EAC3B;AACA;AAEO,SAAS,UAAU,UAAU,IAAI;AACtC,QAAM,QAAQ,QAAQ,SAAS;AAC/B,QAAM,SAAS,CAAA;AAEf,SAAO,KAAK;AAAA,IACV,YAAY;AAAA,IACZ,QAAQ;AAAA,MACN,UAAU,QAAQ,YAAY;AAAA,MAC9B,MAAM;AAAA,QACJ,QAAQA;AAAAA,MAChB;AAAA,MACM,QAAQ,iBAAwB;AAAA,IACtC;AAAA,EACA,CAAG;AAED,SAAO;AACT;"}
@@ -1,31 +1,27 @@
1
- import { inject, ref, computed, onMounted, resolveComponent, createElementBlock, openBlock, createElementVNode, createVNode, unref, createCommentVNode, toDisplayString, withCtx, Fragment, renderList, createBlock, createTextVNode } from "vue";
1
+ import { inject, ref, computed, onMounted, resolveComponent, createElementBlock, openBlock, createVNode, unref, withCtx, createElementVNode, Fragment, renderList, createBlock, createCommentVNode, createTextVNode } from "vue";
2
2
  import { useRouter } from "vue-router";
3
3
  import _sfc_main$2 from "../../../../components/Popup/Popup.vue.js";
4
+ import Button from "../../../../components/Button/Button.vue2.js";
4
5
  import NotificationItem from "../blocks/NotificationItem.vue.js";
5
6
  import { state } from "../../../auth/views/store/auth.js";
6
7
  import _sfc_main$1 from "../../../icons/entities/IconBell.vue.js";
7
8
  /* empty css */
8
9
  import _export_sfc from "../../../../../../_virtual/_plugin-vue_export-helper.js";
9
10
  const _hoisted_1 = { class: "notification-badge-container" };
10
- const _hoisted_2 = ["aria-label"];
11
+ const _hoisted_2 = { class: "cols-1 gap-thin o-y-scroll" };
11
12
  const _hoisted_3 = {
12
- key: 0,
13
- class: "button-counter flex flex-center"
14
- };
15
- const _hoisted_4 = { class: "cols-1 gap-thin o-y-scroll" };
16
- const _hoisted_5 = {
17
13
  key: 0,
18
14
  class: "notifications-loading"
19
15
  };
20
- const _hoisted_6 = {
16
+ const _hoisted_4 = {
21
17
  key: 1,
22
18
  class: "notifications-empty"
23
19
  };
24
- const _hoisted_7 = {
20
+ const _hoisted_5 = {
25
21
  key: 2,
26
22
  class: "flex-column flex gap-thin"
27
23
  };
28
- const _hoisted_8 = { class: "flex-nowrap flex gap-thin" };
24
+ const _hoisted_6 = { class: "flex-nowrap flex gap-thin" };
29
25
  const _sfc_main = {
30
26
  __name: "NotificationBadge",
31
27
  props: {
@@ -79,19 +75,22 @@ const _sfc_main = {
79
75
  return (_ctx, _cache) => {
80
76
  const _component_router_link = resolveComponent("router-link");
81
77
  return openBlock(), createElementBlock("div", _hoisted_1, [
82
- createElementVNode("button", {
83
- class: "i-medium notification-button",
84
- onClick: toggleNotifications,
85
- "aria-label": unref(unreadCount) > 0 ? `${unref(unreadCount)} unread notifications` : "No unread notifications"
86
- }, [
87
- createVNode(_sfc_main$1, {
88
- class: "notification-icon i-medium",
89
- fill: __props.fill
90
- }, null, 8, ["fill"]),
91
- unref(unreadCount) > 0 ? (openBlock(), createElementBlock("div", _hoisted_3, [
92
- createElementVNode("span", null, toDisplayString(unref(unreadCount) > 99 ? "99+" : unref(unreadCount)), 1)
93
- ])) : createCommentVNode("", true)
94
- ], 8, _hoisted_2),
78
+ createVNode(Button, {
79
+ class: "pd-zero bg-transparent",
80
+ "aria-label": unref(unreadCount) > 0 ? `${unref(unreadCount)} unread notifications` : "No unread notifications",
81
+ submit: () => toggleNotifications(),
82
+ counter: unref(unreadCount) > 0 ? unref(unreadCount) > 99 ? "99+" : unref(unreadCount) : null,
83
+ showSucces: false,
84
+ showLoader: false
85
+ }, {
86
+ default: withCtx(() => [
87
+ createVNode(_sfc_main$1, {
88
+ class: "notification-icon i-medium",
89
+ fill: __props.fill
90
+ }, null, 8, ["fill"])
91
+ ]),
92
+ _: 1
93
+ }, 8, ["aria-label", "submit", "counter"]),
95
94
  createVNode(_sfc_main$2, {
96
95
  title: "Notifications",
97
96
  onClosePopup: closeNotifications,
@@ -100,8 +99,8 @@ const _sfc_main = {
100
99
  class: "bg-white h-min-100 w-100 w-max-30r pd-medium"
101
100
  }, {
102
101
  default: withCtx(() => [
103
- createElementVNode("div", _hoisted_4, [
104
- unref(loading) ? (openBlock(), createElementBlock("div", _hoisted_5, " Loading... ")) : unref(notifications).length === 0 ? (openBlock(), createElementBlock("div", _hoisted_6, " No notifications ")) : (openBlock(), createElementBlock("div", _hoisted_7, [
102
+ createElementVNode("div", _hoisted_2, [
103
+ unref(loading) ? (openBlock(), createElementBlock("div", _hoisted_3, " Loading... ")) : unref(notifications).length === 0 ? (openBlock(), createElementBlock("div", _hoisted_4, " No notifications ")) : (openBlock(), createElementBlock("div", _hoisted_5, [
105
104
  (openBlock(true), createElementBlock(Fragment, null, renderList(recentNotifications.value, (notification) => {
106
105
  return openBlock(), createBlock(NotificationItem, {
107
106
  key: notification._id,
@@ -109,7 +108,7 @@ const _sfc_main = {
109
108
  onClick: ($event) => handleNotificationClick(notification)
110
109
  }, null, 8, ["notification", "onClick"]);
111
110
  }), 128)),
112
- createElementVNode("div", _hoisted_8, [
111
+ createElementVNode("div", _hoisted_6, [
113
112
  unref(unreadCount) > 0 ? (openBlock(), createElementBlock("button", {
114
113
  key: 0,
115
114
  class: "w-100 bg-second t-white radius-small button",
@@ -135,7 +134,7 @@ const _sfc_main = {
135
134
  };
136
135
  }
137
136
  };
138
- const NotificationBadge = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-bea4263c"]]);
137
+ const NotificationBadge = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-c5966e8d"]]);
139
138
  export {
140
139
  NotificationBadge as default
141
140
  };
@@ -1 +1 @@
1
- {"version":3,"file":"NotificationBadge.vue.js","sources":["../../../../../../../src/modules/notifications/components/elements/NotificationBadge.vue"],"sourcesContent":["<template>\n <div class=\"notification-badge-container\">\n <button \n class=\"i-medium notification-button\"\n @click=\"toggleNotifications\"\n :aria-label=\"unreadCount > 0 ? `${unreadCount} unread notifications` : 'No unread notifications'\"\n >\n <IconBell class=\"notification-icon i-medium\" :fill=\"fill\"/>\n <div \n v-if=\"unreadCount > 0\" \n class=\"button-counter flex flex-center\"\n >\n <span>{{ unreadCount > 99 ? '99+' : unreadCount }}</span>\n </div>\n </button>\n \n <Popup\n title=\"Notifications\"\n @close-popup=\"closeNotifications\"\n :isPopupOpen=\"isOpen\"\n align=\"center right\"\n class=\"bg-white h-min-100 w-100 w-max-30r pd-medium\"\n >\n <div class=\"cols-1 gap-thin o-y-scroll\">\n <div v-if=\"loading\" class=\"notifications-loading\">\n Loading...\n </div>\n \n <div v-else-if=\"notifications.length === 0\" class=\"notifications-empty\">\n No notifications\n </div>\n \n <div v-else class=\"flex-column flex gap-thin\">\n <notification-item \n v-for=\"notification in recentNotifications\" \n :key=\"notification._id\" \n :notification=\"notification\"\n @click=\"handleNotificationClick(notification)\"\n />\n\n <div class=\"flex-nowrap flex gap-thin\">\n <button \n v-if=\"unreadCount > 0\"\n class=\"w-100 bg-second t-white radius-small button\" \n @click=\"markAllAsRead\"\n >\n Mark all read\n </button>\n\n <router-link class=\"w-100 bg-black t-white radius-small button\" :to=\"`/users/${auth.state.user?._id}/notifications`\" @click=\"closeNotifications\">\n View all \n </router-link>\n </div>\n\n </div>\n\n </div>\n </Popup>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed, onMounted, inject } from 'vue';\nimport { useRouter } from 'vue-router';\n\nimport Popup from '@martyrs/src/components/Popup/Popup.vue';\n\nimport NotificationItem from '../blocks/NotificationItem.vue';\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\nimport IconBell from '@martyrs/src/modules/icons/entities/IconBell.vue';\n\nconst props = defineProps({\n maxNotifications: {\n type: Number,\n default: 10\n },\n fill: {\n type: String,\n default: 'rgb(var(--white))'\n }\n});\n\n// Get router and notification functionality\nconst router = useRouter();\n\n// Check if notifications module is loaded, provide fallback if not\nconst useNotifications = inject('useNotifications', () => ({\n notifications: ref([]),\n unreadCount: ref(0),\n loading: ref(false),\n markAllAsRead: () => {},\n getNotifications: () => {}\n}));\n\nconst { notifications, unreadCount, loading, markAllAsRead, getNotifications } = useNotifications();\n\n// Local state\nconst isOpen = ref(false);\n\n// Computed properties\nconst recentNotifications = computed(() => {\n return notifications.value\n .slice()\n .sort((a, b) => new Date(b.createdAt) - new Date(a.createdAt))\n .slice(0, props.maxNotifications);\n});\n\n// Methods\nconst toggleNotifications = () => {\n isOpen.value = !isOpen.value;\n};\n\nconst closeNotifications = () => {\n isOpen.value = false;\n};\n\nconst handleNotificationClick = (notification) => {\n isOpen.value = false;\n \n if (notification._id) {\n // Handle in store\n actions.handleNotificationAction({\n notificationId: notification._id,\n ...notification.metadata\n });\n }\n};\n\n// Lifecycle hooks\nonMounted(() => {\n // Load notifications when component mounts\n const userId = auth.state.user._id;\n if (userId) {\n getNotifications(userId);\n }\n});\n</script>\n\n<style scoped>\n.notification-badge-container {\n position: relative;\n display: inline-block;\n}\n\n.notification-button {\n background: none;\n border: none;\n cursor: pointer;\n position: relative;\n font-size: 1.2rem;\n}\n\n.notification-icon {\n font-size: 1.4rem;\n}\n\n.button-counter {\n position: absolute;\n right: -8px;\n bottom: -8px;\n background: rgb(var(--fourth));\n color: rgb(var(--white));\n height: 16px;\n border-radius: 16px;\n width: 16px;\n font-weight: 500;\n text-align: center;\n line-height: 16px;\n font-size: 10px;\n}\n\n\n.notifications-loading,\n.notifications-empty {\n padding: 24px;\n text-align: center;\n color: rgb(var(--texfw-light));\n}\n</style>"],"names":["auth.state"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuEA,UAAM,QAAQ;AAYC,cAAS;AAGxB,UAAM,mBAAmB,OAAO,oBAAoB,OAAO;AAAA,MACzD,eAAe,IAAI,EAAE;AAAA,MACrB,aAAa,IAAI,CAAC;AAAA,MAClB,SAAS,IAAI,KAAK;AAAA,MAClB,eAAe,MAAM;AAAA,MAAC;AAAA,MACtB,kBAAkB,MAAM;AAAA,MAAC;AAAA,IAC3B,EAAE;AAEF,UAAM,EAAE,eAAe,aAAa,SAAS,eAAe,iBAAgB,IAAK,iBAAgB;AAGjG,UAAM,SAAS,IAAI,KAAK;AAGxB,UAAM,sBAAsB,SAAS,MAAM;AACzC,aAAO,cAAc,MAClB,MAAK,EACL,KAAK,CAAC,GAAG,MAAM,IAAI,KAAK,EAAE,SAAS,IAAI,IAAI,KAAK,EAAE,SAAS,CAAC,EAC5D,MAAM,GAAG,MAAM,gBAAgB;AAAA,IACpC,CAAC;AAGD,UAAM,sBAAsB,MAAM;AAChC,aAAO,QAAQ,CAAC,OAAO;AAAA,IACzB;AAEA,UAAM,qBAAqB,MAAM;AAC/B,aAAO,QAAQ;AAAA,IACjB;AAEA,UAAM,0BAA0B,CAAC,iBAAiB;AAChD,aAAO,QAAQ;AAEf,UAAI,aAAa,KAAK;AAEpB,gBAAQ,yBAAyB;AAAA,UAC/B,gBAAgB,aAAa;AAAA,UAC7B,GAAG,aAAa;AAAA,QACtB,CAAK;AAAA,MACH;AAAA,IACF;AAGA,cAAU,MAAM;AAEd,YAAM,SAASA,MAAW,KAAK;AAC/B,UAAI,QAAQ;AACV,yBAAiB,MAAM;AAAA,MACzB;AAAA,IACF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"NotificationBadge.vue.js","sources":["../../../../../../../src/modules/notifications/components/elements/NotificationBadge.vue"],"sourcesContent":["<template>\n <div class=\"notification-badge-container\">\n <Button\n class=\"pd-zero bg-transparent\"\n :aria-label=\"unreadCount > 0 ? `${unreadCount} unread notifications` : 'No unread notifications'\"\n :submit=\"() => toggleNotifications()\"\n :counter=\"unreadCount > 0 ? (unreadCount > 99 ? '99+' : unreadCount) : null\"\n :showSucces=\"false\"\n :showLoader=\"false\"\n >\n <IconBell class=\"notification-icon i-medium\" :fill=\"fill\"/>\n </Button>\n \n <Popup\n title=\"Notifications\"\n @close-popup=\"closeNotifications\"\n :isPopupOpen=\"isOpen\"\n align=\"center right\"\n class=\"bg-white h-min-100 w-100 w-max-30r pd-medium\"\n >\n <div class=\"cols-1 gap-thin o-y-scroll\">\n <div v-if=\"loading\" class=\"notifications-loading\">\n Loading...\n </div>\n \n <div v-else-if=\"notifications.length === 0\" class=\"notifications-empty\">\n No notifications\n </div>\n \n <div v-else class=\"flex-column flex gap-thin\">\n <notification-item \n v-for=\"notification in recentNotifications\" \n :key=\"notification._id\" \n :notification=\"notification\"\n @click=\"handleNotificationClick(notification)\"\n />\n\n <div class=\"flex-nowrap flex gap-thin\">\n <button \n v-if=\"unreadCount > 0\"\n class=\"w-100 bg-second t-white radius-small button\" \n @click=\"markAllAsRead\"\n >\n Mark all read\n </button>\n\n <router-link class=\"w-100 bg-black t-white radius-small button\" :to=\"`/users/${auth.state.user?._id}/notifications`\" @click=\"closeNotifications\">\n View all \n </router-link>\n </div>\n\n </div>\n\n </div>\n </Popup>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed, onMounted, inject } from 'vue';\nimport { useRouter } from 'vue-router';\n\nimport Popup from '@martyrs/src/components/Popup/Popup.vue';\nimport Button from '@martyrs/src/components/Button/Button.vue';\n\nimport NotificationItem from '../blocks/NotificationItem.vue';\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\nimport IconBell from '@martyrs/src/modules/icons/entities/IconBell.vue';\n\nconst props = defineProps({\n maxNotifications: {\n type: Number,\n default: 10\n },\n fill: {\n type: String,\n default: 'rgb(var(--white))'\n }\n});\n\n// Get router and notification functionality\nconst router = useRouter();\n\n// Check if notifications module is loaded, provide fallback if not\nconst useNotifications = inject('useNotifications', () => ({\n notifications: ref([]),\n unreadCount: ref(0),\n loading: ref(false),\n markAllAsRead: () => {},\n getNotifications: () => {}\n}));\n\nconst { notifications, unreadCount, loading, markAllAsRead, getNotifications } = useNotifications();\n\n// Local state\nconst isOpen = ref(false);\n\n// Computed properties\nconst recentNotifications = computed(() => {\n return notifications.value\n .slice()\n .sort((a, b) => new Date(b.createdAt) - new Date(a.createdAt))\n .slice(0, props.maxNotifications);\n});\n\n// Methods\nconst toggleNotifications = () => {\n isOpen.value = !isOpen.value;\n};\n\nconst closeNotifications = () => {\n isOpen.value = false;\n};\n\nconst handleNotificationClick = (notification) => {\n isOpen.value = false;\n \n if (notification._id) {\n // Handle in store\n actions.handleNotificationAction({\n notificationId: notification._id,\n ...notification.metadata\n });\n }\n};\n\n// Lifecycle hooks\nonMounted(() => {\n // Load notifications when component mounts\n const userId = auth.state.user._id;\n if (userId) {\n getNotifications(userId);\n }\n});\n</script>\n\n<style scoped>\n.notification-badge-container {\n position: relative;\n display: inline-block;\n}\n\n.notification-icon {\n font-size: 1.4rem;\n}\n\n\n.notifications-loading,\n.notifications-empty {\n padding: 24px;\n text-align: center;\n color: rgb(var(--texfw-light));\n}\n</style>"],"names":["auth.state"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqEA,UAAM,QAAQ;AAYC,cAAS;AAGxB,UAAM,mBAAmB,OAAO,oBAAoB,OAAO;AAAA,MACzD,eAAe,IAAI,EAAE;AAAA,MACrB,aAAa,IAAI,CAAC;AAAA,MAClB,SAAS,IAAI,KAAK;AAAA,MAClB,eAAe,MAAM;AAAA,MAAC;AAAA,MACtB,kBAAkB,MAAM;AAAA,MAAC;AAAA,IAC3B,EAAE;AAEF,UAAM,EAAE,eAAe,aAAa,SAAS,eAAe,iBAAgB,IAAK,iBAAgB;AAGjG,UAAM,SAAS,IAAI,KAAK;AAGxB,UAAM,sBAAsB,SAAS,MAAM;AACzC,aAAO,cAAc,MAClB,MAAK,EACL,KAAK,CAAC,GAAG,MAAM,IAAI,KAAK,EAAE,SAAS,IAAI,IAAI,KAAK,EAAE,SAAS,CAAC,EAC5D,MAAM,GAAG,MAAM,gBAAgB;AAAA,IACpC,CAAC;AAGD,UAAM,sBAAsB,MAAM;AAChC,aAAO,QAAQ,CAAC,OAAO;AAAA,IACzB;AAEA,UAAM,qBAAqB,MAAM;AAC/B,aAAO,QAAQ;AAAA,IACjB;AAEA,UAAM,0BAA0B,CAAC,iBAAiB;AAChD,aAAO,QAAQ;AAEf,UAAI,aAAa,KAAK;AAEpB,gBAAQ,yBAAyB;AAAA,UAC/B,gBAAgB,aAAa;AAAA,UAC7B,GAAG,aAAa;AAAA,QACtB,CAAK;AAAA,MACH;AAAA,IACF;AAGA,cAAU,MAAM;AAEd,YAAM,SAASA,MAAW,KAAK;AAC/B,UAAI,QAAQ;AACV,yBAAiB,MAAM;AAAA,MACzB;AAAA,IACF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,21 +1,25 @@
1
- import { inject, reactive, ref, computed, onMounted, createElementBlock, openBlock, createElementVNode, unref, createVNode, Fragment, renderList, toDisplayString, createBlock, createCommentVNode, withCtx, createTextVNode } from "vue";
1
+ import { inject, reactive, ref, computed, onMounted, createElementBlock, openBlock, createElementVNode, createCommentVNode, createVNode, normalizeClass, toDisplayString, Fragment, unref, renderList, createBlock, withCtx, createTextVNode } from "vue";
2
2
  import _sfc_main$1 from "../../../../components/Checkbox/Checkbox.vue.js";
3
- import _sfc_main$2 from "../../../../components/Button/Button.vue.js";
3
+ import Button from "../../../../components/Button/Button.vue2.js";
4
4
  import Loader from "../../../../components/Loader/Loader.vue2.js";
5
- const _hoisted_1 = {
5
+ const _hoisted_1 = { class: "bg-light radius-small pd-small mn-b-small" };
6
+ const _hoisted_2 = { class: "flex flex-v-center flex-between" };
7
+ const _hoisted_3 = { class: "flex flex-v-center gap-small" };
8
+ const _hoisted_4 = { class: "flex-column flex gap-micro" };
9
+ const _hoisted_5 = {
6
10
  key: 0,
7
11
  class: "pd-large t-center t-transp"
8
12
  };
9
- const _hoisted_2 = {
13
+ const _hoisted_6 = {
10
14
  key: 1,
11
15
  class: "gap-thin flex-column flex"
12
16
  };
13
- const _hoisted_3 = { class: "flex w-100 flex-v-center gap-small mn-r-small" };
14
- const _hoisted_4 = { class: "h4" };
15
- const _hoisted_5 = { class: "flex-column flex gap-micro" };
16
- const _hoisted_6 = { class: "fw-medium lh-1" };
17
- const _hoisted_7 = { class: "p-small t-transp lh-1" };
18
- const _hoisted_8 = { class: "flex flex-end gap-small mn-t-thin" };
17
+ const _hoisted_7 = { class: "flex w-100 flex-v-center gap-small mn-r-small" };
18
+ const _hoisted_8 = { class: "h4" };
19
+ const _hoisted_9 = { class: "flex-column flex gap-micro" };
20
+ const _hoisted_10 = { class: "fw-medium" };
21
+ const _hoisted_11 = { class: "p-small t-transp" };
22
+ const _hoisted_12 = { class: "flex flex-end gap-small mn-t-thin" };
19
23
  const _sfc_main = {
20
24
  __name: "NotificationPreferences",
21
25
  setup(__props) {
@@ -23,11 +27,44 @@ const _sfc_main = {
23
27
  preferences: storePreferences,
24
28
  loading,
25
29
  getPreferences,
26
- updatePreferences
30
+ updatePreferences,
31
+ registerWebPush
27
32
  } = inject("useNotifications")();
28
33
  const preferences = reactive({ ...storePreferences.value });
29
34
  const originalPreferences = ref({});
30
35
  const saving = ref(false);
36
+ const pushPermission = ref(typeof window !== "undefined" && "Notification" in window ? Notification.permission : "default");
37
+ const pushEnabled = ref(pushPermission.value === "granted");
38
+ const pushStatusText = computed(() => {
39
+ if (pushPermission.value === "denied") return "Blocked by browser. Allow in site settings";
40
+ if (pushEnabled.value && pushPermission.value === "granted") return "Notifications are enabled";
41
+ return "Enable to receive push notifications";
42
+ });
43
+ const pushStatusClass = computed(() => {
44
+ if (pushPermission.value === "denied") return "t-red";
45
+ if (pushEnabled.value && pushPermission.value === "granted") return "t-green";
46
+ return "t-transp";
47
+ });
48
+ const togglePush = async (value) => {
49
+ if (value) {
50
+ try {
51
+ const permission = await Notification.requestPermission();
52
+ pushPermission.value = permission;
53
+ if (permission === "granted") {
54
+ pushEnabled.value = true;
55
+ registerWebPush().catch((err) => console.error("Web push registration error:", err));
56
+ } else {
57
+ pushEnabled.value = false;
58
+ }
59
+ } catch (error) {
60
+ console.error("Push permission error:", error);
61
+ pushPermission.value = Notification.permission;
62
+ pushEnabled.value = false;
63
+ }
64
+ } else {
65
+ pushEnabled.value = false;
66
+ }
67
+ };
31
68
  const hasChanges = computed(() => {
32
69
  return Object.keys(preferences).some(
33
70
  (key) => preferences[key] !== originalPreferences.value[key]
@@ -115,55 +152,77 @@ const _sfc_main = {
115
152
  });
116
153
  return (_ctx, _cache) => {
117
154
  return openBlock(), createElementBlock("div", null, [
118
- _cache[1] || (_cache[1] = createElementVNode("p", { class: "t-transp mn-b-small" }, "Choose how you want to receive notifications", -1)),
119
- unref(loading) ? (openBlock(), createElementBlock("div", _hoisted_1, [
120
- createVNode(Loader)
121
- ])) : (openBlock(), createElementBlock("div", _hoisted_2, [
122
- (openBlock(true), createElementBlock(Fragment, null, renderList(preferences, (enabled, channelType) => {
123
- return openBlock(), createElementBlock("div", {
124
- key: channelType,
125
- class: "flex flex-v-center flex-between bg-light radius-small pd-small"
126
- }, [
127
- createElementVNode("div", _hoisted_3, [
128
- createElementVNode("div", _hoisted_4, toDisplayString(getChannelIcon(channelType)), 1),
129
- createElementVNode("div", _hoisted_5, [
130
- createElementVNode("p", _hoisted_6, toDisplayString(getChannelName(channelType)), 1),
131
- createElementVNode("p", _hoisted_7, toDisplayString(getChannelDescription(channelType)), 1)
132
- ])
133
- ]),
134
- createVNode(_sfc_main$1, {
135
- mode: "switch",
136
- radio: enabled,
137
- "onUpdate:radio": ($event) => updatePreference(channelType, $event),
138
- class: "flex-shrink-0"
139
- }, null, 8, ["radio", "onUpdate:radio"])
140
- ]);
141
- }), 128)),
142
- createElementVNode("div", _hoisted_8, [
143
- hasChanges.value ? (openBlock(), createBlock(_sfc_main$2, {
144
- key: 0,
145
- submit: resetChanges,
146
- showLoader: false,
147
- showSucces: false,
148
- class: "bg-white t-dark"
149
- }, {
150
- default: withCtx(() => _cache[0] || (_cache[0] = [
151
- createTextVNode(" Cancel ")
152
- ])),
153
- _: 1
154
- })) : createCommentVNode("", true),
155
- createVNode(_sfc_main$2, {
156
- submit: savePreferences,
157
- validation: !hasChanges.value || saving.value,
158
- class: "bg-main t-white"
159
- }, {
160
- default: withCtx(() => [
161
- createTextVNode(toDisplayString(saving.value ? "Saving..." : "Save Changes"), 1)
162
- ]),
163
- _: 1
164
- }, 8, ["validation"])
155
+ createElementVNode("div", _hoisted_1, [
156
+ createElementVNode("div", _hoisted_2, [
157
+ createElementVNode("div", _hoisted_3, [
158
+ _cache[1] || (_cache[1] = createElementVNode("div", { class: "h4" }, "🔔", -1)),
159
+ createElementVNode("div", _hoisted_4, [
160
+ _cache[0] || (_cache[0] = createElementVNode("p", { class: "fw-medium" }, "Push Notifications", -1)),
161
+ createElementVNode("p", {
162
+ class: normalizeClass(["p-small", pushStatusClass.value])
163
+ }, toDisplayString(pushStatusText.value), 3)
164
+ ])
165
+ ]),
166
+ createVNode(_sfc_main$1, {
167
+ mode: "switch",
168
+ radio: pushEnabled.value,
169
+ disabled: pushPermission.value === "denied",
170
+ "onUpdate:radio": togglePush,
171
+ class: "flex-shrink-0"
172
+ }, null, 8, ["radio", "disabled"])
165
173
  ])
166
- ]))
174
+ ]),
175
+ pushEnabled.value && pushPermission.value === "granted" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
176
+ _cache[3] || (_cache[3] = createElementVNode("p", { class: "t-transp mn-b-small" }, "Choose how you want to receive notifications", -1)),
177
+ unref(loading) ? (openBlock(), createElementBlock("div", _hoisted_5, [
178
+ createVNode(Loader)
179
+ ])) : (openBlock(), createElementBlock("div", _hoisted_6, [
180
+ (openBlock(true), createElementBlock(Fragment, null, renderList(preferences, (enabled, channelType) => {
181
+ return openBlock(), createElementBlock("div", {
182
+ key: channelType,
183
+ class: "flex flex-v-center flex-between bg-light radius-small pd-small"
184
+ }, [
185
+ createElementVNode("div", _hoisted_7, [
186
+ createElementVNode("div", _hoisted_8, toDisplayString(getChannelIcon(channelType)), 1),
187
+ createElementVNode("div", _hoisted_9, [
188
+ createElementVNode("p", _hoisted_10, toDisplayString(getChannelName(channelType)), 1),
189
+ createElementVNode("p", _hoisted_11, toDisplayString(getChannelDescription(channelType)), 1)
190
+ ])
191
+ ]),
192
+ createVNode(_sfc_main$1, {
193
+ mode: "switch",
194
+ radio: enabled,
195
+ "onUpdate:radio": ($event) => updatePreference(channelType, $event),
196
+ class: "flex-shrink-0"
197
+ }, null, 8, ["radio", "onUpdate:radio"])
198
+ ]);
199
+ }), 128)),
200
+ createElementVNode("div", _hoisted_12, [
201
+ hasChanges.value ? (openBlock(), createBlock(Button, {
202
+ key: 0,
203
+ submit: resetChanges,
204
+ showLoader: false,
205
+ showSucces: false,
206
+ class: "bg-white t-dark"
207
+ }, {
208
+ default: withCtx(() => _cache[2] || (_cache[2] = [
209
+ createTextVNode(" Cancel ")
210
+ ])),
211
+ _: 1
212
+ })) : createCommentVNode("", true),
213
+ createVNode(Button, {
214
+ submit: savePreferences,
215
+ validation: !hasChanges.value || saving.value,
216
+ class: "bg-main t-white"
217
+ }, {
218
+ default: withCtx(() => [
219
+ createTextVNode(toDisplayString(saving.value ? "Saving..." : "Save Changes"), 1)
220
+ ]),
221
+ _: 1
222
+ }, 8, ["validation"])
223
+ ])
224
+ ]))
225
+ ], 64)) : createCommentVNode("", true)
167
226
  ]);
168
227
  };
169
228
  }