@ozdao/martyrs 0.2.602 → 0.2.604

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 (729) 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/Feed/Carousel.vue.js +1 -1
  34. package/dist/martyrs/src/components/Feed/Feed.vue.js +2 -2
  35. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +4 -4
  36. package/dist/martyrs/src/components/Loader/{Loader.vue2.js → Loader.vue.js} +2 -2
  37. package/dist/martyrs/src/components/Loader/Loader.vue.js.map +1 -0
  38. package/dist/martyrs/src/components/LocationMarker/{LocationMarker.vue.js → LocationMarker.vue2.js} +3 -3
  39. package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue2.js.map +1 -0
  40. package/dist/martyrs/src/components/Media/Media.vue.js +1 -1
  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/components/UploadImage/UploadImage.vue.js +1 -1
  46. package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.js +1 -1
  47. package/dist/martyrs/src/modules/auth/views/components/blocks/OtpDialog.vue.js +2 -2
  48. package/dist/martyrs/src/modules/auth/views/components/blocks/PopupAuth.vue.js +3 -3
  49. package/dist/martyrs/src/modules/auth/views/components/blocks/PopupAuth.vue.js.map +1 -1
  50. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +2 -2
  51. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +2 -2
  52. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js +17 -21
  53. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js.map +1 -1
  54. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +1 -1
  55. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +13 -13
  56. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +2 -2
  57. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +2 -2
  58. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +41 -3
  59. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js.map +1 -1
  60. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +2 -2
  61. package/dist/martyrs/src/modules/auth/views/components/pages/UserDashboard.vue.js +34 -66
  62. package/dist/martyrs/src/modules/auth/views/components/pages/UserDashboard.vue.js.map +1 -1
  63. package/dist/martyrs/src/modules/auth/views/router/users.router.js +0 -53
  64. package/dist/martyrs/src/modules/auth/views/router/users.router.js.map +1 -1
  65. package/dist/martyrs/src/modules/auth/views/store/auth.js +1 -1
  66. package/dist/martyrs/src/modules/backoffice/components/pages/Dashboard.vue.js +515 -103
  67. package/dist/martyrs/src/modules/backoffice/components/pages/Dashboard.vue.js.map +1 -1
  68. package/dist/martyrs/src/modules/backoffice/configs/navigation.backoffice.config.js +1 -3
  69. package/dist/martyrs/src/modules/backoffice/configs/navigation.backoffice.config.js.map +1 -1
  70. package/dist/martyrs/src/modules/backoffice/router/backoffice.router.js +1 -32
  71. package/dist/martyrs/src/modules/backoffice/router/backoffice.router.js.map +1 -1
  72. package/dist/martyrs/src/modules/community/community.client.js +49 -8
  73. package/dist/martyrs/src/modules/community/community.client.js.map +1 -1
  74. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js +10 -4
  75. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js.map +1 -1
  76. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +3 -3
  77. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js.map +1 -1
  78. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +3 -3
  79. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js.map +1 -1
  80. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +28 -17
  81. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js.map +1 -1
  82. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.js +36 -28
  83. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.js.map +1 -1
  84. package/dist/martyrs/src/modules/community/components/sections/Comment.vue.js +2 -2
  85. package/dist/martyrs/src/modules/community/components/sections/Comment.vue.js.map +1 -1
  86. package/dist/martyrs/src/modules/community/components/sections/Comments.vue.js +1 -1
  87. package/dist/martyrs/src/modules/community/router/community.backoffice.router.js +21 -0
  88. package/dist/martyrs/src/modules/community/router/community.backoffice.router.js.map +1 -0
  89. package/dist/martyrs/src/modules/community/router/community.organization.router.js +70 -0
  90. package/dist/martyrs/src/modules/community/router/community.organization.router.js.map +1 -0
  91. package/dist/martyrs/src/modules/community/router/community.router.js +73 -0
  92. package/dist/martyrs/src/modules/community/router/community.router.js.map +1 -0
  93. package/dist/martyrs/src/modules/community/router/community.user.router.js +20 -0
  94. package/dist/martyrs/src/modules/community/router/community.user.router.js.map +1 -0
  95. package/dist/martyrs/src/modules/constructor/components/elements/Textarea.vue2.js +1 -1
  96. package/dist/martyrs/src/modules/constructor/components/elements/Textarea.vue2.js.map +1 -1
  97. package/dist/martyrs/src/modules/constructor/components/sections/Constructor.vue.js.map +1 -1
  98. package/dist/martyrs/src/modules/core/views/classes/core.app.js +5 -3
  99. package/dist/martyrs/src/modules/core/views/classes/core.app.js.map +1 -1
  100. package/dist/martyrs/src/modules/core/views/classes/i18n.manager.js +7 -2
  101. package/dist/martyrs/src/modules/core/views/classes/i18n.manager.js.map +1 -1
  102. package/dist/martyrs/src/modules/core/views/classes/ws.manager.js +11 -5
  103. package/dist/martyrs/src/modules/core/views/classes/ws.manager.js.map +1 -1
  104. package/dist/martyrs/src/modules/core/views/components/blocks/Card.vue.js +53 -18
  105. package/dist/martyrs/src/modules/core/views/components/blocks/Card.vue.js.map +1 -1
  106. package/dist/martyrs/src/modules/core/views/components/blocks/CardHeader.vue.js +2 -2
  107. package/dist/martyrs/src/modules/core/views/components/blocks/CardStat.vue.js +44 -0
  108. package/dist/martyrs/src/modules/core/views/components/blocks/CardStat.vue.js.map +1 -0
  109. package/dist/martyrs/src/modules/core/views/components/blocks/PopupDateSelector.vue.js +6 -6
  110. package/dist/martyrs/src/modules/core/views/components/layouts/App.vue.js +2 -2
  111. package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js +11 -8
  112. package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js.map +1 -1
  113. package/dist/martyrs/src/modules/core/views/components/partials/BottomNavigationBar.vue.js +5 -5
  114. package/dist/martyrs/src/modules/core/views/components/partials/BottomNavigationBar.vue.js.map +1 -1
  115. package/dist/martyrs/src/modules/core/views/components/partials/Header.vue.js +14 -14
  116. package/dist/martyrs/src/modules/core/views/components/partials/Header.vue.js.map +1 -1
  117. package/dist/martyrs/src/modules/core/views/components/partials/LocationSelection.vue.js +2 -2
  118. package/dist/martyrs/src/modules/core/views/components/partials/Navigation.vue.js +28 -29
  119. package/dist/martyrs/src/modules/core/views/components/partials/Navigation.vue.js.map +1 -1
  120. package/dist/martyrs/src/modules/core/views/components/partials/NavigationBar.vue.js +6 -6
  121. package/dist/martyrs/src/modules/core/views/components/partials/Sidebar.vue.js +5 -7
  122. package/dist/martyrs/src/modules/core/views/components/partials/Sidebar.vue.js.map +1 -1
  123. package/dist/martyrs/src/modules/core/views/components/sections/SectionPageTitle.vue.js +27 -17
  124. package/dist/martyrs/src/modules/core/views/components/sections/SectionPageTitle.vue.js.map +1 -1
  125. package/dist/martyrs/src/modules/core/views/components/sections/Walkthrough.vue.js +1 -1
  126. package/dist/martyrs/src/modules/core/views/mixins/mixins.js +3 -3
  127. package/dist/martyrs/src/modules/core/views/mixins/mixins.js.map +1 -1
  128. package/dist/martyrs/src/modules/core/views/router/addRoutes.js +2 -3
  129. package/dist/martyrs/src/modules/core/views/router/addRoutes.js.map +1 -1
  130. package/dist/martyrs/src/modules/core/views/store/core.store.js +1 -1
  131. package/dist/martyrs/src/modules/core/views/utils/vue-app-renderer.js +10 -0
  132. package/dist/martyrs/src/modules/core/views/utils/vue-app-renderer.js.map +1 -1
  133. package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.js +4 -4
  134. package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.js +2 -2
  135. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +3 -3
  136. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +9 -9
  137. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js.map +1 -1
  138. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +2 -2
  139. package/dist/martyrs/src/modules/events/components/pages/Events.vue.js +1 -0
  140. package/dist/martyrs/src/modules/events/components/pages/Events.vue.js.map +1 -1
  141. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js +23 -33
  142. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js.map +1 -1
  143. package/dist/martyrs/src/modules/events/components/sections/EditTickets.vue.js +13 -13
  144. package/dist/martyrs/src/modules/events/components/sections/Feed.vue.js +1 -1
  145. package/dist/martyrs/src/modules/events/components/sections/List.vue.js +3 -3
  146. package/dist/martyrs/src/modules/events/components/sections/List.vue.js.map +1 -1
  147. package/dist/martyrs/src/modules/events/events.client.js +37 -15
  148. package/dist/martyrs/src/modules/events/events.client.js.map +1 -1
  149. package/dist/martyrs/src/modules/events/router/events.backoffice.router.js +95 -0
  150. package/dist/martyrs/src/modules/events/router/events.backoffice.router.js.map +1 -0
  151. package/dist/martyrs/src/modules/events/router/events.organization.router.js +95 -0
  152. package/dist/martyrs/src/modules/events/router/events.organization.router.js.map +1 -0
  153. package/dist/martyrs/src/modules/events/router/events.router.js +73 -364
  154. package/dist/martyrs/src/modules/events/router/events.router.js.map +1 -1
  155. package/dist/martyrs/src/modules/events/router/events.user.router.js +65 -0
  156. package/dist/martyrs/src/modules/events/router/events.user.router.js.map +1 -0
  157. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +3 -3
  158. package/dist/martyrs/src/modules/governance/configs/navigation.initiative.config.js +33 -0
  159. package/dist/martyrs/src/modules/governance/configs/navigation.initiative.config.js.map +1 -0
  160. package/dist/martyrs/src/modules/governance/governance.client.js +31 -0
  161. package/dist/martyrs/src/modules/governance/governance.client.js.map +1 -0
  162. package/dist/martyrs/src/modules/governance/views/components/blocks/CardInitiativeItem.vue.js +110 -0
  163. package/dist/martyrs/src/modules/governance/views/components/blocks/CardInitiativeItem.vue.js.map +1 -0
  164. package/dist/martyrs/src/modules/governance/views/components/blocks/CardSprintItem.vue.js +105 -0
  165. package/dist/martyrs/src/modules/governance/views/components/blocks/CardSprintItem.vue.js.map +1 -0
  166. package/dist/martyrs/src/modules/governance/views/components/blocks/CardTaskItem.vue.js +110 -0
  167. package/dist/martyrs/src/modules/governance/views/components/blocks/CardTaskItem.vue.js.map +1 -0
  168. package/dist/martyrs/src/modules/governance/views/components/blocks/CardVotingItem.vue.js +106 -0
  169. package/dist/martyrs/src/modules/governance/views/components/blocks/CardVotingItem.vue.js.map +1 -0
  170. package/dist/martyrs/src/modules/governance/views/components/pages/Governance.vue.js +52 -0
  171. package/dist/martyrs/src/modules/governance/views/components/pages/Governance.vue.js.map +1 -0
  172. package/dist/martyrs/src/modules/governance/views/components/pages/Initiative.vue.js +684 -0
  173. package/dist/martyrs/src/modules/governance/views/components/pages/Initiative.vue.js.map +1 -0
  174. package/dist/martyrs/src/modules/governance/views/components/pages/InitiativeCreate.vue.js +78 -0
  175. package/dist/martyrs/src/modules/governance/views/components/pages/InitiativeCreate.vue.js.map +1 -0
  176. package/dist/martyrs/src/modules/governance/views/components/pages/InitiativeSprints.vue.js +328 -0
  177. package/dist/martyrs/src/modules/governance/views/components/pages/InitiativeSprints.vue.js.map +1 -0
  178. package/dist/martyrs/src/modules/governance/views/components/pages/Initiatives.vue.js +145 -0
  179. package/dist/martyrs/src/modules/governance/views/components/pages/Initiatives.vue.js.map +1 -0
  180. package/dist/martyrs/src/modules/governance/views/components/pages/Sprint.vue.js +258 -0
  181. package/dist/martyrs/src/modules/governance/views/components/pages/Sprint.vue.js.map +1 -0
  182. package/dist/martyrs/src/modules/governance/views/components/pages/SprintCreate.vue.js +72 -0
  183. package/dist/martyrs/src/modules/governance/views/components/pages/SprintCreate.vue.js.map +1 -0
  184. package/dist/martyrs/src/modules/governance/views/components/pages/Task.vue.js +769 -0
  185. package/dist/martyrs/src/modules/governance/views/components/pages/Task.vue.js.map +1 -0
  186. package/dist/martyrs/src/modules/governance/views/components/pages/TaskCreate.vue.js +88 -0
  187. package/dist/martyrs/src/modules/governance/views/components/pages/TaskCreate.vue.js.map +1 -0
  188. package/dist/martyrs/src/modules/governance/views/components/pages/Tasks.vue.js +291 -0
  189. package/dist/martyrs/src/modules/governance/views/components/pages/Tasks.vue.js.map +1 -0
  190. package/dist/martyrs/src/modules/governance/views/components/pages/Voting.vue.js +267 -0
  191. package/dist/martyrs/src/modules/governance/views/components/pages/Voting.vue.js.map +1 -0
  192. package/dist/martyrs/src/modules/governance/views/components/pages/VotingCreate.vue.js +90 -0
  193. package/dist/martyrs/src/modules/governance/views/components/pages/VotingCreate.vue.js.map +1 -0
  194. package/dist/martyrs/src/modules/governance/views/components/pages/Votings.vue.js +68 -0
  195. package/dist/martyrs/src/modules/governance/views/components/pages/Votings.vue.js.map +1 -0
  196. package/dist/martyrs/src/modules/governance/views/components/partials/EmptyState.vue.js +47 -0
  197. package/dist/martyrs/src/modules/governance/views/components/partials/EmptyState.vue.js.map +1 -0
  198. package/dist/martyrs/src/modules/governance/views/components/partials/LinkedEntityCard.vue.js +164 -0
  199. package/dist/martyrs/src/modules/governance/views/components/partials/LinkedEntityCard.vue.js.map +1 -0
  200. package/dist/martyrs/src/modules/governance/views/components/partials/TaskStatusBadge.vue.js +39 -0
  201. package/dist/martyrs/src/modules/governance/views/components/partials/TaskStatusBadge.vue.js.map +1 -0
  202. package/dist/martyrs/src/modules/governance/views/components/partials/VoteForm.vue.js +112 -0
  203. package/dist/martyrs/src/modules/governance/views/components/partials/VoteForm.vue.js.map +1 -0
  204. package/dist/martyrs/src/modules/governance/views/components/partials/VotingResults.vue.js +187 -0
  205. package/dist/martyrs/src/modules/governance/views/components/partials/VotingResults.vue.js.map +1 -0
  206. package/dist/martyrs/src/modules/governance/views/components/sections/FormInitiativeDetails.vue.js +555 -0
  207. package/dist/martyrs/src/modules/governance/views/components/sections/FormInitiativeDetails.vue.js.map +1 -0
  208. package/dist/martyrs/src/modules/governance/views/components/sections/FormSprintDetails.vue.js +187 -0
  209. package/dist/martyrs/src/modules/governance/views/components/sections/FormSprintDetails.vue.js.map +1 -0
  210. package/dist/martyrs/src/modules/governance/views/components/sections/FormTaskDetails.vue.js +171 -0
  211. package/dist/martyrs/src/modules/governance/views/components/sections/FormTaskDetails.vue.js.map +1 -0
  212. package/dist/martyrs/src/modules/governance/views/components/sections/FormVotingDetails.vue.js +179 -0
  213. package/dist/martyrs/src/modules/governance/views/components/sections/FormVotingDetails.vue.js.map +1 -0
  214. package/dist/martyrs/src/modules/governance/views/router/governance.router.js +502 -0
  215. package/dist/martyrs/src/modules/governance/views/router/governance.router.js.map +1 -0
  216. package/dist/martyrs/src/modules/governance/views/store/initiatives.js +119 -0
  217. package/dist/martyrs/src/modules/governance/views/store/initiatives.js.map +1 -0
  218. package/dist/martyrs/src/modules/governance/views/store/sprints.js +99 -0
  219. package/dist/martyrs/src/modules/governance/views/store/sprints.js.map +1 -0
  220. package/dist/martyrs/src/modules/governance/views/store/tasks.js +115 -0
  221. package/dist/martyrs/src/modules/governance/views/store/tasks.js.map +1 -0
  222. package/dist/martyrs/src/modules/governance/views/store/votings.js +155 -0
  223. package/dist/martyrs/src/modules/governance/views/store/votings.js.map +1 -0
  224. package/dist/martyrs/src/modules/icons/entities/IconCash.vue.js +70 -0
  225. package/dist/martyrs/src/modules/icons/entities/IconCash.vue.js.map +1 -0
  226. package/dist/martyrs/src/modules/icons/icons.client.js +1 -1
  227. package/dist/martyrs/src/modules/icons/icons.client.js.map +1 -1
  228. package/dist/martyrs/src/modules/icons/{icons.router.js → router/icons.router.js} +1 -1
  229. package/dist/martyrs/src/modules/icons/router/icons.router.js.map +1 -0
  230. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +3 -3
  231. package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.js +3 -3
  232. package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js +2 -2
  233. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +3 -3
  234. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js +1 -1
  235. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +6 -6
  236. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js.map +1 -1
  237. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js +1 -1
  238. package/dist/martyrs/src/modules/music/components/blocks/ActionButtons.vue.js +9 -9
  239. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +4 -4
  240. package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.js +2 -2
  241. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js +4 -4
  242. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js +7 -7
  243. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +3 -3
  244. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +4 -4
  245. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +3 -3
  246. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js +4 -4
  247. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +3 -3
  248. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +3 -3
  249. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +10 -10
  250. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +13 -13
  251. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +11 -11
  252. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +10 -10
  253. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +18 -18
  254. package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.js +1 -1
  255. package/dist/martyrs/src/modules/music/components/player/FullscreenPlayer.vue.js +2 -2
  256. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js +4 -4
  257. package/dist/martyrs/src/modules/music/components/player/PlayerControls.vue.js +10 -10
  258. package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.js +6 -6
  259. package/dist/martyrs/src/modules/music/components/sections/PopularTracks.vue.js +63 -0
  260. package/dist/martyrs/src/modules/music/components/sections/PopularTracks.vue.js.map +1 -0
  261. package/dist/martyrs/src/modules/music/music.client.js +29 -25
  262. package/dist/martyrs/src/modules/music/music.client.js.map +1 -1
  263. package/dist/martyrs/src/modules/music/{music.router.js → router/music.router.js} +16 -16
  264. package/dist/martyrs/src/modules/music/router/music.router.js.map +1 -0
  265. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js +26 -27
  266. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js.map +1 -1
  267. package/dist/martyrs/src/modules/notifications/components/sections/NotificationPreferences.vue.js +119 -60
  268. package/dist/martyrs/src/modules/notifications/components/sections/NotificationPreferences.vue.js.map +1 -1
  269. package/dist/martyrs/src/modules/notifications/notifications.client.js +76 -56
  270. package/dist/martyrs/src/modules/notifications/notifications.client.js.map +1 -1
  271. package/dist/martyrs/src/modules/notifications/{notifications.router.js → router/notifications.router.js} +3 -3
  272. package/dist/martyrs/src/modules/notifications/router/notifications.router.js.map +1 -0
  273. package/dist/martyrs/src/modules/notifications/store/notifications.store.js +1 -1
  274. package/dist/martyrs/src/modules/orders/components/blocks/CardApplication.vue.js +34 -44
  275. package/dist/martyrs/src/modules/orders/components/blocks/CardApplication.vue.js.map +1 -1
  276. package/dist/martyrs/src/modules/orders/components/blocks/CardCustomer.vue.js +47 -57
  277. package/dist/martyrs/src/modules/orders/components/blocks/CardCustomer.vue.js.map +1 -1
  278. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.js +2 -2
  279. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.js.map +1 -1
  280. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.js +2 -2
  281. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.js.map +1 -1
  282. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +3 -3
  283. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +5 -5
  284. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js.map +1 -1
  285. package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js +7 -7
  286. package/dist/martyrs/src/modules/orders/components/pages/Applications.vue.js +61 -54
  287. package/dist/martyrs/src/modules/orders/components/pages/Applications.vue.js.map +1 -1
  288. package/dist/martyrs/src/modules/orders/components/pages/Customers.vue.js +43 -31
  289. package/dist/martyrs/src/modules/orders/components/pages/Customers.vue.js.map +1 -1
  290. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +13 -13
  291. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +3 -3
  292. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js.map +1 -1
  293. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +19 -19
  294. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js +7 -10
  295. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js.map +1 -1
  296. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js +7 -10
  297. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js.map +1 -1
  298. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +4 -4
  299. package/dist/martyrs/src/modules/orders/orders.client.js +16 -16
  300. package/dist/martyrs/src/modules/orders/orders.client.js.map +1 -1
  301. package/dist/martyrs/src/modules/orders/store/shopcart.js +1 -1
  302. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +11 -4
  303. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js.map +1 -1
  304. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +2 -2
  305. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js +2 -2
  306. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js +22 -15
  307. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js.map +1 -1
  308. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js +2 -2
  309. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +63 -1
  310. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js.map +1 -1
  311. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +9 -3
  312. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js.map +1 -1
  313. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +13 -7
  314. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js.map +1 -1
  315. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js +24 -30
  316. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js.map +1 -1
  317. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +2 -2
  318. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +2 -2
  319. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +1 -1
  320. package/dist/martyrs/src/modules/organizations/organizations.client.js +42 -6
  321. package/dist/martyrs/src/modules/organizations/organizations.client.js.map +1 -1
  322. package/dist/martyrs/src/modules/organizations/router/organizations.backoffice.router.js +20 -0
  323. package/dist/martyrs/src/modules/organizations/router/organizations.backoffice.router.js.map +1 -0
  324. package/dist/martyrs/src/modules/organizations/router/organizations.router.js +102 -0
  325. package/dist/martyrs/src/modules/organizations/router/organizations.router.js.map +1 -0
  326. package/dist/martyrs/src/modules/organizations/router/organizations.user.router.js +20 -0
  327. package/dist/martyrs/src/modules/organizations/router/organizations.user.router.js.map +1 -0
  328. package/dist/martyrs/src/modules/pages/pages.client.js +1 -1
  329. package/dist/martyrs/src/modules/pages/pages.client.js.map +1 -1
  330. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -1
  331. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +3 -3
  332. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +2 -2
  333. package/dist/martyrs/src/modules/pages/{pages.router.js → views/router/pages.router.js} +8 -8
  334. package/dist/martyrs/src/modules/pages/views/router/pages.router.js.map +1 -0
  335. package/dist/martyrs/src/modules/products/components/blocks/CardPosition.vue.js +1 -1
  336. package/dist/martyrs/src/modules/products/components/blocks/CardPosition.vue.js.map +1 -1
  337. package/dist/martyrs/src/modules/products/components/elements/Image360.vue.js +1 -1
  338. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +1 -1
  339. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +7 -7
  340. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +1 -1
  341. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +21 -21
  342. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +3 -3
  343. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js.map +1 -1
  344. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +3 -3
  345. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +3 -3
  346. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +20 -20
  347. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js +4 -4
  348. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +4 -4
  349. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +3 -3
  350. package/dist/martyrs/src/modules/rents/rents.client.js +1 -1
  351. package/dist/martyrs/src/modules/rents/rents.client.js.map +1 -1
  352. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +6 -6
  353. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +4 -4
  354. package/dist/martyrs/src/modules/rents/{rents.router.js → views/router/rents.router.js} +4 -4
  355. package/dist/martyrs/src/modules/rents/views/router/rents.router.js.map +1 -0
  356. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +2 -2
  357. package/dist/martyrs/src/modules/reports/reports.client.js +1 -1
  358. package/dist/martyrs/src/modules/reports/reports.client.js.map +1 -1
  359. package/dist/martyrs/src/modules/reports/{reports.router.js → router/reports.router.js} +1 -1
  360. package/dist/martyrs/src/modules/reports/router/reports.router.js.map +1 -0
  361. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +1 -1
  362. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js +2 -2
  363. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +11 -11
  364. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +21 -21
  365. package/dist/martyrs/src/modules/wallet/views/components/pages/Payments.vue.js +68 -0
  366. package/dist/martyrs/src/modules/wallet/views/components/pages/Payments.vue.js.map +1 -0
  367. package/dist/martyrs/src/modules/wallet/views/router/wallet.router.js +48 -0
  368. package/dist/martyrs/src/modules/wallet/views/router/wallet.router.js.map +1 -0
  369. package/dist/martyrs/src/modules/wallet/views/store/payments.store.js +59 -0
  370. package/dist/martyrs/src/modules/wallet/views/store/payments.store.js.map +1 -0
  371. package/dist/martyrs/src/modules/wallet/wallet.client.js +20 -0
  372. package/dist/martyrs/src/modules/wallet/wallet.client.js.map +1 -0
  373. package/dist/martyrs.es.js +84 -41
  374. package/dist/martyrs.es10.js +126 -0
  375. package/dist/martyrs.es101.js +39 -0
  376. package/dist/martyrs.es102.js +31 -0
  377. package/dist/martyrs.es104.js +27 -0
  378. package/dist/martyrs.es105.js +8 -0
  379. package/dist/martyrs.es106.js +9 -0
  380. package/dist/martyrs.es107.js +79 -0
  381. package/dist/martyrs.es108.js +7 -0
  382. package/dist/martyrs.es109.js +121 -0
  383. package/dist/martyrs.es11.js +49 -0
  384. package/dist/martyrs.es112.js +4 -0
  385. package/dist/martyrs.es113.js +169 -0
  386. package/dist/martyrs.es114.js +460 -0
  387. package/dist/martyrs.es115.js +42 -0
  388. package/dist/martyrs.es116.js +12 -0
  389. package/dist/martyrs.es117.js +52 -0
  390. package/dist/martyrs.es118.js +14 -0
  391. package/dist/martyrs.es119.js +47 -0
  392. package/dist/martyrs.es12.js +94 -0
  393. package/dist/martyrs.es120.js +7 -0
  394. package/dist/martyrs.es121.js +131 -0
  395. package/dist/martyrs.es122.js +103 -0
  396. package/dist/martyrs.es123.js +89 -0
  397. package/dist/martyrs.es124.js +40 -0
  398. package/dist/martyrs.es125.js +14 -0
  399. package/dist/martyrs.es126.js +42 -0
  400. package/dist/martyrs.es127.js +11 -0
  401. package/dist/martyrs.es128.js +25 -0
  402. package/dist/martyrs.es129.js +7 -0
  403. package/dist/martyrs.es13.js +48 -0
  404. package/dist/martyrs.es130.js +10 -0
  405. package/dist/martyrs.es131.js +119 -0
  406. package/dist/martyrs.es132.js +20 -0
  407. package/dist/martyrs.es133.js +18 -0
  408. package/dist/martyrs.es134.js +6 -0
  409. package/dist/martyrs.es135.js +35 -0
  410. package/dist/martyrs.es136.js +12 -0
  411. package/dist/martyrs.es137.js +23 -0
  412. package/dist/martyrs.es138.js +12 -0
  413. package/dist/martyrs.es139.js +11 -0
  414. package/dist/martyrs.es14.js +101 -0
  415. package/dist/martyrs.es140.js +47 -0
  416. package/dist/martyrs.es141.js +483 -0
  417. package/dist/martyrs.es142.js +8 -0
  418. package/dist/martyrs.es143.js +4 -0
  419. package/dist/martyrs.es144.js +33 -0
  420. package/dist/martyrs.es145.js +14 -0
  421. package/dist/martyrs.es146.js +19 -0
  422. package/dist/martyrs.es147.js +22 -0
  423. package/dist/martyrs.es148.js +31 -0
  424. package/dist/martyrs.es149.js +23 -0
  425. package/dist/martyrs.es15.js +408 -0
  426. package/dist/martyrs.es16.js +58 -0
  427. package/dist/martyrs.es17.js +44 -0
  428. package/dist/martyrs.es18.js +42 -0
  429. package/dist/martyrs.es19.js +27 -0
  430. package/dist/martyrs.es2.js +88 -0
  431. package/dist/martyrs.es20.js +13 -0
  432. package/dist/martyrs.es21.js +57 -0
  433. package/dist/martyrs.es22.js +104 -0
  434. package/dist/martyrs.es23.js +178 -0
  435. package/dist/martyrs.es24.js +123 -0
  436. package/dist/martyrs.es25.js +139 -0
  437. package/dist/martyrs.es26.js +21 -0
  438. package/dist/martyrs.es27.js +60 -0
  439. package/dist/martyrs.es28.js +75 -0
  440. package/dist/martyrs.es29.js +36 -0
  441. package/dist/martyrs.es3.js +116 -0
  442. package/dist/martyrs.es30.js +348 -0
  443. package/dist/martyrs.es31.js +83 -0
  444. package/dist/martyrs.es32.js +148 -0
  445. package/dist/martyrs.es33.js +175 -0
  446. package/dist/martyrs.es34.js +66 -0
  447. package/dist/martyrs.es35.js +57 -0
  448. package/dist/martyrs.es36.js +76 -0
  449. package/dist/martyrs.es37.js +101 -0
  450. package/dist/martyrs.es38.js +39 -0
  451. package/dist/martyrs.es39.js +124 -0
  452. package/dist/martyrs.es4.js +85 -0
  453. package/dist/martyrs.es40.js +120 -0
  454. package/dist/martyrs.es41.js +229 -0
  455. package/dist/martyrs.es43.js +29 -0
  456. package/dist/martyrs.es44.js +27 -0
  457. package/dist/martyrs.es46.js +9 -0
  458. package/dist/martyrs.es48.js +18 -0
  459. package/dist/martyrs.es5.js +395 -0
  460. package/dist/martyrs.es50.js +42 -0
  461. package/dist/martyrs.es52.js +255 -0
  462. package/dist/martyrs.es54.js +8 -0
  463. package/dist/martyrs.es6.js +70 -0
  464. package/dist/martyrs.es61.js +139 -0
  465. package/dist/martyrs.es65.js +28 -0
  466. package/dist/martyrs.es68.js +33 -0
  467. package/dist/martyrs.es69.js +37 -0
  468. package/dist/martyrs.es7.js +17 -0
  469. package/dist/martyrs.es71.js +114 -0
  470. package/dist/martyrs.es73.js +83 -0
  471. package/dist/martyrs.es74.js +52 -0
  472. package/dist/martyrs.es75.js +75 -0
  473. package/dist/martyrs.es76.js +176 -0
  474. package/dist/martyrs.es77.js +31 -0
  475. package/dist/martyrs.es78.js +38 -0
  476. package/dist/martyrs.es8.js +127 -0
  477. package/dist/martyrs.es81.js +32 -0
  478. package/dist/martyrs.es86.js +37 -0
  479. package/dist/martyrs.es89.js +37 -0
  480. package/dist/martyrs.es9.js +396 -0
  481. package/dist/martyrs.es91.js +63 -0
  482. package/dist/martyrs.es92.js +35 -0
  483. package/dist/martyrs.es94.js +41 -0
  484. package/dist/martyrs.es95.js +59 -0
  485. package/dist/martyrs.es96.js +123 -0
  486. package/dist/martyrs.es97.js +43 -0
  487. package/dist/martyrs.es98.js +86 -0
  488. package/dist/martyrs.es99.js +33 -0
  489. package/dist/music.server.js +11 -11
  490. package/dist/node_modules/.pnpm/@capacitor-mlkit_barcode-scanning@7.3.0_@capacitor_core@7.4.4/node_modules/@capacitor-mlkit/barcode-scanning/dist/esm/index.js +1 -1
  491. package/dist/node_modules/.pnpm/@capacitor-mlkit_barcode-scanning@7.3.0_@capacitor_core@7.4.4/node_modules/@capacitor-mlkit/barcode-scanning/dist/esm/web.js +1 -1
  492. package/dist/node_modules/.pnpm/capacitor-plugin-app-tracking-transparency@2.0.5_@capacitor_core@7.4.4/node_modules/capacitor-plugin-app-tracking-transparency/dist/esm/index.js +1 -1
  493. package/dist/node_modules/.pnpm/capacitor-plugin-app-tracking-transparency@2.0.5_@capacitor_core@7.4.4/node_modules/capacitor-plugin-app-tracking-transparency/dist/esm/web.js +1 -1
  494. package/dist/notifications.server.js +16 -6
  495. package/dist/orders.server.js +264 -145
  496. package/dist/organizations.server.js +22 -6
  497. package/dist/products.server.js +7 -7
  498. package/dist/rents.server.js +4 -3
  499. package/dist/style.css +970 -986
  500. package/package.json +13 -6
  501. package/src/builder/modes/ssr.rspack.dev.js +32 -20
  502. package/src/builder/rspack/rspack.config.api.js +3 -0
  503. package/src/builder/rspack/rspack.config.base.js +9 -1
  504. package/src/builder/rspack/rspack.config.ssr.client.js +8 -5
  505. package/src/components/Block/Block.vue +1 -1
  506. package/src/components/Button/Button.vue +4 -4
  507. package/src/components/Table/StatusBadge.vue +24 -18
  508. package/src/components/Text/Text.vue +1 -1
  509. package/src/jit/core.js +72 -35
  510. package/src/jit/plugin.js +4 -3
  511. package/src/jit/rules.js +15 -15
  512. package/src/modules/TASKS.MD +30 -0
  513. package/src/modules/TASK_ACTIVITY.md +60 -0
  514. package/src/modules/TASK_MODULE_ARCH.md +391 -0
  515. package/src/modules/auth/controllers/routes/users.routes.js +8 -0
  516. package/src/modules/auth/controllers/services/users.service.js +51 -1
  517. package/src/modules/auth/views/components/blocks/PopupAuth.vue +1 -1
  518. package/src/modules/auth/views/components/pages/ProfileBlogposts.vue +25 -24
  519. package/src/modules/auth/views/components/pages/SignIn.vue +10 -1
  520. package/src/modules/auth/views/components/pages/UserDashboard.vue +35 -62
  521. package/src/modules/auth/views/router/users.router.js +0 -44
  522. package/src/modules/backoffice/components/pages/Dashboard.vue +423 -120
  523. package/src/modules/backoffice/configs/navigation.backoffice.config.js +0 -2
  524. package/src/modules/backoffice/router/backoffice.router.js +0 -25
  525. package/src/modules/community/community.client.js +54 -9
  526. package/src/modules/community/components/blocks/CardBlogpost.vue +10 -3
  527. package/src/modules/community/components/layouts/Community.vue +3 -3
  528. package/src/modules/community/components/pages/BlogPost.vue +1 -1
  529. package/src/modules/community/components/pages/CreateBlogPost.vue +19 -20
  530. package/src/modules/community/components/pages/Posts.vue +43 -28
  531. package/src/modules/community/components/sections/Comment.vue +1 -1
  532. package/src/modules/community/controllers/blog.controller.js +4 -5
  533. package/src/modules/community/models/reaction.model.js +1 -0
  534. package/src/modules/community/router/community.backoffice.router.js +16 -0
  535. package/src/modules/community/router/community.organization.router.js +56 -0
  536. package/src/modules/community/router/community.router.js +58 -106
  537. package/src/modules/community/router/community.user.router.js +15 -0
  538. package/src/modules/constructor/components/elements/Textarea.vue +1 -1
  539. package/src/modules/constructor/components/sections/Constructor.vue +1 -1
  540. package/src/modules/core/controllers/classes/core.validator.js +7 -1
  541. package/src/modules/core/controllers/classes/core.verifier.js +0 -2
  542. package/src/modules/core/controllers/classes/crud/crud.controller.js +0 -4
  543. package/src/modules/core/controllers/classes/crud/crud.service.js +1 -0
  544. package/src/modules/core/models/schemas/engagement.schema.js +19 -22
  545. package/src/modules/core/views/classes/core.app.js +6 -4
  546. package/src/modules/core/views/classes/i18n.manager.js +9 -2
  547. package/src/modules/core/views/classes/ws.manager.js +17 -7
  548. package/src/modules/core/views/components/blocks/Card.vue +47 -24
  549. package/src/modules/core/views/components/blocks/CardStat.vue +27 -0
  550. package/src/modules/core/views/components/blocks/PopupAuth.vue +1 -1
  551. package/src/modules/core/views/components/layouts/Client.vue +5 -4
  552. package/src/modules/core/views/components/partials/BottomNavigationBar.vue +5 -5
  553. package/src/modules/core/views/components/partials/Header.vue +2 -2
  554. package/src/modules/core/views/components/partials/Navigation.vue +13 -14
  555. package/src/modules/core/views/components/partials/Sidebar.vue +4 -6
  556. package/src/modules/core/views/components/sections/SectionPageTitle.vue +23 -15
  557. package/src/modules/core/views/mixins/mixins.js +4 -3
  558. package/src/modules/core/views/router/addRoutes.js +1 -2
  559. package/src/modules/core/views/utils/vue-app-renderer.js +12 -0
  560. package/src/modules/events/components/pages/EditEventTickets.vue +1 -1
  561. package/src/modules/events/components/pages/Events.vue +1 -0
  562. package/src/modules/events/components/pages/EventsBackoffice.vue +23 -48
  563. package/src/modules/events/components/sections/List.vue +2 -2
  564. package/src/modules/events/events.client.js +44 -17
  565. package/src/modules/events/router/events.backoffice.router.js +80 -0
  566. package/src/modules/events/router/events.organization.router.js +80 -0
  567. package/src/modules/events/router/events.router.js +55 -325
  568. package/src/modules/events/router/events.user.router.js +49 -0
  569. package/src/modules/governance/TASK-TRACKER.MD +534 -39
  570. package/src/modules/governance/configs/navigation.initiative.config.js +30 -0
  571. package/src/modules/governance/controllers/routes/initiatives.routes.js +55 -8
  572. package/src/modules/governance/controllers/routes/{milestones.routes.js → sprints.routes.js} +22 -22
  573. package/src/modules/governance/controllers/routes/tasks.routes.js +2 -2
  574. package/src/modules/governance/governance.client.js +1 -4
  575. package/src/modules/governance/governance.server.js +6 -6
  576. package/src/modules/governance/middlewares/initiatives.verifier.js +60 -0
  577. package/src/modules/governance/middlewares/{milestones.verifier.js → sprints.verifier.js} +10 -10
  578. package/src/modules/governance/middlewares/tasks.verifier.js +4 -4
  579. package/src/modules/governance/middlewares/votings.verifier.js +25 -7
  580. package/src/modules/governance/models/{milestone.model.js → sprint.model.js} +11 -11
  581. package/src/modules/governance/models/task.model.js +4 -4
  582. package/src/modules/governance/models/voting.model.js +10 -5
  583. package/src/modules/governance/views/components/blocks/CardInitiativeItem.vue +8 -13
  584. package/src/modules/governance/views/components/blocks/{CardMilestoneItem.vue → CardSprintItem.vue} +16 -17
  585. package/src/modules/governance/views/components/blocks/CardTaskItem.vue +7 -9
  586. package/src/modules/governance/views/components/blocks/CardVotingItem.vue +7 -9
  587. package/src/modules/governance/views/components/pages/Governance.vue +13 -34
  588. package/src/modules/governance/views/components/pages/Initiative.vue +73 -154
  589. package/src/modules/governance/views/components/pages/InitiativeCreate.vue +44 -7
  590. package/src/modules/governance/views/components/pages/{Roadmap.vue → InitiativeSprints.vue} +70 -69
  591. package/src/modules/governance/views/components/pages/Initiatives.vue +23 -108
  592. package/src/modules/governance/views/components/pages/{Milestone.vue → Sprint.vue} +43 -41
  593. package/src/modules/governance/views/components/pages/SprintCreate.vue +55 -0
  594. package/src/modules/governance/views/components/pages/Task.vue +95 -88
  595. package/src/modules/governance/views/components/pages/TaskCreate.vue +47 -9
  596. package/src/modules/governance/views/components/pages/Tasks.vue +25 -21
  597. package/src/modules/governance/views/components/pages/Voting.vue +84 -68
  598. package/src/modules/governance/views/components/pages/VotingCreate.vue +48 -8
  599. package/src/modules/governance/views/components/pages/Votings.vue +12 -57
  600. package/src/modules/governance/views/components/partials/EmptyState.vue +1 -1
  601. package/src/modules/governance/views/components/partials/LinkedEntityCard.vue +23 -11
  602. package/src/modules/governance/views/components/partials/TaskStatusBadge.vue +1 -1
  603. package/src/modules/governance/views/components/partials/VoteForm.vue +3 -3
  604. package/src/modules/governance/views/components/partials/VotingResults.vue +13 -19
  605. package/src/modules/governance/views/components/sections/FormInitiativeDetails.vue +413 -15
  606. package/src/modules/governance/views/components/sections/FormSprintDetails.vue +156 -0
  607. package/src/modules/governance/views/components/sections/FormTaskDetails.vue +125 -21
  608. package/src/modules/governance/views/components/sections/FormVotingDetails.vue +136 -17
  609. package/src/modules/governance/views/components/sections/VoteForm.vue +2 -2
  610. package/src/modules/governance/views/router/governance.router.js +255 -151
  611. package/src/modules/governance/views/store/initiatives.js +23 -2
  612. package/src/modules/governance/views/store/sprints.js +102 -0
  613. package/src/modules/governance/views/store/tasks.js +25 -9
  614. package/src/modules/governance/views/store/votings.js +106 -27
  615. package/src/modules/icons/icons.client.js +1 -1
  616. package/src/modules/inventory/components/pages/InventoryEdit.vue +1 -1
  617. package/src/modules/music/components/sections/PopularTracks.vue +52 -0
  618. package/src/modules/music/music.client.js +8 -1
  619. package/src/modules/music/router/music.router.js +13 -1
  620. package/src/modules/notifications/components/elements/NotificationBadge.vue +8 -33
  621. package/src/modules/notifications/components/sections/NotificationPreferences.vue +110 -48
  622. package/src/modules/notifications/notifications.client.js +78 -57
  623. package/src/modules/notifications/router/notifications.router.js +32 -15
  624. package/src/modules/notifications/services/notification.service.js +15 -6
  625. package/src/modules/notifications/services/web-push.service.js +2 -0
  626. package/src/modules/orders/components/blocks/CardApplication.vue +20 -40
  627. package/src/modules/orders/components/blocks/CardCustomer.vue +35 -55
  628. package/src/modules/orders/components/blocks/CardOrderItem.vue +2 -2
  629. package/src/modules/orders/components/blocks/CardOrderUser.vue +2 -2
  630. package/src/modules/orders/components/forms/FormCustomerDetails.vue +2 -2
  631. package/src/modules/orders/components/pages/Applications.vue +59 -57
  632. package/src/modules/orders/components/pages/Customers.vue +40 -27
  633. package/src/modules/orders/components/pages/OrderCreate.vue +1 -1
  634. package/src/modules/orders/components/sections/ApplicationDetails.vue +1 -4
  635. package/src/modules/orders/components/sections/CustomerDetails.vue +1 -4
  636. package/src/modules/orders/controllers/orders.controller.js +113 -0
  637. package/src/modules/orders/middlewares/applications.verifier.js +13 -37
  638. package/src/modules/orders/middlewares/customers.verifier.js +44 -121
  639. package/src/modules/orders/models/customer.model.js +0 -1
  640. package/src/modules/orders/routes/applications.routes.js +108 -50
  641. package/src/modules/orders/routes/orders.routes.js +9 -1
  642. package/src/modules/organizations/components/blocks/CardOrganization.vue +12 -4
  643. package/src/modules/organizations/components/forms/DepartmentForm.vue +9 -4
  644. package/src/modules/organizations/components/pages/Members.vue +62 -1
  645. package/src/modules/organizations/components/pages/Organization.new.vue +17 -17
  646. package/src/modules/organizations/components/pages/Organization.vue +8 -1
  647. package/src/modules/organizations/components/pages/OrganizationBackoffice.vue +1 -1
  648. package/src/modules/organizations/components/pages/OrganizationEdit.vue +11 -4
  649. package/src/modules/organizations/components/pages/Organizations.vue +33 -46
  650. package/src/modules/organizations/controllers/invites.controller.js +19 -0
  651. package/src/modules/organizations/controllers/memberships.controller.js +1 -0
  652. package/src/modules/organizations/organizations.client.js +48 -7
  653. package/src/modules/organizations/router/organizations.backoffice.router.js +15 -0
  654. package/src/modules/organizations/router/organizations.router.js +72 -112
  655. package/src/modules/organizations/router/organizations.user.router.js +15 -0
  656. package/src/modules/pages/pages.client.js +1 -1
  657. package/src/modules/pages/views/router/pages.router.js +95 -15
  658. package/src/modules/products/components/blocks/CardPosition.vue +1 -1
  659. package/src/modules/products/components/pages/Products.vue +3 -3
  660. package/src/modules/rents/controllers/services/rents.services.js +1 -0
  661. package/src/modules/rents/rents.client.js +1 -1
  662. package/src/modules/rents/views/router/rents.router.js +93 -33
  663. package/src/modules/reports/reports.client.js +1 -1
  664. package/src/modules/wallet/wallet.client.js +1 -1
  665. package/src/styles/theme.scss +5 -3
  666. package/dist/engagement.schema-fh6W1fb_.js +0 -24
  667. package/dist/main-DQm5pwFO.js +0 -8213
  668. package/dist/martyrs/dist/main-DQm5pwFO.js +0 -1080
  669. package/dist/martyrs/dist/main-DQm5pwFO.js.map +0 -1
  670. package/dist/martyrs/dist/web-n_ivHO3v.js +0 -55
  671. package/dist/martyrs/dist/web-n_ivHO3v.js.map +0 -1
  672. package/dist/martyrs/node_modules/.pnpm/@capacitor_core@7.4.4/node_modules/@capacitor/core/dist/index.js +0 -487
  673. package/dist/martyrs/node_modules/.pnpm/@capacitor_core@7.4.4/node_modules/@capacitor/core/dist/index.js.map +0 -1
  674. package/dist/martyrs/node_modules/.pnpm/@capacitor_preferences@7.0.2_@capacitor_core@7.4.4/node_modules/@capacitor/preferences/dist/esm/index.js +0 -8
  675. package/dist/martyrs/node_modules/.pnpm/@capacitor_preferences@7.0.2_@capacitor_core@7.4.4/node_modules/@capacitor/preferences/dist/esm/index.js.map +0 -1
  676. package/dist/martyrs/node_modules/.pnpm/@capacitor_preferences@7.0.2_@capacitor_core@7.4.4/node_modules/@capacitor/preferences/dist/esm/web.js +0 -73
  677. package/dist/martyrs/node_modules/.pnpm/@capacitor_preferences@7.0.2_@capacitor_core@7.4.4/node_modules/@capacitor/preferences/dist/esm/web.js.map +0 -1
  678. package/dist/martyrs/src/components/Address/Address.vue.js.map +0 -1
  679. package/dist/martyrs/src/components/Button/Button.vue.js.map +0 -1
  680. package/dist/martyrs/src/components/Dropdown/Dropdown.vue2.js.map +0 -1
  681. package/dist/martyrs/src/components/Loader/Loader.vue2.js.map +0 -1
  682. package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue.js.map +0 -1
  683. package/dist/martyrs/src/modules/community/community.router.js +0 -124
  684. package/dist/martyrs/src/modules/community/community.router.js.map +0 -1
  685. package/dist/martyrs/src/modules/icons/icons.router.js.map +0 -1
  686. package/dist/martyrs/src/modules/music/music.router.js.map +0 -1
  687. package/dist/martyrs/src/modules/notifications/notifications.router.js.map +0 -1
  688. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +0 -200
  689. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js.map +0 -1
  690. package/dist/martyrs/src/modules/organizations/organizations.router.js +0 -145
  691. package/dist/martyrs/src/modules/organizations/organizations.router.js.map +0 -1
  692. package/dist/martyrs/src/modules/pages/pages.router.js.map +0 -1
  693. package/dist/martyrs/src/modules/rents/rents.router.js.map +0 -1
  694. package/dist/martyrs/src/modules/reports/reports.router.js.map +0 -1
  695. package/dist/martyrs.css +0 -1
  696. package/dist/node_modules/.pnpm/@capacitor_core@7.4.4/node_modules/@capacitor/core/dist/index.js +0 -487
  697. package/dist/node_modules/.pnpm/@capacitor_core@7.4.4/node_modules/@capacitor/core/dist/index.js.map +0 -1
  698. 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
  699. 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
  700. 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
  701. 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
  702. 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
  703. 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
  704. 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
  705. 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
  706. 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
  707. 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
  708. package/dist/web-n_ivHO3v.js +0 -54
  709. package/src/jit/.claude/settings.local.json +0 -10
  710. package/src/modules/community/community.router.js +0 -107
  711. package/src/modules/governance/governance.router.js +0 -350
  712. package/src/modules/governance/seed-governance.js +0 -348
  713. package/src/modules/governance/views/components/pages/InitiativeMilestones.vue +0 -159
  714. package/src/modules/governance/views/router/goverance.router.js +0 -290
  715. package/src/modules/governance/views/store/votes.js +0 -113
  716. package/src/modules/icons/icons.router.js +0 -29
  717. package/src/modules/marketplace/marketplace.router.js +0 -66
  718. package/src/modules/music/.claude/settings.local.json +0 -8
  719. package/src/modules/music/music.router.js +0 -188
  720. package/src/modules/notifications/notifications.router.js +0 -47
  721. package/src/modules/orders/orders.router.js +0 -255
  722. package/src/modules/organizations/organizations.router.js +0 -123
  723. package/src/modules/organizations/router/backoffice.router.js +0 -27
  724. package/src/modules/organizations/router/departments.router.js +0 -15
  725. package/src/modules/organizations/router/members.router.js +0 -20
  726. package/src/modules/pages/pages.router.js +0 -107
  727. package/src/modules/rents/rents.router.js +0 -115
  728. package/src/modules/reports/reports.router.js +0 -33
  729. package/src/modules/wallet/wallet.router.js +0 -45
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pages.router.js","sources":["../../../../../../../src/modules/pages/views/router/pages.router.js"],"sourcesContent":["import layoutEmpty from '@martyrs/src/modules/core/views/components/layouts/Empty.vue';\nimport Navigation from '@martyrs/src/modules/core/views/components/partials/Navigation.vue';\nimport { navigationItems } from '@martyrs/src/modules/backoffice/configs/navigation.backoffice.config.js';\nimport SidebarPages from '../components/partials/SidebarPages.vue';\n\nfunction createPublicRoutes(options = {}) {\n return [\n {\n path: ':url+',\n name: options.publicRouteName || 'Page',\n meta: {\n title: {\n en: 'Page',\n ru: 'Страница',\n },\n },\n component: () => import(\n /* webpackChunkName: 'Page' */\n '../components/pages/Page.vue'\n ),\n },\n ];\n}\n\nfunction createBackofficeRoutes(options = {}) {\n return [\n {\n path: '',\n name: 'Pages',\n component: () => import(\n /* webpackChunkName: 'Pages' */\n '../components/pages/Pages.vue'\n ),\n },\n {\n path: 'add',\n name: 'Pages Add',\n meta: {\n title: {\n en: 'New Page',\n },\n sidebar: SidebarPages,\n },\n component: () => import(\n /* webpackChunkName: 'Pages' */\n '../components/pages/PageEdit.vue'\n ),\n },\n {\n path: ':url+',\n name: 'Pages Edit',\n meta: {\n title: {\n en: 'Edit Page',\n },\n sidebar: SidebarPages,\n },\n component: () => import(\n /* webpackChunkName: 'Pages' */\n '../components/pages/PageEdit.vue'\n ),\n },\n ];\n}\n\nexport function getRoutes(options = {}) {\n const routes = [];\n const routeHome = options.route?.home || options.routeHome || 'Home';\n const routeBackoffice = options.route?.backoffice || options.routeBackoffice || 'Backoffice Root';\n\n routes.push({\n parentName: routeHome,\n config: {\n basePath: options.publicBasePath || 'pages',\n component: options.publicLayout || layoutEmpty,\n meta: {\n title: {\n en: 'Pages',\n ru: 'Информация',\n },\n },\n routes: createPublicRoutes(options),\n },\n });\n\n if (!options.withBackoffice) {\n routes.push({\n parentName: routeBackoffice,\n config: {\n basePath: options.backofficeBasePath || 'pages',\n routeNamePrefix: options.backofficeRouteNamePrefix || 'Backoffice ',\n meta: {\n title: {\n en: 'Pages',\n },\n sidebar_navigation: Navigation,\n sidebar_navigation_items: navigationItems,\n },\n routes: createBackofficeRoutes(options),\n },\n });\n }\n\n return routes;\n}\n\nexport default { getRoutes };\n"],"names":["SidebarPages"],"mappings":";;;;AAKA,SAAS,mBAAmB,UAAU,IAAI;AACxC,SAAO;AAAA,IACL;AAAA,MACE,MAAM;AAAA,MACN,MAAM,QAAQ,mBAAmB;AAAA,MACjC,MAAM;AAAA,QACJ,OAAO;AAAA,UACL,IAAI;AAAA,UACJ,IAAI;AAAA,QACd;AAAA,MACA;AAAA,MACM,WAAW,MAAM;AAAA;AAAA,QAEf;AAAA,MACR;AAAA,IACA;AAAA,EACA;AACA;AAEA,SAAS,uBAAuB,UAAU,IAAI;AAC5C,SAAO;AAAA,IACL;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM;AAAA;AAAA,QAEf;AAAA,MACR;AAAA,IACA;AAAA,IACI;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,MAAM;AAAA,QACJ,OAAO;AAAA,UACL,IAAI;AAAA,QACd;AAAA,QACQ,SAASA;AAAAA,MACjB;AAAA,MACM,WAAW,MAAM;AAAA;AAAA,QAEf;AAAA,MACR;AAAA,IACA;AAAA,IACI;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,MAAM;AAAA,QACJ,OAAO;AAAA,UACL,IAAI;AAAA,QACd;AAAA,QACQ,SAASA;AAAAA,MACjB;AAAA,MACM,WAAW,MAAM;AAAA;AAAA,QAEf;AAAA,MACR;AAAA,IACA;AAAA,EACA;AACA;AAEO,SAAS,UAAU,UAAU,IAAI;AACtC,QAAM,SAAS,CAAA;AACf,QAAM,YAAY,QAAQ,OAAO,QAAQ,QAAQ,aAAa;AAC9D,QAAM,kBAAkB,QAAQ,OAAO,cAAc,QAAQ,mBAAmB;AAEhF,SAAO,KAAK;AAAA,IACV,YAAY;AAAA,IACZ,QAAQ;AAAA,MACN,UAAU,QAAQ,kBAAkB;AAAA,MACpC,WAAW,QAAQ,gBAAgB;AAAA,MACnC,MAAM;AAAA,QACJ,OAAO;AAAA,UACL,IAAI;AAAA,UACJ,IAAI;AAAA,QACd;AAAA,MACA;AAAA,MACM,QAAQ,mBAAmB,OAAO;AAAA,IACxC;AAAA,EACA,CAAG;AAED,MAAI,CAAC,QAAQ,gBAAgB;AAC3B,WAAO,KAAK;AAAA,MACV,YAAY;AAAA,MACZ,QAAQ;AAAA,QACN,UAAU,QAAQ,sBAAsB;AAAA,QACxC,iBAAiB,QAAQ,6BAA6B;AAAA,QACtD,MAAM;AAAA,UACJ,OAAO;AAAA,YACL,IAAI;AAAA,UAChB;AAAA,UACU,oBAAoB;AAAA,UACpB,0BAA0B;AAAA,QACpC;AAAA,QACQ,QAAQ,uBAAuB,OAAO;AAAA,MAC9C;AAAA,IACA,CAAK;AAAA,EACH;AAEA,SAAO;AACT;"}
@@ -71,7 +71,7 @@ const _sfc_main = {
71
71
  createElementVNode("div", _hoisted_6, [
72
72
  __props.title ? (openBlock(), createElementBlock("span", {
73
73
  key: 0,
74
- class: normalizeClass([__props.title_class, "t-grey d-inline-block fw-demi"])
74
+ class: normalizeClass([__props.title_class, "t-dark d-inline-block fw-demi"])
75
75
  }, toDisplayString(__props.title), 3)) : createCommentVNode("", true),
76
76
  __props.subtitle ? (openBlock(), createElementBlock("span", _hoisted_7, toDisplayString(__props.subtitle), 1)) : createCommentVNode("", true)
77
77
  ]),
@@ -1 +1 @@
1
- {"version":3,"file":"CardPosition.vue.js","sources":["../../../../../../../src/modules/products/components/blocks/CardPosition.vue"],"sourcesContent":["<template>\n <div class=\"bg-white radius-small pd-small flex-nowrap flex-v-center flex gap-thin\">\n <!-- Thumbnail image -->\n <div v-if=\"showThumbnail\" class=\"aspect-1x1 h-3r flex-child-default radius-small o-hidden\">\n <img\n v-if=\"image && image.length > 0\"\n :src=\"(FILE_SERVER_URL || '') + image\"\n alt=\"Item image\"\n class=\"w-100 h-100 object-fit-cover\"\n />\n <PlaceholderImage v-else class=\"w-100 h-100\" />\n </div>\n \n <!-- Item details -->\n <div class=\"mn-micro-negative flex flex-column w-100 o-hidden\">\n <p class=\"w-100 pd-micro truncate trimmed capitalize fw-medium\">{{ name || 'Unnamed Product' }}</p>\n \n <div class=\"flex pd-micro flex-v-center gap-micro w-max \">\n \t<span v-if=\"title\" :class=\"title_class\" class=\"t-grey d-inline-block fw-demi\">{{title}}</span>\n \t<span v-if=\"subtitle\" class=\"t-transp p-small d-inline-block fw-medium\">{{ subtitle }}</span>\n </div>\n \t<slot></slot>\n </div>\n <!-- <p>\n \n\n <span class=\"p-small t-transp\">\n <template v-if=\"product.quantity\">{{returnCurrency() }}{{product.price}} </template>\n × \n <template v-if=\"product.listing === 'rent' && rentDates.start && rentDates.end\">\n {{ rentalDays }} days\n </template>\n \n <template v-else>\n {{ product.quantity || 0 }} {{ product.unit || 'pcs' }}\n </template>\n </span>\n </p> -->\n \n <!-- Actions -->\n <div class=\"flex gap-thin\">\n <template v-for=\"(action, index) in actions\" :key=\"index\">\n <div \n :class=\"action.class || 'bg-light'\"\n class=\"radius-small pd-small flex-center flex aspect-1x1 cursor-pointer hover:scale-[1.05]\"\n @click=\"() => action.handler(item, index)\"\n >\n <component\n :is=\"action.component\"\n class=\"i-medium\"\n />\n </div>\n </template>\n <slot name=\"actions\"></slot>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { defineProps } from 'vue';\nimport PlaceholderImage from '@martyrs/src/modules/icons/placeholders/PlaceholderImage.vue';\nimport { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js';\n\nconst { formatPrice } = useGlobalMixins();\n\nconst props = defineProps({\n\timage: {\n type: String,\n },\n name: {\n type: String,\n },\n title: {\n type: String,\n },\n title_class: {\n \ttype: Array\n },\n subtitle: {\n type: String,\n },\n showThumbnail: {\n type: Boolean,\n default: true\n },\n actions: {\n type: Array,\n default: () => []\n // Expected format:\n // [\n // {\n // component: IconEdit,\n // handler: (item, index) => {},\n // class: 'bg-light' // optional custom class\n // }\n // ]\n }\n});\n</script>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+DA,UAAM,EAAE,YAAW,IAAK,gBAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"CardPosition.vue.js","sources":["../../../../../../../src/modules/products/components/blocks/CardPosition.vue"],"sourcesContent":["<template>\n <div class=\"bg-white radius-small pd-small flex-nowrap flex-v-center flex gap-thin\">\n <!-- Thumbnail image -->\n <div v-if=\"showThumbnail\" class=\"aspect-1x1 h-3r flex-child-default radius-small o-hidden\">\n <img\n v-if=\"image && image.length > 0\"\n :src=\"(FILE_SERVER_URL || '') + image\"\n alt=\"Item image\"\n class=\"w-100 h-100 object-fit-cover\"\n />\n <PlaceholderImage v-else class=\"w-100 h-100\" />\n </div>\n \n <!-- Item details -->\n <div class=\"mn-micro-negative flex flex-column w-100 o-hidden\">\n <p class=\"w-100 pd-micro truncate trimmed capitalize fw-medium\">{{ name || 'Unnamed Product' }}</p>\n \n <div class=\"flex pd-micro flex-v-center gap-micro w-max \">\n \t<span v-if=\"title\" :class=\"title_class\" class=\"t-dark d-inline-block fw-demi\">{{title}}</span>\n \t<span v-if=\"subtitle\" class=\"t-transp p-small d-inline-block fw-medium\">{{ subtitle }}</span>\n </div>\n \t<slot></slot>\n </div>\n <!-- <p>\n \n\n <span class=\"p-small t-transp\">\n <template v-if=\"product.quantity\">{{returnCurrency() }}{{product.price}} </template>\n × \n <template v-if=\"product.listing === 'rent' && rentDates.start && rentDates.end\">\n {{ rentalDays }} days\n </template>\n \n <template v-else>\n {{ product.quantity || 0 }} {{ product.unit || 'pcs' }}\n </template>\n </span>\n </p> -->\n \n <!-- Actions -->\n <div class=\"flex gap-thin\">\n <template v-for=\"(action, index) in actions\" :key=\"index\">\n <div \n :class=\"action.class || 'bg-light'\"\n class=\"radius-small pd-small flex-center flex aspect-1x1 cursor-pointer hover:scale-[1.05]\"\n @click=\"() => action.handler(item, index)\"\n >\n <component\n :is=\"action.component\"\n class=\"i-medium\"\n />\n </div>\n </template>\n <slot name=\"actions\"></slot>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { defineProps } from 'vue';\nimport PlaceholderImage from '@martyrs/src/modules/icons/placeholders/PlaceholderImage.vue';\nimport { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js';\n\nconst { formatPrice } = useGlobalMixins();\n\nconst props = defineProps({\n\timage: {\n type: String,\n },\n name: {\n type: String,\n },\n title: {\n type: String,\n },\n title_class: {\n \ttype: Array\n },\n subtitle: {\n type: String,\n },\n showThumbnail: {\n type: Boolean,\n default: true\n },\n actions: {\n type: Array,\n default: () => []\n // Expected format:\n // [\n // {\n // component: IconEdit,\n // handler: (item, index) => {},\n // class: 'bg-light' // optional custom class\n // }\n // ]\n }\n});\n</script>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+DA,UAAM,EAAE,YAAW,IAAK,gBAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { ref, computed, watch, onMounted, onUnmounted, createElementBlock, openBlock, createStaticVNode, createVNode, Transition, withCtx, createCommentVNode, withModifiers, createBlock } from "vue";
2
- import Loader from "../../../../components/Loader/Loader.vue2.js";
2
+ import Loader from "../../../../components/Loader/Loader.vue.js";
3
3
  /* empty css */
4
4
  import _export_sfc from "../../../../../../_virtual/_plugin-vue_export-helper.js";
5
5
  const _hoisted_1 = { class: "product-360-viewer" };
@@ -4,7 +4,7 @@ import { useStore } from "../../../core/views/store/core.store.js";
4
4
  import { state } from "../../../auth/views/store/auth.js";
5
5
  import { state as state$1, actions } from "../../store/categories.js";
6
6
  import { useGlobalMixins } from "../../../core/views/mixins/mixins.js";
7
- /* empty css */
7
+ /* empty css */
8
8
  import _sfc_main$2 from "../../../../components/Block/Block.vue.js";
9
9
  import _sfc_main$3 from "../../../../components/Feed/Feed.vue.js";
10
10
  import _sfc_main$4 from "../../../../components/Tree/Tree.vue.js";
@@ -1,14 +1,14 @@
1
1
  import { ref, onMounted, computed, onUnmounted, createElementBlock, createCommentVNode, openBlock, createBlock, createVNode, withCtx, createElementVNode, toDisplayString, unref, createTextVNode, Fragment, renderList } from "vue";
2
2
  import { useRoute, useRouter } from "vue-router";
3
- import _sfc_main$4 from "../../../icons/navigation/IconDelete.vue.js";
4
- import _sfc_main$3 from "../../../../components/Button/Button.vue.js";
3
+ import _sfc_main$3 from "../../../icons/navigation/IconDelete.vue.js";
4
+ import Button from "../../../../components/Button/Button.vue2.js";
5
5
  import Select from "../../../../components/Select/Select.vue.js";
6
6
  import UploadImage from "../../../../components/UploadImage/UploadImage.vue.js";
7
7
  import Field from "../../../../components/Field/Field.vue.js";
8
8
  import FieldTags from "../../../../components/FieldTags/FieldTags.vue.js";
9
- /* empty css */
10
- /* empty css */
9
+ /* empty css */
11
10
  /* empty css */
11
+ /* empty css */
12
12
  /* empty css */
13
13
  /* empty css */
14
14
  import _sfc_main$1 from "../../../icons/navigation/IconCheckmark.vue.js";
@@ -123,7 +123,7 @@ const _sfc_main = {
123
123
  }, {
124
124
  default: withCtx(() => [
125
125
  createElementVNode("h1", _hoisted_2, toDisplayString(unref(route).params.category ? "Edit Category" : "Add Category"), 1),
126
- createVNode(_sfc_main$3, {
126
+ createVNode(Button, {
127
127
  submit: onSubmit,
128
128
  class: "pd-small radius-medium bg-main t-black uppercase fw-medium"
129
129
  }, {
@@ -219,7 +219,7 @@ const _sfc_main = {
219
219
  onClick: () => state.current.translations.splice(index, 1),
220
220
  class: "radius-small pd-small flex-center flex aspect-1x1 bg-red"
221
221
  }, [
222
- createVNode(_sfc_main$4, { class: "i-medium" })
222
+ createVNode(_sfc_main$3, { class: "i-medium" })
223
223
  ], 8, _hoisted_5)
224
224
  ]);
225
225
  }), 128))
@@ -259,7 +259,7 @@ const _sfc_main = {
259
259
  onClick: () => state.current.filters.splice(index, 1),
260
260
  class: "radius-small pd-small flex-center flex aspect-1x1 bg-red"
261
261
  }, [
262
- createVNode(_sfc_main$4, { class: "i-medium" })
262
+ createVNode(_sfc_main$3, { class: "i-medium" })
263
263
  ], 8, _hoisted_6)
264
264
  ]);
265
265
  }), 128))
@@ -5,7 +5,7 @@ import { useGlobalMixins } from "../../../core/views/mixins/mixins.js";
5
5
  import { state as state$1 } from "../../../auth/views/store/auth.js";
6
6
  import { state, actions } from "../../store/products.js";
7
7
  import { state as state$2, actions as actions$1 } from "../../../orders/store/shopcart.js";
8
- /* empty css */
8
+ /* empty css */
9
9
  /* empty css */
10
10
  /* empty css */
11
11
  /* empty css */
@@ -1,19 +1,19 @@
1
1
  import { ref, onMounted, createElementBlock, createCommentVNode, unref, openBlock, createBlock, createElementVNode, withCtx, createVNode, toDisplayString, createTextVNode, isRef, withModifiers, Fragment, renderList } from "vue";
2
2
  import { useRoute, useRouter } from "vue-router";
3
3
  import _sfc_main$1 from "../../../../components/Block/Block.vue.js";
4
- import _sfc_main$3 from "../../../../components/Tab/Tab.vue2.js";
4
+ import _sfc_main$2 from "../../../../components/Tab/Tab.vue2.js";
5
5
  import Field from "../../../../components/Field/Field.vue.js";
6
6
  import Select from "../../../../components/Select/Select.vue.js";
7
- import _sfc_main$2 from "../../../../components/Button/Button.vue.js";
8
- import _sfc_main$4 from "../../../../components/EditImages/EditImages.vue2.js";
7
+ import Button from "../../../../components/Button/Button.vue2.js";
8
+ import _sfc_main$3 from "../../../../components/EditImages/EditImages.vue2.js";
9
9
  import BlockMultiselect from "../../../core/views/components/blocks/BlockMultiselect.vue.js";
10
- import _sfc_main$5 from "../../../icons/navigation/IconCross.vue.js";
11
- import _sfc_main$a from "../../../icons/navigation/IconDelete.vue.js";
12
- import _sfc_main$7 from "../sections/EditVariants.vue.js";
13
- import _sfc_main$6 from "../sections/EditAttributes.vue.js";
14
- import _sfc_main$8 from "../sections/EditDiscounts.vue.js";
10
+ import _sfc_main$4 from "../../../icons/navigation/IconCross.vue.js";
11
+ import _sfc_main$9 from "../../../icons/navigation/IconDelete.vue.js";
12
+ import _sfc_main$6 from "../sections/EditVariants.vue.js";
13
+ import _sfc_main$5 from "../sections/EditAttributes.vue.js";
14
+ import _sfc_main$7 from "../sections/EditDiscounts.vue.js";
15
15
  /* empty css */
16
- import _sfc_main$9 from "../sections/EditRecommended.vue.js";
16
+ import _sfc_main$8 from "../sections/EditRecommended.vue.js";
17
17
  import { useStore, setError } from "../../../core/views/store/core.store.js";
18
18
  import { state as state$2 } from "../../../auth/views/store/auth.js";
19
19
  import { mutations, actions, state } from "../../store/products.js";
@@ -131,7 +131,7 @@ const _sfc_main = {
131
131
  }, {
132
132
  default: withCtx(() => [
133
133
  createElementVNode("h2", _hoisted_2, toDisplayString(unref(route).params.product ? state.current.name : "Create Product"), 1),
134
- unref(route).params.product ? (openBlock(), createBlock(_sfc_main$2, {
134
+ unref(route).params.product ? (openBlock(), createBlock(Button, {
135
135
  key: 0,
136
136
  submit: onDelete,
137
137
  callback: redirectTo,
@@ -142,7 +142,7 @@ const _sfc_main = {
142
142
  ])),
143
143
  _: 1
144
144
  })) : createCommentVNode("", true),
145
- createVNode(_sfc_main$2, {
145
+ createVNode(Button, {
146
146
  submit: onSubmit,
147
147
  callback: redirectTo,
148
148
  class: "w-10 w-max-20r w-min-8r bg-main"
@@ -155,7 +155,7 @@ const _sfc_main = {
155
155
  ]),
156
156
  _: 1
157
157
  })) : createCommentVNode("", true),
158
- unref(route).params.product ? (openBlock(), createBlock(_sfc_main$3, {
158
+ unref(route).params.product ? (openBlock(), createBlock(_sfc_main$2, {
159
159
  key: 1,
160
160
  selected: unref(activeTab),
161
161
  "onUpdate:selected": _cache[0] || (_cache[0] = ($event) => isRef(activeTab) ? activeTab.value = $event : activeTab = $event),
@@ -175,7 +175,7 @@ const _sfc_main = {
175
175
  class: "h-min"
176
176
  }, {
177
177
  default: withCtx(() => [
178
- createVNode(_sfc_main$4, {
178
+ createVNode(_sfc_main$3, {
179
179
  images: state.current.images,
180
180
  uploadPath: "photos",
181
181
  "onUpdate:images": _cache[1] || (_cache[1] = (imagesNew) => {
@@ -233,7 +233,7 @@ const _sfc_main = {
233
233
  onClick: withModifiers(clear, ["stop"]),
234
234
  class: "i-small pd-micro bg-red radius-extra flex-center flex aspect-1x1 hover:scale-[1.05]"
235
235
  }, [
236
- createVNode(_sfc_main$5, { class: "i-micro fill-white" })
236
+ createVNode(_sfc_main$4, { class: "i-micro fill-white" })
237
237
  ], 8, _hoisted_6)
238
238
  ])
239
239
  ]),
@@ -343,22 +343,22 @@ const _sfc_main = {
343
343
  ]),
344
344
  _: 1
345
345
  })) : createCommentVNode("", true),
346
- createVNode(_sfc_main$6, {
346
+ createVNode(_sfc_main$5, {
347
347
  attributes: state.current.attributes,
348
348
  "onUpdate:attributes": _cache[11] || (_cache[11] = ($event) => state.current.attributes = $event)
349
349
  }, null, 8, ["attributes"])
350
350
  ])) : createCommentVNode("", true),
351
- unref(activeTab) === "variants" ? (openBlock(), createBlock(_sfc_main$7, {
351
+ unref(activeTab) === "variants" ? (openBlock(), createBlock(_sfc_main$6, {
352
352
  key: 3,
353
353
  variants: state.current.variants,
354
354
  "onUpdate:variants": _cache[12] || (_cache[12] = ($event) => state.current.variants = $event)
355
355
  }, null, 8, ["variants"])) : createCommentVNode("", true),
356
- unref(activeTab) === "discounts" ? (openBlock(), createBlock(_sfc_main$8, {
356
+ unref(activeTab) === "discounts" ? (openBlock(), createBlock(_sfc_main$7, {
357
357
  key: 4,
358
358
  discounts: state.current.discounts,
359
359
  "onUpdate:discounts": _cache[13] || (_cache[13] = ($event) => state.current.discounts = $event)
360
360
  }, null, 8, ["discounts"])) : createCommentVNode("", true),
361
- unref(activeTab) === "recommended" ? (openBlock(), createBlock(_sfc_main$9, {
361
+ unref(activeTab) === "recommended" ? (openBlock(), createBlock(_sfc_main$8, {
362
362
  key: 5,
363
363
  recommended: state.current.recommended,
364
364
  "onUpdate:recommended": _cache[14] || (_cache[14] = ($event) => state.current.recommended = $event),
@@ -398,7 +398,7 @@ const _sfc_main = {
398
398
  class: "w-100 bg-white radius-small pd-medium"
399
399
  }, null, 8, ["field", "onUpdate:field"]),
400
400
  createElementVNode("div", _hoisted_14, [
401
- createVNode(_sfc_main$a, {
401
+ createVNode(_sfc_main$9, {
402
402
  onClick: () => state.current.translations.splice(index, 1),
403
403
  class: "i-medium"
404
404
  }, null, 8, ["onClick"])
@@ -409,7 +409,7 @@ const _sfc_main = {
409
409
  _: 1
410
410
  }, 8, ["actions"])) : createCommentVNode("", true),
411
411
  createElementVNode("div", _hoisted_15, [
412
- unref(route).params.product ? (openBlock(), createBlock(_sfc_main$2, {
412
+ unref(route).params.product ? (openBlock(), createBlock(Button, {
413
413
  key: 0,
414
414
  submit: onDelete,
415
415
  class: "bg-red t-white w-100"
@@ -419,7 +419,7 @@ const _sfc_main = {
419
419
  ])),
420
420
  _: 1
421
421
  })) : createCommentVNode("", true),
422
- createVNode(_sfc_main$2, {
422
+ createVNode(Button, {
423
423
  submit: onSubmit,
424
424
  class: "w-100 bg-main"
425
425
  }, {
@@ -22,11 +22,11 @@ import { state as state$1, actions } from "../../store/products.js";
22
22
  const _hoisted_1 = { class: "pos-relative" };
23
23
  const _hoisted_2 = {
24
24
  key: 0,
25
- class: "pd-medium flex-v-center flex-nowrap flex"
25
+ class: "pd-medium br-b-1px br-grey flex-v-center flex-nowrap flex"
26
26
  };
27
27
  const _hoisted_3 = { class: "mn-r-medium" };
28
- const _hoisted_4 = { class: "cols-[1fr_3fr] mobile:cols-1 br-1px br-light z-index-3 pos-relative" };
29
- const _hoisted_5 = { class: "o-y-scroll br-r-1px br-light pd-medium z-index-2 desktop-only h-100 pos-relative" };
28
+ const _hoisted_4 = { class: "cols-[1fr_3fr] mobile:cols-1 z-index-3 pos-relative" };
29
+ const _hoisted_5 = { class: "o-y-scroll br-r-1px br-grey pd-medium z-index-2 desktop-only h-100 pos-relative" };
30
30
  const _hoisted_6 = { class: "w-100 o-y-scroll h-100" };
31
31
  const _hoisted_7 = {
32
32
  key: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"Products.vue.js","sources":["../../../../../../../src/modules/products/components/pages/Products.vue"],"sourcesContent":["<template>\n <div class=\"pos-relative\">\n <header \n v-if=\"route.name !== 'Organization' && !MOBILE_APP\"\n class=\"pd-medium flex-v-center flex-nowrap flex\"\n >\n <h2 class=\"mn-r-medium\">{{ currentCategory ? currentCategory.name : 'All Products' }}</h2>\n <button \n v-if=\"route.params._id && hasAccess(route.params._id, 'products', 'create', auth.state.accesses, auth.state.access.roles)\"\n @click=\"$router.push({\n name: route.params?._id ? 'Organization_ProductAdd' : 'ProductAdd'\n })\" \n class=\"radius-extra i-big hover:scale-[1.05] cursor-pointer t-white bg-second\">\n +\n </button>\n </header>\n\n <div class=\"cols-[1fr_3fr] mobile:cols-1 br-1px br-light z-index-3 pos-relative\">\n\n <div class=\"o-y-scroll br-r-1px br-light pd-medium z-index-2 desktop-only h-100 pos-relative\">\n <div class=\"w-100 o-y-scroll h-100\">\n <!-- Категории -->\n <div class=\"mn-b-medium\" v-if=\"currentCategories.length > 0\">\n <h4 class=\"mn-b-medium\">\n {{ route.params.categoryPath ? 'Subcategories' : 'Categories' }}\n </h4>\n <div class=\"gap-micro\">\n <div\n v-for=\"category in currentCategories\"\n :key=\"category._id\"\n @click=\"selectCategory(category)\"\n class=\"cursor-pointer hover:underline mn-b-regular ease\"\n >\n {{ category.name }}\n <br>\n <span v-for=\"subcategory in category.children\">{{subcategory.name}}</span>\n </div>\n </div>\n </div>\n\n <!-- Фильтры категории -->\n <Spoiler \n v-for=\"filter in categoryFilters\"\n :key=\"filter.name\"\n class=\"o-hidden mn-b-medium\"\n :status=\"true\"\n >\n <template #header=\"{ isOpen }\">\n <div class=\"cursor-pointer w-100 flex-v-center flex-nowrap flex\">\n <h4 class=\"w-100\">{{ filter.name }}</h4>\n <div class=\"h-2r w-2r flex-child-auto aspect-1x1 flex-center flex bg-light radius-extra\">\n <IconChevronBottom :class=\"{ 'rotate-180deg mn-t-micro-negative': isOpen }\" fill=\"rgb(var(--black))\" class=\"i-medium\"/>\n </div>\n </div>\n </template>\n\n <template #content>\n <div class=\"mn-t-small\">\n <Checkbox \n v-for=\"option in filter.options\"\n :key=\"option.text || option\"\n v-model:radio=\"selectedFilters[filter.name]\"\n :label=\"option.text || option\"\n :value=\"option.text || option\"\n mode=\"checkbox\"\n class=\"mn-b-micro\"\n />\n </div>\n </template>\n </Spoiler>\n \n <!-- Цена за сутки -->\n <Spoiler \n class=\"o-hidden mn-b-medium\"\n :status=\"true\"\n >\n <template #header=\"{ isOpen }\">\n <div class=\"cursor-pointer w-100 flex-v-center flex-nowrap flex\">\n <h4 class=\"w-100\"> Price</h4>\n <div class=\"h-2r w-2r flex-child-auto aspect-1x1 flex-center flex bg-light radius-extra\">\n <IconChevronBottom :class=\"{ 'rotate-180deg mn-t-micro-negative': isOpen }\" fill=\"rgb(var(--black))\" class=\"i-medium\"/>\n </div>\n </div>\n </template>\n\n <template #content>\n <div class=\"mn-t-small flex gap-thin\">\n <Field\n v-model:field=\"selectedFilters.price.min\"\n placeholder=\"From\"\n type=\"number\"\n :label=\"returnCurrency()\"\n class=\"w-50 bg-light pd-small radius-small\"\n />\n <Field\n v-model:field=\"selectedFilters.price.max\"\n placeholder=\"To\"\n type=\"number\"\n :label=\"returnCurrency()\"\n class=\"w-50 bg-light pd-small radius-small\"\n />\n </div>\n </template>\n </Spoiler>\n\n <!-- Доступность -->\n <Spoiler \n class=\"o-hidden mn-b-medium\"\n :status=\"true\"\n >\n <template #header=\"{ isOpen }\">\n <div class=\"cursor-pointer w-100 flex-v-center flex-nowrap flex\">\n <h4 class=\"w-100\">Availability</h4>\n <div class=\"h-2r w-2r flex-child-auto aspect-1x1 flex-center flex bg-light radius-extra\">\n <IconChevronBottom :class=\"{ 'rotate-180deg mn-t-micro-negative': isOpen }\" fill=\"rgb(var(--black))\" class=\"i-medium\"/>\n </div>\n </div>\n </template>\n\n <template #content>\n <div class=\"mn-t-small\">\n <div \n @click=\"() => { tempSelectedDates = selectedFilters.availability; showDatePickerPopup = true; }\"\n :class=\"{ 'bg-light': selectedFilters?.availability }\"\n class=\"pd-small field-wrapper radius-small bg-light cursor-pointer hover:bg-light ease flex-v-center flex gap-thin\"\n >\n <IconCalendar class=\"i-medium\" />\n <span class=\"h-1r\">{{ selectedFilters.availability ? `${formatDate(selectedFilters.availability.start, { dayMonth: true, language: 'en' })} - ${formatDate(selectedFilters.availability.end, { dayMonth: true, language: 'en' })}` : 'Select dates'}}</span>\n </div>\n </div>\n </template>\n </Spoiler>\n\n <!-- Кнопка очистки фильтров -->\n <button \n @click=\"clearAllFilters\"\n class=\"bg-main w-100 button mn-t-medium\"\n >\n Clear Filters\n </button>\n </div>\n </div>\n\n <div class=\"w-100 flex flex-column pd-thin pos-relative o-hidden\">\n \n <slot></slot>\n\n <div class=\"mn-b-thin mobile-only w-100 o-y-scroll scroll-hide scroll-snap-x-mandatory scroll-pd-regular\">\n <div class=\"gap-thin flex-nowrap flex\">\n <div\n v-for=\"category in currentCategories\"\n :key=\"category._id\"\n @click=\"selectCategory(category)\"\n class=\" flex-child-default bg-light flex ws-nowrap pd-medium radius-medium cursor-pointer hover:bg-light ease\"\n >\n {{ category.name }}\n </div>\n </div>\n </div>\n\n <Feed\n :search=\"true\"\n v-model:sort=\"products.state.sort\"\n :showLoadMore=\"false\"\n :states=\"{\n empty: {\n title: 'No Products Found',\n description: 'Currently, there are no products available.'\n }\n }\"\n :store=\"{\n read: (options) => products.actions.read(options),\n state: products.state\n }\"\n :options=\"{\n limit: 16,\n owner: route.name?.includes('Organization') ? route.params._id : null,\n lookup: ['variants','rents','inventory'],\n categories: route.params.categoryPath ? `/${route.params.categoryPath}` : null,\n filters: processedFilters,\n priceMin: selectedFilters.price?.min,\n priceMax: selectedFilters.price?.max,\n dateStart: selectedFilters.availability?.start,\n dateEnd: selectedFilters.availability?.end\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"\"\n \n >\n <div class=\"mn-b-thin mobile-only\">\n <Filters\n v-model:filters=\"availableFilters\"\n v-model:selected=\"selectedFilters\"\n class=\"\"\n />\n </div>\n <div class=\"cols-4 mobile:cols-2 z-index-1 pos-relative w-100 rows-1 gap-thin\">\n <router-link\n v-for=\"product in items\"\n :to=\"route.params._id ? `/organizations/${route.params._id}/products/${product._id}` : `/products/${product._id}`\"\n class=\"pos-relative h-100 w-100\"\n >\n <CardProduct\n :key=\"product._id\"\n :product=\"product\"\n :user=\"auth.state.access\"\n :organization=\"route.params._id\"\n :access=\"hasAccess(route.params._id, 'products', 'edit', auth.state.accesses, auth.state.access.roles)\"\n class=\"pos-relative h-100 w-100 bg-light\"\n />\n </router-link>\n </div>\n </Feed>\n\n </div>\n </div>\n \n <!-- Date Picker Popup -->\n <Popup\n :isPopupOpen=\"showDatePickerPopup\"\n @close-popup=\"showDatePickerPopup = false\"\n class=\"pd-medium bg-white radius-medium\"\n style=\"min-width: 350px;\"\n >\n <h3 class=\"mn-b-medium\">Select Date Range</h3>\n \n <Calendar\n v-model:date=\"tempSelectedDates\"\n :allowRange=\"true\"\n :disablePastDates=\"true\"\n class=\"mn-b-medium radius-small bg-light\"\n />\n \n <div class=\"flex gap-small\">\n <button \n @click=\"showDatePickerPopup = false\"\n class=\"bg-light button flex-child-full\"\n >\n Cancel\n </button>\n <button \n @click=\"applyDateFilter\"\n class=\"bg-main button w-100 flex-child-full\"\n >\n Apply\n </button>\n \n </div>\n </Popup>\n</div>\n\n</template>\n\n\n<script setup=\"props\">\n // Import libs\n import { ref, computed, watch, onMounted, onUnmounted } from 'vue'\n import { useRoute, useRouter } from 'vue-router'\n\n // Import components\n import Tab from '@martyrs/src/components/Tab/Tab.vue'\n import Feed from '@martyrs/src/components/Feed/Feed.vue'\n\n import FilterProducts from '@martyrs/src/modules/products/components/sections/FilterProducts.vue'\n import BlockSearch from '@martyrs/src/modules/core/views/components/blocks/BlockSearch.vue'\n import Filters from '@martyrs/src/modules/core/views/components/sections/Filters.vue'\n import Spoiler from \"@martyrs/src/components/Spoiler/Spoiler.vue\"\n import Field from \"@martyrs/src/components/Field/Field.vue\"\n import Calendar from \"@martyrs/src/components/Calendar/Calendar.vue\"\n import Popup from \"@martyrs/src/components/Popup/Popup.vue\"\n import Checkbox from \"@martyrs/src/components/Checkbox/Checkbox.vue\"\n\n import CardProduct from '@martyrs/src/modules/products/components/blocks/CardProduct.vue'\n\n import IconPlus from '@martyrs/src/modules/icons/navigation/IconPlus.vue'\n import IconChevronBottom from '@martyrs/src/modules/icons/navigation/IconChevronBottom.vue'\n import IconCalendar from '@martyrs/src/modules/icons/entities/IconCalendar.vue'\n\n\n // Accessing router and store\n import * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\n import { useStore } from '@martyrs/src/modules/core/views/store/core.store.js';\n import * as products from '@martyrs/src/modules/products/store/products.js';\n import * as categories from '@martyrs/src/modules/products/store/categories.js';\n import { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js';\n\n const emits = defineEmits(['page-loading', 'page-loaded']);\n const route = useRoute()\n const router = useRouter()\n const store = useStore()\n const { generateFilters, formatDate, hasAccess, returnCurrency } = useGlobalMixins()\n\n // Категории и фильтры\n const currentCategories = ref([]);\n const currentCategory = ref(null);\n const categoryFilters = ref([]);\n // const selectedFilters = ref({});\n\n const availableFilters = ref([\n {\n title: 'Price',\n value: 'price',\n type: 'range',\n minPlaceholder: 'From',\n maxPlaceholder: 'To'\n },\n {\n title: 'Availability',\n value: 'availability',\n type: 'date'\n }\n ])\n\n const selectedFilters = ref({\n price: { min: '', max: '' },\n availability: null\n })\n\n const showDatePickerPopup = ref(false);\n const tempSelectedDates = ref(null);\n\n // Computed property for processed filters\n const processedFilters = computed(() => {\n const filters = [];\n \n // Обрабатываем фильтры категорий\n Object.entries(selectedFilters.value).forEach(([key, value]) => {\n if (key === 'price' || key === 'availability') return; // эти обрабатываются отдельно\n \n if (Array.isArray(value) && value.length > 0) {\n filters.push({\n parameter: key,\n values: value,\n caseSensitive: false\n });\n } else if (value && typeof value === 'string' && value.trim() !== '') {\n filters.push({\n parameter: key,\n values: [value],\n caseSensitive: false\n });\n }\n });\n \n return filters.length > 0 ? JSON.stringify(filters) : '';\n });\n\n\n\n\n const processedLookups = computed(() => {\n const lookups = ['variants'];\n if (selectedFilters.value.availability) {\n lookups.push('rents');\n }\n return lookups;\n });\n\n const loadCategoryData = async () => {\n const categoryPath = route.params.categoryPath;\n \n // Очищаем фильтры категории из предыдущей загрузки\n availableFilters.value = availableFilters.value.filter(f => f.value === 'price' || f.value === 'availability');\n \n try {\n if (categoryPath) {\n // Загружаем категорию и её прямых детей\n const result = await categories.actions.read({ \n url: `/${categoryPath}`,\n depth: 1,\n tree: false\n });\n \n if (result.length > 0) {\n currentCategory.value = result[0];\n currentCategories.value = result[0].children || [];\n categoryFilters.value = result[0].filters || [];\n \n // Добавляем фильтры категории в availableFilters\n (result[0].filters || []).forEach(filter => {\n availableFilters.value.push({\n title: filter.name,\n value: filter.name,\n type: 'checkbox',\n options: (filter.options || []).map(option => ({\n label: typeof option === 'string' ? option : option.text,\n value: typeof option === 'string' ? option : option.text\n }))\n });\n // Инициализируем массив для фильтра\n if (!selectedFilters.value[filter.name]) {\n selectedFilters.value[filter.name] = [];\n }\n });\n }\n } else {\n // Загружаем только корневые категории\n const result = await categories.actions.read({ \n root: true,\n tree: false\n });\n \n currentCategories.value = result;\n categoryFilters.value = [];\n }\n } catch (error) {\n console.error('Error loading categories:', error);\n currentCategories.value = [];\n categoryFilters.value = [];\n }\n };\n\n // Функция для выбора категории\n const selectCategory = (category) => {\n const categoryPath = category.url ? category.url.substring(1) : '';\n \n if (!categoryPath) {\n console.warn('No URL found for category:', category);\n return;\n }\n \n // Переходим к странице категории используя wildcard роут\n if (route.params._id) {\n router.push(`/organizations/${route.params._id}/products/categories/${categoryPath}`);\n } else {\n router.push(`/products/categories/${categoryPath}`);\n }\n };\n\n\n // Функция применения фильтра дат\n const applyDateFilter = () => {\n selectedFilters.value.availability = tempSelectedDates.value;\n showDatePickerPopup.value = false;\n };\n \n // Функция очистки всех фильтров\n const clearAllFilters = () => {\n selectedFilters.value.price = { min: '', max: '' };\n selectedFilters.value.availability = null;\n \n // Очищаем фильтры категорий\n categoryFilters.value.forEach(filter => {\n selectedFilters.value[filter.name] = [];\n });\n };\n\n if (route.params?._id) {\n store.core.state.navigation_bar.actions = [{\n component: IconPlus,\n props: {\n fill: \"rgb(var(--main))\"\n },\n condition: () => auth.state.user && auth.state.user._id,\n action: () => route.params._id ? router.push({ name: 'Organization_ProductAdd', params: { _id: route.params._id} }) : router.push({ name: 'ProductAdd' })\n }];\n }\n\n onMounted(async () => {\n emits('page-loading');\n await loadCategoryData();\n emits('page-loaded');\n });\n\n onUnmounted(() => {\n store.core.state.navigation_bar.actions = [];\n });\n\n</script>\n\n<style lang=\"scss\">\n\n\n</style>\n"],"names":["categories.actions","IconPlus","auth.state"],"mappings":"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"}
1
+ {"version":3,"file":"Products.vue.js","sources":["../../../../../../../src/modules/products/components/pages/Products.vue"],"sourcesContent":["<template>\n <div class=\"pos-relative\">\n <header \n v-if=\"route.name !== 'Organization' && !MOBILE_APP\"\n class=\"pd-medium br-b-1px br-grey flex-v-center flex-nowrap flex\"\n >\n <h2 class=\"mn-r-medium\">{{ currentCategory ? currentCategory.name : 'All Products' }}</h2>\n <button \n v-if=\"route.params._id && hasAccess(route.params._id, 'products', 'create', auth.state.accesses, auth.state.access.roles)\"\n @click=\"$router.push({\n name: route.params?._id ? 'Organization_ProductAdd' : 'ProductAdd'\n })\" \n class=\"radius-extra i-big hover:scale-[1.05] cursor-pointer t-white bg-second\">\n +\n </button>\n </header>\n\n <div class=\"cols-[1fr_3fr] mobile:cols-1 z-index-3 pos-relative\">\n\n <div class=\"o-y-scroll br-r-1px br-grey pd-medium z-index-2 desktop-only h-100 pos-relative\">\n <div class=\"w-100 o-y-scroll h-100\">\n <!-- Категории -->\n <div class=\"mn-b-medium\" v-if=\"currentCategories.length > 0\">\n <h4 class=\"mn-b-medium\">\n {{ route.params.categoryPath ? 'Subcategories' : 'Categories' }}\n </h4>\n <div class=\"gap-micro\">\n <div\n v-for=\"category in currentCategories\"\n :key=\"category._id\"\n @click=\"selectCategory(category)\"\n class=\"cursor-pointer hover:underline mn-b-regular ease\"\n >\n {{ category.name }}\n <br>\n <span v-for=\"subcategory in category.children\">{{subcategory.name}}</span>\n </div>\n </div>\n </div>\n\n <!-- Фильтры категории -->\n <Spoiler \n v-for=\"filter in categoryFilters\"\n :key=\"filter.name\"\n class=\"o-hidden mn-b-medium\"\n :status=\"true\"\n >\n <template #header=\"{ isOpen }\">\n <div class=\"cursor-pointer w-100 flex-v-center flex-nowrap flex\">\n <h4 class=\"w-100\">{{ filter.name }}</h4>\n <div class=\"h-2r w-2r flex-child-auto aspect-1x1 flex-center flex bg-light radius-extra\">\n <IconChevronBottom :class=\"{ 'rotate-180deg mn-t-micro-negative': isOpen }\" fill=\"rgb(var(--black))\" class=\"i-medium\"/>\n </div>\n </div>\n </template>\n\n <template #content>\n <div class=\"mn-t-small\">\n <Checkbox \n v-for=\"option in filter.options\"\n :key=\"option.text || option\"\n v-model:radio=\"selectedFilters[filter.name]\"\n :label=\"option.text || option\"\n :value=\"option.text || option\"\n mode=\"checkbox\"\n class=\"mn-b-micro\"\n />\n </div>\n </template>\n </Spoiler>\n \n <!-- Цена за сутки -->\n <Spoiler \n class=\"o-hidden mn-b-medium\"\n :status=\"true\"\n >\n <template #header=\"{ isOpen }\">\n <div class=\"cursor-pointer w-100 flex-v-center flex-nowrap flex\">\n <h4 class=\"w-100\"> Price</h4>\n <div class=\"h-2r w-2r flex-child-auto aspect-1x1 flex-center flex bg-light radius-extra\">\n <IconChevronBottom :class=\"{ 'rotate-180deg mn-t-micro-negative': isOpen }\" fill=\"rgb(var(--black))\" class=\"i-medium\"/>\n </div>\n </div>\n </template>\n\n <template #content>\n <div class=\"mn-t-small flex gap-thin\">\n <Field\n v-model:field=\"selectedFilters.price.min\"\n placeholder=\"From\"\n type=\"number\"\n :label=\"returnCurrency()\"\n class=\"w-50 bg-light pd-small radius-small\"\n />\n <Field\n v-model:field=\"selectedFilters.price.max\"\n placeholder=\"To\"\n type=\"number\"\n :label=\"returnCurrency()\"\n class=\"w-50 bg-light pd-small radius-small\"\n />\n </div>\n </template>\n </Spoiler>\n\n <!-- Доступность -->\n <Spoiler \n class=\"o-hidden mn-b-medium\"\n :status=\"true\"\n >\n <template #header=\"{ isOpen }\">\n <div class=\"cursor-pointer w-100 flex-v-center flex-nowrap flex\">\n <h4 class=\"w-100\">Availability</h4>\n <div class=\"h-2r w-2r flex-child-auto aspect-1x1 flex-center flex bg-light radius-extra\">\n <IconChevronBottom :class=\"{ 'rotate-180deg mn-t-micro-negative': isOpen }\" fill=\"rgb(var(--black))\" class=\"i-medium\"/>\n </div>\n </div>\n </template>\n\n <template #content>\n <div class=\"mn-t-small\">\n <div \n @click=\"() => { tempSelectedDates = selectedFilters.availability; showDatePickerPopup = true; }\"\n :class=\"{ 'bg-light': selectedFilters?.availability }\"\n class=\"pd-small field-wrapper radius-small bg-light cursor-pointer hover:bg-light ease flex-v-center flex gap-thin\"\n >\n <IconCalendar class=\"i-medium\" />\n <span class=\"h-1r\">{{ selectedFilters.availability ? `${formatDate(selectedFilters.availability.start, { dayMonth: true, language: 'en' })} - ${formatDate(selectedFilters.availability.end, { dayMonth: true, language: 'en' })}` : 'Select dates'}}</span>\n </div>\n </div>\n </template>\n </Spoiler>\n\n <!-- Кнопка очистки фильтров -->\n <button \n @click=\"clearAllFilters\"\n class=\"bg-main w-100 button mn-t-medium\"\n >\n Clear Filters\n </button>\n </div>\n </div>\n\n <div class=\"w-100 flex flex-column pd-thin pos-relative o-hidden\">\n \n <slot></slot>\n\n <div class=\"mn-b-thin mobile-only w-100 o-y-scroll scroll-hide scroll-snap-x-mandatory scroll-pd-regular\">\n <div class=\"gap-thin flex-nowrap flex\">\n <div\n v-for=\"category in currentCategories\"\n :key=\"category._id\"\n @click=\"selectCategory(category)\"\n class=\" flex-child-default bg-light flex ws-nowrap pd-medium radius-medium cursor-pointer hover:bg-light ease\"\n >\n {{ category.name }}\n </div>\n </div>\n </div>\n\n <Feed\n :search=\"true\"\n v-model:sort=\"products.state.sort\"\n :showLoadMore=\"false\"\n :states=\"{\n empty: {\n title: 'No Products Found',\n description: 'Currently, there are no products available.'\n }\n }\"\n :store=\"{\n read: (options) => products.actions.read(options),\n state: products.state\n }\"\n :options=\"{\n limit: 16,\n owner: route.name?.includes('Organization') ? route.params._id : null,\n lookup: ['variants','rents','inventory'],\n categories: route.params.categoryPath ? `/${route.params.categoryPath}` : null,\n filters: processedFilters,\n priceMin: selectedFilters.price?.min,\n priceMax: selectedFilters.price?.max,\n dateStart: selectedFilters.availability?.start,\n dateEnd: selectedFilters.availability?.end\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"\"\n \n >\n <div class=\"mn-b-thin mobile-only\">\n <Filters\n v-model:filters=\"availableFilters\"\n v-model:selected=\"selectedFilters\"\n class=\"\"\n />\n </div>\n <div class=\"cols-4 mobile:cols-2 z-index-1 pos-relative w-100 rows-1 gap-thin\">\n <router-link\n v-for=\"product in items\"\n :to=\"route.params._id ? `/organizations/${route.params._id}/products/${product._id}` : `/products/${product._id}`\"\n class=\"pos-relative h-100 w-100\"\n >\n <CardProduct\n :key=\"product._id\"\n :product=\"product\"\n :user=\"auth.state.access\"\n :organization=\"route.params._id\"\n :access=\"hasAccess(route.params._id, 'products', 'edit', auth.state.accesses, auth.state.access.roles)\"\n class=\"pos-relative h-100 w-100 bg-light\"\n />\n </router-link>\n </div>\n </Feed>\n\n </div>\n </div>\n \n <!-- Date Picker Popup -->\n <Popup\n :isPopupOpen=\"showDatePickerPopup\"\n @close-popup=\"showDatePickerPopup = false\"\n class=\"pd-medium bg-white radius-medium\"\n style=\"min-width: 350px;\"\n >\n <h3 class=\"mn-b-medium\">Select Date Range</h3>\n \n <Calendar\n v-model:date=\"tempSelectedDates\"\n :allowRange=\"true\"\n :disablePastDates=\"true\"\n class=\"mn-b-medium radius-small bg-light\"\n />\n \n <div class=\"flex gap-small\">\n <button \n @click=\"showDatePickerPopup = false\"\n class=\"bg-light button flex-child-full\"\n >\n Cancel\n </button>\n <button \n @click=\"applyDateFilter\"\n class=\"bg-main button w-100 flex-child-full\"\n >\n Apply\n </button>\n \n </div>\n </Popup>\n</div>\n\n</template>\n\n\n<script setup=\"props\">\n // Import libs\n import { ref, computed, watch, onMounted, onUnmounted } from 'vue'\n import { useRoute, useRouter } from 'vue-router'\n\n // Import components\n import Tab from '@martyrs/src/components/Tab/Tab.vue'\n import Feed from '@martyrs/src/components/Feed/Feed.vue'\n\n import FilterProducts from '@martyrs/src/modules/products/components/sections/FilterProducts.vue'\n import BlockSearch from '@martyrs/src/modules/core/views/components/blocks/BlockSearch.vue'\n import Filters from '@martyrs/src/modules/core/views/components/sections/Filters.vue'\n import Spoiler from \"@martyrs/src/components/Spoiler/Spoiler.vue\"\n import Field from \"@martyrs/src/components/Field/Field.vue\"\n import Calendar from \"@martyrs/src/components/Calendar/Calendar.vue\"\n import Popup from \"@martyrs/src/components/Popup/Popup.vue\"\n import Checkbox from \"@martyrs/src/components/Checkbox/Checkbox.vue\"\n\n import CardProduct from '@martyrs/src/modules/products/components/blocks/CardProduct.vue'\n\n import IconPlus from '@martyrs/src/modules/icons/navigation/IconPlus.vue'\n import IconChevronBottom from '@martyrs/src/modules/icons/navigation/IconChevronBottom.vue'\n import IconCalendar from '@martyrs/src/modules/icons/entities/IconCalendar.vue'\n\n\n // Accessing router and store\n import * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\n import { useStore } from '@martyrs/src/modules/core/views/store/core.store.js';\n import * as products from '@martyrs/src/modules/products/store/products.js';\n import * as categories from '@martyrs/src/modules/products/store/categories.js';\n import { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js';\n\n const emits = defineEmits(['page-loading', 'page-loaded']);\n const route = useRoute()\n const router = useRouter()\n const store = useStore()\n const { generateFilters, formatDate, hasAccess, returnCurrency } = useGlobalMixins()\n\n // Категории и фильтры\n const currentCategories = ref([]);\n const currentCategory = ref(null);\n const categoryFilters = ref([]);\n // const selectedFilters = ref({});\n\n const availableFilters = ref([\n {\n title: 'Price',\n value: 'price',\n type: 'range',\n minPlaceholder: 'From',\n maxPlaceholder: 'To'\n },\n {\n title: 'Availability',\n value: 'availability',\n type: 'date'\n }\n ])\n\n const selectedFilters = ref({\n price: { min: '', max: '' },\n availability: null\n })\n\n const showDatePickerPopup = ref(false);\n const tempSelectedDates = ref(null);\n\n // Computed property for processed filters\n const processedFilters = computed(() => {\n const filters = [];\n \n // Обрабатываем фильтры категорий\n Object.entries(selectedFilters.value).forEach(([key, value]) => {\n if (key === 'price' || key === 'availability') return; // эти обрабатываются отдельно\n \n if (Array.isArray(value) && value.length > 0) {\n filters.push({\n parameter: key,\n values: value,\n caseSensitive: false\n });\n } else if (value && typeof value === 'string' && value.trim() !== '') {\n filters.push({\n parameter: key,\n values: [value],\n caseSensitive: false\n });\n }\n });\n \n return filters.length > 0 ? JSON.stringify(filters) : '';\n });\n\n\n\n\n const processedLookups = computed(() => {\n const lookups = ['variants'];\n if (selectedFilters.value.availability) {\n lookups.push('rents');\n }\n return lookups;\n });\n\n const loadCategoryData = async () => {\n const categoryPath = route.params.categoryPath;\n \n // Очищаем фильтры категории из предыдущей загрузки\n availableFilters.value = availableFilters.value.filter(f => f.value === 'price' || f.value === 'availability');\n \n try {\n if (categoryPath) {\n // Загружаем категорию и её прямых детей\n const result = await categories.actions.read({ \n url: `/${categoryPath}`,\n depth: 1,\n tree: false\n });\n \n if (result.length > 0) {\n currentCategory.value = result[0];\n currentCategories.value = result[0].children || [];\n categoryFilters.value = result[0].filters || [];\n \n // Добавляем фильтры категории в availableFilters\n (result[0].filters || []).forEach(filter => {\n availableFilters.value.push({\n title: filter.name,\n value: filter.name,\n type: 'checkbox',\n options: (filter.options || []).map(option => ({\n label: typeof option === 'string' ? option : option.text,\n value: typeof option === 'string' ? option : option.text\n }))\n });\n // Инициализируем массив для фильтра\n if (!selectedFilters.value[filter.name]) {\n selectedFilters.value[filter.name] = [];\n }\n });\n }\n } else {\n // Загружаем только корневые категории\n const result = await categories.actions.read({ \n root: true,\n tree: false\n });\n \n currentCategories.value = result;\n categoryFilters.value = [];\n }\n } catch (error) {\n console.error('Error loading categories:', error);\n currentCategories.value = [];\n categoryFilters.value = [];\n }\n };\n\n // Функция для выбора категории\n const selectCategory = (category) => {\n const categoryPath = category.url ? category.url.substring(1) : '';\n \n if (!categoryPath) {\n console.warn('No URL found for category:', category);\n return;\n }\n \n // Переходим к странице категории используя wildcard роут\n if (route.params._id) {\n router.push(`/organizations/${route.params._id}/products/categories/${categoryPath}`);\n } else {\n router.push(`/products/categories/${categoryPath}`);\n }\n };\n\n\n // Функция применения фильтра дат\n const applyDateFilter = () => {\n selectedFilters.value.availability = tempSelectedDates.value;\n showDatePickerPopup.value = false;\n };\n \n // Функция очистки всех фильтров\n const clearAllFilters = () => {\n selectedFilters.value.price = { min: '', max: '' };\n selectedFilters.value.availability = null;\n \n // Очищаем фильтры категорий\n categoryFilters.value.forEach(filter => {\n selectedFilters.value[filter.name] = [];\n });\n };\n\n if (route.params?._id) {\n store.core.state.navigation_bar.actions = [{\n component: IconPlus,\n props: {\n fill: \"rgb(var(--main))\"\n },\n condition: () => auth.state.user && auth.state.user._id,\n action: () => route.params._id ? router.push({ name: 'Organization_ProductAdd', params: { _id: route.params._id} }) : router.push({ name: 'ProductAdd' })\n }];\n }\n\n onMounted(async () => {\n emits('page-loading');\n await loadCategoryData();\n emits('page-loaded');\n });\n\n onUnmounted(() => {\n store.core.state.navigation_bar.actions = [];\n });\n\n</script>\n\n<style lang=\"scss\">\n\n\n</style>\n"],"names":["categories.actions","IconPlus","auth.state"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { useModel, ref, reactive, createElementBlock, openBlock, Fragment, createVNode, withCtx, createCommentVNode, renderList, createElementVNode, toDisplayString, createTextVNode } from "vue";
2
2
  import _sfc_main$1 from "../../../../components/Block/Block.vue.js";
3
3
  import Field from "../../../../components/Field/Field.vue.js";
4
- import _sfc_main$5 from "../../../../components/Button/Button.vue.js";
4
+ import Button from "../../../../components/Button/Button.vue2.js";
5
5
  import _sfc_main$4 from "../../../../components/Popup/Popup.vue.js";
6
6
  import _sfc_main$2 from "../../../icons/navigation/IconEdit.vue.js";
7
7
  import _sfc_main$3 from "../../../icons/navigation/IconDelete.vue.js";
@@ -133,7 +133,7 @@ const _sfc_main = {
133
133
  class: "w-100 bg-light radius-small pd-small"
134
134
  }, null, 8, ["field"]),
135
135
  createElementVNode("div", _hoisted_9, [
136
- createVNode(_sfc_main$5, {
136
+ createVNode(Button, {
137
137
  showSuccess: false,
138
138
  showLoader: false,
139
139
  class: "bg-red t-white w-100",
@@ -144,7 +144,7 @@ const _sfc_main = {
144
144
  ])),
145
145
  _: 1
146
146
  }),
147
- createVNode(_sfc_main$5, {
147
+ createVNode(Button, {
148
148
  class: "bg-main w-100",
149
149
  onClick: saveAttribute
150
150
  }, {
@@ -1,7 +1,7 @@
1
1
  import { useModel, ref, reactive, createElementBlock, openBlock, Fragment, createVNode, withCtx, createCommentVNode, renderList, createElementVNode, toDisplayString, createTextVNode } from "vue";
2
2
  import _sfc_main$1 from "../../../../components/Block/Block.vue.js";
3
3
  import Field from "../../../../components/Field/Field.vue.js";
4
- import _sfc_main$5 from "../../../../components/Button/Button.vue.js";
4
+ import Button from "../../../../components/Button/Button.vue2.js";
5
5
  import _sfc_main$4 from "../../../../components/Popup/Popup.vue.js";
6
6
  import Select from "../../../../components/Select/Select.vue.js";
7
7
  import _sfc_main$2 from "../../../icons/navigation/IconEdit.vue.js";
@@ -283,7 +283,7 @@ const _sfc_main = {
283
283
  }, null, 8, ["field"])
284
284
  ]),
285
285
  createElementVNode("div", _hoisted_12, [
286
- createVNode(_sfc_main$5, {
286
+ createVNode(Button, {
287
287
  showSuccess: false,
288
288
  showLoader: false,
289
289
  class: "bg-red t-white w-100",
@@ -294,7 +294,7 @@ const _sfc_main = {
294
294
  ])),
295
295
  _: 1
296
296
  }),
297
- createVNode(_sfc_main$5, {
297
+ createVNode(Button, {
298
298
  class: "bg-main w-100",
299
299
  onClick: saveDiscount
300
300
  }, {
@@ -5,16 +5,16 @@ import variantsStore from "../../store/variants.store.js";
5
5
  import { state } from "../../store/products.js";
6
6
  import _sfc_main$1 from "../../../../components/Block/Block.vue.js";
7
7
  import Field from "../../../../components/Field/Field.vue.js";
8
- import _sfc_main$3 from "../../../../components/Button/Button.vue.js";
9
- import _sfc_main$7 from "../../../../components/Popup/Popup.vue.js";
8
+ import Button from "../../../../components/Button/Button.vue2.js";
9
+ import _sfc_main$6 from "../../../../components/Popup/Popup.vue.js";
10
10
  import Select from "../../../../components/Select/Select.vue.js";
11
11
  import _sfc_main$2 from "../../../../components/Feed/Feed.vue.js";
12
- import _sfc_main$9 from "../../../../components/EditImages/EditImages.vue2.js";
13
- import _sfc_main$8 from "./EditIngredients.vue.js";
12
+ import _sfc_main$8 from "../../../../components/EditImages/EditImages.vue2.js";
13
+ import _sfc_main$7 from "./EditIngredients.vue.js";
14
14
  import PlaceholderImage from "../../../icons/placeholders/PlaceholderImage.vue.js";
15
- import _sfc_main$5 from "../../../icons/navigation/IconEdit.vue.js";
16
- import _sfc_main$6 from "../../../icons/navigation/IconDelete.vue.js";
17
- import _sfc_main$4 from "../../../icons/actions/IconDuplicate.vue.js";
15
+ import _sfc_main$4 from "../../../icons/navigation/IconEdit.vue.js";
16
+ import _sfc_main$5 from "../../../icons/navigation/IconDelete.vue.js";
17
+ import _sfc_main$3 from "../../../icons/actions/IconDuplicate.vue.js";
18
18
  import { useGlobalMixins } from "../../../core/views/mixins/mixins.js";
19
19
  const _hoisted_1 = { class: "aspect-1x1 h-3r flex-child-default radius-small o-hidden" };
20
20
  const _hoisted_2 = ["src"];
@@ -291,36 +291,36 @@ const _sfc_main = {
291
291
  variant.ingredients?.length ? (openBlock(), createElementBlock("p", _hoisted_8, toDisplayString(variant.ingredients.length) + " ingredients", 1)) : createCommentVNode("", true)
292
292
  ]),
293
293
  createElementVNode("div", _hoisted_9, [
294
- createVNode(_sfc_main$3, {
294
+ createVNode(Button, {
295
295
  showSuccess: false,
296
296
  showLoader: true,
297
297
  class: "radius-small pd-small flex-center flex aspect-1x1 bg-light cursor-pointer hover:scale-[1.05]",
298
298
  submit: () => copyVariant(variant)
299
299
  }, {
300
300
  default: withCtx(() => [
301
- createVNode(_sfc_main$4, { class: "i-medium" })
301
+ createVNode(_sfc_main$3, { class: "i-medium" })
302
302
  ]),
303
303
  _: 2
304
304
  }, 1032, ["submit"]),
305
- createVNode(_sfc_main$3, {
305
+ createVNode(Button, {
306
306
  showSuccess: false,
307
307
  showLoader: false,
308
308
  class: "radius-small pd-small flex-center flex aspect-1x1 bg-light cursor-pointer hover:scale-[1.05]",
309
309
  submit: () => openVariantPopup(variant)
310
310
  }, {
311
311
  default: withCtx(() => [
312
- createVNode(_sfc_main$5, { class: "i-medium" })
312
+ createVNode(_sfc_main$4, { class: "i-medium" })
313
313
  ]),
314
314
  _: 2
315
315
  }, 1032, ["submit"]),
316
- createVNode(_sfc_main$3, {
316
+ createVNode(Button, {
317
317
  showSuccess: false,
318
318
  showLoader: true,
319
319
  class: "radius-small pd-small flex-center flex aspect-1x1 bg-red cursor-pointer hover:scale-[1.05]",
320
320
  submit: () => deleteVariant(variant)
321
321
  }, {
322
322
  default: withCtx(() => [
323
- createVNode(_sfc_main$6, { class: "i-medium" })
323
+ createVNode(_sfc_main$5, { class: "i-medium" })
324
324
  ]),
325
325
  _: 2
326
326
  }, 1032, ["submit"])
@@ -333,7 +333,7 @@ const _sfc_main = {
333
333
  ]),
334
334
  _: 1
335
335
  }, 8, ["actions"]),
336
- createVNode(_sfc_main$7, {
336
+ createVNode(_sfc_main$6, {
337
337
  title: editingVariant.value ? "Edit Variant" : "Create Variant",
338
338
  onClosePopup: closeVariantPopup,
339
339
  isPopupOpen: isVariantPopupOpen.value,
@@ -408,14 +408,14 @@ const _sfc_main = {
408
408
  class: "w-100 bg-light radius-small pd-small"
409
409
  }, null, 8, ["field", "onUpdate:field"]),
410
410
  createElementVNode("div", _hoisted_13, [
411
- createVNode(_sfc_main$6, {
411
+ createVNode(_sfc_main$5, {
412
412
  onClick: () => currentVariant.attributes.splice(attrIndex, 1),
413
413
  class: "i-medium"
414
414
  }, null, 8, ["onClick"])
415
415
  ])
416
416
  ]);
417
417
  }), 128)),
418
- createVNode(_sfc_main$3, {
418
+ createVNode(Button, {
419
419
  class: "bg-light w-100",
420
420
  showSuccess: false,
421
421
  showLoader: false,
@@ -450,13 +450,13 @@ const _sfc_main = {
450
450
  type: "textarea"
451
451
  }, null, 8, ["field"]),
452
452
  createElementVNode("div", _hoisted_14, [
453
- createVNode(_sfc_main$8, {
453
+ createVNode(_sfc_main$7, {
454
454
  ingredients: currentVariant.ingredients,
455
455
  "onUpdate:ingredients": _cache[9] || (_cache[9] = ($event) => currentVariant.ingredients = $event)
456
456
  }, null, 8, ["ingredients"])
457
457
  ]),
458
458
  _cache[14] || (_cache[14] = createElementVNode("div", { class: "fw-medium mn-t-small mn-b-small" }, "Images", -1)),
459
- createVNode(_sfc_main$9, {
459
+ createVNode(_sfc_main$8, {
460
460
  images: currentVariant.images || [],
461
461
  uploadPath: "variants",
462
462
  class: "bg-light pd-small radius-small",
@@ -465,7 +465,7 @@ const _sfc_main = {
465
465
  })
466
466
  }, null, 8, ["images"]),
467
467
  createElementVNode("div", _hoisted_15, [
468
- createVNode(_sfc_main$3, {
468
+ createVNode(Button, {
469
469
  showSuccess: false,
470
470
  showLoader: false,
471
471
  class: "bg-red t-white w-100",
@@ -476,7 +476,7 @@ const _sfc_main = {
476
476
  ])),
477
477
  _: 1
478
478
  }),
479
- createVNode(_sfc_main$3, {
479
+ createVNode(Button, {
480
480
  class: "bg-main w-100",
481
481
  submit: saveVariant
482
482
  }, {
@@ -1,7 +1,7 @@
1
1
  import { ref, computed, createElementBlock, createCommentVNode, openBlock, createVNode, createElementVNode, toDisplayString, withCtx, unref, Fragment } from "vue";
2
2
  import { useI18n } from "vue-i18n";
3
- import _sfc_main$5 from "../../../icons/actions/IconShopcartAdd.vue.js";
4
- import _sfc_main$4 from "../../../../components/Button/Button.vue.js";
3
+ import _sfc_main$4 from "../../../icons/actions/IconShopcartAdd.vue.js";
4
+ import Button from "../../../../components/Button/Button.vue2.js";
5
5
  import _sfc_main$1 from "../blocks/ProductVariants.vue.js";
6
6
  import ProductDiscounts from "../blocks/ProductDiscounts.vue.js";
7
7
  import _sfc_main$3 from "../elements/QuantitySelector.vue.js";
@@ -116,14 +116,14 @@ const _sfc_main = {
116
116
  ], -1)
117
117
  ]))) : createCommentVNode("", true),
118
118
  createElementVNode("div", _hoisted_8, [
119
- createVNode(_sfc_main$4, {
119
+ createVNode(Button, {
120
120
  submit: isVariantAvailable.value ? addProductToCart : void 0,
121
121
  disabled: !isVariantAvailable.value,
122
122
  class: "cursor-pointer pd-medium radius-big w-100 bg-main button h-3r"
123
123
  }, {
124
124
  default: withCtx(() => [
125
125
  isVariantAvailable.value ? (openBlock(), createElementBlock("div", _hoisted_9, [
126
- createVNode(_sfc_main$5, { class: "i-medium" }),
126
+ createVNode(_sfc_main$4, { class: "i-medium" }),
127
127
  createElementVNode("span", _hoisted_10, toDisplayString(unref(t)("addtoorder")), 1)
128
128
  ])) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
129
129
  !selectedVariant.value && __props.productVariants.length > 1 ? (openBlock(), createElementBlock("span", _hoisted_11, "Select variant")) : (openBlock(), createElementBlock("span", _hoisted_12, "Out of Stock"))