@ozdao/martyrs 0.2.481 → 0.2.483

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 (541) hide show
  1. package/README.md +4 -13
  2. package/dist/{Media-CKk33U4A.js → Media-C57G7rnE.js} +1 -1
  3. package/dist/{Media-B1ZP3D7B.cjs → Media-DjnpKS62.cjs} +1 -1
  4. package/dist/_virtual/_commonjsHelpers.cjs +2 -0
  5. package/dist/_virtual/_commonjsHelpers.cjs.map +1 -1
  6. package/dist/_virtual/_commonjsHelpers.js +2 -0
  7. package/dist/_virtual/_commonjsHelpers.js.map +1 -1
  8. package/dist/_virtual/index2.cjs +8 -0
  9. package/dist/_virtual/index2.cjs.map +1 -0
  10. package/dist/_virtual/index2.js +8 -0
  11. package/dist/_virtual/index2.js.map +1 -0
  12. package/dist/_virtual/index3.cjs +5 -0
  13. package/dist/_virtual/index3.cjs.map +1 -0
  14. package/dist/_virtual/index3.js +5 -0
  15. package/dist/_virtual/index3.js.map +1 -0
  16. package/dist/{abac-XF1JVCLI.cjs → abac-6LjoG9u-.cjs} +107 -26
  17. package/dist/{abac-BuL5pUZ4.js → abac-Cf_9lCSh.js} +107 -26
  18. package/dist/globals.server.cjs +1 -1
  19. package/dist/globals.server.js +1 -1
  20. package/dist/{main-BhAiwmnI.js → main-CXQqAVVb.js} +3036 -4278
  21. package/dist/main-De5X_RUk.cjs +11 -0
  22. package/dist/martyrs/src/components/Button/{Button.vue2.cjs → Button.vue.cjs} +2 -2
  23. package/dist/martyrs/src/components/Button/{Button.vue2.js.map → Button.vue.cjs.map} +1 -1
  24. package/dist/martyrs/src/components/Button/{Button.vue2.js → Button.vue.js} +2 -2
  25. package/dist/martyrs/src/components/Button/Button.vue.js.map +1 -0
  26. package/dist/martyrs/src/components/Checkbox/Checkbox.vue.cjs +28 -7
  27. package/dist/martyrs/src/components/Checkbox/Checkbox.vue.cjs.map +1 -1
  28. package/dist/martyrs/src/components/Checkbox/Checkbox.vue.js +29 -8
  29. package/dist/martyrs/src/components/Checkbox/Checkbox.vue.js.map +1 -1
  30. package/dist/martyrs/src/components/Chips/Chips.vue.cjs +5 -8
  31. package/dist/martyrs/src/components/Chips/Chips.vue.cjs.map +1 -1
  32. package/dist/martyrs/src/components/Chips/Chips.vue.js +6 -9
  33. package/dist/martyrs/src/components/Chips/Chips.vue.js.map +1 -1
  34. package/dist/martyrs/src/components/Feed/Carousel.vue.cjs +84 -0
  35. package/dist/martyrs/src/components/Feed/Carousel.vue.cjs.map +1 -0
  36. package/dist/martyrs/src/components/Feed/Carousel.vue.js +84 -0
  37. package/dist/martyrs/src/components/Feed/Carousel.vue.js.map +1 -0
  38. package/dist/martyrs/src/components/Feed/Feed.vue.cjs +4 -4
  39. package/dist/martyrs/src/components/Feed/Feed.vue.cjs.map +1 -1
  40. package/dist/martyrs/src/components/Feed/Feed.vue.js +4 -4
  41. package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
  42. package/dist/martyrs/src/components/Field/Field.vue.cjs +2 -1
  43. package/dist/martyrs/src/components/Field/Field.vue.cjs.map +1 -1
  44. package/dist/martyrs/src/components/Field/Field.vue.js +2 -1
  45. package/dist/martyrs/src/components/Field/Field.vue.js.map +1 -1
  46. package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.cjs +141 -113
  47. package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.cjs.map +1 -1
  48. package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.js +142 -114
  49. package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.js.map +1 -1
  50. package/dist/martyrs/src/components/Menu/{Menu.vue.cjs → Menu.vue2.cjs} +2 -2
  51. package/dist/martyrs/src/components/Menu/Menu.vue2.cjs.map +1 -0
  52. package/dist/martyrs/src/components/Menu/{Menu.vue.js → Menu.vue2.js} +2 -2
  53. package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +1 -0
  54. package/dist/martyrs/src/components/PhotoViewer/PhotoViewer.vue.cjs +203 -151
  55. package/dist/martyrs/src/components/PhotoViewer/PhotoViewer.vue.cjs.map +1 -1
  56. package/dist/martyrs/src/components/PhotoViewer/PhotoViewer.vue.js +204 -152
  57. package/dist/martyrs/src/components/PhotoViewer/PhotoViewer.vue.js.map +1 -1
  58. package/dist/martyrs/src/components/Radio/Radio.vue.cjs +2 -2
  59. package/dist/martyrs/src/components/Radio/Radio.vue.cjs.map +1 -1
  60. package/dist/martyrs/src/components/Radio/Radio.vue.js +2 -2
  61. package/dist/martyrs/src/components/Radio/Radio.vue.js.map +1 -1
  62. package/dist/martyrs/src/components/Skeleton/Skeleton.vue.cjs +4 -3
  63. package/dist/martyrs/src/components/Skeleton/Skeleton.vue.cjs.map +1 -1
  64. package/dist/martyrs/src/components/Skeleton/Skeleton.vue.js +4 -3
  65. package/dist/martyrs/src/components/Skeleton/Skeleton.vue.js.map +1 -1
  66. package/dist/martyrs/src/components/Slider/{Slider.native.vue.cjs → Slider.vue.cjs} +22 -80
  67. package/dist/martyrs/src/components/Slider/Slider.vue.cjs.map +1 -0
  68. package/dist/martyrs/src/components/Slider/{Slider.native.vue.js → Slider.vue.js} +23 -81
  69. package/dist/martyrs/src/components/Slider/Slider.vue.js.map +1 -0
  70. package/dist/martyrs/src/components/Status/Status.vue.cjs +11 -5
  71. package/dist/martyrs/src/components/Status/Status.vue.cjs.map +1 -1
  72. package/dist/martyrs/src/components/Status/Status.vue.js +13 -7
  73. package/dist/martyrs/src/components/Status/Status.vue.js.map +1 -1
  74. package/dist/martyrs/src/components/Tooltip/Tooltip.vue2.cjs +4 -2
  75. package/dist/martyrs/src/components/Tooltip/Tooltip.vue2.cjs.map +1 -1
  76. package/dist/martyrs/src/components/Tooltip/Tooltip.vue2.js +4 -2
  77. package/dist/martyrs/src/components/Tooltip/Tooltip.vue2.js.map +1 -1
  78. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs +6 -4
  79. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs.map +1 -1
  80. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js +6 -4
  81. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js.map +1 -1
  82. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs +1 -1
  83. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +1 -1
  84. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +1 -1
  85. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +1 -1
  86. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +4 -2
  87. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs.map +1 -1
  88. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +5 -3
  89. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js.map +1 -1
  90. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.cjs +22 -149
  91. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.cjs.map +1 -1
  92. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +24 -151
  93. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js.map +1 -1
  94. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.cjs +77 -0
  95. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.cjs.map +1 -0
  96. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +77 -0
  97. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js.map +1 -0
  98. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.cjs +121 -0
  99. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.cjs.map +1 -0
  100. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +121 -0
  101. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js.map +1 -0
  102. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditSidebar.vue.cjs +38 -0
  103. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditSidebar.vue.cjs.map +1 -0
  104. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditSidebar.vue.js +38 -0
  105. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditSidebar.vue.js.map +1 -0
  106. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.cjs +1 -1
  107. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +1 -1
  108. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs +1 -1
  109. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +1 -1
  110. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs +1 -1
  111. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +1 -1
  112. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.cjs +1 -1
  113. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +1 -1
  114. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.cjs +17 -39
  115. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.cjs.map +1 -1
  116. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.js +18 -40
  117. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.js.map +1 -1
  118. package/dist/martyrs/src/modules/auth/views/localization/EnterCode.json.cjs +1 -1
  119. package/dist/martyrs/src/modules/auth/views/localization/EnterCode.json.js +1 -1
  120. package/dist/martyrs/src/modules/auth/views/localization/EnterPassword.json.cjs +1 -1
  121. package/dist/martyrs/src/modules/auth/views/localization/EnterPassword.json.js +1 -1
  122. package/dist/martyrs/src/modules/auth/views/localization/ResetPassword.json.cjs +1 -1
  123. package/dist/martyrs/src/modules/auth/views/localization/ResetPassword.json.js +1 -1
  124. package/dist/martyrs/src/modules/auth/views/localization/SignIn.json.cjs +1 -1
  125. package/dist/martyrs/src/modules/auth/views/localization/SignIn.json.js +1 -1
  126. package/dist/martyrs/src/modules/auth/views/localization/SignUp.json.cjs +1 -1
  127. package/dist/martyrs/src/modules/auth/views/localization/SignUp.json.js +1 -1
  128. package/dist/martyrs/src/modules/auth/views/router/users.cjs +23 -16
  129. package/dist/martyrs/src/modules/auth/views/router/users.cjs.map +1 -1
  130. package/dist/martyrs/src/modules/auth/views/router/users.js +23 -16
  131. package/dist/martyrs/src/modules/auth/views/router/users.js.map +1 -1
  132. package/dist/martyrs/src/modules/community/components/blocks/FooterBlogpost.vue.cjs +3 -3
  133. package/dist/martyrs/src/modules/community/components/blocks/FooterBlogpost.vue.cjs.map +1 -1
  134. package/dist/martyrs/src/modules/community/components/blocks/FooterBlogpost.vue.js +3 -3
  135. package/dist/martyrs/src/modules/community/components/blocks/FooterBlogpost.vue.js.map +1 -1
  136. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +6 -6
  137. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs +4 -3
  138. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs.map +1 -1
  139. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +4 -3
  140. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js.map +1 -1
  141. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +1 -1
  142. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
  143. package/dist/martyrs/src/modules/community/components/sections/Comment.vue.cjs +92 -62
  144. package/dist/martyrs/src/modules/community/components/sections/Comment.vue.cjs.map +1 -1
  145. package/dist/martyrs/src/modules/community/components/sections/Comment.vue.js +93 -63
  146. package/dist/martyrs/src/modules/community/components/sections/Comment.vue.js.map +1 -1
  147. package/dist/martyrs/src/modules/community/components/sections/Comments.vue.cjs +82 -53
  148. package/dist/martyrs/src/modules/community/components/sections/Comments.vue.cjs.map +1 -1
  149. package/dist/martyrs/src/modules/community/components/sections/Comments.vue.js +82 -53
  150. package/dist/martyrs/src/modules/community/components/sections/Comments.vue.js.map +1 -1
  151. package/dist/martyrs/src/modules/community/components/sections/HotPosts.vue.cjs +2 -6
  152. package/dist/martyrs/src/modules/community/components/sections/HotPosts.vue.cjs.map +1 -1
  153. package/dist/martyrs/src/modules/community/components/sections/HotPosts.vue.js +2 -6
  154. package/dist/martyrs/src/modules/community/components/sections/HotPosts.vue.js.map +1 -1
  155. package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.cjs +1 -1
  156. package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.js +1 -1
  157. package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.cjs +1 -1
  158. package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.js +1 -1
  159. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +1 -1
  160. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +1 -1
  161. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs +1 -1
  162. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
  163. package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.cjs +3 -9
  164. package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.cjs.map +1 -1
  165. package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.js +3 -9
  166. package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.js.map +1 -1
  167. package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.js +4 -4
  168. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +1 -1
  169. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +9 -9
  170. package/dist/martyrs/src/modules/globals/globals.client.cjs +13 -0
  171. package/dist/martyrs/src/modules/globals/globals.client.cjs.map +1 -1
  172. package/dist/martyrs/src/modules/globals/globals.client.js +13 -0
  173. package/dist/martyrs/src/modules/globals/globals.client.js.map +1 -1
  174. package/dist/martyrs/src/modules/globals/locales/en.cjs +24 -0
  175. package/dist/martyrs/src/modules/globals/locales/en.cjs.map +1 -0
  176. package/dist/martyrs/src/modules/globals/locales/en.js +24 -0
  177. package/dist/martyrs/src/modules/globals/locales/en.js.map +1 -0
  178. package/dist/martyrs/src/modules/globals/locales/ru.cjs +24 -0
  179. package/dist/martyrs/src/modules/globals/locales/ru.cjs.map +1 -0
  180. package/dist/martyrs/src/modules/globals/locales/ru.js +24 -0
  181. package/dist/martyrs/src/modules/globals/locales/ru.js.map +1 -0
  182. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.cjs +71 -0
  183. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.cjs.map +1 -0
  184. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.js +71 -0
  185. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.js.map +1 -0
  186. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +2 -2
  187. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs.map +1 -1
  188. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +2 -2
  189. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js.map +1 -1
  190. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupAuth.vue.cjs +84 -0
  191. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupAuth.vue.cjs.map +1 -0
  192. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupAuth.vue.js +84 -0
  193. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupAuth.vue.js.map +1 -0
  194. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs +1 -1
  195. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js +1 -1
  196. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +50 -44
  197. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs.map +1 -1
  198. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +50 -44
  199. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js.map +1 -1
  200. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs +1 -1
  201. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js +1 -1
  202. package/dist/martyrs/src/modules/globals/views/components/partials/NavigationBar.vue.cjs +1 -1
  203. package/dist/martyrs/src/modules/globals/views/components/partials/NavigationBar.vue.js +1 -1
  204. package/dist/martyrs/src/modules/globals/views/mixins/mixins.cjs +17 -0
  205. package/dist/martyrs/src/modules/globals/views/mixins/mixins.cjs.map +1 -1
  206. package/dist/martyrs/src/modules/globals/views/mixins/mixins.js +17 -0
  207. package/dist/martyrs/src/modules/globals/views/mixins/mixins.js.map +1 -1
  208. package/dist/martyrs/src/modules/globals/views/plugins/popup.auth.plugin.cjs +70 -0
  209. package/dist/martyrs/src/modules/globals/views/plugins/popup.auth.plugin.cjs.map +1 -0
  210. package/dist/martyrs/src/modules/globals/views/plugins/popup.auth.plugin.js +70 -0
  211. package/dist/martyrs/src/modules/globals/views/plugins/popup.auth.plugin.js.map +1 -0
  212. package/dist/martyrs/src/modules/globals/views/store/globals.cjs.map +1 -1
  213. package/dist/martyrs/src/modules/globals/views/store/globals.js.map +1 -1
  214. package/dist/martyrs/src/modules/icons/entities/IconList.vue.cjs +35 -0
  215. package/dist/martyrs/src/modules/icons/entities/IconList.vue.cjs.map +1 -0
  216. package/dist/martyrs/src/modules/icons/entities/IconList.vue.js +35 -0
  217. package/dist/martyrs/src/modules/icons/entities/IconList.vue.js.map +1 -0
  218. package/dist/martyrs/src/modules/icons/navigation/IconCheck.vue.cjs +1 -3
  219. package/dist/martyrs/src/modules/icons/navigation/IconCheck.vue.cjs.map +1 -1
  220. package/dist/martyrs/src/modules/icons/navigation/IconCheck.vue.js +1 -3
  221. package/dist/martyrs/src/modules/icons/navigation/IconCheck.vue.js.map +1 -1
  222. package/dist/martyrs/src/modules/icons/navigation/IconDoubleCheck.vue.cjs +1 -3
  223. package/dist/martyrs/src/modules/icons/navigation/IconDoubleCheck.vue.cjs.map +1 -1
  224. package/dist/martyrs/src/modules/icons/navigation/IconDoubleCheck.vue.js +1 -3
  225. package/dist/martyrs/src/modules/icons/navigation/IconDoubleCheck.vue.js.map +1 -1
  226. package/dist/martyrs/src/modules/icons/navigation/IconLike.vue.cjs +1 -3
  227. package/dist/martyrs/src/modules/icons/navigation/IconLike.vue.cjs.map +1 -1
  228. package/dist/martyrs/src/modules/icons/navigation/IconLike.vue.js +1 -3
  229. package/dist/martyrs/src/modules/icons/navigation/IconLike.vue.js.map +1 -1
  230. package/dist/martyrs/src/modules/icons/navigation/IconMute.vue.cjs +1 -3
  231. package/dist/martyrs/src/modules/icons/navigation/IconMute.vue.cjs.map +1 -1
  232. package/dist/martyrs/src/modules/icons/navigation/IconMute.vue.js +1 -3
  233. package/dist/martyrs/src/modules/icons/navigation/IconMute.vue.js.map +1 -1
  234. package/dist/martyrs/src/modules/icons/navigation/IconPause.vue.cjs +1 -3
  235. package/dist/martyrs/src/modules/icons/navigation/IconPause.vue.cjs.map +1 -1
  236. package/dist/martyrs/src/modules/icons/navigation/IconPause.vue.js +1 -3
  237. package/dist/martyrs/src/modules/icons/navigation/IconPause.vue.js.map +1 -1
  238. package/dist/martyrs/src/modules/icons/navigation/IconPlay.vue.cjs +21 -20
  239. package/dist/martyrs/src/modules/icons/navigation/IconPlay.vue.cjs.map +1 -1
  240. package/dist/martyrs/src/modules/icons/navigation/IconPlay.vue.js +21 -20
  241. package/dist/martyrs/src/modules/icons/navigation/IconPlay.vue.js.map +1 -1
  242. package/dist/martyrs/src/modules/icons/navigation/IconRefresh.vue.cjs +1 -3
  243. package/dist/martyrs/src/modules/icons/navigation/IconRefresh.vue.cjs.map +1 -1
  244. package/dist/martyrs/src/modules/icons/navigation/IconRefresh.vue.js +1 -3
  245. package/dist/martyrs/src/modules/icons/navigation/IconRefresh.vue.js.map +1 -1
  246. package/dist/martyrs/src/modules/icons/navigation/IconShuffle.vue.cjs +6 -13
  247. package/dist/martyrs/src/modules/icons/navigation/IconShuffle.vue.cjs.map +1 -1
  248. package/dist/martyrs/src/modules/icons/navigation/IconShuffle.vue.js +6 -13
  249. package/dist/martyrs/src/modules/icons/navigation/IconShuffle.vue.js.map +1 -1
  250. package/dist/martyrs/src/modules/icons/navigation/IconUnMute.vue.cjs +1 -3
  251. package/dist/martyrs/src/modules/icons/navigation/IconUnMute.vue.cjs.map +1 -1
  252. package/dist/martyrs/src/modules/icons/navigation/IconUnMute.vue.js +1 -3
  253. package/dist/martyrs/src/modules/icons/navigation/IconUnMute.vue.js.map +1 -1
  254. package/dist/martyrs/src/modules/icons/navigation/IconVolume.vue.cjs +1 -3
  255. package/dist/martyrs/src/modules/icons/navigation/IconVolume.vue.cjs.map +1 -1
  256. package/dist/martyrs/src/modules/icons/navigation/IconVolume.vue.js +1 -3
  257. package/dist/martyrs/src/modules/icons/navigation/IconVolume.vue.js.map +1 -1
  258. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.cjs +1 -3
  259. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.cjs.map +1 -1
  260. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js +41 -43
  261. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js.map +1 -1
  262. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.cjs +52 -58
  263. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.cjs.map +1 -1
  264. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.js +52 -58
  265. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.js.map +1 -1
  266. package/dist/martyrs/src/modules/notifications/components/blocks/NotificationItem.vue.cjs +8 -8
  267. package/dist/martyrs/src/modules/notifications/components/blocks/NotificationItem.vue.cjs.map +1 -1
  268. package/dist/martyrs/src/modules/notifications/components/blocks/NotificationItem.vue.js +8 -8
  269. package/dist/martyrs/src/modules/notifications/components/blocks/NotificationItem.vue.js.map +1 -1
  270. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.cjs +50 -51
  271. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.cjs.map +1 -1
  272. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js +51 -52
  273. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js.map +1 -1
  274. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +1 -1
  275. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +1 -1
  276. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs +1 -1
  277. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +1 -1
  278. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +1 -1
  279. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +1 -1
  280. package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.cjs +1 -1
  281. package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.js +1 -1
  282. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.cjs +1 -1
  283. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +1 -1
  284. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +1 -1
  285. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +1 -1
  286. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +1 -1
  287. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +1 -1
  288. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +1 -1
  289. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +1 -1
  290. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +1 -1
  291. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
  292. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +1 -1
  293. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +1 -1
  294. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs +1 -1
  295. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +1 -1
  296. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.cjs +1 -1
  297. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +1 -1
  298. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +1 -1
  299. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +1 -1
  300. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.cjs +7 -4
  301. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.cjs.map +1 -1
  302. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.js +18 -15
  303. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.js.map +1 -1
  304. package/dist/martyrs/src/modules/organizations/router/organizations.cjs +1 -1
  305. package/dist/martyrs/src/modules/organizations/router/organizations.js +1 -1
  306. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.cjs +1 -1
  307. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -1
  308. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.cjs +1 -1
  309. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -1
  310. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.cjs +1 -1
  311. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +1 -1
  312. package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.cjs +7 -2
  313. package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.cjs.map +1 -1
  314. package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.js +8 -3
  315. package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.js.map +1 -1
  316. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.cjs +11 -12
  317. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.cjs.map +1 -1
  318. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.js +12 -13
  319. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.js.map +1 -1
  320. package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.cjs +32 -23
  321. package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.cjs.map +1 -1
  322. package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.js +35 -26
  323. package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.js.map +1 -1
  324. package/dist/martyrs/src/modules/products/components/blocks/ProductVariants.vue.cjs +4 -4
  325. package/dist/martyrs/src/modules/products/components/blocks/ProductVariants.vue.cjs.map +1 -1
  326. package/dist/martyrs/src/modules/products/components/blocks/ProductVariants.vue.js +4 -4
  327. package/dist/martyrs/src/modules/products/components/blocks/ProductVariants.vue.js.map +1 -1
  328. package/dist/martyrs/src/modules/products/components/elements/Price.vue.cjs +7 -5
  329. package/dist/martyrs/src/modules/products/components/elements/Price.vue.cjs.map +1 -1
  330. package/dist/martyrs/src/modules/products/components/elements/Price.vue.js +7 -5
  331. package/dist/martyrs/src/modules/products/components/elements/Price.vue.js.map +1 -1
  332. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs +1 -1
  333. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +1 -1
  334. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +2 -2
  335. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +2 -2
  336. package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.cjs +1 -1
  337. package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.js +1 -1
  338. package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.cjs +1 -1
  339. package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +57 -40
  340. package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs.map +1 -1
  341. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +59 -42
  342. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js.map +1 -1
  343. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +105 -85
  344. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs.map +1 -1
  345. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +107 -87
  346. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js.map +1 -1
  347. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.cjs +1 -1
  348. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +1 -1
  349. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs +1 -1
  350. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +1 -1
  351. package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.cjs +145 -0
  352. package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.cjs.map +1 -0
  353. package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.js +145 -0
  354. package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.js.map +1 -0
  355. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs +1 -1
  356. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +1 -1
  357. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.cjs +46 -31
  358. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.cjs.map +1 -1
  359. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js +50 -35
  360. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js.map +1 -1
  361. package/dist/martyrs/src/modules/products/components/sections/ProductsPopular.vue.cjs +44 -0
  362. package/dist/martyrs/src/modules/products/components/sections/ProductsPopular.vue.cjs.map +1 -0
  363. package/dist/martyrs/src/modules/products/components/sections/ProductsPopular.vue.js +44 -0
  364. package/dist/martyrs/src/modules/products/components/sections/ProductsPopular.vue.js.map +1 -0
  365. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.cjs +131 -0
  366. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.cjs.map +1 -0
  367. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +131 -0
  368. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js.map +1 -0
  369. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.cjs +1 -1
  370. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +1 -1
  371. package/dist/martyrs/src/modules/products/products.client.cjs +3 -3
  372. package/dist/martyrs/src/modules/products/products.client.cjs.map +1 -1
  373. package/dist/martyrs/src/modules/products/products.client.js +3 -3
  374. package/dist/martyrs/src/modules/products/products.client.js.map +1 -1
  375. package/dist/martyrs/src/modules/products/store/products.cjs +4 -0
  376. package/dist/martyrs/src/modules/products/store/products.cjs.map +1 -1
  377. package/dist/martyrs/src/modules/products/store/products.js +4 -0
  378. package/dist/martyrs/src/modules/products/store/products.js.map +1 -1
  379. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs +1 -1
  380. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +1 -1
  381. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.cjs +1 -1
  382. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js +1 -1
  383. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +1 -1
  384. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +1 -1
  385. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.cjs +1 -1
  386. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +1 -1
  387. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.cjs +1 -1
  388. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +1 -1
  389. package/dist/martyrs/src/modules/wallet/views/localization/wallet.json.cjs +1 -1
  390. package/dist/martyrs/src/modules/wallet/views/localization/wallet.json.js +1 -1
  391. package/dist/martyrs.cjs.js +1 -1
  392. package/dist/martyrs.css +1 -1
  393. package/dist/martyrs.es.js +1 -1
  394. package/dist/node_modules/lodash.merge/index.cjs +689 -0
  395. package/dist/node_modules/lodash.merge/index.cjs.map +1 -0
  396. package/dist/node_modules/lodash.merge/index.js +689 -0
  397. package/dist/node_modules/lodash.merge/index.js.map +1 -0
  398. package/dist/organizations.server.cjs +1 -1
  399. package/dist/organizations.server.js +1 -1
  400. package/dist/products.server.cjs +111 -34
  401. package/dist/products.server.js +111 -34
  402. package/dist/style.css +239 -235
  403. package/package.json +1 -1
  404. package/src/.martyrs/chunks.json +325 -0
  405. package/src/.martyrs/filemap.json +6802 -0
  406. package/src/.martyrs/semantic-analysis.json +307 -0
  407. package/src/.martyrs/toc.json +14 -0
  408. package/src/components/Button/Button.vue +2 -2
  409. package/src/components/Checkbox/Checkbox.vue +28 -16
  410. package/src/components/Chips/Chips.vue +4 -4
  411. package/src/components/Feed/Carousel.vue +72 -0
  412. package/src/components/Feed/Feed.vue +2 -2
  413. package/src/components/Field/Field.vue +1 -0
  414. package/src/components/FieldPhone/FieldPhone.vue +337 -238
  415. package/src/components/PhotoViewer/PhotoViewer.vue +307 -220
  416. package/src/components/Radio/Radio.vue +2 -10
  417. package/src/components/Skeleton/Skeleton.vue +9 -12
  418. package/src/components/Slider/Slider.vue +220 -100
  419. package/src/components/Status/Status.vue +10 -8
  420. package/src/components/Tooltip/Tooltip.vue +2 -2
  421. package/src/modules/auth/views/components/layouts/Auth.vue +1 -1
  422. package/src/modules/auth/views/components/pages/Profile.vue +1 -1
  423. package/src/modules/auth/views/components/pages/ProfileEdit.old.vue +189 -0
  424. package/src/modules/auth/views/components/pages/ProfileEdit.vue +19 -182
  425. package/src/modules/auth/views/components/pages/ProfileEditAccount.vue +72 -0
  426. package/src/modules/auth/views/components/pages/ProfileEditProfile.vue +110 -0
  427. package/src/modules/auth/views/components/pages/ProfileEditSidebar.vue +28 -0
  428. package/src/modules/auth/views/components/sections/SliderFeatures.vue +13 -79
  429. package/src/modules/auth/views/localization/EnterCode.json +2 -2
  430. package/src/modules/auth/views/localization/EnterPassword.json +2 -2
  431. package/src/modules/auth/views/localization/ResetPassword.json +2 -2
  432. package/src/modules/auth/views/localization/SignIn.json +2 -2
  433. package/src/modules/auth/views/localization/SignUp.json +2 -2
  434. package/src/modules/auth/views/router/users.js +23 -12
  435. package/src/modules/community/components/blocks/FooterBlogpost.vue +3 -3
  436. package/src/modules/community/components/pages/BlogPost.vue +2 -1
  437. package/src/modules/community/components/sections/Comment.vue +161 -57
  438. package/src/modules/community/components/sections/Comments.vue +120 -63
  439. package/src/modules/community/components/sections/HotPosts.vue +7 -7
  440. package/src/modules/events/components/sections/EventsHot.vue +26 -33
  441. package/src/modules/globals/controllers/classes/abac/abac.core.js +3 -1
  442. package/src/modules/globals/controllers/classes/abac/abac.fields.js +126 -42
  443. package/src/modules/globals/controllers/classes/abac/v2/abac-core-fixed.js +313 -0
  444. package/src/modules/globals/controllers/classes/abac/v2/abac-express-fixed.js +276 -0
  445. package/src/modules/globals/controllers/classes/abac/v2/abac-fields-fixed.js +422 -0
  446. package/src/modules/globals/controllers/classes/abac/v2/abac-main-fixed.js +295 -0
  447. package/src/modules/globals/controllers/classes/abac/v2/abac-policies-fixed.js +316 -0
  448. package/src/modules/globals/controllers/classes/abac/v2/abac-ws-fixed.js +237 -0
  449. package/src/modules/globals/globals.client.js +17 -1
  450. package/src/modules/globals/locales/en.js +21 -0
  451. package/src/modules/globals/locales/index.js +8 -0
  452. package/src/modules/globals/locales/ru.js +21 -0
  453. package/src/modules/globals/views/classes/globals.i18n.js +84 -0
  454. package/src/modules/globals/views/components/blocks/CardFooter.vue +3 -3
  455. package/src/modules/globals/views/components/blocks/CardHeader.vue +1 -1
  456. package/src/modules/globals/views/components/blocks/PopupAuth.vue +66 -0
  457. package/src/modules/globals/views/components/layouts/Client.vue +43 -40
  458. package/src/modules/globals/views/components/partials/Footer.vue +162 -162
  459. package/src/modules/globals/views/mixins/mixins.js +37 -17
  460. package/src/modules/globals/views/plugins/popup.auth.plugin.js +77 -0
  461. package/src/modules/globals/views/store/globals.js +0 -40
  462. package/src/modules/icons/entities/IconList.vue +14 -0
  463. package/src/modules/icons/navigation/IconCheck.vue +1 -3
  464. package/src/modules/icons/navigation/IconDoubleCheck.vue +1 -3
  465. package/src/modules/icons/navigation/IconLike.vue +1 -3
  466. package/src/modules/icons/navigation/IconMute.vue +1 -3
  467. package/src/modules/icons/navigation/IconPause.vue +1 -3
  468. package/src/modules/icons/navigation/IconPlay.vue +12 -15
  469. package/src/modules/icons/navigation/IconRefresh.vue +1 -3
  470. package/src/modules/icons/navigation/IconShuffle.vue +11 -26
  471. package/src/modules/icons/navigation/IconUnMute.vue +1 -3
  472. package/src/modules/icons/navigation/IconVolume.vue +1 -3
  473. package/src/modules/icons/pages/IconsPage.vue +0 -2
  474. package/src/modules/marketplace/views/components/layouts/Marketplace.vue +34 -38
  475. package/src/modules/music/components/pages/AlbumDetail.vue +2 -2
  476. package/src/modules/music/components/pages/PlaylistDetail.vue +2 -2
  477. package/src/modules/music/components/pages/TrackDetail.vue +1 -1
  478. package/src/modules/music/components/player/MusicPlayer.vue +2 -2
  479. package/src/modules/notifications/components/blocks/NotificationItem.vue +6 -51
  480. package/src/modules/notifications/components/elements/NotificationBadge.vue +53 -97
  481. package/src/modules/organizations/configs/navigation.organization.config.js +8 -4
  482. package/src/modules/products/components/blocks/CardProduct.vue +8 -2
  483. package/src/modules/products/components/blocks/ProductDiscounts.vue +3 -4
  484. package/src/modules/products/components/blocks/ProductImages.vue +32 -23
  485. package/src/modules/products/components/blocks/ProductVariants.vue +6 -4
  486. package/src/modules/products/components/elements/Price.vue +3 -3
  487. package/src/modules/products/components/pages/Product.vue +32 -26
  488. package/src/modules/products/components/pages/ProductEdit.vue +95 -72
  489. package/src/modules/products/components/sections/EditRecommended.vue +131 -0
  490. package/src/modules/products/components/sections/ProductConfigurator.vue +35 -21
  491. package/src/modules/products/components/sections/ProductsPopular.vue +45 -0
  492. package/src/modules/products/components/sections/ProductsRecommended.vue +134 -0
  493. package/src/modules/products/controllers/configs/products.lookup.config.js +20 -15
  494. package/src/modules/products/controllers/products.controller.js +7 -22
  495. package/src/modules/products/models/category.model.js +28 -1
  496. package/src/modules/products/models/leftover.model.js +32 -0
  497. package/src/modules/products/models/product.model.js +37 -1
  498. package/src/modules/products/models/variant.model.js +35 -0
  499. package/src/modules/products/products.client.js +3 -3
  500. package/src/modules/products/routes/products.routes.js +1 -0
  501. package/src/modules/products/store/products.js +4 -0
  502. package/src/modules/wallet/views/localization/wallet.json +2 -2
  503. package/src/styles/base/all.scss +0 -38
  504. package/src/styles/base/shadow_transitions_hover_refactor.scss +20 -51
  505. package/src/styles/config.scss +51 -1
  506. package/dist/main-C75EcBpE.cjs +0 -11
  507. package/dist/martyrs/src/components/Button/Button.vue2.cjs.map +0 -1
  508. package/dist/martyrs/src/components/Menu/Menu.vue.cjs.map +0 -1
  509. package/dist/martyrs/src/components/Menu/Menu.vue.js.map +0 -1
  510. package/dist/martyrs/src/components/Slider/Slider.native.vue.cjs.map +0 -1
  511. package/dist/martyrs/src/components/Slider/Slider.native.vue.js.map +0 -1
  512. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue2.cjs +0 -2
  513. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue2.cjs.map +0 -1
  514. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue2.js +0 -2
  515. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue2.js.map +0 -1
  516. package/dist/martyrs/src/modules/icons/navigation/IconHeart.vue.cjs +0 -34
  517. package/dist/martyrs/src/modules/icons/navigation/IconHeart.vue.cjs.map +0 -1
  518. package/dist/martyrs/src/modules/icons/navigation/IconHeart.vue.js +0 -34
  519. package/dist/martyrs/src/modules/icons/navigation/IconHeart.vue.js.map +0 -1
  520. package/dist/martyrs/src/modules/products/components/sections/PopularProducts.vue.cjs +0 -124
  521. package/dist/martyrs/src/modules/products/components/sections/PopularProducts.vue.cjs.map +0 -1
  522. package/dist/martyrs/src/modules/products/components/sections/PopularProducts.vue.js +0 -124
  523. package/dist/martyrs/src/modules/products/components/sections/PopularProducts.vue.js.map +0 -1
  524. package/dist/node_modules/.pnpm/embla-carousel-autoplay@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-autoplay/esm/embla-carousel-autoplay.esm.cjs +0 -194
  525. package/dist/node_modules/.pnpm/embla-carousel-autoplay@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-autoplay/esm/embla-carousel-autoplay.esm.cjs.map +0 -1
  526. package/dist/node_modules/.pnpm/embla-carousel-autoplay@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-autoplay/esm/embla-carousel-autoplay.esm.js +0 -194
  527. package/dist/node_modules/.pnpm/embla-carousel-autoplay@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-autoplay/esm/embla-carousel-autoplay.esm.js.map +0 -1
  528. package/dist/node_modules/.pnpm/embla-carousel-reactive-utils@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-reactive-utils/esm/embla-carousel-reactive-utils.esm.cjs +0 -43
  529. package/dist/node_modules/.pnpm/embla-carousel-reactive-utils@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-reactive-utils/esm/embla-carousel-reactive-utils.esm.cjs.map +0 -1
  530. package/dist/node_modules/.pnpm/embla-carousel-reactive-utils@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-reactive-utils/esm/embla-carousel-reactive-utils.esm.js +0 -43
  531. package/dist/node_modules/.pnpm/embla-carousel-reactive-utils@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-reactive-utils/esm/embla-carousel-reactive-utils.esm.js.map +0 -1
  532. package/dist/node_modules/.pnpm/embla-carousel-vue@8.6.0_vue@3.5.13_typescript@5.8.3_/node_modules/embla-carousel-vue/esm/embla-carousel-vue.esm.cjs +0 -43
  533. package/dist/node_modules/.pnpm/embla-carousel-vue@8.6.0_vue@3.5.13_typescript@5.8.3_/node_modules/embla-carousel-vue/esm/embla-carousel-vue.esm.cjs.map +0 -1
  534. package/dist/node_modules/.pnpm/embla-carousel-vue@8.6.0_vue@3.5.13_typescript@5.8.3_/node_modules/embla-carousel-vue/esm/embla-carousel-vue.esm.js +0 -43
  535. package/dist/node_modules/.pnpm/embla-carousel-vue@8.6.0_vue@3.5.13_typescript@5.8.3_/node_modules/embla-carousel-vue/esm/embla-carousel-vue.esm.js.map +0 -1
  536. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/embla-carousel.esm.cjs +0 -1630
  537. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/embla-carousel.esm.cjs.map +0 -1
  538. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/embla-carousel.esm.js +0 -1630
  539. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/embla-carousel.esm.js.map +0 -1
  540. package/src/components/Slider/Slider.native.vue +0 -313
  541. package/src/modules/products/components/sections/PopularProducts.vue +0 -156
@@ -1,7 +1,7 @@
1
1
  <template>
2
- <div class="w-100 o-hidden bg-light radius-medium flex-nowrap flex-column flex pos-relative">
2
+ <div class="w-100 bs-heavy h-max mobile:pos-relative tablet:pos-relative pos-sticky pos-t-0 pd-medium o-hidden bg-light radius-medium gap-small flex-nowrap flex-row mobile:flex-column flex pos-relative">
3
3
  <!-- Main image container -->
4
- <div class="pd-semi w-100 bg-light radius-semi o-hidden" @click="openPopup(images[0])">
4
+ <div class="order-1 w-100 bg-light radius-small o-hidden" @click="openPopup(currentImageIndex)">
5
5
  <Image360
6
6
  v-if="product && product.image3d"
7
7
  class="h-100 w-100"
@@ -10,35 +10,44 @@
10
10
  />
11
11
  <img
12
12
  loading="lazy"
13
- v-if="images[0] && !product?.image3d"
14
- class="h-max h-max-15r bg-white radius-semi w-100"
13
+ v-if="images[currentImageIndex] && !product?.image3d"
14
+ class="h-100 flex-child-default bg-white radius-small w-100"
15
15
  style="object-fit: contain;"
16
- :src="(FILE_SERVER_URL || '') + images[0]"
16
+ :src="(FILE_SERVER_URL || '') + images[currentImageIndex]"
17
17
  />
18
18
  <PlaceholderImage
19
- v-if="!images[0] && !product?.image3d"
20
- class="h-max-20r h-100 w-100"
19
+ v-if="!images[currentImageIndex] && !product?.image3d"
20
+ class="h-100 w-100"
21
21
  style="object-fit: cover;"
22
22
  />
23
23
  </div>
24
24
 
25
25
  <!-- Thumbnails -->
26
- <div v-if="images.length > 1" class="o-scroll w-100 pd-semi pd-t-zero">
27
- <div class="no-responsive w-max flex flex-nowrap gap-thin">
26
+ <div v-if="images.length > 1" class="mobile:order-1 order-0 w-5r mobile:w-100">
27
+ <div class="w-100 mobile:flex-row flex-column flex flex-nowrap gap-thin">
28
28
  <img loading="lazy"
29
- v-for="(image, index) in images"
29
+ v-for="(image, index) in images.slice(0, 5)"
30
30
  :key="index"
31
31
  :src="(FILE_SERVER_URL || '') + image"
32
- @click="openPopup(image)"
33
- class="flex-child flex-child-grow-1 aspect-1x1 radius-semi bg-white o-hidden thumbnail"
32
+ @click="currentImageIndex = index"
33
+ class="aspect-1x1 radius-small bg-white o-hidden thumbnail"
34
+ :class="{ 'active': currentImageIndex === index }"
34
35
  />
36
+ <div
37
+ v-if="images.length > 5"
38
+ @click="openPopup(5)"
39
+ class="aspect-1x1 radius-small o-hidden thumbnail flex flex-center t-medium t-black bg-white "
40
+ >
41
+ +{{ images.length - 5 }}
42
+ </div>
35
43
  </div>
36
44
  </div>
37
45
 
38
46
  <!-- Popup with photo viewer -->
39
- <Popup @close-popup="closePopup" :isPopupOpen="isPopupVisible" class="radius-medium o-hidden">
47
+ <Popup @close-popup="closePopup" :isPopupOpen="isPopupVisible" class="radius-zero o-hidden">
40
48
  <PhotoViewer
41
- :photoUrl="(FILE_SERVER_URL || '') + selectedImage"
49
+ :photos="images.map(img => (FILE_SERVER_URL || '') + img)"
50
+ :initialIndex="selectedImageIndex"
42
51
  />
43
52
  </Popup>
44
53
  </div>
@@ -46,12 +55,9 @@
46
55
 
47
56
  <script setup>
48
57
  import { ref } from "vue";
49
-
50
58
  import Popup from '@martyrs/src/components/Popup/Popup.vue';
51
59
  import PhotoViewer from '@martyrs/src/components/PhotoViewer/PhotoViewer.vue';
52
-
53
60
  import PlaceholderImage from '@martyrs/src/modules/icons/placeholders/PlaceholderImage.vue'
54
-
55
61
  import Image360 from '@martyrs/src/modules/products/components/elements/Image360.vue'
56
62
 
57
63
  const props = defineProps({
@@ -66,15 +72,17 @@ const props = defineProps({
66
72
  });
67
73
 
68
74
  const isPopupVisible = ref(false);
69
- const selectedImage = ref(null);
75
+ const selectedImageIndex = ref(0);
76
+ const currentImageIndex = ref(0);
70
77
 
71
- const openPopup = (image) => {
72
- if (!image) return;
73
- selectedImage.value = image;
78
+ const openPopup = (index) => {
79
+ if (!props.images.length) return;
80
+ selectedImageIndex.value = index;
74
81
  isPopupVisible.value = true;
75
82
  };
76
83
 
77
84
  const closePopup = () => {
85
+ selectedImageIndex.value = 0;
78
86
  isPopupVisible.value = false;
79
87
  };
80
88
  </script>
@@ -82,9 +90,10 @@ const closePopup = () => {
82
90
  <style scoped>
83
91
  .thumbnail {
84
92
  width: 100%;
85
- max-width: 6rem;
86
- height: 6rem;
87
93
  object-fit: cover;
88
94
  cursor: pointer;
89
95
  }
96
+ .thumbnail.active {
97
+ border: 1px solid rgb(var(--second));
98
+ }
90
99
  </style>
@@ -10,13 +10,14 @@
10
10
  class="w-100 mn-b-medium"
11
11
  >
12
12
  <p class="capitalize mn-b-thin t-medium">{{ group.label }}</p>
13
- <div class="flex flex-wrap gap-small mn-b-medium">
13
+
14
+ <div class="flex flex-wrap gap-thin mn-b-medium">
14
15
  <button
15
16
  v-for="item in group.items"
16
17
  :key="item.key"
17
18
  @click="group.label === 'Options' ? pick(item.variant) : pickAttr(group.label, item.value)"
18
19
  :disabled="item.off"
19
- class="h-3r w-min-3r flex-nowrap gap-thin radius-small flex flex-center pos-relative br-1px pd-micro"
20
+ class="pd-small radius-small"
20
21
  :class="[
21
22
  isSelected(group, item) ? 'br-main' : 'br-black-transp-10',
22
23
  item.off ? 'o-50 cursor-not-allowed' : 'cursor-pointer hover-scale-1',
@@ -27,9 +28,10 @@
27
28
  :src="`${FILE_SERVER_URL}${item.img}`"
28
29
  class="h-100 radius-thin aspect-1x1 object-fit-contain"
29
30
  />
30
- <span class="flex-center capitalize flex h-100 w-100 t-small t-center">
31
+ <p class="">
31
32
  {{ item.text }}
32
- </span>
33
+ </p>
34
+
33
35
  <div
34
36
  v-if="isSelected(group, item)"
35
37
  class="pos-absolute pos-b-0 pos-r-0 pos-l-0 flex flex-center h-1r bg-main t-white t-small"
@@ -6,7 +6,6 @@
6
6
  'p-medium t-semi': size === 'small',
7
7
  'h3 t-semi': size === 'big'
8
8
  }"
9
- class="t-second"
10
9
  >
11
10
  {{ returnCurrency() + variant.price }}
12
11
  </span>
@@ -19,7 +18,7 @@
19
18
  }"
20
19
  class="p-small mn-l-micro t-transp"
21
20
  >
22
- {{ product.listing === 'rent' ? 'per day' : 'for ' + variant.quantity + variant.unit }}
21
+ {{ product?.listing === 'rent' ? 'per day' : 'for ' + variant.quantity + variant.unit }}
23
22
  </span>
24
23
 
25
24
  <p
@@ -36,10 +35,11 @@ import { computed } from 'vue';
36
35
 
37
36
  const props = defineProps({
38
37
  product: Object,
38
+ variants: Array,
39
39
  size: String
40
40
  });
41
41
 
42
42
  const variant = computed(() => {
43
- return props.product?.variants?.[0] || props.product;
43
+ return props.product?.variants?.[0] || props.variants?.[0] || props.product;
44
44
  });
45
45
  </script>
@@ -1,6 +1,6 @@
1
1
  <template>
2
- <div v-if="products.state.current" class="h-100 w-100 mobile:pd-thin pd-big bg-white">
3
- <div class="cols-2-1_2 w-100 gap-medium">
2
+ <div v-if="products.state.current" class="w-100 mobile:pd-thin pd-small bg-white">
3
+ <div class="cols-2 mobile:cols-1 w-100 gap-medium">
4
4
 
5
5
  <ProductImages
6
6
  :images="currentImages"
@@ -29,31 +29,15 @@
29
29
  />
30
30
  </router-link>
31
31
 
32
- <h2 class="w-100 h1-product mn-b-small">{{ product.name }}</h2>
33
-
34
- <!-- Показываем цену, если нет вариантов или не выбран ни один вариант -->
35
- <Price
36
- v-if="!selectedVariant"
37
- :product="product"
38
- size="big"
39
- class="flex gap-micro flex-center pd-small br-solid br-1px br-black-transp-10 w-max mn-b-medium"
40
- />
41
-
42
- <!-- Показываем цену выбранного варианта -->
43
- <div
44
- v-else
45
- class="flex gap-micro flex-center pd-small br-solid br-1px br-black-transp-10 w-max mn-b-medium"
46
- >
47
- <span class="h2 t-bold">{{ returnCurrency() }}{{ selectedVariant.price.toFixed(2) }}</span>
48
- </div>
32
+ <h2 class="w-100 h1-product mn-b-medium">{{ product.name }}</h2>
49
33
 
50
- <p v-if="product.description" class="w-100 mn-b-medium">
34
+ <p v-if="product.description" class="w-100 mn-b-medium" style="white-space: pre-line;">
51
35
  {{ product.translations?.length > 1 ? t('description') : product.description }}
52
36
  </p>
53
37
 
54
38
  <!-- Компонент выбора вариантов товара -->
55
39
  <ProductConfigurator
56
- v-if="product.variants.length > 0"
40
+ v-if="product.variants?.length > 0"
57
41
  :product-variants="product.variants"
58
42
  :product-id="product._id"
59
43
  :product-name="product.name"
@@ -64,6 +48,20 @@
64
48
  @update-images="handleUpdateImages"
65
49
  />
66
50
 
51
+ <div v-if="product.included" class="mn-b-small flex-nowrap flex flex-v-center">
52
+ <IconList class="mn-r-micro i-medium"/>
53
+ <p class="t-medium ">Included</p>
54
+ </div>
55
+
56
+ <div v-if="product.included" class="cols-1 mn-b-medium w-100 ">
57
+ <div
58
+ class="w-100 pd-small radius-small flex flex-column gap-small bg-light"
59
+ >
60
+ <p class="t-medium" style="white-space: pre-line;" v-html="product.included"></p>
61
+ </div>
62
+ </div>
63
+
64
+
67
65
  <div class="mn-b-small flex-nowrap flex flex-v-center">
68
66
  <IconInfo class="mn-r-micro i-medium"/>
69
67
  <p class="t-medium ">Product Details</p>
@@ -95,10 +93,16 @@
95
93
  />
96
94
  </div>
97
95
  </div>
96
+
97
+ <ProductsRecommended
98
+ v-if="product.recommended.length > 0"
99
+ :products="product.recommended"
100
+ class=" mn-t-big h-max pos-relative"
101
+ />
98
102
 
99
103
  <div class="h-max mn-t-big pos-relative">
100
104
  <h3 class="pd-b-small">Most Popular</h3>
101
- <PopularProducts class="mn-r-big-negative mn-l-big-negative"/>
105
+ <ProductsPopular class="mn-r-big-negative mn-l-big-negative"/>
102
106
  </div>
103
107
  </div>
104
108
  </template>
@@ -121,15 +125,17 @@ import Tab from '@martyrs/src/components/Tab/Tab.vue'
121
125
  import Calendar from '@martyrs/src/components/DatePicker/Calendar.vue'
122
126
 
123
127
  import IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue'
128
+ import IconInfo from '@martyrs/src/modules/icons/navigation/IconInfo.vue'
129
+
124
130
  import IconShopcartAdd from '@martyrs/src/modules/icons/actions/IconShopcartAdd.vue'
125
131
 
126
- import IconInfo from '@martyrs/src/modules/icons/navigation/IconInfo.vue'
132
+ import IconList from '@martyrs/src/modules/icons/entities/IconList.vue';
127
133
  import IconGroups from '@martyrs/src/modules/icons/entities/IconGroups.vue'
128
134
 
129
135
  import ProductImages from '@martyrs/src/modules/products/components/blocks/ProductImages.vue'
130
- import Price from '@martyrs/src/modules/products/components/elements/Price.vue'
131
- import PopularProducts from '@martyrs/src/modules/products/components/sections/PopularProducts.vue'
132
136
  import ProductConfigurator from '@martyrs/src/modules/products/components/sections/ProductConfigurator.vue'
137
+ import ProductsRecommended from '@martyrs/src/modules/products/components/sections/ProductsRecommended.vue';
138
+ import ProductsPopular from '@martyrs/src/modules/products/components/sections/ProductsPopular.vue'
133
139
 
134
140
  import CardOrganization from '@martyrs/src/modules/organizations/components/blocks/CardOrganization.vue'
135
141
 
@@ -167,7 +173,7 @@ products.state.current = null
167
173
  onMounted(async () => {
168
174
  emits('page-loading');
169
175
 
170
- await products.actions.read({ _id: route.params.product })
176
+ await products.actions.read({ _id: route.params.product, lookup: ['recommended'] })
171
177
 
172
178
  // Инициализируем текущие изображения изображениями товара
173
179
  currentImages.value = [...productImages.value]
@@ -32,6 +32,7 @@
32
32
  { label: 'Details', value: 'details' },
33
33
  { label: 'Variants', value: 'variants' },
34
34
  { label: 'Discounts', value: 'discounts' },
35
+ { label: 'Recommended', value: 'recommended' },
35
36
  { label: 'Localization', value: 'localization' }
36
37
  ]"
37
38
  class="flex-child-default bg-light radius-medium h-max pd-thin o-x-scroll"
@@ -51,53 +52,12 @@
51
52
  />
52
53
  </Block>
53
54
 
54
- <!-- Product Profile -->
55
- <Block title="Profile">
56
- <div class="mn-b-thin flex-nowrap flex gap-thin">
57
- <Select
58
- v-model:select="products.state.current.status"
59
- label="Status"
60
- :options="[
61
- 'draft',
62
- 'published',
63
- 'featured',
64
- 'archived',
65
- 'removed'
66
- ]"
67
- placeholder="Display product"
68
- class="pos-relative w-100 bg-white radius-small pd-medium"
69
- />
70
- <Select
71
- v-model:select="products.state.current.listing"
72
- label="Type"
73
- :options="[
74
- 'sale',
75
- 'rent',
76
- ]"
77
- placeholder="Type of listing"
78
- class="pos-relative w-100 bg-white radius-small pd-medium"
79
- />
80
- </div>
81
-
82
- <Field
83
- v-model:field="products.state.current.name"
84
- placeholder="Enter product name"
85
- class="w-100 mn-b-thin bg-white radius-small pd-medium"
86
- />
87
- <Field
88
- v-model:field="products.state.current.description"
89
- placeholder="Enter product description"
90
- class="w-100 bg-white radius-small pd-medium"
91
- type="textarea"
92
- />
93
- </Block>
94
- <!-- Categories -->
95
- <Block title="Categories">
55
+ <Block title="Categories">
96
56
  <BlockMultiselect
97
57
  v-model="products.state.current.category"
98
58
  placeholder="Search categories..."
99
59
  :multiple="true"
100
- :transform="(item) => ({ _id: item._id, name: item.name })"
60
+ :transform="(item) => ({ _id: item._id, name: item.name })"
101
61
  :store="{
102
62
  read: (options) => categories.actions.read(options),
103
63
  state: categories.state
@@ -108,38 +68,40 @@
108
68
  limit: 50
109
69
  }"
110
70
  :skeleton="{
111
- hide: false,
112
- horizontal: true,
113
- structure: [
114
- { block: 'text', size: 'large' }
115
- ]
116
- }"
71
+ hide: false,
72
+ horizontal: true,
73
+ class: 'radius-small',
74
+ structure: [{
75
+ block: 'text', size: 'large'
76
+ }]
77
+ }"
117
78
  :states="{
118
79
  empty: {
119
80
  title: 'No categories found',
120
- description: 'Try different search terms or create a new category'
81
+ description: 'Try different search terms or create a new category',
82
+ class: 'radius-small'
121
83
  }
122
84
  }"
123
85
  key="_id"
124
86
  :label="item => item.name"
125
87
  classSearch="bg-white radius-small"
126
- classSelected="bg-white pd-small radius-small mn-b-thin"
127
- classDropdown="bg-white pd-small radius-medium bs-light"
128
- classItem="pd-small radius-small hover-bg-light cursor-pointer mn-b-thin"
129
- classFeed="h-max-30r o-scroll"
88
+ classSelected="bg-white pd-small radius-small"
89
+ classDropdown="bg-white pd-small radius-medium bs-small"
90
+ classItem="pd-small radius-small hover-bg-light cursor-pointer"
91
+ classFeed="h-max-30r gap-thin flex-column flex o-scroll"
130
92
  >
131
93
  <!-- Слот для выбранных категорий -->
132
94
  <template #selected="{ item, clear }">
133
- <div class="flex-nowrap flex-v-center flex gap-thin">
134
- <span class="t-medium">{{ item?.name || item }}</span>
135
- <button
136
- @click.stop="clear"
137
- class="i-small pd-micro bg-red radius-extra flex-center flex aspect-1x1 hover-scale-1"
138
- >
139
- <IconCross class="i-micro fill-white" />
140
- </button>
141
- </div>
142
- </template>
95
+ <div class="flex-nowrap flex-v-center flex gap-thin">
96
+ <span class="t-medium">{{ item?.name || item }}</span>
97
+ <button
98
+ @click.stop="clear"
99
+ class="i-small pd-micro bg-red radius-extra flex-center flex aspect-1x1 hover-scale-1"
100
+ >
101
+ <IconCross class="i-micro fill-white" />
102
+ </button>
103
+ </div>
104
+ </template>
143
105
 
144
106
  <!-- Слот для элементов в списке -->
145
107
  <template #item="{ item }">
@@ -158,6 +120,57 @@
158
120
  </BlockMultiselect>
159
121
  </Block>
160
122
 
123
+ <!-- Product Profile -->
124
+ <Block title="Profile">
125
+ <div class="mn-b-thin flex-nowrap flex gap-thin">
126
+ <Select
127
+ v-model:select="products.state.current.status"
128
+ label="Status"
129
+ :options="[
130
+ 'draft',
131
+ 'published',
132
+ 'featured',
133
+ 'archived',
134
+ 'removed'
135
+ ]"
136
+ placeholder="Display product"
137
+ class="pos-relative w-100 bg-white radius-small pd-medium"
138
+ />
139
+ <Select
140
+ v-model:select="products.state.current.listing"
141
+ label="Type"
142
+ :options="[
143
+ 'sale',
144
+ 'rent',
145
+ ]"
146
+ placeholder="Type of listing"
147
+ class="pos-relative w-100 bg-white radius-small pd-medium"
148
+ />
149
+ </div>
150
+
151
+ <Field
152
+ v-model:field="products.state.current.name"
153
+ placeholder="Enter product name"
154
+ class="w-100 mn-b-thin bg-white radius-small pd-medium"
155
+ />
156
+ <Field
157
+ v-model:field="products.state.current.description"
158
+ placeholder="Enter product description"
159
+ class="w-100 bg-white radius-small mn-b-thin pd-medium"
160
+ style="resize: vertical"
161
+ type="textarea"
162
+ />
163
+ <Field
164
+ v-model:field="products.state.current.included"
165
+ placeholder="Enter what's inside"
166
+ class="w-100 bg-white radius-small pd-medium"
167
+ style="resize: vertical"
168
+ type="textarea"
169
+ />
170
+ </Block>
171
+ <!-- Categories -->
172
+
173
+
161
174
 
162
175
  <!-- Attributes -->
163
176
  <EditAttributes
@@ -176,6 +189,11 @@
176
189
  v-if="activeTab === 'discounts'"
177
190
  v-model:discounts="products.state.current.discounts"
178
191
  />
192
+ <EditRecommended
193
+ v-if="activeTab === 'recommended'"
194
+ v-model:recommended="products.state.current.recommended"
195
+ class="cols-1 gap-thin"
196
+ />
179
197
 
180
198
  <!-- Localization Tab -->
181
199
  <Block
@@ -261,7 +279,7 @@ import EditVariants from '@martyrs/src/modules/products/components/sections/Edit
261
279
  import EditAttributes from '@martyrs/src/modules/products/components/sections/EditAttributes.vue';
262
280
  import EditDiscounts from '@martyrs/src/modules/products/components/sections/EditDiscounts.vue';
263
281
  import EditCategories from '@martyrs/src/modules/products/components/sections/EditCategories.vue';
264
-
282
+ import EditRecommended from '@martyrs/src/modules/products/components/sections/EditRecommended.vue';
265
283
 
266
284
  // Accessing router and store
267
285
  import * as globals from '@martyrs/src/modules/globals/views/store/globals.js';
@@ -284,7 +302,7 @@ onMounted(async() => {
284
302
  products.mutations.resetProduct();
285
303
 
286
304
  if (route.params.product) {
287
- await products.actions.read({ _id: route.params.product, lookup: ['variants','categories'] });
305
+ await products.actions.read({ _id: route.params.product, lookup: ['variants','categories','recommended'] });
288
306
  } else {
289
307
  // Создаем дефолтный вариант для нового товара
290
308
  if (!products.state.current.variants || products.state.current.variants.length === 0) {
@@ -306,6 +324,10 @@ onMounted(async() => {
306
324
  // Убедимся, что массивы инициализированы
307
325
  if (!products.state.current.translations) {
308
326
  products.state.current.translations = []
327
+ }
328
+ // Убедимся, что массивы инициализированы
329
+ if (!products.state.current.recommended) {
330
+ products.state.current.recommended = []
309
331
  }
310
332
  if (!products.state.current.discounts) {
311
333
  products.state.current.discounts = []
@@ -329,12 +351,12 @@ onMounted(async() => {
329
351
 
330
352
  async function onSubmit() {
331
353
  try {
332
- // Проверка на наличие хотя бы одного варианта
333
- if (!products.state.current.variants || products.state.current.variants.length === 0) {
334
- setError({ response: { data: { errorCode: "PRODUCT_MUST_HAVE_VARIANT" }} })
335
- return;
336
- }
337
-
354
+ // // Проверка на наличие хотя бы одного варианта
355
+ // if (!products.state.current.variants || products.state.current.variants.length === 0) {
356
+ // setError({ response: { data: { errorCode: "PRODUCT_MUST_HAVE_VARIANT" }} })
357
+ // return;
358
+ // }
359
+ console.log('product is',products.state.current)
338
360
  if (route.params.product) {
339
361
  await products.actions.update(route.params.product, products.state.current)
340
362
  } else {
@@ -348,6 +370,7 @@ async function onSubmit() {
348
370
  type: 'user',
349
371
  hidden: false
350
372
  }
373
+
351
374
  await products.actions.create(products.state.current)
352
375
  }
353
376
 
@@ -0,0 +1,131 @@
1
+ <template>
2
+ <Block
3
+ title="Recommended Products"
4
+ placeholder="No recommended products added yet. Add products that are frequently bought together."
5
+ :actions="[{
6
+ label: '+',
7
+ function: () => openRecommendedPopup()
8
+ }]"
9
+ >
10
+ <div v-if="recommended?.length > 0" class="rows-1 gap-thin">
11
+ <CardPosition
12
+ v-for="(product, index) in recommended"
13
+ :key="product._id"
14
+ :image="product.images?.[0] ? (FILE_SERVER_URL || '') + product.images[0] : ''"
15
+ :name="product.name"
16
+ :title="product.name"
17
+ :subtitle="`${returnCurrency()}${product.price}`"
18
+ :showThumbnail="true"
19
+ :actions="[
20
+ {
21
+ icon: IconDelete,
22
+ class: 'bg-red',
23
+ handler: () => {
24
+ globals.actions.delete(recommended, product, index);
25
+ }
26
+ }
27
+ ]"
28
+ class="bg-white pd-thin radius-medium w-100 mn-b-thin"
29
+ />
30
+ </div>
31
+ </Block>
32
+
33
+ <Popup
34
+ title="Add Recommended Product"
35
+ @close-popup="closeRecommendedPopup"
36
+ :isPopupOpen="isRecommendedPopupOpen"
37
+ class="bg-white w-min-30r w-max-30r radius-medium pd-medium"
38
+ >
39
+ <div class="bg-light mn-b-thin h-min-20r h-max-20r o-scroll pd-medium radius-medium">
40
+ <Feed
41
+ :search="{
42
+ class: 'bg-white mn-b-thin'
43
+ }"
44
+ :states="{
45
+ empty: {
46
+ title: 'No Products Found',
47
+ description: 'Currently, there are no such products available.'
48
+ }
49
+ }"
50
+ :store="{
51
+ read: (options) => products.actions.read(options),
52
+ state: null
53
+ }"
54
+ :options="{
55
+ owner: route.params._id,
56
+ }"
57
+ v-slot="{ items }"
58
+ class=""
59
+ >
60
+ <CardPosition
61
+ v-for="(product, index) in items" :key="product._id"
62
+ :image="product.images?.[0] ? (FILE_SERVER_URL || '') + product.images[0] : ''"
63
+ :name="product.name"
64
+ :title="product.name"
65
+ :subtitle="`${returnCurrency()}${product.price}`"
66
+ :showThumbnail="true"
67
+ :actions="[
68
+ {
69
+ label: 'Add',
70
+ class: 'bg-main t-white',
71
+ handler: () => {
72
+ globals.actions.add(recommended, product);
73
+ closeRecommendedPopup();
74
+ }
75
+ }
76
+ ]"
77
+ class="bg-white pd-thin radius-medium w-100 mn-b-thin cursor-pointer hover-scale-1"
78
+ />
79
+ </Feed>
80
+ </div>
81
+ </Popup>
82
+ </template>
83
+
84
+ <script setup>
85
+ import { ref, computed, onMounted, defineModel } from 'vue';
86
+ import { useRoute, useRouter } from 'vue-router';
87
+ import { useGlobalMixins } from "@martyrs/src/modules/globals/views/mixins/mixins.js"
88
+
89
+ // Импорт компонентов
90
+ import Block from '@martyrs/src/components/Block/Block.vue';
91
+ import Popup from '@martyrs/src/components/Popup/Popup.vue';
92
+ import Feed from '@martyrs/src/components/Feed/Feed.vue';
93
+
94
+ // Импорт модулей и глобальных хранилищ
95
+ import * as globals from '@martyrs/src/modules/globals/views/store/globals.js';
96
+ import * as auth from '@martyrs/src/modules/auth/views/store/auth.js';
97
+ import * as products from '@martyrs/src/modules/products/store/products.js';
98
+
99
+ // Импорт карточек
100
+ import CardPosition from '@martyrs/src/modules/products/components/blocks/CardPosition.vue';
101
+ import IconDelete from '@martyrs/src/modules/icons/navigation/IconDelete.vue';
102
+
103
+ // Получение route и router
104
+ const route = useRoute();
105
+ const router = useRouter();
106
+ const { returnCurrency } = useGlobalMixins();
107
+
108
+ // Используем defineModel для работы с v-model в родительском компоненте
109
+ const recommended = defineModel('recommended');
110
+
111
+ // Локальное состояние
112
+ const isRecommendedPopupOpen = ref(false);
113
+
114
+ // При монтировании компонента инициализируем recommended
115
+ onMounted(async () => {
116
+ // Инициализируем recommended как пустой массив, если не определено или не массив
117
+ if (!recommended.value || !Array.isArray(recommended.value)) {
118
+ recommended.value = [];
119
+ }
120
+ });
121
+
122
+ // Открытие попапа для добавления рекомендованного товара
123
+ function openRecommendedPopup() {
124
+ isRecommendedPopupOpen.value = true;
125
+ }
126
+
127
+ // Закрытие попапа
128
+ function closeRecommendedPopup() {
129
+ isRecommendedPopupOpen.value = false;
130
+ }
131
+ </script>