@ozdao/martyrs 0.2.487 → 0.2.489

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 (829) hide show
  1. package/dist/_virtual/index.cjs +4 -4
  2. package/dist/_virtual/index.js +4 -4
  3. package/dist/_virtual/index2.cjs +4 -4
  4. package/dist/_virtual/index2.js +4 -4
  5. package/dist/auth.server.cjs +1 -1
  6. package/dist/auth.server.js +1 -1
  7. package/dist/{authJwt-D35KyJlE.cjs → authJwt-BIZ2GIfT.cjs} +0 -27
  8. package/dist/{authJwt-DqxhUym0.js → authJwt-J1csaMWA.js} +0 -27
  9. package/dist/builder.cjs +10 -0
  10. package/dist/builder.js +10 -0
  11. package/dist/chats.server.cjs +1 -1
  12. package/dist/chats.server.js +1 -1
  13. package/dist/community.server.cjs +3 -3
  14. package/dist/community.server.js +3 -3
  15. package/dist/{crud-BDIArc5A.cjs → crud-B-kQw3Z5.cjs} +5 -4
  16. package/dist/{crud-DJvpe0aZ.js → crud-Cwx5VlSm.js} +5 -4
  17. package/dist/events.server.cjs +3 -3
  18. package/dist/events.server.js +3 -3
  19. package/dist/files.server.cjs +31 -14
  20. package/dist/files.server.js +31 -14
  21. package/dist/gallery.server.cjs +2 -2
  22. package/dist/gallery.server.js +2 -2
  23. package/dist/{globals.abac-Cm9e8Jdk.cjs → globals.abac-CPXLas7N.cjs} +1 -1
  24. package/dist/{globals.abac-DBV_kaOq.js → globals.abac-DNdtSYop.js} +1 -1
  25. package/dist/{index-DiSKVCaA.cjs → index-BFxqqmgh.cjs} +1 -1
  26. package/dist/{index-CVuQC4k1.js → index-_Edcmck_.js} +1 -1
  27. package/dist/main-CmuUC0tl.cjs +11 -0
  28. package/dist/{main-nQmkbWsW.js → main-IVRL6IjM.js} +2949 -2666
  29. package/dist/martyrs/src/components/Button/{Button.vue.cjs → Button.vue2.cjs} +3 -3
  30. package/dist/martyrs/src/components/Button/Button.vue2.cjs.map +1 -0
  31. package/dist/martyrs/src/components/Button/{Button.vue.js → Button.vue2.js} +3 -3
  32. package/dist/martyrs/src/components/Button/{Button.vue.cjs.map → Button.vue2.js.map} +1 -1
  33. package/dist/martyrs/src/components/Calendar/Calendar.vue.cjs +31 -5
  34. package/dist/martyrs/src/components/Calendar/Calendar.vue.cjs.map +1 -1
  35. package/dist/martyrs/src/components/Calendar/Calendar.vue.js +32 -6
  36. package/dist/martyrs/src/components/Calendar/Calendar.vue.js.map +1 -1
  37. package/dist/martyrs/src/components/Chips/{Chips.vue.cjs → Chips.vue2.cjs} +2 -2
  38. package/dist/martyrs/src/components/Chips/Chips.vue2.cjs.map +1 -0
  39. package/dist/martyrs/src/components/Chips/{Chips.vue.js → Chips.vue2.js} +2 -2
  40. package/dist/martyrs/src/components/Chips/Chips.vue2.js.map +1 -0
  41. package/dist/martyrs/src/components/Countdown/Countdown.vue.cjs +4 -4
  42. package/dist/martyrs/src/components/Countdown/Countdown.vue.cjs.map +1 -1
  43. package/dist/martyrs/src/components/Countdown/Countdown.vue.js +4 -4
  44. package/dist/martyrs/src/components/Countdown/Countdown.vue.js.map +1 -1
  45. package/dist/martyrs/src/components/DatePicker/DatePicker.vue.cjs +28 -19
  46. package/dist/martyrs/src/components/DatePicker/DatePicker.vue.cjs.map +1 -1
  47. package/dist/martyrs/src/components/DatePicker/DatePicker.vue.js +29 -20
  48. package/dist/martyrs/src/components/DatePicker/DatePicker.vue.js.map +1 -1
  49. package/dist/martyrs/src/components/Feed/Carousel.vue.cjs +20 -9
  50. package/dist/martyrs/src/components/Feed/Carousel.vue.cjs.map +1 -1
  51. package/dist/martyrs/src/components/Feed/Carousel.vue.js +22 -11
  52. package/dist/martyrs/src/components/Feed/Carousel.vue.js.map +1 -1
  53. package/dist/martyrs/src/components/Feed/Feed.vue.cjs +29 -26
  54. package/dist/martyrs/src/components/Feed/Feed.vue.cjs.map +1 -1
  55. package/dist/martyrs/src/components/Feed/Feed.vue.js +45 -42
  56. package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
  57. package/dist/martyrs/src/components/Field/{Field.vue2.cjs → Field.vue.cjs} +15 -9
  58. package/dist/martyrs/src/components/Field/Field.vue.cjs.map +1 -0
  59. package/dist/martyrs/src/components/Field/{Field.vue2.js → Field.vue.js} +16 -10
  60. package/dist/martyrs/src/components/Field/Field.vue.js.map +1 -0
  61. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.cjs +25 -24
  62. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.cjs.map +1 -1
  63. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +27 -26
  64. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js.map +1 -1
  65. package/dist/martyrs/src/components/FieldTags/FieldTags.vue.cjs +1 -1
  66. package/dist/martyrs/src/components/FieldTags/FieldTags.vue.js +1 -1
  67. package/dist/martyrs/src/components/Loader/Loader.vue2.cjs +1 -1
  68. package/dist/martyrs/src/components/Loader/Loader.vue2.cjs.map +1 -1
  69. package/dist/martyrs/src/components/Loader/Loader.vue2.js +1 -1
  70. package/dist/martyrs/src/components/Loader/Loader.vue2.js.map +1 -1
  71. package/dist/martyrs/src/components/Menu/MenuItem.vue.cjs +1 -1
  72. package/dist/martyrs/src/components/Menu/MenuItem.vue.cjs.map +1 -1
  73. package/dist/martyrs/src/components/Menu/MenuItem.vue.js +1 -1
  74. package/dist/martyrs/src/components/Menu/MenuItem.vue.js.map +1 -1
  75. package/dist/martyrs/src/components/Select/Select.vue.cjs +27 -15
  76. package/dist/martyrs/src/components/Select/Select.vue.cjs.map +1 -1
  77. package/dist/martyrs/src/components/Select/Select.vue.js +28 -16
  78. package/dist/martyrs/src/components/Select/Select.vue.js.map +1 -1
  79. package/dist/martyrs/src/components/Status/Snack.vue.cjs +63 -0
  80. package/dist/martyrs/src/components/Status/Snack.vue.cjs.map +1 -0
  81. package/dist/martyrs/src/components/Status/Snack.vue.js +63 -0
  82. package/dist/martyrs/src/components/Status/Snack.vue.js.map +1 -0
  83. package/dist/martyrs/src/components/Tab/Tab.vue2.cjs +2 -2
  84. package/dist/martyrs/src/components/Tab/Tab.vue2.cjs.map +1 -1
  85. package/dist/martyrs/src/components/Tab/Tab.vue2.js +2 -2
  86. package/dist/martyrs/src/components/Tab/Tab.vue2.js.map +1 -1
  87. package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.cjs +3 -2
  88. package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.cjs.map +1 -1
  89. package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.js +3 -2
  90. package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.js.map +1 -1
  91. package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.cjs +0 -1
  92. package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.cjs.map +1 -1
  93. package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.js +0 -1
  94. package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.js.map +1 -1
  95. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs +2 -2
  96. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +5 -5
  97. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +2 -2
  98. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +5 -5
  99. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +1 -2
  100. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs.map +1 -1
  101. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +1 -2
  102. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js.map +1 -1
  103. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.cjs +1 -1
  104. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +1 -1
  105. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.cjs +2 -2
  106. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +10 -10
  107. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.cjs +3 -3
  108. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.cjs.map +1 -1
  109. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +5 -5
  110. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js.map +1 -1
  111. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs +3 -3
  112. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs.map +1 -1
  113. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +6 -6
  114. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js.map +1 -1
  115. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs +3 -3
  116. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs.map +1 -1
  117. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +5 -5
  118. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js.map +1 -1
  119. package/dist/martyrs/src/modules/auth/views/components/sections/FeaturedUsers.vue.cjs +1 -1
  120. package/dist/martyrs/src/modules/auth/views/components/sections/FeaturedUsers.vue.cjs.map +1 -1
  121. package/dist/martyrs/src/modules/auth/views/components/sections/FeaturedUsers.vue.js +1 -1
  122. package/dist/martyrs/src/modules/auth/views/components/sections/FeaturedUsers.vue.js.map +1 -1
  123. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.cjs +2 -2
  124. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +23 -23
  125. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.cjs +3 -3
  126. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.cjs.map +1 -1
  127. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js +3 -3
  128. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js.map +1 -1
  129. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.cjs +2 -2
  130. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.cjs.map +1 -1
  131. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js +2 -2
  132. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js.map +1 -1
  133. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.cjs +4 -4
  134. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.cjs.map +1 -1
  135. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +4 -4
  136. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js.map +1 -1
  137. package/dist/martyrs/src/modules/community/components/pages/Blog.vue.cjs +1 -1
  138. package/dist/martyrs/src/modules/community/components/pages/Blog.vue.cjs.map +1 -1
  139. package/dist/martyrs/src/modules/community/components/pages/Blog.vue.js +1 -1
  140. package/dist/martyrs/src/modules/community/components/pages/Blog.vue.js.map +1 -1
  141. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs +2 -4
  142. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs.map +1 -1
  143. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +2 -4
  144. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js.map +1 -1
  145. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +3 -3
  146. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +12 -12
  147. package/dist/martyrs/src/modules/community/components/sections/Comments.vue.cjs +1 -1
  148. package/dist/martyrs/src/modules/community/components/sections/Comments.vue.cjs.map +1 -1
  149. package/dist/martyrs/src/modules/community/components/sections/Comments.vue.js +1 -1
  150. package/dist/martyrs/src/modules/community/components/sections/Comments.vue.js.map +1 -1
  151. package/dist/martyrs/src/modules/constructor/components/elements/Card.vue.cjs +1 -1
  152. package/dist/martyrs/src/modules/constructor/components/elements/Card.vue.js +3 -3
  153. package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.cjs +1 -1
  154. package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.js +2 -2
  155. package/dist/martyrs/src/modules/constructor/components/sections/Viewer.vue.cjs +1 -1
  156. package/dist/martyrs/src/modules/constructor/components/sections/Viewer.vue.cjs.map +1 -1
  157. package/dist/martyrs/src/modules/constructor/components/sections/Viewer.vue.js +1 -1
  158. package/dist/martyrs/src/modules/constructor/components/sections/Viewer.vue.js.map +1 -1
  159. package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.cjs +33 -30
  160. package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.cjs.map +1 -1
  161. package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js +36 -33
  162. package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js.map +1 -1
  163. package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.cjs +1 -1
  164. package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.js +1 -1
  165. package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.cjs +1 -1
  166. package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.js +1 -1
  167. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +3 -2
  168. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs.map +1 -1
  169. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +26 -25
  170. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js.map +1 -1
  171. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs +2 -2
  172. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +15 -15
  173. package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +8 -8
  174. package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs.map +1 -1
  175. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +8 -8
  176. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js.map +1 -1
  177. package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs +3 -3
  178. package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs.map +1 -1
  179. package/dist/martyrs/src/modules/events/components/pages/Events.vue.js +3 -3
  180. package/dist/martyrs/src/modules/events/components/pages/Events.vue.js.map +1 -1
  181. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.cjs +1 -1
  182. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.cjs.map +1 -1
  183. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js +1 -1
  184. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js.map +1 -1
  185. package/dist/martyrs/src/modules/events/components/sections/FeaturedEvents.vue.cjs +9 -5
  186. package/dist/martyrs/src/modules/events/components/sections/FeaturedEvents.vue.cjs.map +1 -1
  187. package/dist/martyrs/src/modules/events/components/sections/FeaturedEvents.vue.js +9 -5
  188. package/dist/martyrs/src/modules/events/components/sections/FeaturedEvents.vue.js.map +1 -1
  189. package/dist/martyrs/src/modules/events/components/sections/List.vue.cjs +18 -24
  190. package/dist/martyrs/src/modules/events/components/sections/List.vue.cjs.map +1 -1
  191. package/dist/martyrs/src/modules/events/components/sections/List.vue.js +19 -25
  192. package/dist/martyrs/src/modules/events/components/sections/List.vue.js.map +1 -1
  193. package/dist/martyrs/src/modules/events/components/sections/SelectDate.vue.cjs +3 -3
  194. package/dist/martyrs/src/modules/events/components/sections/SelectDate.vue.cjs.map +1 -1
  195. package/dist/martyrs/src/modules/events/components/sections/SelectDate.vue.js +3 -3
  196. package/dist/martyrs/src/modules/events/components/sections/SelectDate.vue.js.map +1 -1
  197. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +2 -3
  198. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs.map +1 -1
  199. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +2 -3
  200. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js.map +1 -1
  201. package/dist/martyrs/src/modules/globals/locales/en.cjs +9 -1
  202. package/dist/martyrs/src/modules/globals/locales/en.cjs.map +1 -1
  203. package/dist/martyrs/src/modules/globals/locales/en.js +9 -1
  204. package/dist/martyrs/src/modules/globals/locales/en.js.map +1 -1
  205. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.cjs +1 -1
  206. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.js +1 -1
  207. package/dist/martyrs/src/modules/globals/views/classes/globals.store.cjs +5 -2
  208. package/dist/martyrs/src/modules/globals/views/classes/globals.store.cjs.map +1 -1
  209. package/dist/martyrs/src/modules/globals/views/classes/globals.store.js +5 -2
  210. package/dist/martyrs/src/modules/globals/views/classes/globals.store.js.map +1 -1
  211. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue.cjs +16 -15
  212. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue.cjs.map +1 -1
  213. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue.js +17 -16
  214. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue.js.map +1 -1
  215. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +16 -20
  216. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs.map +1 -1
  217. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +16 -20
  218. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js.map +1 -1
  219. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupAuth.vue.cjs +1 -1
  220. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupAuth.vue.js +1 -1
  221. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs +14 -7
  222. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs.map +1 -1
  223. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js +14 -7
  224. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js.map +1 -1
  225. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +11 -3
  226. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs.map +1 -1
  227. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +11 -3
  228. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js.map +1 -1
  229. package/dist/martyrs/src/modules/globals/views/components/partials/CitySelection.vue.cjs +1 -1
  230. package/dist/martyrs/src/modules/globals/views/components/partials/CitySelection.vue.cjs.map +1 -1
  231. package/dist/martyrs/src/modules/globals/views/components/partials/CitySelection.vue.js +1 -1
  232. package/dist/martyrs/src/modules/globals/views/components/partials/CitySelection.vue.js.map +1 -1
  233. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs +1 -1
  234. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js +1 -1
  235. package/dist/martyrs/src/modules/globals/views/components/partials/NavigationBar.vue.cjs +1 -1
  236. package/dist/martyrs/src/modules/globals/views/components/partials/NavigationBar.vue.js +1 -1
  237. package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.cjs +2 -2
  238. package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.cjs.map +1 -1
  239. package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.js +2 -2
  240. package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.js.map +1 -1
  241. package/dist/martyrs/src/modules/globals/views/plugins/date-picker.plugin.cjs +17 -7
  242. package/dist/martyrs/src/modules/globals/views/plugins/date-picker.plugin.cjs.map +1 -1
  243. package/dist/martyrs/src/modules/globals/views/plugins/date-picker.plugin.js +18 -8
  244. package/dist/martyrs/src/modules/globals/views/plugins/date-picker.plugin.js.map +1 -1
  245. package/dist/martyrs/src/modules/globals/views/router/addRoutes.cjs +4 -1
  246. package/dist/martyrs/src/modules/globals/views/router/addRoutes.cjs.map +1 -1
  247. package/dist/martyrs/src/modules/globals/views/router/addRoutes.js +4 -1
  248. package/dist/martyrs/src/modules/globals/views/router/addRoutes.js.map +1 -1
  249. package/dist/martyrs/src/modules/globals/views/store/globals.cjs +30 -0
  250. package/dist/martyrs/src/modules/globals/views/store/globals.cjs.map +1 -1
  251. package/dist/martyrs/src/modules/globals/views/store/globals.js +30 -0
  252. package/dist/martyrs/src/modules/globals/views/store/globals.js.map +1 -1
  253. package/dist/martyrs/src/modules/icons/actions/IconOpenLink.vue.cjs +32 -0
  254. package/dist/martyrs/src/modules/icons/actions/IconOpenLink.vue.cjs.map +1 -0
  255. package/dist/martyrs/src/modules/icons/actions/IconOpenLink.vue.js +32 -0
  256. package/dist/martyrs/src/modules/icons/actions/IconOpenLink.vue.js.map +1 -0
  257. package/dist/martyrs/src/modules/icons/entities/IconInfo.vue.cjs +4 -2
  258. package/dist/martyrs/src/modules/icons/entities/IconInfo.vue.cjs.map +1 -1
  259. package/dist/martyrs/src/modules/icons/entities/IconInfo.vue.js +5 -3
  260. package/dist/martyrs/src/modules/icons/entities/IconInfo.vue.js.map +1 -1
  261. package/dist/martyrs/src/modules/icons/icons.client.cjs +4 -0
  262. package/dist/martyrs/src/modules/icons/icons.client.cjs.map +1 -1
  263. package/dist/martyrs/src/modules/icons/icons.client.js +108 -104
  264. package/dist/martyrs/src/modules/icons/icons.client.js.map +1 -1
  265. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.cjs +3 -1
  266. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.cjs.map +1 -1
  267. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js +138 -136
  268. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js.map +1 -1
  269. package/dist/martyrs/src/modules/icons/skeletons/SkeletonEventShort.vue.cjs +1 -1
  270. package/dist/martyrs/src/modules/icons/skeletons/SkeletonEventShort.vue.cjs.map +1 -1
  271. package/dist/martyrs/src/modules/icons/skeletons/SkeletonEventShort.vue.js +1 -1
  272. package/dist/martyrs/src/modules/icons/skeletons/SkeletonEventShort.vue.js.map +1 -1
  273. package/dist/martyrs/src/modules/icons/socials/telegram.vue.cjs +11 -7
  274. package/dist/martyrs/src/modules/icons/socials/telegram.vue.cjs.map +1 -1
  275. package/dist/martyrs/src/modules/icons/socials/telegram.vue.js +11 -7
  276. package/dist/martyrs/src/modules/icons/socials/telegram.vue.js.map +1 -1
  277. package/dist/martyrs/src/modules/landing/components/sections/SectionEarn.vue.cjs +2 -2
  278. package/dist/martyrs/src/modules/landing/components/sections/SectionEarn.vue.cjs.map +1 -1
  279. package/dist/martyrs/src/modules/landing/components/sections/SectionEarn.vue.js +2 -2
  280. package/dist/martyrs/src/modules/landing/components/sections/SectionEarn.vue.js.map +1 -1
  281. package/dist/martyrs/src/modules/landing/components/sections/SectionFeaturesImages.vue.cjs +2 -2
  282. package/dist/martyrs/src/modules/landing/components/sections/SectionFeaturesImages.vue.cjs.map +1 -1
  283. package/dist/martyrs/src/modules/landing/components/sections/SectionFeaturesImages.vue.js +2 -2
  284. package/dist/martyrs/src/modules/landing/components/sections/SectionFeaturesImages.vue.js.map +1 -1
  285. package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.cjs +1 -1
  286. package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.cjs.map +1 -1
  287. package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.js +1 -1
  288. package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.js.map +1 -1
  289. package/dist/martyrs/src/modules/landing/components/sections/SectionHeroToken.vue.cjs +1 -1
  290. package/dist/martyrs/src/modules/landing/components/sections/SectionHeroToken.vue.cjs.map +1 -1
  291. package/dist/martyrs/src/modules/landing/components/sections/SectionHeroToken.vue.js +1 -1
  292. package/dist/martyrs/src/modules/landing/components/sections/SectionHeroToken.vue.js.map +1 -1
  293. package/dist/martyrs/src/modules/landing/components/sections/SectionJoinUs.vue.cjs +1 -1
  294. package/dist/martyrs/src/modules/landing/components/sections/SectionJoinUs.vue.cjs.map +1 -1
  295. package/dist/martyrs/src/modules/landing/components/sections/SectionJoinUs.vue.js +1 -1
  296. package/dist/martyrs/src/modules/landing/components/sections/SectionJoinUs.vue.js.map +1 -1
  297. package/dist/martyrs/src/modules/landing/components/sections/SectionMobileApp.vue.cjs +1 -1
  298. package/dist/martyrs/src/modules/landing/components/sections/SectionMobileApp.vue.cjs.map +1 -1
  299. package/dist/martyrs/src/modules/landing/components/sections/SectionMobileApp.vue.js +1 -1
  300. package/dist/martyrs/src/modules/landing/components/sections/SectionMobileApp.vue.js.map +1 -1
  301. package/dist/martyrs/src/modules/landing/components/sections/SubscribeNewsletter.vue.cjs +1 -1
  302. package/dist/martyrs/src/modules/landing/components/sections/SubscribeNewsletter.vue.cjs.map +1 -1
  303. package/dist/martyrs/src/modules/landing/components/sections/SubscribeNewsletter.vue.js +1 -1
  304. package/dist/martyrs/src/modules/landing/components/sections/SubscribeNewsletter.vue.js.map +1 -1
  305. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.cjs +0 -13
  306. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.cjs.map +1 -1
  307. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.js +0 -13
  308. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.js.map +1 -1
  309. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.cjs +1 -1
  310. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +1 -1
  311. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.cjs +1 -1
  312. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js +1 -1
  313. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.cjs +1 -1
  314. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js +1 -1
  315. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.cjs +2 -2
  316. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +14 -14
  317. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.cjs +2 -2
  318. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +19 -19
  319. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.cjs +2 -2
  320. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +13 -13
  321. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.cjs +1 -1
  322. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js +1 -1
  323. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs +2 -2
  324. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +22 -22
  325. package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.cjs +1 -1
  326. package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.js +1 -1
  327. package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs +1 -1
  328. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +1 -1
  329. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.cjs +1 -1
  330. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +1 -1
  331. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.cjs +1 -1
  332. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +1 -1
  333. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs +2 -2
  334. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +11 -11
  335. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.cjs +1 -1
  336. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +1 -1
  337. package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs +1 -1
  338. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +1 -1
  339. package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.cjs +1 -1
  340. package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.js +1 -1
  341. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.cjs +1 -1
  342. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js +1 -1
  343. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.cjs +2 -2
  344. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.cjs.map +1 -1
  345. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js +2 -2
  346. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js.map +1 -1
  347. package/dist/martyrs/src/modules/orders/components/blocks/CardOrder.vue.cjs +8 -8
  348. package/dist/martyrs/src/modules/orders/components/blocks/CardOrder.vue.cjs.map +1 -1
  349. package/dist/martyrs/src/modules/orders/components/blocks/CardOrder.vue.js +8 -8
  350. package/dist/martyrs/src/modules/orders/components/blocks/CardOrder.vue.js.map +1 -1
  351. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.cjs +98 -73
  352. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.cjs.map +1 -1
  353. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.js +99 -74
  354. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.js.map +1 -1
  355. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.cjs +2 -2
  356. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.cjs.map +1 -1
  357. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.js +2 -2
  358. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.js.map +1 -1
  359. package/dist/martyrs/src/modules/orders/components/elements/PriceTotal.vue.cjs +1 -1
  360. package/dist/martyrs/src/modules/orders/components/elements/PriceTotal.vue.cjs.map +1 -1
  361. package/dist/martyrs/src/modules/orders/components/elements/PriceTotal.vue.js +1 -1
  362. package/dist/martyrs/src/modules/orders/components/elements/PriceTotal.vue.js.map +1 -1
  363. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +82 -57
  364. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs.map +1 -1
  365. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +82 -57
  366. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js.map +1 -1
  367. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs +22 -14
  368. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs.map +1 -1
  369. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +22 -14
  370. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js.map +1 -1
  371. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +205 -36
  372. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs.map +1 -1
  373. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +208 -39
  374. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js.map +1 -1
  375. package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.cjs +20 -11
  376. package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.cjs.map +1 -1
  377. package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.js +20 -11
  378. package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.js.map +1 -1
  379. package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.cjs +1 -2
  380. package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.cjs.map +1 -1
  381. package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.js +1 -2
  382. package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.js.map +1 -1
  383. package/dist/martyrs/src/modules/orders/components/sections/FormCustomerDetails.vue.cjs +1 -1
  384. package/dist/martyrs/src/modules/orders/components/sections/FormCustomerDetails.vue.js +5 -5
  385. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +1 -1
  386. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +2 -2
  387. package/dist/martyrs/src/modules/orders/components/sections/Succes.vue.cjs +1 -1
  388. package/dist/martyrs/src/modules/orders/components/sections/Succes.vue.js +1 -1
  389. package/dist/martyrs/src/modules/orders/orders.client.cjs +6 -0
  390. package/dist/martyrs/src/modules/orders/orders.client.cjs.map +1 -1
  391. package/dist/martyrs/src/modules/orders/orders.client.js +6 -0
  392. package/dist/martyrs/src/modules/orders/orders.client.js.map +1 -1
  393. package/dist/martyrs/src/modules/orders/store/shopcart.cjs +75 -94
  394. package/dist/martyrs/src/modules/orders/store/shopcart.cjs.map +1 -1
  395. package/dist/martyrs/src/modules/orders/store/shopcart.js +75 -94
  396. package/dist/martyrs/src/modules/orders/store/shopcart.js.map +1 -1
  397. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.cjs +11 -3
  398. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.cjs.map +1 -1
  399. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +11 -3
  400. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js.map +1 -1
  401. package/dist/martyrs/src/modules/organizations/components/blocks/Rating.vue.cjs +1 -1
  402. package/dist/martyrs/src/modules/organizations/components/blocks/Rating.vue.js +1 -1
  403. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.cjs +1 -1
  404. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +1 -1
  405. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.cjs +1 -1
  406. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.cjs.map +1 -1
  407. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js +1 -1
  408. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js.map +1 -1
  409. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +2 -3
  410. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs.map +1 -1
  411. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +16 -17
  412. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js.map +1 -1
  413. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +2 -2
  414. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs.map +1 -1
  415. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +2 -2
  416. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js.map +1 -1
  417. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +3 -3
  418. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs.map +1 -1
  419. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +3 -3
  420. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js.map +1 -1
  421. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +2 -2
  422. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +16 -16
  423. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.cjs +1 -1
  424. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.cjs.map +1 -1
  425. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js +1 -1
  426. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js.map +1 -1
  427. package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.cjs +2 -2
  428. package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.cjs.map +1 -1
  429. package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.js +2 -2
  430. package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.js.map +1 -1
  431. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs +2 -2
  432. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +3 -3
  433. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.cjs +2 -2
  434. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +8 -8
  435. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +1 -2
  436. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs.map +1 -1
  437. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +1 -2
  438. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js.map +1 -1
  439. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.cjs +3 -3
  440. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.cjs.map +1 -1
  441. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.js +3 -3
  442. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.js.map +1 -1
  443. package/dist/martyrs/src/modules/organizations/organizations.client.cjs +0 -3
  444. package/dist/martyrs/src/modules/organizations/organizations.client.cjs.map +1 -1
  445. package/dist/martyrs/src/modules/organizations/organizations.client.js +18 -21
  446. package/dist/martyrs/src/modules/organizations/organizations.client.js.map +1 -1
  447. package/dist/martyrs/src/modules/organizations/router/organizations.cjs +0 -2
  448. package/dist/martyrs/src/modules/organizations/router/organizations.cjs.map +1 -1
  449. package/dist/martyrs/src/modules/organizations/router/organizations.js +0 -2
  450. package/dist/martyrs/src/modules/organizations/router/organizations.js.map +1 -1
  451. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.cjs +1 -2
  452. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.cjs.map +1 -1
  453. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -2
  454. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js.map +1 -1
  455. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.cjs +1 -2
  456. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.cjs.map +1 -1
  457. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -2
  458. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js.map +1 -1
  459. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.cjs +1 -1
  460. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +1 -1
  461. package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.cjs +7 -4
  462. package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.cjs.map +1 -1
  463. package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.js +7 -4
  464. package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.js.map +1 -1
  465. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.cjs +1 -1
  466. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.js +1 -1
  467. package/dist/martyrs/src/modules/products/components/blocks/ProductVariants.vue.cjs +18 -21
  468. package/dist/martyrs/src/modules/products/components/blocks/ProductVariants.vue.cjs.map +1 -1
  469. package/dist/martyrs/src/modules/products/components/blocks/ProductVariants.vue.js +19 -22
  470. package/dist/martyrs/src/modules/products/components/blocks/ProductVariants.vue.js.map +1 -1
  471. package/dist/martyrs/src/modules/products/components/elements/Price.vue.cjs +1 -1
  472. package/dist/martyrs/src/modules/products/components/elements/Price.vue.cjs.map +1 -1
  473. package/dist/martyrs/src/modules/products/components/elements/Price.vue.js +1 -1
  474. package/dist/martyrs/src/modules/products/components/elements/Price.vue.js.map +1 -1
  475. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs +48 -45
  476. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs.map +1 -1
  477. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +49 -46
  478. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js.map +1 -1
  479. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +13 -21
  480. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs.map +1 -1
  481. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +23 -31
  482. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js.map +1 -1
  483. package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +29 -18
  484. package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs.map +1 -1
  485. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +29 -18
  486. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js.map +1 -1
  487. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +5 -7
  488. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs.map +1 -1
  489. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +21 -23
  490. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js.map +1 -1
  491. package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs +3 -2
  492. package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs.map +1 -1
  493. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +3 -2
  494. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js.map +1 -1
  495. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.cjs +2 -2
  496. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +6 -6
  497. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs +2 -2
  498. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +12 -12
  499. package/dist/martyrs/src/modules/products/components/sections/EditIngredients.vue.cjs +11 -3
  500. package/dist/martyrs/src/modules/products/components/sections/EditIngredients.vue.cjs.map +1 -1
  501. package/dist/martyrs/src/modules/products/components/sections/EditIngredients.vue.js +11 -3
  502. package/dist/martyrs/src/modules/products/components/sections/EditIngredients.vue.js.map +1 -1
  503. package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.cjs +8 -16
  504. package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.cjs.map +1 -1
  505. package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.js +8 -16
  506. package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.js.map +1 -1
  507. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs +80 -61
  508. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs.map +1 -1
  509. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +100 -81
  510. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js.map +1 -1
  511. package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.cjs +3 -3
  512. package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.cjs.map +1 -1
  513. package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.js +3 -3
  514. package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.js.map +1 -1
  515. package/dist/martyrs/src/modules/products/components/sections/HeroRecommendation.vue.cjs +1 -1
  516. package/dist/martyrs/src/modules/products/components/sections/HeroRecommendation.vue.cjs.map +1 -1
  517. package/dist/martyrs/src/modules/products/components/sections/HeroRecommendation.vue.js +1 -1
  518. package/dist/martyrs/src/modules/products/components/sections/HeroRecommendation.vue.js.map +1 -1
  519. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.cjs +8 -14
  520. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.cjs.map +1 -1
  521. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js +9 -15
  522. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js.map +1 -1
  523. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.cjs +1 -1
  524. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +1 -1
  525. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.cjs +3 -3
  526. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.cjs.map +1 -1
  527. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +3 -3
  528. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js.map +1 -1
  529. package/dist/martyrs/src/modules/products/products.client.cjs +1 -13
  530. package/dist/martyrs/src/modules/products/products.client.cjs.map +1 -1
  531. package/dist/martyrs/src/modules/products/products.client.js +36 -48
  532. package/dist/martyrs/src/modules/products/products.client.js.map +1 -1
  533. package/dist/martyrs/src/modules/products/store/products.cjs +4 -4
  534. package/dist/martyrs/src/modules/products/store/products.cjs.map +1 -1
  535. package/dist/martyrs/src/modules/products/store/products.js +4 -4
  536. package/dist/martyrs/src/modules/products/store/products.js.map +1 -1
  537. package/dist/martyrs/src/modules/rents/views/components/pages/GanttChart.vue.cjs +3 -3
  538. package/dist/martyrs/src/modules/rents/views/components/pages/GanttChart.vue.cjs.map +1 -1
  539. package/dist/martyrs/src/modules/rents/views/components/pages/GanttChart.vue.js +3 -3
  540. package/dist/martyrs/src/modules/rents/views/components/pages/GanttChart.vue.js.map +1 -1
  541. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.cjs +12 -4
  542. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.cjs.map +1 -1
  543. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +15 -7
  544. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js.map +1 -1
  545. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs +1 -1
  546. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +1 -1
  547. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs +41 -33
  548. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs.map +1 -1
  549. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js +42 -34
  550. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js.map +1 -1
  551. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.cjs +0 -1
  552. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.cjs.map +1 -1
  553. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js +0 -1
  554. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js.map +1 -1
  555. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs +0 -1
  556. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs.map +1 -1
  557. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +0 -1
  558. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js.map +1 -1
  559. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.cjs +1 -1
  560. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js +1 -1
  561. package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.cjs +2 -2
  562. package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.cjs.map +1 -1
  563. package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.js +2 -2
  564. package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.js.map +1 -1
  565. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +2 -2
  566. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +13 -13
  567. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.cjs +2 -2
  568. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +8 -8
  569. package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.cjs +1 -1
  570. package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.js +2 -2
  571. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.cjs +1 -1
  572. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +2 -2
  573. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.cjs +4 -4
  574. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.cjs.map +1 -1
  575. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +4 -4
  576. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js.map +1 -1
  577. package/dist/martyrs.cjs.js +1 -1
  578. package/dist/martyrs.css +1 -1
  579. package/dist/martyrs.es.js +20 -20
  580. package/dist/music.server.cjs +3 -3
  581. package/dist/music.server.js +3 -3
  582. package/dist/notifications.server.cjs +1 -1
  583. package/dist/notifications.server.js +1 -1
  584. package/dist/orders.server.cjs +155 -64
  585. package/dist/orders.server.js +155 -64
  586. package/dist/organizations.server.cjs +25 -4
  587. package/dist/organizations.server.js +25 -4
  588. package/dist/{ownership.schema-CCZX5vfw.js → ownership.schema-BqH4v5vH.js} +2 -2
  589. package/dist/{ownership.schema-DCosqOc1.cjs → ownership.schema-D1p5XSpt.cjs} +2 -2
  590. package/dist/products.server.cjs +64 -288
  591. package/dist/products.server.js +64 -288
  592. package/dist/rents.server.cjs +35 -13
  593. package/dist/rents.server.js +35 -13
  594. package/dist/style.css +198 -201
  595. package/dist/wallet.server.cjs +1 -1
  596. package/dist/wallet.server.js +1 -1
  597. package/dist/web-BXhlxo6M.cjs +1 -0
  598. package/dist/web-Czi05iGG.js +54 -0
  599. package/package.json +1 -1
  600. package/src/builder/rspack/rspack.config.base.js +14 -0
  601. package/src/components/Breadcrumbs/Breadcrumbs.vue +200 -62
  602. package/src/components/Button/Button.vue +1 -1
  603. package/src/components/Calendar/Calendar.vue +53 -3
  604. package/src/components/Countdown/Countdown.vue +4 -4
  605. package/src/components/DatePicker/DatePicker.vue +32 -22
  606. package/src/components/Feed/Carousel.vue +18 -3
  607. package/src/components/Feed/Feed.vue +24 -31
  608. package/src/components/Field/Field.vue +9 -31
  609. package/src/components/FieldBig/FieldBig.vue +17 -18
  610. package/src/components/Loader/Loader.vue +1 -8
  611. package/src/components/Menu/MenuItem.vue +1 -1
  612. package/src/components/Select/Select.vue +19 -27
  613. package/src/components/Status/Snack.vue +4 -2
  614. package/src/components/Tab/Tab.vue +2 -2
  615. package/src/components/UploadImageMultiple/UploadImageMultiple.vue +9 -14
  616. package/src/main.js +2 -0
  617. package/src/modules/auth/controllers/middlewares/authJwt.js +0 -29
  618. package/src/modules/auth/views/components/pages/ResetPassword.vue +1 -1
  619. package/src/modules/auth/views/components/pages/SignIn.vue +1 -1
  620. package/src/modules/auth/views/components/pages/SignUp.vue +1 -1
  621. package/src/modules/auth/views/components/sections/FeaturedUsers.vue +1 -1
  622. package/src/modules/backoffice/components/admin/Users.vue +1 -1
  623. package/src/modules/backoffice/components/partials/Sidebar.vue +3 -3
  624. package/src/modules/community/components/blocks/CardBlogpost.vue +1 -1
  625. package/src/modules/community/components/layouts/Community.vue +5 -5
  626. package/src/modules/community/components/pages/Blog.vue +1 -1
  627. package/src/modules/community/components/sections/Comments.vue +1 -1
  628. package/src/modules/constructor/components/sections/Viewer.vue +1 -1
  629. package/src/modules/events/components/blocks/CardEvent.vue +35 -29
  630. package/src/modules/events/components/pages/Event.vue +4 -3
  631. package/src/modules/events/components/pages/Events.vue +3 -3
  632. package/src/modules/events/components/pages/EventsBackoffice.vue +1 -1
  633. package/src/modules/events/components/sections/FeaturedEvents.vue +8 -4
  634. package/src/modules/events/components/sections/List.vue +17 -18
  635. package/src/modules/events/components/sections/SelectDate.vue +2 -2
  636. package/src/modules/files/controllers/files.controller.js +14 -3
  637. package/src/modules/files/middlewares/server/middlewareBusboy.js +46 -17
  638. package/src/modules/globals/controllers/classes/crud/crud.controller.js +5 -2
  639. package/src/modules/globals/controllers/classes/crud/crud.js +1 -1
  640. package/src/modules/globals/controllers/classes/crud/crud.service.js +0 -1
  641. package/src/modules/globals/controllers/classes/globals.abac.js +1 -1
  642. package/src/modules/globals/locales/en.js +8 -0
  643. package/src/modules/globals/models/schemas/ownership.schema.js +2 -2
  644. package/src/modules/globals/views/classes/globals.store.js +8 -2
  645. package/src/modules/globals/views/components/blocks/BlockSearch.vue +12 -17
  646. package/src/modules/globals/views/components/blocks/CardHeader.vue +9 -11
  647. package/src/modules/globals/views/components/blocks/PopupDateSelector.vue +19 -9
  648. package/src/modules/globals/views/components/layouts/Client.vue +15 -9
  649. package/src/modules/globals/views/components/partials/CitySelection.vue +1 -1
  650. package/src/modules/globals/views/components/partials/FooterAlt.vue +1 -1
  651. package/src/modules/globals/views/components/partials/Sidebar.vue +1 -1
  652. package/src/modules/globals/views/components/sections/Walkthrough.vue +2 -2
  653. package/src/modules/globals/views/plugins/date-picker.plugin.js +17 -7
  654. package/src/modules/globals/views/router/addRoutes.js +4 -1
  655. package/src/modules/globals/views/store/globals.js +1 -1
  656. package/src/modules/icons/actions/IconOpenLink.vue +14 -0
  657. package/src/modules/icons/entities/IconInfo.vue +2 -2
  658. package/src/modules/icons/icons.client.js +8 -0
  659. package/src/modules/icons/pages/IconsPage.vue +2 -0
  660. package/src/modules/icons/skeletons/SkeletonEventShort.vue +2 -2
  661. package/src/modules/icons/socials/telegram.vue +2 -2
  662. package/src/modules/inventory/components/forms/AdjustmentForm.vue +225 -0
  663. package/src/modules/inventory/components/forms/ColumnSettingsMenu.vue +80 -0
  664. package/src/modules/inventory/components/forms/HistoryView.vue +134 -0
  665. package/src/modules/inventory/components/forms/StockAlertsForm.vue +181 -0
  666. package/src/modules/{products/components/pages/Leftovers.vue → inventory/components/pages/Inventory.vue} +60 -41
  667. package/src/modules/{products/components/pages/LeftoverEdit.vue → inventory/components/pages/InventoryEdit.vue} +131 -86
  668. package/src/modules/inventory/docs/README.md +291 -0
  669. package/src/modules/inventory/inventory.client.js +65 -0
  670. package/src/modules/inventory/inventory.server.js +8 -5
  671. package/src/modules/inventory/middlewares/stock.alerts.verifier.js +194 -0
  672. package/src/modules/inventory/models/stock.alerts.model.js +45 -0
  673. package/src/modules/inventory/models/stock.audit.model.js +60 -0
  674. package/src/modules/inventory/models/stock.availability.model.js +6 -6
  675. package/src/modules/inventory/policies/inventory.policies.js +28 -28
  676. package/src/modules/inventory/router/inventory.router.js +28 -0
  677. package/src/modules/inventory/routes/inventory.routes.js +8 -4
  678. package/src/modules/inventory/routes/stock.alerts.routes.js +43 -0
  679. package/src/modules/inventory/services/inventory.crud.js +204 -21
  680. package/src/modules/inventory/services/inventory.verifier.js +67 -11
  681. package/src/modules/inventory/store/ inventory.store.js +4 -2
  682. package/src/modules/inventory/store/stock.alerts.store.js +5 -0
  683. package/src/modules/inventory/tests/inventory.test.js +281 -0
  684. package/src/modules/landing/components/sections/SectionEarn.vue +1 -1
  685. package/src/modules/landing/components/sections/SectionFeature.vue +1 -1
  686. package/src/modules/landing/components/sections/SectionFeaturesImages.vue +1 -1
  687. package/src/modules/landing/components/sections/SectionFocus.vue +1 -1
  688. package/src/modules/landing/components/sections/SectionGuide.vue +1 -1
  689. package/src/modules/landing/components/sections/SectionHeroToken.vue +1 -1
  690. package/src/modules/landing/components/sections/SectionHeroVideo.vue +2 -2
  691. package/src/modules/landing/components/sections/SectionJoinUs.vue +1 -1
  692. package/src/modules/landing/components/sections/SectionMobileApp.vue +1 -1
  693. package/src/modules/landing/components/sections/SubscribeNewsletter.vue +1 -1
  694. package/src/modules/marketplace/views/components/layouts/Marketplace.vue +14 -14
  695. package/src/modules/notifications/components/elements/NotificationBadge.vue +1 -1
  696. package/src/modules/orders/components/blocks/CardOrder.vue +7 -7
  697. package/src/modules/orders/components/blocks/CardOrderItem.vue +96 -91
  698. package/src/modules/orders/components/blocks/CardOrderUser.vue +1 -1
  699. package/src/modules/orders/components/elements/PriceTotal.vue +1 -1
  700. package/src/modules/orders/components/pages/Favorites.vue +1 -1
  701. package/src/modules/orders/components/pages/OrderBackoffice.vue +59 -29
  702. package/src/modules/orders/components/pages/OrderCreate.vue +15 -7
  703. package/src/modules/orders/components/pages/OrderCreateBackoffice.vue +201 -16
  704. package/src/modules/orders/components/pages/Orders_refact.vue +3 -3
  705. package/src/modules/orders/components/partials/ShopCart.vue +17 -8
  706. package/src/modules/orders/components/sections/Succes.vue +1 -1
  707. package/src/modules/orders/controllers/orders.controller.js +175 -77
  708. package/src/modules/orders/orders.client.js +6 -0
  709. package/src/modules/orders/routes/orders.routes.js +15 -10
  710. package/src/modules/orders/store/shopcart.js +54 -131
  711. package/src/modules/organizations/components/blocks/CardOrganization.vue +9 -1
  712. package/src/modules/organizations/components/blocks/Rating.vue +1 -1
  713. package/src/modules/organizations/components/pages/Department.vue +1 -1
  714. package/src/modules/organizations/components/pages/DepartmentEdit.vue +0 -1
  715. package/src/modules/organizations/components/pages/Organization.vue +2 -2
  716. package/src/modules/organizations/components/pages/OrganizationBackoffice.vue +3 -3
  717. package/src/modules/organizations/components/pages/Organizations.vue +1 -1
  718. package/src/modules/organizations/components/sections/DetailsTabSection.vue +1 -1
  719. package/src/modules/organizations/configs/navigation.organization.config.js +3 -3
  720. package/src/modules/organizations/controllers/utils/lookupConfigs.js +22 -1
  721. package/src/modules/organizations/models/schemas/accesses.schema.js +1 -1
  722. package/src/modules/organizations/organizations.client.js +0 -3
  723. package/src/modules/organizations/router/organizations.js +0 -2
  724. package/src/modules/products/components/blocks/CardProduct.vue +1 -1
  725. package/src/modules/products/components/blocks/ProductVariants.vue +5 -5
  726. package/src/modules/products/components/elements/Price.vue +1 -1
  727. package/src/modules/products/components/forms/StockHistoryView.vue +4 -4
  728. package/src/modules/products/components/pages/Categories.vue +4 -2
  729. package/src/modules/products/components/pages/CategoryEdit.vue +23 -10
  730. package/src/modules/products/components/pages/Product.vue +28 -78
  731. package/src/modules/products/components/pages/ProductEdit.vue +3 -12
  732. package/src/modules/products/components/pages/Products.vue +3 -2
  733. package/src/modules/products/components/sections/EditIngredients.vue +11 -2
  734. package/src/modules/products/components/sections/EditRecommended.vue +3 -14
  735. package/src/modules/products/components/sections/EditVariants.vue +52 -25
  736. package/src/modules/products/components/sections/FilterProducts.vue +3 -3
  737. package/src/modules/products/components/sections/HeroRecommendation.vue +1 -1
  738. package/src/modules/products/components/sections/ProductConfigurator.vue +5 -11
  739. package/src/modules/products/components/sections/SectionProduct.vue +2 -2
  740. package/src/modules/products/controllers/configs/products.lookup.config.js +52 -80
  741. package/src/modules/products/controllers/products.controller.js +2 -2
  742. package/src/modules/products/middlewares/variants.verifier.js +1 -1
  743. package/src/modules/products/products.client.js +0 -12
  744. package/src/modules/products/products.server.js +0 -8
  745. package/src/modules/products/routes/variants.routes.js +0 -59
  746. package/src/modules/products/store/products.js +4 -4
  747. package/src/modules/rents/controllers/services/rents.services.js +41 -11
  748. package/src/modules/rents/models/rent.model.js +1 -0
  749. package/src/modules/rents/views/components/pages/GanttChart.vue +1 -1
  750. package/src/modules/rents/views/components/pages/RentsEdit.vue +10 -2
  751. package/src/modules/spots/components/blocks/CardSpot.vue +14 -11
  752. package/src/modules/spots/components/pages/Spot.vue +1 -1
  753. package/src/modules/wallet/views/components/pages/Wallet.vue +2 -2
  754. package/src/styles/base/all.scss +10 -1
  755. package/src/styles/base/borders.scss +234 -155
  756. package/src/styles/layout.scss +36 -0
  757. package/src/styles/typography.scss +12 -4
  758. package/dist/Media-B2jWzwLB.cjs +0 -1
  759. package/dist/Media-DZ5_ItXQ.js +0 -111
  760. package/dist/main-C6_DPWGX.cjs +0 -11
  761. package/dist/martyrs/src/components/Button/Button.vue.js.map +0 -1
  762. package/dist/martyrs/src/components/Chips/Chips.vue.cjs.map +0 -1
  763. package/dist/martyrs/src/components/Chips/Chips.vue.js.map +0 -1
  764. package/dist/martyrs/src/components/Field/Field.vue2.cjs.map +0 -1
  765. package/dist/martyrs/src/components/Field/Field.vue2.js.map +0 -1
  766. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.cjs +0 -184
  767. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.cjs.map +0 -1
  768. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.js +0 -184
  769. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.js.map +0 -1
  770. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterOptions.vue.cjs +0 -67
  771. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterOptions.vue.cjs.map +0 -1
  772. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterOptions.vue.js +0 -67
  773. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterOptions.vue.js.map +0 -1
  774. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterPrice.vue.cjs +0 -91
  775. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterPrice.vue.cjs.map +0 -1
  776. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterPrice.vue.js +0 -91
  777. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterPrice.vue.js.map +0 -1
  778. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterRange.vue2.cjs +0 -64
  779. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterRange.vue2.cjs.map +0 -1
  780. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterRange.vue2.js +0 -64
  781. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterRange.vue2.js.map +0 -1
  782. package/dist/martyrs/src/modules/organizations/components/blocks/EditArray.vue.cjs +0 -80
  783. package/dist/martyrs/src/modules/organizations/components/blocks/EditArray.vue.cjs.map +0 -1
  784. package/dist/martyrs/src/modules/organizations/components/blocks/EditArray.vue.js +0 -80
  785. package/dist/martyrs/src/modules/organizations/components/blocks/EditArray.vue.js.map +0 -1
  786. package/dist/martyrs/src/modules/products/components/blocks/CardLeftover.vue.cjs +0 -118
  787. package/dist/martyrs/src/modules/products/components/blocks/CardLeftover.vue.cjs.map +0 -1
  788. package/dist/martyrs/src/modules/products/components/blocks/CardLeftover.vue.js +0 -118
  789. package/dist/martyrs/src/modules/products/components/blocks/CardLeftover.vue.js.map +0 -1
  790. package/dist/martyrs/src/modules/products/components/forms/ColumnSettingsMenu.vue.cjs +0 -73
  791. package/dist/martyrs/src/modules/products/components/forms/ColumnSettingsMenu.vue.cjs.map +0 -1
  792. package/dist/martyrs/src/modules/products/components/forms/ColumnSettingsMenu.vue.js +0 -73
  793. package/dist/martyrs/src/modules/products/components/forms/ColumnSettingsMenu.vue.js.map +0 -1
  794. package/dist/martyrs/src/modules/products/components/forms/ReorderSettingsForm.vue.cjs +0 -101
  795. package/dist/martyrs/src/modules/products/components/forms/ReorderSettingsForm.vue.cjs.map +0 -1
  796. package/dist/martyrs/src/modules/products/components/forms/ReorderSettingsForm.vue.js +0 -101
  797. package/dist/martyrs/src/modules/products/components/forms/ReorderSettingsForm.vue.js.map +0 -1
  798. package/dist/martyrs/src/modules/products/components/forms/StockAuditForm.vue.cjs +0 -135
  799. package/dist/martyrs/src/modules/products/components/forms/StockAuditForm.vue.cjs.map +0 -1
  800. package/dist/martyrs/src/modules/products/components/forms/StockAuditForm.vue.js +0 -135
  801. package/dist/martyrs/src/modules/products/components/forms/StockAuditForm.vue.js.map +0 -1
  802. package/dist/martyrs/src/modules/products/components/forms/StockHistoryView.vue.cjs +0 -148
  803. package/dist/martyrs/src/modules/products/components/forms/StockHistoryView.vue.cjs.map +0 -1
  804. package/dist/martyrs/src/modules/products/components/forms/StockHistoryView.vue.js +0 -148
  805. package/dist/martyrs/src/modules/products/components/forms/StockHistoryView.vue.js.map +0 -1
  806. package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.cjs +0 -345
  807. package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.cjs.map +0 -1
  808. package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.js +0 -345
  809. package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.js.map +0 -1
  810. package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.cjs +0 -316
  811. package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.cjs.map +0 -1
  812. package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.js +0 -316
  813. package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.js.map +0 -1
  814. package/dist/martyrs/src/modules/products/router/leftovers.router.cjs +0 -51
  815. package/dist/martyrs/src/modules/products/router/leftovers.router.cjs.map +0 -1
  816. package/dist/martyrs/src/modules/products/router/leftovers.router.js +0 -51
  817. package/dist/martyrs/src/modules/products/router/leftovers.router.js.map +0 -1
  818. package/dist/martyrs/src/modules/products/store/leftovers.cjs +0 -111
  819. package/dist/martyrs/src/modules/products/store/leftovers.cjs.map +0 -1
  820. package/dist/martyrs/src/modules/products/store/leftovers.js +0 -111
  821. package/dist/martyrs/src/modules/products/store/leftovers.js.map +0 -1
  822. package/src/modules/inventory/models/stock.inventory.model.js +0 -38
  823. package/src/modules/organizations/components/blocks/EditArray.vue +0 -147
  824. package/src/modules/products/components/blocks/CardLeftover.vue +0 -117
  825. package/src/modules/products/controllers/leftovers.controller.js +0 -117
  826. package/src/modules/products/models/leftover.model.js +0 -105
  827. package/src/modules/products/router/leftovers.router.js +0 -40
  828. package/src/modules/products/routes/leftovers.routes.js +0 -15
  829. package/src/modules/products/store/leftovers.js +0 -121
@@ -2,18 +2,18 @@ import { ref, onMounted, createElementBlock, createCommentVNode, unref, openBloc
2
2
  import { useRoute, useRouter } from "vue-router";
3
3
  import _sfc_main$1 from "../../../../components/Block/Block.vue.js";
4
4
  import _sfc_main$3 from "../../../../components/Tab/Tab.vue2.js";
5
- import _sfc_main$6 from "../../../../components/Field/Field.vue2.js";
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";
7
+ import _sfc_main$2 from "../../../../components/Button/Button.vue2.js";
8
8
  import _sfc_main$4 from "../../../../components/EditImages/EditImages.vue2.js";
9
9
  import BlockMultiselect from "../../../globals/views/components/blocks/BlockMultiselect.vue.js";
10
10
  import _sfc_main$5 from "../../../icons/navigation/IconCross.vue.js";
11
- import _sfc_main$b from "../../../icons/navigation/IconDelete.vue.js";
12
- import _sfc_main$8 from "../sections/EditVariants.vue.js";
13
- import _sfc_main$7 from "../sections/EditAttributes.vue.js";
14
- import _sfc_main$9 from "../sections/EditDiscounts.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";
15
15
  /* empty css */
16
- import _sfc_main$a from "../sections/EditRecommended.vue.js";
16
+ import _sfc_main$9 from "../sections/EditRecommended.vue.js";
17
17
  import { setError } from "../../../globals/views/store/globals.js";
18
18
  import { state as state$2 } from "../../../auth/views/store/auth.js";
19
19
  import { mutations, actions, state } from "../../store/products.js";
@@ -95,7 +95,6 @@ const _sfc_main = {
95
95
  });
96
96
  async function onSubmit() {
97
97
  try {
98
- console.log("product is", state.current);
99
98
  if (route.params.product) {
100
99
  await actions.update(route.params.product, state.current);
101
100
  } else {
@@ -129,7 +128,7 @@ const _sfc_main = {
129
128
  return unref(isPageLoaded) ? (openBlock(), createElementBlock("div", _hoisted_1, [
130
129
  !_ctx.MOBILE_APP ? (openBlock(), createBlock(_sfc_main$1, {
131
130
  key: 0,
132
- class: "flex-nowrap gap-thin flex-v-center flex"
131
+ class: "flex-nowrap mn-b-thin gap-thin flex-v-center flex"
133
132
  }, {
134
133
  default: withCtx(() => [
135
134
  createElementVNode("h2", _hoisted_2, toDisplayString(unref(route).params.product ? state.current.name : "Create Product"), 1),
@@ -168,7 +167,8 @@ const _sfc_main = {
168
167
  { label: "Recommended", value: "recommended" },
169
168
  { label: "Localization", value: "localization" }
170
169
  ],
171
- class: "flex-child-default bg-light radius-medium h-max pd-thin o-x-scroll"
170
+ class: "flex-child-default gap-micro scroll-hide bg-light radius-medium h-max pd-thin mn-b-thin o-x-scroll",
171
+ classTab: "bg-white"
172
172
  }, null, 8, ["selected"])) : createCommentVNode("", true),
173
173
  unref(activeTab) === "details" ? (openBlock(), createElementBlock("div", _hoisted_3, [
174
174
  createVNode(_sfc_main$1, {
@@ -285,13 +285,13 @@ const _sfc_main = {
285
285
  class: "pos-relative w-100 bg-white radius-small pd-medium"
286
286
  }, null, 8, ["select"])
287
287
  ]),
288
- createVNode(_sfc_main$6, {
288
+ createVNode(Field, {
289
289
  field: state.current.name,
290
290
  "onUpdate:field": _cache[5] || (_cache[5] = ($event) => state.current.name = $event),
291
291
  placeholder: "Enter product name",
292
292
  class: "w-100 mn-b-thin bg-white radius-small pd-medium"
293
293
  }, null, 8, ["field"]),
294
- createVNode(_sfc_main$6, {
294
+ createVNode(Field, {
295
295
  field: state.current.description,
296
296
  "onUpdate:field": _cache[6] || (_cache[6] = ($event) => state.current.description = $event),
297
297
  placeholder: "Enter product description",
@@ -299,7 +299,7 @@ const _sfc_main = {
299
299
  style: { "resize": "vertical" },
300
300
  type: "textarea"
301
301
  }, null, 8, ["field"]),
302
- createVNode(_sfc_main$6, {
302
+ createVNode(Field, {
303
303
  field: state.current.included,
304
304
  "onUpdate:field": _cache[7] || (_cache[7] = ($event) => state.current.included = $event),
305
305
  placeholder: "Enter what's inside",
@@ -310,22 +310,22 @@ const _sfc_main = {
310
310
  ]),
311
311
  _: 1
312
312
  }),
313
- createVNode(_sfc_main$7, {
313
+ createVNode(_sfc_main$6, {
314
314
  attributes: state.current.attributes,
315
315
  "onUpdate:attributes": _cache[8] || (_cache[8] = ($event) => state.current.attributes = $event)
316
316
  }, null, 8, ["attributes"])
317
317
  ])) : createCommentVNode("", true),
318
- unref(activeTab) === "variants" ? (openBlock(), createBlock(_sfc_main$8, {
318
+ unref(activeTab) === "variants" ? (openBlock(), createBlock(_sfc_main$7, {
319
319
  key: 3,
320
320
  variants: state.current.variants,
321
321
  "onUpdate:variants": _cache[9] || (_cache[9] = ($event) => state.current.variants = $event)
322
322
  }, null, 8, ["variants"])) : createCommentVNode("", true),
323
- unref(activeTab) === "discounts" ? (openBlock(), createBlock(_sfc_main$9, {
323
+ unref(activeTab) === "discounts" ? (openBlock(), createBlock(_sfc_main$8, {
324
324
  key: 4,
325
325
  discounts: state.current.discounts,
326
326
  "onUpdate:discounts": _cache[10] || (_cache[10] = ($event) => state.current.discounts = $event)
327
327
  }, null, 8, ["discounts"])) : createCommentVNode("", true),
328
- unref(activeTab) === "recommended" ? (openBlock(), createBlock(_sfc_main$a, {
328
+ unref(activeTab) === "recommended" ? (openBlock(), createBlock(_sfc_main$9, {
329
329
  key: 5,
330
330
  recommended: state.current.recommended,
331
331
  "onUpdate:recommended": _cache[11] || (_cache[11] = ($event) => state.current.recommended = $event),
@@ -346,26 +346,26 @@ const _sfc_main = {
346
346
  class: "gap-thin mn-b-thin flex-nowrap flex",
347
347
  key: index
348
348
  }, [
349
- createVNode(_sfc_main$6, {
349
+ createVNode(Field, {
350
350
  field: item.locale,
351
351
  "onUpdate:field": ($event) => item.locale = $event,
352
352
  placeholder: "Locale (en, ru, etc.)",
353
353
  class: "w-30 bg-white radius-small pd-medium"
354
354
  }, null, 8, ["field", "onUpdate:field"]),
355
- createVNode(_sfc_main$6, {
355
+ createVNode(Field, {
356
356
  field: item.name,
357
357
  "onUpdate:field": ($event) => item.name = $event,
358
358
  placeholder: "Product name",
359
359
  class: "w-100 bg-white radius-small pd-medium"
360
360
  }, null, 8, ["field", "onUpdate:field"]),
361
- createVNode(_sfc_main$6, {
361
+ createVNode(Field, {
362
362
  field: item.description,
363
363
  "onUpdate:field": ($event) => item.description = $event,
364
364
  placeholder: "Product description",
365
365
  class: "w-100 bg-white radius-small pd-medium"
366
366
  }, null, 8, ["field", "onUpdate:field"]),
367
367
  createElementVNode("div", _hoisted_13, [
368
- createVNode(_sfc_main$b, {
368
+ createVNode(_sfc_main$a, {
369
369
  onClick: () => state.current.translations.splice(index, 1),
370
370
  class: "i-medium"
371
371
  }, null, 8, ["onClick"])
@@ -379,7 +379,6 @@ const _sfc_main = {
379
379
  unref(route).params.product ? (openBlock(), createBlock(_sfc_main$2, {
380
380
  key: 0,
381
381
  submit: onDelete,
382
- callback: redirectTo,
383
382
  class: "bg-red t-white w-100"
384
383
  }, {
385
384
  default: withCtx(() => _cache[14] || (_cache[14] = [
@@ -389,7 +388,6 @@ const _sfc_main = {
389
388
  })) : createCommentVNode("", true),
390
389
  createVNode(_sfc_main$2, {
391
390
  submit: onSubmit,
392
- callback: redirectTo,
393
391
  class: "w-100 bg-main"
394
392
  }, {
395
393
  default: withCtx(() => _cache[15] || (_cache[15] = [
@@ -1 +1 @@
1
- {"version":3,"file":"ProductEdit.vue.js","sources":["../../../../../../../src/modules/products/components/pages/ProductEdit.vue"],"sourcesContent":["<template>\n <div v-if=\"isPageLoaded\" class=\"w-100 bg-white pd-thin gap-thin\">\n \n <Block v-if=\"!MOBILE_APP\" class=\"flex-nowrap gap-thin flex-v-center flex\">\n <h2 class=\"t-truncate mn-r-auto\">\n {{ route.params.product ? products.state.current.name : 'Create Product' }}\n </h2>\n\n <Button \n v-if=\"route.params.product\"\n :submit=\"onDelete\" \n :callback=\"redirectTo\"\n class=\"w-10 w-max-20r w-min-8r bg-red\"\n >\n Delete \n </Button>\n\n <Button \n :submit=\"onSubmit\" \n :callback=\"redirectTo\"\n class=\"w-10 w-max-20r w-min-8r bg-main\"\n >\n Save\n </Button>\n </Block>\n\n <!-- Tab Navigation -->\n <Tab\n v-model:selected=\"activeTab\"\n v-if=\"route.params.product\"\n :tabs=\"[\n { label: 'Details', value: 'details' },\n { label: 'Variants', value: 'variants' },\n { label: 'Discounts', value: 'discounts' },\n { label: 'Recommended', value: 'recommended' },\n { label: 'Localization', value: 'localization' }\n ]\"\n class=\"flex-child-default bg-light radius-medium h-max pd-thin o-x-scroll\"\n />\n\n <!-- Tab Content -->\n <div v-if=\"activeTab === 'details'\" class=\"cols-1 gap-thin\">\n <!-- Product Images -->\n <Block\n placeholder=\"The product doesn't have any images yet.\"\n class=\"h-min\"\n >\n <EditImages \n :images=\"products.state.current.images\"\n :uploadPath=\"'photos'\" \n @update:images=\"(imagesNew) => { products.state.current.images = imagesNew }\" \n />\n </Block>\n\n <Block title=\"Categories\">\n <BlockMultiselect\n v-model=\"products.state.current.category\"\n placeholder=\"Search categories...\"\n :multiple=\"true\"\n :transform=\"(item) => ({ _id: item._id, name: item.name })\"\n :store=\"{\n read: (options) => categories.actions.read(options),\n state: categories.state\n }\"\n :options=\"{\n rootOnly: false,\n excludeChildren: false,\n limit: 50\n }\"\n :skeleton=\"{\n hide: false,\n horizontal: true,\n class: 'radius-small',\n structure: [{ \n block: 'text', size: 'large'\n }]\n }\"\n :states=\"{\n empty: {\n title: 'No categories found',\n description: 'Try different search terms or create a new category',\n class: 'radius-small'\n }\n }\"\n key=\"_id\"\n :label=\"item => item.name\"\n classSearch=\"bg-white radius-small\"\n classSelected=\"bg-white pd-small radius-small\"\n classDropdown=\"bg-white pd-small radius-medium bs-small\"\n classItem=\"pd-small radius-small hover-bg-light cursor-pointer\"\n classFeed=\"h-max-30r gap-thin flex-column flex o-scroll\"\n >\n <!-- Слот для выбранных категорий -->\n <template #selected=\"{ item, clear }\">\n <div class=\"flex-nowrap flex-v-center flex gap-thin\">\n <span class=\"t-medium\">{{ item?.name || item }}</span>\n <button \n @click.stop=\"clear\"\n class=\"i-small pd-micro bg-red radius-extra flex-center flex aspect-1x1 hover-scale-1\"\n >\n <IconCross class=\"i-micro fill-white\" />\n </button>\n </div>\n </template>\n \n <!-- Слот для элементов в списке -->\n <template #item=\"{ item }\">\n <div class=\"flex-nowrap flex-v-center flex\">\n <img \n v-if=\"item.photo\" \n :src=\"(FILE_SERVER_URL || '') + item.photo\"\n class=\"i-medium radius-small object-fit-cover mn-r-thin\"\n />\n <div class=\"w-100\">\n <p class=\"t-medium\">{{ item.name }}</p>\n <p v-if=\"item.description\" class=\"t-small t-transp\">{{ item.description }}</p>\n </div>\n </div>\n </template>\n </BlockMultiselect>\n </Block>\n\n <!-- Product Profile -->\n <Block title=\"Profile\">\n <div class=\"mn-b-thin flex-nowrap flex gap-thin\">\n <Select \n v-model:select=\"products.state.current.status\"\n label=\"Status\"\n :options=\"[\n 'draft', \n 'published',\n 'featured',\n 'archived',\n 'removed'\n ]\"\n placeholder=\"Display product\"\n class=\"pos-relative w-100 bg-white radius-small pd-medium\"\n />\n <Select \n v-model:select=\"products.state.current.listing\"\n label=\"Type\"\n :options=\"[\n 'sale', \n 'rent',\n ]\"\n placeholder=\"Type of listing\"\n class=\"pos-relative w-100 bg-white radius-small pd-medium\"\n />\n </div>\n\n <Field \n v-model:field=\"products.state.current.name\" \n placeholder=\"Enter product name\"\n class=\"w-100 mn-b-thin bg-white radius-small pd-medium\"\n />\n <Field\n v-model:field=\"products.state.current.description\" \n placeholder=\"Enter product description\" \n class=\"w-100 bg-white radius-small mn-b-thin pd-medium\"\n style=\"resize: vertical\"\n type=\"textarea\"\n />\n <Field\n v-model:field=\"products.state.current.included\" \n placeholder=\"Enter what's inside\" \n class=\"w-100 bg-white radius-small pd-medium\"\n style=\"resize: vertical\"\n type=\"textarea\"\n />\n </Block>\n <!-- Categories -->\n \n\n\n <!-- Attributes -->\n <EditAttributes \n v-model:attributes=\"products.state.current.attributes\" \n />\n </div>\n\n <!-- Variants Tab -->\n <EditVariants\n\t\t\tv-if=\"activeTab === 'variants'\"\n v-model:variants=\"products.state.current.variants\" \n />\n\n <!-- Discounts Tab -->\n <EditDiscounts\n\t\t\tv-if=\"activeTab === 'discounts'\"\n v-model:discounts=\"products.state.current.discounts\"\n />\n <EditRecommended \n v-if=\"activeTab === 'recommended'\" \n v-model:recommended=\"products.state.current.recommended\"\n class=\"cols-1 gap-thin\"\n />\n\n <!-- Localization Tab -->\n <Block\n\t\t v-if=\"activeTab === 'localization'\"\n title=\"Localization\"\n placeholder=\"No localizations added yet\"\n :actions=\"[{\n label: '+',\n function: () => products.state.current.translations.push({locale: '', name: '', description: ''})\n }]\"\n >\n <div \n class=\"gap-thin mn-b-thin flex-nowrap flex\" \n v-for=\"(item, index) in products.state.current.translations\" \n :key=\"index\"\n > \n <Field\n v-model:field=\"item.locale\"\n placeholder=\"Locale (en, ru, etc.)\"\n class=\"w-30 bg-white radius-small pd-medium\"\n /> \n <Field\n v-model:field=\"item.name\"\n placeholder=\"Product name\"\n class=\"w-100 bg-white radius-small pd-medium\"\n />\n <Field\n v-model:field=\"item.description\"\n placeholder=\"Product description\"\n class=\"w-100 bg-white radius-small pd-medium\"\n />\n <div class=\"radius-small pd-small flex-center flex aspect-1x1 bg-red cursor-pointer hover-scale-1\">\n <IconDelete \n @click=\"() => products.state.current.translations.splice(index, 1)\" \n class=\"i-medium\"\n />\n </div>\n </div>\n </Block>\n\n <!-- Bottom Action Buttons -->\n <div class=\"flex-nowrap flex gap-thin\">\n <Button \n v-if=\"route.params.product\"\n :submit=\"onDelete\" \n :callback=\"redirectTo\"\n class=\"bg-red t-white w-100\"\n >\n Delete \n </Button>\n\n <Button \n :submit=\"onSubmit\" \n :callback=\"redirectTo\"\n class=\"w-100 bg-main\"\n >\n Save\n </Button>\n </div>\n </div>\n</template>\n\n<script setup>\n// Import libs\nimport { reactive, computed, onMounted, ref } from 'vue'\nimport { useRoute, useRouter } from 'vue-router'\n\n// Import components\nimport Block from '@martyrs/src/components/Block/Block.vue';\nimport Tab from \"@martyrs/src/components/Tab/Tab.vue\";\nimport Field from \"@martyrs/src/components/Field/Field.vue\";\nimport Select from '@martyrs/src/components/Select/Select.vue';\nimport Checkbox from \"@martyrs/src/components/Checkbox/Checkbox.vue\";\nimport Button from \"@martyrs/src/components/Button/Button.vue\";\nimport Tree from \"@martyrs/src/components/Tree/Tree.vue\";\nimport EditImages from '@martyrs/src/components/EditImages/EditImages.vue';\n\nimport BlockMultiselect from '@martyrs/src/modules/globals/views/components/blocks/BlockMultiselect.vue';\nimport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue';\nimport IconDelete from '@martyrs/src/modules/icons/navigation/IconDelete.vue';\n\nimport EditVariants from '@martyrs/src/modules/products/components/sections/EditVariants.vue';\nimport EditAttributes from '@martyrs/src/modules/products/components/sections/EditAttributes.vue';\nimport EditDiscounts from '@martyrs/src/modules/products/components/sections/EditDiscounts.vue';\nimport EditCategories from '@martyrs/src/modules/products/components/sections/EditCategories.vue';\nimport EditRecommended from '@martyrs/src/modules/products/components/sections/EditRecommended.vue';\n\n// Accessing router and store\nimport * as globals from '@martyrs/src/modules/globals/views/store/globals.js';\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\nimport * as products from '@martyrs/src/modules/products/store/products.js';\nimport * as categories from '@martyrs/src/modules/products/store/categories.js';\n\nimport { setError } from '@martyrs/src/modules/globals/views/store/globals.js'\n\nconst route = useRoute()\nconst router = useRouter()\nconst emits = defineEmits(['page-loading', 'page-loaded']);\n\nlet isPageLoaded = ref(false)\nlet activeTab = ref('details')\n\nonMounted(async() => { \n emits('page-loading');\n\n products.mutations.resetProduct();\n\n if (route.params.product) {\n await products.actions.read({ _id: route.params.product, lookup: ['variants','categories','recommended'] });\n } else {\n // Создаем дефолтный вариант для нового товара\n if (!products.state.current.variants || products.state.current.variants.length === 0) {\n products.state.current.variants = [{\n name: 'Default',\n sku: '',\n images: [],\n price: 0,\n cost: 0,\n quantity: 1,\n unit: 'pcs',\n available: 0,\n ingredients: [],\n attributes: []\n }];\n }\n }\n\n // Убедимся, что массивы инициализированы\n if (!products.state.current.translations) {\n products.state.current.translations = []\n }\n // Убедимся, что массивы инициализированы\n if (!products.state.current.recommended) {\n products.state.current.recommended = []\n }\n if (!products.state.current.discounts) {\n products.state.current.discounts = []\n }\n\n try {\n // Data prefetching\n categories.state.all = await categories.actions.read({\n user: auth.state.user._id,\n rootOnly: true,\n excludeChildren: false,\n limit: 100\n })\n } catch (error) {\n console.error('error loading categories:', error);\n }\n\n emits('page-loaded');\n isPageLoaded.value = true\n})\n\nasync function onSubmit() {\n try {\n // // Проверка на наличие хотя бы одного варианта\n // if (!products.state.current.variants || products.state.current.variants.length === 0) {\n // setError({ response: { data: { errorCode: \"PRODUCT_MUST_HAVE_VARIANT\" }} })\n // return;\n // }\n console.log('product is',products.state.current)\n if (route.params.product) {\n await products.actions.update(route.params.product, products.state.current)\n } else {\n products.state.current.owner = {\n target: route.params._id || auth.state.user._id,\n type: route.params._id ? 'organization' : 'user'\n }\n \n products.state.current.creator = {\n target: auth.state.user._id,\n type: 'user',\n hidden: false\n }\n\n await products.actions.create(products.state.current)\n }\n \n redirectTo()\n } catch (error) {\n setError({ response: { data: { errorCode: \"PRODUCT_NOT_CREATED\" }} })\n console.error('Product creation error:', error)\n }\n}\n\nfunction onDelete() {\n products.actions.deleteProduct(products.state.current._id)\n}\n\nfunction redirectTo() {\n router.push({\n name: route.params._id ? 'Organization' : 'Products', \n params: route.params._id ? { _id: route.params._id } : {}\n })\n}\n</script>"],"names":["products.mutations","products.actions","products.state","categories.state","categories.actions","auth.state"],"mappings":"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"}
1
+ {"version":3,"file":"ProductEdit.vue.js","sources":["../../../../../../../src/modules/products/components/pages/ProductEdit.vue"],"sourcesContent":["<template>\n <div v-if=\"isPageLoaded\" class=\"w-100 bg-white pd-thin gap-thin\">\n \n <Block v-if=\"!MOBILE_APP\" class=\"flex-nowrap mn-b-thin gap-thin flex-v-center flex\">\n <h2 class=\"t-truncate mn-r-auto\">\n {{ route.params.product ? products.state.current.name : 'Create Product' }}\n </h2>\n\n <Button \n v-if=\"route.params.product\"\n :submit=\"onDelete\" \n :callback=\"redirectTo\"\n class=\"w-10 w-max-20r w-min-8r bg-red\"\n >\n Delete \n </Button>\n\n <Button \n :submit=\"onSubmit\" \n :callback=\"redirectTo\"\n class=\"w-10 w-max-20r w-min-8r bg-main\"\n >\n Save\n </Button>\n </Block>\n\n <!-- Tab Navigation -->\n <Tab\n v-model:selected=\"activeTab\"\n v-if=\"route.params.product\"\n :tabs=\"[\n { label: 'Details', value: 'details' },\n { label: 'Variants', value: 'variants' },\n { label: 'Discounts', value: 'discounts' },\n { label: 'Recommended', value: 'recommended' },\n { label: 'Localization', value: 'localization' }\n ]\"\n class=\"flex-child-default gap-micro scroll-hide bg-light radius-medium h-max pd-thin mn-b-thin o-x-scroll\"\n classTab=\"bg-white\"\n />\n\n <!-- Tab Content -->\n <div v-if=\"activeTab === 'details'\" class=\"cols-1 gap-thin\">\n <!-- Product Images -->\n <Block\n placeholder=\"The product doesn't have any images yet.\"\n class=\"h-min\"\n >\n <EditImages \n :images=\"products.state.current.images\"\n :uploadPath=\"'photos'\" \n @update:images=\"(imagesNew) => { products.state.current.images = imagesNew }\" \n />\n </Block>\n\n <Block title=\"Categories\">\n <BlockMultiselect\n v-model=\"products.state.current.category\"\n placeholder=\"Search categories...\"\n :multiple=\"true\"\n :transform=\"(item) => ({ _id: item._id, name: item.name })\"\n :store=\"{\n read: (options) => categories.actions.read(options),\n state: categories.state\n }\"\n :options=\"{\n rootOnly: false,\n excludeChildren: false,\n limit: 50\n }\"\n :skeleton=\"{\n hide: false,\n horizontal: true,\n class: 'radius-small',\n structure: [{ \n block: 'text', size: 'large'\n }]\n }\"\n :states=\"{\n empty: {\n title: 'No categories found',\n description: 'Try different search terms or create a new category',\n class: 'radius-small'\n }\n }\"\n key=\"_id\"\n :label=\"item => item.name\"\n classSearch=\"bg-white radius-small\"\n classSelected=\"bg-white pd-small radius-small\"\n classDropdown=\"bg-white pd-small radius-medium bs-small\"\n classItem=\"pd-small radius-small hover-bg-light cursor-pointer\"\n classFeed=\"h-max-30r gap-thin flex-column flex o-scroll\"\n >\n <!-- Слот для выбранных категорий -->\n <template #selected=\"{ item, clear }\">\n <div class=\"flex-nowrap flex-v-center flex gap-thin\">\n <span class=\"t-medium\">{{ item?.name || item }}</span>\n <button \n @click.stop=\"clear\"\n class=\"i-small pd-micro bg-red radius-extra flex-center flex aspect-1x1 hover-scale-1\"\n >\n <IconCross class=\"i-micro fill-white\" />\n </button>\n </div>\n </template>\n \n <!-- Слот для элементов в списке -->\n <template #item=\"{ item }\">\n <div class=\"flex-nowrap flex-v-center flex\">\n <img \n v-if=\"item.photo\" \n :src=\"(FILE_SERVER_URL || '') + item.photo\"\n class=\"i-medium radius-small object-fit-cover mn-r-thin\"\n />\n <div class=\"w-100\">\n <p class=\"t-medium\">{{ item.name }}</p>\n <p v-if=\"item.description\" class=\"t-small t-transp\">{{ item.description }}</p>\n </div>\n </div>\n </template>\n </BlockMultiselect>\n </Block>\n\n <!-- Product Profile -->\n <Block title=\"Profile\">\n <div class=\"mn-b-thin flex-nowrap flex gap-thin\">\n <Select \n v-model:select=\"products.state.current.status\"\n label=\"Status\"\n :options=\"[\n 'draft', \n 'published',\n 'featured',\n 'archived',\n 'removed'\n ]\"\n placeholder=\"Display product\"\n class=\"pos-relative w-100 bg-white radius-small pd-medium\"\n />\n <Select \n v-model:select=\"products.state.current.listing\"\n label=\"Type\"\n :options=\"[\n 'sale', \n 'rent',\n ]\"\n placeholder=\"Type of listing\"\n class=\"pos-relative w-100 bg-white radius-small pd-medium\"\n />\n </div>\n\n <Field \n v-model:field=\"products.state.current.name\" \n placeholder=\"Enter product name\"\n class=\"w-100 mn-b-thin bg-white radius-small pd-medium\"\n />\n <Field\n v-model:field=\"products.state.current.description\" \n placeholder=\"Enter product description\" \n class=\"w-100 bg-white radius-small mn-b-thin pd-medium\"\n style=\"resize: vertical\"\n type=\"textarea\"\n />\n <Field\n v-model:field=\"products.state.current.included\" \n placeholder=\"Enter what's inside\" \n class=\"w-100 bg-white radius-small pd-medium\"\n style=\"resize: vertical\"\n type=\"textarea\"\n />\n </Block>\n <!-- Categories -->\n \n\n\n <!-- Attributes -->\n <EditAttributes \n v-model:attributes=\"products.state.current.attributes\" \n />\n </div>\n\n <!-- Variants Tab -->\n <EditVariants\n\t\t\tv-if=\"activeTab === 'variants'\"\n v-model:variants=\"products.state.current.variants\" \n />\n\n <!-- Discounts Tab -->\n <EditDiscounts\n\t\t\tv-if=\"activeTab === 'discounts'\"\n v-model:discounts=\"products.state.current.discounts\"\n />\n <EditRecommended \n v-if=\"activeTab === 'recommended'\" \n v-model:recommended=\"products.state.current.recommended\"\n class=\"cols-1 gap-thin\"\n />\n\n <!-- Localization Tab -->\n <Block\n\t\t v-if=\"activeTab === 'localization'\"\n title=\"Localization\"\n placeholder=\"No localizations added yet\"\n :actions=\"[{\n label: '+',\n function: () => products.state.current.translations.push({locale: '', name: '', description: ''})\n }]\"\n >\n <div \n class=\"gap-thin mn-b-thin flex-nowrap flex\" \n v-for=\"(item, index) in products.state.current.translations\" \n :key=\"index\"\n > \n <Field\n v-model:field=\"item.locale\"\n placeholder=\"Locale (en, ru, etc.)\"\n class=\"w-30 bg-white radius-small pd-medium\"\n /> \n <Field\n v-model:field=\"item.name\"\n placeholder=\"Product name\"\n class=\"w-100 bg-white radius-small pd-medium\"\n />\n <Field\n v-model:field=\"item.description\"\n placeholder=\"Product description\"\n class=\"w-100 bg-white radius-small pd-medium\"\n />\n <div class=\"radius-small pd-small flex-center flex aspect-1x1 bg-red cursor-pointer hover-scale-1\">\n <IconDelete \n @click=\"() => products.state.current.translations.splice(index, 1)\" \n class=\"i-medium\"\n />\n </div>\n </div>\n </Block>\n\n <!-- Bottom Action Buttons -->\n <div class=\"flex-nowrap flex gap-thin\">\n <Button \n v-if=\"route.params.product\"\n :submit=\"onDelete\" \n class=\"bg-red t-white w-100\"\n >\n Delete \n </Button>\n\n <Button \n :submit=\"onSubmit\" \n class=\"w-100 bg-main\"\n >\n Save\n </Button>\n </div>\n </div>\n</template>\n\n<script setup>\n// Import libs\nimport { reactive, computed, onMounted, ref } from 'vue'\nimport { useRoute, useRouter } from 'vue-router'\n\n// Import components\nimport Block from '@martyrs/src/components/Block/Block.vue';\nimport Tab from \"@martyrs/src/components/Tab/Tab.vue\";\nimport Field from \"@martyrs/src/components/Field/Field.vue\";\nimport Select from '@martyrs/src/components/Select/Select.vue';\nimport Checkbox from \"@martyrs/src/components/Checkbox/Checkbox.vue\";\nimport Button from \"@martyrs/src/components/Button/Button.vue\";\nimport Tree from \"@martyrs/src/components/Tree/Tree.vue\";\nimport EditImages from '@martyrs/src/components/EditImages/EditImages.vue';\n\nimport BlockMultiselect from '@martyrs/src/modules/globals/views/components/blocks/BlockMultiselect.vue';\nimport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue';\nimport IconDelete from '@martyrs/src/modules/icons/navigation/IconDelete.vue';\n\nimport EditVariants from '@martyrs/src/modules/products/components/sections/EditVariants.vue';\nimport EditAttributes from '@martyrs/src/modules/products/components/sections/EditAttributes.vue';\nimport EditDiscounts from '@martyrs/src/modules/products/components/sections/EditDiscounts.vue';\nimport EditCategories from '@martyrs/src/modules/products/components/sections/EditCategories.vue';\nimport EditRecommended from '@martyrs/src/modules/products/components/sections/EditRecommended.vue';\n\n// Accessing router and store\nimport * as globals from '@martyrs/src/modules/globals/views/store/globals.js';\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\nimport * as products from '@martyrs/src/modules/products/store/products.js';\nimport * as categories from '@martyrs/src/modules/products/store/categories.js';\n\nimport { setError } from '@martyrs/src/modules/globals/views/store/globals.js'\n\nconst route = useRoute()\nconst router = useRouter()\nconst emits = defineEmits(['page-loading', 'page-loaded']);\n\nlet isPageLoaded = ref(false)\nlet activeTab = ref('details')\n\nonMounted(async() => { \n emits('page-loading');\n\n products.mutations.resetProduct();\n\n if (route.params.product) {\n await products.actions.read({ _id: route.params.product, lookup: ['variants','categories','recommended'] });\n } else {\n // Создаем дефолтный вариант для нового товара\n if (!products.state.current.variants || products.state.current.variants.length === 0) {\n products.state.current.variants = [{\n name: 'Default',\n sku: '',\n images: [],\n price: 0,\n cost: 0,\n quantity: 1,\n unit: 'pcs',\n available: 0,\n ingredients: [],\n attributes: []\n }];\n }\n }\n\n // Убедимся, что массивы инициализированы\n if (!products.state.current.translations) {\n products.state.current.translations = []\n }\n // Убедимся, что массивы инициализированы\n if (!products.state.current.recommended) {\n products.state.current.recommended = []\n }\n if (!products.state.current.discounts) {\n products.state.current.discounts = []\n }\n\n try {\n // Data prefetching\n categories.state.all = await categories.actions.read({\n user: auth.state.user._id,\n rootOnly: true,\n excludeChildren: false,\n limit: 100\n })\n } catch (error) {\n console.error('error loading categories:', error);\n }\n\n emits('page-loaded');\n isPageLoaded.value = true\n})\n\nasync function onSubmit() {\n try {\n if (route.params.product) {\n await products.actions.update(route.params.product, products.state.current)\n } else {\n products.state.current.owner = {\n target: route.params._id || auth.state.user._id,\n type: route.params._id ? 'organization' : 'user'\n }\n products.state.current.creator = {\n target: auth.state.user._id,\n type: 'user',\n hidden: false\n }\n await products.actions.create(products.state.current)\n }\n \n redirectTo()\n } catch (error) {\n setError({ response: { data: { errorCode: \"PRODUCT_NOT_CREATED\" }} })\n console.error('Product creation error:', error)\n }\n}\n\nfunction onDelete() {\n products.actions.deleteProduct(products.state.current._id)\n}\n\nfunction redirectTo() {\n router.push({\n name: route.params._id ? 'Organization' : 'Products', \n params: route.params._id ? { _id: route.params._id } : {}\n })\n}\n</script>"],"names":["products.mutations","products.actions","products.state","categories.state","categories.actions","auth.state"],"mappings":"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"}
@@ -130,7 +130,7 @@ const _sfc_main = {
130
130
  ],
131
131
  style: { "flex": "0 0 auto" },
132
132
  class: "p-medium br-t br-solid br-light bg-white gap-micro pd-medium pd-t-thin pd-b-thin z-index-1",
133
- tabClass: "bg-light uppercase pd-small radius-small w-100"
133
+ classTab: "bg-light uppercase pd-small radius-small w-100"
134
134
  }, null, 8, ["selected"])) : vue.createCommentVNode("", true),
135
135
  vue.createElementVNode("div", _hoisted_3, [
136
136
  vue.createElementVNode("div", _hoisted_4, [
@@ -172,7 +172,8 @@ const _sfc_main = {
172
172
  prices: vue.unref(route).query.prices,
173
173
  delivery: vue.unref(route).query.delivery,
174
174
  search: vue.unref(route).query.search,
175
- ...tabProducts.value !== "all" && { status: tabProducts.value }
175
+ ...tabProducts.value !== "all" && { status: tabProducts.value },
176
+ lookup: ["variants"]
176
177
  // user: user
177
178
  },
178
179
  class: "cols-4 pos-relative w-100 rows-1 gap-thin"
@@ -1 +1 @@
1
- {"version":3,"file":"Products.vue.cjs","sources":["../../../../../../../src/modules/products/components/pages/Products.vue"],"sourcesContent":["<template>\n <div class=\"h-100 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\">Products</h2>\n <button \n v-if=\"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-100 i-big hover-scale-1 cursor-pointer t-white bg-second\">\n +\n </button>\n </header>\n\n <Tab \n v-if=\"route.name !== 'Organization' && isAdmin\"\n v-model:selected=\"tabProducts\"\n :tabs=\"[\n { name: 'All', value: 'all' },\n { name: 'Published', value: 'published' },\n { name: 'Unpublished', value: 'unpublished' }, \n { name: 'Archivied', value: 'archivied' } \n ]\"\n style=\"flex: 0 0 auto\"\n class=\"\n\n p-medium\n br-t br-solid br-light \n bg-white\n gap-micro pd-medium pd-t-thin pd-b-thin\n z-index-1\n\n \"\n tabClass=\"bg-light uppercase pd-small radius-small w-100\"\n />\n\n <div class=\"cols-2-1_3 br-1px br-solid br-light h-100 z-index-3 pos-relative radius-medium\">\n\n <div class=\"o-y-scroll br-r br-solid br-light pd-medium z-index-2 desktop-only h-100 pos-relative\">\n <BlockFilter\n v-model:filter=\"products.state.filter\"\n :options=\"products.state.filter.options\"\n class=\"h-100 w-100\"\n />\n </div>\n\n <div class=\"w-100 pd-thin h-max pos-relative o-hidden\">\n <slot></slot>\n <div class=\"pos-relative w-100 z-index-3 radius-tl-big radius-tr-big\">\n <BlockSearch \n @search=\"debouncedSearch\"\n placeholder=\"Enter product name\"\n class=\"bg-light mn-b-thin h-4r\"\n />\n </div>\n <Feed\n v-model:filter=\"products.state.filter\"\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.params._id,\n categories: route.query.categories,\n filters: generateFilters(products.state.filter.selected),\n prices: route.query.prices,\n delivery: route.query.delivery,\n search: route.query.search,\n ...(tabProducts !== 'all' && { status: tabProducts })\n // user: user\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"cols-4 pos-relative w-100 rows-1 gap-thin\"\n \n >\n <router-link \n v-for=\"product in items\" \n :to=\"route.params._id ? { name: 'Organization_Product', params: { _id: route.params._id, product: product._id } } : { name: 'Product', params: { product: 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 </Feed>\n\n </div>\n </div>\n</div>\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/globals/views/components/blocks/BlockSearch.vue'\n import BlockFilter from '@martyrs/src/modules/globals/views/components/blocks/BlockFilter.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\n // Accessing router and store\n import * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\n import * as globals from '@martyrs/src/modules/globals/views/store/globals.js';\n import * as products from '@martyrs/src/modules/products/store/products.js';\n import * as marketplace from '@martyrs/src/modules/marketplace/views/store/marketplace.js';\n import * as categories from '@martyrs/src/modules/products/store/categories.js';\n\n const route = useRoute()\n const router = useRouter()\n\n // Tab logic\n const tabProducts = ref(route.query.tabProducts ? route.query.tabProducts : 'all')\n\n if (route.name !== 'Organization') route.query.tabProducts = tabProducts.value\n \n if (route.query) {\n const query = route.query;\n\n products.state.filter.selected.categories = query.categories ? query.categories.split(',') : [];\n products.state.filter.selected.prices = query.prices ? query.prices.split(',') : [];\n products.state.filter.selected.delivery = query.delivery ? query.delivery.split(',') : [];\n products.state.filter.selected.brand = query.brand ? query.brand.split(',') : [];\n }\n\n\n watch(tabProducts, (newValue) => {\n if (route.name !== 'Organization') router.replace({ query: { ...route.query, tabProducts: newValue } });\n });\n\n globals.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 onMounted(async () => {\n let categoriesFilter = await categories.actions.read({rootOnly:true});\n\n categoriesFilter = categoriesFilter.map(category => ({\n value: category._id,\n label: category.name\n }));\n\n const index = products.state.filter.options.findIndex(option => option.value === 'categories');\n\n const categoryOption = {\n title: 'Categories',\n value: 'categories',\n options: categoriesFilter\n };\n\n if (index !== -1) {\n products.state.filter.options[index] = categoryOption;\n } else {\n products.state.filter.options.unshift(categoryOption);\n }\n })\n\n onUnmounted(() => {\n globals.state.navigation_bar.actions = [];\n });\n\n watch(() => products.state.sort, (newSortValue, oldSortValue) => {\n let query = { ...route.query}\n \n query.sortParam = newSortValue.param\n query.sortOrder = newSortValue.order\n \n // replace the current route\n router.replace({ query });\n }, { deep: true });\n\n\n watch(() => products.state.filter.selected, (newFilterValue, oldFilterValue) => {\n // Переводим фильтр в формат query\n const query = { ...route.query };\n\n // Удаляем старые значения фильтра из query\n Object.keys(oldFilterValue).forEach(key => {\n if (query[key]) {\n delete query[key];\n }\n });\n\n // Добавляем новые значения фильтра в query\n const newQueryValues = Object.fromEntries(\n Object.entries(newFilterValue)\n .filter(([key, value]) => Array.isArray(value) && value.length > 0)\n .map(([key, value]) => [key, value.join(',')])\n );\n\n delete query.options;\n Object.assign(query, newQueryValues);\n\n // Обновляем маршрут с новым query\n router.replace({ query });\n }, { deep: true })\n\n\nfunction debounce(fn, delay) {\n let timeoutId = null;\n return (...args) => {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => fn(...args), delay);\n };\n}\n\nconst debouncedSearch = debounce((search) => {\n let query = { ...route.query}\n \n query.search = search\n \n router.replace({ query });\n}, 500);\n\n</script>\n\n<style lang=\"scss\">\n\n\n</style>\n"],"names":["useRoute","useRouter","ref","products.state","watch","globals.state","IconPlus","auth.state","onMounted","categories.actions","onUnmounted"],"mappings":"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"}
1
+ {"version":3,"file":"Products.vue.cjs","sources":["../../../../../../../src/modules/products/components/pages/Products.vue"],"sourcesContent":["<template>\n <div class=\"h-100 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\">Products</h2>\n <button \n v-if=\"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-100 i-big hover-scale-1 cursor-pointer t-white bg-second\">\n +\n </button>\n </header>\n\n <Tab \n v-if=\"route.name !== 'Organization' && isAdmin\"\n v-model:selected=\"tabProducts\"\n :tabs=\"[\n { name: 'All', value: 'all' },\n { name: 'Published', value: 'published' },\n { name: 'Unpublished', value: 'unpublished' }, \n { name: 'Archivied', value: 'archivied' } \n ]\"\n style=\"flex: 0 0 auto\"\n class=\"\n\n p-medium\n br-t br-solid br-light \n bg-white\n gap-micro pd-medium pd-t-thin pd-b-thin\n z-index-1\n\n \"\n classTab=\"bg-light uppercase pd-small radius-small w-100\"\n />\n\n <div class=\"cols-2-1_3 br-1px br-solid br-light h-100 z-index-3 pos-relative radius-medium\">\n\n <div class=\"o-y-scroll br-r br-solid br-light pd-medium z-index-2 desktop-only h-100 pos-relative\">\n <BlockFilter\n v-model:filter=\"products.state.filter\"\n :options=\"products.state.filter.options\"\n class=\"h-100 w-100\"\n />\n </div>\n\n <div class=\"w-100 pd-thin h-max pos-relative o-hidden\">\n <slot></slot>\n <div class=\"pos-relative w-100 z-index-3 radius-tl-big radius-tr-big\">\n <BlockSearch \n @search=\"debouncedSearch\"\n placeholder=\"Enter product name\"\n class=\"bg-light mn-b-thin h-4r\"\n />\n </div>\n <Feed\n v-model:filter=\"products.state.filter\"\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.params._id,\n categories: route.query.categories,\n filters: generateFilters(products.state.filter.selected),\n prices: route.query.prices,\n delivery: route.query.delivery,\n search: route.query.search,\n ...(tabProducts !== 'all' && { status: tabProducts }),\n lookup: ['variants']\n // user: user\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"cols-4 pos-relative w-100 rows-1 gap-thin\"\n \n >\n <router-link \n v-for=\"product in items\" \n :to=\"route.params._id ? { name: 'Organization_Product', params: { _id: route.params._id, product: product._id } } : { name: 'Product', params: { product: 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 </Feed>\n\n </div>\n </div>\n</div>\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/globals/views/components/blocks/BlockSearch.vue'\n import BlockFilter from '@martyrs/src/modules/globals/views/components/blocks/BlockFilter.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\n // Accessing router and store\n import * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\n import * as globals from '@martyrs/src/modules/globals/views/store/globals.js';\n import * as products from '@martyrs/src/modules/products/store/products.js';\n import * as marketplace from '@martyrs/src/modules/marketplace/views/store/marketplace.js';\n import * as categories from '@martyrs/src/modules/products/store/categories.js';\n\n const route = useRoute()\n const router = useRouter()\n\n // Tab logic\n const tabProducts = ref(route.query.tabProducts ? route.query.tabProducts : 'all')\n\n if (route.name !== 'Organization') route.query.tabProducts = tabProducts.value\n \n if (route.query) {\n const query = route.query;\n\n products.state.filter.selected.categories = query.categories ? query.categories.split(',') : [];\n products.state.filter.selected.prices = query.prices ? query.prices.split(',') : [];\n products.state.filter.selected.delivery = query.delivery ? query.delivery.split(',') : [];\n products.state.filter.selected.brand = query.brand ? query.brand.split(',') : [];\n }\n\n\n watch(tabProducts, (newValue) => {\n if (route.name !== 'Organization') router.replace({ query: { ...route.query, tabProducts: newValue } });\n });\n\n globals.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 onMounted(async () => {\n let categoriesFilter = await categories.actions.read({rootOnly:true});\n\n categoriesFilter = categoriesFilter.map(category => ({\n value: category._id,\n label: category.name\n }));\n\n const index = products.state.filter.options.findIndex(option => option.value === 'categories');\n\n const categoryOption = {\n title: 'Categories',\n value: 'categories',\n options: categoriesFilter\n };\n\n if (index !== -1) {\n products.state.filter.options[index] = categoryOption;\n } else {\n products.state.filter.options.unshift(categoryOption);\n }\n })\n\n onUnmounted(() => {\n globals.state.navigation_bar.actions = [];\n });\n\n watch(() => products.state.sort, (newSortValue, oldSortValue) => {\n let query = { ...route.query}\n \n query.sortParam = newSortValue.param\n query.sortOrder = newSortValue.order\n \n // replace the current route\n router.replace({ query });\n }, { deep: true });\n\n\n watch(() => products.state.filter.selected, (newFilterValue, oldFilterValue) => {\n // Переводим фильтр в формат query\n const query = { ...route.query };\n\n // Удаляем старые значения фильтра из query\n Object.keys(oldFilterValue).forEach(key => {\n if (query[key]) {\n delete query[key];\n }\n });\n\n // Добавляем новые значения фильтра в query\n const newQueryValues = Object.fromEntries(\n Object.entries(newFilterValue)\n .filter(([key, value]) => Array.isArray(value) && value.length > 0)\n .map(([key, value]) => [key, value.join(',')])\n );\n\n delete query.options;\n Object.assign(query, newQueryValues);\n\n // Обновляем маршрут с новым query\n router.replace({ query });\n }, { deep: true })\n\n\nfunction debounce(fn, delay) {\n let timeoutId = null;\n return (...args) => {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => fn(...args), delay);\n };\n}\n\nconst debouncedSearch = debounce((search) => {\n let query = { ...route.query}\n \n query.search = search\n \n router.replace({ query });\n}, 500);\n\n</script>\n\n<style lang=\"scss\">\n\n\n</style>\n"],"names":["useRoute","useRouter","ref","products.state","watch","globals.state","IconPlus","auth.state","onMounted","categories.actions","onUnmounted"],"mappings":"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"}
@@ -128,7 +128,7 @@ const _sfc_main = {
128
128
  ],
129
129
  style: { "flex": "0 0 auto" },
130
130
  class: "p-medium br-t br-solid br-light bg-white gap-micro pd-medium pd-t-thin pd-b-thin z-index-1",
131
- tabClass: "bg-light uppercase pd-small radius-small w-100"
131
+ classTab: "bg-light uppercase pd-small radius-small w-100"
132
132
  }, null, 8, ["selected"])) : createCommentVNode("", true),
133
133
  createElementVNode("div", _hoisted_3, [
134
134
  createElementVNode("div", _hoisted_4, [
@@ -170,7 +170,8 @@ const _sfc_main = {
170
170
  prices: unref(route).query.prices,
171
171
  delivery: unref(route).query.delivery,
172
172
  search: unref(route).query.search,
173
- ...tabProducts.value !== "all" && { status: tabProducts.value }
173
+ ...tabProducts.value !== "all" && { status: tabProducts.value },
174
+ lookup: ["variants"]
174
175
  // user: user
175
176
  },
176
177
  class: "cols-4 pos-relative w-100 rows-1 gap-thin"
@@ -1 +1 @@
1
- {"version":3,"file":"Products.vue.js","sources":["../../../../../../../src/modules/products/components/pages/Products.vue"],"sourcesContent":["<template>\n <div class=\"h-100 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\">Products</h2>\n <button \n v-if=\"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-100 i-big hover-scale-1 cursor-pointer t-white bg-second\">\n +\n </button>\n </header>\n\n <Tab \n v-if=\"route.name !== 'Organization' && isAdmin\"\n v-model:selected=\"tabProducts\"\n :tabs=\"[\n { name: 'All', value: 'all' },\n { name: 'Published', value: 'published' },\n { name: 'Unpublished', value: 'unpublished' }, \n { name: 'Archivied', value: 'archivied' } \n ]\"\n style=\"flex: 0 0 auto\"\n class=\"\n\n p-medium\n br-t br-solid br-light \n bg-white\n gap-micro pd-medium pd-t-thin pd-b-thin\n z-index-1\n\n \"\n tabClass=\"bg-light uppercase pd-small radius-small w-100\"\n />\n\n <div class=\"cols-2-1_3 br-1px br-solid br-light h-100 z-index-3 pos-relative radius-medium\">\n\n <div class=\"o-y-scroll br-r br-solid br-light pd-medium z-index-2 desktop-only h-100 pos-relative\">\n <BlockFilter\n v-model:filter=\"products.state.filter\"\n :options=\"products.state.filter.options\"\n class=\"h-100 w-100\"\n />\n </div>\n\n <div class=\"w-100 pd-thin h-max pos-relative o-hidden\">\n <slot></slot>\n <div class=\"pos-relative w-100 z-index-3 radius-tl-big radius-tr-big\">\n <BlockSearch \n @search=\"debouncedSearch\"\n placeholder=\"Enter product name\"\n class=\"bg-light mn-b-thin h-4r\"\n />\n </div>\n <Feed\n v-model:filter=\"products.state.filter\"\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.params._id,\n categories: route.query.categories,\n filters: generateFilters(products.state.filter.selected),\n prices: route.query.prices,\n delivery: route.query.delivery,\n search: route.query.search,\n ...(tabProducts !== 'all' && { status: tabProducts })\n // user: user\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"cols-4 pos-relative w-100 rows-1 gap-thin\"\n \n >\n <router-link \n v-for=\"product in items\" \n :to=\"route.params._id ? { name: 'Organization_Product', params: { _id: route.params._id, product: product._id } } : { name: 'Product', params: { product: 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 </Feed>\n\n </div>\n </div>\n</div>\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/globals/views/components/blocks/BlockSearch.vue'\n import BlockFilter from '@martyrs/src/modules/globals/views/components/blocks/BlockFilter.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\n // Accessing router and store\n import * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\n import * as globals from '@martyrs/src/modules/globals/views/store/globals.js';\n import * as products from '@martyrs/src/modules/products/store/products.js';\n import * as marketplace from '@martyrs/src/modules/marketplace/views/store/marketplace.js';\n import * as categories from '@martyrs/src/modules/products/store/categories.js';\n\n const route = useRoute()\n const router = useRouter()\n\n // Tab logic\n const tabProducts = ref(route.query.tabProducts ? route.query.tabProducts : 'all')\n\n if (route.name !== 'Organization') route.query.tabProducts = tabProducts.value\n \n if (route.query) {\n const query = route.query;\n\n products.state.filter.selected.categories = query.categories ? query.categories.split(',') : [];\n products.state.filter.selected.prices = query.prices ? query.prices.split(',') : [];\n products.state.filter.selected.delivery = query.delivery ? query.delivery.split(',') : [];\n products.state.filter.selected.brand = query.brand ? query.brand.split(',') : [];\n }\n\n\n watch(tabProducts, (newValue) => {\n if (route.name !== 'Organization') router.replace({ query: { ...route.query, tabProducts: newValue } });\n });\n\n globals.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 onMounted(async () => {\n let categoriesFilter = await categories.actions.read({rootOnly:true});\n\n categoriesFilter = categoriesFilter.map(category => ({\n value: category._id,\n label: category.name\n }));\n\n const index = products.state.filter.options.findIndex(option => option.value === 'categories');\n\n const categoryOption = {\n title: 'Categories',\n value: 'categories',\n options: categoriesFilter\n };\n\n if (index !== -1) {\n products.state.filter.options[index] = categoryOption;\n } else {\n products.state.filter.options.unshift(categoryOption);\n }\n })\n\n onUnmounted(() => {\n globals.state.navigation_bar.actions = [];\n });\n\n watch(() => products.state.sort, (newSortValue, oldSortValue) => {\n let query = { ...route.query}\n \n query.sortParam = newSortValue.param\n query.sortOrder = newSortValue.order\n \n // replace the current route\n router.replace({ query });\n }, { deep: true });\n\n\n watch(() => products.state.filter.selected, (newFilterValue, oldFilterValue) => {\n // Переводим фильтр в формат query\n const query = { ...route.query };\n\n // Удаляем старые значения фильтра из query\n Object.keys(oldFilterValue).forEach(key => {\n if (query[key]) {\n delete query[key];\n }\n });\n\n // Добавляем новые значения фильтра в query\n const newQueryValues = Object.fromEntries(\n Object.entries(newFilterValue)\n .filter(([key, value]) => Array.isArray(value) && value.length > 0)\n .map(([key, value]) => [key, value.join(',')])\n );\n\n delete query.options;\n Object.assign(query, newQueryValues);\n\n // Обновляем маршрут с новым query\n router.replace({ query });\n }, { deep: true })\n\n\nfunction debounce(fn, delay) {\n let timeoutId = null;\n return (...args) => {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => fn(...args), delay);\n };\n}\n\nconst debouncedSearch = debounce((search) => {\n let query = { ...route.query}\n \n query.search = search\n \n router.replace({ query });\n}, 500);\n\n</script>\n\n<style lang=\"scss\">\n\n\n</style>\n"],"names":["products.state","globals.state","IconPlus","auth.state","categories.actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsIE,UAAM,QAAQ,SAAQ;AACtB,UAAM,SAAS,UAAS;AAGxB,UAAM,cAAc,IAAI,MAAM,MAAM,cAAc,MAAM,MAAM,cAAc,KAAK;AAEjF,QAAI,MAAM,SAAS,eAAgB,OAAM,MAAM,cAAc,YAAY;AAEzE,QAAI,MAAM,OAAO;AACf,YAAM,QAAQ,MAAM;AAEpBA,YAAe,OAAO,SAAS,aAAa,MAAM,aAAa,MAAM,WAAW,MAAM,GAAG,IAAI,CAAE;AAC/FA,YAAe,OAAO,SAAS,SAAS,MAAM,SAAS,MAAM,OAAO,MAAM,GAAG,IAAI,CAAE;AACnFA,YAAe,OAAO,SAAS,WAAW,MAAM,WAAW,MAAM,SAAS,MAAM,GAAG,IAAI,CAAE;AACzFA,YAAe,OAAO,SAAS,QAAQ,MAAM,QAAQ,MAAM,MAAM,MAAM,GAAG,IAAI,CAAE;AAAA,IACpF;AAGE,UAAM,aAAa,CAAC,aAAa;AAC/B,UAAI,MAAM,SAAS,eAAgB,QAAO,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,aAAa,SAAU,EAAA,CAAE;AAAA,IAC1G,CAAG;AAEDC,YAAc,eAAe,UAAU,CAAC;AAAA,MACtC,WAAWC;AAAAA,MACX,OAAO;AAAA,QACL,MAAM;AAAA,MACP;AAAA,MACD,WAAW,MAAMC,QAAW,QAAQA,QAAW,KAAK;AAAA,MACpD,QAAQ,MAAM,MAAM,OAAO,MAAM,OAAO,KAAK,EAAE,MAAM,2BAA2B,QAAQ,EAAE,KAAK,MAAM,OAAO,IAAG,EAAG,CAAA,IAAI,OAAO,KAAK,EAAE,MAAM,aAAc,CAAA;AAAA,IAC5J,CAAG,GAED,UAAU,YAAY;AACpB,UAAI,mBAAmB,MAAMC,QAAmB,KAAK,EAAC,UAAS,KAAI,CAAC;AAEpE,yBAAmB,iBAAiB,IAAI,eAAa;AAAA,QACnD,OAAO,SAAS;AAAA,QAChB,OAAO,SAAS;AAAA,MACtB,EAAM;AAEF,YAAM,QAAQJ,MAAe,OAAO,QAAQ,UAAU,YAAU,OAAO,UAAU,YAAY;AAE7F,YAAM,iBAAiB;AAAA,QACrB,OAAO;AAAA,QACP,OAAO;AAAA,QACP,SAAS;AAAA,MACV;AAED,UAAI,UAAU,IAAI;AACdA,cAAe,OAAO,QAAQ,KAAK,IAAI;AAAA,MAC/C,OAAW;AACHA,cAAe,OAAO,QAAQ,QAAQ,cAAc;AAAA,MAC5D;AAAA,IACG,CAAA;AAED,gBAAY,MAAM;AAChBC,cAAc,eAAe,UAAU,CAAE;AAAA,IAC7C,CAAG;AAED,UAAM,MAAMD,MAAe,MAAM,CAAC,cAAc,iBAAiB;AAC/D,UAAI,QAAQ,EAAE,GAAG,MAAM,MAAK;AAE5B,YAAM,YAAY,aAAa;AAC/B,YAAM,YAAY,aAAa;AAG/B,aAAO,QAAQ,EAAE,OAAO;AAAA,IAC5B,GAAK,EAAE,MAAM,MAAM;AAGjB,UAAM,MAAMA,MAAe,OAAO,UAAU,CAAC,gBAAgB,mBAAmB;AAE9E,YAAM,QAAQ,EAAE,GAAG,MAAM,MAAO;AAGhC,aAAO,KAAK,cAAc,EAAE,QAAQ,SAAO;AACzC,YAAI,MAAM,GAAG,GAAG;AACd,iBAAO,MAAM,GAAG;AAAA,QACxB;AAAA,MACA,CAAK;AAGD,YAAM,iBAAiB,OAAO;AAAA,QAC5B,OAAO,QAAQ,cAAc,EAC1B,OAAO,CAAC,CAAC,KAAK,KAAK,MAAM,MAAM,QAAQ,KAAK,KAAK,MAAM,SAAS,CAAC,EACjE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,MAAM,KAAK,GAAG,CAAC,CAAC;AAAA,MAChD;AAED,aAAO,MAAM;AACb,aAAO,OAAO,OAAO,cAAc;AAGnC,aAAO,QAAQ,EAAE,OAAO;AAAA,IAC5B,GAAK,EAAE,MAAM,KAAM,CAAA;AAGnB,aAAS,SAAS,IAAI,OAAO;AAC3B,UAAI,YAAY;AAChB,aAAO,IAAI,SAAS;AAClB,qBAAa,SAAS;AACtB,oBAAY,WAAW,MAAM,GAAG,GAAG,IAAI,GAAG,KAAK;AAAA,MAChD;AAAA,IACH;AAEA,UAAM,kBAAkB,SAAS,CAAC,WAAW;AAC5C,UAAI,QAAQ,EAAE,GAAG,MAAM,MAAK;AAE3B,YAAM,SAAS;AAEf,aAAO,QAAQ,EAAE,OAAO;AAAA,IAC1B,GAAG,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Products.vue.js","sources":["../../../../../../../src/modules/products/components/pages/Products.vue"],"sourcesContent":["<template>\n <div class=\"h-100 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\">Products</h2>\n <button \n v-if=\"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-100 i-big hover-scale-1 cursor-pointer t-white bg-second\">\n +\n </button>\n </header>\n\n <Tab \n v-if=\"route.name !== 'Organization' && isAdmin\"\n v-model:selected=\"tabProducts\"\n :tabs=\"[\n { name: 'All', value: 'all' },\n { name: 'Published', value: 'published' },\n { name: 'Unpublished', value: 'unpublished' }, \n { name: 'Archivied', value: 'archivied' } \n ]\"\n style=\"flex: 0 0 auto\"\n class=\"\n\n p-medium\n br-t br-solid br-light \n bg-white\n gap-micro pd-medium pd-t-thin pd-b-thin\n z-index-1\n\n \"\n classTab=\"bg-light uppercase pd-small radius-small w-100\"\n />\n\n <div class=\"cols-2-1_3 br-1px br-solid br-light h-100 z-index-3 pos-relative radius-medium\">\n\n <div class=\"o-y-scroll br-r br-solid br-light pd-medium z-index-2 desktop-only h-100 pos-relative\">\n <BlockFilter\n v-model:filter=\"products.state.filter\"\n :options=\"products.state.filter.options\"\n class=\"h-100 w-100\"\n />\n </div>\n\n <div class=\"w-100 pd-thin h-max pos-relative o-hidden\">\n <slot></slot>\n <div class=\"pos-relative w-100 z-index-3 radius-tl-big radius-tr-big\">\n <BlockSearch \n @search=\"debouncedSearch\"\n placeholder=\"Enter product name\"\n class=\"bg-light mn-b-thin h-4r\"\n />\n </div>\n <Feed\n v-model:filter=\"products.state.filter\"\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.params._id,\n categories: route.query.categories,\n filters: generateFilters(products.state.filter.selected),\n prices: route.query.prices,\n delivery: route.query.delivery,\n search: route.query.search,\n ...(tabProducts !== 'all' && { status: tabProducts }),\n lookup: ['variants']\n // user: user\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"cols-4 pos-relative w-100 rows-1 gap-thin\"\n \n >\n <router-link \n v-for=\"product in items\" \n :to=\"route.params._id ? { name: 'Organization_Product', params: { _id: route.params._id, product: product._id } } : { name: 'Product', params: { product: 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 </Feed>\n\n </div>\n </div>\n</div>\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/globals/views/components/blocks/BlockSearch.vue'\n import BlockFilter from '@martyrs/src/modules/globals/views/components/blocks/BlockFilter.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\n // Accessing router and store\n import * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\n import * as globals from '@martyrs/src/modules/globals/views/store/globals.js';\n import * as products from '@martyrs/src/modules/products/store/products.js';\n import * as marketplace from '@martyrs/src/modules/marketplace/views/store/marketplace.js';\n import * as categories from '@martyrs/src/modules/products/store/categories.js';\n\n const route = useRoute()\n const router = useRouter()\n\n // Tab logic\n const tabProducts = ref(route.query.tabProducts ? route.query.tabProducts : 'all')\n\n if (route.name !== 'Organization') route.query.tabProducts = tabProducts.value\n \n if (route.query) {\n const query = route.query;\n\n products.state.filter.selected.categories = query.categories ? query.categories.split(',') : [];\n products.state.filter.selected.prices = query.prices ? query.prices.split(',') : [];\n products.state.filter.selected.delivery = query.delivery ? query.delivery.split(',') : [];\n products.state.filter.selected.brand = query.brand ? query.brand.split(',') : [];\n }\n\n\n watch(tabProducts, (newValue) => {\n if (route.name !== 'Organization') router.replace({ query: { ...route.query, tabProducts: newValue } });\n });\n\n globals.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 onMounted(async () => {\n let categoriesFilter = await categories.actions.read({rootOnly:true});\n\n categoriesFilter = categoriesFilter.map(category => ({\n value: category._id,\n label: category.name\n }));\n\n const index = products.state.filter.options.findIndex(option => option.value === 'categories');\n\n const categoryOption = {\n title: 'Categories',\n value: 'categories',\n options: categoriesFilter\n };\n\n if (index !== -1) {\n products.state.filter.options[index] = categoryOption;\n } else {\n products.state.filter.options.unshift(categoryOption);\n }\n })\n\n onUnmounted(() => {\n globals.state.navigation_bar.actions = [];\n });\n\n watch(() => products.state.sort, (newSortValue, oldSortValue) => {\n let query = { ...route.query}\n \n query.sortParam = newSortValue.param\n query.sortOrder = newSortValue.order\n \n // replace the current route\n router.replace({ query });\n }, { deep: true });\n\n\n watch(() => products.state.filter.selected, (newFilterValue, oldFilterValue) => {\n // Переводим фильтр в формат query\n const query = { ...route.query };\n\n // Удаляем старые значения фильтра из query\n Object.keys(oldFilterValue).forEach(key => {\n if (query[key]) {\n delete query[key];\n }\n });\n\n // Добавляем новые значения фильтра в query\n const newQueryValues = Object.fromEntries(\n Object.entries(newFilterValue)\n .filter(([key, value]) => Array.isArray(value) && value.length > 0)\n .map(([key, value]) => [key, value.join(',')])\n );\n\n delete query.options;\n Object.assign(query, newQueryValues);\n\n // Обновляем маршрут с новым query\n router.replace({ query });\n }, { deep: true })\n\n\nfunction debounce(fn, delay) {\n let timeoutId = null;\n return (...args) => {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => fn(...args), delay);\n };\n}\n\nconst debouncedSearch = debounce((search) => {\n let query = { ...route.query}\n \n query.search = search\n \n router.replace({ query });\n}, 500);\n\n</script>\n\n<style lang=\"scss\">\n\n\n</style>\n"],"names":["products.state","globals.state","IconPlus","auth.state","categories.actions"],"mappings":"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"}
@@ -2,8 +2,8 @@
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
4
  const Block = require("../../../../components/Block/Block.vue.cjs");
5
- const Field = require("../../../../components/Field/Field.vue2.cjs");
6
- const Button = require("../../../../components/Button/Button.vue.cjs");
5
+ const Field = require("../../../../components/Field/Field.vue.cjs");
6
+ const Button = require("../../../../components/Button/Button.vue2.cjs");
7
7
  const Popup = require("../../../../components/Popup/Popup.vue.cjs");
8
8
  const IconEdit = require("../../../icons/navigation/IconEdit.vue.cjs");
9
9
  const IconDelete = require("../../../icons/navigation/IconDelete.vue.cjs");
@@ -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
- import _sfc_main$5 from "../../../../components/Field/Field.vue2.js";
4
- import _sfc_main$6 from "../../../../components/Button/Button.vue.js";
3
+ import Field from "../../../../components/Field/Field.vue.js";
4
+ import _sfc_main$5 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";
@@ -118,14 +118,14 @@ const _sfc_main = {
118
118
  }, {
119
119
  default: withCtx(() => [
120
120
  createElementVNode("div", _hoisted_8, [
121
- createVNode(_sfc_main$5, {
121
+ createVNode(Field, {
122
122
  field: currentAttribute.name,
123
123
  "onUpdate:field": _cache[0] || (_cache[0] = ($event) => currentAttribute.name = $event),
124
124
  label: "Name",
125
125
  placeholder: "Parameter Name",
126
126
  class: "w-100 bg-light radius-small pd-small"
127
127
  }, null, 8, ["field"]),
128
- createVNode(_sfc_main$5, {
128
+ createVNode(Field, {
129
129
  field: currentAttribute.value,
130
130
  "onUpdate:field": _cache[1] || (_cache[1] = ($event) => currentAttribute.value = $event),
131
131
  label: "Value",
@@ -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$6, {
136
+ createVNode(_sfc_main$5, {
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$6, {
147
+ createVNode(_sfc_main$5, {
148
148
  class: "bg-main w-100",
149
149
  onClick: saveAttribute
150
150
  }, {
@@ -2,8 +2,8 @@
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
4
  const Block = require("../../../../components/Block/Block.vue.cjs");
5
- const Field = require("../../../../components/Field/Field.vue2.cjs");
6
- const Button = require("../../../../components/Button/Button.vue.cjs");
5
+ const Field = require("../../../../components/Field/Field.vue.cjs");
6
+ const Button = require("../../../../components/Button/Button.vue2.cjs");
7
7
  const Popup = require("../../../../components/Popup/Popup.vue.cjs");
8
8
  const Select = require("../../../../components/Select/Select.vue.cjs");
9
9
  const IconEdit = require("../../../icons/navigation/IconEdit.vue.cjs");
@@ -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
- import _sfc_main$5 from "../../../../components/Field/Field.vue2.js";
4
- import _sfc_main$6 from "../../../../components/Button/Button.vue.js";
3
+ import Field from "../../../../components/Field/Field.vue.js";
4
+ import _sfc_main$5 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";
@@ -203,14 +203,14 @@ const _sfc_main = {
203
203
  }, {
204
204
  default: withCtx(() => [
205
205
  createElementVNode("div", _hoisted_9, [
206
- createVNode(_sfc_main$5, {
206
+ createVNode(Field, {
207
207
  field: currentDiscount.name,
208
208
  "onUpdate:field": _cache[0] || (_cache[0] = ($event) => currentDiscount.name = $event),
209
209
  label: "Name",
210
210
  placeholder: "Discount Name",
211
211
  class: "w-100 bg-light radius-small pd-small"
212
212
  }, null, 8, ["field"]),
213
- createVNode(_sfc_main$5, {
213
+ createVNode(Field, {
214
214
  field: currentDiscount.description,
215
215
  "onUpdate:field": _cache[1] || (_cache[1] = ($event) => currentDiscount.description = $event),
216
216
  label: "Description",
@@ -218,7 +218,7 @@ const _sfc_main = {
218
218
  placeholder: "Discount Description",
219
219
  class: "w-100 bg-light radius-small pd-small"
220
220
  }, null, 8, ["field"]),
221
- createVNode(_sfc_main$5, {
221
+ createVNode(Field, {
222
222
  field: currentDiscount.value,
223
223
  "onUpdate:field": _cache[3] || (_cache[3] = ($event) => currentDiscount.value = $event),
224
224
  label: currentDiscount.type === "special_price" ? "Special Price" : "Discount",
@@ -241,7 +241,7 @@ const _sfc_main = {
241
241
  ]),
242
242
  _: 1
243
243
  }, 8, ["field", "label", "placeholder"]),
244
- createVNode(_sfc_main$5, {
244
+ createVNode(Field, {
245
245
  field: currentDiscount.quantity,
246
246
  "onUpdate:field": _cache[4] || (_cache[4] = ($event) => currentDiscount.quantity = $event),
247
247
  label: "Quantity",
@@ -251,14 +251,14 @@ const _sfc_main = {
251
251
  }, null, 8, ["field"]),
252
252
  _cache[11] || (_cache[11] = createElementVNode("div", { class: "t-medium mn-t-micro mn-b-micro" }, "Date Range", -1)),
253
253
  createElementVNode("div", _hoisted_10, [
254
- createVNode(_sfc_main$5, {
254
+ createVNode(Field, {
255
255
  field: currentDiscount.date.start,
256
256
  "onUpdate:field": _cache[5] || (_cache[5] = ($event) => currentDiscount.date.start = $event),
257
257
  label: "Start Date",
258
258
  type: "date",
259
259
  class: "w-100 bg-light radius-small pd-small"
260
260
  }, null, 8, ["field"]),
261
- createVNode(_sfc_main$5, {
261
+ createVNode(Field, {
262
262
  field: currentDiscount.date.end,
263
263
  "onUpdate:field": _cache[6] || (_cache[6] = ($event) => currentDiscount.date.end = $event),
264
264
  label: "End Date",
@@ -268,14 +268,14 @@ const _sfc_main = {
268
268
  ]),
269
269
  _cache[12] || (_cache[12] = createElementVNode("div", { class: "t-medium mn-t-micro mn-b-micro" }, "Time Range", -1)),
270
270
  createElementVNode("div", _hoisted_11, [
271
- createVNode(_sfc_main$5, {
271
+ createVNode(Field, {
272
272
  field: currentDiscount.time.start,
273
273
  "onUpdate:field": _cache[7] || (_cache[7] = ($event) => currentDiscount.time.start = $event),
274
274
  label: "Start Time",
275
275
  type: "time",
276
276
  class: "w-100 bg-light radius-small pd-small"
277
277
  }, null, 8, ["field"]),
278
- createVNode(_sfc_main$5, {
278
+ createVNode(Field, {
279
279
  field: currentDiscount.time.end,
280
280
  "onUpdate:field": _cache[8] || (_cache[8] = ($event) => currentDiscount.time.end = $event),
281
281
  label: "End Time",
@@ -284,7 +284,7 @@ const _sfc_main = {
284
284
  }, null, 8, ["field"])
285
285
  ]),
286
286
  createElementVNode("div", _hoisted_12, [
287
- createVNode(_sfc_main$6, {
287
+ createVNode(_sfc_main$5, {
288
288
  showSuccess: false,
289
289
  showLoader: false,
290
290
  class: "bg-red t-white w-100",
@@ -295,7 +295,7 @@ const _sfc_main = {
295
295
  ])),
296
296
  _: 1
297
297
  }),
298
- createVNode(_sfc_main$6, {
298
+ createVNode(_sfc_main$5, {
299
299
  class: "bg-main w-100",
300
300
  onClick: saveDiscount
301
301
  }, {
@@ -112,9 +112,17 @@ const _sfc_main = {
112
112
  default: vue.withCtx(({ items }) => [
113
113
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(items, (product, index) => {
114
114
  return vue.openBlock(), vue.createBlock(CardOrderItem.default, {
115
- key: product._id,
115
+ key: `${product._id}_${product.variant || "no-variant"}_${index}`,
116
116
  editable: false,
117
- product,
117
+ productId: product._id,
118
+ variantId: product.variant,
119
+ images: product.images,
120
+ name: product.name,
121
+ quantity: product.quantity || 1,
122
+ unit: product.unit,
123
+ dates: product.date,
124
+ listing: product.listing,
125
+ price: product.price,
118
126
  onClick: () => {
119
127
  let p = { ...product };
120
128
  p.quantity = 1;
@@ -123,7 +131,7 @@ const _sfc_main = {
123
131
  closeIngredientPopup();
124
132
  },
125
133
  class: "bg-white pd-thin radius-medium w-100 mn-b-thin"
126
- }, null, 8, ["product", "onClick"]);
134
+ }, null, 8, ["productId", "variantId", "images", "name", "quantity", "unit", "dates", "listing", "price", "onClick"]);
127
135
  }), 128))
128
136
  ]),
129
137
  _: 1