@ozdao/martyrs 0.2.543 → 0.2.544

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 (396) hide show
  1. package/dist/builder.cjs +10 -2
  2. package/dist/builder.js +10 -2
  3. package/dist/{main-BNdv8Ji-.cjs → main-8f945Ngn.cjs} +6 -6
  4. package/dist/{main-DUwlesGq.js → main-d9n_ibdE.js} +1065 -1065
  5. package/dist/martyrs/src/components/Button/{Button.vue2.cjs → Button.vue.cjs} +2 -2
  6. package/dist/martyrs/src/components/Button/{Button.vue2.js.map → Button.vue.cjs.map} +1 -1
  7. package/dist/martyrs/src/components/Button/{Button.vue2.js → Button.vue.js} +2 -2
  8. package/dist/martyrs/src/components/Button/Button.vue.js.map +1 -0
  9. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.cjs → Dropdown.vue.cjs} +2 -2
  10. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.js.map → Dropdown.vue.cjs.map} +1 -1
  11. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.js → Dropdown.vue.js} +2 -2
  12. package/dist/martyrs/src/components/Dropdown/Dropdown.vue.js.map +1 -0
  13. package/dist/martyrs/src/components/EditImages/EditImages.vue.cjs +0 -93
  14. package/dist/martyrs/src/components/EditImages/EditImages.vue.cjs.map +1 -1
  15. package/dist/martyrs/src/components/EditImages/EditImages.vue.js +1 -94
  16. package/dist/martyrs/src/components/EditImages/EditImages.vue.js.map +1 -1
  17. package/dist/martyrs/src/components/EditImages/EditImages.vue2.cjs +93 -0
  18. package/dist/martyrs/src/components/EditImages/EditImages.vue2.cjs.map +1 -1
  19. package/dist/martyrs/src/components/EditImages/EditImages.vue2.js +94 -1
  20. package/dist/martyrs/src/components/EditImages/EditImages.vue2.js.map +1 -1
  21. package/dist/martyrs/src/components/Feed/{Feed.vue.cjs → Feed.vue2.cjs} +4 -4
  22. package/dist/martyrs/src/components/Feed/Feed.vue2.cjs.map +1 -0
  23. package/dist/martyrs/src/components/Feed/{Feed.vue.js → Feed.vue2.js} +4 -4
  24. package/dist/martyrs/src/components/Feed/{Feed.vue.cjs.map → Feed.vue2.js.map} +1 -1
  25. package/dist/martyrs/src/components/Field/{Field.vue.cjs → Field.vue2.cjs} +2 -2
  26. package/dist/martyrs/src/components/Field/Field.vue2.cjs.map +1 -0
  27. package/dist/martyrs/src/components/Field/{Field.vue.js → Field.vue2.js} +2 -2
  28. package/dist/martyrs/src/components/Field/{Field.vue.cjs.map → Field.vue2.js.map} +1 -1
  29. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.cjs +2 -2
  30. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +2 -2
  31. package/dist/martyrs/src/components/FieldTags/{BlockTags.vue.cjs → BlockTags.vue2.cjs} +2 -2
  32. package/dist/martyrs/src/components/FieldTags/BlockTags.vue2.cjs.map +1 -0
  33. package/dist/martyrs/src/components/FieldTags/{BlockTags.vue.js → BlockTags.vue2.js} +2 -2
  34. package/dist/martyrs/src/components/FieldTags/{BlockTags.vue.cjs.map → BlockTags.vue2.js.map} +1 -1
  35. package/dist/martyrs/src/components/Menu/{Menu.vue2.cjs → Menu.vue.cjs} +2 -2
  36. package/dist/martyrs/src/components/Menu/Menu.vue.cjs.map +1 -0
  37. package/dist/martyrs/src/components/Menu/{Menu.vue2.js → Menu.vue.js} +2 -2
  38. package/dist/martyrs/src/components/Menu/Menu.vue.js.map +1 -0
  39. package/dist/martyrs/src/components/Spoiler/{Spoiler.vue.cjs → Spoiler.vue2.cjs} +2 -2
  40. package/dist/martyrs/src/components/Spoiler/Spoiler.vue2.cjs.map +1 -0
  41. package/dist/martyrs/src/components/Spoiler/{Spoiler.vue.js → Spoiler.vue2.js} +2 -2
  42. package/dist/martyrs/src/components/Spoiler/{Spoiler.vue.cjs.map → Spoiler.vue2.js.map} +1 -1
  43. package/dist/martyrs/src/components/Tab/{Tab.vue.cjs → Tab.vue2.cjs} +2 -2
  44. package/dist/martyrs/src/components/Tab/Tab.vue2.cjs.map +1 -0
  45. package/dist/martyrs/src/components/Tab/{Tab.vue.js → Tab.vue2.js} +2 -2
  46. package/dist/martyrs/src/components/Tab/{Tab.vue.cjs.map → Tab.vue2.js.map} +1 -1
  47. package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.cjs +1 -1
  48. package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.js +1 -1
  49. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs +3 -3
  50. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +3 -3
  51. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +3 -3
  52. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +3 -3
  53. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +4 -4
  54. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +4 -4
  55. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.cjs +2 -2
  56. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js +2 -2
  57. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.cjs +1 -1
  58. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +1 -1
  59. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.cjs +2 -2
  60. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +2 -2
  61. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.cjs +3 -3
  62. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +3 -3
  63. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs +3 -3
  64. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +3 -3
  65. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs +3 -3
  66. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +3 -3
  67. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.cjs +2 -2
  68. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +2 -2
  69. package/dist/martyrs/src/modules/backoffice/components/pages/Dashboard.vue.cjs +1 -1
  70. package/dist/martyrs/src/modules/backoffice/components/pages/Dashboard.vue.js +1 -1
  71. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.cjs +1 -1
  72. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +1 -1
  73. package/dist/martyrs/src/modules/community/components/pages/Blog.vue.cjs +1 -1
  74. package/dist/martyrs/src/modules/community/components/pages/Blog.vue.js +1 -1
  75. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs +1 -1
  76. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +1 -1
  77. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +4 -4
  78. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +4 -4
  79. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.cjs +1 -1
  80. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.js +1 -1
  81. package/dist/martyrs/src/modules/constructor/components/elements/Card.vue.cjs +1 -1
  82. package/dist/martyrs/src/modules/constructor/components/elements/Card.vue.js +1 -1
  83. package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.cjs +1 -1
  84. package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.js +1 -1
  85. package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.cjs +1 -1
  86. package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.js +1 -1
  87. package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.cjs +1 -1
  88. package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.js +1 -1
  89. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +5 -5
  90. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +5 -5
  91. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs +3 -3
  92. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +3 -3
  93. package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +8 -6
  94. package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs.map +1 -1
  95. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +8 -6
  96. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js.map +1 -1
  97. package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs +1 -1
  98. package/dist/martyrs/src/modules/events/components/pages/Events.vue.js +1 -1
  99. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.cjs +2 -2
  100. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js +2 -2
  101. package/dist/martyrs/src/modules/events/components/pages/EventsSearch.vue.cjs +1 -1
  102. package/dist/martyrs/src/modules/events/components/pages/EventsSearch.vue.js +1 -1
  103. package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.cjs +1 -1
  104. package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.js +1 -1
  105. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +5 -5
  106. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +5 -5
  107. package/dist/martyrs/src/modules/globals/views/classes/globals.app.cjs +38 -30
  108. package/dist/martyrs/src/modules/globals/views/classes/globals.app.cjs.map +1 -1
  109. package/dist/martyrs/src/modules/globals/views/classes/globals.app.js +39 -31
  110. package/dist/martyrs/src/modules/globals/views/classes/globals.app.js.map +1 -1
  111. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockMultiselect.vue.cjs +1 -1
  112. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockMultiselect.vue.js +1 -1
  113. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue.cjs +1 -1
  114. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue.js +1 -1
  115. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +2 -2
  116. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +2 -2
  117. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupAuth.vue.cjs +1 -1
  118. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupAuth.vue.js +1 -1
  119. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs +4 -2
  120. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs.map +1 -1
  121. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js +4 -2
  122. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js.map +1 -1
  123. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +1 -1
  124. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +1 -1
  125. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs +1 -1
  126. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js +1 -1
  127. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs +2 -2
  128. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js +2 -2
  129. package/dist/martyrs/src/modules/globals/views/components/partials/NavigationBar.vue.cjs +1 -1
  130. package/dist/martyrs/src/modules/globals/views/components/partials/NavigationBar.vue.js +1 -1
  131. package/dist/martyrs/src/modules/globals/views/components/sections/{Filters.vue.cjs → Filters.vue2.cjs} +9 -9
  132. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.cjs.map +1 -0
  133. package/dist/martyrs/src/modules/globals/views/components/sections/{Filters.vue.js → Filters.vue2.js} +10 -10
  134. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.js.map +1 -0
  135. package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.cjs +1 -1
  136. package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.js +1 -1
  137. package/dist/martyrs/src/modules/globals/views/components/sections/Walkthrough.vue.cjs +1 -1
  138. package/dist/martyrs/src/modules/globals/views/components/sections/Walkthrough.vue.js +1 -1
  139. package/dist/martyrs/src/modules/globals/views/utils/vue-app-renderer.cjs +21 -1
  140. package/dist/martyrs/src/modules/globals/views/utils/vue-app-renderer.cjs.map +1 -1
  141. package/dist/martyrs/src/modules/globals/views/utils/vue-app-renderer.js +21 -1
  142. package/dist/martyrs/src/modules/globals/views/utils/vue-app-renderer.js.map +1 -1
  143. package/dist/martyrs/src/modules/icons/components/IconSearchPopup.vue.cjs +1 -1
  144. package/dist/martyrs/src/modules/icons/components/IconSearchPopup.vue.js +1 -1
  145. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.cjs +2 -2
  146. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +2 -2
  147. package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.cjs +1 -1
  148. package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.js +1 -1
  149. package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.cjs +1 -1
  150. package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js +1 -1
  151. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.cjs +2 -2
  152. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +2 -2
  153. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.cjs +3 -3
  154. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js +2 -2
  155. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.cjs +4 -4
  156. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +4 -4
  157. package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.cjs +3 -3
  158. package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.cjs.map +1 -1
  159. package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.js +3 -3
  160. package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.js.map +1 -1
  161. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.cjs +2 -2
  162. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.js +2 -2
  163. package/dist/martyrs/src/modules/marketplace/views/components/pages/Catalog.vue.cjs +1 -1
  164. package/dist/martyrs/src/modules/marketplace/views/components/pages/Catalog.vue.js +1 -1
  165. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.cjs +1 -1
  166. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +1 -1
  167. package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.cjs +1 -1
  168. package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.js +1 -1
  169. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.cjs +1 -1
  170. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js +1 -1
  171. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.cjs +1 -1
  172. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js +1 -1
  173. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.cjs +2 -2
  174. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +2 -2
  175. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.cjs +2 -2
  176. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +2 -2
  177. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.cjs +2 -2
  178. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +2 -2
  179. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.cjs +1 -1
  180. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js +1 -1
  181. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs +2 -2
  182. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +2 -2
  183. package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs +3 -3
  184. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +3 -3
  185. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.cjs +1 -1
  186. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +1 -1
  187. package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.cjs +1 -1
  188. package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.js +1 -1
  189. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.cjs +2 -2
  190. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +2 -2
  191. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs +3 -3
  192. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +3 -3
  193. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.cjs +1 -1
  194. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +1 -1
  195. package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs +3 -3
  196. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +3 -3
  197. package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.cjs +1 -1
  198. package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.js +1 -1
  199. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.cjs +1 -1
  200. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js +1 -1
  201. package/dist/martyrs/src/modules/notifications/components/pages/Notifications.vue.cjs +1 -1
  202. package/dist/martyrs/src/modules/notifications/components/pages/Notifications.vue.js +1 -1
  203. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.cjs +7 -5
  204. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.cjs.map +1 -1
  205. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.js +8 -6
  206. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.js.map +1 -1
  207. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.cjs +2 -2
  208. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +2 -2
  209. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.cjs +2 -2
  210. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +2 -2
  211. package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.cjs +2 -2
  212. package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js +2 -2
  213. package/dist/martyrs/src/modules/orders/components/pages/Applications.vue.cjs +1 -1
  214. package/dist/martyrs/src/modules/orders/components/pages/Applications.vue.js +1 -1
  215. package/dist/martyrs/src/modules/orders/components/pages/Customers.vue.cjs +1 -1
  216. package/dist/martyrs/src/modules/orders/components/pages/Customers.vue.js +1 -1
  217. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +6 -4
  218. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs.map +1 -1
  219. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +6 -4
  220. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js.map +1 -1
  221. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs +1 -1
  222. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +1 -1
  223. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +6 -6
  224. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs.map +1 -1
  225. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +6 -6
  226. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js.map +1 -1
  227. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.cjs +9 -7
  228. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.cjs.map +1 -1
  229. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.js +9 -7
  230. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.js.map +1 -1
  231. package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.cjs +3 -1
  232. package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.cjs.map +1 -1
  233. package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.js +3 -1
  234. package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.js.map +1 -1
  235. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.cjs +1 -1
  236. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js +1 -1
  237. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.cjs +1 -1
  238. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js +1 -1
  239. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +4 -4
  240. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +4 -4
  241. package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.cjs +10 -10
  242. package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.js +10 -10
  243. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.cjs +1 -1
  244. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +1 -1
  245. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.cjs +2 -2
  246. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js +2 -2
  247. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.cjs +4 -4
  248. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js +4 -4
  249. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.cjs +2 -2
  250. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js +2 -2
  251. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.cjs +10 -10
  252. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js +10 -10
  253. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +10 -10
  254. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +10 -10
  255. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +9 -9
  256. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +9 -9
  257. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +1 -1
  258. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
  259. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +4 -4
  260. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +4 -4
  261. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.cjs +2 -2
  262. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js +2 -2
  263. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs +2 -2
  264. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +2 -2
  265. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.cjs +3 -3
  266. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +3 -3
  267. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +3 -3
  268. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +3 -3
  269. package/dist/martyrs/src/modules/organizations/router/organizations.cjs +1 -1
  270. package/dist/martyrs/src/modules/organizations/router/organizations.js +1 -1
  271. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.cjs +2 -2
  272. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +2 -2
  273. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.cjs +2 -2
  274. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +2 -2
  275. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.cjs +1 -1
  276. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +1 -1
  277. package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.cjs +1 -1
  278. package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.js +1 -1
  279. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.cjs +4 -2
  280. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.cjs.map +1 -1
  281. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.js +5 -3
  282. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.js.map +1 -1
  283. package/dist/martyrs/src/modules/products/components/elements/Price.vue.cjs +4 -2
  284. package/dist/martyrs/src/modules/products/components/elements/Price.vue.cjs.map +1 -1
  285. package/dist/martyrs/src/modules/products/components/elements/Price.vue.js +5 -3
  286. package/dist/martyrs/src/modules/products/components/elements/Price.vue.js.map +1 -1
  287. package/dist/martyrs/src/modules/products/components/elements/{THC.vue.cjs → THC.vue2.cjs} +2 -2
  288. package/dist/martyrs/src/modules/products/components/elements/THC.vue2.cjs.map +1 -0
  289. package/dist/martyrs/src/modules/products/components/elements/{THC.vue.js → THC.vue2.js} +2 -2
  290. package/dist/martyrs/src/modules/products/components/elements/THC.vue2.js.map +1 -0
  291. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs +2 -2
  292. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +2 -2
  293. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +5 -5
  294. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +5 -5
  295. package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +2 -2
  296. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +2 -2
  297. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +4 -4
  298. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +4 -4
  299. package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs +8 -8
  300. package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs.map +1 -1
  301. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +8 -8
  302. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js.map +1 -1
  303. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.cjs +2 -2
  304. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +2 -2
  305. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs +2 -2
  306. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +2 -2
  307. package/dist/martyrs/src/modules/products/components/sections/EditIngredients.vue.cjs +1 -1
  308. package/dist/martyrs/src/modules/products/components/sections/EditIngredients.vue.js +1 -1
  309. package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.cjs +1 -1
  310. package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.js +1 -1
  311. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs +7 -5
  312. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs.map +1 -1
  313. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +7 -5
  314. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js.map +1 -1
  315. package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.cjs +1 -1
  316. package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.js +1 -1
  317. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.cjs +1 -1
  318. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js +1 -1
  319. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.cjs +1 -1
  320. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +1 -1
  321. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.cjs +3 -3
  322. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +3 -3
  323. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.cjs +3 -3
  324. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +3 -3
  325. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.cjs +2 -2
  326. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js +2 -2
  327. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.cjs +2 -2
  328. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +2 -2
  329. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs +1 -1
  330. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +1 -1
  331. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.cjs +1 -1
  332. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js +1 -1
  333. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs +3 -3
  334. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +3 -3
  335. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.cjs +1 -1
  336. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js +1 -1
  337. package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.cjs +1 -1
  338. package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.js +1 -1
  339. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +3 -3
  340. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +3 -3
  341. package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.cjs +1 -1
  342. package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.js +1 -1
  343. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.cjs +2 -2
  344. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +2 -2
  345. package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.cjs +1 -1
  346. package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.js +1 -1
  347. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.cjs +1 -1
  348. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +1 -1
  349. package/dist/martyrs/src/modules/wallet/views/components/pages/Payments.vue.cjs +1 -1
  350. package/dist/martyrs/src/modules/wallet/views/components/pages/Payments.vue.js +1 -1
  351. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.cjs +2 -2
  352. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +2 -2
  353. package/dist/martyrs.cjs.js +1 -1
  354. package/dist/martyrs.css +1 -1
  355. package/dist/martyrs.es.js +1 -1
  356. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/utils.cjs +1 -1
  357. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/utils.js +1 -1
  358. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/utils.cjs +1 -1
  359. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/utils.js +1 -1
  360. package/dist/style.css +6 -6
  361. package/dist/{web-C6njYH1C.js → web-BkaOiiSn.js} +1 -1
  362. package/dist/{web-CVdyxtLD.cjs → web-CROHFHoW.cjs} +1 -1
  363. package/package.json +1 -1
  364. package/src/builder/modes/ssr.prod.js +2 -0
  365. package/src/builder/modes/ssr.rspack.dev.js +2 -0
  366. package/src/builder/templates/page.js +4 -0
  367. package/src/builder/templates/screen.js +4 -0
  368. package/src/modules/events/components/pages/Event.vue +2 -0
  369. package/src/modules/globals/views/classes/globals.app.js +76 -48
  370. package/src/modules/globals/views/components/blocks/PopupDateSelector.vue +2 -0
  371. package/src/modules/globals/views/components/sections/Filters.vue +1 -1
  372. package/src/modules/globals/views/utils/vue-app-renderer.js +25 -1
  373. package/src/modules/landing/components/sections/SectionGuide.vue +2 -2
  374. package/src/modules/orders/components/blocks/CardOrderItem.vue +2 -0
  375. package/src/modules/orders/components/blocks/CardOrderVar1.vue +12 -1
  376. package/src/modules/orders/components/pages/OrderBackoffice.vue +2 -0
  377. package/src/modules/orders/components/pages/OrderCreateBackoffice.vue +1 -1
  378. package/src/modules/orders/components/pages/Orders.vue +2 -0
  379. package/src/modules/orders/components/partials/ShopCart.vue +2 -0
  380. package/src/modules/products/components/blocks/ProductDiscounts.vue +3 -0
  381. package/src/modules/products/components/elements/Price.vue +3 -0
  382. package/src/modules/products/components/pages/Products.vue +1 -1
  383. package/src/modules/products/components/sections/EditVariants.vue +2 -0
  384. package/dist/martyrs/src/components/Button/Button.vue2.cjs.map +0 -1
  385. package/dist/martyrs/src/components/Dropdown/Dropdown.vue2.cjs.map +0 -1
  386. package/dist/martyrs/src/components/Feed/Feed.vue.js.map +0 -1
  387. package/dist/martyrs/src/components/Field/Field.vue.js.map +0 -1
  388. package/dist/martyrs/src/components/FieldTags/BlockTags.vue.js.map +0 -1
  389. package/dist/martyrs/src/components/Menu/Menu.vue2.cjs.map +0 -1
  390. package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +0 -1
  391. package/dist/martyrs/src/components/Spoiler/Spoiler.vue.js.map +0 -1
  392. package/dist/martyrs/src/components/Tab/Tab.vue.js.map +0 -1
  393. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue.cjs.map +0 -1
  394. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue.js.map +0 -1
  395. package/dist/martyrs/src/modules/products/components/elements/THC.vue.cjs.map +0 -1
  396. package/dist/martyrs/src/modules/products/components/elements/THC.vue.js.map +0 -1
@@ -6,17 +6,18 @@ 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");
10
- const Button = require("../../../../components/Button/Button.vue2.cjs");
9
+ const Field = require("../../../../components/Field/Field.vue2.cjs");
10
+ const Button = require("../../../../components/Button/Button.vue.cjs");
11
11
  const Popup = require("../../../../components/Popup/Popup.vue.cjs");
12
12
  const Select = require("../../../../components/Select/Select.vue.cjs");
13
- const Feed = require("../../../../components/Feed/Feed.vue.cjs");
14
- const EditImages = require("../../../../components/EditImages/EditImages.vue.cjs");
13
+ const Feed = require("../../../../components/Feed/Feed.vue2.cjs");
14
+ const EditImages = require("../../../../components/EditImages/EditImages.vue2.cjs");
15
15
  const EditIngredients = require("./EditIngredients.vue.cjs");
16
16
  const PlaceholderImage = require("../../../icons/placeholders/PlaceholderImage.vue.cjs");
17
17
  const IconEdit = require("../../../icons/navigation/IconEdit.vue.cjs");
18
18
  const IconDelete = require("../../../icons/navigation/IconDelete.vue.cjs");
19
19
  const IconDuplicate = require("../../../icons/actions/IconDuplicate.vue.cjs");
20
+ const mixins = require("../../../globals/views/mixins/mixins.cjs");
20
21
  const _hoisted_1 = { class: "aspect-1x1 h-3r flex-child-default radius-small o-hidden" };
21
22
  const _hoisted_2 = ["src"];
22
23
  const _hoisted_3 = { class: "w-100" };
@@ -42,6 +43,7 @@ const _sfc_main = {
42
43
  __name: "EditVariants",
43
44
  setup(__props) {
44
45
  const route = vueRouter.useRoute();
46
+ const { returnCurrency } = mixins.useGlobalMixins();
45
47
  const productId = vue.computed(() => route.params.product);
46
48
  vue.computed(() => {
47
49
  return products.state?.current?.owner;
@@ -287,7 +289,7 @@ const _sfc_main = {
287
289
  vue.createElementVNode("p", _hoisted_5, vue.toDisplayString(variant.name || "Unnamed variant"), 1),
288
290
  variant.status ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_6, vue.toDisplayString(variant.status), 1)) : vue.createCommentVNode("", true)
289
291
  ]),
290
- vue.createElementVNode("p", _hoisted_7, vue.toDisplayString(_ctx.returnCurrency()) + vue.toDisplayString(variant.price) + " per " + vue.toDisplayString(variant.quantity) + vue.toDisplayString(variant.unit), 1),
292
+ vue.createElementVNode("p", _hoisted_7, vue.toDisplayString(vue.unref(returnCurrency)()) + vue.toDisplayString(variant.price) + " per " + vue.toDisplayString(variant.quantity) + vue.toDisplayString(variant.unit), 1),
291
293
  variant.ingredients?.length ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_8, vue.toDisplayString(variant.ingredients.length) + " ingredients", 1)) : vue.createCommentVNode("", true)
292
294
  ]),
293
295
  vue.createElementVNode("div", _hoisted_9, [
@@ -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';\n\nconst route = useRoute();\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","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-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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"}
@@ -4,17 +4,18 @@ 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";
8
- import _sfc_main$3 from "../../../../components/Button/Button.vue2.js";
7
+ import Field from "../../../../components/Field/Field.vue2.js";
8
+ import _sfc_main$3 from "../../../../components/Button/Button.vue.js";
9
9
  import _sfc_main$7 from "../../../../components/Popup/Popup.vue.js";
10
10
  import Select from "../../../../components/Select/Select.vue.js";
11
- import _sfc_main$2 from "../../../../components/Feed/Feed.vue.js";
12
- import _sfc_main$9 from "../../../../components/EditImages/EditImages.vue.js";
11
+ import _sfc_main$2 from "../../../../components/Feed/Feed.vue2.js";
12
+ import _sfc_main$9 from "../../../../components/EditImages/EditImages.vue2.js";
13
13
  import _sfc_main$8 from "./EditIngredients.vue.js";
14
14
  import PlaceholderImage from "../../../icons/placeholders/PlaceholderImage.vue.js";
15
15
  import _sfc_main$5 from "../../../icons/navigation/IconEdit.vue.js";
16
16
  import _sfc_main$6 from "../../../icons/navigation/IconDelete.vue.js";
17
17
  import _sfc_main$4 from "../../../icons/actions/IconDuplicate.vue.js";
18
+ import { useGlobalMixins } from "../../../globals/views/mixins/mixins.js";
18
19
  const _hoisted_1 = { class: "aspect-1x1 h-3r flex-child-default radius-small o-hidden" };
19
20
  const _hoisted_2 = ["src"];
20
21
  const _hoisted_3 = { class: "w-100" };
@@ -40,6 +41,7 @@ const _sfc_main = {
40
41
  __name: "EditVariants",
41
42
  setup(__props) {
42
43
  const route = useRoute();
44
+ const { returnCurrency } = useGlobalMixins();
43
45
  const productId = computed(() => route.params.product);
44
46
  computed(() => {
45
47
  return state?.current?.owner;
@@ -285,7 +287,7 @@ const _sfc_main = {
285
287
  createElementVNode("p", _hoisted_5, toDisplayString(variant.name || "Unnamed variant"), 1),
286
288
  variant.status ? (openBlock(), createElementBlock("p", _hoisted_6, toDisplayString(variant.status), 1)) : createCommentVNode("", true)
287
289
  ]),
288
- createElementVNode("p", _hoisted_7, toDisplayString(_ctx.returnCurrency()) + toDisplayString(variant.price) + " per " + toDisplayString(variant.quantity) + toDisplayString(variant.unit), 1),
290
+ createElementVNode("p", _hoisted_7, toDisplayString(unref(returnCurrency)()) + toDisplayString(variant.price) + " per " + toDisplayString(variant.quantity) + toDisplayString(variant.unit), 1),
289
291
  variant.ingredients?.length ? (openBlock(), createElementBlock("p", _hoisted_8, toDisplayString(variant.ingredients.length) + " ingredients", 1)) : createCommentVNode("", true)
290
292
  ]),
291
293
  createElementVNode("div", _hoisted_9, [
@@ -1 +1 @@
1
- {"version":3,"file":"EditVariants.vue.js","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';\n\nconst route = useRoute();\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":["products?.state","auth.state","variants"],"mappings":"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"}
1
+ {"version":3,"file":"EditVariants.vue.js","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":["products?.state","auth.state","variants"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
- const Spoiler = require("../../../../components/Spoiler/Spoiler.vue.cjs");
4
+ const Spoiler = require("../../../../components/Spoiler/Spoiler.vue2.cjs");
5
5
  const Checkbox = require("../../../../components/Checkbox/Checkbox.vue.cjs");
6
6
  const vueI18n = require("vue-i18n");
7
7
  const vueRouter = require("vue-router");
@@ -1,5 +1,5 @@
1
1
  import { ref, watch, onMounted, createElementBlock, openBlock, createVNode, createElementVNode, withCtx, Fragment, renderList, createBlock, toDisplayString, unref } from "vue";
2
- import _sfc_main$1 from "../../../../components/Spoiler/Spoiler.vue.js";
2
+ import _sfc_main$1 from "../../../../components/Spoiler/Spoiler.vue2.js";
3
3
  import _sfc_main$2 from "../../../../components/Checkbox/Checkbox.vue.js";
4
4
  import { useI18n } from "vue-i18n";
5
5
  import { useRoute, useRouter } from "vue-router";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
3
3
  const vue = require("vue");
4
4
  const vueI18n = require("vue-i18n");
5
5
  const IconShopcartAdd = require("../../../icons/actions/IconShopcartAdd.vue.cjs");
6
- const Button = require("../../../../components/Button/Button.vue2.cjs");
6
+ const Button = require("../../../../components/Button/Button.vue.cjs");
7
7
  const ProductVariants = require("../blocks/ProductVariants.vue.cjs");
8
8
  const ProductDiscounts = require("../blocks/ProductDiscounts.vue.cjs");
9
9
  const QuantitySelector = require("../elements/QuantitySelector.vue.cjs");
@@ -1,7 +1,7 @@
1
1
  import { ref, computed, createElementBlock, createCommentVNode, openBlock, createVNode, createElementVNode, toDisplayString, withCtx, unref, Fragment } from "vue";
2
2
  import { useI18n } from "vue-i18n";
3
3
  import _sfc_main$5 from "../../../icons/actions/IconShopcartAdd.vue.js";
4
- import _sfc_main$4 from "../../../../components/Button/Button.vue2.js";
4
+ import _sfc_main$4 from "../../../../components/Button/Button.vue.js";
5
5
  import _sfc_main$1 from "../blocks/ProductVariants.vue.js";
6
6
  import ProductDiscounts from "../blocks/ProductDiscounts.vue.js";
7
7
  import _sfc_main$3 from "../elements/QuantitySelector.vue.js";
@@ -2,7 +2,7 @@
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
4
  const vueRouter = require("vue-router");
5
- const Button = require("../../../../components/Button/Button.vue2.cjs");
5
+ const Button = require("../../../../components/Button/Button.vue.cjs");
6
6
  const Checkbox = require("../../../../components/Checkbox/Checkbox.vue.cjs");
7
7
  const CardProduct = require("../blocks/CardProduct.vue.cjs");
8
8
  const IconProducts = require("../../../icons/entities/IconProducts.vue.cjs");
@@ -1,6 +1,6 @@
1
1
  import { getCurrentInstance, ref, computed, createElementBlock, openBlock, createElementVNode, Fragment, renderList, createBlock, withCtx, createVNode, withModifiers, toDisplayString } from "vue";
2
2
  import { useRouter } from "vue-router";
3
- import _sfc_main$4 from "../../../../components/Button/Button.vue2.js";
3
+ import _sfc_main$4 from "../../../../components/Button/Button.vue.js";
4
4
  import _sfc_main$2 from "../../../../components/Checkbox/Checkbox.vue.js";
5
5
  import _sfc_main$1 from "../blocks/CardProduct.vue.js";
6
6
  import _sfc_main$3 from "../../../icons/entities/IconProducts.vue.js";
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
- const Button = require("../../../../components/Button/Button.vue2.cjs");
5
- const Tab = require("../../../../components/Tab/Tab.vue.cjs");
4
+ const Button = require("../../../../components/Button/Button.vue.cjs");
5
+ const Tab = require("../../../../components/Tab/Tab.vue2.cjs");
6
6
  const IconEdit = require("../../../icons/navigation/IconEdit.vue.cjs");
7
7
  const PlaceholderImage = require("../../../icons/placeholders/PlaceholderImage.vue.cjs");
8
8
  const Image360 = require("../elements/Image360.vue.cjs");
9
9
  const ProductImages = require("../blocks/ProductImages.vue.cjs");
10
- ;/* empty css */
10
+ ;/* empty css */
11
11
  const Price = require("../elements/Price.vue.cjs");
12
12
  const vueRouter = require("vue-router");
13
13
  const vueI18n = require("vue-i18n");
@@ -1,11 +1,11 @@
1
1
  import { computed, ref, createElementBlock, openBlock, createElementVNode, createBlock, createCommentVNode, createVNode, unref, toDisplayString, Transition, withCtx, Fragment, renderList, createTextVNode } from "vue";
2
- import _sfc_main$4 from "../../../../components/Button/Button.vue2.js";
3
- import _sfc_main$3 from "../../../../components/Tab/Tab.vue.js";
2
+ import _sfc_main$4 from "../../../../components/Button/Button.vue.js";
3
+ import _sfc_main$3 from "../../../../components/Tab/Tab.vue2.js";
4
4
  import _sfc_main$1 from "../../../icons/navigation/IconEdit.vue.js";
5
5
  import PlaceholderImage from "../../../icons/placeholders/PlaceholderImage.vue.js";
6
6
  import Image360 from "../elements/Image360.vue.js";
7
7
  import ProductImages from "../blocks/ProductImages.vue.js";
8
- /* empty css */
8
+ /* empty css */
9
9
  import _sfc_main$2 from "../elements/Price.vue.js";
10
10
  import { useRoute, useRouter } from "vue-router";
11
11
  import { useI18n } from "vue-i18n";
@@ -2,9 +2,9 @@
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
4
  const dayjs_min = require("../../../../../../../../_virtual/dayjs.min.cjs");
5
- const Tab = require("../../../../../../components/Tab/Tab.vue.cjs");
6
- const Button = require("../../../../../../components/Button/Button.vue2.cjs");
7
- const Dropdown = require("../../../../../../components/Dropdown/Dropdown.vue2.cjs");
5
+ const Tab = require("../../../../../../components/Tab/Tab.vue2.cjs");
6
+ const Button = require("../../../../../../components/Button/Button.vue.cjs");
7
+ const Dropdown = require("../../../../../../components/Dropdown/Dropdown.vue.cjs");
8
8
  const Calendar = require("../../../../../../components/Calendar/Calendar.vue2.cjs");
9
9
  const DateLabel = require("./DateLabel.vue.cjs");
10
10
  const IconChevronRight = require("../../../../../icons/navigation/IconChevronRight.vue.cjs");
@@ -1,8 +1,8 @@
1
1
  import { computed, ref, watch, createElementBlock, openBlock, createElementVNode, createVNode, withCtx, createTextVNode } from "vue";
2
2
  import dayjs from "../../../../../../../../_virtual/dayjs.min.js";
3
- import _sfc_main$2 from "../../../../../../components/Tab/Tab.vue.js";
4
- import _sfc_main$3 from "../../../../../../components/Button/Button.vue2.js";
5
- import _sfc_main$4 from "../../../../../../components/Dropdown/Dropdown.vue2.js";
3
+ import _sfc_main$2 from "../../../../../../components/Tab/Tab.vue2.js";
4
+ import _sfc_main$3 from "../../../../../../components/Button/Button.vue.js";
5
+ import _sfc_main$4 from "../../../../../../components/Dropdown/Dropdown.vue.js";
6
6
  import Calendar from "../../../../../../components/Calendar/Calendar.vue2.js";
7
7
  import _sfc_main$1 from "./DateLabel.vue.js";
8
8
  import IconNext from "../../../../../icons/navigation/IconChevronRight.vue.js";
@@ -2,8 +2,8 @@
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
4
  const dayjs_min = require("../../../../../../../_virtual/dayjs.min.cjs");
5
- ;/* empty css */
6
- const Feed = require("../../../../../components/Feed/Feed.vue.cjs");
5
+ ;/* empty css */
6
+ const Feed = require("../../../../../components/Feed/Feed.vue2.cjs");
7
7
  ;/* empty css */
8
8
  const GanttChart = require("./Gant/GanttChart.vue.cjs");
9
9
  const vueRouter = require("vue-router");
@@ -1,7 +1,7 @@
1
1
  import { ref, computed, createElementBlock, openBlock, createElementVNode, createVNode, unref, toDisplayString, withCtx } from "vue";
2
2
  import dayjs from "../../../../../../../_virtual/dayjs.min.js";
3
- /* empty css */
4
- import _sfc_main$1 from "../../../../../components/Feed/Feed.vue.js";
3
+ /* empty css */
4
+ import _sfc_main$1 from "../../../../../components/Feed/Feed.vue2.js";
5
5
  /* empty css */
6
6
  import _sfc_main$2 from "./Gant/GanttChart.vue.js";
7
7
  import { useRoute, useRouter } from "vue-router";
@@ -2,8 +2,8 @@
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
4
  const Block = require("../../../../../components/Block/Block.vue.cjs");
5
- const Field = require("../../../../../components/Field/Field.vue.cjs");
6
- const Feed = require("../../../../../components/Feed/Feed.vue.cjs");
5
+ const Field = require("../../../../../components/Field/Field.vue2.cjs");
6
+ const Feed = require("../../../../../components/Feed/Feed.vue2.cjs");
7
7
  const Popup = require("../../../../../components/Popup/Popup.vue.cjs");
8
8
  const CardOrderItem = require("../../../../orders/components/blocks/CardOrderItem.vue.cjs");
9
9
  const vueRouter = require("vue-router");
@@ -1,7 +1,7 @@
1
1
  import { ref, computed, onMounted, createElementBlock, openBlock, createElementVNode, createVNode, toDisplayString, unref, withCtx, Fragment, renderList, createBlock, createCommentVNode } from "vue";
2
2
  import _sfc_main$4 from "../../../../../components/Block/Block.vue.js";
3
- import Field from "../../../../../components/Field/Field.vue.js";
4
- import _sfc_main$2 from "../../../../../components/Feed/Feed.vue.js";
3
+ import Field from "../../../../../components/Field/Field.vue2.js";
4
+ import _sfc_main$2 from "../../../../../components/Feed/Feed.vue2.js";
5
5
  import _sfc_main$1 from "../../../../../components/Popup/Popup.vue.js";
6
6
  import _sfc_main$3 from "../../../../orders/components/blocks/CardOrderItem.vue.js";
7
7
  import { useRoute, useRouter } from "vue-router";
@@ -2,7 +2,7 @@
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
4
  const Popup = require("../../../../components/Popup/Popup.vue.cjs");
5
- const Button = require("../../../../components/Button/Button.vue2.cjs");
5
+ const Button = require("../../../../components/Button/Button.vue.cjs");
6
6
  const Select = require("../../../../components/Select/Select.vue.cjs");
7
7
  const reports = require("../../store/reports.cjs");
8
8
  const _sfc_main = {
@@ -1,6 +1,6 @@
1
1
  import { reactive, ref, createElementBlock, openBlock, renderSlot, createVNode, withCtx, createElementVNode, createTextVNode } from "vue";
2
2
  import _sfc_main$1 from "../../../../components/Popup/Popup.vue.js";
3
- import _sfc_main$2 from "../../../../components/Button/Button.vue2.js";
3
+ import _sfc_main$2 from "../../../../components/Button/Button.vue.js";
4
4
  import Select from "../../../../components/Select/Select.vue.js";
5
5
  import { actions } from "../../store/reports.js";
6
6
  const _sfc_main = {
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
- ;/* empty css */
4
+ ;/* empty css */
5
5
  const _pluginVue_exportHelper = require("../../../../../../_virtual/_plugin-vue_export-helper.cjs");
6
6
  ;/* empty css */
7
7
  ;/* empty css */
@@ -1,5 +1,5 @@
1
1
  import { ref, computed, resolveComponent, createElementBlock, openBlock, createElementVNode, createCommentVNode, createBlock, toDisplayString } from "vue";
2
- /* empty css */
2
+ /* empty css */
3
3
  import _export_sfc from "../../../../../../_virtual/_plugin-vue_export-helper.js";
4
4
  /* empty css */
5
5
  /* empty css */
@@ -3,10 +3,10 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
3
3
  const vue = require("vue");
4
4
  const vueRouter = require("vue-router");
5
5
  const vueI18n = require("vue-i18n");
6
- ;/* empty css */
7
- ;/* empty css */
6
+ ;/* empty css */
7
+ ;/* empty css */
8
8
  ;/* empty css */
9
- ;/* empty css */
9
+ ;/* empty css */
10
10
  const globals = require("../../../globals/views/store/globals.cjs");
11
11
  const categories = require("../../../products/store/categories.cjs");
12
12
  const marketplace = require("../../../marketplace/views/store/marketplace.cjs");
@@ -1,10 +1,10 @@
1
1
  import { ref, onMounted, watch, resolveComponent, createElementBlock, openBlock, createElementVNode, createVNode, createCommentVNode, toDisplayString, withCtx, Transition, createBlock, resolveDynamicComponent } from "vue";
2
2
  import { useRoute, useRouter } from "vue-router";
3
3
  import { useI18n } from "vue-i18n";
4
- /* empty css */
5
- /* empty css */
4
+ /* empty css */
5
+ /* empty css */
6
6
  /* empty css */
7
- /* empty css */
7
+ /* empty css */
8
8
  import { state as state$1 } from "../../../globals/views/store/globals.js";
9
9
  import { actions, state as state$2 } from "../../../products/store/categories.js";
10
10
  import { state } from "../../../marketplace/views/store/marketplace.js";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
3
3
  const vue = require("vue");
4
4
  const vueRouter = require("vue-router");
5
5
  const index = require("../../../../../../node_modules/.pnpm/@googlemaps_js-api-loader@1.16.10/node_modules/@googlemaps/js-api-loader/dist/index.cjs");
6
- const Button = require("../../../../components/Button/Button.vue2.cjs");
6
+ const Button = require("../../../../components/Button/Button.vue.cjs");
7
7
  const organizations = require("../../../organizations/store/organizations.cjs");
8
8
  const globals = require("../../../globals/views/store/globals.cjs");
9
9
  const marketplace = require("../../../marketplace/views/store/marketplace.cjs");
@@ -1,7 +1,7 @@
1
1
  import { ref, onMounted, createElementBlock, openBlock, createElementVNode, createVNode, withCtx, createTextVNode } from "vue";
2
2
  import { useRouter, useRoute } from "vue-router";
3
3
  import { Loader } from "../../../../../../node_modules/.pnpm/@googlemaps_js-api-loader@1.16.10/node_modules/@googlemaps/js-api-loader/dist/index.js";
4
- import _sfc_main$1 from "../../../../components/Button/Button.vue2.js";
4
+ import _sfc_main$1 from "../../../../components/Button/Button.vue.js";
5
5
  import { actions, state as state$2 } from "../../../organizations/store/organizations.js";
6
6
  import { state } from "../../../globals/views/store/globals.js";
7
7
  import { state as state$1 } from "../../../marketplace/views/store/marketplace.js";