@ozdao/martyrs 0.2.547 → 0.2.548

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 (833) hide show
  1. package/dist/auth.server.cjs +9 -9
  2. package/dist/auth.server.js +9 -9
  3. package/dist/builder.cjs +12 -751
  4. package/dist/builder.js +21 -721
  5. package/dist/chats.server.cjs +61 -59
  6. package/dist/chats.server.js +61 -59
  7. package/dist/{common.schema-BzFEVNn3.cjs → common.schema-BtXLULba.cjs} +2 -2
  8. package/dist/{common.schema-Bw1O5_2Q.js → common.schema-GFSlNJo7.js} +2 -2
  9. package/dist/community.server.cjs +10 -10
  10. package/dist/community.server.js +10 -10
  11. package/dist/{credentials.schema-C9FB2EyY.js → credentials.schema--2vvcu8c.js} +2 -2
  12. package/dist/{credentials.schema-DwhGdrwC.cjs → credentials.schema-DVXaFnXl.cjs} +2 -2
  13. package/dist/{crud-Ed3dcRsC.js → crud-D_snnl2K.js} +78 -2
  14. package/dist/{crud-DGM6Xa1R.cjs → crud-pedHI2by.cjs} +78 -2
  15. package/dist/{engagement.schema-JADHu8pj.cjs → engagement.schema-DHw4iY_W.cjs} +2 -2
  16. package/dist/{engagement.schema-Dh1adRsn.js → engagement.schema-fh6W1fb_.js} +2 -2
  17. package/dist/events.server.cjs +452 -11
  18. package/dist/events.server.js +433 -9
  19. package/dist/files.server.cjs +2 -2
  20. package/dist/files.server.js +2 -2
  21. package/dist/gallery.server.cjs +5 -5
  22. package/dist/gallery.server.js +5 -5
  23. package/dist/globals.server.cjs +11 -373
  24. package/dist/globals.server.js +11 -356
  25. package/dist/globals.websocket-C2FxNmZ1.js +357 -0
  26. package/dist/globals.websocket-Cm72lPCs.cjs +374 -0
  27. package/dist/inventory.server.cjs +4 -5
  28. package/dist/inventory.server.js +2 -3
  29. package/dist/main-DvjCsGb1.cjs +11 -0
  30. package/dist/{main-d9n_ibdE.js → main-q-y0Lhcy.js} +28 -28
  31. package/dist/martyrs/node_modules/.pnpm/bignumber.js@9.2.1/node_modules/bignumber.js/bignumber.cjs +8 -8
  32. package/dist/martyrs/node_modules/.pnpm/bignumber.js@9.2.1/node_modules/bignumber.js/bignumber.cjs.map +1 -1
  33. package/dist/martyrs/node_modules/.pnpm/bignumber.js@9.2.1/node_modules/bignumber.js/bignumber.js +8 -8
  34. package/dist/martyrs/node_modules/.pnpm/bignumber.js@9.2.1/node_modules/bignumber.js/bignumber.js.map +1 -1
  35. package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/ParseError.cjs +2 -2
  36. package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/ParseError.cjs.map +1 -1
  37. package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/ParseError.js +2 -2
  38. package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/ParseError.js.map +1 -1
  39. package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/PhoneNumber.cjs +2 -2
  40. package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/PhoneNumber.cjs.map +1 -1
  41. package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/PhoneNumber.js +2 -2
  42. package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/PhoneNumber.js.map +1 -1
  43. package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/metadata.cjs +8 -8
  44. package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/metadata.cjs.map +1 -1
  45. package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/metadata.js +8 -8
  46. package/dist/martyrs/node_modules/.pnpm/libphonenumber-js@1.12.6/node_modules/libphonenumber-js/es6/metadata.js.map +1 -1
  47. package/dist/martyrs/src/components/Button/Button.vue.cjs.map +1 -1
  48. package/dist/martyrs/src/components/Button/Button.vue.js.map +1 -1
  49. package/dist/martyrs/src/components/Calendar/Calendar.vue2.cjs +3 -3
  50. package/dist/martyrs/src/components/Calendar/Calendar.vue2.cjs.map +1 -1
  51. package/dist/martyrs/src/components/Calendar/Calendar.vue2.js +3 -3
  52. package/dist/martyrs/src/components/Calendar/Calendar.vue2.js.map +1 -1
  53. package/dist/martyrs/src/components/Chips/Chips.vue2.cjs +1 -1
  54. package/dist/martyrs/src/components/Chips/Chips.vue2.js +1 -1
  55. package/dist/martyrs/src/components/Countdown/Countdown.vue.cjs +4 -4
  56. package/dist/martyrs/src/components/Countdown/Countdown.vue.cjs.map +1 -1
  57. package/dist/martyrs/src/components/Countdown/Countdown.vue.js +4 -4
  58. package/dist/martyrs/src/components/Countdown/Countdown.vue.js.map +1 -1
  59. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.cjs → Dropdown.vue.cjs} +2 -2
  60. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.js.map → Dropdown.vue.cjs.map} +1 -1
  61. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.js → Dropdown.vue.js} +2 -2
  62. package/dist/martyrs/src/components/Dropdown/Dropdown.vue.js.map +1 -0
  63. package/dist/martyrs/src/components/EditImages/EditImages.vue2.cjs +1 -1
  64. package/dist/martyrs/src/components/EditImages/EditImages.vue2.js +1 -1
  65. package/dist/martyrs/src/components/EmptyState/EmptyState.vue.cjs +1 -1
  66. package/dist/martyrs/src/components/EmptyState/EmptyState.vue.js +1 -1
  67. package/dist/martyrs/src/components/Feed/Feed.vue.cjs +1 -1
  68. package/dist/martyrs/src/components/Feed/Feed.vue.js +1 -1
  69. package/dist/martyrs/src/components/Field/{Field.vue.cjs → Field.vue2.cjs} +2 -2
  70. package/dist/martyrs/src/components/Field/Field.vue2.cjs.map +1 -0
  71. package/dist/martyrs/src/components/Field/{Field.vue.js → Field.vue2.js} +2 -2
  72. package/dist/martyrs/src/components/Field/{Field.vue.cjs.map → Field.vue2.js.map} +1 -1
  73. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.cjs +2 -2
  74. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.cjs.map +1 -1
  75. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +2 -2
  76. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js.map +1 -1
  77. package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.cjs +1 -1
  78. package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.cjs.map +1 -1
  79. package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.js +1 -1
  80. package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.js.map +1 -1
  81. package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue.cjs +2 -2
  82. package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue.cjs.map +1 -1
  83. package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue.js +2 -2
  84. package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue.js.map +1 -1
  85. package/dist/martyrs/src/components/Menu/{Menu.vue2.cjs → Menu.vue.cjs} +2 -2
  86. package/dist/martyrs/src/components/Menu/Menu.vue.cjs.map +1 -0
  87. package/dist/martyrs/src/components/Menu/{Menu.vue2.js → Menu.vue.js} +2 -2
  88. package/dist/martyrs/src/components/Menu/Menu.vue.js.map +1 -0
  89. package/dist/martyrs/src/components/Menu/MenuItem.vue.cjs +1 -1
  90. package/dist/martyrs/src/components/Menu/MenuItem.vue.cjs.map +1 -1
  91. package/dist/martyrs/src/components/Menu/MenuItem.vue.js +1 -1
  92. package/dist/martyrs/src/components/Menu/MenuItem.vue.js.map +1 -1
  93. package/dist/martyrs/src/components/Select/{Select.vue2.cjs → Select.vue.cjs} +2 -2
  94. package/dist/martyrs/src/components/Select/{Select.vue2.js.map → Select.vue.cjs.map} +1 -1
  95. package/dist/martyrs/src/components/Select/{Select.vue2.js → Select.vue.js} +2 -2
  96. package/dist/martyrs/src/components/Select/Select.vue.js.map +1 -0
  97. package/dist/martyrs/src/components/Status/Snack.vue.cjs +1 -1
  98. package/dist/martyrs/src/components/Status/Snack.vue.cjs.map +1 -1
  99. package/dist/martyrs/src/components/Status/Snack.vue.js +1 -1
  100. package/dist/martyrs/src/components/Status/Snack.vue.js.map +1 -1
  101. package/dist/martyrs/src/components/Status/Status.vue.cjs +1 -1
  102. package/dist/martyrs/src/components/Status/Status.vue.cjs.map +1 -1
  103. package/dist/martyrs/src/components/Status/Status.vue.js +1 -1
  104. package/dist/martyrs/src/components/Status/Status.vue.js.map +1 -1
  105. package/dist/martyrs/src/components/UploadImage/{UploadImage.vue.cjs → UploadImage.vue2.cjs} +5 -5
  106. package/dist/martyrs/src/components/UploadImage/UploadImage.vue2.cjs.map +1 -0
  107. package/dist/martyrs/src/components/UploadImage/{UploadImage.vue.js → UploadImage.vue2.js} +5 -5
  108. package/dist/martyrs/src/components/UploadImage/UploadImage.vue2.js.map +1 -0
  109. package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.cjs +1 -1
  110. package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.js +1 -1
  111. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs +2 -2
  112. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs.map +1 -1
  113. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +2 -2
  114. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js.map +1 -1
  115. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +1 -1
  116. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +1 -1
  117. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +7 -7
  118. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs.map +1 -1
  119. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +7 -7
  120. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js.map +1 -1
  121. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.cjs +1 -1
  122. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.cjs.map +1 -1
  123. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +1 -1
  124. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js.map +1 -1
  125. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.cjs +2 -2
  126. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +2 -2
  127. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.cjs +1 -1
  128. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +1 -1
  129. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs +1 -1
  130. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +1 -1
  131. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs +1 -1
  132. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +1 -1
  133. package/dist/martyrs/src/modules/auth/views/components/sections/FeaturedUsers.vue.cjs +1 -1
  134. package/dist/martyrs/src/modules/auth/views/components/sections/FeaturedUsers.vue.cjs.map +1 -1
  135. package/dist/martyrs/src/modules/auth/views/components/sections/FeaturedUsers.vue.js +1 -1
  136. package/dist/martyrs/src/modules/auth/views/components/sections/FeaturedUsers.vue.js.map +1 -1
  137. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.cjs +1 -1
  138. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +1 -1
  139. package/dist/martyrs/src/modules/backoffice/components/pages/Dashboard.vue.cjs +3 -3
  140. package/dist/martyrs/src/modules/backoffice/components/pages/Dashboard.vue.cjs.map +1 -1
  141. package/dist/martyrs/src/modules/backoffice/components/pages/Dashboard.vue.js +3 -3
  142. package/dist/martyrs/src/modules/backoffice/components/pages/Dashboard.vue.js.map +1 -1
  143. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.cjs +2 -2
  144. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.cjs.map +1 -1
  145. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js +2 -2
  146. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js.map +1 -1
  147. package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.cjs.map +1 -1
  148. package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.js.map +1 -1
  149. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.cjs +1 -1
  150. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.cjs.map +1 -1
  151. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js +1 -1
  152. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js.map +1 -1
  153. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.cjs +3 -3
  154. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.cjs.map +1 -1
  155. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +3 -3
  156. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js.map +1 -1
  157. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +1 -1
  158. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
  159. package/dist/martyrs/src/modules/community/components/sections/Comment.vue.cjs +2 -2
  160. package/dist/martyrs/src/modules/community/components/sections/Comment.vue.cjs.map +1 -1
  161. package/dist/martyrs/src/modules/community/components/sections/Comment.vue.js +2 -2
  162. package/dist/martyrs/src/modules/community/components/sections/Comment.vue.js.map +1 -1
  163. package/dist/martyrs/src/modules/community/components/sections/Comments.vue.cjs +1 -1
  164. package/dist/martyrs/src/modules/community/components/sections/Comments.vue.cjs.map +1 -1
  165. package/dist/martyrs/src/modules/community/components/sections/Comments.vue.js +1 -1
  166. package/dist/martyrs/src/modules/community/components/sections/Comments.vue.js.map +1 -1
  167. package/dist/martyrs/src/modules/constructor/components/elements/Card.vue.cjs +3 -3
  168. package/dist/martyrs/src/modules/constructor/components/elements/Card.vue.cjs.map +1 -1
  169. package/dist/martyrs/src/modules/constructor/components/elements/Card.vue.js +3 -3
  170. package/dist/martyrs/src/modules/constructor/components/elements/Card.vue.js.map +1 -1
  171. package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.cjs +1 -1
  172. package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.js +1 -1
  173. package/dist/martyrs/src/modules/constructor/components/sections/Constructor.vue.cjs +2 -2
  174. package/dist/martyrs/src/modules/constructor/components/sections/Constructor.vue.cjs.map +1 -1
  175. package/dist/martyrs/src/modules/constructor/components/sections/Constructor.vue.js +2 -2
  176. package/dist/martyrs/src/modules/constructor/components/sections/Constructor.vue.js.map +1 -1
  177. package/dist/martyrs/src/modules/constructor/components/sections/Viewer.vue.cjs +1 -1
  178. package/dist/martyrs/src/modules/constructor/components/sections/Viewer.vue.cjs.map +1 -1
  179. package/dist/martyrs/src/modules/constructor/components/sections/Viewer.vue.js +1 -1
  180. package/dist/martyrs/src/modules/constructor/components/sections/Viewer.vue.js.map +1 -1
  181. package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.cjs +4 -4
  182. package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.cjs.map +1 -1
  183. package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js +4 -4
  184. package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js.map +1 -1
  185. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +3 -3
  186. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +3 -3
  187. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs +1 -1
  188. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
  189. package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +5 -5
  190. package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs.map +1 -1
  191. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +5 -5
  192. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js.map +1 -1
  193. package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs +4 -4
  194. package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs.map +1 -1
  195. package/dist/martyrs/src/modules/events/components/pages/Events.vue.js +4 -4
  196. package/dist/martyrs/src/modules/events/components/pages/Events.vue.js.map +1 -1
  197. package/dist/martyrs/src/modules/events/components/sections/SelectDate.vue.cjs +2 -2
  198. package/dist/martyrs/src/modules/events/components/sections/SelectDate.vue.cjs.map +1 -1
  199. package/dist/martyrs/src/modules/events/components/sections/SelectDate.vue.js +2 -2
  200. package/dist/martyrs/src/modules/events/components/sections/SelectDate.vue.js.map +1 -1
  201. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +2 -2
  202. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +2 -2
  203. package/dist/martyrs/src/modules/globals/views/classes/globals.app.cjs +4 -1
  204. package/dist/martyrs/src/modules/globals/views/classes/globals.app.cjs.map +1 -1
  205. package/dist/martyrs/src/modules/globals/views/classes/globals.app.js +4 -1
  206. package/dist/martyrs/src/modules/globals/views/classes/globals.app.js.map +1 -1
  207. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue.cjs +1 -1
  208. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue.js +1 -1
  209. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +5 -5
  210. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs.map +1 -1
  211. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +5 -5
  212. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js.map +1 -1
  213. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs +1 -1
  214. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs.map +1 -1
  215. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js +1 -1
  216. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js.map +1 -1
  217. package/dist/martyrs/src/modules/globals/views/components/elements/PhotoStack.vue.cjs +4 -4
  218. package/dist/martyrs/src/modules/globals/views/components/elements/PhotoStack.vue.js +4 -4
  219. package/dist/martyrs/src/modules/globals/views/components/partials/CitySelection.vue.cjs +2 -2
  220. package/dist/martyrs/src/modules/globals/views/components/partials/CitySelection.vue.cjs.map +1 -1
  221. package/dist/martyrs/src/modules/globals/views/components/partials/CitySelection.vue.js +2 -2
  222. package/dist/martyrs/src/modules/globals/views/components/partials/CitySelection.vue.js.map +1 -1
  223. package/dist/martyrs/src/modules/globals/views/components/partials/Footer.vue.cjs +6 -6
  224. package/dist/martyrs/src/modules/globals/views/components/partials/Footer.vue.cjs.map +1 -1
  225. package/dist/martyrs/src/modules/globals/views/components/partials/Footer.vue.js +6 -6
  226. package/dist/martyrs/src/modules/globals/views/components/partials/Footer.vue.js.map +1 -1
  227. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs +4 -4
  228. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs.map +1 -1
  229. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js +4 -4
  230. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js.map +1 -1
  231. package/dist/martyrs/src/modules/globals/views/components/partials/LocationSelection.vue.cjs +1 -1
  232. package/dist/martyrs/src/modules/globals/views/components/partials/LocationSelection.vue.cjs.map +1 -1
  233. package/dist/martyrs/src/modules/globals/views/components/partials/LocationSelection.vue.js +1 -1
  234. package/dist/martyrs/src/modules/globals/views/components/partials/LocationSelection.vue.js.map +1 -1
  235. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs +3 -3
  236. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs.map +1 -1
  237. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js +3 -3
  238. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js.map +1 -1
  239. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.cjs +1 -1
  240. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.js +1 -1
  241. package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.cjs +2 -2
  242. package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.cjs.map +1 -1
  243. package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.js +2 -2
  244. package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.js.map +1 -1
  245. package/dist/martyrs/src/modules/globals/views/components/sections/Walkthrough.vue.cjs +10 -10
  246. package/dist/martyrs/src/modules/globals/views/components/sections/Walkthrough.vue.cjs.map +1 -1
  247. package/dist/martyrs/src/modules/globals/views/components/sections/Walkthrough.vue.js +10 -10
  248. package/dist/martyrs/src/modules/globals/views/components/sections/Walkthrough.vue.js.map +1 -1
  249. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.cjs +3 -3
  250. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.cjs.map +1 -1
  251. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +3 -3
  252. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js.map +1 -1
  253. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.cjs +2 -2
  254. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +2 -2
  255. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.cjs +2 -2
  256. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js +1 -1
  257. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.cjs +3 -3
  258. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +3 -3
  259. package/dist/martyrs/src/modules/landing/components/sections/SectionEarn.vue.cjs +3 -3
  260. package/dist/martyrs/src/modules/landing/components/sections/SectionEarn.vue.cjs.map +1 -1
  261. package/dist/martyrs/src/modules/landing/components/sections/SectionEarn.vue.js +3 -3
  262. package/dist/martyrs/src/modules/landing/components/sections/SectionEarn.vue.js.map +1 -1
  263. package/dist/martyrs/src/modules/landing/components/sections/SectionFeaturesImages.vue.cjs +2 -2
  264. package/dist/martyrs/src/modules/landing/components/sections/SectionFeaturesImages.vue.cjs.map +1 -1
  265. package/dist/martyrs/src/modules/landing/components/sections/SectionFeaturesImages.vue.js +2 -2
  266. package/dist/martyrs/src/modules/landing/components/sections/SectionFeaturesImages.vue.js.map +1 -1
  267. package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.cjs +2 -2
  268. package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.cjs.map +1 -1
  269. package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.js +2 -2
  270. package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.js.map +1 -1
  271. package/dist/martyrs/src/modules/landing/components/sections/SectionHeroToken.vue.cjs +1 -1
  272. package/dist/martyrs/src/modules/landing/components/sections/SectionHeroToken.vue.cjs.map +1 -1
  273. package/dist/martyrs/src/modules/landing/components/sections/SectionHeroToken.vue.js +1 -1
  274. package/dist/martyrs/src/modules/landing/components/sections/SectionHeroToken.vue.js.map +1 -1
  275. package/dist/martyrs/src/modules/landing/components/sections/SectionJoinUs.vue.cjs +1 -1
  276. package/dist/martyrs/src/modules/landing/components/sections/SectionJoinUs.vue.cjs.map +1 -1
  277. package/dist/martyrs/src/modules/landing/components/sections/SectionJoinUs.vue.js +1 -1
  278. package/dist/martyrs/src/modules/landing/components/sections/SectionJoinUs.vue.js.map +1 -1
  279. package/dist/martyrs/src/modules/landing/components/sections/SectionMobileApp.vue.cjs +3 -3
  280. package/dist/martyrs/src/modules/landing/components/sections/SectionMobileApp.vue.cjs.map +1 -1
  281. package/dist/martyrs/src/modules/landing/components/sections/SectionMobileApp.vue.js +3 -3
  282. package/dist/martyrs/src/modules/landing/components/sections/SectionMobileApp.vue.js.map +1 -1
  283. package/dist/martyrs/src/modules/landing/components/sections/SubscribeNewsletter.vue.cjs +1 -1
  284. package/dist/martyrs/src/modules/landing/components/sections/SubscribeNewsletter.vue.cjs.map +1 -1
  285. package/dist/martyrs/src/modules/landing/components/sections/SubscribeNewsletter.vue.js +1 -1
  286. package/dist/martyrs/src/modules/landing/components/sections/SubscribeNewsletter.vue.js.map +1 -1
  287. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.cjs +4 -4
  288. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.cjs.map +1 -1
  289. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.js +4 -4
  290. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.js.map +1 -1
  291. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.cjs +1 -1
  292. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.cjs.map +1 -1
  293. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js +1 -1
  294. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js.map +1 -1
  295. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.cjs +5 -5
  296. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.cjs.map +1 -1
  297. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +5 -5
  298. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js.map +1 -1
  299. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.cjs +7 -7
  300. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.cjs.map +1 -1
  301. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +7 -7
  302. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js.map +1 -1
  303. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.cjs +8 -8
  304. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.cjs.map +1 -1
  305. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +8 -8
  306. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js.map +1 -1
  307. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs +7 -7
  308. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs.map +1 -1
  309. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +7 -7
  310. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js.map +1 -1
  311. package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs +9 -9
  312. package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs.map +1 -1
  313. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +9 -9
  314. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js.map +1 -1
  315. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.cjs +10 -10
  316. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.cjs.map +1 -1
  317. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +10 -10
  318. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js.map +1 -1
  319. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.cjs +4 -4
  320. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.cjs.map +1 -1
  321. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +4 -4
  322. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js.map +1 -1
  323. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs +6 -6
  324. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs.map +1 -1
  325. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +6 -6
  326. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js.map +1 -1
  327. package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs +10 -10
  328. package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs.map +1 -1
  329. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +10 -10
  330. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js.map +1 -1
  331. package/dist/martyrs/src/modules/notifications/components/blocks/NotificationItem.vue.cjs +2 -2
  332. package/dist/martyrs/src/modules/notifications/components/blocks/NotificationItem.vue.cjs.map +1 -1
  333. package/dist/martyrs/src/modules/notifications/components/blocks/NotificationItem.vue.js +2 -2
  334. package/dist/martyrs/src/modules/notifications/components/blocks/NotificationItem.vue.js.map +1 -1
  335. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.cjs +2 -2
  336. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.cjs.map +1 -1
  337. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js +2 -2
  338. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js.map +1 -1
  339. package/dist/martyrs/src/modules/orders/components/blocks/CardOrder.vue.cjs +8 -8
  340. package/dist/martyrs/src/modules/orders/components/blocks/CardOrder.vue.cjs.map +1 -1
  341. package/dist/martyrs/src/modules/orders/components/blocks/CardOrder.vue.js +8 -8
  342. package/dist/martyrs/src/modules/orders/components/blocks/CardOrder.vue.js.map +1 -1
  343. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.cjs +1 -1
  344. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.cjs.map +1 -1
  345. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.js +1 -1
  346. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.js.map +1 -1
  347. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.cjs +4 -4
  348. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.cjs.map +1 -1
  349. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.js +4 -4
  350. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.js.map +1 -1
  351. package/dist/martyrs/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue.cjs +2 -2
  352. package/dist/martyrs/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue.cjs.map +1 -1
  353. package/dist/martyrs/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue.js +2 -2
  354. package/dist/martyrs/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue.js.map +1 -1
  355. package/dist/martyrs/src/modules/orders/components/elements/PriceTotal.vue.cjs +1 -1
  356. package/dist/martyrs/src/modules/orders/components/elements/PriceTotal.vue.cjs.map +1 -1
  357. package/dist/martyrs/src/modules/orders/components/elements/PriceTotal.vue.js +1 -1
  358. package/dist/martyrs/src/modules/orders/components/elements/PriceTotal.vue.js.map +1 -1
  359. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.cjs +2 -2
  360. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +2 -2
  361. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.cjs +2 -2
  362. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +2 -2
  363. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +9 -9
  364. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs.map +1 -1
  365. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +9 -9
  366. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js.map +1 -1
  367. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +1 -1
  368. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +1 -1
  369. package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.cjs +1 -1
  370. package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.cjs.map +1 -1
  371. package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.js +1 -1
  372. package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.js.map +1 -1
  373. package/dist/martyrs/src/modules/orders/components/sections/AskToLogin.vue.cjs +1 -1
  374. package/dist/martyrs/src/modules/orders/components/sections/AskToLogin.vue.cjs.map +1 -1
  375. package/dist/martyrs/src/modules/orders/components/sections/AskToLogin.vue.js +1 -1
  376. package/dist/martyrs/src/modules/orders/components/sections/AskToLogin.vue.js.map +1 -1
  377. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +2 -2
  378. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +2 -2
  379. package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.cjs +1 -1
  380. package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.js +1 -1
  381. package/dist/martyrs/src/modules/orders/components/sections/Succes.vue.cjs +1 -1
  382. package/dist/martyrs/src/modules/orders/components/sections/Succes.vue.js +1 -1
  383. package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.cjs +5 -5
  384. package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.js +5 -5
  385. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.cjs +3 -3
  386. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.cjs.map +1 -1
  387. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +3 -3
  388. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js.map +1 -1
  389. package/dist/martyrs/src/modules/organizations/components/blocks/EmptyState.vue.cjs +1 -1
  390. package/dist/martyrs/src/modules/organizations/components/blocks/EmptyState.vue.js +1 -1
  391. package/dist/martyrs/src/modules/organizations/components/blocks/Rating.vue.cjs +2 -2
  392. package/dist/martyrs/src/modules/organizations/components/blocks/Rating.vue.js +2 -2
  393. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.cjs +1 -1
  394. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.cjs.map +1 -1
  395. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js +1 -1
  396. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js.map +1 -1
  397. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.cjs +4 -4
  398. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.cjs.map +1 -1
  399. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js +4 -4
  400. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js.map +1 -1
  401. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.cjs +2 -2
  402. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.cjs.map +1 -1
  403. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js +2 -2
  404. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js.map +1 -1
  405. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.cjs +7 -7
  406. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.cjs.map +1 -1
  407. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js +7 -7
  408. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js.map +1 -1
  409. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +5 -5
  410. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +5 -5
  411. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +10 -10
  412. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs.map +1 -1
  413. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +10 -10
  414. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js.map +1 -1
  415. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +9 -9
  416. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs.map +1 -1
  417. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +9 -9
  418. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js.map +1 -1
  419. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +3 -3
  420. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +3 -3
  421. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs +1 -1
  422. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +1 -1
  423. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.cjs +3 -3
  424. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.cjs.map +1 -1
  425. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +3 -3
  426. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js.map +1 -1
  427. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +2 -2
  428. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +2 -2
  429. package/dist/martyrs/src/modules/organizations/router/organizations.cjs +1 -1
  430. package/dist/martyrs/src/modules/organizations/router/organizations.js +1 -1
  431. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.cjs +1 -1
  432. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -1
  433. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.cjs +1 -1
  434. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -1
  435. package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.cjs +2 -2
  436. package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.cjs.map +1 -1
  437. package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.js +2 -2
  438. package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.js.map +1 -1
  439. package/dist/martyrs/src/modules/products/components/blocks/CardPosition.vue.cjs +1 -1
  440. package/dist/martyrs/src/modules/products/components/blocks/CardPosition.vue.cjs.map +1 -1
  441. package/dist/martyrs/src/modules/products/components/blocks/CardPosition.vue.js +1 -1
  442. package/dist/martyrs/src/modules/products/components/blocks/CardPosition.vue.js.map +1 -1
  443. package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.cjs +3 -3
  444. package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.cjs.map +1 -1
  445. package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.js +3 -3
  446. package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.js.map +1 -1
  447. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.cjs +3 -3
  448. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.cjs.map +1 -1
  449. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.js +3 -3
  450. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.js.map +1 -1
  451. package/dist/martyrs/src/modules/products/components/elements/Price.vue.cjs +4 -4
  452. package/dist/martyrs/src/modules/products/components/elements/Price.vue.cjs.map +1 -1
  453. package/dist/martyrs/src/modules/products/components/elements/Price.vue.js +4 -4
  454. package/dist/martyrs/src/modules/products/components/elements/Price.vue.js.map +1 -1
  455. package/dist/martyrs/src/modules/products/components/elements/QuantitySelector.vue.cjs +2 -2
  456. package/dist/martyrs/src/modules/products/components/elements/QuantitySelector.vue.cjs.map +1 -1
  457. package/dist/martyrs/src/modules/products/components/elements/QuantitySelector.vue.js +2 -2
  458. package/dist/martyrs/src/modules/products/components/elements/QuantitySelector.vue.js.map +1 -1
  459. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +4 -4
  460. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +4 -4
  461. package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +2 -2
  462. package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs.map +1 -1
  463. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +2 -2
  464. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js.map +1 -1
  465. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +2 -2
  466. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +2 -2
  467. package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs +5 -5
  468. package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs.map +1 -1
  469. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +5 -5
  470. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js.map +1 -1
  471. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.cjs +4 -4
  472. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.cjs.map +1 -1
  473. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +4 -4
  474. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js.map +1 -1
  475. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs +5 -5
  476. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs.map +1 -1
  477. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +5 -5
  478. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js.map +1 -1
  479. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs +7 -7
  480. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs.map +1 -1
  481. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +7 -7
  482. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js.map +1 -1
  483. package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.cjs +3 -3
  484. package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.cjs.map +1 -1
  485. package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.js +3 -3
  486. package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.js.map +1 -1
  487. package/dist/martyrs/src/modules/products/components/sections/HeroRecommendation.vue.cjs +2 -2
  488. package/dist/martyrs/src/modules/products/components/sections/HeroRecommendation.vue.cjs.map +1 -1
  489. package/dist/martyrs/src/modules/products/components/sections/HeroRecommendation.vue.js +2 -2
  490. package/dist/martyrs/src/modules/products/components/sections/HeroRecommendation.vue.js.map +1 -1
  491. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.cjs +1 -1
  492. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.cjs.map +1 -1
  493. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js +1 -1
  494. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js.map +1 -1
  495. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.cjs +1 -1
  496. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.cjs.map +1 -1
  497. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +1 -1
  498. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js.map +1 -1
  499. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.cjs +2 -2
  500. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.cjs.map +1 -1
  501. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +2 -2
  502. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js.map +1 -1
  503. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.cjs +1 -1
  504. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +1 -1
  505. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.cjs +1 -1
  506. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +1 -1
  507. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs +3 -3
  508. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs.map +1 -1
  509. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +3 -3
  510. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js.map +1 -1
  511. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs +6 -6
  512. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs.map +1 -1
  513. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js +6 -6
  514. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js.map +1 -1
  515. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.cjs +2 -2
  516. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js +2 -2
  517. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs +2 -2
  518. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +2 -2
  519. package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.cjs +3 -3
  520. package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.cjs.map +1 -1
  521. package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.js +3 -3
  522. package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.js.map +1 -1
  523. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +6 -6
  524. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs.map +1 -1
  525. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +6 -6
  526. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js.map +1 -1
  527. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.cjs +2 -2
  528. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +2 -2
  529. package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.cjs +1 -1
  530. package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.js +1 -1
  531. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.cjs +2 -2
  532. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +2 -2
  533. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.cjs +4 -4
  534. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.cjs.map +1 -1
  535. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +4 -4
  536. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js.map +1 -1
  537. package/dist/martyrs.cjs.js +1 -1
  538. package/dist/martyrs.css +1 -1
  539. package/dist/martyrs.es.js +1 -1
  540. package/dist/{metadata.schema-RlxNv46L.cjs → metadata.schema-BGykn-_r.cjs} +2 -2
  541. package/dist/{metadata.schema-CWmcDJN7.js → metadata.schema-CIRR_WQ-.js} +2 -2
  542. package/dist/music.server.cjs +30 -33
  543. package/dist/music.server.js +30 -33
  544. package/dist/node_modules/.pnpm/@vue_shared@3.5.21/node_modules/@vue/shared/dist/shared.esm-bundler.cjs +2 -2
  545. package/dist/node_modules/.pnpm/@vue_shared@3.5.21/node_modules/@vue/shared/dist/shared.esm-bundler.cjs.map +1 -1
  546. package/dist/node_modules/.pnpm/@vue_shared@3.5.21/node_modules/@vue/shared/dist/shared.esm-bundler.js +2 -2
  547. package/dist/node_modules/.pnpm/@vue_shared@3.5.21/node_modules/@vue/shared/dist/shared.esm-bundler.js.map +1 -1
  548. package/dist/node_modules/.pnpm/dayjs@1.11.18/node_modules/dayjs/dayjs.min.cjs +13 -13
  549. package/dist/node_modules/.pnpm/dayjs@1.11.18/node_modules/dayjs/dayjs.min.cjs.map +1 -1
  550. package/dist/node_modules/.pnpm/dayjs@1.11.18/node_modules/dayjs/dayjs.min.js +13 -13
  551. package/dist/node_modules/.pnpm/dayjs@1.11.18/node_modules/dayjs/dayjs.min.js.map +1 -1
  552. package/dist/node_modules/.pnpm/dayjs@1.11.18/node_modules/dayjs/plugin/weekOfYear.cjs +3 -3
  553. package/dist/node_modules/.pnpm/dayjs@1.11.18/node_modules/dayjs/plugin/weekOfYear.cjs.map +1 -1
  554. package/dist/node_modules/.pnpm/dayjs@1.11.18/node_modules/dayjs/plugin/weekOfYear.js +3 -3
  555. package/dist/node_modules/.pnpm/dayjs@1.11.18/node_modules/dayjs/plugin/weekOfYear.js.map +1 -1
  556. package/dist/node_modules/.pnpm/lodash.merge@4.6.2/node_modules/lodash.merge/index.cjs +10 -10
  557. package/dist/node_modules/.pnpm/lodash.merge@4.6.2/node_modules/lodash.merge/index.cjs.map +1 -1
  558. package/dist/node_modules/.pnpm/lodash.merge@4.6.2/node_modules/lodash.merge/index.js +10 -10
  559. package/dist/node_modules/.pnpm/lodash.merge@4.6.2/node_modules/lodash.merge/index.js.map +1 -1
  560. package/dist/node_modules/.pnpm/vue-draggable-next@2.3.0_sortablejs@1.15.6_vue@3.5.21_typescript@5.9.2_/node_modules/vue-draggable-next/dist/vue-draggable-next.esm-bundler.cjs +2 -2
  561. package/dist/node_modules/.pnpm/vue-draggable-next@2.3.0_sortablejs@1.15.6_vue@3.5.21_typescript@5.9.2_/node_modules/vue-draggable-next/dist/vue-draggable-next.esm-bundler.cjs.map +1 -1
  562. package/dist/node_modules/.pnpm/vue-draggable-next@2.3.0_sortablejs@1.15.6_vue@3.5.21_typescript@5.9.2_/node_modules/vue-draggable-next/dist/vue-draggable-next.esm-bundler.js +2 -2
  563. package/dist/node_modules/.pnpm/vue-draggable-next@2.3.0_sortablejs@1.15.6_vue@3.5.21_typescript@5.9.2_/node_modules/vue-draggable-next/dist/vue-draggable-next.esm-bundler.js.map +1 -1
  564. package/dist/notifications.server.cjs +22 -18
  565. package/dist/notifications.server.js +22 -18
  566. package/dist/orders.server.cjs +10 -10
  567. package/dist/orders.server.js +10 -10
  568. package/dist/organizations.server.cjs +13 -13
  569. package/dist/organizations.server.js +13 -13
  570. package/dist/{ownership.schema-D1p5XSpt.cjs → ownership.schema-CRYdbemm.cjs} +2 -2
  571. package/dist/{ownership.schema-BqH4v5vH.js → ownership.schema-fwwDf_e5.js} +2 -2
  572. package/dist/pages.server.cjs +2 -2
  573. package/dist/pages.server.js +2 -2
  574. package/dist/products.server.cjs +13 -13
  575. package/dist/products.server.js +13 -13
  576. package/dist/{profile.schema-BGAe5VN5.js → profile.schema-CjLOfG7b.js} +2 -2
  577. package/dist/{profile.schema-pidHrksV.cjs → profile.schema-l0Dk4Ptu.cjs} +2 -2
  578. package/dist/rents.server.cjs +2 -2
  579. package/dist/rents.server.js +2 -2
  580. package/dist/reports.server.cjs +2 -2
  581. package/dist/reports.server.js +2 -2
  582. package/dist/{socials.schema-CtpSF9dE.cjs → socials.schema-CqEHax2w.cjs} +2 -2
  583. package/dist/{socials.schema-BOZV82Mp.js → socials.schema-DxnnaBgO.js} +2 -2
  584. package/dist/spots.server.cjs +4 -4
  585. package/dist/spots.server.js +4 -4
  586. package/dist/style.css +75 -76
  587. package/dist/{web-BkaOiiSn.js → web-8cpb2Zat.js} +1 -1
  588. package/dist/{web-CROHFHoW.cjs → web-B0k809Uc.cjs} +1 -1
  589. package/package.json +8 -12
  590. package/src/builder/builder.js +0 -6
  591. package/src/components/Button/Button.vue +0 -1
  592. package/src/components/Calendar/Calendar.vue +2 -2
  593. package/src/components/Chips/Chips.vue +1 -1
  594. package/src/components/Countdown/Countdown.vue +4 -4
  595. package/src/components/EmptyState/EmptyState.vue +1 -1
  596. package/src/components/FieldBig/FieldBig.vue +1 -1
  597. package/src/components/FieldPhone/FieldPhone.vue +1 -1
  598. package/src/components/LocationMarker/LocationMarker.vue +2 -2
  599. package/src/components/Menu/MenuItem.vue +1 -1
  600. package/src/components/Status/Snack.vue +1 -1
  601. package/src/components/Status/Status.vue +1 -1
  602. package/src/components/UploadImage/UploadImage.vue +2 -2
  603. package/src/configurator/components/layouts/layoutConfigurator.vue +1 -1
  604. package/src/modules/STYLES.MD +59 -77
  605. package/src/modules/TASK-CORE-TRANSFER.MD +62 -0
  606. package/src/modules/auth/views/components/pages/EnterPassword.vue +1 -1
  607. package/src/modules/auth/views/components/pages/Profile.vue +3 -3
  608. package/src/modules/auth/views/components/pages/ProfileEdit.vue +1 -1
  609. package/src/modules/auth/views/components/sections/FeaturedUsers.vue +1 -1
  610. package/src/modules/backoffice/components/admin/Users.vue +1 -1
  611. package/src/modules/backoffice/components/pages/Dashboard.vue +3 -3
  612. package/src/modules/backoffice/components/partials/Sidebar.vue +2 -2
  613. package/src/modules/chats/components/sections/ChatWindow.vue +1 -1
  614. package/src/modules/chats/routes/chats.routes.js +6 -4
  615. package/src/modules/community/components/blocks/CardBlogpost.vue +1 -1
  616. package/src/modules/community/components/layouts/Community.vue +2 -2
  617. package/src/modules/community/components/sections/Comment.vue +1 -1
  618. package/src/modules/community/components/sections/Comments.vue +1 -1
  619. package/src/modules/constructor/components/elements/Card.vue +1 -1
  620. package/src/modules/constructor/components/sections/Constructor.vue +2 -2
  621. package/src/modules/constructor/components/sections/Viewer.vue +1 -1
  622. package/src/modules/events/TASKS.MD +0 -0
  623. package/src/modules/events/components/blocks/CardEvent.vue +4 -4
  624. package/src/modules/events/components/pages/Event.vue +3 -3
  625. package/src/modules/events/components/pages/Events.vue +4 -4
  626. package/src/modules/events/components/sections/SelectDate.vue +2 -2
  627. package/src/modules/globals/globals.server.js +14 -1
  628. package/src/modules/globals/views/classes/globals.app.js +8 -4
  629. package/src/modules/globals/views/components/blocks/CardHeader.vue +4 -4
  630. package/src/modules/globals/views/components/blocks/PopupDateSelector.vue +1 -1
  631. package/src/modules/globals/views/components/elements/PhotoStack.vue +4 -4
  632. package/src/modules/globals/views/components/partials/CitySelection.vue +2 -2
  633. package/src/modules/globals/views/components/partials/Footer.centered.vue +6 -6
  634. package/src/modules/globals/views/components/partials/Footer.vue +6 -6
  635. package/src/modules/globals/views/components/partials/Header.vue +3 -3
  636. package/src/modules/globals/views/components/partials/LocationSelection.vue +1 -1
  637. package/src/modules/globals/views/components/partials/Navigation.vue +1 -1
  638. package/src/modules/globals/views/components/sections/SectionPageTitle.vue +2 -2
  639. package/src/modules/globals/views/components/sections/Walkthrough.vue +10 -10
  640. package/src/modules/governance/TASK-TRACKER.MD +192 -0
  641. package/src/modules/governance/controllers/routes/initiatives.routes.js +106 -11
  642. package/src/modules/governance/controllers/routes/milestones.routes.js +111 -0
  643. package/src/modules/governance/controllers/routes/tasks.routes.js +164 -11
  644. package/src/modules/governance/controllers/routes/votes.routes.js +50 -9
  645. package/src/modules/governance/controllers/routes/votings.routes.js +209 -12
  646. package/src/modules/governance/data/mockData.js +654 -0
  647. package/src/modules/governance/governance.server.js +6 -11
  648. package/src/modules/governance/middlewares/initiatives.verifier.js +197 -0
  649. package/src/modules/governance/middlewares/milestones.verifier.js +243 -0
  650. package/src/modules/governance/middlewares/tasks.verifier.js +224 -0
  651. package/src/modules/governance/middlewares/votes.verifier.js +115 -0
  652. package/src/modules/governance/middlewares/votings.verifier.js +237 -0
  653. package/src/modules/governance/models/initiative.model.js +14 -8
  654. package/src/modules/governance/models/task.model.js +13 -1
  655. package/src/modules/governance/models/voting.model.js +68 -2
  656. package/src/modules/governance/reactcode/.bolt/config.json +3 -0
  657. package/src/modules/governance/reactcode/.bolt/prompt +5 -0
  658. package/src/modules/governance/reactcode/eslint.config.js +28 -0
  659. package/src/modules/governance/reactcode/index.html +13 -0
  660. package/src/modules/governance/reactcode/package-lock.json +4229 -0
  661. package/src/modules/governance/reactcode/package.json +36 -0
  662. package/src/modules/governance/reactcode/postcss.config.js +6 -0
  663. package/src/modules/governance/reactcode/src/App.tsx +29 -0
  664. package/src/modules/governance/reactcode/src/components/CreateInitiativeForm.tsx +258 -0
  665. package/src/modules/governance/reactcode/src/components/CreateMilestoneForm.tsx +257 -0
  666. package/src/modules/governance/reactcode/src/components/EmptyState.tsx +29 -0
  667. package/src/modules/governance/reactcode/src/components/InitiativeCard.tsx +59 -0
  668. package/src/modules/governance/reactcode/src/components/LinkedEntityCard.tsx +58 -0
  669. package/src/modules/governance/reactcode/src/components/MilestoneCard.tsx +82 -0
  670. package/src/modules/governance/reactcode/src/components/ProductRepositories.tsx +70 -0
  671. package/src/modules/governance/reactcode/src/components/ProductSummary.tsx +183 -0
  672. package/src/modules/governance/reactcode/src/components/ProductTeam.tsx +100 -0
  673. package/src/modules/governance/reactcode/src/components/ProposeTaskForm.tsx +184 -0
  674. package/src/modules/governance/reactcode/src/components/TaskAssignForm.tsx +74 -0
  675. package/src/modules/governance/reactcode/src/components/TaskCard.tsx +88 -0
  676. package/src/modules/governance/reactcode/src/components/TaskStatusBadge.tsx +27 -0
  677. package/src/modules/governance/reactcode/src/components/VoteForm.tsx +96 -0
  678. package/src/modules/governance/reactcode/src/components/VotingCard.tsx +78 -0
  679. package/src/modules/governance/reactcode/src/components/VotingResults.tsx +155 -0
  680. package/src/modules/governance/reactcode/src/data/mockData.ts +1465 -0
  681. package/src/modules/governance/reactcode/src/index.css +3 -0
  682. package/src/modules/governance/reactcode/src/main.tsx +10 -0
  683. package/src/modules/governance/reactcode/src/pages/InitiativeDetailPage.tsx +569 -0
  684. package/src/modules/governance/reactcode/src/pages/InitiativeMilestonesPage.tsx +171 -0
  685. package/src/modules/governance/reactcode/src/pages/InitiativesListPage.tsx +182 -0
  686. package/src/modules/governance/reactcode/src/pages/MilestoneDetailPage.tsx +178 -0
  687. package/src/modules/governance/reactcode/src/pages/RoadmapPage.tsx +256 -0
  688. package/src/modules/governance/reactcode/src/pages/TaskDetailPage.tsx +529 -0
  689. package/src/modules/governance/reactcode/src/pages/VotingDetailPage.tsx +191 -0
  690. package/src/modules/governance/reactcode/src/pages/VotingsListPage.tsx +86 -0
  691. package/src/modules/governance/reactcode/src/vite-env.d.ts +1 -0
  692. package/src/modules/governance/reactcode/tailwind.config.js +8 -0
  693. package/src/modules/governance/reactcode/tsconfig.app.json +24 -0
  694. package/src/modules/governance/reactcode/tsconfig.json +7 -0
  695. package/src/modules/governance/reactcode/tsconfig.node.json +22 -0
  696. package/src/modules/governance/reactcode/vite.config.ts +10 -0
  697. package/src/modules/governance/seed-governance.js +348 -0
  698. package/src/modules/governance/views/components/blocks/CardInitiativeItem.vue +58 -7
  699. package/src/modules/governance/views/components/blocks/CardMilestoneItem.vue +70 -0
  700. package/src/modules/governance/views/components/blocks/CardTaskItem.vue +58 -7
  701. package/src/modules/governance/views/components/blocks/CardVotingItem.vue +65 -7
  702. package/src/modules/governance/views/components/layouts/Governance.vue +23 -0
  703. package/src/modules/governance/views/components/pages/Governance.vue +44 -0
  704. package/src/modules/governance/views/components/pages/Initiative.vue +413 -8
  705. package/src/modules/governance/views/components/pages/InitiativeMilestones.vue +159 -0
  706. package/src/modules/governance/views/components/pages/Initiatives.vue +164 -6
  707. package/src/modules/governance/views/components/pages/Milestone.vue +170 -0
  708. package/src/modules/governance/views/components/pages/Roadmap.vue +238 -0
  709. package/src/modules/governance/views/components/pages/Task.vue +393 -14
  710. package/src/modules/governance/views/components/pages/Tasks.vue +164 -10
  711. package/src/modules/governance/views/components/pages/Voting.vue +167 -20
  712. package/src/modules/governance/views/components/pages/Votings.vue +86 -9
  713. package/src/modules/governance/views/components/partials/EmptyState.vue +41 -0
  714. package/src/modules/governance/views/components/partials/LinkedEntityCard.vue +73 -0
  715. package/src/modules/governance/views/components/partials/TaskStatusBadge.vue +35 -0
  716. package/src/modules/governance/views/components/partials/VoteForm.vue +100 -0
  717. package/src/modules/governance/views/components/partials/VotingResults.vue +127 -0
  718. package/src/modules/governance/views/router/goverance.router.js +52 -1
  719. package/src/modules/governance/views/store/initiatives.js +10 -7
  720. package/src/modules/governance/views/store/tasks.js +10 -7
  721. package/src/modules/governance/views/store/votes.js +10 -7
  722. package/src/modules/governance/views/store/votings.js +9 -6
  723. package/src/modules/inventory/components/forms/AdjustmentForm.vue +1 -1
  724. package/src/modules/landing/components/sections/Examples.vue +1 -1
  725. package/src/modules/landing/components/sections/SectionEarn.vue +2 -2
  726. package/src/modules/landing/components/sections/SectionFeature.vue +1 -1
  727. package/src/modules/landing/components/sections/SectionFeaturesImages.vue +1 -1
  728. package/src/modules/landing/components/sections/SectionFocus.vue +1 -1
  729. package/src/modules/landing/components/sections/SectionGuide.vue +2 -2
  730. package/src/modules/landing/components/sections/SectionHeroToken.vue +1 -1
  731. package/src/modules/landing/components/sections/SectionHeroVideo.vue +2 -2
  732. package/src/modules/landing/components/sections/SectionJoinUs.vue +1 -1
  733. package/src/modules/landing/components/sections/SectionMobileApp.vue +3 -3
  734. package/src/modules/landing/components/sections/SubscribeNewsletter.vue +1 -1
  735. package/src/modules/marketplace/views/components/layouts/Marketplace.vue +3 -3
  736. package/src/modules/marketplace/views/components/sections/SectionMenu.vue +1 -1
  737. package/src/modules/music/components/forms/AlbumForm.vue +2 -2
  738. package/src/modules/music/components/forms/ArtistForm.vue +4 -4
  739. package/src/modules/music/components/forms/PlaylistForm.vue +6 -6
  740. package/src/modules/music/components/forms/TrackForm.vue +4 -4
  741. package/src/modules/music/components/pages/Album.vue +8 -8
  742. package/src/modules/music/components/pages/Artist.vue +10 -10
  743. package/src/modules/music/components/pages/MusicLibrary.vue +4 -4
  744. package/src/modules/music/components/pages/Playlist.vue +5 -5
  745. package/src/modules/music/components/pages/Track.vue +9 -9
  746. package/src/modules/music/music.server.js +0 -1
  747. package/src/modules/notifications/components/blocks/NotificationItem.vue +1 -1
  748. package/src/modules/notifications/components/elements/NotificationBadge.vue +1 -1
  749. package/src/modules/notifications/notifications.server.js +26 -20
  750. package/src/modules/orders/components/blocks/CardOrder.vue +7 -7
  751. package/src/modules/orders/components/blocks/CardOrderBackoffice.vue +1 -1
  752. package/src/modules/orders/components/blocks/CardOrderUser.vue +3 -3
  753. package/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue +2 -2
  754. package/src/modules/orders/components/elements/PriceTotal.vue +1 -1
  755. package/src/modules/orders/components/pages/Favorites.vue +1 -1
  756. package/src/modules/orders/components/pages/OrderBackoffice.vue +7 -7
  757. package/src/modules/orders/components/pages/Orders_refact.vue +3 -3
  758. package/src/modules/orders/components/partials/ShopCart.vue +1 -1
  759. package/src/modules/orders/components/sections/AskToLogin.vue +1 -1
  760. package/src/modules/orders/components/sections/Succes.vue +1 -1
  761. package/src/modules/organizations/components/blocks/CardOrganization.vue +3 -3
  762. package/src/modules/organizations/components/blocks/EmptyState.vue +1 -1
  763. package/src/modules/organizations/components/blocks/Rating.vue +2 -2
  764. package/src/modules/organizations/components/forms/AddExistingMembersForm.vue +1 -1
  765. package/src/modules/organizations/components/forms/DepartmentForm.vue +2 -2
  766. package/src/modules/organizations/components/forms/InviteForm.vue +1 -1
  767. package/src/modules/organizations/components/pages/Department.vue +2 -2
  768. package/src/modules/organizations/components/pages/DepartmentEdit.vue +2 -2
  769. package/src/modules/organizations/components/pages/Organization.new.vue +7 -7
  770. package/src/modules/organizations/components/pages/Organization.vue +6 -6
  771. package/src/modules/organizations/components/pages/OrganizationBackoffice.vue +8 -8
  772. package/src/modules/organizations/components/sections/MembersAdd.vue +1 -1
  773. package/src/modules/products/components/blocks/CardCategory.vue +2 -2
  774. package/src/modules/products/components/blocks/CardPosition.vue +1 -1
  775. package/src/modules/products/components/blocks/CardProduct.vue +3 -3
  776. package/src/modules/products/components/blocks/ProductDiscounts.vue +2 -2
  777. package/src/modules/products/components/elements/Price.vue +4 -4
  778. package/src/modules/products/components/elements/QuantitySelector.vue +2 -2
  779. package/src/modules/products/components/forms/StockAuditForm.vue +1 -1
  780. package/src/modules/products/components/pages/Product.vue +2 -2
  781. package/src/modules/products/components/pages/Products.vue +4 -4
  782. package/src/modules/products/components/sections/EditAttributes.vue +3 -3
  783. package/src/modules/products/components/sections/EditDiscounts.vue +3 -3
  784. package/src/modules/products/components/sections/EditVariants.vue +5 -5
  785. package/src/modules/products/components/sections/FilterProducts.vue +3 -3
  786. package/src/modules/products/components/sections/HeroRecommendation.vue +2 -2
  787. package/src/modules/products/components/sections/ProductConfigurator.vue +1 -1
  788. package/src/modules/products/components/sections/ProductsRecommended.vue +1 -1
  789. package/src/modules/products/components/sections/SectionProduct.vue +2 -2
  790. package/src/modules/reports/components/sections/FormReport.vue +2 -2
  791. package/src/modules/spots/components/blocks/CardSpot.vue +5 -5
  792. package/src/modules/spots/components/pages/Spot.vue +2 -2
  793. package/src/modules/spots/components/pages/SpotEdit.vue +3 -3
  794. package/src/modules/wallet/views/components/pages/Wallet.vue +4 -4
  795. package/src/styles/base/all.scss +20 -0
  796. package/src/styles/config.scss +10 -9
  797. package/src/styles/typography.scss +13 -13
  798. package/dist/globals.observer-C_FYclgV.cjs +0 -78
  799. package/dist/globals.observer-MZsqaE6F.js +0 -79
  800. package/dist/main-8f945Ngn.cjs +0 -11
  801. package/dist/martyrs/src/components/Dropdown/Dropdown.vue2.cjs.map +0 -1
  802. package/dist/martyrs/src/components/EditImages/EditImages.vue.cjs +0 -2
  803. package/dist/martyrs/src/components/EditImages/EditImages.vue.cjs.map +0 -1
  804. package/dist/martyrs/src/components/EditImages/EditImages.vue.js +0 -2
  805. package/dist/martyrs/src/components/EditImages/EditImages.vue.js.map +0 -1
  806. package/dist/martyrs/src/components/Field/Field.vue.js.map +0 -1
  807. package/dist/martyrs/src/components/Menu/Menu.vue2.cjs.map +0 -1
  808. package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +0 -1
  809. package/dist/martyrs/src/components/Select/Select.vue2.cjs.map +0 -1
  810. package/dist/martyrs/src/components/UploadImage/UploadImage.vue.cjs.map +0 -1
  811. package/dist/martyrs/src/components/UploadImage/UploadImage.vue.js.map +0 -1
  812. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue2.cjs +0 -2
  813. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue2.cjs.map +0 -1
  814. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue2.js +0 -2
  815. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue2.js.map +0 -1
  816. package/dist/tickets.controller-9zoaVPcx.cjs +0 -444
  817. package/dist/tickets.controller-C8sWVqbB.js +0 -428
  818. package/dist/wallet.server.cjs +0 -528
  819. package/dist/wallet.server.js +0 -511
  820. package/src/builder/modes/ssr.vite.dev.js +0 -180
  821. package/src/builder/ssr/ssr-render-html.vite.js +0 -35
  822. package/src/builder/vite/index.js +0 -13
  823. package/src/builder/vite/vite.config.api.js +0 -52
  824. package/src/builder/vite/vite.config.base.js +0 -110
  825. package/src/builder/vite/vite.config.spa.client.js +0 -81
  826. package/src/builder/vite/vite.config.ssr.client.js +0 -244
  827. package/src/builder/vite/vite.config.ssr.server.js +0 -74
  828. package/src/modules/governance/controllers/factories/initiatives.controller.js +0 -90
  829. package/src/modules/governance/controllers/factories/tasks.controller.js +0 -88
  830. package/src/modules/governance/controllers/factories/votes.controller.js +0 -64
  831. package/src/modules/governance/controllers/factories/votings.controller.js +0 -105
  832. package/src/modules/governance/views/store/projects.js +0 -148
  833. /package/src/modules/governance/{DESCRIPTION.MD → IGNORE-ITS FOR FUTURE-DESCRIPTION.MD} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"EditAttributes.vue.cjs","sources":["../../../../../../../src/modules/products/components/sections/EditAttributes.vue"],"sourcesContent":["<template>\n <Block\n title=\"Parameters\"\n placeholder=\"No parameters added yet\"\n :actions=\"[{\n label: '+',\n function: () => openAttributePopup()\n }]\"\n >\n <div v-if=\"attributes.length > 0\" class=\"cols-1 gap-thin\">\n <div\n v-for=\"(attribute, index) in attributes\"\n :key=\"index\"\n class=\"bg-white radius-small pd-small flex-nowrap flex-v-center flex gap-thin\"\n >\n <div class=\"w-100\">\n <p class=\"p-medium mn-b-thin t-medium d-block\">{{ attribute.name || 'Unnamed parameter' }}</p>\n <p class=\"t-medium t-transp\">{{ attribute.value || 'No value' }}</p>\n </div>\n \n <div class=\"flex gap-thin\">\n <div @click=\"() => openAttributePopup(index)\" class=\"radius-small pd-small flex-center flex aspect-1x1 bg-light cursor-pointer hover-scale-1\">\n <IconEdit\n class=\"i-regular\"\n />\n </div>\n <div @click=\"() => attributes.splice(index, 1)\" class=\"radius-small pd-small flex-center flex aspect-1x1 bg-red cursor-pointer hover-scale-1\">\n <IconDelete\n class=\"i-regular\"\n />\n </div>\n </div>\n </div>\n </div>\n </Block>\n\n <Popup\n title=\"Edit Parameter\"\n @close-popup=\"closeAttributePopup\"\n :isPopupOpen=\"isAttributePopupOpen\"\n class=\"bg-white w-max-40r radius-medium pd-medium\"\n >\n <div class=\"cols-1 gap-thin\">\n <Field\n v-model:field=\"currentAttribute.name\"\n label=\"Name\"\n placeholder=\"Parameter Name\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n\n <Field\n v-model:field=\"currentAttribute.value\"\n label=\"Value\"\n placeholder=\"Parameter Value\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n\n <div class=\"flex gap-thin mn-t-medium\">\n <Button\n :showSuccess=\"false\"\n :showLoader=\"false\"\n class=\"bg-red t-white w-100\"\n @click=\"closeAttributePopup\"\n >\n Cancel\n </Button>\n <Button\n class=\"bg-main w-100\"\n @click=\"saveAttribute\"\n >\n Save\n </Button>\n </div>\n </div>\n </Popup>\n</template>\n\n<script setup>\nimport { ref, reactive, defineModel } from 'vue';\nimport Block from '@martyrs/src/components/Block/Block.vue';\nimport Field from '@martyrs/src/components/Field/Field.vue';\nimport Button from '@martyrs/src/components/Button/Button.vue';\nimport Popup from '@martyrs/src/components/Popup/Popup.vue';\nimport IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue';\nimport IconDelete from '@martyrs/src/modules/icons/navigation/IconDelete.vue';\n\n// Используем defineModel для работы с v-model в родительском компоненте\nconst attributes = defineModel('attributes');\n\n// Локальное состояние\nconst isAttributePopupOpen = ref(false);\nconst editingAttributeIndex = ref(null);\nconst currentAttribute = reactive({\n name: '',\n value: ''\n});\n\n// Функция открытия попапа добавления/редактирования\nfunction openAttributePopup(index) {\n // Если передан индекс, это редактирование существующего атрибута\n if (index !== undefined) {\n editingAttributeIndex.value = index;\n const attribute = attributes.value[index];\n \n // Копируем данные в currentAttribute\n Object.assign(currentAttribute, {\n name: attribute.name || '',\n value: attribute.value || ''\n });\n } else {\n // Сброс данных при создании нового атрибута\n editingAttributeIndex.value = null;\n Object.assign(currentAttribute, {\n name: '',\n value: ''\n });\n }\n \n isAttributePopupOpen.value = true;\n}\n\n// Закрытие попапа\nfunction closeAttributePopup() {\n isAttributePopupOpen.value = false;\n editingAttributeIndex.value = null;\n}\n\n// Сохранение атрибута\nfunction saveAttribute() {\n // Проверка на основные поля\n if (!currentAttribute.name) {\n alert('Parameter name is required');\n return;\n }\n\n // Создаем копию текущего атрибута для сохранения\n const attributeToSave = {\n name: currentAttribute.name,\n value: currentAttribute.value\n };\n\n // Если редактируем существующий атрибут\n if (editingAttributeIndex.value !== null) {\n // Обновляем существующий атрибут\n attributes.value.splice(editingAttributeIndex.value, 1, attributeToSave);\n } else {\n // Добавляем новый атрибут\n attributes.value.push(attributeToSave);\n }\n\n // Закрываем попап\n closeAttributePopup();\n}\n</script>"],"names":["_useModel","ref","reactive"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuFA,UAAM,aAAaA,IAAAA,SAAW,SAAC,YAAY;AAG3C,UAAM,uBAAuBC,IAAAA,IAAI,KAAK;AACtC,UAAM,wBAAwBA,IAAAA,IAAI,IAAI;AACtC,UAAM,mBAAmBC,IAAAA,SAAS;AAAA,MAChC,MAAM;AAAA,MACN,OAAO;AAAA,IACT,CAAC;AAGD,aAAS,mBAAmB,OAAO;AAEjC,UAAI,UAAU,QAAW;AACvB,8BAAsB,QAAQ;AAC9B,cAAM,YAAY,WAAW,MAAM,KAAK;AAGxC,eAAO,OAAO,kBAAkB;AAAA,UAC9B,MAAM,UAAU,QAAQ;AAAA,UACxB,OAAO,UAAU,SAAS;AAAA,QAChC,CAAK;AAAA,MACH,OAAO;AAEL,8BAAsB,QAAQ;AAC9B,eAAO,OAAO,kBAAkB;AAAA,UAC9B,MAAM;AAAA,UACN,OAAO;AAAA,QACb,CAAK;AAAA,MACH;AAEA,2BAAqB,QAAQ;AAAA,IAC/B;AAGA,aAAS,sBAAsB;AAC7B,2BAAqB,QAAQ;AAC7B,4BAAsB,QAAQ;AAAA,IAChC;AAGA,aAAS,gBAAgB;AAEvB,UAAI,CAAC,iBAAiB,MAAM;AAC1B,cAAM,4BAA4B;AAClC;AAAA,MACF;AAGA,YAAM,kBAAkB;AAAA,QACtB,MAAM,iBAAiB;AAAA,QACvB,OAAO,iBAAiB;AAAA,MAC5B;AAGE,UAAI,sBAAsB,UAAU,MAAM;AAExC,mBAAW,MAAM,OAAO,sBAAsB,OAAO,GAAG,eAAe;AAAA,MACzE,OAAO;AAEL,mBAAW,MAAM,KAAK,eAAe;AAAA,MACvC;AAGA,0BAAmB;AAAA,IACrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"EditAttributes.vue.cjs","sources":["../../../../../../../src/modules/products/components/sections/EditAttributes.vue"],"sourcesContent":["<template>\n <Block\n title=\"Parameters\"\n placeholder=\"No parameters added yet\"\n :actions=\"[{\n label: '+',\n function: () => openAttributePopup()\n }]\"\n >\n <div v-if=\"attributes.length > 0\" class=\"cols-1 gap-thin\">\n <div\n v-for=\"(attribute, index) in attributes\"\n :key=\"index\"\n class=\"bg-white radius-small pd-small flex-nowrap flex-v-center flex gap-thin\"\n >\n <div class=\"w-100\">\n <p class=\"p-regular mn-b-thin t-medium d-block\">{{ attribute.name || 'Unnamed parameter' }}</p>\n <p class=\"t-medium t-transp\">{{ attribute.value || 'No value' }}</p>\n </div>\n \n <div class=\"flex gap-thin\">\n <div @click=\"() => openAttributePopup(index)\" class=\"radius-small pd-small flex-center flex aspect-1x1 bg-light cursor-pointer hover-scale-1\">\n <IconEdit\n class=\"i-medium\"\n />\n </div>\n <div @click=\"() => attributes.splice(index, 1)\" class=\"radius-small pd-small flex-center flex aspect-1x1 bg-red cursor-pointer hover-scale-1\">\n <IconDelete\n class=\"i-medium\"\n />\n </div>\n </div>\n </div>\n </div>\n </Block>\n\n <Popup\n title=\"Edit Parameter\"\n @close-popup=\"closeAttributePopup\"\n :isPopupOpen=\"isAttributePopupOpen\"\n class=\"bg-white w-max-40r radius-medium pd-medium\"\n >\n <div class=\"cols-1 gap-thin\">\n <Field\n v-model:field=\"currentAttribute.name\"\n label=\"Name\"\n placeholder=\"Parameter Name\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n\n <Field\n v-model:field=\"currentAttribute.value\"\n label=\"Value\"\n placeholder=\"Parameter Value\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n\n <div class=\"flex gap-thin mn-t-medium\">\n <Button\n :showSuccess=\"false\"\n :showLoader=\"false\"\n class=\"bg-red t-white w-100\"\n @click=\"closeAttributePopup\"\n >\n Cancel\n </Button>\n <Button\n class=\"bg-main w-100\"\n @click=\"saveAttribute\"\n >\n Save\n </Button>\n </div>\n </div>\n </Popup>\n</template>\n\n<script setup>\nimport { ref, reactive, defineModel } from 'vue';\nimport Block from '@martyrs/src/components/Block/Block.vue';\nimport Field from '@martyrs/src/components/Field/Field.vue';\nimport Button from '@martyrs/src/components/Button/Button.vue';\nimport Popup from '@martyrs/src/components/Popup/Popup.vue';\nimport IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue';\nimport IconDelete from '@martyrs/src/modules/icons/navigation/IconDelete.vue';\n\n// Используем defineModel для работы с v-model в родительском компоненте\nconst attributes = defineModel('attributes');\n\n// Локальное состояние\nconst isAttributePopupOpen = ref(false);\nconst editingAttributeIndex = ref(null);\nconst currentAttribute = reactive({\n name: '',\n value: ''\n});\n\n// Функция открытия попапа добавления/редактирования\nfunction openAttributePopup(index) {\n // Если передан индекс, это редактирование существующего атрибута\n if (index !== undefined) {\n editingAttributeIndex.value = index;\n const attribute = attributes.value[index];\n \n // Копируем данные в currentAttribute\n Object.assign(currentAttribute, {\n name: attribute.name || '',\n value: attribute.value || ''\n });\n } else {\n // Сброс данных при создании нового атрибута\n editingAttributeIndex.value = null;\n Object.assign(currentAttribute, {\n name: '',\n value: ''\n });\n }\n \n isAttributePopupOpen.value = true;\n}\n\n// Закрытие попапа\nfunction closeAttributePopup() {\n isAttributePopupOpen.value = false;\n editingAttributeIndex.value = null;\n}\n\n// Сохранение атрибута\nfunction saveAttribute() {\n // Проверка на основные поля\n if (!currentAttribute.name) {\n alert('Parameter name is required');\n return;\n }\n\n // Создаем копию текущего атрибута для сохранения\n const attributeToSave = {\n name: currentAttribute.name,\n value: currentAttribute.value\n };\n\n // Если редактируем существующий атрибут\n if (editingAttributeIndex.value !== null) {\n // Обновляем существующий атрибут\n attributes.value.splice(editingAttributeIndex.value, 1, attributeToSave);\n } else {\n // Добавляем новый атрибут\n attributes.value.push(attributeToSave);\n }\n\n // Закрываем попап\n closeAttributePopup();\n}\n</script>"],"names":["_useModel","ref","reactive"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuFA,UAAM,aAAaA,IAAAA,SAAW,SAAC,YAAY;AAG3C,UAAM,uBAAuBC,IAAAA,IAAI,KAAK;AACtC,UAAM,wBAAwBA,IAAAA,IAAI,IAAI;AACtC,UAAM,mBAAmBC,IAAAA,SAAS;AAAA,MAChC,MAAM;AAAA,MACN,OAAO;AAAA,IACT,CAAC;AAGD,aAAS,mBAAmB,OAAO;AAEjC,UAAI,UAAU,QAAW;AACvB,8BAAsB,QAAQ;AAC9B,cAAM,YAAY,WAAW,MAAM,KAAK;AAGxC,eAAO,OAAO,kBAAkB;AAAA,UAC9B,MAAM,UAAU,QAAQ;AAAA,UACxB,OAAO,UAAU,SAAS;AAAA,QAChC,CAAK;AAAA,MACH,OAAO;AAEL,8BAAsB,QAAQ;AAC9B,eAAO,OAAO,kBAAkB;AAAA,UAC9B,MAAM;AAAA,UACN,OAAO;AAAA,QACb,CAAK;AAAA,MACH;AAEA,2BAAqB,QAAQ;AAAA,IAC/B;AAGA,aAAS,sBAAsB;AAC7B,2BAAqB,QAAQ;AAC7B,4BAAsB,QAAQ;AAAA,IAChC;AAGA,aAAS,gBAAgB;AAEvB,UAAI,CAAC,iBAAiB,MAAM;AAC1B,cAAM,4BAA4B;AAClC;AAAA,MACF;AAGA,YAAM,kBAAkB;AAAA,QACtB,MAAM,iBAAiB;AAAA,QACvB,OAAO,iBAAiB;AAAA,MAC5B;AAGE,UAAI,sBAAsB,UAAU,MAAM;AAExC,mBAAW,MAAM,OAAO,sBAAsB,OAAO,GAAG,eAAe;AAAA,MACzE,OAAO;AAEL,mBAAW,MAAM,KAAK,eAAe;AAAA,MACvC;AAGA,0BAAmB;AAAA,IACrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { useModel, ref, reactive, createElementBlock, openBlock, Fragment, createVNode, withCtx, createCommentVNode, renderList, createElementVNode, toDisplayString, createTextVNode } from "vue";
2
2
  import _sfc_main$1 from "../../../../components/Block/Block.vue.js";
3
- import Field from "../../../../components/Field/Field.vue.js";
3
+ import Field from "../../../../components/Field/Field.vue2.js";
4
4
  import _sfc_main$5 from "../../../../components/Button/Button.vue.js";
5
5
  import _sfc_main$4 from "../../../../components/Popup/Popup.vue.js";
6
6
  import _sfc_main$2 from "../../../icons/navigation/IconEdit.vue.js";
@@ -10,7 +10,7 @@ const _hoisted_1 = {
10
10
  class: "cols-1 gap-thin"
11
11
  };
12
12
  const _hoisted_2 = { class: "w-100" };
13
- const _hoisted_3 = { class: "p-medium mn-b-thin t-medium d-block" };
13
+ const _hoisted_3 = { class: "p-regular mn-b-thin t-medium d-block" };
14
14
  const _hoisted_4 = { class: "t-medium t-transp" };
15
15
  const _hoisted_5 = { class: "flex gap-thin" };
16
16
  const _hoisted_6 = ["onClick"];
@@ -95,13 +95,13 @@ const _sfc_main = {
95
95
  onClick: () => openAttributePopup(index),
96
96
  class: "radius-small pd-small flex-center flex aspect-1x1 bg-light cursor-pointer hover-scale-1"
97
97
  }, [
98
- createVNode(_sfc_main$2, { class: "i-regular" })
98
+ createVNode(_sfc_main$2, { class: "i-medium" })
99
99
  ], 8, _hoisted_6),
100
100
  createElementVNode("div", {
101
101
  onClick: () => attributes.value.splice(index, 1),
102
102
  class: "radius-small pd-small flex-center flex aspect-1x1 bg-red cursor-pointer hover-scale-1"
103
103
  }, [
104
- createVNode(_sfc_main$3, { class: "i-regular" })
104
+ createVNode(_sfc_main$3, { class: "i-medium" })
105
105
  ], 8, _hoisted_7)
106
106
  ])
107
107
  ]);
@@ -1 +1 @@
1
- {"version":3,"file":"EditAttributes.vue.js","sources":["../../../../../../../src/modules/products/components/sections/EditAttributes.vue"],"sourcesContent":["<template>\n <Block\n title=\"Parameters\"\n placeholder=\"No parameters added yet\"\n :actions=\"[{\n label: '+',\n function: () => openAttributePopup()\n }]\"\n >\n <div v-if=\"attributes.length > 0\" class=\"cols-1 gap-thin\">\n <div\n v-for=\"(attribute, index) in attributes\"\n :key=\"index\"\n class=\"bg-white radius-small pd-small flex-nowrap flex-v-center flex gap-thin\"\n >\n <div class=\"w-100\">\n <p class=\"p-medium mn-b-thin t-medium d-block\">{{ attribute.name || 'Unnamed parameter' }}</p>\n <p class=\"t-medium t-transp\">{{ attribute.value || 'No value' }}</p>\n </div>\n \n <div class=\"flex gap-thin\">\n <div @click=\"() => openAttributePopup(index)\" class=\"radius-small pd-small flex-center flex aspect-1x1 bg-light cursor-pointer hover-scale-1\">\n <IconEdit\n class=\"i-regular\"\n />\n </div>\n <div @click=\"() => attributes.splice(index, 1)\" class=\"radius-small pd-small flex-center flex aspect-1x1 bg-red cursor-pointer hover-scale-1\">\n <IconDelete\n class=\"i-regular\"\n />\n </div>\n </div>\n </div>\n </div>\n </Block>\n\n <Popup\n title=\"Edit Parameter\"\n @close-popup=\"closeAttributePopup\"\n :isPopupOpen=\"isAttributePopupOpen\"\n class=\"bg-white w-max-40r radius-medium pd-medium\"\n >\n <div class=\"cols-1 gap-thin\">\n <Field\n v-model:field=\"currentAttribute.name\"\n label=\"Name\"\n placeholder=\"Parameter Name\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n\n <Field\n v-model:field=\"currentAttribute.value\"\n label=\"Value\"\n placeholder=\"Parameter Value\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n\n <div class=\"flex gap-thin mn-t-medium\">\n <Button\n :showSuccess=\"false\"\n :showLoader=\"false\"\n class=\"bg-red t-white w-100\"\n @click=\"closeAttributePopup\"\n >\n Cancel\n </Button>\n <Button\n class=\"bg-main w-100\"\n @click=\"saveAttribute\"\n >\n Save\n </Button>\n </div>\n </div>\n </Popup>\n</template>\n\n<script setup>\nimport { ref, reactive, defineModel } from 'vue';\nimport Block from '@martyrs/src/components/Block/Block.vue';\nimport Field from '@martyrs/src/components/Field/Field.vue';\nimport Button from '@martyrs/src/components/Button/Button.vue';\nimport Popup from '@martyrs/src/components/Popup/Popup.vue';\nimport IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue';\nimport IconDelete from '@martyrs/src/modules/icons/navigation/IconDelete.vue';\n\n// Используем defineModel для работы с v-model в родительском компоненте\nconst attributes = defineModel('attributes');\n\n// Локальное состояние\nconst isAttributePopupOpen = ref(false);\nconst editingAttributeIndex = ref(null);\nconst currentAttribute = reactive({\n name: '',\n value: ''\n});\n\n// Функция открытия попапа добавления/редактирования\nfunction openAttributePopup(index) {\n // Если передан индекс, это редактирование существующего атрибута\n if (index !== undefined) {\n editingAttributeIndex.value = index;\n const attribute = attributes.value[index];\n \n // Копируем данные в currentAttribute\n Object.assign(currentAttribute, {\n name: attribute.name || '',\n value: attribute.value || ''\n });\n } else {\n // Сброс данных при создании нового атрибута\n editingAttributeIndex.value = null;\n Object.assign(currentAttribute, {\n name: '',\n value: ''\n });\n }\n \n isAttributePopupOpen.value = true;\n}\n\n// Закрытие попапа\nfunction closeAttributePopup() {\n isAttributePopupOpen.value = false;\n editingAttributeIndex.value = null;\n}\n\n// Сохранение атрибута\nfunction saveAttribute() {\n // Проверка на основные поля\n if (!currentAttribute.name) {\n alert('Parameter name is required');\n return;\n }\n\n // Создаем копию текущего атрибута для сохранения\n const attributeToSave = {\n name: currentAttribute.name,\n value: currentAttribute.value\n };\n\n // Если редактируем существующий атрибут\n if (editingAttributeIndex.value !== null) {\n // Обновляем существующий атрибут\n attributes.value.splice(editingAttributeIndex.value, 1, attributeToSave);\n } else {\n // Добавляем новый атрибут\n attributes.value.push(attributeToSave);\n }\n\n // Закрываем попап\n closeAttributePopup();\n}\n</script>"],"names":["_useModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAuFA,UAAM,aAAaA,SAAW,SAAC,YAAY;AAG3C,UAAM,uBAAuB,IAAI,KAAK;AACtC,UAAM,wBAAwB,IAAI,IAAI;AACtC,UAAM,mBAAmB,SAAS;AAAA,MAChC,MAAM;AAAA,MACN,OAAO;AAAA,IACT,CAAC;AAGD,aAAS,mBAAmB,OAAO;AAEjC,UAAI,UAAU,QAAW;AACvB,8BAAsB,QAAQ;AAC9B,cAAM,YAAY,WAAW,MAAM,KAAK;AAGxC,eAAO,OAAO,kBAAkB;AAAA,UAC9B,MAAM,UAAU,QAAQ;AAAA,UACxB,OAAO,UAAU,SAAS;AAAA,QAChC,CAAK;AAAA,MACH,OAAO;AAEL,8BAAsB,QAAQ;AAC9B,eAAO,OAAO,kBAAkB;AAAA,UAC9B,MAAM;AAAA,UACN,OAAO;AAAA,QACb,CAAK;AAAA,MACH;AAEA,2BAAqB,QAAQ;AAAA,IAC/B;AAGA,aAAS,sBAAsB;AAC7B,2BAAqB,QAAQ;AAC7B,4BAAsB,QAAQ;AAAA,IAChC;AAGA,aAAS,gBAAgB;AAEvB,UAAI,CAAC,iBAAiB,MAAM;AAC1B,cAAM,4BAA4B;AAClC;AAAA,MACF;AAGA,YAAM,kBAAkB;AAAA,QACtB,MAAM,iBAAiB;AAAA,QACvB,OAAO,iBAAiB;AAAA,MAC5B;AAGE,UAAI,sBAAsB,UAAU,MAAM;AAExC,mBAAW,MAAM,OAAO,sBAAsB,OAAO,GAAG,eAAe;AAAA,MACzE,OAAO;AAEL,mBAAW,MAAM,KAAK,eAAe;AAAA,MACvC;AAGA,0BAAmB;AAAA,IACrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"EditAttributes.vue.js","sources":["../../../../../../../src/modules/products/components/sections/EditAttributes.vue"],"sourcesContent":["<template>\n <Block\n title=\"Parameters\"\n placeholder=\"No parameters added yet\"\n :actions=\"[{\n label: '+',\n function: () => openAttributePopup()\n }]\"\n >\n <div v-if=\"attributes.length > 0\" class=\"cols-1 gap-thin\">\n <div\n v-for=\"(attribute, index) in attributes\"\n :key=\"index\"\n class=\"bg-white radius-small pd-small flex-nowrap flex-v-center flex gap-thin\"\n >\n <div class=\"w-100\">\n <p class=\"p-regular mn-b-thin t-medium d-block\">{{ attribute.name || 'Unnamed parameter' }}</p>\n <p class=\"t-medium t-transp\">{{ attribute.value || 'No value' }}</p>\n </div>\n \n <div class=\"flex gap-thin\">\n <div @click=\"() => openAttributePopup(index)\" class=\"radius-small pd-small flex-center flex aspect-1x1 bg-light cursor-pointer hover-scale-1\">\n <IconEdit\n class=\"i-medium\"\n />\n </div>\n <div @click=\"() => attributes.splice(index, 1)\" class=\"radius-small pd-small flex-center flex aspect-1x1 bg-red cursor-pointer hover-scale-1\">\n <IconDelete\n class=\"i-medium\"\n />\n </div>\n </div>\n </div>\n </div>\n </Block>\n\n <Popup\n title=\"Edit Parameter\"\n @close-popup=\"closeAttributePopup\"\n :isPopupOpen=\"isAttributePopupOpen\"\n class=\"bg-white w-max-40r radius-medium pd-medium\"\n >\n <div class=\"cols-1 gap-thin\">\n <Field\n v-model:field=\"currentAttribute.name\"\n label=\"Name\"\n placeholder=\"Parameter Name\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n\n <Field\n v-model:field=\"currentAttribute.value\"\n label=\"Value\"\n placeholder=\"Parameter Value\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n\n <div class=\"flex gap-thin mn-t-medium\">\n <Button\n :showSuccess=\"false\"\n :showLoader=\"false\"\n class=\"bg-red t-white w-100\"\n @click=\"closeAttributePopup\"\n >\n Cancel\n </Button>\n <Button\n class=\"bg-main w-100\"\n @click=\"saveAttribute\"\n >\n Save\n </Button>\n </div>\n </div>\n </Popup>\n</template>\n\n<script setup>\nimport { ref, reactive, defineModel } from 'vue';\nimport Block from '@martyrs/src/components/Block/Block.vue';\nimport Field from '@martyrs/src/components/Field/Field.vue';\nimport Button from '@martyrs/src/components/Button/Button.vue';\nimport Popup from '@martyrs/src/components/Popup/Popup.vue';\nimport IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue';\nimport IconDelete from '@martyrs/src/modules/icons/navigation/IconDelete.vue';\n\n// Используем defineModel для работы с v-model в родительском компоненте\nconst attributes = defineModel('attributes');\n\n// Локальное состояние\nconst isAttributePopupOpen = ref(false);\nconst editingAttributeIndex = ref(null);\nconst currentAttribute = reactive({\n name: '',\n value: ''\n});\n\n// Функция открытия попапа добавления/редактирования\nfunction openAttributePopup(index) {\n // Если передан индекс, это редактирование существующего атрибута\n if (index !== undefined) {\n editingAttributeIndex.value = index;\n const attribute = attributes.value[index];\n \n // Копируем данные в currentAttribute\n Object.assign(currentAttribute, {\n name: attribute.name || '',\n value: attribute.value || ''\n });\n } else {\n // Сброс данных при создании нового атрибута\n editingAttributeIndex.value = null;\n Object.assign(currentAttribute, {\n name: '',\n value: ''\n });\n }\n \n isAttributePopupOpen.value = true;\n}\n\n// Закрытие попапа\nfunction closeAttributePopup() {\n isAttributePopupOpen.value = false;\n editingAttributeIndex.value = null;\n}\n\n// Сохранение атрибута\nfunction saveAttribute() {\n // Проверка на основные поля\n if (!currentAttribute.name) {\n alert('Parameter name is required');\n return;\n }\n\n // Создаем копию текущего атрибута для сохранения\n const attributeToSave = {\n name: currentAttribute.name,\n value: currentAttribute.value\n };\n\n // Если редактируем существующий атрибут\n if (editingAttributeIndex.value !== null) {\n // Обновляем существующий атрибут\n attributes.value.splice(editingAttributeIndex.value, 1, attributeToSave);\n } else {\n // Добавляем новый атрибут\n attributes.value.push(attributeToSave);\n }\n\n // Закрываем попап\n closeAttributePopup();\n}\n</script>"],"names":["_useModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAuFA,UAAM,aAAaA,SAAW,SAAC,YAAY;AAG3C,UAAM,uBAAuB,IAAI,KAAK;AACtC,UAAM,wBAAwB,IAAI,IAAI;AACtC,UAAM,mBAAmB,SAAS;AAAA,MAChC,MAAM;AAAA,MACN,OAAO;AAAA,IACT,CAAC;AAGD,aAAS,mBAAmB,OAAO;AAEjC,UAAI,UAAU,QAAW;AACvB,8BAAsB,QAAQ;AAC9B,cAAM,YAAY,WAAW,MAAM,KAAK;AAGxC,eAAO,OAAO,kBAAkB;AAAA,UAC9B,MAAM,UAAU,QAAQ;AAAA,UACxB,OAAO,UAAU,SAAS;AAAA,QAChC,CAAK;AAAA,MACH,OAAO;AAEL,8BAAsB,QAAQ;AAC9B,eAAO,OAAO,kBAAkB;AAAA,UAC9B,MAAM;AAAA,UACN,OAAO;AAAA,QACb,CAAK;AAAA,MACH;AAEA,2BAAqB,QAAQ;AAAA,IAC/B;AAGA,aAAS,sBAAsB;AAC7B,2BAAqB,QAAQ;AAC7B,4BAAsB,QAAQ;AAAA,IAChC;AAGA,aAAS,gBAAgB;AAEvB,UAAI,CAAC,iBAAiB,MAAM;AAC1B,cAAM,4BAA4B;AAClC;AAAA,MACF;AAGA,YAAM,kBAAkB;AAAA,QACtB,MAAM,iBAAiB;AAAA,QACvB,OAAO,iBAAiB;AAAA,MAC5B;AAGE,UAAI,sBAAsB,UAAU,MAAM;AAExC,mBAAW,MAAM,OAAO,sBAAsB,OAAO,GAAG,eAAe;AAAA,MACzE,OAAO;AAEL,mBAAW,MAAM,KAAK,eAAe;AAAA,MACvC;AAGA,0BAAmB;AAAA,IACrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -2,10 +2,10 @@
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
4
  const Block = require("../../../../components/Block/Block.vue.cjs");
5
- const Field = require("../../../../components/Field/Field.vue.cjs");
5
+ const Field = require("../../../../components/Field/Field.vue2.cjs");
6
6
  const Button = require("../../../../components/Button/Button.vue.cjs");
7
7
  const Popup = require("../../../../components/Popup/Popup.vue.cjs");
8
- const Select = require("../../../../components/Select/Select.vue2.cjs");
8
+ const Select = require("../../../../components/Select/Select.vue.cjs");
9
9
  const IconEdit = require("../../../icons/navigation/IconEdit.vue.cjs");
10
10
  const IconDelete = require("../../../icons/navigation/IconDelete.vue.cjs");
11
11
  const _hoisted_1 = {
@@ -13,7 +13,7 @@ const _hoisted_1 = {
13
13
  class: "cols-1 gap-thin"
14
14
  };
15
15
  const _hoisted_2 = { class: "w-100" };
16
- const _hoisted_3 = { class: "p-medium mn-b-thin t-medium d-block" };
16
+ const _hoisted_3 = { class: "p-regular mn-b-thin t-medium d-block" };
17
17
  const _hoisted_4 = { class: "t-medium t-transp" };
18
18
  const _hoisted_5 = {
19
19
  key: 0,
@@ -181,13 +181,13 @@ const _sfc_main = {
181
181
  onClick: () => openDiscountPopup(index),
182
182
  class: "radius-small pd-small flex-center flex aspect-1x1 bg-light cursor-pointer hover-scale-1"
183
183
  }, [
184
- vue.createVNode(IconEdit.default, { class: "i-regular" })
184
+ vue.createVNode(IconEdit.default, { class: "i-medium" })
185
185
  ], 8, _hoisted_7),
186
186
  vue.createElementVNode("div", {
187
187
  onClick: () => discounts.value.splice(index, 1),
188
188
  class: "radius-small pd-small flex-center flex aspect-1x1 bg-red cursor-pointer hover-scale-1"
189
189
  }, [
190
- vue.createVNode(IconDelete.default, { class: "i-regular" })
190
+ vue.createVNode(IconDelete.default, { class: "i-medium" })
191
191
  ], 8, _hoisted_8)
192
192
  ])
193
193
  ]);
@@ -1 +1 @@
1
- {"version":3,"file":"EditDiscounts.vue.cjs","sources":["../../../../../../../src/modules/products/components/sections/EditDiscounts.vue"],"sourcesContent":["<template>\n <Block\n title=\"Discounts\"\n placeholder=\"No discounts added yet\"\n :actions=\"[{\n label: '+',\n function: () => openDiscountPopup()\n }]\"\n >\n <div v-if=\"discounts.length > 0\" class=\"cols-1 gap-thin\">\n <div\n v-for=\"(discount, index) in discounts\"\n :key=\"index\"\n class=\"bg-white radius-small pd-small flex-nowrap flex-v-center flex gap-thin\"\n >\n <div class=\"w-100\">\n <p class=\"p-medium mn-b-thin t-medium d-block\">{{ discount.name || 'Unnamed discount' }}</p>\n <p class=\"t-medium t-transp\">\n <template v-if=\"discount.type === 'special_price'\">\n Special price: {{ formatPrice(discount.value) }}\n </template>\n <template v-else>\n {{ discount.value }}% off\n </template>\n </p>\n <p v-if=\"discount.date && (discount.date.start || discount.date.end)\" class=\"t-small t-transp\">\n {{ formatDateRange(discount.date) }}\n </p>\n </div>\n \n <div class=\"flex gap-thin\">\n <div @click=\"() => openDiscountPopup(index)\" class=\"radius-small pd-small flex-center flex aspect-1x1 bg-light cursor-pointer hover-scale-1\">\n <IconEdit\n class=\"i-regular\"\n />\n </div>\n <div @click=\"() => discounts.splice(index, 1)\" class=\"radius-small pd-small flex-center flex aspect-1x1 bg-red cursor-pointer hover-scale-1\">\n <IconDelete\n class=\"i-regular\"\n />\n </div>\n </div>\n </div>\n </div>\n </Block>\n\n <Popup\n title=\"Edit Discount\"\n @close-popup=\"closeDiscountPopup\"\n :isPopupOpen=\"isDiscountPopupOpen\"\n class=\"bg-white w-max-40r radius-medium pd-medium\"\n >\n <div class=\"cols-1 gap-thin\">\n <Field\n v-model:field=\"currentDiscount.name\"\n label=\"Name\"\n placeholder=\"Discount Name\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n\n <Field\n v-model:field=\"currentDiscount.description\"\n label=\"Description\"\n type=\"textarea\"\n placeholder=\"Discount Description\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n\n <Field\n v-model:field=\"currentDiscount.value\"\n :label=\"currentDiscount.type === 'special_price' ? 'Special Price' : 'Discount'\"\n :placeholder=\"currentDiscount.type === 'special_price' ? 'New price' : 'Discount percentage'\"\n class=\"w-100 bg-light radius-small pd-small\"\n >\n <Select \n v-model:select=\"currentDiscount.type\" \n placeholder=\"Select type\"\n value=\"label\"\n property=\"value\"\n :options=\"[\n { value: 'discount', label: 'Discount (%)' },\n { value: 'special_price', label: 'Special Price' },\n ]\"\n class=\"pos-relative t-nowrap bg-white gap-small flex flex-column pd-thin radius-thin\"\n />\n </Field>\n\n <Field\n v-model:field=\"currentDiscount.quantity\"\n label=\"Quantity\"\n type=\"number\"\n placeholder=\"Quantity to get discount\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n\n <div class=\"t-medium mn-t-micro mn-b-micro\">Date Range</div>\n <div class=\"cols-2 mobile:cols-1 gap-thin\">\n <Field\n v-model:field=\"currentDiscount.date.start\"\n label=\"Start Date\"\n type=\"date\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n \n <Field\n v-model:field=\"currentDiscount.date.end\"\n label=\"End Date\"\n type=\"date\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n </div>\n\n <div class=\"t-medium mn-t-micro mn-b-micro\">Time Range</div>\n <div class=\"cols-2 mobile:cols-1 gap-thin\">\n <Field\n v-model:field=\"currentDiscount.time.start\"\n label=\"Start Time\"\n type=\"time\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n \n <Field\n v-model:field=\"currentDiscount.time.end\"\n label=\"End Time\"\n type=\"time\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n </div>\n \n \n \n <div class=\"flex gap-thin mn-t-medium\">\n <Button\n :showSuccess=\"false\"\n :showLoader=\"false\"\n class=\"bg-red t-white w-100\"\n @click=\"closeDiscountPopup\"\n >\n Cancel\n </Button>\n <Button\n class=\"bg-main w-100\"\n @click=\"saveDiscount\"\n >\n Save Discount\n </Button>\n </div>\n </div>\n </Popup>\n</template>\n\n<script setup>\nimport { ref, reactive, defineModel, computed } from 'vue';\nimport Block from '@martyrs/src/components/Block/Block.vue';\nimport Field from '@martyrs/src/components/Field/Field.vue';\nimport Button from '@martyrs/src/components/Button/Button.vue';\nimport Popup from '@martyrs/src/components/Popup/Popup.vue';\nimport Select from '@martyrs/src/components/Select/Select.vue';\nimport IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue';\nimport IconDelete from '@martyrs/src/modules/icons/navigation/IconDelete.vue';\n\n// Используем defineModel для более простой работы с v-model в родительском компоненте\nconst discounts = defineModel('discounts', { default: () => [] });\n\n// Локальное состояние\nconst isDiscountPopupOpen = ref(false);\nconst editingDiscountIndex = ref(null);\nconst currentDiscount = reactive({\n name: '',\n description: '',\n type: 'discount', // discount или special_price\n value: 0,\n quantity: 1,\n date: {\n start: null,\n end: null\n },\n time: {\n start: '',\n end: ''\n },\n users: []\n});\n\n// Используется для форматирования диапазона дат\nfunction formatDateRange(dateRange) {\n if (!dateRange) return '';\n \n let result = '';\n \n if (dateRange.start) {\n const startDate = new Date(dateRange.start);\n result += startDate.toLocaleDateString();\n }\n \n result += ' - ';\n \n if (dateRange.end) {\n const endDate = new Date(dateRange.end);\n result += endDate.toLocaleDateString();\n }\n \n return result;\n}\n\n// Функция открытия попапа добавления/редактирования\nfunction openDiscountPopup(index) {\n // Если передан индекс, это редактирование существующей скидки\n if (index !== undefined) {\n editingDiscountIndex.value = index;\n const discount = discounts.value[index];\n \n // Копируем данные в currentDiscount\n Object.assign(currentDiscount, {\n name: discount.name || '',\n description: discount.description || '',\n type: discount.type || 'discount',\n value: discount.value || 0,\n quantity: discount.quantity || 1,\n date: {\n start: discount.date?.start || null,\n end: discount.date?.end || null\n },\n time: {\n start: discount.time?.start || '',\n end: discount.time?.end || ''\n },\n users: Array.isArray(discount.users) ? [...discount.users] : []\n });\n } else {\n // Сброс данных при создании новой скидки\n editingDiscountIndex.value = null;\n Object.assign(currentDiscount, {\n name: '',\n description: '',\n type: 'discount',\n value: 0,\n quantity: 1,\n date: {\n start: null,\n end: null\n },\n time: {\n start: '',\n end: ''\n },\n users: []\n });\n }\n \n isDiscountPopupOpen.value = true;\n}\n\n// Закрытие попапа\nfunction closeDiscountPopup() {\n isDiscountPopupOpen.value = false;\n editingDiscountIndex.value = null;\n}\n\n\n\n// Сохранение скидки\nfunction saveDiscount() {\n // Проверка на основные поля\n if (currentDiscount.type === 'discount' && (currentDiscount.value < 0 || currentDiscount.value > 100)) {\n alert('Discount value must be between 0 and 100');\n return;\n }\n\n if (currentDiscount.type === 'special_price' && currentDiscount.value < 0) {\n alert('Special price must be greater than or equal to 0');\n return;\n }\n\n // Создаем копию текущей скидки для сохранения\n const discountToSave = {\n name: currentDiscount.name,\n description: currentDiscount.description,\n type: currentDiscount.type || 'discount',\n value: parseFloat(currentDiscount.value) || 0,\n quantity: parseInt(currentDiscount.quantity) || 1,\n date: {\n start: currentDiscount.date.start,\n end: currentDiscount.date.end\n },\n time: {\n start: currentDiscount.time.start,\n end: currentDiscount.time.end\n },\n users: [...currentDiscount.users]\n };\n\n // Если редактируем существующую скидку\n if (editingDiscountIndex.value !== null) {\n // Обновляем существующую скидку\n discounts.value.splice(editingDiscountIndex.value, 1, discountToSave);\n } else {\n // Добавляем новую скидку\n if (!discounts.value) {\n discounts.value = [];\n }\n discounts.value.push(discountToSave);\n }\n\n // Закрываем попап\n closeDiscountPopup();\n}\n</script>"],"names":["_useModel","ref","reactive"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkKA,UAAM,YAAYA,IAAAA,SAAW,SAAC,WAAkC;AAGhE,UAAM,sBAAsBC,IAAAA,IAAI,KAAK;AACrC,UAAM,uBAAuBA,IAAAA,IAAI,IAAI;AACrC,UAAM,kBAAkBC,IAAAA,SAAS;AAAA,MAC/B,MAAM;AAAA,MACN,aAAa;AAAA,MACb,MAAM;AAAA;AAAA,MACN,OAAO;AAAA,MACP,UAAU;AAAA,MACV,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,KAAK;AAAA,MACT;AAAA,MACE,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,KAAK;AAAA,MACT;AAAA,MACE,OAAO,CAAA;AAAA,IACT,CAAC;AAGD,aAAS,gBAAgB,WAAW;AAClC,UAAI,CAAC,UAAW,QAAO;AAEvB,UAAI,SAAS;AAEb,UAAI,UAAU,OAAO;AACnB,cAAM,YAAY,IAAI,KAAK,UAAU,KAAK;AAC1C,kBAAU,UAAU,mBAAkB;AAAA,MACxC;AAEA,gBAAU;AAEV,UAAI,UAAU,KAAK;AACjB,cAAM,UAAU,IAAI,KAAK,UAAU,GAAG;AACtC,kBAAU,QAAQ,mBAAkB;AAAA,MACtC;AAEA,aAAO;AAAA,IACT;AAGA,aAAS,kBAAkB,OAAO;AAEhC,UAAI,UAAU,QAAW;AACvB,6BAAqB,QAAQ;AAC7B,cAAM,WAAW,UAAU,MAAM,KAAK;AAGtC,eAAO,OAAO,iBAAiB;AAAA,UAC7B,MAAM,SAAS,QAAQ;AAAA,UACvB,aAAa,SAAS,eAAe;AAAA,UACrC,MAAM,SAAS,QAAQ;AAAA,UACvB,OAAO,SAAS,SAAS;AAAA,UACzB,UAAU,SAAS,YAAY;AAAA,UAC/B,MAAM;AAAA,YACJ,OAAO,SAAS,MAAM,SAAS;AAAA,YAC/B,KAAK,SAAS,MAAM,OAAO;AAAA,UACnC;AAAA,UACM,MAAM;AAAA,YACJ,OAAO,SAAS,MAAM,SAAS;AAAA,YAC/B,KAAK,SAAS,MAAM,OAAO;AAAA,UACnC;AAAA,UACM,OAAO,MAAM,QAAQ,SAAS,KAAK,IAAI,CAAC,GAAG,SAAS,KAAK,IAAI,CAAA;AAAA,QACnE,CAAK;AAAA,MACH,OAAO;AAEL,6BAAqB,QAAQ;AAC7B,eAAO,OAAO,iBAAiB;AAAA,UAC7B,MAAM;AAAA,UACN,aAAa;AAAA,UACb,MAAM;AAAA,UACN,OAAO;AAAA,UACP,UAAU;AAAA,UACV,MAAM;AAAA,YACJ,OAAO;AAAA,YACP,KAAK;AAAA,UACb;AAAA,UACM,MAAM;AAAA,YACJ,OAAO;AAAA,YACP,KAAK;AAAA,UACb;AAAA,UACM,OAAO,CAAA;AAAA,QACb,CAAK;AAAA,MACH;AAEA,0BAAoB,QAAQ;AAAA,IAC9B;AAGA,aAAS,qBAAqB;AAC5B,0BAAoB,QAAQ;AAC5B,2BAAqB,QAAQ;AAAA,IAC/B;AAKA,aAAS,eAAe;AAEtB,UAAI,gBAAgB,SAAS,eAAe,gBAAgB,QAAQ,KAAK,gBAAgB,QAAQ,MAAM;AACrG,cAAM,0CAA0C;AAChD;AAAA,MACF;AAEA,UAAI,gBAAgB,SAAS,mBAAmB,gBAAgB,QAAQ,GAAG;AACzE,cAAM,kDAAkD;AACxD;AAAA,MACF;AAGA,YAAM,iBAAiB;AAAA,QACrB,MAAM,gBAAgB;AAAA,QACtB,aAAa,gBAAgB;AAAA,QAC7B,MAAM,gBAAgB,QAAQ;AAAA,QAC9B,OAAO,WAAW,gBAAgB,KAAK,KAAK;AAAA,QAC5C,UAAU,SAAS,gBAAgB,QAAQ,KAAK;AAAA,QAChD,MAAM;AAAA,UACJ,OAAO,gBAAgB,KAAK;AAAA,UAC5B,KAAK,gBAAgB,KAAK;AAAA,QAChC;AAAA,QACI,MAAM;AAAA,UACJ,OAAO,gBAAgB,KAAK;AAAA,UAC5B,KAAK,gBAAgB,KAAK;AAAA,QAChC;AAAA,QACI,OAAO,CAAC,GAAG,gBAAgB,KAAK;AAAA,MACpC;AAGE,UAAI,qBAAqB,UAAU,MAAM;AAEvC,kBAAU,MAAM,OAAO,qBAAqB,OAAO,GAAG,cAAc;AAAA,MACtE,OAAO;AAEL,YAAI,CAAC,UAAU,OAAO;AACpB,oBAAU,QAAQ,CAAA;AAAA,QACpB;AACA,kBAAU,MAAM,KAAK,cAAc;AAAA,MACrC;AAGA,yBAAkB;AAAA,IACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"EditDiscounts.vue.cjs","sources":["../../../../../../../src/modules/products/components/sections/EditDiscounts.vue"],"sourcesContent":["<template>\n <Block\n title=\"Discounts\"\n placeholder=\"No discounts added yet\"\n :actions=\"[{\n label: '+',\n function: () => openDiscountPopup()\n }]\"\n >\n <div v-if=\"discounts.length > 0\" class=\"cols-1 gap-thin\">\n <div\n v-for=\"(discount, index) in discounts\"\n :key=\"index\"\n class=\"bg-white radius-small pd-small flex-nowrap flex-v-center flex gap-thin\"\n >\n <div class=\"w-100\">\n <p class=\"p-regular mn-b-thin t-medium d-block\">{{ discount.name || 'Unnamed discount' }}</p>\n <p class=\"t-medium t-transp\">\n <template v-if=\"discount.type === 'special_price'\">\n Special price: {{ formatPrice(discount.value) }}\n </template>\n <template v-else>\n {{ discount.value }}% off\n </template>\n </p>\n <p v-if=\"discount.date && (discount.date.start || discount.date.end)\" class=\"t-small t-transp\">\n {{ formatDateRange(discount.date) }}\n </p>\n </div>\n \n <div class=\"flex gap-thin\">\n <div @click=\"() => openDiscountPopup(index)\" class=\"radius-small pd-small flex-center flex aspect-1x1 bg-light cursor-pointer hover-scale-1\">\n <IconEdit\n class=\"i-medium\"\n />\n </div>\n <div @click=\"() => discounts.splice(index, 1)\" class=\"radius-small pd-small flex-center flex aspect-1x1 bg-red cursor-pointer hover-scale-1\">\n <IconDelete\n class=\"i-medium\"\n />\n </div>\n </div>\n </div>\n </div>\n </Block>\n\n <Popup\n title=\"Edit Discount\"\n @close-popup=\"closeDiscountPopup\"\n :isPopupOpen=\"isDiscountPopupOpen\"\n class=\"bg-white w-max-40r radius-medium pd-medium\"\n >\n <div class=\"cols-1 gap-thin\">\n <Field\n v-model:field=\"currentDiscount.name\"\n label=\"Name\"\n placeholder=\"Discount Name\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n\n <Field\n v-model:field=\"currentDiscount.description\"\n label=\"Description\"\n type=\"textarea\"\n placeholder=\"Discount Description\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n\n <Field\n v-model:field=\"currentDiscount.value\"\n :label=\"currentDiscount.type === 'special_price' ? 'Special Price' : 'Discount'\"\n :placeholder=\"currentDiscount.type === 'special_price' ? 'New price' : 'Discount percentage'\"\n class=\"w-100 bg-light radius-small pd-small\"\n >\n <Select \n v-model:select=\"currentDiscount.type\" \n placeholder=\"Select type\"\n value=\"label\"\n property=\"value\"\n :options=\"[\n { value: 'discount', label: 'Discount (%)' },\n { value: 'special_price', label: 'Special Price' },\n ]\"\n class=\"pos-relative t-nowrap bg-white gap-small flex flex-column pd-thin radius-thin\"\n />\n </Field>\n\n <Field\n v-model:field=\"currentDiscount.quantity\"\n label=\"Quantity\"\n type=\"number\"\n placeholder=\"Quantity to get discount\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n\n <div class=\"t-medium mn-t-micro mn-b-micro\">Date Range</div>\n <div class=\"cols-2 mobile:cols-1 gap-thin\">\n <Field\n v-model:field=\"currentDiscount.date.start\"\n label=\"Start Date\"\n type=\"date\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n \n <Field\n v-model:field=\"currentDiscount.date.end\"\n label=\"End Date\"\n type=\"date\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n </div>\n\n <div class=\"t-medium mn-t-micro mn-b-micro\">Time Range</div>\n <div class=\"cols-2 mobile:cols-1 gap-thin\">\n <Field\n v-model:field=\"currentDiscount.time.start\"\n label=\"Start Time\"\n type=\"time\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n \n <Field\n v-model:field=\"currentDiscount.time.end\"\n label=\"End Time\"\n type=\"time\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n </div>\n \n \n \n <div class=\"flex gap-thin mn-t-medium\">\n <Button\n :showSuccess=\"false\"\n :showLoader=\"false\"\n class=\"bg-red t-white w-100\"\n @click=\"closeDiscountPopup\"\n >\n Cancel\n </Button>\n <Button\n class=\"bg-main w-100\"\n @click=\"saveDiscount\"\n >\n Save Discount\n </Button>\n </div>\n </div>\n </Popup>\n</template>\n\n<script setup>\nimport { ref, reactive, defineModel, computed } from 'vue';\nimport Block from '@martyrs/src/components/Block/Block.vue';\nimport Field from '@martyrs/src/components/Field/Field.vue';\nimport Button from '@martyrs/src/components/Button/Button.vue';\nimport Popup from '@martyrs/src/components/Popup/Popup.vue';\nimport Select from '@martyrs/src/components/Select/Select.vue';\nimport IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue';\nimport IconDelete from '@martyrs/src/modules/icons/navigation/IconDelete.vue';\n\n// Используем defineModel для более простой работы с v-model в родительском компоненте\nconst discounts = defineModel('discounts', { default: () => [] });\n\n// Локальное состояние\nconst isDiscountPopupOpen = ref(false);\nconst editingDiscountIndex = ref(null);\nconst currentDiscount = reactive({\n name: '',\n description: '',\n type: 'discount', // discount или special_price\n value: 0,\n quantity: 1,\n date: {\n start: null,\n end: null\n },\n time: {\n start: '',\n end: ''\n },\n users: []\n});\n\n// Используется для форматирования диапазона дат\nfunction formatDateRange(dateRange) {\n if (!dateRange) return '';\n \n let result = '';\n \n if (dateRange.start) {\n const startDate = new Date(dateRange.start);\n result += startDate.toLocaleDateString();\n }\n \n result += ' - ';\n \n if (dateRange.end) {\n const endDate = new Date(dateRange.end);\n result += endDate.toLocaleDateString();\n }\n \n return result;\n}\n\n// Функция открытия попапа добавления/редактирования\nfunction openDiscountPopup(index) {\n // Если передан индекс, это редактирование существующей скидки\n if (index !== undefined) {\n editingDiscountIndex.value = index;\n const discount = discounts.value[index];\n \n // Копируем данные в currentDiscount\n Object.assign(currentDiscount, {\n name: discount.name || '',\n description: discount.description || '',\n type: discount.type || 'discount',\n value: discount.value || 0,\n quantity: discount.quantity || 1,\n date: {\n start: discount.date?.start || null,\n end: discount.date?.end || null\n },\n time: {\n start: discount.time?.start || '',\n end: discount.time?.end || ''\n },\n users: Array.isArray(discount.users) ? [...discount.users] : []\n });\n } else {\n // Сброс данных при создании новой скидки\n editingDiscountIndex.value = null;\n Object.assign(currentDiscount, {\n name: '',\n description: '',\n type: 'discount',\n value: 0,\n quantity: 1,\n date: {\n start: null,\n end: null\n },\n time: {\n start: '',\n end: ''\n },\n users: []\n });\n }\n \n isDiscountPopupOpen.value = true;\n}\n\n// Закрытие попапа\nfunction closeDiscountPopup() {\n isDiscountPopupOpen.value = false;\n editingDiscountIndex.value = null;\n}\n\n\n\n// Сохранение скидки\nfunction saveDiscount() {\n // Проверка на основные поля\n if (currentDiscount.type === 'discount' && (currentDiscount.value < 0 || currentDiscount.value > 100)) {\n alert('Discount value must be between 0 and 100');\n return;\n }\n\n if (currentDiscount.type === 'special_price' && currentDiscount.value < 0) {\n alert('Special price must be greater than or equal to 0');\n return;\n }\n\n // Создаем копию текущей скидки для сохранения\n const discountToSave = {\n name: currentDiscount.name,\n description: currentDiscount.description,\n type: currentDiscount.type || 'discount',\n value: parseFloat(currentDiscount.value) || 0,\n quantity: parseInt(currentDiscount.quantity) || 1,\n date: {\n start: currentDiscount.date.start,\n end: currentDiscount.date.end\n },\n time: {\n start: currentDiscount.time.start,\n end: currentDiscount.time.end\n },\n users: [...currentDiscount.users]\n };\n\n // Если редактируем существующую скидку\n if (editingDiscountIndex.value !== null) {\n // Обновляем существующую скидку\n discounts.value.splice(editingDiscountIndex.value, 1, discountToSave);\n } else {\n // Добавляем новую скидку\n if (!discounts.value) {\n discounts.value = [];\n }\n discounts.value.push(discountToSave);\n }\n\n // Закрываем попап\n closeDiscountPopup();\n}\n</script>"],"names":["_useModel","ref","reactive"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { useModel, ref, reactive, createElementBlock, openBlock, Fragment, createVNode, withCtx, createCommentVNode, renderList, createElementVNode, toDisplayString, createTextVNode } from "vue";
2
2
  import _sfc_main$1 from "../../../../components/Block/Block.vue.js";
3
- import Field from "../../../../components/Field/Field.vue.js";
3
+ import Field from "../../../../components/Field/Field.vue2.js";
4
4
  import _sfc_main$5 from "../../../../components/Button/Button.vue.js";
5
5
  import _sfc_main$4 from "../../../../components/Popup/Popup.vue.js";
6
- import Select from "../../../../components/Select/Select.vue2.js";
6
+ import Select from "../../../../components/Select/Select.vue.js";
7
7
  import _sfc_main$2 from "../../../icons/navigation/IconEdit.vue.js";
8
8
  import _sfc_main$3 from "../../../icons/navigation/IconDelete.vue.js";
9
9
  const _hoisted_1 = {
@@ -11,7 +11,7 @@ const _hoisted_1 = {
11
11
  class: "cols-1 gap-thin"
12
12
  };
13
13
  const _hoisted_2 = { class: "w-100" };
14
- const _hoisted_3 = { class: "p-medium mn-b-thin t-medium d-block" };
14
+ const _hoisted_3 = { class: "p-regular mn-b-thin t-medium d-block" };
15
15
  const _hoisted_4 = { class: "t-medium t-transp" };
16
16
  const _hoisted_5 = {
17
17
  key: 0,
@@ -179,13 +179,13 @@ const _sfc_main = {
179
179
  onClick: () => openDiscountPopup(index),
180
180
  class: "radius-small pd-small flex-center flex aspect-1x1 bg-light cursor-pointer hover-scale-1"
181
181
  }, [
182
- createVNode(_sfc_main$2, { class: "i-regular" })
182
+ createVNode(_sfc_main$2, { class: "i-medium" })
183
183
  ], 8, _hoisted_7),
184
184
  createElementVNode("div", {
185
185
  onClick: () => discounts.value.splice(index, 1),
186
186
  class: "radius-small pd-small flex-center flex aspect-1x1 bg-red cursor-pointer hover-scale-1"
187
187
  }, [
188
- createVNode(_sfc_main$3, { class: "i-regular" })
188
+ createVNode(_sfc_main$3, { class: "i-medium" })
189
189
  ], 8, _hoisted_8)
190
190
  ])
191
191
  ]);
@@ -1 +1 @@
1
- {"version":3,"file":"EditDiscounts.vue.js","sources":["../../../../../../../src/modules/products/components/sections/EditDiscounts.vue"],"sourcesContent":["<template>\n <Block\n title=\"Discounts\"\n placeholder=\"No discounts added yet\"\n :actions=\"[{\n label: '+',\n function: () => openDiscountPopup()\n }]\"\n >\n <div v-if=\"discounts.length > 0\" class=\"cols-1 gap-thin\">\n <div\n v-for=\"(discount, index) in discounts\"\n :key=\"index\"\n class=\"bg-white radius-small pd-small flex-nowrap flex-v-center flex gap-thin\"\n >\n <div class=\"w-100\">\n <p class=\"p-medium mn-b-thin t-medium d-block\">{{ discount.name || 'Unnamed discount' }}</p>\n <p class=\"t-medium t-transp\">\n <template v-if=\"discount.type === 'special_price'\">\n Special price: {{ formatPrice(discount.value) }}\n </template>\n <template v-else>\n {{ discount.value }}% off\n </template>\n </p>\n <p v-if=\"discount.date && (discount.date.start || discount.date.end)\" class=\"t-small t-transp\">\n {{ formatDateRange(discount.date) }}\n </p>\n </div>\n \n <div class=\"flex gap-thin\">\n <div @click=\"() => openDiscountPopup(index)\" class=\"radius-small pd-small flex-center flex aspect-1x1 bg-light cursor-pointer hover-scale-1\">\n <IconEdit\n class=\"i-regular\"\n />\n </div>\n <div @click=\"() => discounts.splice(index, 1)\" class=\"radius-small pd-small flex-center flex aspect-1x1 bg-red cursor-pointer hover-scale-1\">\n <IconDelete\n class=\"i-regular\"\n />\n </div>\n </div>\n </div>\n </div>\n </Block>\n\n <Popup\n title=\"Edit Discount\"\n @close-popup=\"closeDiscountPopup\"\n :isPopupOpen=\"isDiscountPopupOpen\"\n class=\"bg-white w-max-40r radius-medium pd-medium\"\n >\n <div class=\"cols-1 gap-thin\">\n <Field\n v-model:field=\"currentDiscount.name\"\n label=\"Name\"\n placeholder=\"Discount Name\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n\n <Field\n v-model:field=\"currentDiscount.description\"\n label=\"Description\"\n type=\"textarea\"\n placeholder=\"Discount Description\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n\n <Field\n v-model:field=\"currentDiscount.value\"\n :label=\"currentDiscount.type === 'special_price' ? 'Special Price' : 'Discount'\"\n :placeholder=\"currentDiscount.type === 'special_price' ? 'New price' : 'Discount percentage'\"\n class=\"w-100 bg-light radius-small pd-small\"\n >\n <Select \n v-model:select=\"currentDiscount.type\" \n placeholder=\"Select type\"\n value=\"label\"\n property=\"value\"\n :options=\"[\n { value: 'discount', label: 'Discount (%)' },\n { value: 'special_price', label: 'Special Price' },\n ]\"\n class=\"pos-relative t-nowrap bg-white gap-small flex flex-column pd-thin radius-thin\"\n />\n </Field>\n\n <Field\n v-model:field=\"currentDiscount.quantity\"\n label=\"Quantity\"\n type=\"number\"\n placeholder=\"Quantity to get discount\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n\n <div class=\"t-medium mn-t-micro mn-b-micro\">Date Range</div>\n <div class=\"cols-2 mobile:cols-1 gap-thin\">\n <Field\n v-model:field=\"currentDiscount.date.start\"\n label=\"Start Date\"\n type=\"date\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n \n <Field\n v-model:field=\"currentDiscount.date.end\"\n label=\"End Date\"\n type=\"date\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n </div>\n\n <div class=\"t-medium mn-t-micro mn-b-micro\">Time Range</div>\n <div class=\"cols-2 mobile:cols-1 gap-thin\">\n <Field\n v-model:field=\"currentDiscount.time.start\"\n label=\"Start Time\"\n type=\"time\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n \n <Field\n v-model:field=\"currentDiscount.time.end\"\n label=\"End Time\"\n type=\"time\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n </div>\n \n \n \n <div class=\"flex gap-thin mn-t-medium\">\n <Button\n :showSuccess=\"false\"\n :showLoader=\"false\"\n class=\"bg-red t-white w-100\"\n @click=\"closeDiscountPopup\"\n >\n Cancel\n </Button>\n <Button\n class=\"bg-main w-100\"\n @click=\"saveDiscount\"\n >\n Save Discount\n </Button>\n </div>\n </div>\n </Popup>\n</template>\n\n<script setup>\nimport { ref, reactive, defineModel, computed } from 'vue';\nimport Block from '@martyrs/src/components/Block/Block.vue';\nimport Field from '@martyrs/src/components/Field/Field.vue';\nimport Button from '@martyrs/src/components/Button/Button.vue';\nimport Popup from '@martyrs/src/components/Popup/Popup.vue';\nimport Select from '@martyrs/src/components/Select/Select.vue';\nimport IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue';\nimport IconDelete from '@martyrs/src/modules/icons/navigation/IconDelete.vue';\n\n// Используем defineModel для более простой работы с v-model в родительском компоненте\nconst discounts = defineModel('discounts', { default: () => [] });\n\n// Локальное состояние\nconst isDiscountPopupOpen = ref(false);\nconst editingDiscountIndex = ref(null);\nconst currentDiscount = reactive({\n name: '',\n description: '',\n type: 'discount', // discount или special_price\n value: 0,\n quantity: 1,\n date: {\n start: null,\n end: null\n },\n time: {\n start: '',\n end: ''\n },\n users: []\n});\n\n// Используется для форматирования диапазона дат\nfunction formatDateRange(dateRange) {\n if (!dateRange) return '';\n \n let result = '';\n \n if (dateRange.start) {\n const startDate = new Date(dateRange.start);\n result += startDate.toLocaleDateString();\n }\n \n result += ' - ';\n \n if (dateRange.end) {\n const endDate = new Date(dateRange.end);\n result += endDate.toLocaleDateString();\n }\n \n return result;\n}\n\n// Функция открытия попапа добавления/редактирования\nfunction openDiscountPopup(index) {\n // Если передан индекс, это редактирование существующей скидки\n if (index !== undefined) {\n editingDiscountIndex.value = index;\n const discount = discounts.value[index];\n \n // Копируем данные в currentDiscount\n Object.assign(currentDiscount, {\n name: discount.name || '',\n description: discount.description || '',\n type: discount.type || 'discount',\n value: discount.value || 0,\n quantity: discount.quantity || 1,\n date: {\n start: discount.date?.start || null,\n end: discount.date?.end || null\n },\n time: {\n start: discount.time?.start || '',\n end: discount.time?.end || ''\n },\n users: Array.isArray(discount.users) ? [...discount.users] : []\n });\n } else {\n // Сброс данных при создании новой скидки\n editingDiscountIndex.value = null;\n Object.assign(currentDiscount, {\n name: '',\n description: '',\n type: 'discount',\n value: 0,\n quantity: 1,\n date: {\n start: null,\n end: null\n },\n time: {\n start: '',\n end: ''\n },\n users: []\n });\n }\n \n isDiscountPopupOpen.value = true;\n}\n\n// Закрытие попапа\nfunction closeDiscountPopup() {\n isDiscountPopupOpen.value = false;\n editingDiscountIndex.value = null;\n}\n\n\n\n// Сохранение скидки\nfunction saveDiscount() {\n // Проверка на основные поля\n if (currentDiscount.type === 'discount' && (currentDiscount.value < 0 || currentDiscount.value > 100)) {\n alert('Discount value must be between 0 and 100');\n return;\n }\n\n if (currentDiscount.type === 'special_price' && currentDiscount.value < 0) {\n alert('Special price must be greater than or equal to 0');\n return;\n }\n\n // Создаем копию текущей скидки для сохранения\n const discountToSave = {\n name: currentDiscount.name,\n description: currentDiscount.description,\n type: currentDiscount.type || 'discount',\n value: parseFloat(currentDiscount.value) || 0,\n quantity: parseInt(currentDiscount.quantity) || 1,\n date: {\n start: currentDiscount.date.start,\n end: currentDiscount.date.end\n },\n time: {\n start: currentDiscount.time.start,\n end: currentDiscount.time.end\n },\n users: [...currentDiscount.users]\n };\n\n // Если редактируем существующую скидку\n if (editingDiscountIndex.value !== null) {\n // Обновляем существующую скидку\n discounts.value.splice(editingDiscountIndex.value, 1, discountToSave);\n } else {\n // Добавляем новую скидку\n if (!discounts.value) {\n discounts.value = [];\n }\n discounts.value.push(discountToSave);\n }\n\n // Закрываем попап\n closeDiscountPopup();\n}\n</script>"],"names":["_useModel"],"mappings":"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"}
1
+ {"version":3,"file":"EditDiscounts.vue.js","sources":["../../../../../../../src/modules/products/components/sections/EditDiscounts.vue"],"sourcesContent":["<template>\n <Block\n title=\"Discounts\"\n placeholder=\"No discounts added yet\"\n :actions=\"[{\n label: '+',\n function: () => openDiscountPopup()\n }]\"\n >\n <div v-if=\"discounts.length > 0\" class=\"cols-1 gap-thin\">\n <div\n v-for=\"(discount, index) in discounts\"\n :key=\"index\"\n class=\"bg-white radius-small pd-small flex-nowrap flex-v-center flex gap-thin\"\n >\n <div class=\"w-100\">\n <p class=\"p-regular mn-b-thin t-medium d-block\">{{ discount.name || 'Unnamed discount' }}</p>\n <p class=\"t-medium t-transp\">\n <template v-if=\"discount.type === 'special_price'\">\n Special price: {{ formatPrice(discount.value) }}\n </template>\n <template v-else>\n {{ discount.value }}% off\n </template>\n </p>\n <p v-if=\"discount.date && (discount.date.start || discount.date.end)\" class=\"t-small t-transp\">\n {{ formatDateRange(discount.date) }}\n </p>\n </div>\n \n <div class=\"flex gap-thin\">\n <div @click=\"() => openDiscountPopup(index)\" class=\"radius-small pd-small flex-center flex aspect-1x1 bg-light cursor-pointer hover-scale-1\">\n <IconEdit\n class=\"i-medium\"\n />\n </div>\n <div @click=\"() => discounts.splice(index, 1)\" class=\"radius-small pd-small flex-center flex aspect-1x1 bg-red cursor-pointer hover-scale-1\">\n <IconDelete\n class=\"i-medium\"\n />\n </div>\n </div>\n </div>\n </div>\n </Block>\n\n <Popup\n title=\"Edit Discount\"\n @close-popup=\"closeDiscountPopup\"\n :isPopupOpen=\"isDiscountPopupOpen\"\n class=\"bg-white w-max-40r radius-medium pd-medium\"\n >\n <div class=\"cols-1 gap-thin\">\n <Field\n v-model:field=\"currentDiscount.name\"\n label=\"Name\"\n placeholder=\"Discount Name\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n\n <Field\n v-model:field=\"currentDiscount.description\"\n label=\"Description\"\n type=\"textarea\"\n placeholder=\"Discount Description\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n\n <Field\n v-model:field=\"currentDiscount.value\"\n :label=\"currentDiscount.type === 'special_price' ? 'Special Price' : 'Discount'\"\n :placeholder=\"currentDiscount.type === 'special_price' ? 'New price' : 'Discount percentage'\"\n class=\"w-100 bg-light radius-small pd-small\"\n >\n <Select \n v-model:select=\"currentDiscount.type\" \n placeholder=\"Select type\"\n value=\"label\"\n property=\"value\"\n :options=\"[\n { value: 'discount', label: 'Discount (%)' },\n { value: 'special_price', label: 'Special Price' },\n ]\"\n class=\"pos-relative t-nowrap bg-white gap-small flex flex-column pd-thin radius-thin\"\n />\n </Field>\n\n <Field\n v-model:field=\"currentDiscount.quantity\"\n label=\"Quantity\"\n type=\"number\"\n placeholder=\"Quantity to get discount\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n\n <div class=\"t-medium mn-t-micro mn-b-micro\">Date Range</div>\n <div class=\"cols-2 mobile:cols-1 gap-thin\">\n <Field\n v-model:field=\"currentDiscount.date.start\"\n label=\"Start Date\"\n type=\"date\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n \n <Field\n v-model:field=\"currentDiscount.date.end\"\n label=\"End Date\"\n type=\"date\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n </div>\n\n <div class=\"t-medium mn-t-micro mn-b-micro\">Time Range</div>\n <div class=\"cols-2 mobile:cols-1 gap-thin\">\n <Field\n v-model:field=\"currentDiscount.time.start\"\n label=\"Start Time\"\n type=\"time\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n \n <Field\n v-model:field=\"currentDiscount.time.end\"\n label=\"End Time\"\n type=\"time\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n </div>\n \n \n \n <div class=\"flex gap-thin mn-t-medium\">\n <Button\n :showSuccess=\"false\"\n :showLoader=\"false\"\n class=\"bg-red t-white w-100\"\n @click=\"closeDiscountPopup\"\n >\n Cancel\n </Button>\n <Button\n class=\"bg-main w-100\"\n @click=\"saveDiscount\"\n >\n Save Discount\n </Button>\n </div>\n </div>\n </Popup>\n</template>\n\n<script setup>\nimport { ref, reactive, defineModel, computed } from 'vue';\nimport Block from '@martyrs/src/components/Block/Block.vue';\nimport Field from '@martyrs/src/components/Field/Field.vue';\nimport Button from '@martyrs/src/components/Button/Button.vue';\nimport Popup from '@martyrs/src/components/Popup/Popup.vue';\nimport Select from '@martyrs/src/components/Select/Select.vue';\nimport IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue';\nimport IconDelete from '@martyrs/src/modules/icons/navigation/IconDelete.vue';\n\n// Используем defineModel для более простой работы с v-model в родительском компоненте\nconst discounts = defineModel('discounts', { default: () => [] });\n\n// Локальное состояние\nconst isDiscountPopupOpen = ref(false);\nconst editingDiscountIndex = ref(null);\nconst currentDiscount = reactive({\n name: '',\n description: '',\n type: 'discount', // discount или special_price\n value: 0,\n quantity: 1,\n date: {\n start: null,\n end: null\n },\n time: {\n start: '',\n end: ''\n },\n users: []\n});\n\n// Используется для форматирования диапазона дат\nfunction formatDateRange(dateRange) {\n if (!dateRange) return '';\n \n let result = '';\n \n if (dateRange.start) {\n const startDate = new Date(dateRange.start);\n result += startDate.toLocaleDateString();\n }\n \n result += ' - ';\n \n if (dateRange.end) {\n const endDate = new Date(dateRange.end);\n result += endDate.toLocaleDateString();\n }\n \n return result;\n}\n\n// Функция открытия попапа добавления/редактирования\nfunction openDiscountPopup(index) {\n // Если передан индекс, это редактирование существующей скидки\n if (index !== undefined) {\n editingDiscountIndex.value = index;\n const discount = discounts.value[index];\n \n // Копируем данные в currentDiscount\n Object.assign(currentDiscount, {\n name: discount.name || '',\n description: discount.description || '',\n type: discount.type || 'discount',\n value: discount.value || 0,\n quantity: discount.quantity || 1,\n date: {\n start: discount.date?.start || null,\n end: discount.date?.end || null\n },\n time: {\n start: discount.time?.start || '',\n end: discount.time?.end || ''\n },\n users: Array.isArray(discount.users) ? [...discount.users] : []\n });\n } else {\n // Сброс данных при создании новой скидки\n editingDiscountIndex.value = null;\n Object.assign(currentDiscount, {\n name: '',\n description: '',\n type: 'discount',\n value: 0,\n quantity: 1,\n date: {\n start: null,\n end: null\n },\n time: {\n start: '',\n end: ''\n },\n users: []\n });\n }\n \n isDiscountPopupOpen.value = true;\n}\n\n// Закрытие попапа\nfunction closeDiscountPopup() {\n isDiscountPopupOpen.value = false;\n editingDiscountIndex.value = null;\n}\n\n\n\n// Сохранение скидки\nfunction saveDiscount() {\n // Проверка на основные поля\n if (currentDiscount.type === 'discount' && (currentDiscount.value < 0 || currentDiscount.value > 100)) {\n alert('Discount value must be between 0 and 100');\n return;\n }\n\n if (currentDiscount.type === 'special_price' && currentDiscount.value < 0) {\n alert('Special price must be greater than or equal to 0');\n return;\n }\n\n // Создаем копию текущей скидки для сохранения\n const discountToSave = {\n name: currentDiscount.name,\n description: currentDiscount.description,\n type: currentDiscount.type || 'discount',\n value: parseFloat(currentDiscount.value) || 0,\n quantity: parseInt(currentDiscount.quantity) || 1,\n date: {\n start: currentDiscount.date.start,\n end: currentDiscount.date.end\n },\n time: {\n start: currentDiscount.time.start,\n end: currentDiscount.time.end\n },\n users: [...currentDiscount.users]\n };\n\n // Если редактируем существующую скидку\n if (editingDiscountIndex.value !== null) {\n // Обновляем существующую скидку\n discounts.value.splice(editingDiscountIndex.value, 1, discountToSave);\n } else {\n // Добавляем новую скидку\n if (!discounts.value) {\n discounts.value = [];\n }\n discounts.value.push(discountToSave);\n }\n\n // Закрываем попап\n closeDiscountPopup();\n}\n</script>"],"names":["_useModel"],"mappings":"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"}
@@ -6,10 +6,10 @@ const auth = require("../../../auth/views/store/auth.cjs");
6
6
  const variants_store = require("../../store/variants.store.cjs");
7
7
  const products = require("../../store/products.cjs");
8
8
  const Block = require("../../../../components/Block/Block.vue.cjs");
9
- const Field = require("../../../../components/Field/Field.vue.cjs");
9
+ const Field = require("../../../../components/Field/Field.vue2.cjs");
10
10
  const Button = require("../../../../components/Button/Button.vue.cjs");
11
11
  const Popup = require("../../../../components/Popup/Popup.vue.cjs");
12
- const Select = require("../../../../components/Select/Select.vue2.cjs");
12
+ const Select = require("../../../../components/Select/Select.vue.cjs");
13
13
  const Feed = require("../../../../components/Feed/Feed.vue.cjs");
14
14
  const EditImages = require("../../../../components/EditImages/EditImages.vue2.cjs");
15
15
  const EditIngredients = require("./EditIngredients.vue.cjs");
@@ -22,7 +22,7 @@ const _hoisted_1 = { class: "aspect-1x1 h-3r flex-child-default radius-small o-h
22
22
  const _hoisted_2 = ["src"];
23
23
  const _hoisted_3 = { class: "w-100" };
24
24
  const _hoisted_4 = { class: "flex-nowrap mn-b-nano flex-v-center flex" };
25
- const _hoisted_5 = { class: "p-medium t-medium d-block" };
25
+ const _hoisted_5 = { class: "p-regular t-medium d-block" };
26
26
  const _hoisted_6 = {
27
27
  key: 0,
28
28
  class: "t-small pd-thin mn-l-thin radius-thin bg-light"
@@ -300,7 +300,7 @@ const _sfc_main = {
300
300
  submit: () => copyVariant(variant)
301
301
  }, {
302
302
  default: vue.withCtx(() => [
303
- vue.createVNode(IconDuplicate.default, { class: "i-regular" })
303
+ vue.createVNode(IconDuplicate.default, { class: "i-medium" })
304
304
  ]),
305
305
  _: 2
306
306
  }, 1032, ["submit"]),
@@ -311,7 +311,7 @@ const _sfc_main = {
311
311
  submit: () => openVariantPopup(variant)
312
312
  }, {
313
313
  default: vue.withCtx(() => [
314
- vue.createVNode(IconEdit.default, { class: "i-regular" })
314
+ vue.createVNode(IconEdit.default, { class: "i-medium" })
315
315
  ]),
316
316
  _: 2
317
317
  }, 1032, ["submit"]),
@@ -322,7 +322,7 @@ const _sfc_main = {
322
322
  submit: () => deleteVariant(variant)
323
323
  }, {
324
324
  default: vue.withCtx(() => [
325
- vue.createVNode(IconDelete.default, { class: "i-regular" })
325
+ vue.createVNode(IconDelete.default, { class: "i-medium" })
326
326
  ]),
327
327
  _: 2
328
328
  }, 1032, ["submit"])
@@ -412,7 +412,7 @@ const _sfc_main = {
412
412
  vue.createElementVNode("div", _hoisted_13, [
413
413
  vue.createVNode(IconDelete.default, {
414
414
  onClick: () => currentVariant.attributes.splice(attrIndex, 1),
415
- class: "i-regular"
415
+ class: "i-medium"
416
416
  }, null, 8, ["onClick"])
417
417
  ])
418
418
  ]);
@@ -1 +1 @@
1
- {"version":3,"file":"EditVariants.vue.cjs","sources":["../../../../../../../src/modules/products/components/sections/EditVariants.vue"],"sourcesContent":["<template>\n <Block\n title=\"Variants\"\n placeholder=\"No variants added yet. At least one variant is required.\"\n :actions=\"[{\n label: '+',\n function: () => openVariantPopup()\n }]\"\n >\n <!-- is {{currentVariants}} -->\n <Feed\n v-model:items=\"currentVariants\"\n :store=\"variants\"\n :options=\"{\n product: route.params.product,\n }\"\n :skeleton=\"{\n structure: [\n { block: 'text', size: 'small' },\n { block: 'text', size: 'medium' },\n { block: 'text', size: 'small' }\n ]\n }\"\n :states=\"{\n empty: {\n title: 'No variants',\n description: 'Create your first variant'\n }\n }\"\n >\n <template #default=\"{ items }\">\n <li\n v-for=\"variant in items\"\n :key=\"variant._id\"\n class=\"bg-white radius-small pd-small flex-nowrap flex-v-center flex gap-thin mn-b-thin\"\n >\n <div class=\"aspect-1x1 h-3r flex-child-default radius-small o-hidden\">\n <img\n v-if=\"variant.images?.length > 0\"\n :src=\"(FILE_SERVER_URL || '') + variant.images[0]\"\n alt=\"Variant image\"\n class=\"w-100 h-100 object-fit-cover\"\n />\n <PlaceholderImage v-else class=\"w-100 h-100\" />\n </div>\n \n <div class=\"w-100\">\n <div class=\"flex-nowrap mn-b-nano flex-v-center flex\">\n <p class=\"p-medium t-medium d-block\">{{ variant.name || 'Unnamed variant' }}</p>\n <p v-if=\"variant.status\" class=\"t-small pd-thin mn-l-thin radius-thin bg-light\">{{ variant.status }}</p>\n </div>\n\n <p class=\"t-medium t-transp\">{{ returnCurrency() }}{{ variant.price }} per {{ variant.quantity }}{{ variant.unit }}</p>\n <p v-if=\"variant.ingredients?.length\" class=\"t-small t-transp\">{{ variant.ingredients.length }} ingredients</p>\n \n </div>\n \n <div class=\"flex gap-thin\">\n <Button\n :showSuccess=\"false\"\n :showLoader=\"true\"\n class=\"radius-small pd-small flex-center flex aspect-1x1 bg-light cursor-pointer hover-scale-1\"\n :submit=\"() => copyVariant(variant)\"\n >\n <IconDuplicate class=\"i-regular\" />\n </Button>\n <Button\n :showSuccess=\"false\"\n :showLoader=\"false\"\n class=\"radius-small pd-small flex-center flex aspect-1x1 bg-light cursor-pointer hover-scale-1\"\n :submit=\"() => openVariantPopup(variant)\"\n >\n <IconEdit class=\"i-regular\" />\n </Button>\n <Button\n :showSuccess=\"false\"\n :showLoader=\"true\"\n class=\"radius-small pd-small flex-center flex aspect-1x1 bg-red cursor-pointer hover-scale-1\"\n :submit=\"() => deleteVariant(variant)\"\n >\n <IconDelete class=\"i-regular\" />\n </Button>\n </div>\n </li>\n </template>\n </Feed>\n </Block>\n\n <Popup\n :title=\"editingVariant ? 'Edit Variant' : 'Create Variant'\"\n @close-popup=\"closeVariantPopup\"\n :isPopupOpen=\"isVariantPopupOpen\"\n align=\"center right\"\n class=\"bg-white h-min-100 w-max-50r pd-medium\"\n >\n <div class=\"cols-1 gap-thin o-y-scroll\">\n <!-- Status and Quantity at the top -->\n <div class=\"flex gap-thin\">\n <Select\n v-model:select=\"currentVariant.status\"\n label=\"Status\"\n placeholder=\"Select status\"\n :options=\"['published', 'draft', 'archived']\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n \n <Field \n v-model:field=\"currentVariant.quantity\" \n label=\"Quantity\"\n placeholder=\"Enter quantity\" \n class=\"w-100 bg-light radius-small pd-small\"\n type=\"number\"\n >\n <Select \n v-model:select=\"currentVariant.unit\" \n placeholder=\"Unit\"\n :options=\"['pcs', 'g', 'kg', 'ml', 'l', 'oz']\"\n class=\"pos-relative bg-white gap-small flex flex-column pd-thin radius-thin\"\n />\n </Field>\n </div>\n\n <!-- Price and Cost -->\n <div class=\"flex gap-thin\">\n <Field\n v-model:field=\"currentVariant.price\"\n label=\"Price\"\n type=\"number\"\n placeholder=\"Price\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n \n <Field\n v-model:field=\"currentVariant.cost\"\n label=\"Cost\"\n type=\"number\"\n placeholder=\"Cost\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n </div>\n \n <!-- Attributes Section -->\n <div class=\"t-medium mn-t-small mn-b-small\">Attributes</div>\n <div \n class=\"gap-micro flex-nowrap flex mn-b-small\" \n v-for=\"(attr, attrIndex) in currentVariant.attributes\" \n :key=\"attrIndex\"\n > \n <Field\n v-model:field=\"attr.name\"\n placeholder=\"Attribute Name\"\n class=\"w-100 bg-light radius-small pd-small\"\n /> \n <Field\n v-model:field=\"attr.value\"\n placeholder=\"Attribute Value\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n <div class=\"radius-small h-100 flex-center flex-child-default flex aspect-1x1 bg-red cursor-pointer hover-scale-1\">\n <IconDelete \n @click=\"() => currentVariant.attributes.splice(attrIndex, 1)\" \n class=\"i-regular\"\n />\n </div>\n </div>\n\n <Button\n class=\"bg-light w-100\"\n :showSuccess=\"false\"\n :showLoader=\"false\"\n @click=\"addAttribute\"\n >\n Add Attribute\n </Button>\n\n <!-- SKU and Name - auto-generated -->\n <Field\n v-model:field=\"currentVariant.sku\"\n label=\"SKU\"\n placeholder=\"SKU\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n\n <Field\n v-model:field=\"currentVariant.name\"\n label=\"Name\"\n placeholder=\"Variant Name\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n\n <Field\n v-model:field=\"currentVariant.description\"\n label=\"Description\"\n placeholder=\"Enter variant description\"\n class=\"w-100 bg-light radius-small pd-small\"\n style=\"resize: vertical\"\n type=\"textarea\"\n />\n\n <!-- Ingredients Section -->\n <div class=\"mn-t-medium\">\n <EditIngredients \n v-model:ingredients=\"currentVariant.ingredients\"\n />\n </div>\n\n <!-- Images Section -->\n <div class=\"t-medium mn-t-small mn-b-small\">Images</div>\n <EditImages\n :images=\"currentVariant.images || []\"\n :uploadPath=\"'variants'\"\n class=\"bg-light pd-small radius-small\"\n @update:images=\"(newImages) => { currentVariant.images = newImages }\"\n />\n \n <!-- Action Buttons -->\n <div class=\"flex gap-thin mn-t-medium\">\n <Button\n :showSuccess=\"false\"\n :showLoader=\"false\"\n class=\"bg-red t-white w-100\"\n :submit=\"closeVariantPopup\"\n >\n Cancel\n </Button>\n <Button\n class=\"bg-main w-100\"\n :submit=\"saveVariant\"\n >\n {{ editingVariant ? 'Update Variant' : 'Create Variant' }}\n </Button>\n </div>\n </div>\n </Popup>\n</template>\n\n<script setup>\nimport { ref, reactive, computed, watch } from 'vue';\nimport { useRoute } from 'vue-router';\n\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\nimport variants from '@martyrs/src/modules/products/store/variants.store.js';\nimport * as products from '@martyrs/src/modules/products/store/products.js';\n\n// Components\nimport Block from '@martyrs/src/components/Block/Block.vue';\nimport Field from '@martyrs/src/components/Field/Field.vue';\nimport Button from '@martyrs/src/components/Button/Button.vue';\nimport Popup from '@martyrs/src/components/Popup/Popup.vue';\nimport Select from '@martyrs/src/components/Select/Select.vue';\nimport Feed from '@martyrs/src/components/Feed/Feed.vue';\nimport EditImages from '@martyrs/src/components/EditImages/EditImages.vue';\nimport EditIngredients from '@martyrs/src/modules/products/components/sections/EditIngredients.vue';\n\n// Icons\nimport PlaceholderImage from '@martyrs/src/modules/icons/placeholders/PlaceholderImage.vue';\nimport IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue';\nimport IconDelete from '@martyrs/src/modules/icons/navigation/IconDelete.vue';\nimport IconDuplicate from '@martyrs/src/modules/icons/actions/IconDuplicate.vue';\nimport { useGlobalMixins } from '@martyrs/src/modules/globals/views/mixins/mixins.js';\n\nconst route = useRoute();\nconst { returnCurrency } = useGlobalMixins();\n\nconst productId = computed(() => route.params.product);\n\nconst productOwner = computed(() => {\n return products?.state?.current?.owner;\n});\n\n// Локальное состояние\nconst isVariantPopupOpen = ref(false);\nconst editingVariant = ref(null);\nconst currentVariants = ref([]);\n\n// Функция генерации SKU\nfunction generateSKU() {\n const timestamp = Date.now().toString(36);\n const random = Math.random().toString(36).substring(2, 5);\n return `VAR-${timestamp}-${random}`.toUpperCase();\n}\n\n// Функция генерации имени из атрибутов\nfunction generateNameFromAttributes() {\n if (currentVariant.attributes.length > 0) {\n const validAttributes = currentVariant.attributes\n .filter(attr => attr.name && attr.value)\n .map(attr => `${attr.value}`)\n .join(' ');\n \n if (validAttributes) {\n return validAttributes;\n }\n }\n \n // Если нет атрибутов, используем название продукта и количество\n const productName = products?.state?.current?.name || 'Product';\n return `${productName} ${currentVariant.quantity}${currentVariant.unit}`;\n}\n\n// Реактивный объект для текущего варианта\nconst currentVariant = reactive({\n name: '',\n description: '',\n sku: '',\n images: [],\n price: 0,\n cost: 0,\n quantity: 1,\n unit: 'pcs',\n status: 'published',\n ingredients: [],\n attributes: [],\n owner: null,\n creator: null,\n product: null\n});\n\n// Следим за изменениями атрибутов, количества и единиц для автогенерации имени\nwatch(\n () => [currentVariant.attributes, currentVariant.quantity, currentVariant.unit],\n () => {\n if (!editingVariant.value || !currentVariant.name) {\n currentVariant.name = generateNameFromAttributes();\n }\n },\n { deep: true }\n);\n\n// Функция открытия попапа варианта\nfunction openVariantPopup(variant = null) {\n editingVariant.value = variant;\n \n if (variant) {\n // Обновляем реактивный объект через Vue реактивность\n currentVariant.name = variant.name || '';\n currentVariant.description = variant.description || '';\n currentVariant.sku = variant.sku || '';\n currentVariant.images = [...(variant.images || [])];\n currentVariant.price = variant.price || 0;\n currentVariant.cost = variant.cost || 0;\n currentVariant.quantity = variant.quantity || 1;\n currentVariant.unit = variant.unit || 'pcs';\n currentVariant.status = variant.status || 'published';\n currentVariant.ingredients = [...(variant.ingredients || [])];\n currentVariant.attributes = (variant.attributes || []).map(attr => ({ ...attr }));\n currentVariant.owner = variant.owner;\n currentVariant.creator = variant.creator;\n currentVariant.product = variant.product;\n } else {\n // Для нового варианта генерируем SKU и устанавливаем только нужные поля\n currentVariant.sku = generateSKU();\n currentVariant.owner = {\n target: route.params._id || auth.state.user._id,\n type: route.params._id ? 'organization' : 'user'\n };\n currentVariant.creator = {\n target: auth.state.user._id,\n type: 'user',\n hidden: false\n };\n currentVariant.product = productId.value;\n \n // Генерируем имя после установки всех полей\n currentVariant.name = generateNameFromAttributes();\n }\n \n isVariantPopupOpen.value = true;\n}\n\nfunction closeVariantPopup() {\n isVariantPopupOpen.value = false;\n editingVariant.value = null;\n \n // Сбрасываем значения к дефолтным\n currentVariant.name = '';\n currentVariant.description = '';\n currentVariant.sku = '';\n currentVariant.images = [];\n currentVariant.price = 0;\n currentVariant.cost = 0;\n currentVariant.quantity = 1;\n currentVariant.unit = 'pcs';\n currentVariant.status = 'published';\n currentVariant.ingredients = [];\n currentVariant.attributes = [];\n currentVariant.owner = null;\n currentVariant.creator = null;\n currentVariant.product = null;\n}\n\nfunction addAttribute() {\n currentVariant.attributes.push({ name: '', value: '' });\n}\n\nasync function copyVariant(variant) {\n const variantCopy = {\n name: `${variant.name} (Copy)`,\n description: variant.description || '',\n sku: generateSKU(), // Генерируем новый SKU для копии\n images: [...(variant.images || [])],\n price: variant.price || 0,\n cost: variant.cost || 0,\n quantity: variant.quantity || 1,\n unit: variant.unit || 'pcs',\n status: variant.status || 'published',\n ingredients: (variant.ingredients || []).map(ing => ({ ...ing })),\n attributes: (variant.attributes || []).map(attr => ({ ...attr })),\n owner: {\n target: route.params._id || auth.state.user._id,\n type: route.params._id ? 'organization' : 'user'\n },\n creator: {\n target: auth.state.user._id,\n type: 'user',\n hidden: false\n },\n product: productId.value\n };\n \n try {\n const created = await variants.create(variantCopy);\n variants.addItem(created, currentVariants.value);\n } catch (error) {\n console.error('Error copying variant:', error);\n }\n}\n\nasync function deleteVariant(variant) {\n if (confirm('Are you sure you want to delete this variant?')) {\n try {\n console.log(variant)\n await variants.delete(variant);\n variants.removeItem(variant, currentVariants.value);\n } catch (error) {\n console.error('Error deleting variant:', error);\n }\n }\n}\n\nasync function saveVariant() {\n if (!currentVariant.name) {\n currentVariant.name = generateNameFromAttributes();\n }\n \n if (!currentVariant.sku) {\n currentVariant.sku = generateSKU();\n }\n\n const variantToSave = {\n name: currentVariant.name,\n description: currentVariant.description,\n sku: currentVariant.sku,\n images: [...currentVariant.images],\n price: parseFloat(currentVariant.price) || 0,\n cost: parseFloat(currentVariant.cost) || 0,\n quantity: parseInt(currentVariant.quantity) || 1,\n unit: currentVariant.unit || 'pcs',\n status: currentVariant.status,\n ingredients: currentVariant.ingredients.map(ing => ({ ...ing })),\n attributes: currentVariant.attributes.filter(attr => attr.name || attr.value),\n product: currentVariant.product\n };\n\n // Добавляем owner и creator только при создании нового варианта\n if (!editingVariant.value) {\n variantToSave.owner = {\n target: route.params._id || auth.state.user._id,\n type: route.params._id ? 'organization' : 'user'\n };\n variantToSave.creator = {\n target: auth.state.user._id,\n type: 'user',\n hidden: false\n };\n }\n\n try {\n if (editingVariant.value) {\n // Обновление существующего варианта\n variantToSave._id = editingVariant.value._id;\n const updated = await variants.update(variantToSave);\n variants.updateItem(updated, currentVariants.value);\n } else {\n // Создание нового варианта\n const created = await variants.create(variantToSave);\n variants.addItem(created, currentVariants.value);\n }\n \n closeVariantPopup();\n } catch (error) {\n console.error('Error saving variant:', error);\n throw error;\n }\n}\n</script>"],"names":["useRoute","useGlobalMixins","computed","products?.state","ref","reactive","watch","auth.state","variants"],"mappings":"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"}
1
+ {"version":3,"file":"EditVariants.vue.cjs","sources":["../../../../../../../src/modules/products/components/sections/EditVariants.vue"],"sourcesContent":["<template>\n <Block\n title=\"Variants\"\n placeholder=\"No variants added yet. At least one variant is required.\"\n :actions=\"[{\n label: '+',\n function: () => openVariantPopup()\n }]\"\n >\n <!-- is {{currentVariants}} -->\n <Feed\n v-model:items=\"currentVariants\"\n :store=\"variants\"\n :options=\"{\n product: route.params.product,\n }\"\n :skeleton=\"{\n structure: [\n { block: 'text', size: 'small' },\n { block: 'text', size: 'medium' },\n { block: 'text', size: 'small' }\n ]\n }\"\n :states=\"{\n empty: {\n title: 'No variants',\n description: 'Create your first variant'\n }\n }\"\n >\n <template #default=\"{ items }\">\n <li\n v-for=\"variant in items\"\n :key=\"variant._id\"\n class=\"bg-white radius-small pd-small flex-nowrap flex-v-center flex gap-thin mn-b-thin\"\n >\n <div class=\"aspect-1x1 h-3r flex-child-default radius-small o-hidden\">\n <img\n v-if=\"variant.images?.length > 0\"\n :src=\"(FILE_SERVER_URL || '') + variant.images[0]\"\n alt=\"Variant image\"\n class=\"w-100 h-100 object-fit-cover\"\n />\n <PlaceholderImage v-else class=\"w-100 h-100\" />\n </div>\n \n <div class=\"w-100\">\n <div class=\"flex-nowrap mn-b-nano flex-v-center flex\">\n <p class=\"p-regular t-medium d-block\">{{ variant.name || 'Unnamed variant' }}</p>\n <p v-if=\"variant.status\" class=\"t-small pd-thin mn-l-thin radius-thin bg-light\">{{ variant.status }}</p>\n </div>\n\n <p class=\"t-medium t-transp\">{{ returnCurrency() }}{{ variant.price }} per {{ variant.quantity }}{{ variant.unit }}</p>\n <p v-if=\"variant.ingredients?.length\" class=\"t-small t-transp\">{{ variant.ingredients.length }} ingredients</p>\n \n </div>\n \n <div class=\"flex gap-thin\">\n <Button\n :showSuccess=\"false\"\n :showLoader=\"true\"\n class=\"radius-small pd-small flex-center flex aspect-1x1 bg-light cursor-pointer hover-scale-1\"\n :submit=\"() => copyVariant(variant)\"\n >\n <IconDuplicate class=\"i-medium\" />\n </Button>\n <Button\n :showSuccess=\"false\"\n :showLoader=\"false\"\n class=\"radius-small pd-small flex-center flex aspect-1x1 bg-light cursor-pointer hover-scale-1\"\n :submit=\"() => openVariantPopup(variant)\"\n >\n <IconEdit class=\"i-medium\" />\n </Button>\n <Button\n :showSuccess=\"false\"\n :showLoader=\"true\"\n class=\"radius-small pd-small flex-center flex aspect-1x1 bg-red cursor-pointer hover-scale-1\"\n :submit=\"() => deleteVariant(variant)\"\n >\n <IconDelete class=\"i-medium\" />\n </Button>\n </div>\n </li>\n </template>\n </Feed>\n </Block>\n\n <Popup\n :title=\"editingVariant ? 'Edit Variant' : 'Create Variant'\"\n @close-popup=\"closeVariantPopup\"\n :isPopupOpen=\"isVariantPopupOpen\"\n align=\"center right\"\n class=\"bg-white h-min-100 w-max-50r pd-medium\"\n >\n <div class=\"cols-1 gap-thin o-y-scroll\">\n <!-- Status and Quantity at the top -->\n <div class=\"flex gap-thin\">\n <Select\n v-model:select=\"currentVariant.status\"\n label=\"Status\"\n placeholder=\"Select status\"\n :options=\"['published', 'draft', 'archived']\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n \n <Field \n v-model:field=\"currentVariant.quantity\" \n label=\"Quantity\"\n placeholder=\"Enter quantity\" \n class=\"w-100 bg-light radius-small pd-small\"\n type=\"number\"\n >\n <Select \n v-model:select=\"currentVariant.unit\" \n placeholder=\"Unit\"\n :options=\"['pcs', 'g', 'kg', 'ml', 'l', 'oz']\"\n class=\"pos-relative bg-white gap-small flex flex-column pd-thin radius-thin\"\n />\n </Field>\n </div>\n\n <!-- Price and Cost -->\n <div class=\"flex gap-thin\">\n <Field\n v-model:field=\"currentVariant.price\"\n label=\"Price\"\n type=\"number\"\n placeholder=\"Price\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n \n <Field\n v-model:field=\"currentVariant.cost\"\n label=\"Cost\"\n type=\"number\"\n placeholder=\"Cost\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n </div>\n \n <!-- Attributes Section -->\n <div class=\"t-medium mn-t-small mn-b-small\">Attributes</div>\n <div \n class=\"gap-micro flex-nowrap flex mn-b-small\" \n v-for=\"(attr, attrIndex) in currentVariant.attributes\" \n :key=\"attrIndex\"\n > \n <Field\n v-model:field=\"attr.name\"\n placeholder=\"Attribute Name\"\n class=\"w-100 bg-light radius-small pd-small\"\n /> \n <Field\n v-model:field=\"attr.value\"\n placeholder=\"Attribute Value\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n <div class=\"radius-small h-100 flex-center flex-child-default flex aspect-1x1 bg-red cursor-pointer hover-scale-1\">\n <IconDelete \n @click=\"() => currentVariant.attributes.splice(attrIndex, 1)\" \n class=\"i-medium\"\n />\n </div>\n </div>\n\n <Button\n class=\"bg-light w-100\"\n :showSuccess=\"false\"\n :showLoader=\"false\"\n @click=\"addAttribute\"\n >\n Add Attribute\n </Button>\n\n <!-- SKU and Name - auto-generated -->\n <Field\n v-model:field=\"currentVariant.sku\"\n label=\"SKU\"\n placeholder=\"SKU\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n\n <Field\n v-model:field=\"currentVariant.name\"\n label=\"Name\"\n placeholder=\"Variant Name\"\n class=\"w-100 bg-light radius-small pd-small\"\n />\n\n <Field\n v-model:field=\"currentVariant.description\"\n label=\"Description\"\n placeholder=\"Enter variant description\"\n class=\"w-100 bg-light radius-small pd-small\"\n style=\"resize: vertical\"\n type=\"textarea\"\n />\n\n <!-- Ingredients Section -->\n <div class=\"mn-t-medium\">\n <EditIngredients \n v-model:ingredients=\"currentVariant.ingredients\"\n />\n </div>\n\n <!-- Images Section -->\n <div class=\"t-medium mn-t-small mn-b-small\">Images</div>\n <EditImages\n :images=\"currentVariant.images || []\"\n :uploadPath=\"'variants'\"\n class=\"bg-light pd-small radius-small\"\n @update:images=\"(newImages) => { currentVariant.images = newImages }\"\n />\n \n <!-- Action Buttons -->\n <div class=\"flex gap-thin mn-t-medium\">\n <Button\n :showSuccess=\"false\"\n :showLoader=\"false\"\n class=\"bg-red t-white w-100\"\n :submit=\"closeVariantPopup\"\n >\n Cancel\n </Button>\n <Button\n class=\"bg-main w-100\"\n :submit=\"saveVariant\"\n >\n {{ editingVariant ? 'Update Variant' : 'Create Variant' }}\n </Button>\n </div>\n </div>\n </Popup>\n</template>\n\n<script setup>\nimport { ref, reactive, computed, watch } from 'vue';\nimport { useRoute } from 'vue-router';\n\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\nimport variants from '@martyrs/src/modules/products/store/variants.store.js';\nimport * as products from '@martyrs/src/modules/products/store/products.js';\n\n// Components\nimport Block from '@martyrs/src/components/Block/Block.vue';\nimport Field from '@martyrs/src/components/Field/Field.vue';\nimport Button from '@martyrs/src/components/Button/Button.vue';\nimport Popup from '@martyrs/src/components/Popup/Popup.vue';\nimport Select from '@martyrs/src/components/Select/Select.vue';\nimport Feed from '@martyrs/src/components/Feed/Feed.vue';\nimport EditImages from '@martyrs/src/components/EditImages/EditImages.vue';\nimport EditIngredients from '@martyrs/src/modules/products/components/sections/EditIngredients.vue';\n\n// Icons\nimport PlaceholderImage from '@martyrs/src/modules/icons/placeholders/PlaceholderImage.vue';\nimport IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue';\nimport IconDelete from '@martyrs/src/modules/icons/navigation/IconDelete.vue';\nimport IconDuplicate from '@martyrs/src/modules/icons/actions/IconDuplicate.vue';\nimport { useGlobalMixins } from '@martyrs/src/modules/globals/views/mixins/mixins.js';\n\nconst route = useRoute();\nconst { returnCurrency } = useGlobalMixins();\n\nconst productId = computed(() => route.params.product);\n\nconst productOwner = computed(() => {\n return products?.state?.current?.owner;\n});\n\n// Локальное состояние\nconst isVariantPopupOpen = ref(false);\nconst editingVariant = ref(null);\nconst currentVariants = ref([]);\n\n// Функция генерации SKU\nfunction generateSKU() {\n const timestamp = Date.now().toString(36);\n const random = Math.random().toString(36).substring(2, 5);\n return `VAR-${timestamp}-${random}`.toUpperCase();\n}\n\n// Функция генерации имени из атрибутов\nfunction generateNameFromAttributes() {\n if (currentVariant.attributes.length > 0) {\n const validAttributes = currentVariant.attributes\n .filter(attr => attr.name && attr.value)\n .map(attr => `${attr.value}`)\n .join(' ');\n \n if (validAttributes) {\n return validAttributes;\n }\n }\n \n // Если нет атрибутов, используем название продукта и количество\n const productName = products?.state?.current?.name || 'Product';\n return `${productName} ${currentVariant.quantity}${currentVariant.unit}`;\n}\n\n// Реактивный объект для текущего варианта\nconst currentVariant = reactive({\n name: '',\n description: '',\n sku: '',\n images: [],\n price: 0,\n cost: 0,\n quantity: 1,\n unit: 'pcs',\n status: 'published',\n ingredients: [],\n attributes: [],\n owner: null,\n creator: null,\n product: null\n});\n\n// Следим за изменениями атрибутов, количества и единиц для автогенерации имени\nwatch(\n () => [currentVariant.attributes, currentVariant.quantity, currentVariant.unit],\n () => {\n if (!editingVariant.value || !currentVariant.name) {\n currentVariant.name = generateNameFromAttributes();\n }\n },\n { deep: true }\n);\n\n// Функция открытия попапа варианта\nfunction openVariantPopup(variant = null) {\n editingVariant.value = variant;\n \n if (variant) {\n // Обновляем реактивный объект через Vue реактивность\n currentVariant.name = variant.name || '';\n currentVariant.description = variant.description || '';\n currentVariant.sku = variant.sku || '';\n currentVariant.images = [...(variant.images || [])];\n currentVariant.price = variant.price || 0;\n currentVariant.cost = variant.cost || 0;\n currentVariant.quantity = variant.quantity || 1;\n currentVariant.unit = variant.unit || 'pcs';\n currentVariant.status = variant.status || 'published';\n currentVariant.ingredients = [...(variant.ingredients || [])];\n currentVariant.attributes = (variant.attributes || []).map(attr => ({ ...attr }));\n currentVariant.owner = variant.owner;\n currentVariant.creator = variant.creator;\n currentVariant.product = variant.product;\n } else {\n // Для нового варианта генерируем SKU и устанавливаем только нужные поля\n currentVariant.sku = generateSKU();\n currentVariant.owner = {\n target: route.params._id || auth.state.user._id,\n type: route.params._id ? 'organization' : 'user'\n };\n currentVariant.creator = {\n target: auth.state.user._id,\n type: 'user',\n hidden: false\n };\n currentVariant.product = productId.value;\n \n // Генерируем имя после установки всех полей\n currentVariant.name = generateNameFromAttributes();\n }\n \n isVariantPopupOpen.value = true;\n}\n\nfunction closeVariantPopup() {\n isVariantPopupOpen.value = false;\n editingVariant.value = null;\n \n // Сбрасываем значения к дефолтным\n currentVariant.name = '';\n currentVariant.description = '';\n currentVariant.sku = '';\n currentVariant.images = [];\n currentVariant.price = 0;\n currentVariant.cost = 0;\n currentVariant.quantity = 1;\n currentVariant.unit = 'pcs';\n currentVariant.status = 'published';\n currentVariant.ingredients = [];\n currentVariant.attributes = [];\n currentVariant.owner = null;\n currentVariant.creator = null;\n currentVariant.product = null;\n}\n\nfunction addAttribute() {\n currentVariant.attributes.push({ name: '', value: '' });\n}\n\nasync function copyVariant(variant) {\n const variantCopy = {\n name: `${variant.name} (Copy)`,\n description: variant.description || '',\n sku: generateSKU(), // Генерируем новый SKU для копии\n images: [...(variant.images || [])],\n price: variant.price || 0,\n cost: variant.cost || 0,\n quantity: variant.quantity || 1,\n unit: variant.unit || 'pcs',\n status: variant.status || 'published',\n ingredients: (variant.ingredients || []).map(ing => ({ ...ing })),\n attributes: (variant.attributes || []).map(attr => ({ ...attr })),\n owner: {\n target: route.params._id || auth.state.user._id,\n type: route.params._id ? 'organization' : 'user'\n },\n creator: {\n target: auth.state.user._id,\n type: 'user',\n hidden: false\n },\n product: productId.value\n };\n \n try {\n const created = await variants.create(variantCopy);\n variants.addItem(created, currentVariants.value);\n } catch (error) {\n console.error('Error copying variant:', error);\n }\n}\n\nasync function deleteVariant(variant) {\n if (confirm('Are you sure you want to delete this variant?')) {\n try {\n console.log(variant)\n await variants.delete(variant);\n variants.removeItem(variant, currentVariants.value);\n } catch (error) {\n console.error('Error deleting variant:', error);\n }\n }\n}\n\nasync function saveVariant() {\n if (!currentVariant.name) {\n currentVariant.name = generateNameFromAttributes();\n }\n \n if (!currentVariant.sku) {\n currentVariant.sku = generateSKU();\n }\n\n const variantToSave = {\n name: currentVariant.name,\n description: currentVariant.description,\n sku: currentVariant.sku,\n images: [...currentVariant.images],\n price: parseFloat(currentVariant.price) || 0,\n cost: parseFloat(currentVariant.cost) || 0,\n quantity: parseInt(currentVariant.quantity) || 1,\n unit: currentVariant.unit || 'pcs',\n status: currentVariant.status,\n ingredients: currentVariant.ingredients.map(ing => ({ ...ing })),\n attributes: currentVariant.attributes.filter(attr => attr.name || attr.value),\n product: currentVariant.product\n };\n\n // Добавляем owner и creator только при создании нового варианта\n if (!editingVariant.value) {\n variantToSave.owner = {\n target: route.params._id || auth.state.user._id,\n type: route.params._id ? 'organization' : 'user'\n };\n variantToSave.creator = {\n target: auth.state.user._id,\n type: 'user',\n hidden: false\n };\n }\n\n try {\n if (editingVariant.value) {\n // Обновление существующего варианта\n variantToSave._id = editingVariant.value._id;\n const updated = await variants.update(variantToSave);\n variants.updateItem(updated, currentVariants.value);\n } else {\n // Создание нового варианта\n const created = await variants.create(variantToSave);\n variants.addItem(created, currentVariants.value);\n }\n \n closeVariantPopup();\n } catch (error) {\n console.error('Error saving variant:', error);\n throw error;\n }\n}\n</script>"],"names":["useRoute","useGlobalMixins","computed","products?.state","ref","reactive","watch","auth.state","variants"],"mappings":"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"}
@@ -4,10 +4,10 @@ import { state as state$1 } from "../../../auth/views/store/auth.js";
4
4
  import variantsStore from "../../store/variants.store.js";
5
5
  import { state } from "../../store/products.js";
6
6
  import _sfc_main$1 from "../../../../components/Block/Block.vue.js";
7
- import Field from "../../../../components/Field/Field.vue.js";
7
+ import Field from "../../../../components/Field/Field.vue2.js";
8
8
  import _sfc_main$3 from "../../../../components/Button/Button.vue.js";
9
9
  import _sfc_main$7 from "../../../../components/Popup/Popup.vue.js";
10
- import Select from "../../../../components/Select/Select.vue2.js";
10
+ import Select from "../../../../components/Select/Select.vue.js";
11
11
  import _sfc_main$2 from "../../../../components/Feed/Feed.vue.js";
12
12
  import _sfc_main$9 from "../../../../components/EditImages/EditImages.vue2.js";
13
13
  import _sfc_main$8 from "./EditIngredients.vue.js";
@@ -20,7 +20,7 @@ const _hoisted_1 = { class: "aspect-1x1 h-3r flex-child-default radius-small o-h
20
20
  const _hoisted_2 = ["src"];
21
21
  const _hoisted_3 = { class: "w-100" };
22
22
  const _hoisted_4 = { class: "flex-nowrap mn-b-nano flex-v-center flex" };
23
- const _hoisted_5 = { class: "p-medium t-medium d-block" };
23
+ const _hoisted_5 = { class: "p-regular t-medium d-block" };
24
24
  const _hoisted_6 = {
25
25
  key: 0,
26
26
  class: "t-small pd-thin mn-l-thin radius-thin bg-light"
@@ -298,7 +298,7 @@ const _sfc_main = {
298
298
  submit: () => copyVariant(variant)
299
299
  }, {
300
300
  default: withCtx(() => [
301
- createVNode(_sfc_main$4, { class: "i-regular" })
301
+ createVNode(_sfc_main$4, { class: "i-medium" })
302
302
  ]),
303
303
  _: 2
304
304
  }, 1032, ["submit"]),
@@ -309,7 +309,7 @@ const _sfc_main = {
309
309
  submit: () => openVariantPopup(variant)
310
310
  }, {
311
311
  default: withCtx(() => [
312
- createVNode(_sfc_main$5, { class: "i-regular" })
312
+ createVNode(_sfc_main$5, { class: "i-medium" })
313
313
  ]),
314
314
  _: 2
315
315
  }, 1032, ["submit"]),
@@ -320,7 +320,7 @@ const _sfc_main = {
320
320
  submit: () => deleteVariant(variant)
321
321
  }, {
322
322
  default: withCtx(() => [
323
- createVNode(_sfc_main$6, { class: "i-regular" })
323
+ createVNode(_sfc_main$6, { class: "i-medium" })
324
324
  ]),
325
325
  _: 2
326
326
  }, 1032, ["submit"])
@@ -410,7 +410,7 @@ const _sfc_main = {
410
410
  createElementVNode("div", _hoisted_13, [
411
411
  createVNode(_sfc_main$6, {
412
412
  onClick: () => currentVariant.attributes.splice(attrIndex, 1),
413
- class: "i-regular"
413
+ class: "i-medium"
414
414
  }, null, 8, ["onClick"])
415
415
  ])
416
416
  ]);