@ozdao/martyrs 0.2.601 → 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 (717) 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 +148 -85
  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/EditImages/{EditImages.vue2.js → EditImages.vue.js} +2 -2
  32. package/dist/martyrs/src/components/EditImages/EditImages.vue.js.map +1 -0
  33. package/dist/martyrs/src/components/Feed/Feed.vue.js +1 -1
  34. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +4 -4
  35. package/dist/martyrs/src/components/LocationMarker/{LocationMarker.vue.js → LocationMarker.vue2.js} +2 -2
  36. package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue2.js.map +1 -0
  37. package/dist/martyrs/src/components/Menu/{Menu.vue2.js → Menu.vue.js} +2 -2
  38. package/dist/martyrs/src/components/Menu/Menu.vue.js.map +1 -0
  39. package/dist/martyrs/src/components/Select/{Select.vue2.js → Select.vue.js} +2 -2
  40. package/dist/martyrs/src/components/Select/Select.vue.js.map +1 -0
  41. package/dist/martyrs/src/components/Tab/{Tab.vue2.js → Tab.vue.js} +2 -2
  42. package/dist/martyrs/src/components/Tab/Tab.vue.js.map +1 -0
  43. package/dist/martyrs/src/components/Table/StatusBadge.vue.js +19 -10
  44. package/dist/martyrs/src/components/Table/StatusBadge.vue.js.map +1 -1
  45. package/dist/martyrs/src/components/Text/Text.vue.js +1 -1
  46. package/dist/martyrs/src/components/Text/Text.vue.js.map +1 -1
  47. package/dist/martyrs/src/modules/auth/views/components/blocks/OtpDialog.vue.js +2 -2
  48. package/dist/martyrs/src/modules/auth/views/components/blocks/PopupAuth.vue.js +3 -3
  49. package/dist/martyrs/src/modules/auth/views/components/blocks/PopupAuth.vue.js.map +1 -1
  50. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +3 -3
  51. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +2 -2
  52. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js +17 -21
  53. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js.map +1 -1
  54. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +13 -13
  55. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +2 -2
  56. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +3 -3
  57. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +42 -4
  58. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js.map +1 -1
  59. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +3 -3
  60. package/dist/martyrs/src/modules/auth/views/components/pages/UserDashboard.vue.js +34 -66
  61. package/dist/martyrs/src/modules/auth/views/components/pages/UserDashboard.vue.js.map +1 -1
  62. package/dist/martyrs/src/modules/auth/views/router/users.router.js +0 -53
  63. package/dist/martyrs/src/modules/auth/views/router/users.router.js.map +1 -1
  64. package/dist/martyrs/src/modules/backoffice/components/pages/Dashboard.vue.js +515 -103
  65. package/dist/martyrs/src/modules/backoffice/components/pages/Dashboard.vue.js.map +1 -1
  66. package/dist/martyrs/src/modules/backoffice/configs/navigation.backoffice.config.js +1 -3
  67. package/dist/martyrs/src/modules/backoffice/configs/navigation.backoffice.config.js.map +1 -1
  68. package/dist/martyrs/src/modules/backoffice/router/backoffice.router.js +1 -32
  69. package/dist/martyrs/src/modules/backoffice/router/backoffice.router.js.map +1 -1
  70. package/dist/martyrs/src/modules/community/community.client.js +49 -8
  71. package/dist/martyrs/src/modules/community/community.client.js.map +1 -1
  72. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js +10 -4
  73. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js.map +1 -1
  74. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +4 -4
  75. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js.map +1 -1
  76. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +2 -2
  77. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js.map +1 -1
  78. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +28 -17
  79. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js.map +1 -1
  80. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.js +36 -28
  81. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.js.map +1 -1
  82. package/dist/martyrs/src/modules/community/components/sections/Comment.vue.js +2 -2
  83. package/dist/martyrs/src/modules/community/components/sections/Comment.vue.js.map +1 -1
  84. package/dist/martyrs/src/modules/community/router/community.backoffice.router.js +21 -0
  85. package/dist/martyrs/src/modules/community/router/community.backoffice.router.js.map +1 -0
  86. package/dist/martyrs/src/modules/community/router/community.organization.router.js +70 -0
  87. package/dist/martyrs/src/modules/community/router/community.organization.router.js.map +1 -0
  88. package/dist/martyrs/src/modules/community/router/community.router.js +73 -0
  89. package/dist/martyrs/src/modules/community/router/community.router.js.map +1 -0
  90. package/dist/martyrs/src/modules/community/router/community.user.router.js +20 -0
  91. package/dist/martyrs/src/modules/community/router/community.user.router.js.map +1 -0
  92. package/dist/martyrs/src/modules/constructor/components/elements/Textarea.vue2.js +1 -1
  93. package/dist/martyrs/src/modules/constructor/components/elements/Textarea.vue2.js.map +1 -1
  94. package/dist/martyrs/src/modules/constructor/components/sections/Constructor.vue.js.map +1 -1
  95. package/dist/martyrs/src/modules/core/views/classes/core.app.js +5 -3
  96. package/dist/martyrs/src/modules/core/views/classes/core.app.js.map +1 -1
  97. package/dist/martyrs/src/modules/core/views/classes/i18n.manager.js +7 -2
  98. package/dist/martyrs/src/modules/core/views/classes/i18n.manager.js.map +1 -1
  99. package/dist/martyrs/src/modules/core/views/classes/ws.manager.js +11 -5
  100. package/dist/martyrs/src/modules/core/views/classes/ws.manager.js.map +1 -1
  101. package/dist/martyrs/src/modules/core/views/components/blocks/Card.vue.js +53 -18
  102. package/dist/martyrs/src/modules/core/views/components/blocks/Card.vue.js.map +1 -1
  103. package/dist/martyrs/src/modules/core/views/components/blocks/CardHeader.vue.js +1 -1
  104. package/dist/martyrs/src/modules/core/views/components/blocks/CardStat.vue.js +44 -0
  105. package/dist/martyrs/src/modules/core/views/components/blocks/CardStat.vue.js.map +1 -0
  106. package/dist/martyrs/src/modules/core/views/components/blocks/PopupDateSelector.vue.js +5 -5
  107. package/dist/martyrs/src/modules/core/views/components/layouts/App.vue.js +1 -1
  108. package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js +9 -6
  109. package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js.map +1 -1
  110. package/dist/martyrs/src/modules/core/views/components/partials/BottomNavigationBar.vue.js +5 -5
  111. package/dist/martyrs/src/modules/core/views/components/partials/BottomNavigationBar.vue.js.map +1 -1
  112. package/dist/martyrs/src/modules/core/views/components/partials/Header.vue.js +15 -15
  113. package/dist/martyrs/src/modules/core/views/components/partials/Header.vue.js.map +1 -1
  114. package/dist/martyrs/src/modules/core/views/components/partials/LocationSelection.vue.js +2 -2
  115. package/dist/martyrs/src/modules/core/views/components/partials/Navigation.vue.js +27 -28
  116. package/dist/martyrs/src/modules/core/views/components/partials/Navigation.vue.js.map +1 -1
  117. package/dist/martyrs/src/modules/core/views/components/partials/NavigationBar.vue.js +6 -6
  118. package/dist/martyrs/src/modules/core/views/components/partials/Sidebar.vue.js +5 -7
  119. package/dist/martyrs/src/modules/core/views/components/partials/Sidebar.vue.js.map +1 -1
  120. package/dist/martyrs/src/modules/core/views/components/sections/{Filters.vue2.js → Filters.vue.js} +2 -2
  121. package/dist/martyrs/src/modules/core/views/components/sections/Filters.vue.js.map +1 -0
  122. package/dist/martyrs/src/modules/core/views/components/sections/SectionPageTitle.vue.js +28 -18
  123. package/dist/martyrs/src/modules/core/views/components/sections/SectionPageTitle.vue.js.map +1 -1
  124. package/dist/martyrs/src/modules/core/views/mixins/mixins.js +3 -3
  125. package/dist/martyrs/src/modules/core/views/mixins/mixins.js.map +1 -1
  126. package/dist/martyrs/src/modules/core/views/router/addRoutes.js +2 -3
  127. package/dist/martyrs/src/modules/core/views/router/addRoutes.js.map +1 -1
  128. package/dist/martyrs/src/modules/core/views/utils/vue-app-renderer.js +10 -0
  129. package/dist/martyrs/src/modules/core/views/utils/vue-app-renderer.js.map +1 -1
  130. package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.js +4 -4
  131. package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.js +2 -2
  132. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +3 -3
  133. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +9 -9
  134. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js.map +1 -1
  135. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +1 -1
  136. package/dist/martyrs/src/modules/events/components/pages/Events.vue.js +1 -0
  137. package/dist/martyrs/src/modules/events/components/pages/Events.vue.js.map +1 -1
  138. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js +23 -33
  139. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js.map +1 -1
  140. package/dist/martyrs/src/modules/events/components/sections/EditTickets.vue.js +13 -13
  141. package/dist/martyrs/src/modules/events/components/sections/List.vue.js +2 -2
  142. package/dist/martyrs/src/modules/events/components/sections/List.vue.js.map +1 -1
  143. package/dist/martyrs/src/modules/events/events.client.js +37 -15
  144. package/dist/martyrs/src/modules/events/events.client.js.map +1 -1
  145. package/dist/martyrs/src/modules/events/router/events.backoffice.router.js +95 -0
  146. package/dist/martyrs/src/modules/events/router/events.backoffice.router.js.map +1 -0
  147. package/dist/martyrs/src/modules/events/router/events.organization.router.js +95 -0
  148. package/dist/martyrs/src/modules/events/router/events.organization.router.js.map +1 -0
  149. package/dist/martyrs/src/modules/events/router/events.router.js +73 -364
  150. package/dist/martyrs/src/modules/events/router/events.router.js.map +1 -1
  151. package/dist/martyrs/src/modules/events/router/events.user.router.js +65 -0
  152. package/dist/martyrs/src/modules/events/router/events.user.router.js.map +1 -0
  153. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +5 -5
  154. package/dist/martyrs/src/modules/governance/configs/navigation.initiative.config.js +33 -0
  155. package/dist/martyrs/src/modules/governance/configs/navigation.initiative.config.js.map +1 -0
  156. package/dist/martyrs/src/modules/governance/governance.client.js +31 -0
  157. package/dist/martyrs/src/modules/governance/governance.client.js.map +1 -0
  158. package/dist/martyrs/src/modules/governance/views/components/blocks/CardInitiativeItem.vue.js +110 -0
  159. package/dist/martyrs/src/modules/governance/views/components/blocks/CardInitiativeItem.vue.js.map +1 -0
  160. package/dist/martyrs/src/modules/governance/views/components/blocks/CardSprintItem.vue.js +105 -0
  161. package/dist/martyrs/src/modules/governance/views/components/blocks/CardSprintItem.vue.js.map +1 -0
  162. package/dist/martyrs/src/modules/governance/views/components/blocks/CardTaskItem.vue.js +110 -0
  163. package/dist/martyrs/src/modules/governance/views/components/blocks/CardTaskItem.vue.js.map +1 -0
  164. package/dist/martyrs/src/modules/governance/views/components/blocks/CardVotingItem.vue.js +106 -0
  165. package/dist/martyrs/src/modules/governance/views/components/blocks/CardVotingItem.vue.js.map +1 -0
  166. package/dist/martyrs/src/modules/governance/views/components/pages/Governance.vue.js +52 -0
  167. package/dist/martyrs/src/modules/governance/views/components/pages/Governance.vue.js.map +1 -0
  168. package/dist/martyrs/src/modules/governance/views/components/pages/Initiative.vue.js +684 -0
  169. package/dist/martyrs/src/modules/governance/views/components/pages/Initiative.vue.js.map +1 -0
  170. package/dist/martyrs/src/modules/governance/views/components/pages/InitiativeCreate.vue.js +78 -0
  171. package/dist/martyrs/src/modules/governance/views/components/pages/InitiativeCreate.vue.js.map +1 -0
  172. package/dist/martyrs/src/modules/governance/views/components/pages/InitiativeSprints.vue.js +328 -0
  173. package/dist/martyrs/src/modules/governance/views/components/pages/InitiativeSprints.vue.js.map +1 -0
  174. package/dist/martyrs/src/modules/governance/views/components/pages/Initiatives.vue.js +145 -0
  175. package/dist/martyrs/src/modules/governance/views/components/pages/Initiatives.vue.js.map +1 -0
  176. package/dist/martyrs/src/modules/governance/views/components/pages/Sprint.vue.js +258 -0
  177. package/dist/martyrs/src/modules/governance/views/components/pages/Sprint.vue.js.map +1 -0
  178. package/dist/martyrs/src/modules/governance/views/components/pages/SprintCreate.vue.js +72 -0
  179. package/dist/martyrs/src/modules/governance/views/components/pages/SprintCreate.vue.js.map +1 -0
  180. package/dist/martyrs/src/modules/governance/views/components/pages/Task.vue.js +769 -0
  181. package/dist/martyrs/src/modules/governance/views/components/pages/Task.vue.js.map +1 -0
  182. package/dist/martyrs/src/modules/governance/views/components/pages/TaskCreate.vue.js +88 -0
  183. package/dist/martyrs/src/modules/governance/views/components/pages/TaskCreate.vue.js.map +1 -0
  184. package/dist/martyrs/src/modules/governance/views/components/pages/Tasks.vue.js +291 -0
  185. package/dist/martyrs/src/modules/governance/views/components/pages/Tasks.vue.js.map +1 -0
  186. package/dist/martyrs/src/modules/governance/views/components/pages/Voting.vue.js +267 -0
  187. package/dist/martyrs/src/modules/governance/views/components/pages/Voting.vue.js.map +1 -0
  188. package/dist/martyrs/src/modules/governance/views/components/pages/VotingCreate.vue.js +90 -0
  189. package/dist/martyrs/src/modules/governance/views/components/pages/VotingCreate.vue.js.map +1 -0
  190. package/dist/martyrs/src/modules/governance/views/components/pages/Votings.vue.js +68 -0
  191. package/dist/martyrs/src/modules/governance/views/components/pages/Votings.vue.js.map +1 -0
  192. package/dist/martyrs/src/modules/governance/views/components/partials/EmptyState.vue.js +47 -0
  193. package/dist/martyrs/src/modules/governance/views/components/partials/EmptyState.vue.js.map +1 -0
  194. package/dist/martyrs/src/modules/governance/views/components/partials/LinkedEntityCard.vue.js +164 -0
  195. package/dist/martyrs/src/modules/governance/views/components/partials/LinkedEntityCard.vue.js.map +1 -0
  196. package/dist/martyrs/src/modules/governance/views/components/partials/TaskStatusBadge.vue.js +39 -0
  197. package/dist/martyrs/src/modules/governance/views/components/partials/TaskStatusBadge.vue.js.map +1 -0
  198. package/dist/martyrs/src/modules/governance/views/components/partials/VoteForm.vue.js +112 -0
  199. package/dist/martyrs/src/modules/governance/views/components/partials/VoteForm.vue.js.map +1 -0
  200. package/dist/martyrs/src/modules/governance/views/components/partials/VotingResults.vue.js +187 -0
  201. package/dist/martyrs/src/modules/governance/views/components/partials/VotingResults.vue.js.map +1 -0
  202. package/dist/martyrs/src/modules/governance/views/components/sections/FormInitiativeDetails.vue.js +555 -0
  203. package/dist/martyrs/src/modules/governance/views/components/sections/FormInitiativeDetails.vue.js.map +1 -0
  204. package/dist/martyrs/src/modules/governance/views/components/sections/FormSprintDetails.vue.js +187 -0
  205. package/dist/martyrs/src/modules/governance/views/components/sections/FormSprintDetails.vue.js.map +1 -0
  206. package/dist/martyrs/src/modules/governance/views/components/sections/FormTaskDetails.vue.js +171 -0
  207. package/dist/martyrs/src/modules/governance/views/components/sections/FormTaskDetails.vue.js.map +1 -0
  208. package/dist/martyrs/src/modules/governance/views/components/sections/FormVotingDetails.vue.js +179 -0
  209. package/dist/martyrs/src/modules/governance/views/components/sections/FormVotingDetails.vue.js.map +1 -0
  210. package/dist/martyrs/src/modules/governance/views/router/governance.router.js +502 -0
  211. package/dist/martyrs/src/modules/governance/views/router/governance.router.js.map +1 -0
  212. package/dist/martyrs/src/modules/governance/views/store/initiatives.js +119 -0
  213. package/dist/martyrs/src/modules/governance/views/store/initiatives.js.map +1 -0
  214. package/dist/martyrs/src/modules/governance/views/store/sprints.js +99 -0
  215. package/dist/martyrs/src/modules/governance/views/store/sprints.js.map +1 -0
  216. package/dist/martyrs/src/modules/governance/views/store/tasks.js +115 -0
  217. package/dist/martyrs/src/modules/governance/views/store/tasks.js.map +1 -0
  218. package/dist/martyrs/src/modules/governance/views/store/votings.js +155 -0
  219. package/dist/martyrs/src/modules/governance/views/store/votings.js.map +1 -0
  220. package/dist/martyrs/src/modules/icons/entities/IconCash.vue.js +70 -0
  221. package/dist/martyrs/src/modules/icons/entities/IconCash.vue.js.map +1 -0
  222. package/dist/martyrs/src/modules/icons/icons.client.js +1 -1
  223. package/dist/martyrs/src/modules/icons/icons.client.js.map +1 -1
  224. package/dist/martyrs/src/modules/icons/{icons.router.js → router/icons.router.js} +1 -1
  225. package/dist/martyrs/src/modules/icons/router/icons.router.js.map +1 -0
  226. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +4 -4
  227. package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.js +3 -3
  228. package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js +2 -2
  229. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +4 -4
  230. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +6 -6
  231. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js.map +1 -1
  232. package/dist/martyrs/src/modules/marketplace/views/components/pages/Marketplace.vue.js +1 -1
  233. package/dist/martyrs/src/modules/music/components/blocks/ActionButtons.vue.js +9 -9
  234. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +4 -4
  235. package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.js +2 -2
  236. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js +4 -4
  237. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js +7 -7
  238. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +4 -4
  239. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +4 -4
  240. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +3 -3
  241. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js +4 -4
  242. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +4 -4
  243. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +1 -1
  244. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +9 -9
  245. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +13 -13
  246. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +9 -9
  247. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +9 -9
  248. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +16 -16
  249. package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.js +1 -1
  250. package/dist/martyrs/src/modules/music/components/player/FullscreenPlayer.vue.js +2 -2
  251. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js +4 -4
  252. package/dist/martyrs/src/modules/music/components/player/PlayerControls.vue.js +10 -10
  253. package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.js +6 -6
  254. package/dist/martyrs/src/modules/music/components/sections/PopularTracks.vue.js +63 -0
  255. package/dist/martyrs/src/modules/music/components/sections/PopularTracks.vue.js.map +1 -0
  256. package/dist/martyrs/src/modules/music/music.client.js +29 -25
  257. package/dist/martyrs/src/modules/music/music.client.js.map +1 -1
  258. package/dist/martyrs/src/modules/music/{music.router.js → router/music.router.js} +16 -16
  259. package/dist/martyrs/src/modules/music/router/music.router.js.map +1 -0
  260. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js +26 -27
  261. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js.map +1 -1
  262. package/dist/martyrs/src/modules/notifications/components/sections/NotificationPreferences.vue.js +118 -59
  263. package/dist/martyrs/src/modules/notifications/components/sections/NotificationPreferences.vue.js.map +1 -1
  264. package/dist/martyrs/src/modules/notifications/notifications.client.js +74 -54
  265. package/dist/martyrs/src/modules/notifications/notifications.client.js.map +1 -1
  266. package/dist/martyrs/src/modules/notifications/{notifications.router.js → router/notifications.router.js} +3 -3
  267. package/dist/martyrs/src/modules/notifications/router/notifications.router.js.map +1 -0
  268. package/dist/martyrs/src/modules/orders/components/blocks/CardApplication.vue.js +34 -44
  269. package/dist/martyrs/src/modules/orders/components/blocks/CardApplication.vue.js.map +1 -1
  270. package/dist/martyrs/src/modules/orders/components/blocks/CardCustomer.vue.js +47 -57
  271. package/dist/martyrs/src/modules/orders/components/blocks/CardCustomer.vue.js.map +1 -1
  272. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.js +2 -2
  273. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.js.map +1 -1
  274. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.js +2 -2
  275. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.js.map +1 -1
  276. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +4 -4
  277. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +6 -6
  278. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js.map +1 -1
  279. package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js +7 -7
  280. package/dist/martyrs/src/modules/orders/components/pages/Applications.vue.js +61 -54
  281. package/dist/martyrs/src/modules/orders/components/pages/Applications.vue.js.map +1 -1
  282. package/dist/martyrs/src/modules/orders/components/pages/Customers.vue.js +43 -31
  283. package/dist/martyrs/src/modules/orders/components/pages/Customers.vue.js.map +1 -1
  284. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +14 -14
  285. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +3 -3
  286. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js.map +1 -1
  287. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +19 -19
  288. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.js +1 -1
  289. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js +7 -10
  290. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js.map +1 -1
  291. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js +7 -10
  292. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js.map +1 -1
  293. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +3 -3
  294. package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.js +1 -1
  295. package/dist/martyrs/src/modules/orders/orders.client.js +16 -16
  296. package/dist/martyrs/src/modules/orders/orders.client.js.map +1 -1
  297. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +11 -4
  298. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js.map +1 -1
  299. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +2 -2
  300. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js +2 -2
  301. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js +22 -15
  302. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js.map +1 -1
  303. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js +2 -2
  304. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +63 -1
  305. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js.map +1 -1
  306. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +9 -3
  307. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js.map +1 -1
  308. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +14 -8
  309. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js.map +1 -1
  310. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js +24 -30
  311. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js.map +1 -1
  312. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +2 -2
  313. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +3 -3
  314. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +2 -2
  315. package/dist/martyrs/src/modules/organizations/organizations.client.js +42 -6
  316. package/dist/martyrs/src/modules/organizations/organizations.client.js.map +1 -1
  317. package/dist/martyrs/src/modules/organizations/router/organizations.backoffice.router.js +20 -0
  318. package/dist/martyrs/src/modules/organizations/router/organizations.backoffice.router.js.map +1 -0
  319. package/dist/martyrs/src/modules/organizations/router/organizations.router.js +102 -0
  320. package/dist/martyrs/src/modules/organizations/router/organizations.router.js.map +1 -0
  321. package/dist/martyrs/src/modules/organizations/router/organizations.user.router.js +20 -0
  322. package/dist/martyrs/src/modules/organizations/router/organizations.user.router.js.map +1 -0
  323. package/dist/martyrs/src/modules/pages/pages.client.js +1 -1
  324. package/dist/martyrs/src/modules/pages/pages.client.js.map +1 -1
  325. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -1
  326. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +3 -3
  327. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +2 -2
  328. package/dist/martyrs/src/modules/pages/{pages.router.js → views/router/pages.router.js} +8 -8
  329. package/dist/martyrs/src/modules/pages/views/router/pages.router.js.map +1 -0
  330. package/dist/martyrs/src/modules/products/components/blocks/CardPosition.vue.js +1 -1
  331. package/dist/martyrs/src/modules/products/components/blocks/CardPosition.vue.js.map +1 -1
  332. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +1 -1
  333. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +7 -7
  334. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +2 -2
  335. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +22 -22
  336. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +5 -5
  337. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js.map +1 -1
  338. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +3 -3
  339. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +4 -4
  340. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +21 -21
  341. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js +4 -4
  342. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +4 -4
  343. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +4 -4
  344. package/dist/martyrs/src/modules/rents/rents.client.js +1 -1
  345. package/dist/martyrs/src/modules/rents/rents.client.js.map +1 -1
  346. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +7 -7
  347. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js +1 -1
  348. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +4 -4
  349. package/dist/martyrs/src/modules/rents/{rents.router.js → views/router/rents.router.js} +4 -4
  350. package/dist/martyrs/src/modules/rents/views/router/rents.router.js.map +1 -0
  351. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +3 -3
  352. package/dist/martyrs/src/modules/reports/reports.client.js +1 -1
  353. package/dist/martyrs/src/modules/reports/reports.client.js.map +1 -1
  354. package/dist/martyrs/src/modules/reports/{reports.router.js → router/reports.router.js} +1 -1
  355. package/dist/martyrs/src/modules/reports/router/reports.router.js.map +1 -0
  356. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js +1 -1
  357. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js +2 -2
  358. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +13 -13
  359. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +22 -22
  360. package/dist/martyrs/src/modules/wallet/views/components/pages/Payments.vue.js +68 -0
  361. package/dist/martyrs/src/modules/wallet/views/components/pages/Payments.vue.js.map +1 -0
  362. package/dist/martyrs/src/modules/wallet/views/router/wallet.router.js +48 -0
  363. package/dist/martyrs/src/modules/wallet/views/router/wallet.router.js.map +1 -0
  364. package/dist/martyrs/src/modules/wallet/views/store/payments.store.js +59 -0
  365. package/dist/martyrs/src/modules/wallet/views/store/payments.store.js.map +1 -0
  366. package/dist/martyrs/src/modules/wallet/wallet.client.js +20 -0
  367. package/dist/martyrs/src/modules/wallet/wallet.client.js.map +1 -0
  368. package/dist/martyrs.es.js +84 -41
  369. package/dist/martyrs.es10.js +126 -0
  370. package/dist/martyrs.es100.js +33 -0
  371. package/dist/martyrs.es102.js +39 -0
  372. package/dist/martyrs.es103.js +31 -0
  373. package/dist/martyrs.es105.js +27 -0
  374. package/dist/martyrs.es106.js +8 -0
  375. package/dist/martyrs.es107.js +9 -0
  376. package/dist/martyrs.es108.js +79 -0
  377. package/dist/martyrs.es109.js +7 -0
  378. package/dist/martyrs.es11.js +49 -0
  379. package/dist/{web-n_ivHO3v.js → martyrs.es110.js} +1 -1
  380. package/dist/martyrs.es111.js +327 -0
  381. package/dist/martyrs.es112.js +121 -0
  382. package/dist/martyrs.es115.js +4 -0
  383. package/dist/martyrs.es116.js +25 -0
  384. package/dist/martyrs.es117.js +7 -0
  385. package/dist/martyrs.es118.js +10 -0
  386. package/dist/martyrs.es119.js +169 -0
  387. package/dist/martyrs.es12.js +94 -0
  388. package/dist/martyrs.es120.js +460 -0
  389. package/dist/martyrs.es121.js +42 -0
  390. package/dist/martyrs.es122.js +12 -0
  391. package/dist/martyrs.es123.js +52 -0
  392. package/dist/martyrs.es124.js +14 -0
  393. package/dist/martyrs.es125.js +47 -0
  394. package/dist/martyrs.es126.js +7 -0
  395. package/dist/martyrs.es127.js +131 -0
  396. package/dist/martyrs.es128.js +103 -0
  397. package/dist/martyrs.es129.js +89 -0
  398. package/dist/martyrs.es13.js +48 -0
  399. package/dist/martyrs.es130.js +40 -0
  400. package/dist/martyrs.es131.js +14 -0
  401. package/dist/martyrs.es132.js +42 -0
  402. package/dist/martyrs.es133.js +11 -0
  403. package/dist/martyrs.es134.js +6 -0
  404. package/dist/martyrs.es135.js +119 -0
  405. package/dist/martyrs.es136.js +20 -0
  406. package/dist/martyrs.es137.js +18 -0
  407. package/dist/martyrs.es138.js +35 -0
  408. package/dist/martyrs.es139.js +12 -0
  409. package/dist/martyrs.es14.js +101 -0
  410. package/dist/martyrs.es140.js +23 -0
  411. package/dist/martyrs.es141.js +12 -0
  412. package/dist/martyrs.es142.js +11 -0
  413. package/dist/martyrs.es143.js +47 -0
  414. package/dist/martyrs.es144.js +483 -0
  415. package/dist/martyrs.es145.js +8 -0
  416. package/dist/martyrs.es146.js +4 -0
  417. package/dist/martyrs.es147.js +14 -0
  418. package/dist/martyrs.es148.js +33 -0
  419. package/dist/martyrs.es149.js +19 -0
  420. package/dist/martyrs.es15.js +408 -0
  421. package/dist/martyrs.es150.js +22 -0
  422. package/dist/martyrs.es151.js +31 -0
  423. package/dist/martyrs.es152.js +23 -0
  424. package/dist/martyrs.es16.js +58 -0
  425. package/dist/martyrs.es17.js +44 -0
  426. package/dist/martyrs.es18.js +42 -0
  427. package/dist/martyrs.es19.js +27 -0
  428. package/dist/martyrs.es2.js +88 -0
  429. package/dist/martyrs.es20.js +13 -0
  430. package/dist/martyrs.es21.js +57 -0
  431. package/dist/martyrs.es22.js +104 -0
  432. package/dist/martyrs.es23.js +178 -0
  433. package/dist/martyrs.es24.js +123 -0
  434. package/dist/martyrs.es25.js +139 -0
  435. package/dist/martyrs.es26.js +21 -0
  436. package/dist/martyrs.es27.js +60 -0
  437. package/dist/martyrs.es28.js +75 -0
  438. package/dist/martyrs.es29.js +36 -0
  439. package/dist/martyrs.es3.js +116 -0
  440. package/dist/martyrs.es30.js +348 -0
  441. package/dist/martyrs.es31.js +83 -0
  442. package/dist/martyrs.es32.js +148 -0
  443. package/dist/martyrs.es33.js +175 -0
  444. package/dist/martyrs.es34.js +66 -0
  445. package/dist/martyrs.es35.js +57 -0
  446. package/dist/martyrs.es36.js +76 -0
  447. package/dist/martyrs.es37.js +101 -0
  448. package/dist/martyrs.es38.js +39 -0
  449. package/dist/martyrs.es39.js +124 -0
  450. package/dist/martyrs.es4.js +85 -0
  451. package/dist/martyrs.es40.js +120 -0
  452. package/dist/martyrs.es41.js +229 -0
  453. package/dist/martyrs.es43.js +29 -0
  454. package/dist/martyrs.es44.js +27 -0
  455. package/dist/martyrs.es46.js +9 -0
  456. package/dist/martyrs.es48.js +18 -0
  457. package/dist/martyrs.es5.js +395 -0
  458. package/dist/martyrs.es50.js +42 -0
  459. package/dist/martyrs.es52.js +255 -0
  460. package/dist/martyrs.es54.js +8 -0
  461. package/dist/martyrs.es6.js +70 -0
  462. package/dist/martyrs.es61.js +139 -0
  463. package/dist/martyrs.es65.js +28 -0
  464. package/dist/martyrs.es68.js +33 -0
  465. package/dist/martyrs.es69.js +37 -0
  466. package/dist/martyrs.es7.js +17 -0
  467. package/dist/martyrs.es71.js +114 -0
  468. package/dist/martyrs.es73.js +83 -0
  469. package/dist/martyrs.es74.js +52 -0
  470. package/dist/martyrs.es75.js +75 -0
  471. package/dist/martyrs.es76.js +176 -0
  472. package/dist/martyrs.es77.js +31 -0
  473. package/dist/martyrs.es78.js +38 -0
  474. package/dist/martyrs.es8.js +127 -0
  475. package/dist/martyrs.es81.js +32 -0
  476. package/dist/martyrs.es86.js +37 -0
  477. package/dist/martyrs.es89.js +37 -0
  478. package/dist/martyrs.es9.js +396 -0
  479. package/dist/martyrs.es91.js +63 -0
  480. package/dist/martyrs.es92.js +7 -0
  481. package/dist/martyrs.es93.js +35 -0
  482. package/dist/martyrs.es95.js +41 -0
  483. package/dist/martyrs.es96.js +59 -0
  484. package/dist/martyrs.es97.js +123 -0
  485. package/dist/martyrs.es98.js +43 -0
  486. package/dist/martyrs.es99.js +86 -0
  487. package/dist/music.server.js +11 -11
  488. package/dist/notifications.server.js +16 -6
  489. package/dist/orders.server.js +264 -145
  490. package/dist/organizations.server.js +22 -6
  491. package/dist/products.server.js +7 -7
  492. package/dist/rents.server.js +4 -3
  493. package/dist/style.css +970 -986
  494. package/package.json +13 -6
  495. package/src/builder/modes/ssr.rspack.dev.js +32 -20
  496. package/src/builder/rspack/rspack.config.api.js +3 -0
  497. package/src/builder/rspack/rspack.config.base.js +9 -1
  498. package/src/builder/rspack/rspack.config.ssr.client.js +27 -10
  499. package/src/components/Block/Block.vue +1 -1
  500. package/src/components/Button/Button.vue +4 -4
  501. package/src/components/Table/StatusBadge.vue +24 -18
  502. package/src/components/Text/Text.vue +1 -1
  503. package/src/jit/core.js +72 -35
  504. package/src/jit/plugin.js +4 -3
  505. package/src/jit/rules.js +15 -15
  506. package/src/modules/TASKS.MD +30 -0
  507. package/src/modules/TASK_ACTIVITY.md +60 -0
  508. package/src/modules/TASK_MODULE_ARCH.md +391 -0
  509. package/src/modules/auth/controllers/routes/users.routes.js +8 -0
  510. package/src/modules/auth/controllers/services/users.service.js +51 -1
  511. package/src/modules/auth/views/components/blocks/PopupAuth.vue +1 -1
  512. package/src/modules/auth/views/components/pages/ProfileBlogposts.vue +25 -24
  513. package/src/modules/auth/views/components/pages/SignIn.vue +10 -1
  514. package/src/modules/auth/views/components/pages/UserDashboard.vue +35 -62
  515. package/src/modules/auth/views/router/users.router.js +0 -44
  516. package/src/modules/backoffice/components/pages/Dashboard.vue +423 -120
  517. package/src/modules/backoffice/configs/navigation.backoffice.config.js +0 -2
  518. package/src/modules/backoffice/router/backoffice.router.js +0 -25
  519. package/src/modules/community/community.client.js +54 -9
  520. package/src/modules/community/components/blocks/CardBlogpost.vue +10 -3
  521. package/src/modules/community/components/layouts/Community.vue +3 -3
  522. package/src/modules/community/components/pages/BlogPost.vue +1 -1
  523. package/src/modules/community/components/pages/CreateBlogPost.vue +19 -20
  524. package/src/modules/community/components/pages/Posts.vue +43 -28
  525. package/src/modules/community/components/sections/Comment.vue +1 -1
  526. package/src/modules/community/controllers/blog.controller.js +4 -5
  527. package/src/modules/community/models/reaction.model.js +1 -0
  528. package/src/modules/community/router/community.backoffice.router.js +16 -0
  529. package/src/modules/community/router/community.organization.router.js +56 -0
  530. package/src/modules/community/router/community.router.js +58 -106
  531. package/src/modules/community/router/community.user.router.js +15 -0
  532. package/src/modules/constructor/components/elements/Textarea.vue +1 -1
  533. package/src/modules/constructor/components/sections/Constructor.vue +1 -1
  534. package/src/modules/core/controllers/classes/core.validator.js +7 -1
  535. package/src/modules/core/controllers/classes/core.verifier.js +0 -2
  536. package/src/modules/core/controllers/classes/crud/crud.controller.js +0 -4
  537. package/src/modules/core/controllers/classes/crud/crud.service.js +1 -0
  538. package/src/modules/core/models/schemas/engagement.schema.js +19 -22
  539. package/src/modules/core/views/classes/core.app.js +6 -4
  540. package/src/modules/core/views/classes/i18n.manager.js +9 -2
  541. package/src/modules/core/views/classes/ws.manager.js +17 -7
  542. package/src/modules/core/views/components/blocks/Card.vue +47 -24
  543. package/src/modules/core/views/components/blocks/CardStat.vue +27 -0
  544. package/src/modules/core/views/components/blocks/PopupAuth.vue +1 -1
  545. package/src/modules/core/views/components/layouts/Client.vue +5 -4
  546. package/src/modules/core/views/components/partials/BottomNavigationBar.vue +5 -5
  547. package/src/modules/core/views/components/partials/Header.vue +2 -2
  548. package/src/modules/core/views/components/partials/Navigation.vue +13 -14
  549. package/src/modules/core/views/components/partials/Sidebar.vue +4 -6
  550. package/src/modules/core/views/components/sections/SectionPageTitle.vue +23 -15
  551. package/src/modules/core/views/mixins/mixins.js +4 -3
  552. package/src/modules/core/views/router/addRoutes.js +1 -2
  553. package/src/modules/core/views/utils/vue-app-renderer.js +12 -0
  554. package/src/modules/events/components/pages/EditEventTickets.vue +1 -1
  555. package/src/modules/events/components/pages/Events.vue +1 -0
  556. package/src/modules/events/components/pages/EventsBackoffice.vue +23 -48
  557. package/src/modules/events/components/sections/List.vue +2 -2
  558. package/src/modules/events/events.client.js +44 -17
  559. package/src/modules/events/router/events.backoffice.router.js +80 -0
  560. package/src/modules/events/router/events.organization.router.js +80 -0
  561. package/src/modules/events/router/events.router.js +55 -325
  562. package/src/modules/events/router/events.user.router.js +49 -0
  563. package/src/modules/governance/TASK-TRACKER.MD +534 -39
  564. package/src/modules/governance/configs/navigation.initiative.config.js +30 -0
  565. package/src/modules/governance/controllers/routes/initiatives.routes.js +55 -8
  566. package/src/modules/governance/controllers/routes/{milestones.routes.js → sprints.routes.js} +22 -22
  567. package/src/modules/governance/controllers/routes/tasks.routes.js +2 -2
  568. package/src/modules/governance/governance.client.js +1 -4
  569. package/src/modules/governance/governance.server.js +6 -6
  570. package/src/modules/governance/middlewares/initiatives.verifier.js +60 -0
  571. package/src/modules/governance/middlewares/{milestones.verifier.js → sprints.verifier.js} +10 -10
  572. package/src/modules/governance/middlewares/tasks.verifier.js +4 -4
  573. package/src/modules/governance/middlewares/votings.verifier.js +25 -7
  574. package/src/modules/governance/models/{milestone.model.js → sprint.model.js} +11 -11
  575. package/src/modules/governance/models/task.model.js +4 -4
  576. package/src/modules/governance/models/voting.model.js +10 -5
  577. package/src/modules/governance/views/components/blocks/CardInitiativeItem.vue +8 -13
  578. package/src/modules/governance/views/components/blocks/{CardMilestoneItem.vue → CardSprintItem.vue} +16 -17
  579. package/src/modules/governance/views/components/blocks/CardTaskItem.vue +7 -9
  580. package/src/modules/governance/views/components/blocks/CardVotingItem.vue +7 -9
  581. package/src/modules/governance/views/components/pages/Governance.vue +13 -34
  582. package/src/modules/governance/views/components/pages/Initiative.vue +73 -154
  583. package/src/modules/governance/views/components/pages/InitiativeCreate.vue +44 -7
  584. package/src/modules/governance/views/components/pages/{Roadmap.vue → InitiativeSprints.vue} +70 -69
  585. package/src/modules/governance/views/components/pages/Initiatives.vue +23 -108
  586. package/src/modules/governance/views/components/pages/{Milestone.vue → Sprint.vue} +43 -41
  587. package/src/modules/governance/views/components/pages/SprintCreate.vue +55 -0
  588. package/src/modules/governance/views/components/pages/Task.vue +95 -88
  589. package/src/modules/governance/views/components/pages/TaskCreate.vue +47 -9
  590. package/src/modules/governance/views/components/pages/Tasks.vue +25 -21
  591. package/src/modules/governance/views/components/pages/Voting.vue +84 -68
  592. package/src/modules/governance/views/components/pages/VotingCreate.vue +48 -8
  593. package/src/modules/governance/views/components/pages/Votings.vue +12 -57
  594. package/src/modules/governance/views/components/partials/EmptyState.vue +1 -1
  595. package/src/modules/governance/views/components/partials/LinkedEntityCard.vue +23 -11
  596. package/src/modules/governance/views/components/partials/TaskStatusBadge.vue +1 -1
  597. package/src/modules/governance/views/components/partials/VoteForm.vue +3 -3
  598. package/src/modules/governance/views/components/partials/VotingResults.vue +13 -19
  599. package/src/modules/governance/views/components/sections/FormInitiativeDetails.vue +413 -15
  600. package/src/modules/governance/views/components/sections/FormSprintDetails.vue +156 -0
  601. package/src/modules/governance/views/components/sections/FormTaskDetails.vue +125 -21
  602. package/src/modules/governance/views/components/sections/FormVotingDetails.vue +136 -17
  603. package/src/modules/governance/views/components/sections/VoteForm.vue +2 -2
  604. package/src/modules/governance/views/router/governance.router.js +255 -151
  605. package/src/modules/governance/views/store/initiatives.js +23 -2
  606. package/src/modules/governance/views/store/sprints.js +102 -0
  607. package/src/modules/governance/views/store/tasks.js +25 -9
  608. package/src/modules/governance/views/store/votings.js +106 -27
  609. package/src/modules/icons/icons.client.js +1 -1
  610. package/src/modules/inventory/components/pages/InventoryEdit.vue +1 -1
  611. package/src/modules/music/components/sections/PopularTracks.vue +52 -0
  612. package/src/modules/music/music.client.js +8 -1
  613. package/src/modules/music/router/music.router.js +13 -1
  614. package/src/modules/notifications/components/elements/NotificationBadge.vue +8 -33
  615. package/src/modules/notifications/components/sections/NotificationPreferences.vue +110 -48
  616. package/src/modules/notifications/notifications.client.js +78 -57
  617. package/src/modules/notifications/router/notifications.router.js +32 -15
  618. package/src/modules/notifications/services/notification.service.js +15 -6
  619. package/src/modules/notifications/services/web-push.service.js +2 -0
  620. package/src/modules/orders/components/blocks/CardApplication.vue +20 -40
  621. package/src/modules/orders/components/blocks/CardCustomer.vue +35 -55
  622. package/src/modules/orders/components/blocks/CardOrderItem.vue +2 -2
  623. package/src/modules/orders/components/blocks/CardOrderUser.vue +2 -2
  624. package/src/modules/orders/components/forms/FormCustomerDetails.vue +2 -2
  625. package/src/modules/orders/components/pages/Applications.vue +59 -57
  626. package/src/modules/orders/components/pages/Customers.vue +40 -27
  627. package/src/modules/orders/components/pages/OrderCreate.vue +1 -1
  628. package/src/modules/orders/components/sections/ApplicationDetails.vue +1 -4
  629. package/src/modules/orders/components/sections/CustomerDetails.vue +1 -4
  630. package/src/modules/orders/controllers/orders.controller.js +113 -0
  631. package/src/modules/orders/middlewares/applications.verifier.js +13 -37
  632. package/src/modules/orders/middlewares/customers.verifier.js +44 -121
  633. package/src/modules/orders/models/customer.model.js +0 -1
  634. package/src/modules/orders/routes/applications.routes.js +108 -50
  635. package/src/modules/orders/routes/orders.routes.js +9 -1
  636. package/src/modules/organizations/components/blocks/CardOrganization.vue +12 -4
  637. package/src/modules/organizations/components/forms/DepartmentForm.vue +9 -4
  638. package/src/modules/organizations/components/pages/Members.vue +62 -1
  639. package/src/modules/organizations/components/pages/Organization.new.vue +17 -17
  640. package/src/modules/organizations/components/pages/Organization.vue +8 -1
  641. package/src/modules/organizations/components/pages/OrganizationBackoffice.vue +1 -1
  642. package/src/modules/organizations/components/pages/OrganizationEdit.vue +11 -4
  643. package/src/modules/organizations/components/pages/Organizations.vue +33 -46
  644. package/src/modules/organizations/controllers/invites.controller.js +19 -0
  645. package/src/modules/organizations/controllers/memberships.controller.js +1 -0
  646. package/src/modules/organizations/organizations.client.js +48 -7
  647. package/src/modules/organizations/router/organizations.backoffice.router.js +15 -0
  648. package/src/modules/organizations/router/organizations.router.js +72 -112
  649. package/src/modules/organizations/router/organizations.user.router.js +15 -0
  650. package/src/modules/pages/pages.client.js +1 -1
  651. package/src/modules/pages/views/router/pages.router.js +95 -15
  652. package/src/modules/products/components/blocks/CardPosition.vue +1 -1
  653. package/src/modules/products/components/pages/Products.vue +3 -3
  654. package/src/modules/rents/controllers/services/rents.services.js +1 -0
  655. package/src/modules/rents/rents.client.js +1 -1
  656. package/src/modules/rents/views/router/rents.router.js +93 -33
  657. package/src/modules/reports/reports.client.js +1 -1
  658. package/src/modules/wallet/wallet.client.js +1 -1
  659. package/src/styles/theme.scss +5 -3
  660. package/dist/engagement.schema-fh6W1fb_.js +0 -24
  661. package/dist/main-DQm5pwFO.js +0 -8213
  662. package/dist/martyrs/dist/main-DQm5pwFO.js +0 -1080
  663. package/dist/martyrs/dist/main-DQm5pwFO.js.map +0 -1
  664. package/dist/martyrs/dist/web-n_ivHO3v.js +0 -55
  665. package/dist/martyrs/dist/web-n_ivHO3v.js.map +0 -1
  666. package/dist/martyrs/src/components/Address/Address.vue.js.map +0 -1
  667. package/dist/martyrs/src/components/Button/Button.vue.js.map +0 -1
  668. package/dist/martyrs/src/components/EditImages/EditImages.vue2.js.map +0 -1
  669. package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue.js.map +0 -1
  670. package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +0 -1
  671. package/dist/martyrs/src/components/Select/Select.vue2.js.map +0 -1
  672. package/dist/martyrs/src/components/Tab/Tab.vue2.js.map +0 -1
  673. package/dist/martyrs/src/modules/community/community.router.js +0 -124
  674. package/dist/martyrs/src/modules/community/community.router.js.map +0 -1
  675. package/dist/martyrs/src/modules/core/views/components/sections/Filters.vue2.js.map +0 -1
  676. package/dist/martyrs/src/modules/icons/icons.router.js.map +0 -1
  677. package/dist/martyrs/src/modules/music/music.router.js.map +0 -1
  678. package/dist/martyrs/src/modules/notifications/notifications.router.js.map +0 -1
  679. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +0 -200
  680. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js.map +0 -1
  681. package/dist/martyrs/src/modules/organizations/organizations.router.js +0 -145
  682. package/dist/martyrs/src/modules/organizations/organizations.router.js.map +0 -1
  683. package/dist/martyrs/src/modules/pages/pages.router.js.map +0 -1
  684. package/dist/martyrs/src/modules/rents/rents.router.js.map +0 -1
  685. package/dist/martyrs/src/modules/reports/reports.router.js.map +0 -1
  686. package/dist/martyrs.css +0 -1
  687. 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
  688. 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
  689. 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
  690. 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
  691. 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
  692. 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
  693. 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
  694. 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
  695. 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
  696. 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
  697. package/src/jit/.claude/settings.local.json +0 -10
  698. package/src/modules/community/community.router.js +0 -107
  699. package/src/modules/governance/governance.router.js +0 -350
  700. package/src/modules/governance/seed-governance.js +0 -348
  701. package/src/modules/governance/views/components/pages/InitiativeMilestones.vue +0 -159
  702. package/src/modules/governance/views/router/goverance.router.js +0 -290
  703. package/src/modules/governance/views/store/votes.js +0 -113
  704. package/src/modules/icons/icons.router.js +0 -29
  705. package/src/modules/marketplace/marketplace.router.js +0 -66
  706. package/src/modules/music/.claude/settings.local.json +0 -8
  707. package/src/modules/music/music.router.js +0 -188
  708. package/src/modules/notifications/notifications.router.js +0 -47
  709. package/src/modules/orders/orders.router.js +0 -255
  710. package/src/modules/organizations/organizations.router.js +0 -123
  711. package/src/modules/organizations/router/backoffice.router.js +0 -27
  712. package/src/modules/organizations/router/departments.router.js +0 -15
  713. package/src/modules/organizations/router/members.router.js +0 -20
  714. package/src/modules/pages/pages.router.js +0 -107
  715. package/src/modules/rents/rents.router.js +0 -115
  716. package/src/modules/reports/reports.router.js +0 -33
  717. package/src/modules/wallet/wallet.router.js +0 -45
@@ -0,0 +1,60 @@
1
+ 28 -## Сервис (микросервис)
2
+ 28 +## Микросервис — REST API
3
+ 29
4
+ 30 -Init + getter singleton (как sessions.service.js). Любой модуль импортирует getter:
5
+ 30 +Модули взаимодействуют через HTTP. Никаких импортов.
6
+ 31
7
+ 32 +```
8
+ 33 +POST /api/activities — создать запись
9
+ 34 +GET /api/activities — получить список с фильтрами
10
+ 35 +```
11
+ 36 +
12
+ 37 +### Создание из любого модуля (HTTP запрос)
13
+ 38 +
14
+ 39 ```js
15
+ 33 -import { getActivityService } from '@martyrs/src/modules/core/controllers/services/activity.service.js';
16
+ 40 +// В любом сервисе/контроллере — просто HTTP вызов
17
+ 41 +await axios.post('http://localhost:8040/api/activities', {
18
+ 42 + creator: { type: 'user', target: req.userId },
19
+ 43 + owner: { type: 'organization', target: orgId },
20
+ 44 + resource: { type: 'Event', target: event._id },
21
+ 45 + description: 'Создал событие',
22
+ 46 + details: { title: event.title },
23
+ 47 +}, { headers: { Authorization: req.headers.authorization } });
24
+ 48 +```
25
+ 49
26
+ 35 -const activityService = getActivityService();
27
+ 50 +### Чтение
28
+ 51
29
+ 37 -// Удобные методы
30
+ 38 -await activityService.create({ ... });
31
+ 39 -await activityService.listByOwner(ownerId, ownerType, { skip, limit });
32
+ 40 -await activityService.listByResource(resourceType, resourceId, { skip, limit });
33
+ 52 ```
34
+ 53 +GET /api/activities?owner=OWNER_ID
35
+ 54 +GET /api/activities?creator=USER_ID
36
+ 55 +GET /api/activities?resourceType=Event&resourceTarget=EVENT_ID
37
+ 56 +```
38
+ 57
39
+ 58 ## Файлы
40
+ 59
41
+ 45 -### Создать (5 файлов в `martyrs/src/modules/core/`)
42
+ 60 +### Создать (4 файла в `martyrs/src/modules/core/`)
43
+ 61
44
+ 47 -1. **`models/activity.model.js`** — модель
45
+ 48 -2. **`controllers/services/activity.service.js`** — сервис (init + getter singleton)
46
+ 49 -3. **`controllers/middlewares/activity.verifier.js`** — валидация query для GET
47
+ 50 -4. **`routes/activity.routes.js`** — GET /api/activities (JWT optional → Verifier → handler)
48
+ 51 -5. **`policies/activity.policies.js`** — ABAC: owner видит свои, admin всё
49
+ 62 +1. **`models/activity.model.js`** — модель (ownership schema, resource ref, description, details)
50
+ 63 +2. **`controllers/middlewares/activity.verifier.js`** — валидация body (POST) и query (GET)
51
+ 64 +3. **`routes/activity.routes.js`** — POST + GET /api/activities (JWT → Verifier → ABAC → handler)
52
+ 65 +4. **`policies/activity.policies.js`** — ABAC: create для авторизованных, read по ownership
53
+ 66
54
+ 67 ### Изменить (1 файл)
55
+ 68
56
+ 55 -6. **`core.server.js`** — `db.activity = ActivityModel(db)`, `initActivityService(db)`, подключить роуты и политику
57
+ 69 +5. **`core.server.js`** — `db.activity = ActivityModel(db)`, подключить роуты и политику
58
+ 70
59
+ 71 ## Проверка
60
+ 72
@@ -0,0 +1,391 @@
1
+ # Module Architecture: Lightweight client.js + ExtensionSlot
2
+
3
+ ## Проблема
4
+
5
+ Две проблемы, одно решение:
6
+
7
+ 1. **client.js грузится долго** — статические импорты Vue компонентов тянут весь граф зависимостей при загрузке модуля, даже если компоненты не рендерятся
8
+ 2. **Модули не могут встраивать UI друг в друга** — inventory хочет показать пункт в сайдбаре backoffice, orders хочет таб в профиле организации, но для этого нет механизма
9
+
10
+ ## Корень проблемы: статические импорты компонентов
11
+
12
+ ```javascript
13
+ // auth.client.js — СЕЙЧАС
14
+ // Эти 9 компонентов со всеми зависимостями грузятся при import файла,
15
+ // хотя нужны только для re-export и НЕ используются в initialize()
16
+ export { default as Auth } from './views/components/layouts/Auth.vue';
17
+ export { default as Profile } from './views/components/pages/Profile.vue';
18
+ export { default as ProfileEdit } from './views/components/pages/ProfileEdit.vue';
19
+ // ... ещё 6 компонентов
20
+ ```
21
+
22
+ Бандлер пакует все компоненты в чанк модуля. Браузер скачивает и парсит весь код при `import('auth/client')`, хотя ни один компонент ещё не рендерится.
23
+
24
+ ## Решение
25
+
26
+ ### 1. Компоненты через defineAsyncComponent
27
+
28
+ `defineAsyncComponent(() => import(...))` создаёт ленивую обёртку. Код компонента загрузится **только при рендере**. Сам `client.js` остаётся лёгким — бандлер выносит каждый компонент в отдельный чанк.
29
+
30
+ ```javascript
31
+ // auth.client.js — ПОСЛЕ
32
+ import { defineAsyncComponent } from 'vue'
33
+
34
+ // Ленивые обёртки — НЕ грузят код компонентов
35
+ export const Auth = defineAsyncComponent(() => import('./views/components/layouts/Auth.vue'));
36
+ export const Profile = defineAsyncComponent(() => import('./views/components/pages/Profile.vue'));
37
+ export const ProfileEdit = defineAsyncComponent(() => import('./views/components/pages/ProfileEdit.vue'));
38
+ // ...
39
+
40
+ // Это по-прежнему нужно при инициализации — статические импорты ОК
41
+ import * as storeAuth from './views/store/auth.js';
42
+ import * as storeUsers from './views/store/users.js';
43
+ import addRoutes from '@martyrs/src/modules/core/views/router/addRoutes.js';
44
+ // ...
45
+
46
+ function initializeAuth(app, store, router, options = {}) {
47
+ // Всё как раньше — addRoutes, addStore, i18n, plugins
48
+ }
49
+ ```
50
+
51
+ **Импорт работает как раньше** — потребитель не замечает разницы:
52
+ ```javascript
53
+ import { Profile } from '@ozdao/martyrs/modules/auth/client'
54
+ // Profile — async component, грузится при <Profile /> в шаблоне
55
+ ```
56
+
57
+ ### 2. Все модули грузятся при старте
58
+
59
+ Раз `client.js` лёгкий (компоненты в отдельных чанках, остался только код инициализации) — загружаем **все** модули при старте приложения. Не нужна ленивая загрузка по роутам.
60
+
61
+ ```
62
+ БЫЛО:
63
+ global.config → register(loader) → router.beforeEach → lazy load → initialize()
64
+ ↑ тут задержка при навигации
65
+
66
+ СТАЛО:
67
+ global.config → loadAll() → initialize() для всех модулей → app ready
68
+ ↑ быстро, client.js лёгкие
69
+ ```
70
+
71
+ ### 3. ExtensionSlot — модули встраивают UI друг в друга
72
+
73
+ В `initialize()` модуль регистрирует свои расширения в чужие слоты:
74
+
75
+ ```javascript
76
+ // inventory.client.js
77
+ import { defineAsyncComponent } from 'vue'
78
+
79
+ function initializeInventory(app, store, router, options = {}) {
80
+ // Роуты и сторы — как раньше
81
+ addRoutes(router, { parentName: 'Backoffice Root', basePath: 'inventory', ... })
82
+
83
+ // Встраивает свой UI в backoffice
84
+ app.extensions.add('backoffice:sidebar', {
85
+ component: defineAsyncComponent(() => import('./components/nav/InventoryNav.vue')),
86
+ order: 30
87
+ })
88
+
89
+ // Встраивает таб в профиль организации
90
+ app.extensions.add('organization:tabs', {
91
+ component: defineAsyncComponent(() => import('./components/tabs/OrgInventory.vue')),
92
+ label: 'Inventory',
93
+ icon: 'inventory',
94
+ order: 40
95
+ })
96
+ }
97
+ ```
98
+
99
+ Принимающая сторона — компонент `ExtensionSlot`:
100
+
101
+ ```vue
102
+ <!-- Backoffice Sidebar -->
103
+ <template>
104
+ <nav>
105
+ <ExtensionSlot name="backoffice:sidebar" :context="{ auth }" />
106
+ </nav>
107
+ </template>
108
+
109
+ <!-- Organization Profile -->
110
+ <template>
111
+ <div>
112
+ <ExtensionSlot name="organization:tabs" :context="{ organization, auth }" />
113
+ </div>
114
+ </template>
115
+ ```
116
+
117
+ `ExtensionSlot` собирает всё что зарегистрировали модули для данного слота, сортирует по `order`, фильтрует по `visible`, рендерит через `<component :is>`. Каждый компонент подгружается через `defineAsyncComponent` только когда слот рендерится.
118
+
119
+ ## Реализация
120
+
121
+ ### ExtensionSlot.vue
122
+
123
+ ```vue
124
+ <script setup>
125
+ import { computed, inject } from 'vue'
126
+
127
+ const props = defineProps({
128
+ name: { type: String, required: true },
129
+ context: { type: Object, default: () => ({}) },
130
+ tag: { type: String, default: 'div' },
131
+ itemClass: { type: String, default: '' }
132
+ })
133
+
134
+ const extensions = inject('extensions')
135
+
136
+ const items = computed(() => {
137
+ return (extensions.get(props.name) || [])
138
+ .filter(ext => !ext.visible || ext.visible(props.context))
139
+ .sort((a, b) => (a.order || 0) - (b.order || 0))
140
+ })
141
+ </script>
142
+
143
+ <template>
144
+ <component :is="tag" v-if="items.length">
145
+ <component
146
+ v-for="(ext, i) in items"
147
+ :key="i"
148
+ :is="ext.component"
149
+ v-bind="context"
150
+ :class="itemClass"
151
+ />
152
+ </component>
153
+ </template>
154
+ ```
155
+
156
+ ### Extensions API (в core)
157
+
158
+ ```javascript
159
+ // extensions.js
160
+ import { reactive } from 'vue'
161
+
162
+ export function createExtensions() {
163
+ const slots = reactive(new Map())
164
+
165
+ return {
166
+ add(slotName, extension) {
167
+ if (!slots.has(slotName)) {
168
+ slots.set(slotName, [])
169
+ }
170
+ slots.get(slotName).push(extension)
171
+ },
172
+
173
+ get(slotName) {
174
+ return slots.get(slotName) || []
175
+ },
176
+
177
+ // Для install в app
178
+ install(app) {
179
+ app.extensions = this
180
+ app.provide('extensions', slots)
181
+ }
182
+ }
183
+ }
184
+ ```
185
+
186
+ ### Подключение в core.app.js
187
+
188
+ ```javascript
189
+ import { createExtensions } from './extensions.js'
190
+
191
+ function createApp() {
192
+ const app = createVueSSRApp(layoutApp, config)
193
+ const extensions = createExtensions()
194
+ app.use(extensions)
195
+
196
+ // Загружаем и инициализируем ВСЕ модули
197
+ for (const [name, moduleConfig] of Object.entries(config.modules)) {
198
+ if (moduleConfig.loader) {
199
+ const mod = await moduleConfig.loader()
200
+ const module = mod.default || mod
201
+ if (module.initialize) {
202
+ await module.initialize(app, store, router, moduleConfig)
203
+ }
204
+ }
205
+ }
206
+
207
+ // Всё готово — роуты, сторы, extensions
208
+ }
209
+ ```
210
+
211
+ ## Примеры для существующих модулей
212
+
213
+ ### auth.client.js
214
+
215
+ ```javascript
216
+ import { defineAsyncComponent } from 'vue'
217
+ import * as storeAuth from './views/store/auth.js';
218
+ import * as storeUsers from './views/store/users.js';
219
+ import otpPlugin from './views/plugins/otp.plugin.js';
220
+ import popupAuthPlugin from './views/plugins/popup.auth.plugin.js';
221
+ import addRoutes from '@martyrs/src/modules/core/views/router/addRoutes.js';
222
+ import { getAuthRoutes } from './views/router/auth.router.js';
223
+ import { getUsersRoutes } from './views/router/users.router.js';
224
+ import { i18nManager } from '@martyrs/src/modules/core/views/classes/i18n.manager.js';
225
+ import locales from './locales/index.js';
226
+
227
+ // Компоненты — async, не грузят код при импорте
228
+ export const Auth = defineAsyncComponent(() => import('./views/components/layouts/Auth.vue'));
229
+ export const Invite = defineAsyncComponent(() => import('./views/components/pages/Invite.vue'));
230
+ export const Profile = defineAsyncComponent(() => import('./views/components/pages/Profile.vue'));
231
+ export const ProfileEdit = defineAsyncComponent(() => import('./views/components/pages/ProfileEdit.vue'));
232
+ export const ResetPassword = defineAsyncComponent(() => import('./views/components/pages/ResetPassword.vue'));
233
+ export const SignIn = defineAsyncComponent(() => import('./views/components/pages/SignIn.vue'));
234
+ export const SignUp = defineAsyncComponent(() => import('./views/components/pages/SignUp.vue'));
235
+ export const FeaturedUsers = defineAsyncComponent(() => import('./views/components/sections/FeaturedUsers.vue'));
236
+ export const SliderFeatures = defineAsyncComponent(() => import('./views/components/sections/SliderFeatures.vue'));
237
+
238
+ function initializeAuth(app, store, router, options = {}) {
239
+ i18nManager.register('auth', locales);
240
+ addRoutes(router, { ...getAuthRoutes(options).config, parentName: getAuthRoutes(options).parentName });
241
+ addRoutes(router, { ...getUsersRoutes(options).config, parentName: getUsersRoutes(options).parentName });
242
+ store.addStore('auth', storeAuth);
243
+ store.addStore('users', storeUsers);
244
+ app.use(otpPlugin);
245
+ app.use(popupAuthPlugin);
246
+ app.provide('store', store);
247
+ }
248
+
249
+ export default { initialize: initializeAuth };
250
+ ```
251
+
252
+ ### inventory.client.js
253
+
254
+ ```javascript
255
+ import { defineAsyncComponent } from 'vue'
256
+ import addRoutes from '@martyrs/src/modules/core/views/router/addRoutes.js';
257
+ import routerInventory from './router/inventory.router.js';
258
+
259
+ // Компоненты — async
260
+ export const Inventory = defineAsyncComponent(() => import('./components/pages/Inventory.vue'));
261
+ export const InventoryEdit = defineAsyncComponent(() => import('./components/pages/InventoryEdit.vue'));
262
+ export const AdjustmentForm = defineAsyncComponent(() => import('./components/forms/AdjustmentForm.vue'));
263
+ export const HistoryView = defineAsyncComponent(() => import('./components/forms/HistoryView.vue'));
264
+ export const ColumnSettingsMenu = defineAsyncComponent(() => import('./components/forms/ColumnSettingsMenu.vue'));
265
+ export const StockAlertsForm = defineAsyncComponent(() => import('./components/forms/StockAlertsForm.vue'));
266
+
267
+ function initializeInventory(app, store, router, options = {}) {
268
+ const routeBackoffice = options.routeBackoffice || 'Backoffice Root';
269
+ const routeOrganizations = options.routeOrganizations || 'OrganizationRoot';
270
+
271
+ if (!options.withBackoffice) {
272
+ addRoutes(router, {
273
+ parentName: routeBackoffice,
274
+ basePath: 'inventory',
275
+ routes: routerInventory,
276
+ routeNamePrefix: 'Backoffice',
277
+ filterConfig: { include: ['InventoryList', 'InventoryAudit'] },
278
+ meta: { context: 'backoffice' },
279
+ });
280
+ }
281
+
282
+ if (!options.withOrganizationRoutes) {
283
+ addRoutes(router, {
284
+ parentName: routeOrganizations,
285
+ basePath: 'inventory',
286
+ routes: routerInventory,
287
+ routeNamePrefix: 'Organization',
288
+ filterConfig: { include: ['InventoryList', 'InventoryAudit'] },
289
+ meta: { context: 'organization' },
290
+ });
291
+ }
292
+
293
+ // Расширяет другие модули
294
+ app.extensions.add('backoffice:sidebar', {
295
+ component: defineAsyncComponent(() => import('./components/nav/InventoryNav.vue')),
296
+ order: 30
297
+ });
298
+
299
+ app.extensions.add('organization:tabs', {
300
+ component: defineAsyncComponent(() => import('./components/tabs/OrgInventory.vue')),
301
+ label: 'Inventory',
302
+ icon: 'inventory',
303
+ order: 40
304
+ });
305
+ }
306
+
307
+ export default { initialize: initializeInventory };
308
+ ```
309
+
310
+ ### orders.client.js (пример extensions)
311
+
312
+ ```javascript
313
+ function initializeOrders(app, store, router, options = {}) {
314
+ // ... addRoutes, addStore как раньше ...
315
+
316
+ app.extensions.add('backoffice:sidebar', {
317
+ component: defineAsyncComponent(() => import('./components/nav/OrdersNav.vue')),
318
+ order: 10
319
+ });
320
+
321
+ app.extensions.add('backoffice:dashboard-widgets', {
322
+ component: defineAsyncComponent(() => import('./components/widgets/RecentOrders.vue')),
323
+ order: 10
324
+ });
325
+
326
+ app.extensions.add('organization:tabs', {
327
+ component: defineAsyncComponent(() => import('./components/tabs/OrgOrders.vue')),
328
+ label: 'Orders',
329
+ icon: 'orders',
330
+ order: 20
331
+ });
332
+
333
+ app.extensions.add('user:tabs', {
334
+ component: defineAsyncComponent(() => import('./components/tabs/UserOrders.vue')),
335
+ label: 'My Orders',
336
+ order: 10,
337
+ visible: (ctx) => ctx.auth?.user?._id === ctx.userId
338
+ });
339
+ }
340
+ ```
341
+
342
+ ## Соглашение по именам слотов
343
+
344
+ Формат: `module:location`
345
+
346
+ ```
347
+ app:navigation — главное меню
348
+ app:footer — виджеты в футере
349
+
350
+ backoffice:sidebar — навигация бэкофиса
351
+ backoffice:dashboard-widgets — виджеты на дашборде
352
+
353
+ organization:tabs — табы на странице организации
354
+ organization:header-actions — кнопки в шапке организации
355
+
356
+ user:tabs — табы в профиле пользователя
357
+ user:header-actions — кнопки в шапке профиля
358
+
359
+ orders:detail-widgets — виджеты на странице заказа
360
+ events:detail-sidebar — сайдбар на странице события
361
+ ```
362
+
363
+ ## Порядок загрузки
364
+
365
+ ```
366
+ 1. global.config.js → список модулей + опции
367
+ 2. createExtensions() → reactive Map для слотов
368
+ 3. Для каждого модуля:
369
+ a. await loader() → быстро, компоненты в отдельных чанках
370
+ b. module.initialize() → addRoutes, addStore, extensions.add
371
+ 4. createApp() → Vue app с роутером, сторами, extensions
372
+ 5. Рендер страницы → ExtensionSlot рендерит расширения
373
+ defineAsyncComponent подгружает компоненты
374
+ ```
375
+
376
+ ## Что меняется, что нет
377
+
378
+ | Что | Меняется? | Как |
379
+ |-----|-----------|-----|
380
+ | global.config.js | Нет | Как было — модули, опции, loader |
381
+ | client.js экспорты компонентов | Да | `export { default as X }` → `export const X = defineAsyncComponent(...)` |
382
+ | client.js initialize() | Да | Добавляется `app.extensions.add(...)` |
383
+ | ModuleManager | Да | Загрузка всех модулей при старте вместо lazy per route |
384
+ | navigation.config.js | Удаляется | Навигация через extensions |
385
+ | core.app.js | Да | Подключение extensions + загрузка всех модулей |
386
+
387
+ ## Открытые вопросы
388
+
389
+ 1. **SSR**: При SSR все модули и так грузятся синхронно — extensions работают. `defineAsyncComponent` на сервере резолвится синхронно. Нужно проверить что `reactive(Map)` корректно сериализуется для гидратации
390
+ 2. **Порядок initialize**: Модули с зависимостями (`inventory → products`) — нужно сохранить порядок инициализации. В текущем ModuleManager это уже есть через `dependencies`
391
+ 3. **global.config routes**: Если все модули грузятся при старте, массив `routes` в конфиге больше не нужен для ленивой загрузки. Но может пригодиться для SSR (грузить только модули текущего роута)
@@ -1,12 +1,20 @@
1
1
  import middlewareFactory from '../middlewares/index.js';
2
2
  import controllerFactory from '../services/users.service.js';
3
+ import ABAC from '@martyrs/src/modules/core/controllers/classes/abac/abac.js';
4
+ const { getInstance } = ABAC;
3
5
 
4
6
  export default (function (app, db, origins) {
5
7
  const controller = controllerFactory(db);
6
8
  const { authJwt, verifyUser, otp } = middlewareFactory(db);
9
+ const abac = getInstance(db);
7
10
 
8
11
  app.post('/api/users', [authJwt.verifyToken(), verifyUser.checkDuplicateUsername], controller.create);
9
12
  app.get('/api/users', controller.read);
13
+ app.get('/api/users/stats',
14
+ authJwt.verifyToken(),
15
+ abac.middleware('users', 'read'),
16
+ controller.getStats
17
+ );
10
18
 
11
19
  // Профиль (без email/phone)
12
20
  app.put('/api/users/:_id', [
@@ -1,5 +1,6 @@
1
1
  import addMembersQuantity from '@martyrs/src/modules/organizations/controllers/utils/addMembersQuantity.js';
2
2
  import addUserStatusFields from '@martyrs/src/modules/organizations/controllers/utils/addUserStatusFields.js';
3
+ import queryProcessorCore from '@martyrs/src/modules/core/controllers/utils/queryProcessor.js';
3
4
  import { Types } from 'mongoose';
4
5
  const ObjectId = { Types }.Types.ObjectId;
5
6
 
@@ -54,7 +55,8 @@ const controllerFactory = db => {
54
55
  }
55
56
 
56
57
  if (matchConditions.length > 0) query.push({ $match: { $and: matchConditions } });
57
-
58
+ query.push(...queryProcessorCore.getFilterDate(req.query.dateStart, req.query.dateEnd));
59
+
58
60
  query.push({
59
61
  $lookup: {
60
62
  from: 'orders',
@@ -89,6 +91,7 @@ const controllerFactory = db => {
89
91
  __v: 0
90
92
  }
91
93
  });
94
+ query.push(...queryProcessorCore.getSortingOptions(req.query.sortParam, req.query.sortOrder));
92
95
  query.push({
93
96
  $skip: skip,
94
97
  });
@@ -168,12 +171,59 @@ const controllerFactory = db => {
168
171
  return res.status(500).send({ errorCode: 'INTERNAL_SERVER_ERROR', message: err });
169
172
  }
170
173
  };
174
+ const getStats = async (req, res) => {
175
+ try {
176
+ const now = new Date();
177
+ const startOfMonth = new Date(now.getFullYear(), now.getMonth(), 1);
178
+ const thirtyDaysAgo = new Date(now.getTime() - 30 * 24 * 60 * 60 * 1000);
179
+
180
+ const startDate = req.query.startDate ? new Date(req.query.startDate) : null;
181
+ const endDate = req.query.endDate ? new Date(req.query.endDate) : null;
182
+ const dateFilter = (startDate && endDate) ? { createdAt: { $gte: startDate, $lte: endDate } } : null;
183
+
184
+ const [totals, dailyRegistrations] = await Promise.all([
185
+ User.aggregate([
186
+ ...(dateFilter ? [{ $match: dateFilter }] : []),
187
+ { $facet: {
188
+ total: [{ $count: 'count' }],
189
+ active: [{ $match: { status: 'active' } }, { $count: 'count' }],
190
+ newThisMonth: [{ $match: { createdAt: dateFilter ? { $gte: startDate, $lte: endDate } : { $gte: startOfMonth } } }, { $count: 'count' }]
191
+ }}
192
+ ]),
193
+ User.aggregate([
194
+ { $match: dateFilter || { createdAt: { $gte: thirtyDaysAgo } } },
195
+ { $group: {
196
+ _id: { $dateToString: { format: '%Y-%m-%d', date: '$createdAt' } },
197
+ count: { $sum: 1 }
198
+ }},
199
+ { $sort: { _id: 1 } }
200
+ ])
201
+ ]);
202
+
203
+ const facet = totals[0];
204
+ res.status(200).send({
205
+ total: facet.total[0]?.count || 0,
206
+ active: facet.active[0]?.count || 0,
207
+ newThisMonth: facet.newThisMonth[0]?.count || 0,
208
+ dailyRegistrations
209
+ });
210
+ } catch (err) {
211
+ console.error(err);
212
+ res.status(500).send({
213
+ errorCode: 'GET_USER_STATS_FAILED',
214
+ message: 'Error occurred while fetching user stats.',
215
+ error: err.message,
216
+ });
217
+ }
218
+ };
219
+
171
220
  return {
172
221
  read,
173
222
  create,
174
223
  update,
175
224
  updateEmail,
176
225
  updatePhone,
226
+ getStats,
177
227
  };
178
228
  };
179
229
  export default controllerFactory;
@@ -21,7 +21,7 @@
21
21
 
22
22
  <span>
23
23
  {{ t('auth.popup.haveAccount') }}
24
- <a @click="handleSignIn" class="t-grey cursor-pointer">{{ t('auth.popup.signIn') }}</a>
24
+ <a @click="handleSignIn" class="t-dark cursor-pointer">{{ t('auth.popup.signIn') }}</a>
25
25
  </span>
26
26
  </div>
27
27
  </div>
@@ -1,26 +1,19 @@
1
1
  <template>
2
2
  <div class="pd-thin">
3
- <header class="mn-b-medium flex-v-center flex-nowrap flex">
4
- <h2 class="mn-r-medium">Posts</h2>
5
- <button
6
- v-if="auth.state.user._id === route.params._id"
7
- @click="$router.push({
8
- name: 'Create BlogPost'
9
- })"
10
- class="radius-extra t-white fw-semi i-big hover:scale-[1.05] cursor-pointer t-white bg-second">
11
- +
12
- </button>
13
- </header>
14
-
15
- <Tab
16
- v-if="auth.state.user._id === route.params._id"
17
- v-model:selected="tabOrganization"
18
- :tabs="[
19
- { name: 'My posts', value: 'posts' },
20
- { name: 'Drafts', value: 'drafts' },
21
- { name: 'Following', value: 'following' },
22
- ]"
23
- class="mn-b-small o-hidden h5 radius-big bg-light"
3
+ <SectionPageTitle
4
+ title="Posts"
5
+ :actions="auth.state.user._id === route.params._id
6
+ ? [{ method: () => router.push({ name: routePrefix + 'CreateBlogPost', params: { _id: route.params._id } }), label: '+', class: 'radius-extra t-white fw-semi i-big hover:scale-[1.05] cursor-pointer t-white bg-second' }]
7
+ : []"
8
+ :tabs="auth.state.user._id === route.params._id
9
+ ? [
10
+ { name: 'My posts', value: 'posts' },
11
+ { name: 'Drafts', value: 'drafts' },
12
+ { name: 'Following', value: 'following' },
13
+ ]
14
+ : null"
15
+ :tabs_current="tabOrganization"
16
+ @update:tabs_current="tabOrganization = $event"
24
17
  />
25
18
 
26
19
  <Feed
@@ -58,11 +51,10 @@
58
51
  </template>
59
52
 
60
53
  <script setup>
61
- import { watch, ref } from 'vue'
54
+ import { watch, ref, computed } from 'vue'
62
55
  import { useRoute, useRouter } from 'vue-router'
63
56
  // Components
64
- import Tab from '@martyrs/src/components/Tab/Tab.vue'
65
-
57
+ import SectionPageTitle from '@martyrs/src/modules/core/views/components/sections/SectionPageTitle.vue'
66
58
  import Feed from '@martyrs/src/components/Feed/Feed.vue'
67
59
 
68
60
  import CardBlogpost from '@martyrs/src/modules/community/components/blocks/CardBlogpost.vue';
@@ -72,6 +64,15 @@
72
64
  // Accessing router
73
65
  const route = useRoute()
74
66
  const router = useRouter()
67
+
68
+ const routePrefix = computed(() => {
69
+ const ctx = route.meta.context
70
+ if (ctx === 'user') return 'User'
71
+ if (ctx === 'organization') return 'Organization'
72
+ if (ctx === 'backoffice') return 'Backoffice'
73
+ return ''
74
+ })
75
+
75
76
  // State
76
77
  let tab = route.query.tab ? route.query.tab : 'posts';
77
78