@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,15 +1,17 @@
1
- import { ref, computed, onMounted, createElementBlock, openBlock, createBlock, createCommentVNode, createVNode, unref, withCtx, createElementVNode, toDisplayString, Fragment, renderList } from "vue";
1
+ import { ref, reactive, onMounted, createElementBlock, openBlock, createBlock, createCommentVNode, createVNode, unref, withCtx, createElementVNode, toDisplayString, Fragment, renderList } from "vue";
2
2
  import { useRoute, useRouter } from "vue-router";
3
3
  import _sfc_main$2 from "../../../../components/Block/Block.vue.js";
4
- import _sfc_main$4 from "../../../../components/Popup/Popup.vue.js";
4
+ import _sfc_main$5 from "../../../../components/Popup/Popup.vue.js";
5
5
  import applications from "../../store/applications.js";
6
6
  import _sfc_main$1 from "../../../core/views/components/sections/SectionPageTitle.vue.js";
7
7
  import _sfc_main$3 from "../../../../components/Feed/Feed.vue.js";
8
- import CardApplication from "../blocks/CardApplication.vue.js";
9
- import _sfc_main$5 from "../forms/FormApplicationDetails.vue.js";
8
+ import _sfc_main$4 from "../blocks/CardApplication.vue.js";
9
+ import _sfc_main$6 from "../forms/FormApplicationDetails.vue.js";
10
10
  import ApplicationDetails from "../sections/ApplicationDetails.vue.js";
11
11
  import applicationInitState from "../../store/models/application.js";
12
12
  import { state } from "../../../auth/views/store/auth.js";
13
+ import $axios from "../../../core/views/utils/axios-instance.js";
14
+ import { useGlobalMixins } from "../../../core/views/mixins/mixins.js";
13
15
  const _hoisted_1 = { class: "mobile:pd-thin pd-medium" };
14
16
  const _hoisted_2 = { class: "gap-micro flex-nowrap flex" };
15
17
  const _hoisted_3 = { class: "w-100 bg-white radius-small pd-small" };
@@ -21,6 +23,7 @@ const _sfc_main = {
21
23
  setup(__props) {
22
24
  const route = useRoute();
23
25
  useRouter();
26
+ const { formatDate } = useGlobalMixins();
24
27
  const statusFilter = ref("all");
25
28
  const showViewPopup = ref(false);
26
29
  const showFormPopup = ref(false);
@@ -28,20 +31,21 @@ const _sfc_main = {
28
31
  const formApplication = ref({ ...applicationInitState });
29
32
  const isCreateMode = ref(false);
30
33
  const currentApplications = ref([]);
31
- const totalApplications = computed(() => {
32
- return applications.state.items?.length || 0;
33
- });
34
- const inProgressApplications = computed(() => {
35
- return applications.state.items?.filter((application) => application.status === "in_progress").length || 0;
36
- });
37
- const newApplicationsThisMonth = computed(() => {
38
- if (!applications.state.items) return 0;
39
- const now = /* @__PURE__ */ new Date();
40
- const startOfMonth = new Date(now.getFullYear(), now.getMonth(), 1);
41
- return applications.state.items.filter(
42
- (application) => new Date(application.createdAt) >= startOfMonth
43
- ).length;
44
- });
34
+ const stats = reactive({ total: 0, inProgress: 0, newThisMonth: 0 });
35
+ const fetchStats = async () => {
36
+ try {
37
+ const params = {};
38
+ if (route.meta.context === "organization") {
39
+ params.organization = route.params._id;
40
+ }
41
+ const { data } = await $axios.get("/api/applications/stats", { params });
42
+ stats.total = data.total || 0;
43
+ stats.inProgress = data.inProgress || 0;
44
+ stats.newThisMonth = data.newThisMonth || 0;
45
+ } catch (err) {
46
+ console.error("Error fetching application stats:", err);
47
+ }
48
+ };
45
49
  const openCreatePopup = () => {
46
50
  formApplication.value = { ...applicationInitState };
47
51
  isCreateMode.value = true;
@@ -61,45 +65,45 @@ const _sfc_main = {
61
65
  isCreateMode.value = false;
62
66
  };
63
67
  const enableEdit = () => {
64
- formApplication.value = { ...selectedApplication.value };
68
+ formApplication.value = JSON.parse(JSON.stringify(selectedApplication.value));
65
69
  isCreateMode.value = false;
66
70
  showViewPopup.value = false;
67
71
  showFormPopup.value = true;
68
72
  };
69
73
  const saveApplication = async () => {
70
74
  try {
71
- const cleanData = { ...formApplication.value };
72
- if (!cleanData.contacts?.email) delete cleanData.contacts?.email;
73
- if (!cleanData.contacts?.phone) delete cleanData.contacts?.phone;
74
- if (!cleanData.contacts?.name) delete cleanData.contacts?.name;
75
- if (!cleanData.text) delete cleanData.text;
76
- if (!cleanData.chat) delete cleanData.chat;
75
+ const data = JSON.parse(JSON.stringify(formApplication.value));
77
76
  if (isCreateMode.value) {
78
- delete cleanData._id;
79
- }
80
- if (route.meta.context === "organization") {
81
- cleanData.owner = {
82
- type: "Organization",
83
- target: route.params._id || cleanData.owner?.target
84
- };
85
- } else {
86
- cleanData.owner = {
87
- type: "platform",
88
- target: "000000000000000000000000"
89
- // заглушка для отдела платформы
77
+ delete data._id;
78
+ if (!data.text) delete data.text;
79
+ if (!data.chat) delete data.chat;
80
+ if (route.meta.context === "organization") {
81
+ data.owner = {
82
+ type: "Organization",
83
+ target: route.params._id || data.owner?.target
84
+ };
85
+ } else {
86
+ data.owner = {
87
+ type: "platform",
88
+ target: "000000000000000000000000"
89
+ };
90
+ }
91
+ data.creator = {
92
+ type: "User",
93
+ target: state.user._id
90
94
  };
91
- }
92
- cleanData.creator = {
93
- type: "User",
94
- target: state.user._id || cleanData.creator?.target
95
- };
96
- if (isCreateMode.value) {
97
- const response = await applications.create(cleanData);
95
+ const response = await applications.create(data);
98
96
  applications.addItem(response, currentApplications.value);
99
97
  } else {
100
- const response = await applications.update(cleanData);
98
+ const updateData = { _id: data._id };
99
+ if (data.contacts) updateData.contacts = data.contacts;
100
+ if (data.type) updateData.type = data.type;
101
+ if (data.text) updateData.text = data.text;
102
+ if (data.chat) updateData.chat = data.chat;
103
+ if (data.status) updateData.status = data.status;
104
+ const response = await applications.update(updateData);
101
105
  applications.updateItem(response, currentApplications.value);
102
- selectedApplication.value = { ...response };
106
+ selectedApplication.value = JSON.parse(JSON.stringify(response));
103
107
  }
104
108
  closeFormPopup();
105
109
  } catch (error) {
@@ -118,6 +122,9 @@ const _sfc_main = {
118
122
  }
119
123
  };
120
124
  onMounted(async () => {
125
+ if (route.meta.context !== "user") {
126
+ fetchStats();
127
+ }
121
128
  });
122
129
  return (_ctx, _cache) => {
123
130
  return openBlock(), createElementBlock("div", _hoisted_1, [
@@ -138,15 +145,15 @@ const _sfc_main = {
138
145
  createElementVNode("div", _hoisted_2, [
139
146
  createElementVNode("div", _hoisted_3, [
140
147
  _cache[2] || (_cache[2] = createElementVNode("p", { class: "mn-b-thin" }, "Total", -1)),
141
- createElementVNode("h3", null, toDisplayString(totalApplications.value), 1)
148
+ createElementVNode("h3", null, toDisplayString(stats.total), 1)
142
149
  ]),
143
150
  createElementVNode("div", _hoisted_4, [
144
151
  _cache[3] || (_cache[3] = createElementVNode("p", { class: "mn-b-thin" }, "In Progress", -1)),
145
- createElementVNode("h3", null, toDisplayString(inProgressApplications.value), 1)
152
+ createElementVNode("h3", null, toDisplayString(stats.inProgress), 1)
146
153
  ]),
147
154
  createElementVNode("div", _hoisted_5, [
148
155
  _cache[4] || (_cache[4] = createElementVNode("p", { class: "mn-b-thin" }, "New This Month", -1)),
149
- createElementVNode("h3", null, toDisplayString(newApplicationsThisMonth.value), 1)
156
+ createElementVNode("h3", null, toDisplayString(stats.newThisMonth), 1)
150
157
  ])
151
158
  ])
152
159
  ]),
@@ -179,16 +186,16 @@ const _sfc_main = {
179
186
  onClick: ($event) => openViewPopup(application),
180
187
  class: "cursor-pointer"
181
188
  }, [
182
- createVNode(CardApplication, {
189
+ createVNode(_sfc_main$4, {
183
190
  application,
184
- formatDate: _ctx.formatDate
191
+ formatDate: unref(formatDate)
185
192
  }, null, 8, ["application", "formatDate"])
186
193
  ], 8, _hoisted_6);
187
194
  }), 128))
188
195
  ]),
189
196
  _: 1
190
197
  }, 8, ["items", "store", "options"]),
191
- createVNode(_sfc_main$4, {
198
+ createVNode(_sfc_main$5, {
192
199
  isPopupOpen: showViewPopup.value,
193
200
  onClosePopup: closeViewPopup,
194
201
  title: "Application Details",
@@ -205,7 +212,7 @@ const _sfc_main = {
205
212
  ]),
206
213
  _: 1
207
214
  }, 8, ["isPopupOpen"]),
208
- createVNode(_sfc_main$4, {
215
+ createVNode(_sfc_main$5, {
209
216
  isPopupOpen: showFormPopup.value,
210
217
  onClosePopup: closeFormPopup,
211
218
  title: isCreateMode.value ? "Create Application" : "Edit Application",
@@ -213,7 +220,7 @@ const _sfc_main = {
213
220
  class: "bg-white h-min-100 w-max-50r pd-medium"
214
221
  }, {
215
222
  default: withCtx(() => [
216
- createVNode(_sfc_main$5, {
223
+ createVNode(_sfc_main$6, {
217
224
  application: formApplication.value,
218
225
  "onUpdate:application": _cache[1] || (_cache[1] = ($event) => formApplication.value = $event),
219
226
  onSave: saveApplication,
@@ -1 +1 @@
1
- {"version":3,"file":"Applications.vue.js","sources":["../../../../../../../src/modules/orders/components/pages/Applications.vue"],"sourcesContent":["<template>\n <div class=\"mobile:pd-thin pd-medium\"> \n <SectionPageTitle\n v-if=\"!MOBILE_APP\"\n title=\"Applications\"\n :actions=\"[\n { method: () => openCreatePopup(), label: 'Create Application' }\n ]\"\n class=\"mn-b-small\"\n />\n\n <Block\n v-if=\"route.meta.context !== 'user'\"\n title=\"Statistics\"\n class=\"mn-b-small\"\n >\n <div class=\"gap-micro flex-nowrap flex\">\n <div class=\"w-100 bg-white radius-small pd-small\">\n <p class=\"mn-b-thin\">Total</p>\n <h3>{{totalApplications}}</h3>\n </div>\n <div class=\"w-100 bg-white radius-small pd-small\">\n <p class=\"mn-b-thin\">In Progress</p>\n <h3>{{inProgressApplications}}</h3>\n </div>\n <div class=\"w-100 bg-white radius-small pd-small\">\n <p class=\"mn-b-thin\">New This Month</p>\n <h3>{{newApplicationsThisMonth}}</h3>\n </div>\n </div>\n </Block>\n <Feed\n v-model:items=\"currentApplications\"\n :search=\"true\"\n :states=\"{\n empty: {\n title: 'No Applications Found',\n description: 'Currently, there are no applications.'\n }\n }\"\n :store=\"applications\"\n :options=\"{\n limit: 15,\n ...(route.meta.context === 'organization' && { owner: route.params._id }),\n ...(statusFilter !== 'all' && { status: statusFilter })\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"gap-thin cols-3 mobile:cols-1\"\n >\n <div \n v-for=\"application in items\" \n :key=\"application._id\"\n @click=\"openViewPopup(application)\"\n class=\"cursor-pointer\"\n >\n <CardApplication \n :application=\"application\"\n :formatDate=\"formatDate\"\n />\n </div>\n </Feed>\n\n <!-- View Application Popup -->\n <Popup \n :isPopupOpen=\"showViewPopup\"\n @close-popup=\"closeViewPopup\"\n title=\"Application Details\"\n align=\"center right\"\n class=\"bg-white h-min-100 w-max-50r pd-medium\"\n >\n <ApplicationDetails\n v-if=\"selectedApplication\"\n :application=\"selectedApplication\"\n @edit=\"enableEdit\"\n @delete=\"deleteApplication\"\n />\n </Popup>\n\n <!-- Create/Edit Application Popup -->\n <Popup \n :isPopupOpen=\"showFormPopup\"\n @close-popup=\"closeFormPopup\"\n :title=\"isCreateMode ? 'Create Application' : 'Edit Application'\"\n align=\"center right\"\n class=\"bg-white h-min-100 w-max-50r pd-medium\"\n >\n <FormApplicationDetails \n v-model:application=\"formApplication\"\n @save=\"saveApplication\"\n @cancel=\"closeFormPopup\"\n :create-mode=\"isCreateMode\"\n />\n </Popup>\n </div>\n</template>\n\n<script setup>\n import { computed, onMounted, ref } from 'vue';\n import { useRoute, useRouter } from 'vue-router';\n\n import Block from '@martyrs/src/components/Block/Block.vue';\n import Popup from '@martyrs/src/components/Popup/Popup.vue';\n import applications from '@martyrs/src/modules/orders/store/applications.js';\n import SectionPageTitle from '@martyrs/src/modules/core/views/components/sections/SectionPageTitle.vue'\n import Feed from '@martyrs/src/components/Feed/Feed.vue'\n import CardApplication from '@martyrs/src/modules/orders/components/blocks/CardApplication.vue'\n import FormApplicationDetails from '@martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue'\n import ApplicationDetails from '@martyrs/src/modules/orders/components/sections/ApplicationDetails.vue'\n import applicationInitState from '@martyrs/src/modules/orders/store/models/application.js';\n import * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\n\n const route = useRoute();\n const router = useRouter();\n\n const statusFilter = ref('all')\n\n // Popup states\n const showViewPopup = ref(false)\n const showFormPopup = ref(false)\n const selectedApplication = ref(null)\n const formApplication = ref({ ...applicationInitState })\n const isCreateMode = ref(false)\n const currentApplications = ref([])\n\n const totalApplications = computed(() => {\n return applications.state.items?.length || 0\n });\n\n const inProgressApplications = computed(() => {\n return applications.state.items?.filter(application => application.status === 'in_progress').length || 0\n });\n\n const newApplicationsThisMonth = computed(() => {\n if (!applications.state.items) return 0;\n const now = new Date();\n const startOfMonth = new Date(now.getFullYear(), now.getMonth(), 1);\n return applications.state.items.filter(application => \n new Date(application.createdAt) >= startOfMonth\n ).length\n });\n\n // Popup methods\n const openCreatePopup = () => {\n formApplication.value = { ...applicationInitState };\n // Ownership будет установлен в saveApplication\n isCreateMode.value = true;\n showFormPopup.value = true;\n };\n\n const openViewPopup = (application) => {\n selectedApplication.value = application;\n showViewPopup.value = true;\n };\n\n const closeViewPopup = () => {\n showViewPopup.value = false;\n selectedApplication.value = null;\n };\n\n const closeFormPopup = () => {\n showFormPopup.value = false;\n formApplication.value = { ...applicationInitState };\n isCreateMode.value = false;\n };\n\n const enableEdit = () => {\n formApplication.value = { ...selectedApplication.value };\n isCreateMode.value = false;\n showViewPopup.value = false;\n showFormPopup.value = true;\n };\n\n const saveApplication = async () => {\n try {\n // Remove empty fields but preserve required ownership structure\n const cleanData = { ...formApplication.value };\n if (!cleanData.contacts?.email) delete cleanData.contacts?.email;\n if (!cleanData.contacts?.phone) delete cleanData.contacts?.phone;\n if (!cleanData.contacts?.name) delete cleanData.contacts?.name;\n if (!cleanData.text) delete cleanData.text;\n if (!cleanData.chat) delete cleanData.chat;\n \n // Remove _id to let MongoDB auto-generate it (Mongoose bug when _id is null)\n if (isCreateMode.value) {\n delete cleanData._id;\n }\n \n // Set owner based on context\n if (route.meta.context === 'organization') {\n // В контексте организации - owner это организация\n cleanData.owner = {\n type: 'Organization',\n target: route.params._id || cleanData.owner?.target\n };\n } else {\n // В контексте бекофиса - owner это Platform\n cleanData.owner = {\n type: 'platform',\n target: '000000000000000000000000' // заглушка для отдела платформы\n };\n }\n \n // Set creator (who created the application)\n cleanData.creator = {\n type: 'User',\n target: auth.state.user._id || cleanData.creator?.target\n };\n \n if (isCreateMode.value) {\n const response = await applications.create(cleanData);\n applications.addItem(response, currentApplications.value);\n } else {\n const response = await applications.update(cleanData);\n applications.updateItem(response, currentApplications.value);\n selectedApplication.value = { ...response };\n }\n closeFormPopup();\n } catch (error) {\n console.error('Error saving application:', error);\n }\n };\n\n const deleteApplication = async () => {\n if (confirm('Are you sure you want to delete this application?')) {\n try {\n await applications.delete({ _id: selectedApplication.value._id });\n applications.removeItem(selectedApplication.value, currentApplications.value);\n closeViewPopup();\n } catch (error) {\n console.error('Error deleting application:', error);\n }\n }\n };\n\n onMounted(async () => {\n \n });\n</script>"],"names":["auth.state"],"mappings":"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"}
1
+ {"version":3,"file":"Applications.vue.js","sources":["../../../../../../../src/modules/orders/components/pages/Applications.vue"],"sourcesContent":["<template>\n <div class=\"mobile:pd-thin pd-medium\"> \n <SectionPageTitle\n v-if=\"!MOBILE_APP\"\n title=\"Applications\"\n :actions=\"[\n { method: () => openCreatePopup(), label: 'Create Application' }\n ]\"\n class=\"mn-b-small\"\n />\n\n <Block\n v-if=\"route.meta.context !== 'user'\"\n title=\"Statistics\"\n class=\"mn-b-small\"\n >\n <div class=\"gap-micro flex-nowrap flex\">\n <div class=\"w-100 bg-white radius-small pd-small\">\n <p class=\"mn-b-thin\">Total</p>\n <h3>{{ stats.total }}</h3>\n </div>\n <div class=\"w-100 bg-white radius-small pd-small\">\n <p class=\"mn-b-thin\">In Progress</p>\n <h3>{{ stats.inProgress }}</h3>\n </div>\n <div class=\"w-100 bg-white radius-small pd-small\">\n <p class=\"mn-b-thin\">New This Month</p>\n <h3>{{ stats.newThisMonth }}</h3>\n </div>\n </div>\n </Block>\n <Feed\n v-model:items=\"currentApplications\"\n :search=\"true\"\n :states=\"{\n empty: {\n title: 'No Applications Found',\n description: 'Currently, there are no applications.'\n }\n }\"\n :store=\"applications\"\n :options=\"{\n limit: 15,\n ...(route.meta.context === 'organization' && { owner: route.params._id }),\n ...(statusFilter !== 'all' && { status: statusFilter })\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"gap-thin cols-3 mobile:cols-1\"\n >\n <div \n v-for=\"application in items\" \n :key=\"application._id\"\n @click=\"openViewPopup(application)\"\n class=\"cursor-pointer\"\n >\n <CardApplication \n :application=\"application\"\n :formatDate=\"formatDate\"\n />\n </div>\n </Feed>\n\n <!-- View Application Popup -->\n <Popup \n :isPopupOpen=\"showViewPopup\"\n @close-popup=\"closeViewPopup\"\n title=\"Application Details\"\n align=\"center right\"\n class=\"bg-white h-min-100 w-max-50r pd-medium\"\n >\n <ApplicationDetails\n v-if=\"selectedApplication\"\n :application=\"selectedApplication\"\n @edit=\"enableEdit\"\n @delete=\"deleteApplication\"\n />\n </Popup>\n\n <!-- Create/Edit Application Popup -->\n <Popup \n :isPopupOpen=\"showFormPopup\"\n @close-popup=\"closeFormPopup\"\n :title=\"isCreateMode ? 'Create Application' : 'Edit Application'\"\n align=\"center right\"\n class=\"bg-white h-min-100 w-max-50r pd-medium\"\n >\n <FormApplicationDetails \n v-model:application=\"formApplication\"\n @save=\"saveApplication\"\n @cancel=\"closeFormPopup\"\n :create-mode=\"isCreateMode\"\n />\n </Popup>\n </div>\n</template>\n\n<script setup>\n import { onMounted, reactive, ref } from 'vue';\n import { useRoute, useRouter } from 'vue-router';\n\n import Block from '@martyrs/src/components/Block/Block.vue';\n import Popup from '@martyrs/src/components/Popup/Popup.vue';\n import applications from '@martyrs/src/modules/orders/store/applications.js';\n import SectionPageTitle from '@martyrs/src/modules/core/views/components/sections/SectionPageTitle.vue'\n import Feed from '@martyrs/src/components/Feed/Feed.vue'\n import CardApplication from '@martyrs/src/modules/orders/components/blocks/CardApplication.vue'\n import FormApplicationDetails from '@martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue'\n import ApplicationDetails from '@martyrs/src/modules/orders/components/sections/ApplicationDetails.vue'\n import applicationInitState from '@martyrs/src/modules/orders/store/models/application.js';\n import * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\n import $axios from '@martyrs/src/modules/core/views/utils/axios-instance.js';\n import { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js'\n\n const route = useRoute();\n const router = useRouter();\n const { formatDate } = useGlobalMixins();\n\n const statusFilter = ref('all')\n\n // Popup states\n const showViewPopup = ref(false)\n const showFormPopup = ref(false)\n const selectedApplication = ref(null)\n const formApplication = ref({ ...applicationInitState })\n const isCreateMode = ref(false)\n const currentApplications = ref([])\n\n const stats = reactive({ total: 0, inProgress: 0, newThisMonth: 0 })\n\n const fetchStats = async () => {\n try {\n const params = {}\n if (route.meta.context === 'organization') {\n params.organization = route.params._id\n }\n const { data } = await $axios.get('/api/applications/stats', { params })\n stats.total = data.total || 0\n stats.inProgress = data.inProgress || 0\n stats.newThisMonth = data.newThisMonth || 0\n } catch (err) {\n console.error('Error fetching application stats:', err)\n }\n };\n\n // Popup methods\n const openCreatePopup = () => {\n formApplication.value = { ...applicationInitState };\n // Ownership будет установлен в saveApplication\n isCreateMode.value = true;\n showFormPopup.value = true;\n };\n\n const openViewPopup = (application) => {\n selectedApplication.value = application;\n showViewPopup.value = true;\n };\n\n const closeViewPopup = () => {\n showViewPopup.value = false;\n selectedApplication.value = null;\n };\n\n const closeFormPopup = () => {\n showFormPopup.value = false;\n formApplication.value = { ...applicationInitState };\n isCreateMode.value = false;\n };\n\n const enableEdit = () => {\n formApplication.value = JSON.parse(JSON.stringify(selectedApplication.value));\n isCreateMode.value = false;\n showViewPopup.value = false;\n showFormPopup.value = true;\n };\n\n const saveApplication = async () => {\n try {\n const data = JSON.parse(JSON.stringify(formApplication.value));\n\n if (isCreateMode.value) {\n delete data._id;\n if (!data.text) delete data.text;\n if (!data.chat) delete data.chat;\n\n // Set owner based on context\n if (route.meta.context === 'organization') {\n data.owner = {\n type: 'Organization',\n target: route.params._id || data.owner?.target\n };\n } else {\n data.owner = {\n type: 'platform',\n target: '000000000000000000000000'\n };\n }\n data.creator = {\n type: 'User',\n target: auth.state.user._id\n };\n\n const response = await applications.create(data);\n applications.addItem(response, currentApplications.value);\n } else {\n // Только редактируемые поля — без owner/creator/__v/timestamps\n const updateData = { _id: data._id };\n if (data.contacts) updateData.contacts = data.contacts;\n if (data.type) updateData.type = data.type;\n if (data.text) updateData.text = data.text;\n if (data.chat) updateData.chat = data.chat;\n if (data.status) updateData.status = data.status;\n\n const response = await applications.update(updateData);\n applications.updateItem(response, currentApplications.value);\n selectedApplication.value = JSON.parse(JSON.stringify(response));\n }\n closeFormPopup();\n } catch (error) {\n console.error('Error saving application:', error);\n }\n };\n\n const deleteApplication = async () => {\n if (confirm('Are you sure you want to delete this application?')) {\n try {\n await applications.delete({ _id: selectedApplication.value._id });\n applications.removeItem(selectedApplication.value, currentApplications.value);\n closeViewPopup();\n } catch (error) {\n console.error('Error deleting application:', error);\n }\n }\n };\n\n onMounted(async () => {\n if (route.meta.context !== 'user') {\n fetchStats()\n }\n });\n</script>"],"names":["auth.state"],"mappings":"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"}
@@ -1,15 +1,16 @@
1
1
  import { ref, computed, onMounted, createElementBlock, openBlock, createBlock, createCommentVNode, createVNode, unref, withCtx, createElementVNode, toDisplayString, Fragment, renderList } from "vue";
2
2
  import { useRoute, useRouter } from "vue-router";
3
3
  import _sfc_main$2 from "../../../../components/Block/Block.vue.js";
4
- import _sfc_main$4 from "../../../../components/Popup/Popup.vue.js";
4
+ import _sfc_main$5 from "../../../../components/Popup/Popup.vue.js";
5
5
  import customers from "../../store/customers.store.js";
6
6
  import _sfc_main$1 from "../../../core/views/components/sections/SectionPageTitle.vue.js";
7
7
  import _sfc_main$3 from "../../../../components/Feed/Feed.vue.js";
8
- import CardCustomer from "../blocks/CardCustomer.vue.js";
9
- import _sfc_main$5 from "../forms/FormCustomerDetails.vue.js";
8
+ import _sfc_main$4 from "../blocks/CardCustomer.vue.js";
9
+ import _sfc_main$6 from "../forms/FormCustomerDetails.vue.js";
10
10
  import CustomerDetails from "../sections/CustomerDetails.vue.js";
11
11
  import customerInitState from "../../store/models/customer.js";
12
12
  import { state } from "../../../auth/views/store/auth.js";
13
+ import { useGlobalMixins } from "../../../core/views/mixins/mixins.js";
13
14
  const _hoisted_1 = { class: "mobile:pd-thin pd-medium" };
14
15
  const _hoisted_2 = { class: "gap-micro flex-nowrap flex" };
15
16
  const _hoisted_3 = { class: "w-100 bg-white radius-small pd-small" };
@@ -21,6 +22,7 @@ const _sfc_main = {
21
22
  setup(__props) {
22
23
  const route = useRoute();
23
24
  useRouter();
25
+ const { formatDate } = useGlobalMixins();
24
26
  const statusFilter = ref("all");
25
27
  const showViewPopup = ref(false);
26
28
  const showFormPopup = ref(false);
@@ -71,36 +73,46 @@ const _sfc_main = {
71
73
  isCreateMode.value = false;
72
74
  };
73
75
  const enableEdit = () => {
74
- formCustomer.value = { ...selectedCustomer.value };
76
+ formCustomer.value = JSON.parse(JSON.stringify(selectedCustomer.value));
75
77
  isCreateMode.value = false;
76
78
  showViewPopup.value = false;
77
79
  showFormPopup.value = true;
78
80
  };
79
81
  const saveCustomer = async () => {
80
82
  try {
81
- const cleanData = { ...formCustomer.value };
82
- if (!cleanData.email) delete cleanData.email;
83
- if (!cleanData.phone) delete cleanData.phone;
84
- if (!cleanData.notes) delete cleanData.notes;
85
- if (!cleanData.referral?.code) {
86
- if (cleanData.referral) delete cleanData.referral.code;
87
- }
88
- cleanData.owner = {
89
- type: "Organization",
90
- target: route.params._id || cleanData.owner?.target
91
- };
92
- cleanData.creator = {
93
- type: "User",
94
- target: state.user._id || cleanData.creator?.target
95
- };
96
- console.log("Sending customer data:", cleanData);
83
+ const data = JSON.parse(JSON.stringify(formCustomer.value));
97
84
  if (isCreateMode.value) {
98
- const created = await customers.create(cleanData);
85
+ delete data._id;
86
+ if (!data.email) delete data.email;
87
+ if (!data.phone) delete data.phone;
88
+ if (!data.notes) delete data.notes;
89
+ if (!data.identity?.type) {
90
+ data.identity = { type: "Visitor" };
91
+ }
92
+ data.owner = {
93
+ type: "Organization",
94
+ target: route.params._id || data.owner?.target
95
+ };
96
+ data.creator = {
97
+ type: "User",
98
+ target: state.user._id
99
+ };
100
+ const created = await customers.create(data);
99
101
  customers.addItem(created, currentCustomers.value);
100
102
  } else {
101
- const updated = await customers.update(cleanData);
103
+ const updateData = { _id: data._id };
104
+ if (data.email) updateData.email = data.email;
105
+ if (data.phone) updateData.phone = data.phone;
106
+ if (data.profile) updateData.profile = data.profile;
107
+ if (data.source) updateData.source = data.source;
108
+ if (data.referral) updateData.referral = data.referral;
109
+ if (data.tags) updateData.tags = data.tags;
110
+ if (data.notes) updateData.notes = data.notes;
111
+ if (data.status) updateData.status = data.status;
112
+ if (data.address) updateData.address = data.address;
113
+ const updated = await customers.update(updateData);
102
114
  customers.updateItem(updated, currentCustomers.value);
103
- selectedCustomer.value = { ...updated };
115
+ selectedCustomer.value = JSON.parse(JSON.stringify(updated));
104
116
  }
105
117
  closeFormPopup();
106
118
  } catch (error) {
@@ -154,8 +166,8 @@ const _sfc_main = {
154
166
  _: 1
155
167
  })) : createCommentVNode("", true),
156
168
  createVNode(_sfc_main$3, {
157
- modelValue: currentCustomers.value,
158
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => currentCustomers.value = $event),
169
+ items: currentCustomers.value,
170
+ "onUpdate:items": _cache[0] || (_cache[0] = ($event) => currentCustomers.value = $event),
159
171
  search: true,
160
172
  states: {
161
173
  empty: {
@@ -180,16 +192,16 @@ const _sfc_main = {
180
192
  onClick: ($event) => openViewPopup(customer),
181
193
  class: "cursor-pointer"
182
194
  }, [
183
- createVNode(CardCustomer, {
195
+ createVNode(_sfc_main$4, {
184
196
  customer,
185
- formatDate: _ctx.formatDate
197
+ formatDate: unref(formatDate)
186
198
  }, null, 8, ["customer", "formatDate"])
187
199
  ], 8, _hoisted_6);
188
200
  }), 128))
189
201
  ]),
190
202
  _: 1
191
- }, 8, ["modelValue", "store", "options"]),
192
- createVNode(_sfc_main$4, {
203
+ }, 8, ["items", "store", "options"]),
204
+ createVNode(_sfc_main$5, {
193
205
  isPopupOpen: showViewPopup.value,
194
206
  onClosePopup: closeViewPopup,
195
207
  title: "Customer Details",
@@ -206,7 +218,7 @@ const _sfc_main = {
206
218
  ]),
207
219
  _: 1
208
220
  }, 8, ["isPopupOpen"]),
209
- createVNode(_sfc_main$4, {
221
+ createVNode(_sfc_main$5, {
210
222
  isPopupOpen: showFormPopup.value,
211
223
  onClosePopup: closeFormPopup,
212
224
  title: isCreateMode.value ? "Create Customer" : "Edit Customer",
@@ -214,7 +226,7 @@ const _sfc_main = {
214
226
  class: "bg-white h-min-100 w-max-50r pd-medium"
215
227
  }, {
216
228
  default: withCtx(() => [
217
- createVNode(_sfc_main$5, {
229
+ createVNode(_sfc_main$6, {
218
230
  customer: formCustomer.value,
219
231
  "onUpdate:customer": _cache[1] || (_cache[1] = ($event) => formCustomer.value = $event),
220
232
  onSave: saveCustomer,
@@ -1 +1 @@
1
- {"version":3,"file":"Customers.vue.js","sources":["../../../../../../../src/modules/orders/components/pages/Customers.vue"],"sourcesContent":["<template>\n <div class=\"mobile:pd-thin pd-medium\"> \n <SectionPageTitle\n v-if=\"!MOBILE_APP\"\n title=\"Customers\"\n :actions=\"[\n { method: () => openCreatePopup(), label: 'Create Customer' }\n ]\"\n class=\"mn-b-small\"\n />\n\n <Block\n v-if=\"route.meta.context !== 'user'\"\n title=\"Statistics\"\n class=\"mn-b-small\"\n >\n <div class=\"gap-micro flex-nowrap flex\">\n <div class=\"w-100 bg-white radius-small pd-small\">\n <p class=\"mn-b-thin\">Total</p>\n <h3>{{totalCustomers}}</h3>\n </div>\n <div class=\"w-100 bg-white radius-small pd-small\">\n <p class=\"mn-b-thin\">Active</p>\n <h3>{{activeCustomers}}</h3>\n </div>\n <div class=\"w-100 bg-white radius-small pd-small\">\n <p class=\"mn-b-thin\">New This Month</p>\n <h3>{{newCustomersThisMonth}}</h3>\n </div>\n </div>\n </Block>\n\n <Feed\n v-model=\"currentCustomers\"\n :search=\"true\"\n :states=\"{\n empty: {\n title: 'No Customers Found',\n description: 'Currently, there are no customers.'\n }\n }\"\n :store=\"customers\"\n :options=\"{\n limit: 15,\n ...(route.meta.context === 'organization' && { owner: route.params._id }),\n ...(statusFilter !== 'all' && { status: statusFilter })\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"gap-thin cols-3 mobile:cols-1\"\n >\n <div \n v-for=\"customer in items\" \n :key=\"customer._id\"\n @click=\"openViewPopup(customer)\"\n class=\"cursor-pointer\"\n >\n <CardCustomer \n :customer=\"customer\"\n :formatDate=\"formatDate\"\n />\n </div>\n </Feed>\n\n <!-- View Customer Popup -->\n <Popup \n :isPopupOpen=\"showViewPopup\"\n @close-popup=\"closeViewPopup\"\n title=\"Customer Details\"\n align=\"center right\"\n class=\"bg-white h-min-100 w-max-50r pd-medium\"\n >\n <CustomerDetails\n v-if=\"selectedCustomer\"\n :customer=\"selectedCustomer\"\n @edit=\"enableEdit\"\n @delete=\"deleteCustomer\"\n />\n </Popup>\n\n <!-- Create/Edit Customer Popup -->\n <Popup \n :isPopupOpen=\"showFormPopup\"\n @close-popup=\"closeFormPopup\"\n :title=\"isCreateMode ? 'Create Customer' : 'Edit Customer'\"\n align=\"center right\"\n class=\"bg-white h-min-100 w-max-50r pd-medium\"\n >\n <FormCustomerDetails \n v-model:customer=\"formCustomer\"\n @save=\"saveCustomer\"\n @cancel=\"closeFormPopup\"\n :create-mode=\"isCreateMode\"\n />\n </Popup>\n </div>\n</template>\n\n<script setup>\n import { computed, onMounted, ref } from 'vue';\n import { useRoute, useRouter } from 'vue-router';\n\n import Block from '@martyrs/src/components/Block/Block.vue';\n import Popup from '@martyrs/src/components/Popup/Popup.vue';\n import customers from '@martyrs/src/modules/orders/store/customers.store.js';\n import SectionPageTitle from '@martyrs/src/modules/core/views/components/sections/SectionPageTitle.vue'\n import Feed from '@martyrs/src/components/Feed/Feed.vue'\n import CardCustomer from '@martyrs/src/modules/orders/components/blocks/CardCustomer.vue'\n import FormCustomerDetails from '@martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue'\n import CustomerDetails from '@martyrs/src/modules/orders/components/sections/CustomerDetails.vue'\n import customerInitState from '@martyrs/src/modules/orders/store/models/customer.js';\n import * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\n\n const route = useRoute();\n const router = useRouter();\n\n const statusFilter = ref('all')\n\n // Popup states\n const showViewPopup = ref(false)\n const showFormPopup = ref(false)\n const selectedCustomer = ref(null)\n const formCustomer = ref({ ...customerInitState })\n const isCreateMode = ref(false)\n const currentCustomers = ref([])\n\n const totalCustomers = computed(() => {\n return customers.state.items?.length || 0\n });\n\n const activeCustomers = computed(() => {\n return customers.state.items?.filter(customer => customer.status === 'active').length || 0\n });\n\n const newCustomersThisMonth = computed(() => {\n if (!customers.state.items) return 0;\n const now = new Date();\n const startOfMonth = new Date(now.getFullYear(), now.getMonth(), 1);\n return customers.state.items.filter(customer => \n new Date(customer.createdAt) >= startOfMonth\n ).length\n });\n\n // Popup methods\n const openCreatePopup = () => {\n formCustomer.value = { ...customerInitState };\n // Set owner and creator\n if (route.params._id) {\n formCustomer.value.owner = {\n type: 'Organization',\n target: route.params._id\n };\n }\n formCustomer.value.creator = {\n type: 'User',\n target: auth.state.user._id\n };\n isCreateMode.value = true;\n showFormPopup.value = true;\n };\n\n const openViewPopup = (customer) => {\n selectedCustomer.value = customer;\n showViewPopup.value = true;\n };\n\n const closeViewPopup = () => {\n showViewPopup.value = false;\n selectedCustomer.value = null;\n };\n\n const closeFormPopup = () => {\n showFormPopup.value = false;\n formCustomer.value = { ...customerInitState };\n isCreateMode.value = false;\n };\n\n const enableEdit = () => {\n formCustomer.value = { ...selectedCustomer.value };\n isCreateMode.value = false;\n showViewPopup.value = false;\n showFormPopup.value = true;\n };\n\n const saveCustomer = async () => {\n try {\n // Remove empty fields but preserve required ownership structure\n const cleanData = { ...formCustomer.value };\n if (!cleanData.email) delete cleanData.email;\n if (!cleanData.phone) delete cleanData.phone;\n if (!cleanData.notes) delete cleanData.notes;\n if (!cleanData.referral?.code) {\n if (cleanData.referral) delete cleanData.referral.code;\n }\n \n // Always ensure owner and creator have proper structure\n cleanData.owner = {\n type: 'Organization',\n target: route.params._id || cleanData.owner?.target\n };\n \n cleanData.creator = {\n type: 'User',\n target: auth.state.user._id || cleanData.creator?.target\n };\n \n console.log('Sending customer data:', cleanData);\n \n if (isCreateMode.value) {\n const created = await customers.create(cleanData);\n customers.addItem(created, currentCustomers.value);\n } else {\n const updated = await customers.update(cleanData);\n customers.updateItem(updated, currentCustomers.value);\n selectedCustomer.value = { ...updated };\n }\n closeFormPopup();\n } catch (error) {\n console.error('Error saving customer:', error);\n }\n };\n\n const deleteCustomer = async () => {\n if (confirm('Are you sure you want to delete this customer?')) {\n try {\n await customers.delete({ _id: selectedCustomer.value._id });\n customers.removeItem(selectedCustomer.value, currentCustomers.value);\n closeViewPopup();\n } catch (error) {\n console.error('Error deleting customer:', error);\n }\n }\n };\n\n onMounted(async () => {\n \n });\n</script>"],"names":["auth.state"],"mappings":"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"}
1
+ {"version":3,"file":"Customers.vue.js","sources":["../../../../../../../src/modules/orders/components/pages/Customers.vue"],"sourcesContent":["<template>\n <div class=\"mobile:pd-thin pd-medium\"> \n <SectionPageTitle\n v-if=\"!MOBILE_APP\"\n title=\"Customers\"\n :actions=\"[\n { method: () => openCreatePopup(), label: 'Create Customer' }\n ]\"\n class=\"mn-b-small\"\n />\n\n <Block\n v-if=\"route.meta.context !== 'user'\"\n title=\"Statistics\"\n class=\"mn-b-small\"\n >\n <div class=\"gap-micro flex-nowrap flex\">\n <div class=\"w-100 bg-white radius-small pd-small\">\n <p class=\"mn-b-thin\">Total</p>\n <h3>{{totalCustomers}}</h3>\n </div>\n <div class=\"w-100 bg-white radius-small pd-small\">\n <p class=\"mn-b-thin\">Active</p>\n <h3>{{activeCustomers}}</h3>\n </div>\n <div class=\"w-100 bg-white radius-small pd-small\">\n <p class=\"mn-b-thin\">New This Month</p>\n <h3>{{newCustomersThisMonth}}</h3>\n </div>\n </div>\n </Block>\n\n <Feed\n v-model:items=\"currentCustomers\"\n :search=\"true\"\n :states=\"{\n empty: {\n title: 'No Customers Found',\n description: 'Currently, there are no customers.'\n }\n }\"\n :store=\"customers\"\n :options=\"{\n limit: 15,\n ...(route.meta.context === 'organization' && { owner: route.params._id }),\n ...(statusFilter !== 'all' && { status: statusFilter })\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"gap-thin cols-3 mobile:cols-1\"\n >\n <div \n v-for=\"customer in items\" \n :key=\"customer._id\"\n @click=\"openViewPopup(customer)\"\n class=\"cursor-pointer\"\n >\n <CardCustomer \n :customer=\"customer\"\n :formatDate=\"formatDate\"\n />\n </div>\n </Feed>\n\n <!-- View Customer Popup -->\n <Popup \n :isPopupOpen=\"showViewPopup\"\n @close-popup=\"closeViewPopup\"\n title=\"Customer Details\"\n align=\"center right\"\n class=\"bg-white h-min-100 w-max-50r pd-medium\"\n >\n <CustomerDetails\n v-if=\"selectedCustomer\"\n :customer=\"selectedCustomer\"\n @edit=\"enableEdit\"\n @delete=\"deleteCustomer\"\n />\n </Popup>\n\n <!-- Create/Edit Customer Popup -->\n <Popup \n :isPopupOpen=\"showFormPopup\"\n @close-popup=\"closeFormPopup\"\n :title=\"isCreateMode ? 'Create Customer' : 'Edit Customer'\"\n align=\"center right\"\n class=\"bg-white h-min-100 w-max-50r pd-medium\"\n >\n <FormCustomerDetails \n v-model:customer=\"formCustomer\"\n @save=\"saveCustomer\"\n @cancel=\"closeFormPopup\"\n :create-mode=\"isCreateMode\"\n />\n </Popup>\n </div>\n</template>\n\n<script setup>\n import { computed, onMounted, ref } from 'vue';\n import { useRoute, useRouter } from 'vue-router';\n\n import Block from '@martyrs/src/components/Block/Block.vue';\n import Popup from '@martyrs/src/components/Popup/Popup.vue';\n import customers from '@martyrs/src/modules/orders/store/customers.store.js';\n import SectionPageTitle from '@martyrs/src/modules/core/views/components/sections/SectionPageTitle.vue'\n import Feed from '@martyrs/src/components/Feed/Feed.vue'\n import CardCustomer from '@martyrs/src/modules/orders/components/blocks/CardCustomer.vue'\n import FormCustomerDetails from '@martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue'\n import CustomerDetails from '@martyrs/src/modules/orders/components/sections/CustomerDetails.vue'\n import customerInitState from '@martyrs/src/modules/orders/store/models/customer.js';\n import * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\n import { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js'\n\n const route = useRoute();\n const router = useRouter();\n const { formatDate } = useGlobalMixins();\n\n const statusFilter = ref('all')\n\n // Popup states\n const showViewPopup = ref(false)\n const showFormPopup = ref(false)\n const selectedCustomer = ref(null)\n const formCustomer = ref({ ...customerInitState })\n const isCreateMode = ref(false)\n const currentCustomers = ref([])\n\n const totalCustomers = computed(() => {\n return customers.state.items?.length || 0\n });\n\n const activeCustomers = computed(() => {\n return customers.state.items?.filter(customer => customer.status === 'active').length || 0\n });\n\n const newCustomersThisMonth = computed(() => {\n if (!customers.state.items) return 0;\n const now = new Date();\n const startOfMonth = new Date(now.getFullYear(), now.getMonth(), 1);\n return customers.state.items.filter(customer => \n new Date(customer.createdAt) >= startOfMonth\n ).length\n });\n\n // Popup methods\n const openCreatePopup = () => {\n formCustomer.value = { ...customerInitState };\n // Set owner and creator\n if (route.params._id) {\n formCustomer.value.owner = {\n type: 'Organization',\n target: route.params._id\n };\n }\n formCustomer.value.creator = {\n type: 'User',\n target: auth.state.user._id\n };\n isCreateMode.value = true;\n showFormPopup.value = true;\n };\n\n const openViewPopup = (customer) => {\n selectedCustomer.value = customer;\n showViewPopup.value = true;\n };\n\n const closeViewPopup = () => {\n showViewPopup.value = false;\n selectedCustomer.value = null;\n };\n\n const closeFormPopup = () => {\n showFormPopup.value = false;\n formCustomer.value = { ...customerInitState };\n isCreateMode.value = false;\n };\n\n const enableEdit = () => {\n formCustomer.value = JSON.parse(JSON.stringify(selectedCustomer.value));\n isCreateMode.value = false;\n showViewPopup.value = false;\n showFormPopup.value = true;\n };\n\n const saveCustomer = async () => {\n try {\n const data = JSON.parse(JSON.stringify(formCustomer.value));\n\n if (isCreateMode.value) {\n delete data._id;\n if (!data.email) delete data.email;\n if (!data.phone) delete data.phone;\n if (!data.notes) delete data.notes;\n\n // identity обязателен для создания\n if (!data.identity?.type) {\n data.identity = { type: 'Visitor' };\n }\n\n data.owner = {\n type: 'Organization',\n target: route.params._id || data.owner?.target\n };\n data.creator = {\n type: 'User',\n target: auth.state.user._id\n };\n\n const created = await customers.create(data);\n customers.addItem(created, currentCustomers.value);\n } else {\n // Только редактируемые поля — без owner/creator/identity/__v/timestamps\n const updateData = { _id: data._id };\n if (data.email) updateData.email = data.email;\n if (data.phone) updateData.phone = data.phone;\n if (data.profile) updateData.profile = data.profile;\n if (data.source) updateData.source = data.source;\n if (data.referral) updateData.referral = data.referral;\n if (data.tags) updateData.tags = data.tags;\n if (data.notes) updateData.notes = data.notes;\n if (data.status) updateData.status = data.status;\n if (data.address) updateData.address = data.address;\n\n const updated = await customers.update(updateData);\n customers.updateItem(updated, currentCustomers.value);\n selectedCustomer.value = JSON.parse(JSON.stringify(updated));\n }\n closeFormPopup();\n } catch (error) {\n console.error('Error saving customer:', error);\n }\n };\n\n const deleteCustomer = async () => {\n if (confirm('Are you sure you want to delete this customer?')) {\n try {\n await customers.delete({ _id: selectedCustomer.value._id });\n customers.removeItem(selectedCustomer.value, currentCustomers.value);\n closeViewPopup();\n } catch (error) {\n console.error('Error deleting customer:', error);\n }\n }\n };\n\n onMounted(async () => {\n \n });\n</script>"],"names":["auth.state"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAmHE,UAAM,QAAQ,SAAQ;AACP,cAAS;AACxB,UAAM,EAAE,WAAU,IAAK,gBAAe;AAEtC,UAAM,eAAe,IAAI,KAAK;AAG9B,UAAM,gBAAgB,IAAI,KAAK;AAC/B,UAAM,gBAAgB,IAAI,KAAK;AAC/B,UAAM,mBAAmB,IAAI,IAAI;AACjC,UAAM,eAAe,IAAI,EAAE,GAAG,kBAAiB,CAAE;AACjD,UAAM,eAAe,IAAI,KAAK;AAC9B,UAAM,mBAAmB,IAAI,CAAA,CAAE;AAE/B,UAAM,iBAAiB,SAAS,MAAM;AACpC,aAAO,UAAU,MAAM,OAAO,UAAU;AAAA,IAC1C,CAAC;AAED,UAAM,kBAAkB,SAAS,MAAM;AACrC,aAAO,UAAU,MAAM,OAAO,OAAO,cAAY,SAAS,WAAW,QAAQ,EAAE,UAAU;AAAA,IAC3F,CAAC;AAED,UAAM,wBAAwB,SAAS,MAAM;AAC3C,UAAI,CAAC,UAAU,MAAM,MAAO,QAAO;AACnC,YAAM,MAAM,oBAAI,KAAI;AACpB,YAAM,eAAe,IAAI,KAAK,IAAI,YAAW,GAAI,IAAI,SAAQ,GAAI,CAAC;AAClE,aAAO,UAAU,MAAM,MAAM;AAAA,QAAO,cAClC,IAAI,KAAK,SAAS,SAAS,KAAK;AAAA,MACtC,EAAM;AAAA,IACJ,CAAC;AAGD,UAAM,kBAAkB,MAAM;AAC5B,mBAAa,QAAQ,EAAE,GAAG,kBAAiB;AAE3C,UAAI,MAAM,OAAO,KAAK;AACpB,qBAAa,MAAM,QAAQ;AAAA,UACzB,MAAM;AAAA,UACN,QAAQ,MAAM,OAAO;AAAA,QAC7B;AAAA,MACI;AACA,mBAAa,MAAM,UAAU;AAAA,QAC3B,MAAM;AAAA,QACN,QAAQA,MAAW,KAAK;AAAA,MAC9B;AACI,mBAAa,QAAQ;AACrB,oBAAc,QAAQ;AAAA,IACxB;AAEA,UAAM,gBAAgB,CAAC,aAAa;AAClC,uBAAiB,QAAQ;AACzB,oBAAc,QAAQ;AAAA,IACxB;AAEA,UAAM,iBAAiB,MAAM;AAC3B,oBAAc,QAAQ;AACtB,uBAAiB,QAAQ;AAAA,IAC3B;AAEA,UAAM,iBAAiB,MAAM;AAC3B,oBAAc,QAAQ;AACtB,mBAAa,QAAQ,EAAE,GAAG,kBAAiB;AAC3C,mBAAa,QAAQ;AAAA,IACvB;AAEA,UAAM,aAAa,MAAM;AACvB,mBAAa,QAAQ,KAAK,MAAM,KAAK,UAAU,iBAAiB,KAAK,CAAC;AACtE,mBAAa,QAAQ;AACrB,oBAAc,QAAQ;AACtB,oBAAc,QAAQ;AAAA,IACxB;AAEA,UAAM,eAAe,YAAY;AAC/B,UAAI;AACF,cAAM,OAAO,KAAK,MAAM,KAAK,UAAU,aAAa,KAAK,CAAC;AAE1D,YAAI,aAAa,OAAO;AACtB,iBAAO,KAAK;AACZ,cAAI,CAAC,KAAK,MAAO,QAAO,KAAK;AAC7B,cAAI,CAAC,KAAK,MAAO,QAAO,KAAK;AAC7B,cAAI,CAAC,KAAK,MAAO,QAAO,KAAK;AAG7B,cAAI,CAAC,KAAK,UAAU,MAAM;AACxB,iBAAK,WAAW,EAAE,MAAM,UAAS;AAAA,UACnC;AAEA,eAAK,QAAQ;AAAA,YACX,MAAM;AAAA,YACN,QAAQ,MAAM,OAAO,OAAO,KAAK,OAAO;AAAA,UAClD;AACQ,eAAK,UAAU;AAAA,YACb,MAAM;AAAA,YACN,QAAQA,MAAW,KAAK;AAAA,UAClC;AAEQ,gBAAM,UAAU,MAAM,UAAU,OAAO,IAAI;AAC3C,oBAAU,QAAQ,SAAS,iBAAiB,KAAK;AAAA,QACnD,OAAO;AAEL,gBAAM,aAAa,EAAE,KAAK,KAAK,IAAG;AAClC,cAAI,KAAK,MAAO,YAAW,QAAQ,KAAK;AACxC,cAAI,KAAK,MAAO,YAAW,QAAQ,KAAK;AACxC,cAAI,KAAK,QAAS,YAAW,UAAU,KAAK;AAC5C,cAAI,KAAK,OAAQ,YAAW,SAAS,KAAK;AAC1C,cAAI,KAAK,SAAU,YAAW,WAAW,KAAK;AAC9C,cAAI,KAAK,KAAM,YAAW,OAAO,KAAK;AACtC,cAAI,KAAK,MAAO,YAAW,QAAQ,KAAK;AACxC,cAAI,KAAK,OAAQ,YAAW,SAAS,KAAK;AAC1C,cAAI,KAAK,QAAS,YAAW,UAAU,KAAK;AAE5C,gBAAM,UAAU,MAAM,UAAU,OAAO,UAAU;AACjD,oBAAU,WAAW,SAAS,iBAAiB,KAAK;AACpD,2BAAiB,QAAQ,KAAK,MAAM,KAAK,UAAU,OAAO,CAAC;AAAA,QAC7D;AACA,uBAAc;AAAA,MAChB,SAAS,OAAO;AACd,gBAAQ,MAAM,0BAA0B,KAAK;AAAA,MAC/C;AAAA,IACF;AAEA,UAAM,iBAAiB,YAAY;AACjC,UAAI,QAAQ,gDAAgD,GAAG;AAC7D,YAAI;AACF,gBAAM,UAAU,OAAO,EAAE,KAAK,iBAAiB,MAAM,KAAK;AAC1D,oBAAU,WAAW,iBAAiB,OAAO,iBAAiB,KAAK;AACnE,yBAAc;AAAA,QAChB,SAAS,OAAO;AACd,kBAAQ,MAAM,4BAA4B,KAAK;AAAA,QACjD;AAAA,MACF;AAAA,IACF;AAEA,cAAU,YAAY;AAAA,IAEtB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,13 +1,13 @@
1
1
  import { ref, onMounted, computed, createElementBlock, createCommentVNode, openBlock, createVNode, createElementVNode, createTextVNode, toDisplayString, Fragment, renderList, unref, normalizeClass, withCtx, createBlock } from "vue";
2
2
  import { useRouter, useRoute } from "vue-router";
3
- import _sfc_main$2 from "../../../../components/Button/Button.vue.js";
3
+ import Button from "../../../../components/Button/Button.vue2.js";
4
4
  import Select from "../../../../components/Select/Select.vue.js";
5
5
  import _sfc_main$1 from "../../../../components/Popup/Popup.vue.js";
6
6
  import IconTime from "../../../icons/entities/IconTime.vue.js";
7
- import _sfc_main$3 from "../blocks/CardOrderItem.vue.js";
8
- import _sfc_main$5 from "../../../organizations/components/blocks/CardOrganization.vue.js";
9
- import _sfc_main$6 from "../../../chats/components/pages/ChatPage.vue.js";
10
- import _sfc_main$4 from "../elements/PriceTotal.vue.js";
7
+ import _sfc_main$2 from "../blocks/CardOrderItem.vue.js";
8
+ import _sfc_main$4 from "../../../organizations/components/blocks/CardOrganization.vue.js";
9
+ import _sfc_main$5 from "../../../chats/components/pages/ChatPage.vue.js";
10
+ import _sfc_main$3 from "../elements/PriceTotal.vue.js";
11
11
  /* empty css */
12
12
  import { useStore } from "../../../core/views/store/core.store.js";
13
13
  import { state } from "../../../auth/views/store/auth.js";
@@ -233,7 +233,7 @@ const _sfc_main = {
233
233
  size: "small",
234
234
  class: "bg-white mn-b-small pd-regular radius-small w-100"
235
235
  }, null, 8, ["select"]),
236
- createVNode(_sfc_main$2, {
236
+ createVNode(Button, {
237
237
  submit: changePaymentStatus,
238
238
  class: "t-white w-100 bg-second"
239
239
  }, {
@@ -254,7 +254,7 @@ const _sfc_main = {
254
254
  default: withCtx(() => [
255
255
  createElementVNode("ul", _hoisted_7, [
256
256
  (openBlock(true), createElementBlock(Fragment, null, renderList(order.value.positions, (product, index) => {
257
- return openBlock(), createBlock(_sfc_main$3, {
257
+ return openBlock(), createBlock(_sfc_main$2, {
258
258
  key: `${product._id}_${product.variant || "no-variant"}_${index}`,
259
259
  editable: !order.value.status_history || order.value.status_history.length <= 1,
260
260
  productId: product._id,
@@ -274,7 +274,7 @@ const _sfc_main = {
274
274
  }, null, 8, ["editable", "productId", "variantId", "images", "name", "quantity", "unit", "dates", "listing", "price", "increase", "decrease", "remove"]);
275
275
  }), 128))
276
276
  ]),
277
- createVNode(_sfc_main$4, {
277
+ createVNode(_sfc_main$3, {
278
278
  totalPrice: unref(cartTotalPrice),
279
279
  currency: unref(returnCurrency)(),
280
280
  showFees: unref(store).core.state.options?.orders?.showFees,
@@ -282,7 +282,7 @@ const _sfc_main = {
282
282
  showVat: unref(store).core.state.options?.orders?.showVat,
283
283
  vatRate: unref(store).core.state.options?.orders?.vatRate || 0
284
284
  }, null, 8, ["totalPrice", "currency", "showFees", "feesRate", "showVat", "vatRate"]),
285
- createVNode(_sfc_main$2, {
285
+ createVNode(Button, {
286
286
  submit: setNextStatus,
287
287
  class: "t-white w-100 bg-second"
288
288
  }, {
@@ -296,7 +296,7 @@ const _sfc_main = {
296
296
  }, 8, ["isPopupOpen"]),
297
297
  order.value ? (openBlock(), createElementBlock("div", _hoisted_8, [
298
298
  createElementVNode("div", _hoisted_9, [
299
- orderOrganization.value[0] ? (openBlock(), createBlock(_sfc_main$5, {
299
+ orderOrganization.value[0] ? (openBlock(), createBlock(_sfc_main$4, {
300
300
  key: 0,
301
301
  organization: orderOrganization.value[0],
302
302
  showRating: true,
@@ -357,7 +357,7 @@ const _sfc_main = {
357
357
  ])) : createCommentVNode("", true),
358
358
  createElementVNode("div", _hoisted_27, [
359
359
  _cache[14] || (_cache[14] = createElementVNode("h3", { class: "mn-b-small" }, "Chat With Us", -1)),
360
- createVNode(_sfc_main$6, {
360
+ createVNode(_sfc_main$5, {
361
361
  username: ["Order", "UserOrder"].includes(unref(route).name) ? order.value.user?.name || "User" : "Support",
362
362
  user: state.user._id,
363
363
  chatID: unref(route).params.order,
@@ -370,7 +370,7 @@ const _sfc_main = {
370
370
  _cache[15] || (_cache[15] = createElementVNode("h3", { class: "mn-b-small" }, "Order Summary", -1)),
371
371
  createElementVNode("ul", _hoisted_30, [
372
372
  (openBlock(true), createElementBlock(Fragment, null, renderList(order.value.positions, (product, index) => {
373
- return openBlock(), createBlock(_sfc_main$3, {
373
+ return openBlock(), createBlock(_sfc_main$2, {
374
374
  key: `${product._id}_${product.variant || "no-variant"}_${index}`,
375
375
  editable: false,
376
376
  productId: product._id,
@@ -386,7 +386,7 @@ const _sfc_main = {
386
386
  }, null, 8, ["productId", "variantId", "images", "name", "quantity", "unit", "dates", "listing", "price"]);
387
387
  }), 128))
388
388
  ]),
389
- createVNode(_sfc_main$4, {
389
+ createVNode(_sfc_main$3, {
390
390
  totalPrice: unref(cartTotalPrice),
391
391
  deliveryRate: deliveryCost.value,
392
392
  currency: unref(returnCurrency)(),
@@ -1,5 +1,5 @@
1
1
  import { ref, computed, onMounted, watch, createElementBlock, openBlock, createBlock, createCommentVNode, createElementVNode, unref, toDisplayString, createVNode, Fragment, renderList, withCtx, createTextVNode } from "vue";
2
- import _sfc_main$9 from "../../../../components/Button/Button.vue.js";
2
+ import Button from "../../../../components/Button/Button.vue2.js";
3
3
  import _sfc_main$7 from "../blocks/CardOrderItem.vue.js";
4
4
  import _sfc_main$1 from "../sections/AskToLogin.vue.js";
5
5
  import _sfc_main$3 from "../sections/Succes.vue.js";
@@ -326,7 +326,7 @@ const _sfc_main = {
326
326
  showDeliveryFee: unref(store).core.state.options?.orders.showDeliveryFee
327
327
  }, null, 8, ["totalPrice", "deliveryRate", "currency", "showFees", "feesRate", "showVat", "vatRate", "showDeliveryFee"])
328
328
  ]),
329
- state.current.status !== true && state$3.positions.length > 0 ? (openBlock(), createBlock(_sfc_main$9, {
329
+ state.current.status !== true && state$3.positions.length > 0 ? (openBlock(), createBlock(Button, {
330
330
  key: 0,
331
331
  submit: () => handleCreate(),
332
332
  class: "bg-main mn-b-small pd-small radius-big w-100 button",
@@ -340,7 +340,7 @@ const _sfc_main = {
340
340
  _cache[5] || (_cache[5] = createElementVNode("p", { class: "mn-b-thin" }, [
341
341
  createTextVNode(" I agree that placing the order places me under an obligation to make a payment in accordance with "),
342
342
  createElementVNode("a", {
343
- class: "fw-semi font-second t-grey",
343
+ class: "fw-semi font-second t-dark",
344
344
  href: "/pages/terms-of-use",
345
345
  target: "_blank"
346
346
  }, "Terms of Use.")