@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
@@ -1,155 +1,458 @@
1
1
  <template>
2
- <div class="pd-medium bg-white">
3
- <h2 class="mn-b-small">Overview</h2>
4
- <div class="mn-b-medium cols-3 mobile:cols-1 gap-thin">
5
- <Block class="pos-relative">
6
- <span class="t-green fw-semi pos-absolute pos-t-small pos-r-small">+12.5%</span>
7
- <div class="mn-b-medium radius-small w-max bg-main"><IconProfile class="i-medium mn-small"/></div>
8
- <p class="h3 mn-b-thin">2,453</p>
9
- <p>Active Members</p>
10
- </Block>
2
+ <div class="pd-medium">
3
+ <!-- 1. KPI Cards -->
4
+ <div class="flex flex-v-center flex-justify-between mn-b-medium">
5
+ <h2>Overview</h2>
6
+ <Dropdown align="right" class="pos-relative z-index-3">
7
+ <template #label>
8
+ <div class="flex flex-v-center gap-thin bg-light pd-thin pd-l-small pd-r-small radius-small cursor-pointer">
9
+ <IconCalendar class="i-small" />
10
+ <span class="t-small fw-medium">{{ dateRangeLabel }}</span>
11
+ </div>
12
+ </template>
13
+ <Calendar
14
+ v-model:date="dateRange"
15
+ :allowRange="true"
16
+ class="bg-white radius-small pd-small"
17
+ />
18
+ </Dropdown>
19
+ </div>
20
+ <div class="mn-b-medium cols-3 mobile:cols-1 gap-small">
21
+ <CardStat
22
+ :icon="IconProfile"
23
+ title="Active Users"
24
+ :displayValue="userStats.active?.toLocaleString() || '—'"
25
+ :subtitle="userStats.newThisMonth ? `+${userStats.newThisMonth} this month` : ''"
26
+ />
27
+
28
+ <CardStat
29
+ :icon="IconOrders"
30
+ title="Total Orders"
31
+ :displayValue="orderStats.total?.orderCount?.toLocaleString() || '—'"
32
+ :subtitle="orderStats.monthly?.orderCount ? `+${orderStats.monthly.orderCount} this month` : ''"
33
+ />
34
+
35
+ <CardStat
36
+ :icon="IconCash"
37
+ title="Total Revenue"
38
+ :displayValue="'฿' + (orderStats.total?.totalRevenue?.toLocaleString() || '0')"
39
+ :subtitle="orderStats.monthly?.totalRevenue ? `+฿${orderStats.monthly.totalRevenue.toLocaleString()} this month` : ''"
40
+ />
41
+ </div>
42
+
43
+ <!-- 2. Revenue Chart — FULL WIDTH -->
44
+ <Block title="Revenue" class="mn-b-medium">
45
+ <div v-if="revenueChart.length" class="pos-relative" @mouseleave="hoveredRevenueIdx = -1">
46
+ <svg viewBox="0 0 500 200" class="w-100 d-block">
47
+ <!-- Grid lines -->
48
+ <line v-for="(tick, i) in revenueTicks" :key="'rg'+i" x1="50" x2="490" :y1="chartY(tick, maxRevenue)" :y2="chartY(tick, maxRevenue)" stroke="rgb(var(--light))" stroke-width="0.5"/>
49
+ <!-- Y labels -->
50
+ <text v-for="(tick, i) in revenueTicks" :key="'ry'+i" x="46" :y="chartY(tick, maxRevenue) + 3" text-anchor="end" fill="rgb(var(--grey))" font-size="10">{{ formatChartValue(tick) }}</text>
51
+ <!-- Area fill -->
52
+ <polygon :points="revenueAreaPoints" fill="rgb(var(--second))" fill-opacity="0.06"/>
53
+ <!-- Line -->
54
+ <polyline :points="revenueLinePoints" fill="none" stroke="rgb(var(--second))" stroke-width="2" stroke-linejoin="round" stroke-linecap="round"/>
55
+ <!-- Interactive hit areas -->
56
+ <circle v-for="(day, i) in revenueChart" :key="'rh'+i" :cx="chartX(i, revenueChart.length)" :cy="chartY(day.revenue, maxRevenue)" r="12" fill="transparent" @mouseenter="hoveredRevenueIdx = i"/>
57
+ <!-- Visible dots -->
58
+ <circle v-for="(day, i) in revenueChart" :key="'rd'+i" :cx="chartX(i, revenueChart.length)" :cy="chartY(day.revenue, maxRevenue)" :r="hoveredRevenueIdx === i ? 4 : 2" :fill="hoveredRevenueIdx === i ? 'rgb(var(--main))' : 'rgb(var(--second))'" style="pointer-events: none"/>
59
+ <!-- X labels (dates) -->
60
+ <template v-for="(day, i) in revenueChart" :key="'rx'+i">
61
+ <text v-if="i % revenueXStep === 0" :x="chartX(i, revenueChart.length)" y="195" text-anchor="middle" fill="rgb(var(--grey))" font-size="9">{{ formatXDate(day._id) }}</text>
62
+ </template>
63
+ </svg>
64
+ <!-- Hover Tooltip -->
65
+ <div
66
+ v-if="hoveredRevenueIdx >= 0"
67
+ class="pos-absolute bg-dark t-white pd-thin pd-l-small pd-r-small radius-small t-small fw-medium"
68
+ style="pointer-events: none; white-space: nowrap;"
69
+ :style="revenueTooltipStyle"
70
+ >
71
+ ฿{{ revenueChart[hoveredRevenueIdx].revenue.toLocaleString() }} · {{ formatXDate(revenueChart[hoveredRevenueIdx]._id) }}
72
+ </div>
73
+ </div>
74
+ <p v-else class="t-transp">No revenue data</p>
75
+ </Block>
11
76
 
12
- <Block class="pos-relative">
13
- <span class="t-green fw-semi pos-absolute pos-t-small pos-r-small">+14.8%</span>
14
- <div class="mn-b-medium radius-small w-max bg-main"><IconOrders class="i-medium mn-small"/></div>
15
- <p class="h3 mn-b-thin">432</p>
16
- <p>New Orders</p>
77
+ <!-- 3. Recent Orders + 4. Upcoming Events -->
78
+ <div class="mn-b-medium cols-2 mobile:cols-1 gap-small">
79
+ <Block title="Recent Orders">
80
+ <Feed
81
+ :showLoadMore="false"
82
+ :LoadMore="false"
83
+ :states="{ empty: { title: 'No Orders', description: 'No orders yet.' } }"
84
+ :store="{ read: (options) => ordersStore.actions.read(options), state: ordersStore.state }"
85
+ :options="{ limit: 5, page: 1, sortParam: 'createdAt', sortOrder: 'desc', dateStart: dateRange.start, dateEnd: dateRange.end }"
86
+ v-slot="{ items }"
87
+ >
88
+ <Table
89
+ class="radius-small bg-white"
90
+ :items="items"
91
+ :columns="orderColumns"
92
+ >
93
+ <template #cell-_id="{ value }">
94
+ <span class="t-dark fw-medium">#{{ formatId(value) }}</span>
95
+ </template>
96
+ <template #cell-positions="{ value }">
97
+ <span class="t-dark">{{ value?.length || 0 }} items</span>
98
+ </template>
99
+ <template #cell-status="{ value }">
100
+ <span
101
+ class="pd-thin pd-l-small pd-r-small radius-small t-small fw-medium"
102
+ :class="getStatusClass(value)"
103
+ >
104
+ {{ value }}
105
+ </span>
106
+ </template>
107
+ <template #cell-createdAt="{ value }">
108
+ <span class="t-dark t-small">{{ formatDate(value, { dateOnly: true }) }}</span>
109
+ </template>
110
+ </Table>
111
+ </Feed>
17
112
  </Block>
18
113
 
19
- <Block class="pos-relative">
20
- <span class="t-green fw-semi pos-absolute pos-t-small pos-r-small">+25.1%</span>
21
- <div class="mn-b-medium radius-small w-max bg-main"><IconProfile class="i-medium mn-small"/></div>
22
- <p class="h3 mn-b-thin">$23,232</p>
23
- <p>Monthly Revenue</p>
114
+ <Block title="Upcoming Events">
115
+ <Feed
116
+ :showLoadMore="false"
117
+ :LoadMore="false"
118
+ :states="{ empty: { title: 'No Events', description: 'No upcoming events.' } }"
119
+ :store="{ read: (options) => events.read(options), state: events.state }"
120
+ :options="{ sortParam: 'date.start', sortOrder: 'desc', limit: 5, page: 1 }"
121
+ v-slot="{ items }"
122
+ class="flex flex-column gap-thin"
123
+ >
124
+ <Card
125
+ v-for="event in items"
126
+ :key="event._id"
127
+ :to="`/events/${event.url || event._id}`"
128
+ :photo="event.cover"
129
+ :placeholder="IconEvents"
130
+ :title="event.name"
131
+ :subtitle="formatDate(event.date?.start, { dateOnly: true })"
132
+ classImage="flex-none w-3r h-3r radius-small bg-main-transp flex flex-center o-hidden"
133
+ classContent="flex-child o-hidden"
134
+ class="bg-white pd-small radius-small hover-scale-1 transition-default flex flex-v-center gap-small"
135
+ >
136
+ <template #actions>
137
+ <span
138
+ class="flex-none pd-thin pd-l-small pd-r-small radius-small t-small fw-medium"
139
+ :class="getEventStatusClass(event.date)"
140
+ >
141
+ {{ getEventStatus(event.date) }}
142
+ </span>
143
+ </template>
144
+ </Card>
145
+ </Feed>
24
146
  </Block>
25
147
  </div>
26
148
 
27
- <div class="cols-2 mobile:cols-1 gap-thin">
28
- <Block
29
- title="Recent Orders"
30
- class="pos-relative"
31
- >
149
+ <!-- 5. Recent Applications + 6. Recent Customers -->
150
+ <div class="mn-b-medium cols-2 mobile:cols-1 gap-small">
151
+ <Block title="Recent Applications">
32
152
  <Feed
33
- :showLoadMore="false"
34
- :LoadMore="false"
35
- :states="{
36
- empty: {
37
- title: 'No Events Today',
38
- description: 'Currently, there are no events available.'
39
- }
40
- }"
41
- :store="{
42
- read: (options) => orders.actions.read(options),
43
- state: orders.state
44
- }"
45
- :options="{
46
- user: auth.state.user._id,
47
- limit: 5,
48
- page: 1
49
- }"
50
- v-slot="{
51
- items
52
- }"
53
- class="cols-1 gap-thin"
54
- >
55
- <Table
56
- class="radius-semi bg-white"
57
- :items="items"
58
- :columns="[{
59
- key: '_id',
60
- label: 'ID',
61
- formatter: (value) => `#${value.slice(0, 4)}...${value.slice(-4)}`
62
- },
63
- {
64
- key: 'customer.target.profile.name',
65
- label: 'Name',
66
- formatter: (value) => `👤 ${value}`
67
- },
68
- {
69
- key: 'positions',
70
- label: 'Name',
71
- formatter: (value) => value?.length || 0
72
- },
73
- {
74
- key: 'status',
75
- label: 'Status',
76
- component: StatusBadge
77
- },
78
- {
79
- key: 'createdAt',
80
- label: 'Metadata',
81
- formatter: (value) => new Date(value).toLocaleDateString()
82
- }]"
153
+ :showLoadMore="false"
154
+ :LoadMore="false"
155
+ :states="{ empty: { title: 'No Applications', description: 'No applications.' } }"
156
+ :store="{ read: (options) => applications.read(options), state: applications.state }"
157
+ :options="{ sortParam: 'createdAt', sortOrder: 'desc', limit: 5, page: 1, dateStart: dateRange.start, dateEnd: dateRange.end }"
158
+ v-slot="{ items }"
159
+ class="flex flex-column gap-thin"
160
+ >
161
+ <Card
162
+ v-for="app in items"
163
+ :key="app._id"
164
+ :to="`/backoffice/applications/${app._id}`"
165
+ :placeholder="IconFile"
166
+ :title="app.profile?.name || app.name || 'Application'"
167
+ :subtitle="formatDate(app.createdAt)"
168
+ classImage="flex-none w-3r h-3r radius-small bg-main-transp flex flex-center o-hidden"
169
+ classContent="flex-child o-hidden"
170
+ class="bg-white pd-small radius-small hover-scale-1 transition-default flex flex-v-center gap-small"
83
171
  />
84
- </Feed>
85
-
172
+ </Feed>
86
173
  </Block>
87
174
 
88
- <Block
89
- title="Activity Feed"
90
- class="pos-relative"
175
+ <Block title="Recent Customers">
176
+ <Feed
177
+ :showLoadMore="false"
178
+ :LoadMore="false"
179
+ :states="{ empty: { title: 'No Customers', description: 'No customers.' } }"
180
+ :store="{ read: (options) => customers.read(options), state: customers.state }"
181
+ :options="{ sortParam: 'createdAt', sortOrder: 'desc', limit: 5, page: 1, dateStart: dateRange.start, dateEnd: dateRange.end }"
182
+ v-slot="{ items }"
183
+ class="flex flex-column gap-thin"
91
184
  >
185
+ <Card
186
+ v-for="customer in items"
187
+ :key="customer._id"
188
+ :to="`/backoffice/customers/${customer._id}`"
189
+ :photo="customer.avatar || customer.profile?.photo"
190
+ :placeholder="IconProfile"
191
+ :title="customer.profile?.name || customer.name || customer.phone || 'Customer'"
192
+ :subtitle="formatDate(customer.createdAt)"
193
+ classImage="flex-none w-3r h-3r radius-extra bg-main-transp flex flex-center o-hidden"
194
+ classContent="flex-child o-hidden"
195
+ class="bg-white pd-small radius-small hover-scale-1 transition-default flex flex-v-center gap-small"
196
+ />
197
+ </Feed>
92
198
  </Block>
93
199
  </div>
94
200
 
95
- </div>
201
+ <!-- 7. Popular Products — FULL WIDTH -->
202
+ <Block title="Popular Products" class="mn-b-medium">
203
+ <div v-if="orderStats.popularProducts?.length" class="cols-5 tablet:cols-3 mobile:cols-2 gap-small">
204
+ <CardProduct
205
+ v-for="product in orderStats.popularProducts"
206
+ :key="product._id"
207
+ :product="product"
208
+ :showAddToCart="false"
209
+ class="bg-white"
210
+ >
211
+ <p class="t-dark t-small mn-t-thin">{{ product.totalQuantity }} sold · ฿{{ product.totalRevenue?.toLocaleString() }}</p>
212
+ </CardProduct>
213
+ </div>
214
+ <p v-else class="t-transp">No product data</p>
215
+ </Block>
96
216
 
217
+ <!-- 8. Recent Registrations + 9. Upcoming Rents -->
218
+ <div class="mn-b-medium cols-2 mobile:cols-1 gap-small">
219
+ <Block title="Recent Registrations">
220
+ <Feed
221
+ :showLoadMore="false"
222
+ :LoadMore="false"
223
+ :states="{ empty: { title: 'No Registrations', description: 'No recent registrations.' } }"
224
+ :store="{ read: (options) => users.actions.read(options), state: users.state }"
225
+ :options="{ sortParam: 'createdAt', sortOrder: 'desc', limit: 5, page: 1, dateStart: dateRange.start, dateEnd: dateRange.end }"
226
+ v-slot="{ items }"
227
+ class="flex flex-column gap-thin"
228
+ >
229
+ <Card
230
+ v-for="user in items"
231
+ :key="user._id"
232
+ :to="`/users/${user._id}`"
233
+ :photo="user.avatar || user.profile?.photo"
234
+ :placeholder="IconProfile"
235
+ :title="user.profile?.name || user.username || user.email || 'User'"
236
+ :subtitle="formatDate(user.createdAt)"
237
+ classImage="flex-none w-3r h-3r radius-extra bg-main-transp flex flex-center o-hidden"
238
+ classContent="flex-child o-hidden"
239
+ class="bg-white pd-small radius-small hover-scale-1 transition-default flex flex-v-center gap-small"
240
+ />
241
+ </Feed>
242
+ </Block>
97
243
 
244
+ <Block title="Upcoming Rents">
245
+ <Feed
246
+ :showLoadMore="false"
247
+ :LoadMore="false"
248
+ :search="false"
249
+ :states="{ empty: { title: 'No Rents', description: 'No upcoming bookings.' } }"
250
+ :store="{ read: (options) => rents.actions.read(options), state: rents.state }"
251
+ :options="{ sortParam: 'startDate', sortOrder: 'desc', limit: 5 }"
252
+ v-slot="{ items }"
253
+ class="flex flex-column gap-thin"
254
+ >
255
+ <Card
256
+ v-for="rent in items"
257
+ :key="rent._id"
258
+ :to="`/backoffice/orders/${rent.order}`"
259
+ :placeholder="IconCalendar"
260
+ :title="rent.product?.name || 'Rent'"
261
+ :subtitle="`${formatDate(rent.startDate)} — ${formatDate(rent.endDate)}`"
262
+ classImage="flex-none w-3r h-3r radius-small bg-main-transp flex flex-center o-hidden"
263
+ classContent="flex-child o-hidden"
264
+ class="bg-white pd-small radius-small hover-scale-1 transition-default flex flex-v-center gap-small"
265
+ />
266
+ </Feed>
267
+ </Block>
268
+ </div>
269
+ </div>
98
270
  </template>
99
271
 
100
- <script setup="props">
101
- /////////////////////////////
102
- // COMPONENT DEPENDENCIES
103
- /////////////////////////////
104
- import { ref, onMounted } from 'vue';
272
+ <script setup>
273
+ import { ref, computed, watchEffect } from 'vue'
274
+ import { useRoute } from 'vue-router'
105
275
 
106
- // Mobile Module
107
276
  import Block from '@martyrs/src/components/Block/Block.vue'
108
277
  import Feed from '@martyrs/src/components/Feed/Feed.vue'
109
278
  import Table from '@martyrs/src/components/Table/Table.vue'
110
- import StatusBadge from '@martyrs/src/components/Table/StatusBadge.vue'
111
-
279
+ import Dropdown from '@martyrs/src/components/Dropdown/Dropdown.vue'
280
+ import Calendar from '@martyrs/src/components/Calendar/Calendar.vue'
281
+ import Card from '@martyrs/src/modules/core/views/components/blocks/Card.vue'
282
+ import CardStat from '@martyrs/src/modules/core/views/components/blocks/CardStat.vue'
283
+ import CardProduct from '@martyrs/src/modules/products/components/blocks/CardProduct.vue'
112
284
 
113
285
  import IconProfile from '@martyrs/src/modules/icons/entities/IconProfile.vue'
114
-
115
- import IconProducts from '@martyrs/src/modules/icons/entities/IconProducts.vue'
116
- import IconEvents from '@martyrs/src/modules/icons/entities/IconEvents.vue'
117
- import IconGroups from '@martyrs/src/modules/icons/entities/IconGroups.vue'
118
- import IconCommunity from '@martyrs/src/modules/icons/entities/IconCommunity.vue'
119
- import IconGallery from '@martyrs/src/modules/icons/entities/IconGallery.vue'
120
286
  import IconOrders from '@martyrs/src/modules/icons/entities/IconOrders.vue'
121
- import IconLeftovers from '@martyrs/src/modules/icons/entities/IconLeftovers.vue'
122
- /////////////////////////////
123
- // HELPERS
124
- /////////////////////////////
125
- import { useRoute, useRouter } from 'vue-router'
287
+ import IconCash from '@martyrs/src/modules/icons/entities/IconCash.vue'
288
+ import IconEvents from '@martyrs/src/modules/icons/entities/IconEvents.vue'
289
+ import IconFile from '@martyrs/src/modules/icons/entities/IconFile.vue'
290
+ import IconCalendar from '@martyrs/src/modules/icons/entities/IconCalendar.vue'
126
291
 
127
- import * as auth from '@martyrs/src/modules/auth/views/store/auth.js'
128
- import * as organizations from '@martyrs/src/modules/organizations/store/organizations.js'
129
- import * as orders from '@martyrs/src/modules/orders/store/orders.js'
292
+ import { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js'
293
+ import $axios from '@martyrs/src/modules/core/views/utils/axios-instance.js'
294
+ import * as ordersStore from '@martyrs/src/modules/orders/store/orders.js'
295
+ import * as events from '@martyrs/src/modules/events/store/events.js'
296
+ import * as rents from '@martyrs/src/modules/rents/views/store/rents.store.js'
297
+ import applications from '@martyrs/src/modules/orders/store/applications.js'
298
+ import customers from '@martyrs/src/modules/orders/store/customers.store.js'
299
+ import * as users from '@martyrs/src/modules/auth/views/store/users.js'
130
300
 
131
301
  const route = useRoute()
132
- const router = useRouter()
133
- /////////////////////////////
134
- // CREATED
135
- /////////////////////////////
136
- const props = defineProps({
137
- favorites: Array,
138
- });
302
+ const { formatDate } = useGlobalMixins()
303
+
304
+ const orderStats = ref({})
305
+ const userStats = ref({})
306
+ const hoveredRevenueIdx = ref(-1)
307
+
308
+ const dateRange = ref({
309
+ start: new Date(Date.now() - 7 * 24 * 60 * 60 * 1000),
310
+ end: new Date()
311
+ })
139
312
 
140
- const selectedOrganization = ref(null);
141
- const publics = ref([]);
313
+ const dateRangeLabel = computed(() => {
314
+ if (!dateRange.value?.start || !dateRange.value?.end) return 'Select dates'
315
+ return formatDate(dateRange.value.start, { dayMonth: true }) + ' — ' + formatDate(dateRange.value.end, { dayMonth: true })
316
+ })
142
317
 
143
318
 
144
- const columns = [
145
-
319
+ // Order table columns
320
+ const orderColumns = [
321
+ { key: '_id', label: 'Order' },
322
+ { key: 'positions', label: 'Items' },
323
+ { key: 'status', label: 'Status' },
324
+ { key: 'createdAt', label: 'Date' }
146
325
  ]
147
- /////////////////////////////
148
- // MOUNTED
149
- /////////////////////////////
150
- onMounted(async () =>{
326
+
327
+ // Chart constants: viewBox 500x200, chart area x:50-490 y:20-170
328
+ const CHART_LEFT = 50
329
+ const CHART_RIGHT = 490
330
+ const CHART_TOP = 20
331
+ const CHART_BOTTOM = 170
332
+
333
+ function chartX(i, total) {
334
+ if (total <= 1) return (CHART_LEFT + CHART_RIGHT) / 2
335
+ return CHART_LEFT + (i / (total - 1)) * (CHART_RIGHT - CHART_LEFT)
336
+ }
337
+
338
+ function chartY(value, max) {
339
+ if (!max) return CHART_BOTTOM
340
+ return CHART_BOTTOM - (value / max) * (CHART_BOTTOM - CHART_TOP)
341
+ }
342
+
343
+ function calcTicks(max) {
344
+ if (!max || max <= 0) return [0]
345
+ const step = Math.pow(10, Math.floor(Math.log10(max))) / 2
346
+ const ticks = []
347
+ for (let v = 0; v <= max; v += step) ticks.push(Math.round(v))
348
+ if (ticks[ticks.length - 1] < max) ticks.push(Math.round(max))
349
+ return ticks.length > 6 ? ticks.filter((_, i) => i % 2 === 0) : ticks
350
+ }
351
+
352
+ function formatChartValue(val) {
353
+ if (val >= 1000) return '฿' + Math.round(val / 1000) + 'k'
354
+ return '฿' + Math.round(val)
355
+ }
356
+
357
+ function calcXStep(count) {
358
+ if (count <= 8) return 1
359
+ if (count <= 16) return 2
360
+ if (count <= 30) return 5
361
+ return 7
362
+ }
363
+
364
+ const revenueChart = computed(() => {
365
+ const data = orderStats.value.dailyRevenue
366
+ if (!data?.length) return []
367
+ return data.slice(-30)
368
+ })
369
+
370
+ const maxRevenue = computed(() => {
371
+ if (!revenueChart.value.length) return 1
372
+ return Math.max(...revenueChart.value.map(d => d.revenue)) || 1
373
+ })
374
+
375
+ const revenueTicks = computed(() => calcTicks(maxRevenue.value))
376
+ const revenueXStep = computed(() => calcXStep(revenueChart.value.length))
377
+
378
+ const revenueLinePoints = computed(() => {
379
+ return revenueChart.value.map((d, i) =>
380
+ `${chartX(i, revenueChart.value.length)},${chartY(d.revenue, maxRevenue.value)}`
381
+ ).join(' ')
382
+ })
383
+
384
+ const revenueAreaPoints = computed(() => {
385
+ if (!revenueChart.value.length) return ''
386
+ const len = revenueChart.value.length
387
+ return `${chartX(0, len)},${CHART_BOTTOM} ${revenueLinePoints.value} ${chartX(len - 1, len)},${CHART_BOTTOM}`
388
+ })
389
+
390
+ const revenueTooltipStyle = computed(() => {
391
+ if (hoveredRevenueIdx.value < 0) return {}
392
+ const i = hoveredRevenueIdx.value
393
+ const len = revenueChart.value.length
394
+ const day = revenueChart.value[i]
395
+ const x = chartX(i, len)
396
+ const y = chartY(day.revenue, maxRevenue.value)
397
+ return {
398
+ left: `${(x / 500) * 100}%`,
399
+ top: `${(y / 200) * 100}%`,
400
+ transform: 'translate(-50%, -100%) translateY(-0.5rem)'
401
+ }
151
402
  })
152
- </script>
153
403
 
154
- <style lang="scss">
155
- </style>
404
+ // Formatters
405
+ function formatId(id) {
406
+ return id ? `${id.slice(0, 4)}...${id.slice(-4)}` : ''
407
+ }
408
+
409
+ function formatXDate(dateStr) {
410
+ if (!dateStr) return ''
411
+ return formatDate(dateStr, { dayMonth: true })
412
+ }
413
+
414
+ function getStatusClass(status) {
415
+ const classes = {
416
+ pending: 'bg-second-transp t-second',
417
+ processing: 'bg-main-transp t-main',
418
+ created: 'bg-main-transp t-main',
419
+ confirmed: 'bg-green-transp t-green',
420
+ completed: 'bg-green-transp t-green',
421
+ cancelled: 'bg-red-transp t-red'
422
+ }
423
+ return classes[status] || 'bg-light t-dark'
424
+ }
425
+
426
+ function getEventStatus(date) {
427
+ if (!date?.start) return 'No date'
428
+ const now = new Date()
429
+ const start = new Date(date.start)
430
+ const end = date.end ? new Date(date.end) : start
431
+ if (now > end) return 'Finished'
432
+ if (now >= start && now <= end) return 'Live'
433
+ const diffDays = Math.ceil((start - now) / (1000 * 60 * 60 * 24))
434
+ if (diffDays <= 1) return 'Tomorrow'
435
+ if (diffDays <= 7) return `In ${diffDays} days`
436
+ return 'Upcoming'
437
+ }
438
+
439
+ function getEventStatusClass(date) {
440
+ const status = getEventStatus(date)
441
+ if (status === 'Finished') return 'bg-light t-dark'
442
+ if (status === 'Live') return 'bg-green-transp t-green'
443
+ if (status === 'Tomorrow') return 'bg-second-transp t-second'
444
+ return 'bg-main-transp t-main'
445
+ }
446
+
447
+ watchEffect(async () => {
448
+ const params = {}
449
+ if (dateRange.value?.start) params.startDate = new Date(dateRange.value.start).toISOString()
450
+ if (dateRange.value?.end) params.endDate = new Date(dateRange.value.end).toISOString()
451
+ const [orders, stats] = await Promise.all([
452
+ $axios.get('/api/orders/stats', { params }),
453
+ $axios.get('/api/users/stats', { params })
454
+ ])
455
+ orderStats.value = orders.data
456
+ userStats.value = stats.data
457
+ })
458
+ </script>
@@ -12,13 +12,11 @@ import IconLeftovers from '@martyrs/src/modules/icons/entities/IconLeftovers.vue
12
12
  export const navigationItems = [
13
13
  {
14
14
  category: 'Menu',
15
- visible: () => true,
16
15
  items: [
17
16
  {
18
17
  title: 'Organizations',
19
18
  iconComponent: IconGroups,
20
19
  route: () => '/backoffice/organizations',
21
- visible: () => true
22
20
  },
23
21
  {
24
22
  title: 'Community',
@@ -16,7 +16,6 @@ export function getRoutes(options = {}) {
16
16
  meta: {
17
17
  sidebar_navigation: Navigation,
18
18
  sidebar_navigation_items: navigationItems,
19
- sidebar_width_hidden: 'w-2r',
20
19
  },
21
20
  props: {
22
21
  newsletterPopup: 12344,
@@ -36,30 +35,6 @@ export function getRoutes(options = {}) {
36
35
  },
37
36
  component: () => import(/* webpackChunkName: 'BackofficeGallery' */ '../components/pages/Dashboard.vue'),
38
37
  },
39
- {
40
- path: 'organizations',
41
- name: 'Backoffice Organizations',
42
- meta: {
43
- title: {
44
- en: 'Backoffice Organizations',
45
- ru: 'Управление Организациями',
46
- },
47
- authorize: [],
48
- },
49
- component: () => import(/* webpackChunkName: 'BackofficeOrganizations' */ '@martyrs/src/modules/organizations/components/pages/Organizations.vue'),
50
- },
51
- {
52
- path: 'community',
53
- name: 'Backoffice Community',
54
- meta: {
55
- title: {
56
- en: 'Backoffice Community',
57
- ru: 'Управление Сообществом',
58
- },
59
- authorize: [],
60
- },
61
- component: () => import(/* webpackChunkName: 'BackofficeCommunity' */ '@martyrs/src/modules/community/components/pages/Blog.vue'),
62
- },
63
38
  ],
64
39
  }
65
40
  ],