@ozdao/martyrs 0.2.505 → 0.2.507

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 (517) 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/builder.cjs +52 -60
  8. package/dist/builder.js +52 -60
  9. package/dist/chats.server.cjs +1 -1
  10. package/dist/chats.server.js +1 -1
  11. package/dist/events.server.cjs +1 -1
  12. package/dist/events.server.js +1 -1
  13. package/dist/{mailing-q7sR8gCV.cjs → mailing-Bs9ThyVZ.cjs} +1 -24
  14. package/dist/{mailing-C11EYWm-.js → mailing-DzlhsxCC.js} +1 -24
  15. package/dist/main-AWSb_d2P.cjs +11 -0
  16. package/dist/{main-CJm5myDI.js → main-Dq-UfO4G.js} +2562 -2477
  17. package/dist/martyrs/src/components/Button/Button.vue2.cjs +1 -1
  18. package/dist/martyrs/src/components/Button/Button.vue2.js +1 -1
  19. package/dist/martyrs/src/components/Checkbox/Checkbox.vue.cjs +3 -3
  20. package/dist/martyrs/src/components/Checkbox/Checkbox.vue.cjs.map +1 -1
  21. package/dist/martyrs/src/components/Checkbox/Checkbox.vue.js +3 -3
  22. package/dist/martyrs/src/components/Checkbox/Checkbox.vue.js.map +1 -1
  23. package/dist/martyrs/src/components/Feed/Carousel.vue.cjs +1 -1
  24. package/dist/martyrs/src/components/Feed/Carousel.vue.js +1 -1
  25. package/dist/martyrs/src/components/Feed/Feed.vue.cjs +15 -46
  26. package/dist/martyrs/src/components/Feed/Feed.vue.cjs.map +1 -1
  27. package/dist/martyrs/src/components/Feed/Feed.vue.js +22 -53
  28. package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
  29. package/dist/martyrs/src/components/Field/Field.vue.cjs +14 -6
  30. package/dist/martyrs/src/components/Field/Field.vue.cjs.map +1 -1
  31. package/dist/martyrs/src/components/Field/Field.vue.js +14 -6
  32. package/dist/martyrs/src/components/Field/Field.vue.js.map +1 -1
  33. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.cjs +58 -11
  34. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.cjs.map +1 -1
  35. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +60 -13
  36. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js.map +1 -1
  37. package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.cjs +1 -1
  38. package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.cjs.map +1 -1
  39. package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.js +1 -1
  40. package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.js.map +1 -1
  41. package/dist/martyrs/src/components/FieldTags/FieldTags.vue.cjs +1 -1
  42. package/dist/martyrs/src/components/FieldTags/FieldTags.vue.js +1 -1
  43. package/dist/martyrs/src/components/Loader/{Loader.vue2.cjs → Loader.vue.cjs} +2 -2
  44. package/dist/martyrs/src/components/Loader/{Loader.vue2.js.map → Loader.vue.cjs.map} +1 -1
  45. package/dist/martyrs/src/components/Loader/{Loader.vue2.js → Loader.vue.js} +2 -2
  46. package/dist/martyrs/src/components/Loader/Loader.vue.js.map +1 -0
  47. package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue2.cjs +1 -1
  48. package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue2.js +1 -1
  49. package/dist/martyrs/src/components/Menu/{Menu.vue2.cjs → Menu.vue.cjs} +2 -2
  50. package/dist/martyrs/src/components/Menu/Menu.vue.cjs.map +1 -0
  51. package/dist/martyrs/src/components/Menu/{Menu.vue2.js → Menu.vue.js} +2 -2
  52. package/dist/martyrs/src/components/Menu/Menu.vue.js.map +1 -0
  53. package/dist/martyrs/src/components/PhotoViewer/PhotoViewer.vue.cjs +2 -2
  54. package/dist/martyrs/src/components/PhotoViewer/PhotoViewer.vue.cjs.map +1 -1
  55. package/dist/martyrs/src/components/PhotoViewer/PhotoViewer.vue.js +2 -2
  56. package/dist/martyrs/src/components/PhotoViewer/PhotoViewer.vue.js.map +1 -1
  57. package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.cjs +1 -1
  58. package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.js +1 -1
  59. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +3 -3
  60. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs.map +1 -1
  61. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +3 -3
  62. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js.map +1 -1
  63. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.cjs +42 -10
  64. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.cjs.map +1 -1
  65. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +44 -12
  66. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js.map +1 -1
  67. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.cjs +11 -15
  68. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.cjs.map +1 -1
  69. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +21 -25
  70. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js.map +1 -1
  71. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.cjs +12 -16
  72. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.cjs.map +1 -1
  73. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +33 -37
  74. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js.map +1 -1
  75. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditSidebar.vue.cjs +13 -9
  76. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditSidebar.vue.cjs.map +1 -1
  77. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditSidebar.vue.js +13 -9
  78. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditSidebar.vue.js.map +1 -1
  79. package/dist/martyrs/src/modules/auth/views/router/users.cjs +0 -4
  80. package/dist/martyrs/src/modules/auth/views/router/users.cjs.map +1 -1
  81. package/dist/martyrs/src/modules/auth/views/router/users.js +0 -4
  82. package/dist/martyrs/src/modules/auth/views/router/users.js.map +1 -1
  83. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs +1 -1
  84. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +1 -1
  85. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +1 -1
  86. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
  87. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.cjs +431 -0
  88. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.cjs.map +1 -0
  89. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.js +431 -0
  90. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.js.map +1 -0
  91. package/dist/martyrs/src/modules/community/router/blogposts.cjs +17 -0
  92. package/dist/martyrs/src/modules/community/router/blogposts.cjs.map +1 -1
  93. package/dist/martyrs/src/modules/community/router/blogposts.js +17 -0
  94. package/dist/martyrs/src/modules/community/router/blogposts.js.map +1 -1
  95. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +1 -1
  96. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +1 -1
  97. package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +1 -3
  98. package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs.map +1 -1
  99. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +1 -3
  100. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js.map +1 -1
  101. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.cjs +1 -1
  102. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.cjs.map +1 -1
  103. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js +1 -1
  104. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js.map +1 -1
  105. package/dist/martyrs/src/modules/events/components/sections/Feed.vue.cjs +1 -1
  106. package/dist/martyrs/src/modules/events/components/sections/Feed.vue.js +1 -1
  107. package/dist/martyrs/src/modules/events/components/sections/List.vue.cjs +1 -1
  108. package/dist/martyrs/src/modules/events/components/sections/List.vue.js +1 -1
  109. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.cjs +1 -1
  110. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.js +1 -1
  111. package/dist/martyrs/src/modules/globals/views/classes/globals.websocket.cjs +4 -6
  112. package/dist/martyrs/src/modules/globals/views/classes/globals.websocket.cjs.map +1 -1
  113. package/dist/martyrs/src/modules/globals/views/classes/globals.websocket.js +4 -6
  114. package/dist/martyrs/src/modules/globals/views/classes/globals.websocket.js.map +1 -1
  115. package/dist/martyrs/src/modules/globals/views/components/blocks/{BlockMultiselect.vue2.cjs → BlockMultiselect.vue.cjs} +2 -2
  116. package/dist/martyrs/src/modules/globals/views/components/blocks/{BlockMultiselect.vue2.js.map → BlockMultiselect.vue.cjs.map} +1 -1
  117. package/dist/martyrs/src/modules/globals/views/components/blocks/{BlockMultiselect.vue2.js → BlockMultiselect.vue.js} +2 -2
  118. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockMultiselect.vue.js.map +1 -0
  119. package/dist/martyrs/src/modules/globals/views/components/blocks/Card.vue.cjs +5 -2
  120. package/dist/martyrs/src/modules/globals/views/components/blocks/Card.vue.cjs.map +1 -1
  121. package/dist/martyrs/src/modules/globals/views/components/blocks/Card.vue.js +6 -3
  122. package/dist/martyrs/src/modules/globals/views/components/blocks/Card.vue.js.map +1 -1
  123. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +1 -1
  124. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +1 -1
  125. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs +1 -1
  126. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js +1 -1
  127. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +2 -3
  128. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs.map +1 -1
  129. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +2 -3
  130. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js.map +1 -1
  131. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.cjs +324 -0
  132. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.cjs.map +1 -0
  133. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.js +324 -0
  134. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.js.map +1 -0
  135. package/dist/martyrs/src/modules/icons/entities/IconLock.vue.cjs +32 -0
  136. package/dist/martyrs/src/modules/icons/entities/IconLock.vue.cjs.map +1 -0
  137. package/dist/martyrs/src/modules/icons/entities/IconLock.vue.js +32 -0
  138. package/dist/martyrs/src/modules/icons/entities/IconLock.vue.js.map +1 -0
  139. package/dist/martyrs/src/modules/icons/icons.client.cjs +2 -0
  140. package/dist/martyrs/src/modules/icons/icons.client.cjs.map +1 -1
  141. package/dist/martyrs/src/modules/icons/icons.client.js +116 -114
  142. package/dist/martyrs/src/modules/icons/icons.client.js.map +1 -1
  143. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.cjs +5 -3
  144. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.cjs.map +1 -1
  145. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js +117 -115
  146. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js.map +1 -1
  147. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.cjs +1 -1
  148. package/dist/martyrs/src/modules/landing/components/sections/SubscribeNewsletter.vue.cjs +11 -36
  149. package/dist/martyrs/src/modules/landing/components/sections/SubscribeNewsletter.vue.cjs.map +1 -1
  150. package/dist/martyrs/src/modules/landing/components/sections/SubscribeNewsletter.vue.js +11 -36
  151. package/dist/martyrs/src/modules/landing/components/sections/SubscribeNewsletter.vue.js.map +1 -1
  152. package/dist/martyrs/src/modules/landing/landing.client.cjs +3 -0
  153. package/dist/martyrs/src/modules/landing/landing.client.cjs.map +1 -1
  154. package/dist/martyrs/src/modules/landing/landing.client.js +3 -0
  155. package/dist/martyrs/src/modules/landing/landing.client.js.map +1 -1
  156. package/dist/martyrs/src/modules/landing/locales/en.cjs +12 -0
  157. package/dist/martyrs/src/modules/landing/locales/en.cjs.map +1 -0
  158. package/dist/martyrs/src/modules/landing/locales/en.js +12 -0
  159. package/dist/martyrs/src/modules/landing/locales/en.js.map +1 -0
  160. package/dist/martyrs/src/modules/landing/locales/index.cjs +10 -0
  161. package/dist/martyrs/src/modules/landing/locales/index.cjs.map +1 -0
  162. package/dist/martyrs/src/modules/landing/locales/index.js +10 -0
  163. package/dist/martyrs/src/modules/landing/locales/index.js.map +1 -0
  164. package/dist/martyrs/src/modules/landing/locales/ru.cjs +12 -0
  165. package/dist/martyrs/src/modules/landing/locales/ru.cjs.map +1 -0
  166. package/dist/martyrs/src/modules/landing/locales/ru.js +12 -0
  167. package/dist/martyrs/src/modules/landing/locales/ru.js.map +1 -0
  168. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.cjs +1 -1
  169. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js +1 -1
  170. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.cjs +1 -1
  171. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +1 -1
  172. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.cjs +2 -2
  173. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +2 -2
  174. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.cjs +1 -1
  175. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +1 -1
  176. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs +1 -1
  177. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +1 -1
  178. package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs +2 -2
  179. package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs.map +1 -1
  180. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +2 -2
  181. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js.map +1 -1
  182. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.cjs +1 -1
  183. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +1 -1
  184. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs +2 -2
  185. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs.map +1 -1
  186. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +2 -2
  187. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js.map +1 -1
  188. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.cjs +1 -1
  189. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +1 -1
  190. package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs +2 -2
  191. package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs.map +1 -1
  192. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +2 -2
  193. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js.map +1 -1
  194. package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.cjs +1 -1
  195. package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.js +1 -1
  196. package/dist/martyrs/src/modules/music/router/music.cjs +2 -4
  197. package/dist/martyrs/src/modules/music/router/music.cjs.map +1 -1
  198. package/dist/martyrs/src/modules/music/router/music.js +2 -4
  199. package/dist/martyrs/src/modules/music/router/music.js.map +1 -1
  200. package/dist/martyrs/src/modules/orders/components/blocks/CardApplication.vue.cjs +86 -0
  201. package/dist/martyrs/src/modules/orders/components/blocks/CardApplication.vue.cjs.map +1 -0
  202. package/dist/martyrs/src/modules/orders/components/blocks/CardApplication.vue.js +86 -0
  203. package/dist/martyrs/src/modules/orders/components/blocks/CardApplication.vue.js.map +1 -0
  204. package/dist/martyrs/src/modules/orders/components/blocks/CardCustomer.vue.cjs +103 -0
  205. package/dist/martyrs/src/modules/orders/components/blocks/CardCustomer.vue.cjs.map +1 -0
  206. package/dist/martyrs/src/modules/orders/components/blocks/CardCustomer.vue.js +103 -0
  207. package/dist/martyrs/src/modules/orders/components/blocks/CardCustomer.vue.js.map +1 -0
  208. package/dist/martyrs/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue.cjs +194 -0
  209. package/dist/martyrs/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue.cjs.map +1 -0
  210. package/dist/martyrs/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue.js +194 -0
  211. package/dist/martyrs/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue.js.map +1 -0
  212. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.cjs +138 -0
  213. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.cjs.map +1 -0
  214. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +138 -0
  215. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js.map +1 -0
  216. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.cjs +189 -0
  217. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.cjs.map +1 -0
  218. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +189 -0
  219. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js.map +1 -0
  220. package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.cjs +173 -0
  221. package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.cjs.map +1 -0
  222. package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js +173 -0
  223. package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js.map +1 -0
  224. package/dist/martyrs/src/modules/orders/components/pages/Applications.vue.cjs +233 -0
  225. package/dist/martyrs/src/modules/orders/components/pages/Applications.vue.cjs.map +1 -0
  226. package/dist/martyrs/src/modules/orders/components/pages/Applications.vue.js +233 -0
  227. package/dist/martyrs/src/modules/orders/components/pages/Applications.vue.js.map +1 -0
  228. package/dist/martyrs/src/modules/orders/components/pages/Customers.vue.cjs +234 -0
  229. package/dist/martyrs/src/modules/orders/components/pages/Customers.vue.cjs.map +1 -0
  230. package/dist/martyrs/src/modules/orders/components/pages/Customers.vue.js +234 -0
  231. package/dist/martyrs/src/modules/orders/components/pages/Customers.vue.js.map +1 -0
  232. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs +9 -8
  233. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs.map +1 -1
  234. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +9 -8
  235. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js.map +1 -1
  236. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +8 -82
  237. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs.map +1 -1
  238. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +9 -83
  239. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js.map +1 -1
  240. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.cjs +119 -0
  241. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.cjs.map +1 -0
  242. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js +119 -0
  243. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js.map +1 -0
  244. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.cjs +139 -0
  245. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.cjs.map +1 -0
  246. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js +139 -0
  247. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js.map +1 -0
  248. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +1 -3
  249. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs.map +1 -1
  250. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +1 -3
  251. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js.map +1 -1
  252. package/dist/martyrs/src/modules/orders/locales/en.cjs +38 -0
  253. package/dist/martyrs/src/modules/orders/locales/en.cjs.map +1 -0
  254. package/dist/martyrs/src/modules/orders/locales/en.js +38 -0
  255. package/dist/martyrs/src/modules/orders/locales/en.js.map +1 -0
  256. package/dist/martyrs/src/modules/orders/locales/index.cjs +10 -0
  257. package/dist/martyrs/src/modules/orders/locales/index.cjs.map +1 -0
  258. package/dist/martyrs/src/modules/orders/locales/index.js +10 -0
  259. package/dist/martyrs/src/modules/orders/locales/index.js.map +1 -0
  260. package/dist/martyrs/src/modules/orders/locales/ru.cjs +38 -0
  261. package/dist/martyrs/src/modules/orders/locales/ru.cjs.map +1 -0
  262. package/dist/martyrs/src/modules/orders/locales/ru.js +38 -0
  263. package/dist/martyrs/src/modules/orders/locales/ru.js.map +1 -0
  264. package/dist/martyrs/src/modules/orders/orders.client.cjs +78 -3
  265. package/dist/martyrs/src/modules/orders/orders.client.cjs.map +1 -1
  266. package/dist/martyrs/src/modules/orders/orders.client.js +80 -5
  267. package/dist/martyrs/src/modules/orders/orders.client.js.map +1 -1
  268. package/dist/martyrs/src/modules/orders/router/applications.router.cjs +17 -0
  269. package/dist/martyrs/src/modules/orders/router/applications.router.cjs.map +1 -0
  270. package/dist/martyrs/src/modules/orders/router/applications.router.js +17 -0
  271. package/dist/martyrs/src/modules/orders/router/applications.router.js.map +1 -0
  272. package/dist/martyrs/src/modules/orders/router/customers.router.cjs +18 -0
  273. package/dist/martyrs/src/modules/orders/router/customers.router.cjs.map +1 -0
  274. package/dist/martyrs/src/modules/orders/router/customers.router.js +18 -0
  275. package/dist/martyrs/src/modules/orders/router/customers.router.js.map +1 -0
  276. package/dist/martyrs/src/modules/orders/store/applications.cjs +4 -42
  277. package/dist/martyrs/src/modules/orders/store/applications.cjs.map +1 -1
  278. package/dist/martyrs/src/modules/orders/store/applications.js +3 -41
  279. package/dist/martyrs/src/modules/orders/store/applications.js.map +1 -1
  280. package/dist/martyrs/src/modules/orders/store/models/application.cjs +20 -0
  281. package/dist/martyrs/src/modules/orders/store/models/application.cjs.map +1 -0
  282. package/dist/martyrs/src/modules/orders/store/models/application.js +20 -0
  283. package/dist/martyrs/src/modules/orders/store/models/application.js.map +1 -0
  284. package/dist/martyrs/src/modules/orders/store/models/customer.cjs +13 -1
  285. package/dist/martyrs/src/modules/orders/store/models/customer.cjs.map +1 -1
  286. package/dist/martyrs/src/modules/orders/store/models/customer.js +13 -1
  287. package/dist/martyrs/src/modules/orders/store/models/customer.js.map +1 -1
  288. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +1 -1
  289. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +1 -1
  290. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +1 -1
  291. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +1 -1
  292. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +18 -194
  293. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs.map +1 -1
  294. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +19 -195
  295. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js.map +1 -1
  296. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +1 -1
  297. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
  298. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.cjs +1 -1
  299. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.cjs.map +1 -1
  300. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js +1 -1
  301. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js.map +1 -1
  302. package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.cjs +2 -11
  303. package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.cjs.map +1 -1
  304. package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.js +6 -15
  305. package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.js.map +1 -1
  306. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs +1 -1
  307. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +1 -1
  308. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +1 -1
  309. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +1 -1
  310. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.cjs +85 -89
  311. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.cjs.map +1 -1
  312. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.js +92 -96
  313. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.js.map +1 -1
  314. package/dist/martyrs/src/modules/organizations/router/organizations.cjs +5 -1
  315. package/dist/martyrs/src/modules/organizations/router/organizations.cjs.map +1 -1
  316. package/dist/martyrs/src/modules/organizations/router/organizations.js +5 -1
  317. package/dist/martyrs/src/modules/organizations/router/organizations.js.map +1 -1
  318. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.cjs +1 -1
  319. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -1
  320. package/dist/martyrs/src/modules/pages/views/components/pages/Page.vue.cjs +3 -6
  321. package/dist/martyrs/src/modules/pages/views/components/pages/Page.vue.cjs.map +1 -1
  322. package/dist/martyrs/src/modules/pages/views/components/pages/Page.vue.js +3 -6
  323. package/dist/martyrs/src/modules/pages/views/components/pages/Page.vue.js.map +1 -1
  324. package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.cjs +1 -1
  325. package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.cjs.map +1 -1
  326. package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.js +1 -1
  327. package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.js.map +1 -1
  328. package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.cjs +2 -2
  329. package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.cjs.map +1 -1
  330. package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.js +2 -2
  331. package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.js.map +1 -1
  332. package/dist/martyrs/src/modules/products/components/elements/Image360.vue.cjs +1 -1
  333. package/dist/martyrs/src/modules/products/components/elements/Image360.vue.js +1 -1
  334. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs +22 -19
  335. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs.map +1 -1
  336. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +22 -19
  337. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js.map +1 -1
  338. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +27 -18
  339. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs.map +1 -1
  340. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +27 -18
  341. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js.map +1 -1
  342. package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +1 -1
  343. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +1 -1
  344. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +1 -1
  345. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +1 -1
  346. package/dist/martyrs/src/modules/products/components/pages/ProductRecommmendation.vue.cjs +1 -1
  347. package/dist/martyrs/src/modules/products/components/pages/ProductRecommmendation.vue.js +1 -1
  348. package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs +361 -106
  349. package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs.map +1 -1
  350. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +379 -124
  351. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js.map +1 -1
  352. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs +20 -6
  353. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs.map +1 -1
  354. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +20 -6
  355. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js.map +1 -1
  356. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.cjs +32 -2
  357. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.cjs.map +1 -1
  358. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +33 -3
  359. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js.map +1 -1
  360. package/dist/martyrs/src/modules/products/router/products.router.cjs +15 -0
  361. package/dist/martyrs/src/modules/products/router/products.router.cjs.map +1 -1
  362. package/dist/martyrs/src/modules/products/router/products.router.js +15 -0
  363. package/dist/martyrs/src/modules/products/router/products.router.js.map +1 -1
  364. package/dist/martyrs/src/modules/products/store/categories.cjs +25 -7
  365. package/dist/martyrs/src/modules/products/store/categories.cjs.map +1 -1
  366. package/dist/martyrs/src/modules/products/store/categories.js +25 -7
  367. package/dist/martyrs/src/modules/products/store/categories.js.map +1 -1
  368. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs +1 -1
  369. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs.map +1 -1
  370. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +1 -1
  371. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js.map +1 -1
  372. package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.cjs +345 -0
  373. package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.cjs.map +1 -0
  374. package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.js +345 -0
  375. package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.js.map +1 -0
  376. package/dist/martyrs/src/modules/spots/router/spots.cjs +17 -0
  377. package/dist/martyrs/src/modules/spots/router/spots.cjs.map +1 -1
  378. package/dist/martyrs/src/modules/spots/router/spots.js +17 -0
  379. package/dist/martyrs/src/modules/spots/router/spots.js.map +1 -1
  380. package/dist/martyrs.cjs.js +1 -1
  381. package/dist/martyrs.css +1 -1
  382. package/dist/martyrs.es.js +1 -1
  383. package/dist/notifications.server.cjs +1 -1
  384. package/dist/notifications.server.js +1 -1
  385. package/dist/orders.server.cjs +459 -201
  386. package/dist/orders.server.js +459 -201
  387. package/dist/organizations.server.cjs +1 -1
  388. package/dist/organizations.server.js +1 -1
  389. package/dist/products.server.cjs +439 -255
  390. package/dist/products.server.js +439 -255
  391. package/dist/style.css +115 -139
  392. package/dist/{tickets.controller-DQQcjyui.js → tickets.controller-C56OvH6v.js} +1 -1
  393. package/dist/{tickets.controller-D0V0gJCA.cjs → tickets.controller-DdnndM6c.cjs} +1 -1
  394. package/dist/wallet.server.cjs +1 -1
  395. package/dist/wallet.server.js +1 -1
  396. package/dist/{web-Dkk0_7TA.js → web-BXajFCU2.js} +1 -1
  397. package/dist/{web-stVkXd0l.cjs → web-DaBwwCQ5.cjs} +1 -1
  398. package/package.json +1 -1
  399. package/src/builder/modes/ssr.dev.js +10 -10
  400. package/src/builder/rspack/rspack.config.ssr.client.js +50 -50
  401. package/src/components/Checkbox/Checkbox.vue +3 -4
  402. package/src/components/Feed/Feed.old.vue +522 -0
  403. package/src/components/Feed/Feed.vue +4 -4
  404. package/src/components/Field/Field.vue +7 -1
  405. package/src/components/FieldBig/FieldBig.vue +62 -8
  406. package/src/components/FieldPhone/FieldPhone.vue +1 -1
  407. package/src/components/PhotoViewer/PhotoViewer.vue +1 -1
  408. package/src/modules/STYLES.MD +198 -0
  409. package/src/modules/auth/views/components/pages/Profile.vue +1 -1
  410. package/src/modules/auth/views/components/pages/ProfileEdit.vue +42 -8
  411. package/src/modules/auth/views/components/pages/ProfileEditAccount.vue +9 -11
  412. package/src/modules/auth/views/components/pages/ProfileEditProfile.vue +9 -11
  413. package/src/modules/auth/views/components/pages/ProfileEditSidebar.vue +7 -4
  414. package/src/modules/auth/views/router/users.js +0 -4
  415. package/src/modules/community/components/pages/Posts.vue +444 -0
  416. package/src/modules/community/router/blogposts.js +15 -0
  417. package/src/modules/events/components/pages/EventsBackoffice.vue +1 -1
  418. package/src/modules/globals/views/classes/globals.websocket.js +7 -8
  419. package/src/modules/globals/views/components/blocks/Card.vue +2 -1
  420. package/src/modules/globals/views/components/layouts/Client.vue +1 -2
  421. package/src/modules/globals/views/components/partials/FooterAlt.vue +161 -188
  422. package/src/modules/globals/views/components/sections/Filters.vue +261 -121
  423. package/src/modules/globals/views/components/sections/filters/FilterCheckbox.vue +78 -0
  424. package/src/modules/globals/views/components/sections/filters/FilterDateRange.vue +177 -0
  425. package/src/modules/globals/views/components/sections/filters/FilterRange.vue +51 -50
  426. package/src/modules/icons/entities/IconLock.vue +14 -0
  427. package/src/modules/icons/icons.client.js +2 -1
  428. package/src/modules/icons/pages/IconsPage.vue +4 -2
  429. package/src/modules/landing/components/sections/SubscribeNewsletter.vue +11 -61
  430. package/src/modules/landing/landing.client.js +6 -0
  431. package/src/modules/landing/locales/en.js +9 -0
  432. package/src/modules/landing/locales/index.js +7 -0
  433. package/src/modules/landing/locales/ru.js +9 -0
  434. package/src/modules/music/components/pages/Album.vue +1 -1
  435. package/src/modules/music/components/pages/Playlist.vue +1 -1
  436. package/src/modules/music/components/pages/Track.vue +1 -1
  437. package/src/modules/orders/components/blocks/CardApplication.vue +74 -0
  438. package/src/modules/orders/components/blocks/CardCustomer.vue +90 -0
  439. package/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue +199 -0
  440. package/src/modules/orders/components/forms/FormApplicationDetails.vue +117 -0
  441. package/src/modules/orders/components/forms/FormCustomerDetails.vue +165 -0
  442. package/src/modules/orders/components/forms/FormSelectCustomer.vue +172 -0
  443. package/src/modules/orders/components/pages/Applications.vue +240 -0
  444. package/src/modules/orders/components/pages/Customers.vue +239 -0
  445. package/src/modules/orders/components/pages/OrderCreate.vue +2 -2
  446. package/src/modules/orders/components/pages/OrderCreateBackoffice.vue +5 -76
  447. package/src/modules/orders/components/sections/ApplicationDetails.vue +91 -0
  448. package/src/modules/orders/components/sections/CustomerDetails.vue +107 -0
  449. package/src/modules/orders/locales/en.js +35 -0
  450. package/src/modules/orders/locales/index.js +7 -0
  451. package/src/modules/orders/locales/ru.js +35 -0
  452. package/src/modules/orders/middlewares/applications.verifier.js +189 -0
  453. package/src/modules/orders/middlewares/customers.verifier.js +251 -0
  454. package/src/modules/orders/models/application.model.js +21 -0
  455. package/src/modules/orders/models/customer.model.js +26 -0
  456. package/src/modules/orders/orders.client.js +86 -1
  457. package/src/modules/orders/orders.server.js +3 -1
  458. package/src/modules/orders/router/applications.router.js +15 -0
  459. package/src/modules/orders/router/customers.router.js +17 -0
  460. package/src/modules/orders/routes/applications.routes.js +124 -12
  461. package/src/modules/orders/routes/customers.routes.js +43 -0
  462. package/src/modules/orders/store/applications.js +3 -159
  463. package/src/modules/orders/store/models/application.js +18 -0
  464. package/src/modules/orders/store/models/customer.js +12 -0
  465. package/src/modules/organizations/components/pages/Organization.new.vue +593 -0
  466. package/src/modules/organizations/components/pages/Organization.vue +11 -202
  467. package/src/modules/organizations/components/pages/Organizations.vue +1 -1
  468. package/src/modules/organizations/components/sections/DetailsTabSection.vue +2 -2
  469. package/src/modules/organizations/configs/navigation.organization.config.js +69 -85
  470. package/src/modules/organizations/router/organizations.js +5 -0
  471. package/src/modules/pages/views/components/pages/Page.vue +1 -1
  472. package/src/modules/products/TASKS.MD +157 -0
  473. package/src/modules/products/components/blocks/CardCategory.vue +1 -1
  474. package/src/modules/products/components/blocks/ProductImages.vue +1 -1
  475. package/src/modules/products/components/pages/Categories.vue +27 -22
  476. package/src/modules/products/components/pages/CategoryEdit.vue +24 -13
  477. package/src/modules/products/components/pages/Products.vue +415 -174
  478. package/src/modules/products/components/sections/EditVariants.vue +14 -0
  479. package/src/modules/products/components/sections/ProductsRecommended.vue +46 -2
  480. package/src/modules/products/controllers/categories.controller.js +321 -282
  481. package/src/modules/products/controllers/configs/products.lookup.config.js +9 -0
  482. package/src/modules/products/controllers/products.controller.js +2 -1
  483. package/src/modules/products/controllers/queries/products.queries.js +183 -11
  484. package/src/modules/products/middlewares/categories.verifier.js +58 -15
  485. package/src/modules/products/middlewares/variants.verifier.js +12 -0
  486. package/src/modules/products/migrations/categories-to-materialized-path.js +433 -0
  487. package/src/modules/products/migrations/path-to-url.js +27 -0
  488. package/src/modules/products/models/category.model.js +8 -23
  489. package/src/modules/products/models/variant.model.js +3 -0
  490. package/src/modules/products/router/products.router.js +12 -0
  491. package/src/modules/products/store/categories.js +26 -7
  492. package/src/modules/rents/TASK.MD +161 -0
  493. package/src/modules/reports/components/sections/FormReport.vue +1 -1
  494. package/src/modules/spots/components/pages/Spots.vue +342 -0
  495. package/src/modules/spots/router/spots.js +15 -0
  496. package/src/styles/base/all.scss +2 -3
  497. package/src/styles/layout.scss +16 -0
  498. package/dist/main-DTaE01lg.cjs +0 -11
  499. package/dist/martyrs/src/components/BottomSheet/BottomSheet.vue.cjs +0 -96
  500. package/dist/martyrs/src/components/BottomSheet/BottomSheet.vue.cjs.map +0 -1
  501. package/dist/martyrs/src/components/BottomSheet/BottomSheet.vue.js +0 -96
  502. package/dist/martyrs/src/components/BottomSheet/BottomSheet.vue.js.map +0 -1
  503. package/dist/martyrs/src/components/Loader/Loader.vue2.cjs.map +0 -1
  504. package/dist/martyrs/src/components/Menu/Menu.vue2.cjs.map +0 -1
  505. package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +0 -1
  506. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockMultiselect.vue2.cjs.map +0 -1
  507. package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.cjs +0 -155
  508. package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.cjs.map +0 -1
  509. package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.js +0 -155
  510. package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.js.map +0 -1
  511. package/dist/martyrs/src/modules/orders/components/sections/FormCustomerDetails.vue.cjs +0 -81
  512. package/dist/martyrs/src/modules/orders/components/sections/FormCustomerDetails.vue.cjs.map +0 -1
  513. package/dist/martyrs/src/modules/orders/components/sections/FormCustomerDetails.vue.js +0 -81
  514. package/dist/martyrs/src/modules/orders/components/sections/FormCustomerDetails.vue.js.map +0 -1
  515. package/src/modules/orders/components/sections/FormAddCustomer.vue +0 -152
  516. package/src/modules/orders/components/sections/FormCustomerDetails.vue +0 -67
  517. package/src/modules/orders/controllers/applications.controller.js +0 -122
@@ -1 +1 @@
1
- {"version":3,"file":"ProductsRecommended.vue.cjs","sources":["../../../../../../../src/modules/products/components/sections/ProductsRecommended.vue"],"sourcesContent":["<script setup>\nimport { ref, computed } from 'vue'\nimport { useRouter } from 'vue-router'\n\nimport Button from '@martyrs/src/components/Button/Button.vue'\nimport Checkbox from '@martyrs/src/components/Checkbox/Checkbox.vue'\n\nimport CardProduct from '@martyrs/src/modules/products/components/blocks/CardProduct.vue'\n\nimport IconShopcart from '@martyrs/src/modules/icons/entities/IconShopcart.vue';\nimport IconProducts from '@martyrs/src/modules/icons/entities/IconProducts.vue';\nimport IconShopcartAdd from '@martyrs/src/modules/icons/actions/IconShopcartAdd.vue'\n\nimport * as shopcart from '@martyrs/src/modules/orders/store/shopcart.js'\n\nconst router = useRouter()\n\n// Props\nconst props = defineProps({\n products: {\n type: Array,\n required: true,\n default: () => []\n }\n})\n\n// Состояние выбранных товаров - массив id товаров с вариантами\nconst selectedProducts = ref(props.products.filter(p => p.variants?.length > 0).map(p => p._id))\n\n// Вычисляемая общая цена\nconst totalPrice = computed(() => {\n return props.products\n .filter(p => selectedProducts.value.includes(p._id))\n .reduce((sum, p) => {\n const price = p.variants?.[0]?.price || 0\n return sum + price\n }, 0)\n .toFixed(2)\n})\n\n// Проверка возможности добавления в корзину\nconst canAddToCart = computed(() => {\n const selected = props.products.filter(p => selectedProducts.value.includes(p._id))\n return selected.length > 0 && selected.some(p => p.variants?.length > 0)\n})\n\nconst handleProductClick = (product) => {\n if (product?._id && product?.owner?.target) {\n router.push({\n name: 'Organization_Product', \n params: { \n _id: product.owner.target, \n product: product._id \n } \n })\n }\n}\n\n// Добавление выбранных товаров в корзину\nconst addSelectedToCart = async () => {\n const selected = props.products.filter(p => selectedProducts.value.includes(p._id))\n \n if (selected.length === 0) return\n \n try {\n // Берем организацию первого товара\n const firstProduct = selected[0]\n const organizationId = firstProduct.owner?.target?._id || firstProduct.owner?.target\n \n // Проверяем, что в корзине товары той же организации\n if (shopcart.state.organization && shopcart.state.organization !== organizationId) {\n // Можно добавить подтверждение замены корзины\n shopcart.state.positions = []\n }\n \n shopcart.state.organization = organizationId\n \n // Добавляем каждый выбранный товар\n for (const product of selected) {\n // Проверяем наличие варианта\n if (!product.variants || product.variants.length === 0) continue\n \n await shopcart.actions.addProductToCart(\n product, \n organizationId,\n null // selectedDates для rent листинга\n )\n }\n } catch (error) {\n console.error('Error adding to cart:', error)\n }\n}\n</script>\n\n<template>\n <div>\n <h3 class=\"mn-b-small\">Frequently Bought Together</h3>\n <div class=\"recommended-products cols-4 mobile:cols-2 gap-thin\">\n \n <CardProduct \n v-for=\"(product, index) in products\" \n :key=\"product?._id || index\"\n :product=\"product\"\n class=\"h-100 bg-light\"\n @click=\"handleProductClick(product)\"\n :showAddToCart=\"false\"\n >\n <Checkbox\n v-model:radio=\"selectedProducts\"\n :value=\"product._id\"\n mode=\"checkbox\"\n :validation=\"!product.variants || product.variants.length === 0\"\n class=\"pos-r-small pos-t-small pos-absolute\"\n @click.stop\n />\n </CardProduct>\n\n <div class=\"flex-center flex flex-column pd-small radius-small br-solid br-1px br-light\">\n <div class=\"mn-b-thin i-extra pd-small bg-light radius-extra\">\n <IconProducts class=\"i-big\"/>\n </div>\n <p class=\"mn-b-small\">Total price:</p>\n <p class=\"mn-b-medium h3 t-medium\">${{ totalPrice }}</p>\n <Button \n class=\"bg-main gap-micro\"\n :submit=\"canAddToCart ? addSelectedToCart : undefined\"\n >\n <IconShopcartAdd class=\"i-semi\"/>\n <span>Add to Cart</span>\n </Button>\n </div>\n </div>\n </div>\n</template>"],"names":["useRouter","ref","computed","shopcart.state","shopcart.actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAeA,UAAM,SAASA,UAAAA,UAAS;AAGxB,UAAM,QAAQ;AASd,UAAM,mBAAmBC,IAAAA,IAAI,MAAM,SAAS,OAAO,OAAK,EAAE,UAAU,SAAS,CAAC,EAAE,IAAI,OAAK,EAAE,GAAG,CAAC;AAG/F,UAAM,aAAaC,IAAAA,SAAS,MAAM;AAChC,aAAO,MAAM,SACV,OAAO,OAAK,iBAAiB,MAAM,SAAS,EAAE,GAAG,CAAC,EAClD,OAAO,CAAC,KAAK,MAAM;AAClB,cAAM,QAAQ,EAAE,WAAW,CAAC,GAAG,SAAS;AACxC,eAAO,MAAM;AAAA,MACf,GAAG,CAAC,EACH,QAAQ,CAAC;AAAA,IACd,CAAC;AAGD,UAAM,eAAeA,IAAAA,SAAS,MAAM;AAClC,YAAM,WAAW,MAAM,SAAS,OAAO,OAAK,iBAAiB,MAAM,SAAS,EAAE,GAAG,CAAC;AAClF,aAAO,SAAS,SAAS,KAAK,SAAS,KAAK,OAAK,EAAE,UAAU,SAAS,CAAC;AAAA,IACzE,CAAC;AAED,UAAM,qBAAqB,CAAC,YAAY;AACtC,UAAI,SAAS,OAAO,SAAS,OAAO,QAAQ;AAC1C,eAAO,KAAK;AAAA,UACV,MAAM;AAAA,UACN,QAAQ;AAAA,YACN,KAAK,QAAQ,MAAM;AAAA,YACnB,SAAS,QAAQ;AAAA,UACzB;AAAA,QACA,CAAK;AAAA,MACH;AAAA,IACF;AAGA,UAAM,oBAAoB,YAAY;AACpC,YAAM,WAAW,MAAM,SAAS,OAAO,OAAK,iBAAiB,MAAM,SAAS,EAAE,GAAG,CAAC;AAElF,UAAI,SAAS,WAAW,EAAG;AAE3B,UAAI;AAEF,cAAM,eAAe,SAAS,CAAC;AAC/B,cAAM,iBAAiB,aAAa,OAAO,QAAQ,OAAO,aAAa,OAAO;AAG9E,YAAIC,SAAAA,MAAe,gBAAgBA,eAAe,iBAAiB,gBAAgB;AAEjFA,mBAAAA,MAAe,YAAY,CAAA;AAAA,QAC7B;AAEAA,iBAAAA,MAAe,eAAe;AAG9B,mBAAW,WAAW,UAAU;AAE9B,cAAI,CAAC,QAAQ,YAAY,QAAQ,SAAS,WAAW,EAAG;AAExD,gBAAMC,SAAAA,QAAiB;AAAA,YACrB;AAAA,YACA;AAAA,YACA;AAAA;AAAA,UACR;AAAA,QACI;AAAA,MACF,SAAS,OAAO;AACd,gBAAQ,MAAM,yBAAyB,KAAK;AAAA,MAC9C;AAAA,IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ProductsRecommended.vue.cjs","sources":["../../../../../../../src/modules/products/components/sections/ProductsRecommended.vue"],"sourcesContent":["<script setup>\nimport { ref, computed, getCurrentInstance } from 'vue'\nimport { useRouter } from 'vue-router'\n\nimport Button from '@martyrs/src/components/Button/Button.vue'\nimport Checkbox from '@martyrs/src/components/Checkbox/Checkbox.vue'\n\nimport CardProduct from '@martyrs/src/modules/products/components/blocks/CardProduct.vue'\n\nimport IconShopcart from '@martyrs/src/modules/icons/entities/IconShopcart.vue';\nimport IconProducts from '@martyrs/src/modules/icons/entities/IconProducts.vue';\nimport IconShopcartAdd from '@martyrs/src/modules/icons/actions/IconShopcartAdd.vue'\n\nimport * as shopcart from '@martyrs/src/modules/orders/store/shopcart.js'\n\nconst router = useRouter()\nconst { proxy } = getCurrentInstance()\n\n// Props\nconst props = defineProps({\n products: {\n type: Array,\n required: true,\n default: () => []\n }\n})\n\n// Состояние выбранных товаров - массив id товаров с вариантами\nconst selectedProducts = ref(props.products.filter(p => p.variants?.length > 0).map(p => p._id))\n\n// Состояние для хранения выбранных дат для товаров типа rent\nconst selectedDates = ref(null)\n\n// Вычисляемая общая цена\nconst totalPrice = computed(() => {\n return props.products\n .filter(p => selectedProducts.value.includes(p._id))\n .reduce((sum, p) => {\n const price = p.variants?.[0]?.price || 0\n return sum + price\n }, 0)\n .toFixed(2)\n})\n\n// Проверка возможности добавления в корзину\nconst canAddToCart = computed(() => {\n const selected = props.products.filter(p => selectedProducts.value.includes(p._id))\n return selected.length > 0 && selected.some(p => p.variants?.length > 0)\n})\n\nconst handleProductClick = (product) => {\n if (product?._id && product?.owner?.target) {\n router.push({\n name: 'Organization_Product', \n params: { \n _id: product.owner.target, \n product: product._id \n } \n })\n }\n}\n\n// Добавление выбранных товаров в корзину\nconst addSelectedToCart = async () => {\n const selected = props.products.filter(p => selectedProducts.value.includes(p._id))\n \n if (selected.length === 0) return\n \n try {\n // Берем организацию первого товара\n const firstProduct = selected[0]\n const organizationId = firstProduct.owner?.target?._id || firstProduct.owner?.target\n \n // Проверяем, что в корзине товары той же организации\n if (shopcart.state.organization && shopcart.state.organization !== organizationId) {\n // Можно добавить подтверждение замены корзины\n const result = await proxy.$alert({\n title: 'Replace items in your cart?',\n message: `Your cart has items from another vendor. If you continue, we'll clear it so you can order from this one instead.`,\n actions: [\n { label: 'Cancel', value: false },\n { label: 'Replace', value: true }\n ]\n })\n\n if (!result) return\n \n shopcart.state.positions = []\n }\n \n shopcart.state.organization = organizationId\n \n // Проверяем, есть ли товары типа rent среди выбранных\n const rentProducts = selected.filter(p => p.listing === 'rent')\n let rentalDates = null\n \n // Если есть товары типа rent, получаем даты для первого товара\n if (rentProducts.length > 0) {\n const firstRentProduct = rentProducts[0]\n const firstVariant = firstRentProduct.variants?.[0]\n \n if (firstVariant) {\n rentalDates = await proxy.$dateSelector(\n firstRentProduct._id,\n firstVariant._id,\n 1,\n firstVariant.price || firstRentProduct.price\n )\n \n if (!rentalDates) return // Пользователь отменил выбор дат\n }\n }\n \n // Добавляем каждый выбранный товар\n for (const product of selected) {\n // Проверяем наличие варианта\n if (!product.variants || product.variants.length === 0) continue\n \n // Используем первый вариант по умолчанию\n const variant = product.variants[0]\n \n // Для товаров типа rent используем полученные даты\n const datesToUse = product.listing === 'rent' ? rentalDates : null\n \n await shopcart.actions.addProductToCart(\n product, \n variant,\n organizationId,\n datesToUse,\n 1 // quantity\n )\n }\n } catch (error) {\n console.error('Error adding to cart:', error)\n }\n}\n</script>\n\n<template>\n <div>\n <h3 class=\"mn-b-small\">Frequently Bought Together</h3>\n <div class=\"recommended-products cols-4 mobile:cols-2 gap-thin\">\n \n <CardProduct \n v-for=\"(product, index) in products\" \n :key=\"product?._id || index\"\n :product=\"product\"\n class=\"h-100 bg-light\"\n @click=\"handleProductClick(product)\"\n :showAddToCart=\"false\"\n >\n <Checkbox\n v-model:radio=\"selectedProducts\"\n :value=\"product._id\"\n mode=\"checkbox\"\n :validation=\"!product.variants || product.variants.length === 0\"\n class=\"pos-r-small pos-t-small pos-absolute\"\n @click.stop\n />\n </CardProduct>\n\n <div class=\"flex-center flex flex-column pd-small radius-small br-solid br-1px br-light\">\n <div class=\"mn-b-thin i-extra pd-small bg-light radius-extra\">\n <IconProducts class=\"i-big\"/>\n </div>\n <p class=\"mn-b-small\">Total price:</p>\n <p class=\"mn-b-medium h3 t-medium\">${{ totalPrice }}</p>\n <Button \n class=\"bg-main gap-micro\"\n :submit=\"canAddToCart ? addSelectedToCart : undefined\"\n >\n <IconShopcartAdd class=\"i-semi\"/>\n <span>Add to Cart</span>\n </Button>\n </div>\n </div>\n </div>\n</template>"],"names":["useRouter","getCurrentInstance","ref","computed","shopcart.state","shopcart.actions"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ref, computed, createElementBlock, openBlock, createElementVNode, Fragment, renderList, createBlock, withCtx, createVNode, withModifiers, toDisplayString } from "vue";
1
+ import { getCurrentInstance, ref, computed, createElementBlock, openBlock, createElementVNode, Fragment, renderList, createBlock, withCtx, createVNode, withModifiers, toDisplayString } from "vue";
2
2
  import { useRouter } from "vue-router";
3
3
  import _sfc_main$4 from "../../../../components/Button/Button.vue2.js";
4
4
  import _sfc_main$2 from "../../../../components/Checkbox/Checkbox.vue.js";
@@ -21,8 +21,10 @@ const _sfc_main = {
21
21
  },
22
22
  setup(__props) {
23
23
  const router = useRouter();
24
+ const { proxy } = getCurrentInstance();
24
25
  const props = __props;
25
26
  const selectedProducts = ref(props.products.filter((p) => p.variants?.length > 0).map((p) => p._id));
27
+ ref(null);
26
28
  const totalPrice = computed(() => {
27
29
  return props.products.filter((p) => selectedProducts.value.includes(p._id)).reduce((sum, p) => {
28
30
  const price = p.variants?.[0]?.price || 0;
@@ -51,16 +53,44 @@ const _sfc_main = {
51
53
  const firstProduct = selected[0];
52
54
  const organizationId = firstProduct.owner?.target?._id || firstProduct.owner?.target;
53
55
  if (state.organization && state.organization !== organizationId) {
56
+ const result = await proxy.$alert({
57
+ title: "Replace items in your cart?",
58
+ message: `Your cart has items from another vendor. If you continue, we'll clear it so you can order from this one instead.`,
59
+ actions: [
60
+ { label: "Cancel", value: false },
61
+ { label: "Replace", value: true }
62
+ ]
63
+ });
64
+ if (!result) return;
54
65
  state.positions = [];
55
66
  }
56
67
  state.organization = organizationId;
68
+ const rentProducts = selected.filter((p) => p.listing === "rent");
69
+ let rentalDates = null;
70
+ if (rentProducts.length > 0) {
71
+ const firstRentProduct = rentProducts[0];
72
+ const firstVariant = firstRentProduct.variants?.[0];
73
+ if (firstVariant) {
74
+ rentalDates = await proxy.$dateSelector(
75
+ firstRentProduct._id,
76
+ firstVariant._id,
77
+ 1,
78
+ firstVariant.price || firstRentProduct.price
79
+ );
80
+ if (!rentalDates) return;
81
+ }
82
+ }
57
83
  for (const product of selected) {
58
84
  if (!product.variants || product.variants.length === 0) continue;
85
+ const variant = product.variants[0];
86
+ const datesToUse = product.listing === "rent" ? rentalDates : null;
59
87
  await actions.addProductToCart(
60
88
  product,
89
+ variant,
61
90
  organizationId,
62
- null
63
- // selectedDates для rent листинга
91
+ datesToUse,
92
+ 1
93
+ // quantity
64
94
  );
65
95
  }
66
96
  } catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"ProductsRecommended.vue.js","sources":["../../../../../../../src/modules/products/components/sections/ProductsRecommended.vue"],"sourcesContent":["<script setup>\nimport { ref, computed } from 'vue'\nimport { useRouter } from 'vue-router'\n\nimport Button from '@martyrs/src/components/Button/Button.vue'\nimport Checkbox from '@martyrs/src/components/Checkbox/Checkbox.vue'\n\nimport CardProduct from '@martyrs/src/modules/products/components/blocks/CardProduct.vue'\n\nimport IconShopcart from '@martyrs/src/modules/icons/entities/IconShopcart.vue';\nimport IconProducts from '@martyrs/src/modules/icons/entities/IconProducts.vue';\nimport IconShopcartAdd from '@martyrs/src/modules/icons/actions/IconShopcartAdd.vue'\n\nimport * as shopcart from '@martyrs/src/modules/orders/store/shopcart.js'\n\nconst router = useRouter()\n\n// Props\nconst props = defineProps({\n products: {\n type: Array,\n required: true,\n default: () => []\n }\n})\n\n// Состояние выбранных товаров - массив id товаров с вариантами\nconst selectedProducts = ref(props.products.filter(p => p.variants?.length > 0).map(p => p._id))\n\n// Вычисляемая общая цена\nconst totalPrice = computed(() => {\n return props.products\n .filter(p => selectedProducts.value.includes(p._id))\n .reduce((sum, p) => {\n const price = p.variants?.[0]?.price || 0\n return sum + price\n }, 0)\n .toFixed(2)\n})\n\n// Проверка возможности добавления в корзину\nconst canAddToCart = computed(() => {\n const selected = props.products.filter(p => selectedProducts.value.includes(p._id))\n return selected.length > 0 && selected.some(p => p.variants?.length > 0)\n})\n\nconst handleProductClick = (product) => {\n if (product?._id && product?.owner?.target) {\n router.push({\n name: 'Organization_Product', \n params: { \n _id: product.owner.target, \n product: product._id \n } \n })\n }\n}\n\n// Добавление выбранных товаров в корзину\nconst addSelectedToCart = async () => {\n const selected = props.products.filter(p => selectedProducts.value.includes(p._id))\n \n if (selected.length === 0) return\n \n try {\n // Берем организацию первого товара\n const firstProduct = selected[0]\n const organizationId = firstProduct.owner?.target?._id || firstProduct.owner?.target\n \n // Проверяем, что в корзине товары той же организации\n if (shopcart.state.organization && shopcart.state.organization !== organizationId) {\n // Можно добавить подтверждение замены корзины\n shopcart.state.positions = []\n }\n \n shopcart.state.organization = organizationId\n \n // Добавляем каждый выбранный товар\n for (const product of selected) {\n // Проверяем наличие варианта\n if (!product.variants || product.variants.length === 0) continue\n \n await shopcart.actions.addProductToCart(\n product, \n organizationId,\n null // selectedDates для rent листинга\n )\n }\n } catch (error) {\n console.error('Error adding to cart:', error)\n }\n}\n</script>\n\n<template>\n <div>\n <h3 class=\"mn-b-small\">Frequently Bought Together</h3>\n <div class=\"recommended-products cols-4 mobile:cols-2 gap-thin\">\n \n <CardProduct \n v-for=\"(product, index) in products\" \n :key=\"product?._id || index\"\n :product=\"product\"\n class=\"h-100 bg-light\"\n @click=\"handleProductClick(product)\"\n :showAddToCart=\"false\"\n >\n <Checkbox\n v-model:radio=\"selectedProducts\"\n :value=\"product._id\"\n mode=\"checkbox\"\n :validation=\"!product.variants || product.variants.length === 0\"\n class=\"pos-r-small pos-t-small pos-absolute\"\n @click.stop\n />\n </CardProduct>\n\n <div class=\"flex-center flex flex-column pd-small radius-small br-solid br-1px br-light\">\n <div class=\"mn-b-thin i-extra pd-small bg-light radius-extra\">\n <IconProducts class=\"i-big\"/>\n </div>\n <p class=\"mn-b-small\">Total price:</p>\n <p class=\"mn-b-medium h3 t-medium\">${{ totalPrice }}</p>\n <Button \n class=\"bg-main gap-micro\"\n :submit=\"canAddToCart ? addSelectedToCart : undefined\"\n >\n <IconShopcartAdd class=\"i-semi\"/>\n <span>Add to Cart</span>\n </Button>\n </div>\n </div>\n </div>\n</template>"],"names":["shopcart.state","shopcart.actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAeA,UAAM,SAAS,UAAS;AAGxB,UAAM,QAAQ;AASd,UAAM,mBAAmB,IAAI,MAAM,SAAS,OAAO,OAAK,EAAE,UAAU,SAAS,CAAC,EAAE,IAAI,OAAK,EAAE,GAAG,CAAC;AAG/F,UAAM,aAAa,SAAS,MAAM;AAChC,aAAO,MAAM,SACV,OAAO,OAAK,iBAAiB,MAAM,SAAS,EAAE,GAAG,CAAC,EAClD,OAAO,CAAC,KAAK,MAAM;AAClB,cAAM,QAAQ,EAAE,WAAW,CAAC,GAAG,SAAS;AACxC,eAAO,MAAM;AAAA,MACf,GAAG,CAAC,EACH,QAAQ,CAAC;AAAA,IACd,CAAC;AAGD,UAAM,eAAe,SAAS,MAAM;AAClC,YAAM,WAAW,MAAM,SAAS,OAAO,OAAK,iBAAiB,MAAM,SAAS,EAAE,GAAG,CAAC;AAClF,aAAO,SAAS,SAAS,KAAK,SAAS,KAAK,OAAK,EAAE,UAAU,SAAS,CAAC;AAAA,IACzE,CAAC;AAED,UAAM,qBAAqB,CAAC,YAAY;AACtC,UAAI,SAAS,OAAO,SAAS,OAAO,QAAQ;AAC1C,eAAO,KAAK;AAAA,UACV,MAAM;AAAA,UACN,QAAQ;AAAA,YACN,KAAK,QAAQ,MAAM;AAAA,YACnB,SAAS,QAAQ;AAAA,UACzB;AAAA,QACA,CAAK;AAAA,MACH;AAAA,IACF;AAGA,UAAM,oBAAoB,YAAY;AACpC,YAAM,WAAW,MAAM,SAAS,OAAO,OAAK,iBAAiB,MAAM,SAAS,EAAE,GAAG,CAAC;AAElF,UAAI,SAAS,WAAW,EAAG;AAE3B,UAAI;AAEF,cAAM,eAAe,SAAS,CAAC;AAC/B,cAAM,iBAAiB,aAAa,OAAO,QAAQ,OAAO,aAAa,OAAO;AAG9E,YAAIA,MAAe,gBAAgBA,MAAe,iBAAiB,gBAAgB;AAEjFA,gBAAe,YAAY,CAAA;AAAA,QAC7B;AAEAA,cAAe,eAAe;AAG9B,mBAAW,WAAW,UAAU;AAE9B,cAAI,CAAC,QAAQ,YAAY,QAAQ,SAAS,WAAW,EAAG;AAExD,gBAAMC,QAAiB;AAAA,YACrB;AAAA,YACA;AAAA,YACA;AAAA;AAAA,UACR;AAAA,QACI;AAAA,MACF,SAAS,OAAO;AACd,gBAAQ,MAAM,yBAAyB,KAAK;AAAA,MAC9C;AAAA,IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ProductsRecommended.vue.js","sources":["../../../../../../../src/modules/products/components/sections/ProductsRecommended.vue"],"sourcesContent":["<script setup>\nimport { ref, computed, getCurrentInstance } from 'vue'\nimport { useRouter } from 'vue-router'\n\nimport Button from '@martyrs/src/components/Button/Button.vue'\nimport Checkbox from '@martyrs/src/components/Checkbox/Checkbox.vue'\n\nimport CardProduct from '@martyrs/src/modules/products/components/blocks/CardProduct.vue'\n\nimport IconShopcart from '@martyrs/src/modules/icons/entities/IconShopcart.vue';\nimport IconProducts from '@martyrs/src/modules/icons/entities/IconProducts.vue';\nimport IconShopcartAdd from '@martyrs/src/modules/icons/actions/IconShopcartAdd.vue'\n\nimport * as shopcart from '@martyrs/src/modules/orders/store/shopcart.js'\n\nconst router = useRouter()\nconst { proxy } = getCurrentInstance()\n\n// Props\nconst props = defineProps({\n products: {\n type: Array,\n required: true,\n default: () => []\n }\n})\n\n// Состояние выбранных товаров - массив id товаров с вариантами\nconst selectedProducts = ref(props.products.filter(p => p.variants?.length > 0).map(p => p._id))\n\n// Состояние для хранения выбранных дат для товаров типа rent\nconst selectedDates = ref(null)\n\n// Вычисляемая общая цена\nconst totalPrice = computed(() => {\n return props.products\n .filter(p => selectedProducts.value.includes(p._id))\n .reduce((sum, p) => {\n const price = p.variants?.[0]?.price || 0\n return sum + price\n }, 0)\n .toFixed(2)\n})\n\n// Проверка возможности добавления в корзину\nconst canAddToCart = computed(() => {\n const selected = props.products.filter(p => selectedProducts.value.includes(p._id))\n return selected.length > 0 && selected.some(p => p.variants?.length > 0)\n})\n\nconst handleProductClick = (product) => {\n if (product?._id && product?.owner?.target) {\n router.push({\n name: 'Organization_Product', \n params: { \n _id: product.owner.target, \n product: product._id \n } \n })\n }\n}\n\n// Добавление выбранных товаров в корзину\nconst addSelectedToCart = async () => {\n const selected = props.products.filter(p => selectedProducts.value.includes(p._id))\n \n if (selected.length === 0) return\n \n try {\n // Берем организацию первого товара\n const firstProduct = selected[0]\n const organizationId = firstProduct.owner?.target?._id || firstProduct.owner?.target\n \n // Проверяем, что в корзине товары той же организации\n if (shopcart.state.organization && shopcart.state.organization !== organizationId) {\n // Можно добавить подтверждение замены корзины\n const result = await proxy.$alert({\n title: 'Replace items in your cart?',\n message: `Your cart has items from another vendor. If you continue, we'll clear it so you can order from this one instead.`,\n actions: [\n { label: 'Cancel', value: false },\n { label: 'Replace', value: true }\n ]\n })\n\n if (!result) return\n \n shopcart.state.positions = []\n }\n \n shopcart.state.organization = organizationId\n \n // Проверяем, есть ли товары типа rent среди выбранных\n const rentProducts = selected.filter(p => p.listing === 'rent')\n let rentalDates = null\n \n // Если есть товары типа rent, получаем даты для первого товара\n if (rentProducts.length > 0) {\n const firstRentProduct = rentProducts[0]\n const firstVariant = firstRentProduct.variants?.[0]\n \n if (firstVariant) {\n rentalDates = await proxy.$dateSelector(\n firstRentProduct._id,\n firstVariant._id,\n 1,\n firstVariant.price || firstRentProduct.price\n )\n \n if (!rentalDates) return // Пользователь отменил выбор дат\n }\n }\n \n // Добавляем каждый выбранный товар\n for (const product of selected) {\n // Проверяем наличие варианта\n if (!product.variants || product.variants.length === 0) continue\n \n // Используем первый вариант по умолчанию\n const variant = product.variants[0]\n \n // Для товаров типа rent используем полученные даты\n const datesToUse = product.listing === 'rent' ? rentalDates : null\n \n await shopcart.actions.addProductToCart(\n product, \n variant,\n organizationId,\n datesToUse,\n 1 // quantity\n )\n }\n } catch (error) {\n console.error('Error adding to cart:', error)\n }\n}\n</script>\n\n<template>\n <div>\n <h3 class=\"mn-b-small\">Frequently Bought Together</h3>\n <div class=\"recommended-products cols-4 mobile:cols-2 gap-thin\">\n \n <CardProduct \n v-for=\"(product, index) in products\" \n :key=\"product?._id || index\"\n :product=\"product\"\n class=\"h-100 bg-light\"\n @click=\"handleProductClick(product)\"\n :showAddToCart=\"false\"\n >\n <Checkbox\n v-model:radio=\"selectedProducts\"\n :value=\"product._id\"\n mode=\"checkbox\"\n :validation=\"!product.variants || product.variants.length === 0\"\n class=\"pos-r-small pos-t-small pos-absolute\"\n @click.stop\n />\n </CardProduct>\n\n <div class=\"flex-center flex flex-column pd-small radius-small br-solid br-1px br-light\">\n <div class=\"mn-b-thin i-extra pd-small bg-light radius-extra\">\n <IconProducts class=\"i-big\"/>\n </div>\n <p class=\"mn-b-small\">Total price:</p>\n <p class=\"mn-b-medium h3 t-medium\">${{ totalPrice }}</p>\n <Button \n class=\"bg-main gap-micro\"\n :submit=\"canAddToCart ? addSelectedToCart : undefined\"\n >\n <IconShopcartAdd class=\"i-semi\"/>\n <span>Add to Cart</span>\n </Button>\n </div>\n </div>\n </div>\n</template>"],"names":["shopcart.state","shopcart.actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAeA,UAAM,SAAS,UAAS;AACxB,UAAM,EAAE,MAAK,IAAK,mBAAkB;AAGpC,UAAM,QAAQ;AASd,UAAM,mBAAmB,IAAI,MAAM,SAAS,OAAO,OAAK,EAAE,UAAU,SAAS,CAAC,EAAE,IAAI,OAAK,EAAE,GAAG,CAAC;AAGzE,QAAI,IAAI;AAG9B,UAAM,aAAa,SAAS,MAAM;AAChC,aAAO,MAAM,SACV,OAAO,OAAK,iBAAiB,MAAM,SAAS,EAAE,GAAG,CAAC,EAClD,OAAO,CAAC,KAAK,MAAM;AAClB,cAAM,QAAQ,EAAE,WAAW,CAAC,GAAG,SAAS;AACxC,eAAO,MAAM;AAAA,MACf,GAAG,CAAC,EACH,QAAQ,CAAC;AAAA,IACd,CAAC;AAGD,UAAM,eAAe,SAAS,MAAM;AAClC,YAAM,WAAW,MAAM,SAAS,OAAO,OAAK,iBAAiB,MAAM,SAAS,EAAE,GAAG,CAAC;AAClF,aAAO,SAAS,SAAS,KAAK,SAAS,KAAK,OAAK,EAAE,UAAU,SAAS,CAAC;AAAA,IACzE,CAAC;AAED,UAAM,qBAAqB,CAAC,YAAY;AACtC,UAAI,SAAS,OAAO,SAAS,OAAO,QAAQ;AAC1C,eAAO,KAAK;AAAA,UACV,MAAM;AAAA,UACN,QAAQ;AAAA,YACN,KAAK,QAAQ,MAAM;AAAA,YACnB,SAAS,QAAQ;AAAA,UACzB;AAAA,QACA,CAAK;AAAA,MACH;AAAA,IACF;AAGA,UAAM,oBAAoB,YAAY;AACpC,YAAM,WAAW,MAAM,SAAS,OAAO,OAAK,iBAAiB,MAAM,SAAS,EAAE,GAAG,CAAC;AAElF,UAAI,SAAS,WAAW,EAAG;AAE3B,UAAI;AAEF,cAAM,eAAe,SAAS,CAAC;AAC/B,cAAM,iBAAiB,aAAa,OAAO,QAAQ,OAAO,aAAa,OAAO;AAG9E,YAAIA,MAAe,gBAAgBA,MAAe,iBAAiB,gBAAgB;AAEjF,gBAAM,SAAS,MAAM,MAAM,OAAO;AAAA,YAChC,OAAO;AAAA,YACP,SAAS;AAAA,YACT,SAAS;AAAA,cACP,EAAE,OAAO,UAAU,OAAO,MAAK;AAAA,cAC/B,EAAE,OAAO,WAAW,OAAO,KAAI;AAAA,YACzC;AAAA,UACA,CAAO;AAED,cAAI,CAAC,OAAQ;AAEbA,gBAAe,YAAY,CAAA;AAAA,QAC7B;AAEAA,cAAe,eAAe;AAG9B,cAAM,eAAe,SAAS,OAAO,OAAK,EAAE,YAAY,MAAM;AAC9D,YAAI,cAAc;AAGlB,YAAI,aAAa,SAAS,GAAG;AAC3B,gBAAM,mBAAmB,aAAa,CAAC;AACvC,gBAAM,eAAe,iBAAiB,WAAW,CAAC;AAElD,cAAI,cAAc;AAChB,0BAAc,MAAM,MAAM;AAAA,cACxB,iBAAiB;AAAA,cACjB,aAAa;AAAA,cACb;AAAA,cACA,aAAa,SAAS,iBAAiB;AAAA,YACjD;AAEQ,gBAAI,CAAC,YAAa;AAAA,UACpB;AAAA,QACF;AAGA,mBAAW,WAAW,UAAU;AAE9B,cAAI,CAAC,QAAQ,YAAY,QAAQ,SAAS,WAAW,EAAG;AAGxD,gBAAM,UAAU,QAAQ,SAAS,CAAC;AAGlC,gBAAM,aAAa,QAAQ,YAAY,SAAS,cAAc;AAE9D,gBAAMC,QAAiB;AAAA,YACrB;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA;AAAA,UACR;AAAA,QACI;AAAA,MACF,SAAS,OAAO;AACd,gBAAQ,MAAM,yBAAyB,KAAK;AAAA,MAC9C;AAAA,IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -21,6 +21,21 @@ function createProductRoutes(prefix = "", options = {}) {
21
21
  "../components/pages/Products.vue.cjs"
22
22
  ))
23
23
  },
24
+ {
25
+ path: "categories/:categoryPath(.*)",
26
+ name: nameWithPrefix("ProductsCategory"),
27
+ meta: {
28
+ title: {
29
+ en: "Products",
30
+ ru: "Товары"
31
+ },
32
+ authorize: options.productsAuthorize || []
33
+ },
34
+ component: () => Promise.resolve().then(() => require(
35
+ /* webpackChunkName: 'Products' */
36
+ "../components/pages/Products.vue.cjs"
37
+ ))
38
+ },
24
39
  {
25
40
  path: "add",
26
41
  name: nameWithPrefix("ProductAdd"),
@@ -1 +1 @@
1
- {"version":3,"file":"products.router.cjs","sources":["../../../../../../src/modules/products/router/products.router.js"],"sourcesContent":["import * as validationAuth from '@martyrs/src/modules/auth/views/middlewares/auth.validation.js';\n\nexport function createProductRoutes(prefix = '', options = {}) {\n const nameWithPrefix = name => (prefix ? `${prefix}${name}` : name);\n\n const routes = {\n path: options.basePath || 'products',\n children: [\n {\n path: '',\n name: nameWithPrefix('Products'),\n meta: {\n title: {\n en: 'Products',\n ru: 'Товары',\n },\n authorize: options.productsAuthorize || [],\n },\n component: () => import(/* webpackChunkName: 'Products' */ '@martyrs/src/modules/products/components/pages/Products.vue'),\n },\n {\n path: 'add',\n name: nameWithPrefix('ProductAdd'),\n meta: {\n title: {\n en: 'Add Product',\n ru: 'Добавить товар',\n },\n authorize: options.addProductAuthorize || [],\n },\n component: () => import('@martyrs/src/modules/products/components/pages/ProductEdit.vue'),\n },\n {\n path: ':product',\n name: nameWithPrefix('Product'),\n meta: {\n title: {\n en: 'Product',\n ru: 'Продукт',\n },\n showShopCart: true,\n },\n component: () => import('@martyrs/src/modules/products/components/pages/Product.vue'),\n },\n {\n path: ':product/edit',\n name: nameWithPrefix('ProductEdit'),\n meta: {\n title: {\n en: 'Edit Product',\n ru: 'Редактировать продукт',\n },\n authorize: options.editProductAuthorize || [],\n },\n beforeEnter: [validationAuth.requiresAuth],\n component: () => import('@martyrs/src/modules/products/components/pages/ProductEdit.vue'),\n },\n {\n path: 'recommendation',\n name: nameWithPrefix('ProductRecommmendation'),\n meta: {\n title: {\n en: 'Product Recommmendation',\n ru: 'Рекомендации продукта',\n },\n header_theme: 'dark',\n footer_theme: 'dark',\n },\n component: () => import(/* webpackChunkName: 'Product Recommmendation' */ '@martyrs/src/modules/products/components/pages/ProductRecommmendation.vue'),\n props: route => ({ mood: route.query.mood }),\n },\n ],\n };\n\n return routes;\n}\n"],"names":["validationAuth.requiresAuth"],"mappings":";;;AAEO,SAAS,oBAAoB,SAAS,IAAI,UAAU,CAAA,GAAI;AAC7D,QAAM,iBAAiB,UAAS,SAAS,GAAG,MAAM,GAAG,IAAI,KAAK;AAE9D,QAAM,SAAS;AAAA,IACb,MAAM,QAAQ,YAAY;AAAA,IAC1B,UAAU;AAAA,MACR;AAAA,QACE,MAAM;AAAA,QACN,MAAM,eAAe,UAAU;AAAA,QAC/B,MAAM;AAAA,UACJ,OAAO;AAAA,YACL,IAAI;AAAA,YACJ,IAAI;AAAA,UAChB;AAAA,UACU,WAAW,QAAQ,qBAAqB,CAAA;AAAA,QAClD;AAAA,QACQ,WAAW,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA;AAAA;AAAA,UAA0C;AAAA,QAA6D,CAAA;AAAA,MAChI;AAAA,MACM;AAAA,QACE,MAAM;AAAA,QACN,MAAM,eAAe,YAAY;AAAA,QACjC,MAAM;AAAA,UACJ,OAAO;AAAA,YACL,IAAI;AAAA,YACJ,IAAI;AAAA,UAChB;AAAA,UACU,WAAW,QAAQ,uBAAuB,CAAA;AAAA,QACpD;AAAA,QACQ,WAAW,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,QAAO,yCAAgE,CAAA;AAAA,MAChG;AAAA,MACM;AAAA,QACE,MAAM;AAAA,QACN,MAAM,eAAe,SAAS;AAAA,QAC9B,MAAM;AAAA,UACJ,OAAO;AAAA,YACL,IAAI;AAAA,YACJ,IAAI;AAAA,UAChB;AAAA,UACU,cAAc;AAAA,QACxB;AAAA,QACQ,WAAW,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,QAAO,qCAA4D,CAAA;AAAA,MAC5F;AAAA,MACM;AAAA,QACE,MAAM;AAAA,QACN,MAAM,eAAe,aAAa;AAAA,QAClC,MAAM;AAAA,UACJ,OAAO;AAAA,YACL,IAAI;AAAA,YACJ,IAAI;AAAA,UAChB;AAAA,UACU,WAAW,QAAQ,wBAAwB,CAAA;AAAA,QACrD;AAAA,QACQ,aAAa,CAACA,gBAAAA,YAA2B;AAAA,QACzC,WAAW,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,QAAO,yCAAgE,CAAA;AAAA,MAChG;AAAA,MACM;AAAA,QACE,MAAM;AAAA,QACN,MAAM,eAAe,wBAAwB;AAAA,QAC7C,MAAM;AAAA,UACJ,OAAO;AAAA,YACL,IAAI;AAAA,YACJ,IAAI;AAAA,UAChB;AAAA,UACU,cAAc;AAAA,UACd,cAAc;AAAA,QACxB;AAAA,QACQ,WAAW,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA;AAAA;AAAA,UAAyD;AAAA,QAA2E,CAAA;AAAA,QACrJ,OAAO,YAAU,EAAE,MAAM,MAAM,MAAM;MAC7C;AAAA,IACA;AAAA,EACA;AAEE,SAAO;AACT;;"}
1
+ {"version":3,"file":"products.router.cjs","sources":["../../../../../../src/modules/products/router/products.router.js"],"sourcesContent":["import * as validationAuth from '@martyrs/src/modules/auth/views/middlewares/auth.validation.js';\n\nexport function createProductRoutes(prefix = '', options = {}) {\n const nameWithPrefix = name => (prefix ? `${prefix}${name}` : name);\n\n const routes = {\n path: options.basePath || 'products',\n children: [\n {\n path: '',\n name: nameWithPrefix('Products'),\n meta: {\n title: {\n en: 'Products',\n ru: 'Товары',\n },\n authorize: options.productsAuthorize || [],\n },\n component: () => import(/* webpackChunkName: 'Products' */ '@martyrs/src/modules/products/components/pages/Products.vue'),\n },\n {\n path: 'categories/:categoryPath(.*)',\n name: nameWithPrefix('ProductsCategory'),\n meta: {\n title: {\n en: 'Products',\n ru: 'Товары',\n },\n authorize: options.productsAuthorize || [],\n },\n component: () => import(/* webpackChunkName: 'Products' */ '@martyrs/src/modules/products/components/pages/Products.vue'),\n },\n {\n path: 'add',\n name: nameWithPrefix('ProductAdd'),\n meta: {\n title: {\n en: 'Add Product',\n ru: 'Добавить товар',\n },\n authorize: options.addProductAuthorize || [],\n },\n component: () => import('@martyrs/src/modules/products/components/pages/ProductEdit.vue'),\n },\n {\n path: ':product',\n name: nameWithPrefix('Product'),\n meta: {\n title: {\n en: 'Product',\n ru: 'Продукт',\n },\n showShopCart: true,\n },\n component: () => import('@martyrs/src/modules/products/components/pages/Product.vue'),\n },\n {\n path: ':product/edit',\n name: nameWithPrefix('ProductEdit'),\n meta: {\n title: {\n en: 'Edit Product',\n ru: 'Редактировать продукт',\n },\n authorize: options.editProductAuthorize || [],\n },\n beforeEnter: [validationAuth.requiresAuth],\n component: () => import('@martyrs/src/modules/products/components/pages/ProductEdit.vue'),\n },\n {\n path: 'recommendation',\n name: nameWithPrefix('ProductRecommmendation'),\n meta: {\n title: {\n en: 'Product Recommmendation',\n ru: 'Рекомендации продукта',\n },\n header_theme: 'dark',\n footer_theme: 'dark',\n },\n component: () => import(/* webpackChunkName: 'Product Recommmendation' */ '@martyrs/src/modules/products/components/pages/ProductRecommmendation.vue'),\n props: route => ({ mood: route.query.mood }),\n },\n ],\n };\n\n return routes;\n}\n"],"names":["validationAuth.requiresAuth"],"mappings":";;;AAEO,SAAS,oBAAoB,SAAS,IAAI,UAAU,CAAA,GAAI;AAC7D,QAAM,iBAAiB,UAAS,SAAS,GAAG,MAAM,GAAG,IAAI,KAAK;AAE9D,QAAM,SAAS;AAAA,IACb,MAAM,QAAQ,YAAY;AAAA,IAC1B,UAAU;AAAA,MACR;AAAA,QACE,MAAM;AAAA,QACN,MAAM,eAAe,UAAU;AAAA,QAC/B,MAAM;AAAA,UACJ,OAAO;AAAA,YACL,IAAI;AAAA,YACJ,IAAI;AAAA,UAChB;AAAA,UACU,WAAW,QAAQ,qBAAqB,CAAA;AAAA,QAClD;AAAA,QACQ,WAAW,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA;AAAA;AAAA,UAA0C;AAAA,QAA6D,CAAA;AAAA,MAChI;AAAA,MACM;AAAA,QACE,MAAM;AAAA,QACN,MAAM,eAAe,kBAAkB;AAAA,QACvC,MAAM;AAAA,UACJ,OAAO;AAAA,YACL,IAAI;AAAA,YACJ,IAAI;AAAA,UAChB;AAAA,UACU,WAAW,QAAQ,qBAAqB,CAAA;AAAA,QAClD;AAAA,QACQ,WAAW,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA;AAAA;AAAA,UAA0C;AAAA,QAA6D,CAAA;AAAA,MAChI;AAAA,MACM;AAAA,QACE,MAAM;AAAA,QACN,MAAM,eAAe,YAAY;AAAA,QACjC,MAAM;AAAA,UACJ,OAAO;AAAA,YACL,IAAI;AAAA,YACJ,IAAI;AAAA,UAChB;AAAA,UACU,WAAW,QAAQ,uBAAuB,CAAA;AAAA,QACpD;AAAA,QACQ,WAAW,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,QAAO,yCAAgE,CAAA;AAAA,MAChG;AAAA,MACM;AAAA,QACE,MAAM;AAAA,QACN,MAAM,eAAe,SAAS;AAAA,QAC9B,MAAM;AAAA,UACJ,OAAO;AAAA,YACL,IAAI;AAAA,YACJ,IAAI;AAAA,UAChB;AAAA,UACU,cAAc;AAAA,QACxB;AAAA,QACQ,WAAW,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,QAAO,qCAA4D,CAAA;AAAA,MAC5F;AAAA,MACM;AAAA,QACE,MAAM;AAAA,QACN,MAAM,eAAe,aAAa;AAAA,QAClC,MAAM;AAAA,UACJ,OAAO;AAAA,YACL,IAAI;AAAA,YACJ,IAAI;AAAA,UAChB;AAAA,UACU,WAAW,QAAQ,wBAAwB,CAAA;AAAA,QACrD;AAAA,QACQ,aAAa,CAACA,gBAAAA,YAA2B;AAAA,QACzC,WAAW,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA,QAAO,yCAAgE,CAAA;AAAA,MAChG;AAAA,MACM;AAAA,QACE,MAAM;AAAA,QACN,MAAM,eAAe,wBAAwB;AAAA,QAC7C,MAAM;AAAA,UACJ,OAAO;AAAA,YACL,IAAI;AAAA,YACJ,IAAI;AAAA,UAChB;AAAA,UACU,cAAc;AAAA,UACd,cAAc;AAAA,QACxB;AAAA,QACQ,WAAW,MAAM,QAAA,QAAA,EAAA,KAAA,MAAA;AAAA;AAAA,UAAyD;AAAA,QAA2E,CAAA;AAAA,QACrJ,OAAO,YAAU,EAAE,MAAM,MAAM,MAAM;MAC7C;AAAA,IACA;AAAA,EACA;AAEE,SAAO;AACT;;"}
@@ -19,6 +19,21 @@ function createProductRoutes(prefix = "", options = {}) {
19
19
  "../components/pages/Products.vue.js"
20
20
  )
21
21
  },
22
+ {
23
+ path: "categories/:categoryPath(.*)",
24
+ name: nameWithPrefix("ProductsCategory"),
25
+ meta: {
26
+ title: {
27
+ en: "Products",
28
+ ru: "Товары"
29
+ },
30
+ authorize: options.productsAuthorize || []
31
+ },
32
+ component: () => import(
33
+ /* webpackChunkName: 'Products' */
34
+ "../components/pages/Products.vue.js"
35
+ )
36
+ },
22
37
  {
23
38
  path: "add",
24
39
  name: nameWithPrefix("ProductAdd"),
@@ -1 +1 @@
1
- {"version":3,"file":"products.router.js","sources":["../../../../../../src/modules/products/router/products.router.js"],"sourcesContent":["import * as validationAuth from '@martyrs/src/modules/auth/views/middlewares/auth.validation.js';\n\nexport function createProductRoutes(prefix = '', options = {}) {\n const nameWithPrefix = name => (prefix ? `${prefix}${name}` : name);\n\n const routes = {\n path: options.basePath || 'products',\n children: [\n {\n path: '',\n name: nameWithPrefix('Products'),\n meta: {\n title: {\n en: 'Products',\n ru: 'Товары',\n },\n authorize: options.productsAuthorize || [],\n },\n component: () => import(/* webpackChunkName: 'Products' */ '@martyrs/src/modules/products/components/pages/Products.vue'),\n },\n {\n path: 'add',\n name: nameWithPrefix('ProductAdd'),\n meta: {\n title: {\n en: 'Add Product',\n ru: 'Добавить товар',\n },\n authorize: options.addProductAuthorize || [],\n },\n component: () => import('@martyrs/src/modules/products/components/pages/ProductEdit.vue'),\n },\n {\n path: ':product',\n name: nameWithPrefix('Product'),\n meta: {\n title: {\n en: 'Product',\n ru: 'Продукт',\n },\n showShopCart: true,\n },\n component: () => import('@martyrs/src/modules/products/components/pages/Product.vue'),\n },\n {\n path: ':product/edit',\n name: nameWithPrefix('ProductEdit'),\n meta: {\n title: {\n en: 'Edit Product',\n ru: 'Редактировать продукт',\n },\n authorize: options.editProductAuthorize || [],\n },\n beforeEnter: [validationAuth.requiresAuth],\n component: () => import('@martyrs/src/modules/products/components/pages/ProductEdit.vue'),\n },\n {\n path: 'recommendation',\n name: nameWithPrefix('ProductRecommmendation'),\n meta: {\n title: {\n en: 'Product Recommmendation',\n ru: 'Рекомендации продукта',\n },\n header_theme: 'dark',\n footer_theme: 'dark',\n },\n component: () => import(/* webpackChunkName: 'Product Recommmendation' */ '@martyrs/src/modules/products/components/pages/ProductRecommmendation.vue'),\n props: route => ({ mood: route.query.mood }),\n },\n ],\n };\n\n return routes;\n}\n"],"names":["validationAuth.requiresAuth"],"mappings":";AAEO,SAAS,oBAAoB,SAAS,IAAI,UAAU,CAAA,GAAI;AAC7D,QAAM,iBAAiB,UAAS,SAAS,GAAG,MAAM,GAAG,IAAI,KAAK;AAE9D,QAAM,SAAS;AAAA,IACb,MAAM,QAAQ,YAAY;AAAA,IAC1B,UAAU;AAAA,MACR;AAAA,QACE,MAAM;AAAA,QACN,MAAM,eAAe,UAAU;AAAA,QAC/B,MAAM;AAAA,UACJ,OAAO;AAAA,YACL,IAAI;AAAA,YACJ,IAAI;AAAA,UAChB;AAAA,UACU,WAAW,QAAQ,qBAAqB,CAAA;AAAA,QAClD;AAAA,QACQ,WAAW,MAAM;AAAA;AAAA,UAA0C;AAAA,QAA6D;AAAA,MAChI;AAAA,MACM;AAAA,QACE,MAAM;AAAA,QACN,MAAM,eAAe,YAAY;AAAA,QACjC,MAAM;AAAA,UACJ,OAAO;AAAA,YACL,IAAI;AAAA,YACJ,IAAI;AAAA,UAChB;AAAA,UACU,WAAW,QAAQ,uBAAuB,CAAA;AAAA,QACpD;AAAA,QACQ,WAAW,MAAM,OAAO,wCAAgE;AAAA,MAChG;AAAA,MACM;AAAA,QACE,MAAM;AAAA,QACN,MAAM,eAAe,SAAS;AAAA,QAC9B,MAAM;AAAA,UACJ,OAAO;AAAA,YACL,IAAI;AAAA,YACJ,IAAI;AAAA,UAChB;AAAA,UACU,cAAc;AAAA,QACxB;AAAA,QACQ,WAAW,MAAM,OAAO,oCAA4D;AAAA,MAC5F;AAAA,MACM;AAAA,QACE,MAAM;AAAA,QACN,MAAM,eAAe,aAAa;AAAA,QAClC,MAAM;AAAA,UACJ,OAAO;AAAA,YACL,IAAI;AAAA,YACJ,IAAI;AAAA,UAChB;AAAA,UACU,WAAW,QAAQ,wBAAwB,CAAA;AAAA,QACrD;AAAA,QACQ,aAAa,CAACA,YAA2B;AAAA,QACzC,WAAW,MAAM,OAAO,wCAAgE;AAAA,MAChG;AAAA,MACM;AAAA,QACE,MAAM;AAAA,QACN,MAAM,eAAe,wBAAwB;AAAA,QAC7C,MAAM;AAAA,UACJ,OAAO;AAAA,YACL,IAAI;AAAA,YACJ,IAAI;AAAA,UAChB;AAAA,UACU,cAAc;AAAA,UACd,cAAc;AAAA,QACxB;AAAA,QACQ,WAAW,MAAM;AAAA;AAAA,UAAyD;AAAA,QAA2E;AAAA,QACrJ,OAAO,YAAU,EAAE,MAAM,MAAM,MAAM;MAC7C;AAAA,IACA;AAAA,EACA;AAEE,SAAO;AACT;"}
1
+ {"version":3,"file":"products.router.js","sources":["../../../../../../src/modules/products/router/products.router.js"],"sourcesContent":["import * as validationAuth from '@martyrs/src/modules/auth/views/middlewares/auth.validation.js';\n\nexport function createProductRoutes(prefix = '', options = {}) {\n const nameWithPrefix = name => (prefix ? `${prefix}${name}` : name);\n\n const routes = {\n path: options.basePath || 'products',\n children: [\n {\n path: '',\n name: nameWithPrefix('Products'),\n meta: {\n title: {\n en: 'Products',\n ru: 'Товары',\n },\n authorize: options.productsAuthorize || [],\n },\n component: () => import(/* webpackChunkName: 'Products' */ '@martyrs/src/modules/products/components/pages/Products.vue'),\n },\n {\n path: 'categories/:categoryPath(.*)',\n name: nameWithPrefix('ProductsCategory'),\n meta: {\n title: {\n en: 'Products',\n ru: 'Товары',\n },\n authorize: options.productsAuthorize || [],\n },\n component: () => import(/* webpackChunkName: 'Products' */ '@martyrs/src/modules/products/components/pages/Products.vue'),\n },\n {\n path: 'add',\n name: nameWithPrefix('ProductAdd'),\n meta: {\n title: {\n en: 'Add Product',\n ru: 'Добавить товар',\n },\n authorize: options.addProductAuthorize || [],\n },\n component: () => import('@martyrs/src/modules/products/components/pages/ProductEdit.vue'),\n },\n {\n path: ':product',\n name: nameWithPrefix('Product'),\n meta: {\n title: {\n en: 'Product',\n ru: 'Продукт',\n },\n showShopCart: true,\n },\n component: () => import('@martyrs/src/modules/products/components/pages/Product.vue'),\n },\n {\n path: ':product/edit',\n name: nameWithPrefix('ProductEdit'),\n meta: {\n title: {\n en: 'Edit Product',\n ru: 'Редактировать продукт',\n },\n authorize: options.editProductAuthorize || [],\n },\n beforeEnter: [validationAuth.requiresAuth],\n component: () => import('@martyrs/src/modules/products/components/pages/ProductEdit.vue'),\n },\n {\n path: 'recommendation',\n name: nameWithPrefix('ProductRecommmendation'),\n meta: {\n title: {\n en: 'Product Recommmendation',\n ru: 'Рекомендации продукта',\n },\n header_theme: 'dark',\n footer_theme: 'dark',\n },\n component: () => import(/* webpackChunkName: 'Product Recommmendation' */ '@martyrs/src/modules/products/components/pages/ProductRecommmendation.vue'),\n props: route => ({ mood: route.query.mood }),\n },\n ],\n };\n\n return routes;\n}\n"],"names":["validationAuth.requiresAuth"],"mappings":";AAEO,SAAS,oBAAoB,SAAS,IAAI,UAAU,CAAA,GAAI;AAC7D,QAAM,iBAAiB,UAAS,SAAS,GAAG,MAAM,GAAG,IAAI,KAAK;AAE9D,QAAM,SAAS;AAAA,IACb,MAAM,QAAQ,YAAY;AAAA,IAC1B,UAAU;AAAA,MACR;AAAA,QACE,MAAM;AAAA,QACN,MAAM,eAAe,UAAU;AAAA,QAC/B,MAAM;AAAA,UACJ,OAAO;AAAA,YACL,IAAI;AAAA,YACJ,IAAI;AAAA,UAChB;AAAA,UACU,WAAW,QAAQ,qBAAqB,CAAA;AAAA,QAClD;AAAA,QACQ,WAAW,MAAM;AAAA;AAAA,UAA0C;AAAA,QAA6D;AAAA,MAChI;AAAA,MACM;AAAA,QACE,MAAM;AAAA,QACN,MAAM,eAAe,kBAAkB;AAAA,QACvC,MAAM;AAAA,UACJ,OAAO;AAAA,YACL,IAAI;AAAA,YACJ,IAAI;AAAA,UAChB;AAAA,UACU,WAAW,QAAQ,qBAAqB,CAAA;AAAA,QAClD;AAAA,QACQ,WAAW,MAAM;AAAA;AAAA,UAA0C;AAAA,QAA6D;AAAA,MAChI;AAAA,MACM;AAAA,QACE,MAAM;AAAA,QACN,MAAM,eAAe,YAAY;AAAA,QACjC,MAAM;AAAA,UACJ,OAAO;AAAA,YACL,IAAI;AAAA,YACJ,IAAI;AAAA,UAChB;AAAA,UACU,WAAW,QAAQ,uBAAuB,CAAA;AAAA,QACpD;AAAA,QACQ,WAAW,MAAM,OAAO,wCAAgE;AAAA,MAChG;AAAA,MACM;AAAA,QACE,MAAM;AAAA,QACN,MAAM,eAAe,SAAS;AAAA,QAC9B,MAAM;AAAA,UACJ,OAAO;AAAA,YACL,IAAI;AAAA,YACJ,IAAI;AAAA,UAChB;AAAA,UACU,cAAc;AAAA,QACxB;AAAA,QACQ,WAAW,MAAM,OAAO,oCAA4D;AAAA,MAC5F;AAAA,MACM;AAAA,QACE,MAAM;AAAA,QACN,MAAM,eAAe,aAAa;AAAA,QAClC,MAAM;AAAA,UACJ,OAAO;AAAA,YACL,IAAI;AAAA,YACJ,IAAI;AAAA,UAChB;AAAA,UACU,WAAW,QAAQ,wBAAwB,CAAA;AAAA,QACrD;AAAA,QACQ,aAAa,CAACA,YAA2B;AAAA,QACzC,WAAW,MAAM,OAAO,wCAAgE;AAAA,MAChG;AAAA,MACM;AAAA,QACE,MAAM;AAAA,QACN,MAAM,eAAe,wBAAwB;AAAA,QAC7C,MAAM;AAAA,UACJ,OAAO;AAAA,YACL,IAAI;AAAA,YACJ,IAAI;AAAA,UAChB;AAAA,UACU,cAAc;AAAA,UACd,cAAc;AAAA,QACxB;AAAA,QACQ,WAAW,MAAM;AAAA;AAAA,UAAyD;AAAA,QAA2E;AAAA,QACrJ,OAAO,YAAU,EAAE,MAAM,MAAM,MAAM;MAC7C;AAAA,IACA;AAAA,EACA;AAEE,SAAO;AACT;"}
@@ -11,23 +11,25 @@ const state = vue.reactive({
11
11
  },
12
12
  current: {
13
13
  order: 1,
14
- photo: null,
14
+ photo: "",
15
15
  name: "",
16
+ slug: "",
16
17
  url: "",
18
+ level: 0,
17
19
  status: "draft",
18
20
  creator: null,
19
21
  owner: null,
20
22
  parent: null,
21
23
  children: [],
22
24
  filters: [],
23
- localization: []
25
+ translations: []
24
26
  }
25
27
  });
26
28
  const actions = {
27
29
  async read(options = {}) {
28
30
  try {
29
31
  const response = await axiosInstance.default.get("/api/categories", { params: options });
30
- if (options.url) {
32
+ if (options._id) {
31
33
  state.current = { ...response.data[0] };
32
34
  return Promise.resolve(response.data[0]);
33
35
  } else {
@@ -69,10 +71,21 @@ const actions = {
69
71
  return Promise.reject(error);
70
72
  }
71
73
  },
72
- async delete(url) {
74
+ async delete(id) {
73
75
  try {
74
- await axiosInstance.default.post("/api/categories/delete", { url });
75
- state.all = state.all.filter((c) => c.url !== url);
76
+ let removeFromTree = function(items) {
77
+ return items.filter((item) => {
78
+ if (item._id === id) {
79
+ return false;
80
+ }
81
+ if (item.children && item.children.length > 0) {
82
+ item.children = removeFromTree(item.children);
83
+ }
84
+ return true;
85
+ });
86
+ };
87
+ await axiosInstance.default.post("/api/categories/delete", { _id: id });
88
+ state.all = removeFromTree(state.all);
76
89
  return Promise.resolve();
77
90
  } catch (error) {
78
91
  globals.setError(error);
@@ -82,13 +95,18 @@ const actions = {
82
95
  clean() {
83
96
  state.current = {
84
97
  order: 1,
98
+ photo: "",
85
99
  name: "",
100
+ slug: "",
86
101
  url: "",
102
+ level: 0,
87
103
  status: "draft",
104
+ creator: null,
105
+ owner: null,
88
106
  parent: null,
89
107
  children: [],
90
108
  filters: [],
91
- localization: []
109
+ translations: []
92
110
  };
93
111
  }
94
112
  };
@@ -1 +1 @@
1
- {"version":3,"file":"categories.cjs","sources":["../../../../../../src/modules/products/store/categories.js"],"sourcesContent":["// Dependencies\nimport { setError } from '@martyrs/src/modules/globals/views/store/globals.js';\nimport { reactive, watch } from 'vue';\n\nimport $axios from '@martyrs/src/modules/globals/views/utils/axios-instance.js';\n\n// State\nconst state = reactive({\n all: [],\n\n filter: {\n status: null,\n search: null,\n },\n current: {\n order: 1,\n photo: null,\n name: '',\n url: '',\n status: 'draft',\n creator: null,\n owner: null,\n parent: null,\n children: [],\n filters: [],\n localization: [],\n },\n});\n\n// Methods\nconst actions = {\n async read(options = {}) {\n try {\n const response = await $axios.get('/api/categories', { params: options });\n\n if (options.url) {\n state.current = { ...response.data[0] };\n return Promise.resolve(response.data[0]);\n } else {\n return Promise.resolve(response.data);\n }\n } catch (error) {\n setError(error);\n return Promise.reject(error);\n }\n },\n\n async create(category) {\n try {\n const response = await $axios.post('/api/categories/create', category);\n state.all.push(response.data);\n return Promise.resolve(response.data);\n } catch (error) {\n setError(error);\n return Promise.reject(error);\n }\n },\n\n async update(category) {\n try {\n const response = await $axios.post('/api/categories/update', category);\n return Promise.resolve(response.data);\n } catch (error) {\n setError(error);\n return Promise.reject(error);\n }\n },\n\n // Method for updating order of multiple categories\n async updateOrder(categories) {\n try {\n const response = await $axios.post('/api/categories/updateOrder', {\n categories: categories,\n });\n\n return Promise.resolve(response.data);\n } catch (error) {\n setError(error);\n return Promise.reject(error);\n }\n },\n\n async delete(url) {\n try {\n await $axios.post('/api/categories/delete', { url });\n state.all = state.all.filter(c => c.url !== url);\n return Promise.resolve();\n } catch (error) {\n setError(error);\n return Promise.reject(error);\n }\n },\n\n clean() {\n state.current = {\n order: 1,\n name: '',\n url: '',\n status: 'draft',\n parent: null,\n children: [],\n filters: [],\n localization: [],\n };\n },\n};\n\nconst history = [];\nhistory.push(state);\n\nwatch(\n state,\n newState => {\n history.push(newState);\n },\n { deep: true }\n);\n\nexport { actions, state };\n"],"names":["reactive","$axios","setError","watch"],"mappings":";;;;;AAOK,MAAC,QAAQA,IAAAA,SAAS;AAAA,EACrB,KAAK,CAAA;AAAA,EAEL,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,EACZ;AAAA,EACE,SAAS;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,KAAK;AAAA,IACL,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU,CAAA;AAAA,IACV,SAAS,CAAA;AAAA,IACT,cAAc,CAAA;AAAA,EAClB;AACA,CAAC;AAGI,MAAC,UAAU;AAAA,EACd,MAAM,KAAK,UAAU,IAAI;AACvB,QAAI;AACF,YAAM,WAAW,MAAMC,sBAAO,IAAI,mBAAmB,EAAE,QAAQ,SAAS;AAExE,UAAI,QAAQ,KAAK;AACf,cAAM,UAAU,EAAE,GAAG,SAAS,KAAK,CAAC,EAAC;AACrC,eAAO,QAAQ,QAAQ,SAAS,KAAK,CAAC,CAAC;AAAA,MACzC,OAAO;AACL,eAAO,QAAQ,QAAQ,SAAS,IAAI;AAAA,MACtC;AAAA,IACF,SAAS,OAAO;AACdC,cAAAA,SAAS,KAAK;AACd,aAAO,QAAQ,OAAO,KAAK;AAAA,IAC7B;AAAA,EACF;AAAA,EAEA,MAAM,OAAO,UAAU;AACrB,QAAI;AACF,YAAM,WAAW,MAAMD,cAAAA,QAAO,KAAK,0BAA0B,QAAQ;AACrE,YAAM,IAAI,KAAK,SAAS,IAAI;AAC5B,aAAO,QAAQ,QAAQ,SAAS,IAAI;AAAA,IACtC,SAAS,OAAO;AACdC,cAAAA,SAAS,KAAK;AACd,aAAO,QAAQ,OAAO,KAAK;AAAA,IAC7B;AAAA,EACF;AAAA,EAEA,MAAM,OAAO,UAAU;AACrB,QAAI;AACF,YAAM,WAAW,MAAMD,cAAAA,QAAO,KAAK,0BAA0B,QAAQ;AACrE,aAAO,QAAQ,QAAQ,SAAS,IAAI;AAAA,IACtC,SAAS,OAAO;AACdC,cAAAA,SAAS,KAAK;AACd,aAAO,QAAQ,OAAO,KAAK;AAAA,IAC7B;AAAA,EACF;AAAA;AAAA,EAGA,MAAM,YAAY,YAAY;AAC5B,QAAI;AACF,YAAM,WAAW,MAAMD,sBAAO,KAAK,+BAA+B;AAAA,QAChE;AAAA,MACR,CAAO;AAED,aAAO,QAAQ,QAAQ,SAAS,IAAI;AAAA,IACtC,SAAS,OAAO;AACdC,cAAAA,SAAS,KAAK;AACd,aAAO,QAAQ,OAAO,KAAK;AAAA,IAC7B;AAAA,EACF;AAAA,EAEA,MAAM,OAAO,KAAK;AAChB,QAAI;AACF,YAAMD,cAAAA,QAAO,KAAK,0BAA0B,EAAE,IAAG,CAAE;AACnD,YAAM,MAAM,MAAM,IAAI,OAAO,OAAK,EAAE,QAAQ,GAAG;AAC/C,aAAO,QAAQ,QAAO;AAAA,IACxB,SAAS,OAAO;AACdC,cAAAA,SAAS,KAAK;AACd,aAAO,QAAQ,OAAO,KAAK;AAAA,IAC7B;AAAA,EACF;AAAA,EAEA,QAAQ;AACN,UAAM,UAAU;AAAA,MACd,OAAO;AAAA,MACP,MAAM;AAAA,MACN,KAAK;AAAA,MACL,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,UAAU,CAAA;AAAA,MACV,SAAS,CAAA;AAAA,MACT,cAAc,CAAA;AAAA,IACpB;AAAA,EACE;AACF;AAKAC,IAAAA;AAAAA,EACE;AAAA,EACA,cAAY;AAAA,EAEZ;AAAA,EACA,EAAE,MAAM,KAAI;AACd;;;"}
1
+ {"version":3,"file":"categories.cjs","sources":["../../../../../../src/modules/products/store/categories.js"],"sourcesContent":["// Dependencies\nimport { setError } from '@martyrs/src/modules/globals/views/store/globals.js';\nimport { reactive, watch } from 'vue';\n\nimport $axios from '@martyrs/src/modules/globals/views/utils/axios-instance.js';\n\n// State\nconst state = reactive({\n all: [],\n\n filter: {\n status: null,\n search: null,\n },\n current: {\n order: 1,\n photo: '',\n name: '',\n slug: '',\n url: '',\n level: 0,\n status: 'draft',\n creator: null,\n owner: null,\n parent: null,\n children: [],\n filters: [],\n translations: [],\n },\n});\n\n// Methods\nconst actions = {\n async read(options = {}) {\n try {\n const response = await $axios.get('/api/categories', { params: options });\n\n if (options._id) {\n state.current = { ...response.data[0] };\n return Promise.resolve(response.data[0]);\n } else {\n return Promise.resolve(response.data);\n }\n } catch (error) {\n setError(error);\n return Promise.reject(error);\n }\n },\n\n async create(category) {\n try {\n const response = await $axios.post('/api/categories/create', category);\n state.all.push(response.data);\n return Promise.resolve(response.data);\n } catch (error) {\n setError(error);\n return Promise.reject(error);\n }\n },\n\n async update(category) {\n try {\n const response = await $axios.post('/api/categories/update', category);\n return Promise.resolve(response.data);\n } catch (error) {\n setError(error);\n return Promise.reject(error);\n }\n },\n\n // Method for updating order of multiple categories\n async updateOrder(categories) {\n try {\n const response = await $axios.post('/api/categories/updateOrder', {\n categories: categories,\n });\n\n return Promise.resolve(response.data);\n } catch (error) {\n setError(error);\n return Promise.reject(error);\n }\n },\n\n async delete(id) {\n try {\n await $axios.post('/api/categories/delete', { _id: id });\n // Рекурсивная функция для удаления категории и её детей из дерева\n function removeFromTree(items) {\n return items.filter(item => {\n if (item._id === id) {\n return false;\n }\n if (item.children && item.children.length > 0) {\n item.children = removeFromTree(item.children);\n }\n return true;\n });\n }\n state.all = removeFromTree(state.all);\n return Promise.resolve();\n } catch (error) {\n setError(error);\n return Promise.reject(error);\n }\n },\n\n clean() {\n state.current = {\n order: 1,\n photo: '',\n name: '',\n slug: '',\n url: '',\n level: 0,\n status: 'draft',\n creator: null,\n owner: null,\n parent: null,\n children: [],\n filters: [],\n translations: [],\n };\n },\n};\n\nconst history = [];\nhistory.push(state);\n\nwatch(\n state,\n newState => {\n history.push(newState);\n },\n { deep: true }\n);\n\nexport { actions, state };\n"],"names":["reactive","$axios","setError","watch"],"mappings":";;;;;AAOK,MAAC,QAAQA,IAAAA,SAAS;AAAA,EACrB,KAAK,CAAA;AAAA,EAEL,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,EACZ;AAAA,EACE,SAAS;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,KAAK;AAAA,IACL,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU,CAAA;AAAA,IACV,SAAS,CAAA;AAAA,IACT,cAAc,CAAA;AAAA,EAClB;AACA,CAAC;AAGI,MAAC,UAAU;AAAA,EACd,MAAM,KAAK,UAAU,IAAI;AACvB,QAAI;AACF,YAAM,WAAW,MAAMC,sBAAO,IAAI,mBAAmB,EAAE,QAAQ,SAAS;AAExE,UAAI,QAAQ,KAAK;AACf,cAAM,UAAU,EAAE,GAAG,SAAS,KAAK,CAAC,EAAC;AACrC,eAAO,QAAQ,QAAQ,SAAS,KAAK,CAAC,CAAC;AAAA,MACzC,OAAO;AACL,eAAO,QAAQ,QAAQ,SAAS,IAAI;AAAA,MACtC;AAAA,IACF,SAAS,OAAO;AACdC,cAAAA,SAAS,KAAK;AACd,aAAO,QAAQ,OAAO,KAAK;AAAA,IAC7B;AAAA,EACF;AAAA,EAEA,MAAM,OAAO,UAAU;AACrB,QAAI;AACF,YAAM,WAAW,MAAMD,cAAAA,QAAO,KAAK,0BAA0B,QAAQ;AACrE,YAAM,IAAI,KAAK,SAAS,IAAI;AAC5B,aAAO,QAAQ,QAAQ,SAAS,IAAI;AAAA,IACtC,SAAS,OAAO;AACdC,cAAAA,SAAS,KAAK;AACd,aAAO,QAAQ,OAAO,KAAK;AAAA,IAC7B;AAAA,EACF;AAAA,EAEA,MAAM,OAAO,UAAU;AACrB,QAAI;AACF,YAAM,WAAW,MAAMD,cAAAA,QAAO,KAAK,0BAA0B,QAAQ;AACrE,aAAO,QAAQ,QAAQ,SAAS,IAAI;AAAA,IACtC,SAAS,OAAO;AACdC,cAAAA,SAAS,KAAK;AACd,aAAO,QAAQ,OAAO,KAAK;AAAA,IAC7B;AAAA,EACF;AAAA;AAAA,EAGA,MAAM,YAAY,YAAY;AAC5B,QAAI;AACF,YAAM,WAAW,MAAMD,sBAAO,KAAK,+BAA+B;AAAA,QAChE;AAAA,MACR,CAAO;AAED,aAAO,QAAQ,QAAQ,SAAS,IAAI;AAAA,IACtC,SAAS,OAAO;AACdC,cAAAA,SAAS,KAAK;AACd,aAAO,QAAQ,OAAO,KAAK;AAAA,IAC7B;AAAA,EACF;AAAA,EAEA,MAAM,OAAO,IAAI;AACf,QAAI;AAGF,UAAS,iBAAT,SAAwB,OAAO;AAC7B,eAAO,MAAM,OAAO,UAAQ;AAC1B,cAAI,KAAK,QAAQ,IAAI;AACnB,mBAAO;AAAA,UACT;AACA,cAAI,KAAK,YAAY,KAAK,SAAS,SAAS,GAAG;AAC7C,iBAAK,WAAW,eAAe,KAAK,QAAQ;AAAA,UAC9C;AACA,iBAAO;AAAA,QACT,CAAC;AAAA,MACH;AAZA,YAAMD,cAAAA,QAAO,KAAK,0BAA0B,EAAE,KAAK,GAAE,CAAE;AAavD,YAAM,MAAM,eAAe,MAAM,GAAG;AACpC,aAAO,QAAQ,QAAO;AAAA,IACxB,SAAS,OAAO;AACdC,cAAAA,SAAS,KAAK;AACd,aAAO,QAAQ,OAAO,KAAK;AAAA,IAC7B;AAAA,EACF;AAAA,EAEA,QAAQ;AACN,UAAM,UAAU;AAAA,MACd,OAAO;AAAA,MACP,OAAO;AAAA,MACP,MAAM;AAAA,MACN,MAAM;AAAA,MACN,KAAK;AAAA,MACL,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,UAAU,CAAA;AAAA,MACV,SAAS,CAAA;AAAA,MACT,cAAc,CAAA;AAAA,IACpB;AAAA,EACE;AACF;AAKAC,IAAAA;AAAAA,EACE;AAAA,EACA,cAAY;AAAA,EAEZ;AAAA,EACA,EAAE,MAAM,KAAI;AACd;;;"}
@@ -9,23 +9,25 @@ const state = reactive({
9
9
  },
10
10
  current: {
11
11
  order: 1,
12
- photo: null,
12
+ photo: "",
13
13
  name: "",
14
+ slug: "",
14
15
  url: "",
16
+ level: 0,
15
17
  status: "draft",
16
18
  creator: null,
17
19
  owner: null,
18
20
  parent: null,
19
21
  children: [],
20
22
  filters: [],
21
- localization: []
23
+ translations: []
22
24
  }
23
25
  });
24
26
  const actions = {
25
27
  async read(options = {}) {
26
28
  try {
27
29
  const response = await $axios.get("/api/categories", { params: options });
28
- if (options.url) {
30
+ if (options._id) {
29
31
  state.current = { ...response.data[0] };
30
32
  return Promise.resolve(response.data[0]);
31
33
  } else {
@@ -67,10 +69,21 @@ const actions = {
67
69
  return Promise.reject(error);
68
70
  }
69
71
  },
70
- async delete(url) {
72
+ async delete(id) {
71
73
  try {
72
- await $axios.post("/api/categories/delete", { url });
73
- state.all = state.all.filter((c) => c.url !== url);
74
+ let removeFromTree = function(items) {
75
+ return items.filter((item) => {
76
+ if (item._id === id) {
77
+ return false;
78
+ }
79
+ if (item.children && item.children.length > 0) {
80
+ item.children = removeFromTree(item.children);
81
+ }
82
+ return true;
83
+ });
84
+ };
85
+ await $axios.post("/api/categories/delete", { _id: id });
86
+ state.all = removeFromTree(state.all);
74
87
  return Promise.resolve();
75
88
  } catch (error) {
76
89
  setError(error);
@@ -80,13 +93,18 @@ const actions = {
80
93
  clean() {
81
94
  state.current = {
82
95
  order: 1,
96
+ photo: "",
83
97
  name: "",
98
+ slug: "",
84
99
  url: "",
100
+ level: 0,
85
101
  status: "draft",
102
+ creator: null,
103
+ owner: null,
86
104
  parent: null,
87
105
  children: [],
88
106
  filters: [],
89
- localization: []
107
+ translations: []
90
108
  };
91
109
  }
92
110
  };
@@ -1 +1 @@
1
- {"version":3,"file":"categories.js","sources":["../../../../../../src/modules/products/store/categories.js"],"sourcesContent":["// Dependencies\nimport { setError } from '@martyrs/src/modules/globals/views/store/globals.js';\nimport { reactive, watch } from 'vue';\n\nimport $axios from '@martyrs/src/modules/globals/views/utils/axios-instance.js';\n\n// State\nconst state = reactive({\n all: [],\n\n filter: {\n status: null,\n search: null,\n },\n current: {\n order: 1,\n photo: null,\n name: '',\n url: '',\n status: 'draft',\n creator: null,\n owner: null,\n parent: null,\n children: [],\n filters: [],\n localization: [],\n },\n});\n\n// Methods\nconst actions = {\n async read(options = {}) {\n try {\n const response = await $axios.get('/api/categories', { params: options });\n\n if (options.url) {\n state.current = { ...response.data[0] };\n return Promise.resolve(response.data[0]);\n } else {\n return Promise.resolve(response.data);\n }\n } catch (error) {\n setError(error);\n return Promise.reject(error);\n }\n },\n\n async create(category) {\n try {\n const response = await $axios.post('/api/categories/create', category);\n state.all.push(response.data);\n return Promise.resolve(response.data);\n } catch (error) {\n setError(error);\n return Promise.reject(error);\n }\n },\n\n async update(category) {\n try {\n const response = await $axios.post('/api/categories/update', category);\n return Promise.resolve(response.data);\n } catch (error) {\n setError(error);\n return Promise.reject(error);\n }\n },\n\n // Method for updating order of multiple categories\n async updateOrder(categories) {\n try {\n const response = await $axios.post('/api/categories/updateOrder', {\n categories: categories,\n });\n\n return Promise.resolve(response.data);\n } catch (error) {\n setError(error);\n return Promise.reject(error);\n }\n },\n\n async delete(url) {\n try {\n await $axios.post('/api/categories/delete', { url });\n state.all = state.all.filter(c => c.url !== url);\n return Promise.resolve();\n } catch (error) {\n setError(error);\n return Promise.reject(error);\n }\n },\n\n clean() {\n state.current = {\n order: 1,\n name: '',\n url: '',\n status: 'draft',\n parent: null,\n children: [],\n filters: [],\n localization: [],\n };\n },\n};\n\nconst history = [];\nhistory.push(state);\n\nwatch(\n state,\n newState => {\n history.push(newState);\n },\n { deep: true }\n);\n\nexport { actions, state };\n"],"names":[],"mappings":";;;AAOK,MAAC,QAAQ,SAAS;AAAA,EACrB,KAAK,CAAA;AAAA,EAEL,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,EACZ;AAAA,EACE,SAAS;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,IACN,KAAK;AAAA,IACL,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU,CAAA;AAAA,IACV,SAAS,CAAA;AAAA,IACT,cAAc,CAAA;AAAA,EAClB;AACA,CAAC;AAGI,MAAC,UAAU;AAAA,EACd,MAAM,KAAK,UAAU,IAAI;AACvB,QAAI;AACF,YAAM,WAAW,MAAM,OAAO,IAAI,mBAAmB,EAAE,QAAQ,SAAS;AAExE,UAAI,QAAQ,KAAK;AACf,cAAM,UAAU,EAAE,GAAG,SAAS,KAAK,CAAC,EAAC;AACrC,eAAO,QAAQ,QAAQ,SAAS,KAAK,CAAC,CAAC;AAAA,MACzC,OAAO;AACL,eAAO,QAAQ,QAAQ,SAAS,IAAI;AAAA,MACtC;AAAA,IACF,SAAS,OAAO;AACd,eAAS,KAAK;AACd,aAAO,QAAQ,OAAO,KAAK;AAAA,IAC7B;AAAA,EACF;AAAA,EAEA,MAAM,OAAO,UAAU;AACrB,QAAI;AACF,YAAM,WAAW,MAAM,OAAO,KAAK,0BAA0B,QAAQ;AACrE,YAAM,IAAI,KAAK,SAAS,IAAI;AAC5B,aAAO,QAAQ,QAAQ,SAAS,IAAI;AAAA,IACtC,SAAS,OAAO;AACd,eAAS,KAAK;AACd,aAAO,QAAQ,OAAO,KAAK;AAAA,IAC7B;AAAA,EACF;AAAA,EAEA,MAAM,OAAO,UAAU;AACrB,QAAI;AACF,YAAM,WAAW,MAAM,OAAO,KAAK,0BAA0B,QAAQ;AACrE,aAAO,QAAQ,QAAQ,SAAS,IAAI;AAAA,IACtC,SAAS,OAAO;AACd,eAAS,KAAK;AACd,aAAO,QAAQ,OAAO,KAAK;AAAA,IAC7B;AAAA,EACF;AAAA;AAAA,EAGA,MAAM,YAAY,YAAY;AAC5B,QAAI;AACF,YAAM,WAAW,MAAM,OAAO,KAAK,+BAA+B;AAAA,QAChE;AAAA,MACR,CAAO;AAED,aAAO,QAAQ,QAAQ,SAAS,IAAI;AAAA,IACtC,SAAS,OAAO;AACd,eAAS,KAAK;AACd,aAAO,QAAQ,OAAO,KAAK;AAAA,IAC7B;AAAA,EACF;AAAA,EAEA,MAAM,OAAO,KAAK;AAChB,QAAI;AACF,YAAM,OAAO,KAAK,0BAA0B,EAAE,IAAG,CAAE;AACnD,YAAM,MAAM,MAAM,IAAI,OAAO,OAAK,EAAE,QAAQ,GAAG;AAC/C,aAAO,QAAQ,QAAO;AAAA,IACxB,SAAS,OAAO;AACd,eAAS,KAAK;AACd,aAAO,QAAQ,OAAO,KAAK;AAAA,IAC7B;AAAA,EACF;AAAA,EAEA,QAAQ;AACN,UAAM,UAAU;AAAA,MACd,OAAO;AAAA,MACP,MAAM;AAAA,MACN,KAAK;AAAA,MACL,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,UAAU,CAAA;AAAA,MACV,SAAS,CAAA;AAAA,MACT,cAAc,CAAA;AAAA,IACpB;AAAA,EACE;AACF;AAKA;AAAA,EACE;AAAA,EACA,cAAY;AAAA,EAEZ;AAAA,EACA,EAAE,MAAM,KAAI;AACd;"}
1
+ {"version":3,"file":"categories.js","sources":["../../../../../../src/modules/products/store/categories.js"],"sourcesContent":["// Dependencies\nimport { setError } from '@martyrs/src/modules/globals/views/store/globals.js';\nimport { reactive, watch } from 'vue';\n\nimport $axios from '@martyrs/src/modules/globals/views/utils/axios-instance.js';\n\n// State\nconst state = reactive({\n all: [],\n\n filter: {\n status: null,\n search: null,\n },\n current: {\n order: 1,\n photo: '',\n name: '',\n slug: '',\n url: '',\n level: 0,\n status: 'draft',\n creator: null,\n owner: null,\n parent: null,\n children: [],\n filters: [],\n translations: [],\n },\n});\n\n// Methods\nconst actions = {\n async read(options = {}) {\n try {\n const response = await $axios.get('/api/categories', { params: options });\n\n if (options._id) {\n state.current = { ...response.data[0] };\n return Promise.resolve(response.data[0]);\n } else {\n return Promise.resolve(response.data);\n }\n } catch (error) {\n setError(error);\n return Promise.reject(error);\n }\n },\n\n async create(category) {\n try {\n const response = await $axios.post('/api/categories/create', category);\n state.all.push(response.data);\n return Promise.resolve(response.data);\n } catch (error) {\n setError(error);\n return Promise.reject(error);\n }\n },\n\n async update(category) {\n try {\n const response = await $axios.post('/api/categories/update', category);\n return Promise.resolve(response.data);\n } catch (error) {\n setError(error);\n return Promise.reject(error);\n }\n },\n\n // Method for updating order of multiple categories\n async updateOrder(categories) {\n try {\n const response = await $axios.post('/api/categories/updateOrder', {\n categories: categories,\n });\n\n return Promise.resolve(response.data);\n } catch (error) {\n setError(error);\n return Promise.reject(error);\n }\n },\n\n async delete(id) {\n try {\n await $axios.post('/api/categories/delete', { _id: id });\n // Рекурсивная функция для удаления категории и её детей из дерева\n function removeFromTree(items) {\n return items.filter(item => {\n if (item._id === id) {\n return false;\n }\n if (item.children && item.children.length > 0) {\n item.children = removeFromTree(item.children);\n }\n return true;\n });\n }\n state.all = removeFromTree(state.all);\n return Promise.resolve();\n } catch (error) {\n setError(error);\n return Promise.reject(error);\n }\n },\n\n clean() {\n state.current = {\n order: 1,\n photo: '',\n name: '',\n slug: '',\n url: '',\n level: 0,\n status: 'draft',\n creator: null,\n owner: null,\n parent: null,\n children: [],\n filters: [],\n translations: [],\n };\n },\n};\n\nconst history = [];\nhistory.push(state);\n\nwatch(\n state,\n newState => {\n history.push(newState);\n },\n { deep: true }\n);\n\nexport { actions, state };\n"],"names":[],"mappings":"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"}
@@ -80,7 +80,7 @@ const _sfc_main = {
80
80
  "other"
81
81
  ],
82
82
  placeholder: "Select reason",
83
- class: "mn-b-small bg-white br-solid br-black-transp br-1px uppercase pd-medium t-semi bg-white t-black radius-medium"
83
+ class: "mn-b-small bg-white br-solid br-black-transp-10 br-1px uppercase pd-medium t-semi bg-white t-black radius-medium"
84
84
  }, null, 8, ["select"]),
85
85
  _cache[5] || (_cache[5] = vue.createElementVNode("p", { class: "p-medium mn-b-small" }, "Our moderators will review your report within 24 hours and take action if it violates our policies.", -1)),
86
86
  vue.createVNode(Button.default, {
@@ -1 +1 @@
1
- {"version":3,"file":"FormReport.vue.cjs","sources":["../../../../../../../src/modules/reports/components/sections/FormReport.vue"],"sourcesContent":["<template>\n\n\t<div \n\t\t@click.native=\"openReportPopup()\"\n\t>\n\t\t<slot></slot>\n\n\t\t<Popup \n\t\t @close-popup=\"closeReportPopup\" \n\t\t :isPopupOpen=\"isReportPopup\"\n\t\t class=\"w-m-33r t-left pd-big bg-white radius-big\"\n\t\t>\n\t\t <h3 \n\t\t \tclass=\"mn-b-small\"\n\t\t >\n\t\t\t\tReport Content\n\t\t\t</h3>\n\t\t \n\t\t <p \n\t\t \tclass=\"p-medium mn-b-small\"\n\t\t >\n\t\t \tWe strive to maintain a safe and comfortable environment for all users. If you encounter content that you believe violates our guidelines, please report it:\n\t\t </p>\n\t\t <Select \n\t\t\t\tv-model:select=\"form.reason\" \n\t\t :options=\"[\n\t\t \t'harassment',\n\t\t \t'spam',\n\t\t \t'inappropriate',\n\t\t \t'misinformation',\n\t\t \t'copyright',\n\t\t \t'other'\n\t\t ]\"\n\t\t :placeholder=\"'Select reason'\"\n\t\t\t\tclass=\"mn-b-small bg-white br-solid br-black-transp br-1px uppercase pd-medium t-semi bg-white t-black radius-medium\"\n\t\t />\n\t\t \n\t\t <p class=\"p-medium mn-b-small\">Our moderators will review your report within 24 hours and take action if it violates our policies.</p>\n\t\t \n\t\t <Button \n\t\t \t:submit=\"onSubmit\" \n\t\t \t:callback=\"closeReportPopup\" \n\t\t \tclass=\"w-100 bg-black t-white\">\n\t\t \tReport\n\t\t </Button>\n\t\t</Popup>\n\t</div>\n</template>\n\n<script setup=\"props\">\n\t// Dependencies\n\timport { computed,ref,reactive } from 'vue'\n\t// Elements Import\n\timport Popup from '@martyrs/src/components/Popup/Popup.vue';\n\timport Button from '@martyrs/src/components/Button/Button.vue';\n\timport Select from '@martyrs/src/components/Select/Select.vue';\n\t// Store Import\n\timport * as reports from '@martyrs/src/modules/reports/store/reports.js'\n\t// ///////////////////////////////////////\n \t// Components Props\n \t// ///////////////////////////////////////\n \tconst props = defineProps({\n \t\tuser: {\n type: String,\n required: false\n },\n type: {\n type: String,\n required: false\n },\n reason: {\n type: String,\n required: false\n },\n target: {\n type: String,\n required: true\n },\n\t text: {\n\t\t\ttype: String,\n\t\t\tdefault: '!'\n\t\t},\n status: {\n type: String,\n default: 'new'\n }\n \t})\n \t// ///////////////////////////////////////\n \t// Form Logic\n \t// ///////////////////////////////////////\n \tconst form = reactive({\n\t\tuser: props.user,\n\t\ttype: props.type,\n\t\treason: props.reason, \n\t\ttarget: props.target,\n\t\tstatus: props.status,\n\t})\n\n\tfunction onSubmit () {\n\t if (form.user === null) {\n\t \tdelete form.user\n\t }\n\t \treports.actions.create(form)\n\t}\n \t// ///////////////////////////////////////\n\t// Popup logic\n\t// ///////////////////////////////////////\n\tconst isReportPopup = ref(false)\n\n\tfunction openReportPopup() {\n\t isReportPopup.value = true;\n\t}\n\tfunction closeReportPopup() {\n\t isReportPopup.value = false;\n\t}\n</script>"],"names":["reactive","reports.actions","ref"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6DE,UAAM,QAAQ;AA6Bd,UAAM,OAAOA,IAAAA,SAAS;AAAA,MACtB,MAAM,MAAM;AAAA,MACZ,MAAM,MAAM;AAAA,MACZ,QAAQ,MAAM;AAAA,MACd,QAAQ,MAAM;AAAA,MACd,QAAQ,MAAM;AAAA,IAChB,CAAE;AAED,aAAS,WAAY;AACjB,UAAI,KAAK,SAAS,MAAM;AACvB,eAAO,KAAK;AAAA,MACb;AACDC,cAAAA,QAAgB,OAAO,IAAI;AAAA,IAC9B;AAIA,UAAM,gBAAgBC,IAAAA,IAAI,KAAK;AAE/B,aAAS,kBAAkB;AACzB,oBAAc,QAAQ;AAAA,IACxB;AACA,aAAS,mBAAmB;AAC1B,oBAAc,QAAQ;AAAA,IACxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"FormReport.vue.cjs","sources":["../../../../../../../src/modules/reports/components/sections/FormReport.vue"],"sourcesContent":["<template>\n\n\t<div \n\t\t@click.native=\"openReportPopup()\"\n\t>\n\t\t<slot></slot>\n\n\t\t<Popup \n\t\t @close-popup=\"closeReportPopup\" \n\t\t :isPopupOpen=\"isReportPopup\"\n\t\t class=\"w-m-33r t-left pd-big bg-white radius-big\"\n\t\t>\n\t\t <h3 \n\t\t \tclass=\"mn-b-small\"\n\t\t >\n\t\t\t\tReport Content\n\t\t\t</h3>\n\t\t \n\t\t <p \n\t\t \tclass=\"p-medium mn-b-small\"\n\t\t >\n\t\t \tWe strive to maintain a safe and comfortable environment for all users. If you encounter content that you believe violates our guidelines, please report it:\n\t\t </p>\n\t\t <Select \n\t\t\t\tv-model:select=\"form.reason\" \n\t\t :options=\"[\n\t\t \t'harassment',\n\t\t \t'spam',\n\t\t \t'inappropriate',\n\t\t \t'misinformation',\n\t\t \t'copyright',\n\t\t \t'other'\n\t\t ]\"\n\t\t :placeholder=\"'Select reason'\"\n\t\t\t\tclass=\"mn-b-small bg-white br-solid br-black-transp-10 br-1px uppercase pd-medium t-semi bg-white t-black radius-medium\"\n\t\t />\n\t\t \n\t\t <p class=\"p-medium mn-b-small\">Our moderators will review your report within 24 hours and take action if it violates our policies.</p>\n\t\t \n\t\t <Button \n\t\t \t:submit=\"onSubmit\" \n\t\t \t:callback=\"closeReportPopup\" \n\t\t \tclass=\"w-100 bg-black t-white\">\n\t\t \tReport\n\t\t </Button>\n\t\t</Popup>\n\t</div>\n</template>\n\n<script setup=\"props\">\n\t// Dependencies\n\timport { computed,ref,reactive } from 'vue'\n\t// Elements Import\n\timport Popup from '@martyrs/src/components/Popup/Popup.vue';\n\timport Button from '@martyrs/src/components/Button/Button.vue';\n\timport Select from '@martyrs/src/components/Select/Select.vue';\n\t// Store Import\n\timport * as reports from '@martyrs/src/modules/reports/store/reports.js'\n\t// ///////////////////////////////////////\n \t// Components Props\n \t// ///////////////////////////////////////\n \tconst props = defineProps({\n \t\tuser: {\n type: String,\n required: false\n },\n type: {\n type: String,\n required: false\n },\n reason: {\n type: String,\n required: false\n },\n target: {\n type: String,\n required: true\n },\n\t text: {\n\t\t\ttype: String,\n\t\t\tdefault: '!'\n\t\t},\n status: {\n type: String,\n default: 'new'\n }\n \t})\n \t// ///////////////////////////////////////\n \t// Form Logic\n \t// ///////////////////////////////////////\n \tconst form = reactive({\n\t\tuser: props.user,\n\t\ttype: props.type,\n\t\treason: props.reason, \n\t\ttarget: props.target,\n\t\tstatus: props.status,\n\t})\n\n\tfunction onSubmit () {\n\t if (form.user === null) {\n\t \tdelete form.user\n\t }\n\t \treports.actions.create(form)\n\t}\n \t// ///////////////////////////////////////\n\t// Popup logic\n\t// ///////////////////////////////////////\n\tconst isReportPopup = ref(false)\n\n\tfunction openReportPopup() {\n\t isReportPopup.value = true;\n\t}\n\tfunction closeReportPopup() {\n\t isReportPopup.value = false;\n\t}\n</script>"],"names":["reactive","reports.actions","ref"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6DE,UAAM,QAAQ;AA6Bd,UAAM,OAAOA,IAAAA,SAAS;AAAA,MACtB,MAAM,MAAM;AAAA,MACZ,MAAM,MAAM;AAAA,MACZ,QAAQ,MAAM;AAAA,MACd,QAAQ,MAAM;AAAA,MACd,QAAQ,MAAM;AAAA,IAChB,CAAE;AAED,aAAS,WAAY;AACjB,UAAI,KAAK,SAAS,MAAM;AACvB,eAAO,KAAK;AAAA,MACb;AACDC,cAAAA,QAAgB,OAAO,IAAI;AAAA,IAC9B;AAIA,UAAM,gBAAgBC,IAAAA,IAAI,KAAK;AAE/B,aAAS,kBAAkB;AACzB,oBAAc,QAAQ;AAAA,IACxB;AACA,aAAS,mBAAmB;AAC1B,oBAAc,QAAQ;AAAA,IACxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -78,7 +78,7 @@ const _sfc_main = {
78
78
  "other"
79
79
  ],
80
80
  placeholder: "Select reason",
81
- class: "mn-b-small bg-white br-solid br-black-transp br-1px uppercase pd-medium t-semi bg-white t-black radius-medium"
81
+ class: "mn-b-small bg-white br-solid br-black-transp-10 br-1px uppercase pd-medium t-semi bg-white t-black radius-medium"
82
82
  }, null, 8, ["select"]),
83
83
  _cache[5] || (_cache[5] = createElementVNode("p", { class: "p-medium mn-b-small" }, "Our moderators will review your report within 24 hours and take action if it violates our policies.", -1)),
84
84
  createVNode(_sfc_main$2, {
@@ -1 +1 @@
1
- {"version":3,"file":"FormReport.vue.js","sources":["../../../../../../../src/modules/reports/components/sections/FormReport.vue"],"sourcesContent":["<template>\n\n\t<div \n\t\t@click.native=\"openReportPopup()\"\n\t>\n\t\t<slot></slot>\n\n\t\t<Popup \n\t\t @close-popup=\"closeReportPopup\" \n\t\t :isPopupOpen=\"isReportPopup\"\n\t\t class=\"w-m-33r t-left pd-big bg-white radius-big\"\n\t\t>\n\t\t <h3 \n\t\t \tclass=\"mn-b-small\"\n\t\t >\n\t\t\t\tReport Content\n\t\t\t</h3>\n\t\t \n\t\t <p \n\t\t \tclass=\"p-medium mn-b-small\"\n\t\t >\n\t\t \tWe strive to maintain a safe and comfortable environment for all users. If you encounter content that you believe violates our guidelines, please report it:\n\t\t </p>\n\t\t <Select \n\t\t\t\tv-model:select=\"form.reason\" \n\t\t :options=\"[\n\t\t \t'harassment',\n\t\t \t'spam',\n\t\t \t'inappropriate',\n\t\t \t'misinformation',\n\t\t \t'copyright',\n\t\t \t'other'\n\t\t ]\"\n\t\t :placeholder=\"'Select reason'\"\n\t\t\t\tclass=\"mn-b-small bg-white br-solid br-black-transp br-1px uppercase pd-medium t-semi bg-white t-black radius-medium\"\n\t\t />\n\t\t \n\t\t <p class=\"p-medium mn-b-small\">Our moderators will review your report within 24 hours and take action if it violates our policies.</p>\n\t\t \n\t\t <Button \n\t\t \t:submit=\"onSubmit\" \n\t\t \t:callback=\"closeReportPopup\" \n\t\t \tclass=\"w-100 bg-black t-white\">\n\t\t \tReport\n\t\t </Button>\n\t\t</Popup>\n\t</div>\n</template>\n\n<script setup=\"props\">\n\t// Dependencies\n\timport { computed,ref,reactive } from 'vue'\n\t// Elements Import\n\timport Popup from '@martyrs/src/components/Popup/Popup.vue';\n\timport Button from '@martyrs/src/components/Button/Button.vue';\n\timport Select from '@martyrs/src/components/Select/Select.vue';\n\t// Store Import\n\timport * as reports from '@martyrs/src/modules/reports/store/reports.js'\n\t// ///////////////////////////////////////\n \t// Components Props\n \t// ///////////////////////////////////////\n \tconst props = defineProps({\n \t\tuser: {\n type: String,\n required: false\n },\n type: {\n type: String,\n required: false\n },\n reason: {\n type: String,\n required: false\n },\n target: {\n type: String,\n required: true\n },\n\t text: {\n\t\t\ttype: String,\n\t\t\tdefault: '!'\n\t\t},\n status: {\n type: String,\n default: 'new'\n }\n \t})\n \t// ///////////////////////////////////////\n \t// Form Logic\n \t// ///////////////////////////////////////\n \tconst form = reactive({\n\t\tuser: props.user,\n\t\ttype: props.type,\n\t\treason: props.reason, \n\t\ttarget: props.target,\n\t\tstatus: props.status,\n\t})\n\n\tfunction onSubmit () {\n\t if (form.user === null) {\n\t \tdelete form.user\n\t }\n\t \treports.actions.create(form)\n\t}\n \t// ///////////////////////////////////////\n\t// Popup logic\n\t// ///////////////////////////////////////\n\tconst isReportPopup = ref(false)\n\n\tfunction openReportPopup() {\n\t isReportPopup.value = true;\n\t}\n\tfunction closeReportPopup() {\n\t isReportPopup.value = false;\n\t}\n</script>"],"names":["reports.actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6DE,UAAM,QAAQ;AA6Bd,UAAM,OAAO,SAAS;AAAA,MACtB,MAAM,MAAM;AAAA,MACZ,MAAM,MAAM;AAAA,MACZ,QAAQ,MAAM;AAAA,MACd,QAAQ,MAAM;AAAA,MACd,QAAQ,MAAM;AAAA,IAChB,CAAE;AAED,aAAS,WAAY;AACjB,UAAI,KAAK,SAAS,MAAM;AACvB,eAAO,KAAK;AAAA,MACb;AACDA,cAAgB,OAAO,IAAI;AAAA,IAC9B;AAIA,UAAM,gBAAgB,IAAI,KAAK;AAE/B,aAAS,kBAAkB;AACzB,oBAAc,QAAQ;AAAA,IACxB;AACA,aAAS,mBAAmB;AAC1B,oBAAc,QAAQ;AAAA,IACxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"FormReport.vue.js","sources":["../../../../../../../src/modules/reports/components/sections/FormReport.vue"],"sourcesContent":["<template>\n\n\t<div \n\t\t@click.native=\"openReportPopup()\"\n\t>\n\t\t<slot></slot>\n\n\t\t<Popup \n\t\t @close-popup=\"closeReportPopup\" \n\t\t :isPopupOpen=\"isReportPopup\"\n\t\t class=\"w-m-33r t-left pd-big bg-white radius-big\"\n\t\t>\n\t\t <h3 \n\t\t \tclass=\"mn-b-small\"\n\t\t >\n\t\t\t\tReport Content\n\t\t\t</h3>\n\t\t \n\t\t <p \n\t\t \tclass=\"p-medium mn-b-small\"\n\t\t >\n\t\t \tWe strive to maintain a safe and comfortable environment for all users. If you encounter content that you believe violates our guidelines, please report it:\n\t\t </p>\n\t\t <Select \n\t\t\t\tv-model:select=\"form.reason\" \n\t\t :options=\"[\n\t\t \t'harassment',\n\t\t \t'spam',\n\t\t \t'inappropriate',\n\t\t \t'misinformation',\n\t\t \t'copyright',\n\t\t \t'other'\n\t\t ]\"\n\t\t :placeholder=\"'Select reason'\"\n\t\t\t\tclass=\"mn-b-small bg-white br-solid br-black-transp-10 br-1px uppercase pd-medium t-semi bg-white t-black radius-medium\"\n\t\t />\n\t\t \n\t\t <p class=\"p-medium mn-b-small\">Our moderators will review your report within 24 hours and take action if it violates our policies.</p>\n\t\t \n\t\t <Button \n\t\t \t:submit=\"onSubmit\" \n\t\t \t:callback=\"closeReportPopup\" \n\t\t \tclass=\"w-100 bg-black t-white\">\n\t\t \tReport\n\t\t </Button>\n\t\t</Popup>\n\t</div>\n</template>\n\n<script setup=\"props\">\n\t// Dependencies\n\timport { computed,ref,reactive } from 'vue'\n\t// Elements Import\n\timport Popup from '@martyrs/src/components/Popup/Popup.vue';\n\timport Button from '@martyrs/src/components/Button/Button.vue';\n\timport Select from '@martyrs/src/components/Select/Select.vue';\n\t// Store Import\n\timport * as reports from '@martyrs/src/modules/reports/store/reports.js'\n\t// ///////////////////////////////////////\n \t// Components Props\n \t// ///////////////////////////////////////\n \tconst props = defineProps({\n \t\tuser: {\n type: String,\n required: false\n },\n type: {\n type: String,\n required: false\n },\n reason: {\n type: String,\n required: false\n },\n target: {\n type: String,\n required: true\n },\n\t text: {\n\t\t\ttype: String,\n\t\t\tdefault: '!'\n\t\t},\n status: {\n type: String,\n default: 'new'\n }\n \t})\n \t// ///////////////////////////////////////\n \t// Form Logic\n \t// ///////////////////////////////////////\n \tconst form = reactive({\n\t\tuser: props.user,\n\t\ttype: props.type,\n\t\treason: props.reason, \n\t\ttarget: props.target,\n\t\tstatus: props.status,\n\t})\n\n\tfunction onSubmit () {\n\t if (form.user === null) {\n\t \tdelete form.user\n\t }\n\t \treports.actions.create(form)\n\t}\n \t// ///////////////////////////////////////\n\t// Popup logic\n\t// ///////////////////////////////////////\n\tconst isReportPopup = ref(false)\n\n\tfunction openReportPopup() {\n\t isReportPopup.value = true;\n\t}\n\tfunction closeReportPopup() {\n\t isReportPopup.value = false;\n\t}\n</script>"],"names":["reports.actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6DE,UAAM,QAAQ;AA6Bd,UAAM,OAAO,SAAS;AAAA,MACtB,MAAM,MAAM;AAAA,MACZ,MAAM,MAAM;AAAA,MACZ,QAAQ,MAAM;AAAA,MACd,QAAQ,MAAM;AAAA,MACd,QAAQ,MAAM;AAAA,IAChB,CAAE;AAED,aAAS,WAAY;AACjB,UAAI,KAAK,SAAS,MAAM;AACvB,eAAO,KAAK;AAAA,MACb;AACDA,cAAgB,OAAO,IAAI;AAAA,IAC9B;AAIA,UAAM,gBAAgB,IAAI,KAAK;AAE/B,aAAS,kBAAkB;AACzB,oBAAc,QAAQ;AAAA,IACxB;AACA,aAAS,mBAAmB;AAC1B,oBAAc,QAAQ;AAAA,IACxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}