@ozdao/martyrs 0.2.542 → 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 (346) hide show
  1. package/dist/builder.cjs +10 -2
  2. package/dist/builder.js +10 -2
  3. package/dist/{main-Czyu-VcC.cjs → main-8f945Ngn.cjs} +7 -7
  4. package/dist/{main-ByKkD9qa.js → main-d9n_ibdE.js} +2621 -2622
  5. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.cjs → Dropdown.vue.cjs} +2 -2
  6. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.js.map → Dropdown.vue.cjs.map} +1 -1
  7. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.js → Dropdown.vue.js} +2 -2
  8. package/dist/martyrs/src/components/Dropdown/Dropdown.vue.js.map +1 -0
  9. package/dist/martyrs/src/components/Feed/Carousel.vue.cjs +4 -2
  10. package/dist/martyrs/src/components/Feed/Carousel.vue.cjs.map +1 -1
  11. package/dist/martyrs/src/components/Feed/Carousel.vue.js +5 -3
  12. package/dist/martyrs/src/components/Feed/Carousel.vue.js.map +1 -1
  13. package/dist/martyrs/src/components/Feed/{Feed.vue.cjs → Feed.vue2.cjs} +7 -5
  14. package/dist/martyrs/src/components/Feed/Feed.vue2.cjs.map +1 -0
  15. package/dist/martyrs/src/components/Feed/{Feed.vue.js → Feed.vue2.js} +7 -5
  16. package/dist/martyrs/src/components/Feed/Feed.vue2.js.map +1 -0
  17. package/dist/martyrs/src/components/Field/{Field.vue.cjs → Field.vue2.cjs} +2 -2
  18. package/dist/martyrs/src/components/Field/Field.vue2.cjs.map +1 -0
  19. package/dist/martyrs/src/components/Field/{Field.vue.js → Field.vue2.js} +2 -2
  20. package/dist/martyrs/src/components/Field/{Field.vue.cjs.map → Field.vue2.js.map} +1 -1
  21. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.cjs +1 -1
  22. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +1 -1
  23. package/dist/martyrs/src/components/FieldTags/{BlockTags.vue.cjs → BlockTags.vue2.cjs} +2 -2
  24. package/dist/martyrs/src/components/FieldTags/BlockTags.vue2.cjs.map +1 -0
  25. package/dist/martyrs/src/components/FieldTags/{BlockTags.vue.js → BlockTags.vue2.js} +2 -2
  26. package/dist/martyrs/src/components/FieldTags/{BlockTags.vue.cjs.map → BlockTags.vue2.js.map} +1 -1
  27. package/dist/martyrs/src/components/Menu/{Menu.vue2.cjs → Menu.vue.cjs} +2 -2
  28. package/dist/martyrs/src/components/Menu/Menu.vue.cjs.map +1 -0
  29. package/dist/martyrs/src/components/Menu/{Menu.vue2.js → Menu.vue.js} +2 -2
  30. package/dist/martyrs/src/components/Menu/Menu.vue.js.map +1 -0
  31. package/dist/martyrs/src/components/Tab/Tab.vue2.cjs +3 -1
  32. package/dist/martyrs/src/components/Tab/Tab.vue2.cjs.map +1 -1
  33. package/dist/martyrs/src/components/Tab/Tab.vue2.js +4 -2
  34. package/dist/martyrs/src/components/Tab/Tab.vue2.js.map +1 -1
  35. package/dist/martyrs/src/components/UploadImage/{UploadImage.vue.cjs → UploadImage.vue2.cjs} +7 -7
  36. package/dist/martyrs/src/components/UploadImage/UploadImage.vue2.cjs.map +1 -0
  37. package/dist/martyrs/src/components/UploadImage/{UploadImage.vue.js → UploadImage.vue2.js} +7 -7
  38. package/dist/martyrs/src/components/UploadImage/UploadImage.vue2.js.map +1 -0
  39. package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.cjs +1 -1
  40. package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.js +1 -1
  41. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs +1 -1
  42. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +1 -1
  43. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +1 -1
  44. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +1 -1
  45. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +3 -3
  46. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +3 -3
  47. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.cjs +1 -1
  48. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js +1 -1
  49. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.cjs +2 -2
  50. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +2 -2
  51. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.cjs +1 -1
  52. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +1 -1
  53. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs +1 -1
  54. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +1 -1
  55. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs +1 -1
  56. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +1 -1
  57. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.cjs +1 -1
  58. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +1 -1
  59. package/dist/martyrs/src/modules/backoffice/components/pages/Dashboard.vue.cjs +1 -1
  60. package/dist/martyrs/src/modules/backoffice/components/pages/Dashboard.vue.js +1 -1
  61. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.cjs +2 -7
  62. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.cjs.map +1 -1
  63. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js +2 -7
  64. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js.map +1 -1
  65. package/dist/martyrs/src/modules/community/components/blocks/FooterBlogpost.vue.cjs +2 -13
  66. package/dist/martyrs/src/modules/community/components/blocks/FooterBlogpost.vue.cjs.map +1 -1
  67. package/dist/martyrs/src/modules/community/components/blocks/FooterBlogpost.vue.js +2 -13
  68. package/dist/martyrs/src/modules/community/components/blocks/FooterBlogpost.vue.js.map +1 -1
  69. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.cjs +1 -1
  70. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +1 -1
  71. package/dist/martyrs/src/modules/community/components/pages/Blog.vue.cjs +1 -1
  72. package/dist/martyrs/src/modules/community/components/pages/Blog.vue.js +1 -1
  73. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +3 -3
  74. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +3 -3
  75. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.cjs +1 -1
  76. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.js +1 -1
  77. package/dist/martyrs/src/modules/constructor/components/elements/Card.vue.cjs +2 -2
  78. package/dist/martyrs/src/modules/constructor/components/elements/Card.vue.js +2 -2
  79. package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.cjs +1 -1
  80. package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.js +1 -1
  81. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +4 -4
  82. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +4 -4
  83. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs +2 -2
  84. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +2 -2
  85. package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +7 -5
  86. package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs.map +1 -1
  87. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +7 -5
  88. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js.map +1 -1
  89. package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs +1 -1
  90. package/dist/martyrs/src/modules/events/components/pages/Events.vue.js +1 -1
  91. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.cjs +1 -1
  92. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js +1 -1
  93. package/dist/martyrs/src/modules/events/components/pages/EventsSearch.vue.cjs +1 -1
  94. package/dist/martyrs/src/modules/events/components/pages/EventsSearch.vue.js +1 -1
  95. package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.cjs +1 -1
  96. package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.js +1 -1
  97. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +3 -3
  98. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +3 -3
  99. package/dist/martyrs/src/modules/globals/views/classes/globals.app.cjs +38 -30
  100. package/dist/martyrs/src/modules/globals/views/classes/globals.app.cjs.map +1 -1
  101. package/dist/martyrs/src/modules/globals/views/classes/globals.app.js +39 -31
  102. package/dist/martyrs/src/modules/globals/views/classes/globals.app.js.map +1 -1
  103. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockMultiselect.vue.cjs +1 -1
  104. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockMultiselect.vue.js +1 -1
  105. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue.cjs +1 -1
  106. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue.js +1 -1
  107. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +1 -1
  108. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +1 -1
  109. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs +3 -1
  110. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs.map +1 -1
  111. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js +3 -1
  112. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js.map +1 -1
  113. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs +1 -1
  114. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js +1 -1
  115. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.cjs +7 -7
  116. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.cjs.map +1 -1
  117. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.js +8 -8
  118. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.js.map +1 -1
  119. package/dist/martyrs/src/modules/globals/views/plugins/alert.plugin.cjs +1 -0
  120. package/dist/martyrs/src/modules/globals/views/plugins/alert.plugin.cjs.map +1 -1
  121. package/dist/martyrs/src/modules/globals/views/plugins/alert.plugin.js +1 -0
  122. package/dist/martyrs/src/modules/globals/views/plugins/alert.plugin.js.map +1 -1
  123. package/dist/martyrs/src/modules/globals/views/utils/vue-app-renderer.cjs +21 -1
  124. package/dist/martyrs/src/modules/globals/views/utils/vue-app-renderer.cjs.map +1 -1
  125. package/dist/martyrs/src/modules/globals/views/utils/vue-app-renderer.js +21 -1
  126. package/dist/martyrs/src/modules/globals/views/utils/vue-app-renderer.js.map +1 -1
  127. package/dist/martyrs/src/modules/icons/components/IconSearchPopup.vue.cjs +1 -1
  128. package/dist/martyrs/src/modules/icons/components/IconSearchPopup.vue.js +1 -1
  129. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.cjs +1 -1
  130. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +1 -1
  131. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.cjs +1 -1
  132. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +1 -1
  133. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.cjs +3 -3
  134. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js +2 -2
  135. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.cjs +3 -3
  136. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +3 -3
  137. package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.cjs +2 -2
  138. package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.cjs.map +1 -1
  139. package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.js +2 -2
  140. package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.js.map +1 -1
  141. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.cjs +1 -1
  142. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.js +1 -1
  143. package/dist/martyrs/src/modules/marketplace/views/components/pages/Catalog.vue.cjs +1 -1
  144. package/dist/martyrs/src/modules/marketplace/views/components/pages/Catalog.vue.js +1 -1
  145. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.cjs +2 -2
  146. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +2 -2
  147. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.cjs +2 -2
  148. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +2 -2
  149. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.cjs +2 -2
  150. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +2 -2
  151. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs +2 -2
  152. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +2 -2
  153. package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs +2 -2
  154. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +2 -2
  155. package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.cjs +1 -1
  156. package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.js +1 -1
  157. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.cjs +1 -1
  158. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +1 -1
  159. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs +2 -2
  160. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +2 -2
  161. package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs +2 -2
  162. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +2 -2
  163. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.cjs +7 -5
  164. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.cjs.map +1 -1
  165. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.js +8 -6
  166. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.js.map +1 -1
  167. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.cjs +1 -1
  168. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +1 -1
  169. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.cjs +1 -1
  170. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +1 -1
  171. package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.cjs +1 -1
  172. package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js +1 -1
  173. package/dist/martyrs/src/modules/orders/components/pages/Applications.vue.cjs +1 -1
  174. package/dist/martyrs/src/modules/orders/components/pages/Applications.vue.js +1 -1
  175. package/dist/martyrs/src/modules/orders/components/pages/Customers.vue.cjs +1 -1
  176. package/dist/martyrs/src/modules/orders/components/pages/Customers.vue.js +1 -1
  177. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +5 -3
  178. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs.map +1 -1
  179. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +5 -3
  180. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js.map +1 -1
  181. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +4 -4
  182. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs.map +1 -1
  183. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +4 -4
  184. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js.map +1 -1
  185. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.cjs +8 -6
  186. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.cjs.map +1 -1
  187. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.js +8 -6
  188. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.js.map +1 -1
  189. package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.cjs +3 -1
  190. package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.cjs.map +1 -1
  191. package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.js +3 -1
  192. package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.js.map +1 -1
  193. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +3 -3
  194. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +3 -3
  195. package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.cjs +7 -7
  196. package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.js +7 -7
  197. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.cjs +1 -1
  198. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js +1 -1
  199. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.cjs +3 -3
  200. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js +3 -3
  201. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.cjs +1 -1
  202. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js +1 -1
  203. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.cjs +7 -7
  204. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js +7 -7
  205. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +7 -7
  206. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +7 -7
  207. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +6 -6
  208. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +6 -6
  209. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +1 -1
  210. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
  211. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +3 -3
  212. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +3 -3
  213. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.cjs +1 -1
  214. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js +1 -1
  215. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs +1 -1
  216. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +1 -1
  217. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.cjs +2 -2
  218. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +2 -2
  219. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +1 -1
  220. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +1 -1
  221. package/dist/martyrs/src/modules/organizations/router/organizations.cjs +1 -1
  222. package/dist/martyrs/src/modules/organizations/router/organizations.js +1 -1
  223. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.cjs +1 -1
  224. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -1
  225. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.cjs +1 -1
  226. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -1
  227. package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.cjs +11 -5
  228. package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.cjs.map +1 -1
  229. package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.js +12 -6
  230. package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.js.map +1 -1
  231. package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.cjs +1 -1
  232. package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.js +1 -1
  233. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.cjs +4 -2
  234. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.cjs.map +1 -1
  235. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.js +5 -3
  236. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.js.map +1 -1
  237. package/dist/martyrs/src/modules/products/components/elements/Price.vue.cjs +4 -2
  238. package/dist/martyrs/src/modules/products/components/elements/Price.vue.cjs.map +1 -1
  239. package/dist/martyrs/src/modules/products/components/elements/Price.vue.js +5 -3
  240. package/dist/martyrs/src/modules/products/components/elements/Price.vue.js.map +1 -1
  241. package/dist/martyrs/src/modules/products/components/elements/{THC.vue.cjs → THC.vue2.cjs} +2 -2
  242. package/dist/martyrs/src/modules/products/components/elements/THC.vue2.cjs.map +1 -0
  243. package/dist/martyrs/src/modules/products/components/elements/{THC.vue.js → THC.vue2.js} +2 -2
  244. package/dist/martyrs/src/modules/products/components/elements/THC.vue2.js.map +1 -0
  245. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs +5 -2
  246. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs.map +1 -1
  247. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +5 -2
  248. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js.map +1 -1
  249. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +4 -4
  250. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +4 -4
  251. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +1 -1
  252. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +1 -1
  253. package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs +8 -8
  254. package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs.map +1 -1
  255. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +8 -8
  256. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js.map +1 -1
  257. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.cjs +1 -1
  258. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +1 -1
  259. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs +1 -1
  260. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +1 -1
  261. package/dist/martyrs/src/modules/products/components/sections/EditIngredients.vue.cjs +1 -1
  262. package/dist/martyrs/src/modules/products/components/sections/EditIngredients.vue.js +1 -1
  263. package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.cjs +1 -1
  264. package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.js +1 -1
  265. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs +5 -3
  266. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs.map +1 -1
  267. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +5 -3
  268. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js.map +1 -1
  269. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.cjs +1 -1
  270. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +1 -1
  271. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.cjs +1 -1
  272. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +1 -1
  273. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.cjs +1 -1
  274. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js +1 -1
  275. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.cjs +2 -2
  276. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +2 -2
  277. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.cjs +1 -1
  278. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js +1 -1
  279. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs +2 -2
  280. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +2 -2
  281. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +2 -2
  282. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +2 -2
  283. package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.cjs +1 -1
  284. package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.js +1 -1
  285. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.cjs +1 -1
  286. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +1 -1
  287. package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.cjs +1 -1
  288. package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.js +1 -1
  289. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.cjs +1 -1
  290. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +1 -1
  291. package/dist/martyrs/src/modules/wallet/views/components/pages/Payments.vue.cjs +1 -1
  292. package/dist/martyrs/src/modules/wallet/views/components/pages/Payments.vue.js +1 -1
  293. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.cjs +1 -1
  294. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +1 -1
  295. package/dist/martyrs.cjs.js +1 -1
  296. package/dist/martyrs.css +1 -1
  297. package/dist/martyrs.es.js +1 -1
  298. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/utils.cjs +1 -1
  299. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/utils.js +1 -1
  300. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/utils.cjs +1 -1
  301. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/utils.js +1 -1
  302. package/dist/style.css +23 -23
  303. package/dist/{web-BklgIiYr.js → web-BkaOiiSn.js} +1 -1
  304. package/dist/{web-CQBm7C6L.cjs → web-CROHFHoW.cjs} +1 -1
  305. package/package.json +1 -1
  306. package/src/builder/modes/ssr.prod.js +2 -0
  307. package/src/builder/modes/ssr.rspack.dev.js +2 -0
  308. package/src/builder/templates/page.js +4 -0
  309. package/src/builder/templates/screen.js +4 -0
  310. package/src/components/Feed/Carousel.vue +3 -0
  311. package/src/components/Feed/Feed.vue +3 -0
  312. package/src/components/Tab/Tab.vue +2 -0
  313. package/src/components/UploadImage/UploadImage.vue +4 -4
  314. package/src/modules/community/components/blocks/CardBlogpost.vue +2 -7
  315. package/src/modules/community/components/blocks/FooterBlogpost.vue +2 -13
  316. package/src/modules/events/components/pages/Event.vue +2 -0
  317. package/src/modules/globals/TASK.MD +105 -1
  318. package/src/modules/globals/views/classes/globals.app.js +76 -48
  319. package/src/modules/globals/views/components/blocks/PopupDateSelector.vue +2 -0
  320. package/src/modules/globals/views/components/sections/Filters.vue +1 -1
  321. package/src/modules/globals/views/plugins/alert.plugin.js +1 -0
  322. package/src/modules/globals/views/utils/vue-app-renderer.js +25 -1
  323. package/src/modules/landing/components/sections/SectionGuide.vue +2 -2
  324. package/src/modules/orders/components/blocks/CardOrderItem.vue +2 -0
  325. package/src/modules/orders/components/blocks/CardOrderVar1.vue +12 -1
  326. package/src/modules/orders/components/pages/OrderBackoffice.vue +2 -0
  327. package/src/modules/orders/components/pages/OrderCreateBackoffice.vue +1 -1
  328. package/src/modules/orders/components/pages/Orders.vue +2 -0
  329. package/src/modules/orders/components/partials/ShopCart.vue +2 -0
  330. package/src/modules/products/components/blocks/CardCategory.vue +6 -0
  331. package/src/modules/products/components/blocks/ProductDiscounts.vue +3 -0
  332. package/src/modules/products/components/elements/Price.vue +3 -0
  333. package/src/modules/products/components/pages/Categories.vue +4 -1
  334. package/src/modules/products/components/pages/Products.vue +1 -1
  335. package/src/modules/products/components/sections/EditVariants.vue +2 -0
  336. package/dist/martyrs/src/components/Dropdown/Dropdown.vue2.cjs.map +0 -1
  337. package/dist/martyrs/src/components/Feed/Feed.vue.cjs.map +0 -1
  338. package/dist/martyrs/src/components/Feed/Feed.vue.js.map +0 -1
  339. package/dist/martyrs/src/components/Field/Field.vue.js.map +0 -1
  340. package/dist/martyrs/src/components/FieldTags/BlockTags.vue.js.map +0 -1
  341. package/dist/martyrs/src/components/Menu/Menu.vue2.cjs.map +0 -1
  342. package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +0 -1
  343. package/dist/martyrs/src/components/UploadImage/UploadImage.vue.cjs.map +0 -1
  344. package/dist/martyrs/src/components/UploadImage/UploadImage.vue.js.map +0 -1
  345. package/dist/martyrs/src/modules/products/components/elements/THC.vue.cjs.map +0 -1
  346. package/dist/martyrs/src/modules/products/components/elements/THC.vue.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { getCurrentInstance, computed, ref, createElementBlock, openBlock, createElementVNode, createBlock, renderSlot, createCommentVNode, toDisplayString, createTextVNode, createVNode, unref, Fragment } from "vue";
1
+ import { getCurrentInstance, computed, ref, createElementBlock, openBlock, createElementVNode, createBlock, renderSlot, createCommentVNode, toDisplayString, unref, createTextVNode, createVNode, Fragment } from "vue";
2
2
  import { useRouter } from "vue-router";
3
3
  import { useI18n } from "vue-i18n";
4
4
  import _sfc_main$2 from "../../../icons/navigation/IconAdd.vue.js";
@@ -7,6 +7,7 @@ import _sfc_main$3 from "../../../icons/navigation/IconMinus.vue.js";
7
7
  import _sfc_main$4 from "../../../icons/navigation/IconDelete.vue.js";
8
8
  import _sfc_main$1 from "../../../icons/entities/IconCalendar.vue.js";
9
9
  import PlaceholderImage from "../../../icons/placeholders/PlaceholderImage.vue.js";
10
+ import { useGlobalMixins } from "../../../globals/views/mixins/mixins.js";
10
11
  const _hoisted_1 = { class: "gap-small pos-relative cols-1" };
11
12
  const _hoisted_2 = { class: "pos-relative w-100 gap-thin flex-stretch flex-nowrap flex" };
12
13
  const _hoisted_3 = {
@@ -66,6 +67,7 @@ const _sfc_main = {
66
67
  useRouter();
67
68
  const { locale } = useI18n();
68
69
  const { proxy } = getCurrentInstance();
70
+ const { returnCurrency, formatDate } = useGlobalMixins();
69
71
  const emits = __emit;
70
72
  const props = __props;
71
73
  const isRental = computed(() => props.listing === "rent");
@@ -140,13 +142,13 @@ const _sfc_main = {
140
142
  createElementVNode("p", _hoisted_6, toDisplayString(__props.name), 1),
141
143
  createElementVNode("div", _hoisted_7, [
142
144
  __props.price != null && __props.quantity != null ? (openBlock(), createElementBlock("p", _hoisted_8, [
143
- createElementVNode("span", _hoisted_9, toDisplayString(_ctx.returnCurrency()) + toDisplayString(totalPrice.value), 1),
145
+ createElementVNode("span", _hoisted_9, toDisplayString(unref(returnCurrency)()) + toDisplayString(totalPrice.value), 1),
144
146
  isRental.value && rentDates.value.start && rentDates.value.end ? (openBlock(), createElementBlock("span", _hoisted_10, [
145
- createTextVNode(toDisplayString(_ctx.returnCurrency()) + toDisplayString(__props.price) + " ", 1),
147
+ createTextVNode(toDisplayString(unref(returnCurrency)()) + toDisplayString(__props.price) + " ", 1),
146
148
  __props.quantity > 1 ? (openBlock(), createElementBlock("span", _hoisted_11, "× " + toDisplayString(__props.quantity) + " " + toDisplayString(__props.unit || "pcs"), 1)) : createCommentVNode("", true),
147
149
  createTextVNode(" × " + toDisplayString(rentalDays.value) + " days ", 1)
148
- ])) : (openBlock(), createElementBlock("span", _hoisted_12, toDisplayString(_ctx.returnCurrency()) + toDisplayString(__props.price) + " × " + toDisplayString(__props.quantity || 0) + " " + toDisplayString(__props.unit || "pcs"), 1))
149
- ])) : __props.price != null && __props.quantity == null ? (openBlock(), createElementBlock("p", _hoisted_13, toDisplayString(_ctx.returnCurrency()) + toDisplayString(__props.price), 1)) : __props.price == null && __props.quantity != null ? (openBlock(), createElementBlock("p", _hoisted_14, toDisplayString(__props.quantity) + " " + toDisplayString(__props.unit || "pcs"), 1)) : createCommentVNode("", true)
150
+ ])) : (openBlock(), createElementBlock("span", _hoisted_12, toDisplayString(unref(returnCurrency)()) + toDisplayString(__props.price) + " × " + toDisplayString(__props.quantity || 0) + " " + toDisplayString(__props.unit || "pcs"), 1))
151
+ ])) : __props.price != null && __props.quantity == null ? (openBlock(), createElementBlock("p", _hoisted_13, toDisplayString(unref(returnCurrency)()) + toDisplayString(__props.price), 1)) : __props.price == null && __props.quantity != null ? (openBlock(), createElementBlock("p", _hoisted_14, toDisplayString(__props.quantity) + " " + toDisplayString(__props.unit || "pcs"), 1)) : createCommentVNode("", true)
150
152
  ]),
151
153
  renderSlot(_ctx.$slots, "default"),
152
154
  showControls.value ? (openBlock(), createElementBlock("div", _hoisted_15, [
@@ -158,7 +160,7 @@ const _sfc_main = {
158
160
  createElementVNode("p", {
159
161
  onClick: _cache[0] || (_cache[0] = ($event) => __props.editable ? openRentDatePopup : null),
160
162
  class: "t-medium t-transp"
161
- }, toDisplayString(_ctx.formatDate(rentDates.value.start, { dayMonth: true, language: unref(locale) })) + " - " + toDisplayString(_ctx.formatDate(rentDates.value.end, { dayMonth: true, language: unref(locale) })), 1)
163
+ }, toDisplayString(unref(formatDate)(rentDates.value.start, { dayMonth: true, language: unref(locale) })) + " - " + toDisplayString(unref(formatDate)(rentDates.value.end, { dayMonth: true, language: unref(locale) })), 1)
162
164
  ])) : createCommentVNode("", true),
163
165
  __props.editable && !isRental.value ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
164
166
  createVNode(_sfc_main$2, {
@@ -1 +1 @@
1
- {"version":3,"file":"CardOrderItem.vue.js","sources":["../../../../../../../src/modules/orders/components/blocks/CardOrderItem.vue"],"sourcesContent":["<template>\n <div class=\"gap-small pos-relative cols-1\">\n <div class=\"pos-relative w-100 gap-thin flex-stretch flex-nowrap flex\">\n <div class=\"bg-light h-100 o-hidden pos-relative radius-small aspect-1x1\" style=\"flex: 1 0 auto\">\n <img \n v-if=\"images && images[0]\"\n loading=\"lazy\" \n class=\"w-100 object-fit-cover pos-absolute h-100\" \n :src=\"(FILE_SERVER_URL || '') + images[0]\"\n >\n <PlaceholderImage\n v-else \n class=\"bg-light pos-absolute radius-small w-100 h-100\"\n />\n </div>\n \n <div class=\"w-100 pos-relative\">\n <p class=\"t-truncate t-medium\">{{ name }}</p>\n \n <div class=\"mn-t-thin\">\n <p v-if=\"price != null && quantity != null\">\n <span class=\"t-second mn-r-micro d-inline-block t-demi\">\n {{ returnCurrency() }}{{ totalPrice }}\n </span>\n <span v-if=\"isRental && rentDates.start && rentDates.end\" class=\"p-small t-transp\">\n {{ returnCurrency() }}{{ price }} \n <span v-if=\"quantity > 1\">× {{ quantity }} {{ unit || 'pcs' }}</span>\n × {{ rentalDays }} days\n </span>\n <span v-else class=\"p-small t-transp\">{{ returnCurrency() }}{{ price }} × {{ quantity || 0 }} {{ unit || 'pcs' }}</span>\n </p>\n \n <p v-else-if=\"price != null && quantity == null\" class=\"t-second mn-r-micro d-inline-block t-demi\">\n {{ returnCurrency() }}{{ price }}\n </p>\n \n <p v-else-if=\"price == null && quantity != null\" class=\"p-small t-transp\">\n {{ quantity }} {{ unit || 'pcs' }}\n </p>\n </div>\n \n <slot></slot>\n <div v-if=\"showControls\" class=\"mn-t-thin gap-thin flex-nojustify flex\">\n <div \n v-if=\"isRental && rentDates.start && rentDates.end\" \n class=\"flex gap-thin flex-v-center cursor-pointer pd-thin w-100 bg-light radius-small\"\n >\n <IconCalendar\n @click=\"openRentDatePopup\"\n class=\"cursor-pointer i-medium\"\n />\n <p \n @click=\"editable ? openRentDatePopup : null\" \n class=\"t-medium t-transp\"\n >\n {{ formatDate(rentDates.start, { dayMonth: true, language: locale }) }} - \n {{ formatDate(rentDates.end, { dayMonth: true, language: locale }) }}\n </p>\n </div>\n\n <template v-if=\"editable && !isRental\">\n <IconAdd\n @click=\"increase\"\n class=\"hover-scale-1 cursor-pointer bg-light i-big pd-thin radius-small\"\n />\n <IconMinus\n @click=\"decrease\"\n class=\"hover-scale-1 cursor-pointer bg-light i-big pd-thin radius-small\"\n />\n <IconDelete\n @click=\"remove\"\n class=\"hover-scale-1 cursor-pointer bg-light i-big pd-thin radius-small\"\n />\n </template>\n\n <IconEdit\n v-if=\"isRental && editable\"\n @click=\"openRentDatePopup\"\n class=\"hover-scale-1 cursor-pointer bg-light i-big pd-small radius-small\"\n />\n </div>\n </div>\n </div>\n \n </div>\n</template>\n\n<script setup>\nimport { ref, computed, getCurrentInstance } from 'vue'\nimport { useRouter } from 'vue-router'\nimport { useI18n } from 'vue-i18n'\nimport IconAdd from '@martyrs/src/modules/icons/navigation/IconAdd.vue'\nimport IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue'\nimport IconMinus from '@martyrs/src/modules/icons/navigation/IconMinus.vue'\nimport IconDelete from '@martyrs/src/modules/icons/navigation/IconDelete.vue'\nimport IconCalendar from '@martyrs/src/modules/icons/entities/IconCalendar.vue'\nimport PlaceholderImage from '@martyrs/src/modules/icons/placeholders/PlaceholderImage.vue'\n\nconst router = useRouter()\nconst { locale } = useI18n()\nconst { proxy } = getCurrentInstance()\n\nconst emits = defineEmits(['increase', 'decrease', 'remove', 'updateRentDates'])\nconst props = defineProps({\n productId: String,\n variantId: String,\n images: Array,\n name: String,\n quantity: Number,\n unit: String,\n dates: Object,\n listing: String,\n price: Number,\n editable: Boolean,\n increase: Function,\n decrease: Function,\n remove: Function,\n})\n\nconst isRental = computed(() => props.listing === 'rent')\nconst showControls = computed(() => props.editable || isRental.value)\n\nconst rentDates = ref({\n start: props.dates?.start || null,\n end: props.dates?.end || null\n})\n\nconst rentalDays = computed(() => {\n if (!rentDates.value.start || !rentDates.value.end) return 0\n const start = new Date(rentDates.value.start)\n const end = new Date(rentDates.value.end)\n return Math.ceil(Math.abs(end - start) / (1000 * 60 * 60 * 24)) + 1\n})\n\nconst totalPrice = computed(() => {\n if (isRental.value) {\n return rentalDays.value * props.price * props.quantity\n }\n return props.quantity * props.price\n})\n\nconst isRentDatePopupOpen = ref(false)\n\nfunction increase() {\n props.increase?.()\n emits('increase')\n}\n\nfunction decrease() {\n props.decrease?.()\n emits('decrease')\n}\n\nfunction remove() {\n props.remove?.()\n emits('remove')\n}\n\nasync function openRentDatePopup() {\n try {\n const selectedDates = await proxy.$dateSelector(\n props.productId,\n props.variantId,\n props.quantity,\n props.price,\n { \n showCancelButton: props.editable,\n onCancel: props.editable ? () => props.remove?.() : null\n }\n );\n \n if (selectedDates) {\n updateRentDates(selectedDates)\n }\n } catch (error) {\n console.error('Error selecting dates:', error)\n }\n}\n\nfunction updateRentDates(dates) {\n rentDates.value = dates\n emits('updateRentDates', props.productId, props.variantId, dates)\n}\n</script>\n\n<style lang=\"scss\">\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkGe,cAAS;AACxB,UAAM,EAAE,OAAM,IAAK,QAAO;AAC1B,UAAM,EAAE,MAAK,IAAK,mBAAkB;AAEpC,UAAM,QAAQ;AACd,UAAM,QAAQ;AAgBd,UAAM,WAAW,SAAS,MAAM,MAAM,YAAY,MAAM;AACxD,UAAM,eAAe,SAAS,MAAM,MAAM,YAAY,SAAS,KAAK;AAEpE,UAAM,YAAY,IAAI;AAAA,MACpB,OAAO,MAAM,OAAO,SAAS;AAAA,MAC7B,KAAK,MAAM,OAAO,OAAO;AAAA,IAC3B,CAAC;AAED,UAAM,aAAa,SAAS,MAAM;AAChC,UAAI,CAAC,UAAU,MAAM,SAAS,CAAC,UAAU,MAAM,IAAK,QAAO;AAC3D,YAAM,QAAQ,IAAI,KAAK,UAAU,MAAM,KAAK;AAC5C,YAAM,MAAM,IAAI,KAAK,UAAU,MAAM,GAAG;AACxC,aAAO,KAAK,KAAK,KAAK,IAAI,MAAM,KAAK,KAAK,MAAO,KAAK,KAAK,GAAG,IAAI;AAAA,IACpE,CAAC;AAED,UAAM,aAAa,SAAS,MAAM;AAChC,UAAI,SAAS,OAAO;AAClB,eAAO,WAAW,QAAQ,MAAM,QAAQ,MAAM;AAAA,MAChD;AACA,aAAO,MAAM,WAAW,MAAM;AAAA,IAChC,CAAC;AAE2B,QAAI,KAAK;AAErC,aAAS,WAAW;AAClB,YAAM,WAAQ;AACd,YAAM,UAAU;AAAA,IAClB;AAEA,aAAS,WAAW;AAClB,YAAM,WAAQ;AACd,YAAM,UAAU;AAAA,IAClB;AAEA,aAAS,SAAS;AAChB,YAAM,SAAM;AACZ,YAAM,QAAQ;AAAA,IAChB;AAEA,mBAAe,oBAAoB;AACjC,UAAI;AACF,cAAM,gBAAgB,MAAM,MAAM;AAAA,UAChC,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN;AAAA,YACE,kBAAkB,MAAM;AAAA,YACxB,UAAU,MAAM,WAAW,MAAM,MAAM,SAAM,IAAO;AAAA,UAC5D;AAAA,QACA;AAEI,YAAI,eAAe;AACjB,0BAAgB,aAAa;AAAA,QAC/B;AAAA,MACF,SAAS,OAAO;AACd,gBAAQ,MAAM,0BAA0B,KAAK;AAAA,MAC/C;AAAA,IACF;AAEA,aAAS,gBAAgB,OAAO;AAC9B,gBAAU,QAAQ;AAClB,YAAM,mBAAmB,MAAM,WAAW,MAAM,WAAW,KAAK;AAAA,IAClE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"CardOrderItem.vue.js","sources":["../../../../../../../src/modules/orders/components/blocks/CardOrderItem.vue"],"sourcesContent":["<template>\n <div class=\"gap-small pos-relative cols-1\">\n <div class=\"pos-relative w-100 gap-thin flex-stretch flex-nowrap flex\">\n <div class=\"bg-light h-100 o-hidden pos-relative radius-small aspect-1x1\" style=\"flex: 1 0 auto\">\n <img \n v-if=\"images && images[0]\"\n loading=\"lazy\" \n class=\"w-100 object-fit-cover pos-absolute h-100\" \n :src=\"(FILE_SERVER_URL || '') + images[0]\"\n >\n <PlaceholderImage\n v-else \n class=\"bg-light pos-absolute radius-small w-100 h-100\"\n />\n </div>\n \n <div class=\"w-100 pos-relative\">\n <p class=\"t-truncate t-medium\">{{ name }}</p>\n \n <div class=\"mn-t-thin\">\n <p v-if=\"price != null && quantity != null\">\n <span class=\"t-second mn-r-micro d-inline-block t-demi\">\n {{ returnCurrency() }}{{ totalPrice }}\n </span>\n <span v-if=\"isRental && rentDates.start && rentDates.end\" class=\"p-small t-transp\">\n {{ returnCurrency() }}{{ price }} \n <span v-if=\"quantity > 1\">× {{ quantity }} {{ unit || 'pcs' }}</span>\n × {{ rentalDays }} days\n </span>\n <span v-else class=\"p-small t-transp\">{{ returnCurrency() }}{{ price }} × {{ quantity || 0 }} {{ unit || 'pcs' }}</span>\n </p>\n \n <p v-else-if=\"price != null && quantity == null\" class=\"t-second mn-r-micro d-inline-block t-demi\">\n {{ returnCurrency() }}{{ price }}\n </p>\n \n <p v-else-if=\"price == null && quantity != null\" class=\"p-small t-transp\">\n {{ quantity }} {{ unit || 'pcs' }}\n </p>\n </div>\n \n <slot></slot>\n <div v-if=\"showControls\" class=\"mn-t-thin gap-thin flex-nojustify flex\">\n <div \n v-if=\"isRental && rentDates.start && rentDates.end\" \n class=\"flex gap-thin flex-v-center cursor-pointer pd-thin w-100 bg-light radius-small\"\n >\n <IconCalendar\n @click=\"openRentDatePopup\"\n class=\"cursor-pointer i-medium\"\n />\n <p \n @click=\"editable ? openRentDatePopup : null\" \n class=\"t-medium t-transp\"\n >\n {{ formatDate(rentDates.start, { dayMonth: true, language: locale }) }} - \n {{ formatDate(rentDates.end, { dayMonth: true, language: locale }) }}\n </p>\n </div>\n\n <template v-if=\"editable && !isRental\">\n <IconAdd\n @click=\"increase\"\n class=\"hover-scale-1 cursor-pointer bg-light i-big pd-thin radius-small\"\n />\n <IconMinus\n @click=\"decrease\"\n class=\"hover-scale-1 cursor-pointer bg-light i-big pd-thin radius-small\"\n />\n <IconDelete\n @click=\"remove\"\n class=\"hover-scale-1 cursor-pointer bg-light i-big pd-thin radius-small\"\n />\n </template>\n\n <IconEdit\n v-if=\"isRental && editable\"\n @click=\"openRentDatePopup\"\n class=\"hover-scale-1 cursor-pointer bg-light i-big pd-small radius-small\"\n />\n </div>\n </div>\n </div>\n \n </div>\n</template>\n\n<script setup>\nimport { ref, computed, getCurrentInstance } from 'vue'\nimport { useRouter } from 'vue-router'\nimport { useI18n } from 'vue-i18n'\nimport IconAdd from '@martyrs/src/modules/icons/navigation/IconAdd.vue'\nimport IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue'\nimport IconMinus from '@martyrs/src/modules/icons/navigation/IconMinus.vue'\nimport IconDelete from '@martyrs/src/modules/icons/navigation/IconDelete.vue'\nimport IconCalendar from '@martyrs/src/modules/icons/entities/IconCalendar.vue'\nimport PlaceholderImage from '@martyrs/src/modules/icons/placeholders/PlaceholderImage.vue'\nimport { useGlobalMixins } from '@martyrs/src/modules/globals/views/mixins/mixins.js'\n\nconst router = useRouter()\nconst { locale } = useI18n()\nconst { proxy } = getCurrentInstance()\nconst { returnCurrency, formatDate } = useGlobalMixins()\n\nconst emits = defineEmits(['increase', 'decrease', 'remove', 'updateRentDates'])\nconst props = defineProps({\n productId: String,\n variantId: String,\n images: Array,\n name: String,\n quantity: Number,\n unit: String,\n dates: Object,\n listing: String,\n price: Number,\n editable: Boolean,\n increase: Function,\n decrease: Function,\n remove: Function,\n})\n\nconst isRental = computed(() => props.listing === 'rent')\nconst showControls = computed(() => props.editable || isRental.value)\n\nconst rentDates = ref({\n start: props.dates?.start || null,\n end: props.dates?.end || null\n})\n\nconst rentalDays = computed(() => {\n if (!rentDates.value.start || !rentDates.value.end) return 0\n const start = new Date(rentDates.value.start)\n const end = new Date(rentDates.value.end)\n return Math.ceil(Math.abs(end - start) / (1000 * 60 * 60 * 24)) + 1\n})\n\nconst totalPrice = computed(() => {\n if (isRental.value) {\n return rentalDays.value * props.price * props.quantity\n }\n return props.quantity * props.price\n})\n\nconst isRentDatePopupOpen = ref(false)\n\nfunction increase() {\n props.increase?.()\n emits('increase')\n}\n\nfunction decrease() {\n props.decrease?.()\n emits('decrease')\n}\n\nfunction remove() {\n props.remove?.()\n emits('remove')\n}\n\nasync function openRentDatePopup() {\n try {\n const selectedDates = await proxy.$dateSelector(\n props.productId,\n props.variantId,\n props.quantity,\n props.price,\n { \n showCancelButton: props.editable,\n onCancel: props.editable ? () => props.remove?.() : null\n }\n );\n \n if (selectedDates) {\n updateRentDates(selectedDates)\n }\n } catch (error) {\n console.error('Error selecting dates:', error)\n }\n}\n\nfunction updateRentDates(dates) {\n rentDates.value = dates\n emits('updateRentDates', props.productId, props.variantId, dates)\n}\n</script>\n\n<style lang=\"scss\">\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmGe,cAAS;AACxB,UAAM,EAAE,OAAM,IAAK,QAAO;AAC1B,UAAM,EAAE,MAAK,IAAK,mBAAkB;AACpC,UAAM,EAAE,gBAAgB,WAAU,IAAK,gBAAe;AAEtD,UAAM,QAAQ;AACd,UAAM,QAAQ;AAgBd,UAAM,WAAW,SAAS,MAAM,MAAM,YAAY,MAAM;AACxD,UAAM,eAAe,SAAS,MAAM,MAAM,YAAY,SAAS,KAAK;AAEpE,UAAM,YAAY,IAAI;AAAA,MACpB,OAAO,MAAM,OAAO,SAAS;AAAA,MAC7B,KAAK,MAAM,OAAO,OAAO;AAAA,IAC3B,CAAC;AAED,UAAM,aAAa,SAAS,MAAM;AAChC,UAAI,CAAC,UAAU,MAAM,SAAS,CAAC,UAAU,MAAM,IAAK,QAAO;AAC3D,YAAM,QAAQ,IAAI,KAAK,UAAU,MAAM,KAAK;AAC5C,YAAM,MAAM,IAAI,KAAK,UAAU,MAAM,GAAG;AACxC,aAAO,KAAK,KAAK,KAAK,IAAI,MAAM,KAAK,KAAK,MAAO,KAAK,KAAK,GAAG,IAAI;AAAA,IACpE,CAAC;AAED,UAAM,aAAa,SAAS,MAAM;AAChC,UAAI,SAAS,OAAO;AAClB,eAAO,WAAW,QAAQ,MAAM,QAAQ,MAAM;AAAA,MAChD;AACA,aAAO,MAAM,WAAW,MAAM;AAAA,IAChC,CAAC;AAE2B,QAAI,KAAK;AAErC,aAAS,WAAW;AAClB,YAAM,WAAQ;AACd,YAAM,UAAU;AAAA,IAClB;AAEA,aAAS,WAAW;AAClB,YAAM,WAAQ;AACd,YAAM,UAAU;AAAA,IAClB;AAEA,aAAS,SAAS;AAChB,YAAM,SAAM;AACZ,YAAM,QAAQ;AAAA,IAChB;AAEA,mBAAe,oBAAoB;AACjC,UAAI;AACF,cAAM,gBAAgB,MAAM,MAAM;AAAA,UAChC,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,UACN;AAAA,YACE,kBAAkB,MAAM;AAAA,YACxB,UAAU,MAAM,WAAW,MAAM,MAAM,SAAM,IAAO;AAAA,UAC5D;AAAA,QACA;AAEI,YAAI,eAAe;AACjB,0BAAgB,aAAa;AAAA,QAC/B;AAAA,MACF,SAAS,OAAO;AACd,gBAAQ,MAAM,0BAA0B,KAAK;AAAA,MAC/C;AAAA,IACF;AAEA,aAAS,gBAAgB,OAAO;AAC9B,gBAAU,QAAQ;AAClB,YAAM,mBAAmB,MAAM,WAAW,MAAM,WAAW,KAAK;AAAA,IAClE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -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 Block = require("../../../../components/Block/Block.vue.cjs");
5
- const Field = require("../../../../components/Field/Field.vue.cjs");
5
+ const Field = require("../../../../components/Field/Field.vue2.cjs");
6
6
  const Select = require("../../../../components/Select/Select.vue.cjs");
7
7
  const Button = require("../../../../components/Button/Button.vue.cjs");
8
8
  const _hoisted_1 = { class: "gap-thin flex mn-t-small" };
@@ -1,6 +1,6 @@
1
1
  import { mergeModels, useModel, ref, watch, createBlock, openBlock, withCtx, createVNode, createElementVNode, unref, isRef, createTextVNode, toDisplayString } from "vue";
2
2
  import _sfc_main$1 from "../../../../components/Block/Block.vue.js";
3
- import Field from "../../../../components/Field/Field.vue.js";
3
+ import Field from "../../../../components/Field/Field.vue2.js";
4
4
  import Select from "../../../../components/Select/Select.vue.js";
5
5
  import _sfc_main$2 from "../../../../components/Button/Button.vue.js";
6
6
  const _hoisted_1 = { class: "gap-thin flex mn-t-small" };
@@ -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 Block = require("../../../../components/Block/Block.vue.cjs");
5
- const Field = require("../../../../components/Field/Field.vue.cjs");
5
+ const Field = require("../../../../components/Field/Field.vue2.cjs");
6
6
  const FieldPhone = require("../../../../components/FieldPhone/FieldPhone.vue.cjs");
7
7
  const Select = require("../../../../components/Select/Select.vue.cjs");
8
8
  const Button = require("../../../../components/Button/Button.vue.cjs");
@@ -1,6 +1,6 @@
1
1
  import { mergeModels, useModel, ref, watch, createBlock, openBlock, withCtx, createVNode, createElementVNode, createCommentVNode, createElementBlock, unref, isRef, createTextVNode, toDisplayString } from "vue";
2
2
  import _sfc_main$1 from "../../../../components/Block/Block.vue.js";
3
- import Field from "../../../../components/Field/Field.vue.js";
3
+ import Field from "../../../../components/Field/Field.vue2.js";
4
4
  import _sfc_main$2 from "../../../../components/FieldPhone/FieldPhone.vue.js";
5
5
  import Select from "../../../../components/Select/Select.vue.js";
6
6
  import _sfc_main$3 from "../../../../components/Button/Button.vue.js";
@@ -7,7 +7,7 @@ const Block = require("../../../../components/Block/Block.vue.cjs");
7
7
  const IconCross = require("../../../icons/navigation/IconCross.vue.cjs");
8
8
  ;/* empty css */
9
9
  const Popup = require("../../../../components/Popup/Popup.vue.cjs");
10
- const Feed = require("../../../../components/Feed/Feed.vue.cjs");
10
+ const Feed = require("../../../../components/Feed/Feed.vue2.cjs");
11
11
  const BlockSearch = require("../../../globals/views/components/blocks/BlockSearch.vue.cjs");
12
12
  const Card = require("../../../globals/views/components/blocks/Card.vue.cjs");
13
13
  const CardCustomer = require("../blocks/CardCustomer.vue.cjs");
@@ -5,7 +5,7 @@ import _sfc_main$1 from "../../../../components/Block/Block.vue.js";
5
5
  import _sfc_main$3 from "../../../icons/navigation/IconCross.vue.js";
6
6
  /* empty css */
7
7
  import _sfc_main$6 from "../../../../components/Popup/Popup.vue.js";
8
- import _sfc_main$5 from "../../../../components/Feed/Feed.vue.js";
8
+ import _sfc_main$5 from "../../../../components/Feed/Feed.vue2.js";
9
9
  import _sfc_main$4 from "../../../globals/views/components/blocks/BlockSearch.vue.js";
10
10
  import _sfc_main$2 from "../../../globals/views/components/blocks/Card.vue.js";
11
11
  import CardCustomer from "../blocks/CardCustomer.vue.js";
@@ -6,7 +6,7 @@ const Block = require("../../../../components/Block/Block.vue.cjs");
6
6
  const Popup = require("../../../../components/Popup/Popup.vue.cjs");
7
7
  const applications = require("../../store/applications.cjs");
8
8
  const SectionPageTitle = require("../../../globals/views/components/sections/SectionPageTitle.vue.cjs");
9
- const Feed = require("../../../../components/Feed/Feed.vue.cjs");
9
+ const Feed = require("../../../../components/Feed/Feed.vue2.cjs");
10
10
  const CardApplication = require("../blocks/CardApplication.vue.cjs");
11
11
  const FormApplicationDetails = require("../forms/FormApplicationDetails.vue.cjs");
12
12
  const ApplicationDetails = require("../sections/ApplicationDetails.vue.cjs");
@@ -4,7 +4,7 @@ import _sfc_main$2 from "../../../../components/Block/Block.vue.js";
4
4
  import _sfc_main$4 from "../../../../components/Popup/Popup.vue.js";
5
5
  import applications from "../../store/applications.js";
6
6
  import _sfc_main$1 from "../../../globals/views/components/sections/SectionPageTitle.vue.js";
7
- import _sfc_main$3 from "../../../../components/Feed/Feed.vue.js";
7
+ import _sfc_main$3 from "../../../../components/Feed/Feed.vue2.js";
8
8
  import CardApplication from "../blocks/CardApplication.vue.js";
9
9
  import _sfc_main$5 from "../forms/FormApplicationDetails.vue.js";
10
10
  import ApplicationDetails from "../sections/ApplicationDetails.vue.js";
@@ -6,7 +6,7 @@ const Block = require("../../../../components/Block/Block.vue.cjs");
6
6
  const Popup = require("../../../../components/Popup/Popup.vue.cjs");
7
7
  const customers_store = require("../../store/customers.store.cjs");
8
8
  const SectionPageTitle = require("../../../globals/views/components/sections/SectionPageTitle.vue.cjs");
9
- const Feed = require("../../../../components/Feed/Feed.vue.cjs");
9
+ const Feed = require("../../../../components/Feed/Feed.vue2.cjs");
10
10
  const CardCustomer = require("../blocks/CardCustomer.vue.cjs");
11
11
  const FormCustomerDetails = require("../forms/FormCustomerDetails.vue.cjs");
12
12
  const CustomerDetails = require("../sections/CustomerDetails.vue.cjs");
@@ -4,7 +4,7 @@ import _sfc_main$2 from "../../../../components/Block/Block.vue.js";
4
4
  import _sfc_main$4 from "../../../../components/Popup/Popup.vue.js";
5
5
  import customers from "../../store/customers.store.js";
6
6
  import _sfc_main$1 from "../../../globals/views/components/sections/SectionPageTitle.vue.js";
7
- import _sfc_main$3 from "../../../../components/Feed/Feed.vue.js";
7
+ import _sfc_main$3 from "../../../../components/Feed/Feed.vue2.js";
8
8
  import CardCustomer from "../blocks/CardCustomer.vue.js";
9
9
  import _sfc_main$5 from "../forms/FormCustomerDetails.vue.js";
10
10
  import CustomerDetails from "../sections/CustomerDetails.vue.js";
@@ -16,6 +16,7 @@ const auth = require("../../../auth/views/store/auth.cjs");
16
16
  const orders = require("../../store/orders.cjs");
17
17
  const organizations = require("../../../organizations/store/organizations.cjs");
18
18
  const vueI18n = require("vue-i18n");
19
+ const mixins = require("../../../globals/views/mixins/mixins.cjs");
19
20
  ;/* empty css */
20
21
  const _pluginVue_exportHelper = require("../../../../../../_virtual/_plugin-vue_export-helper.cjs");
21
22
  const _hoisted_1 = {
@@ -73,6 +74,7 @@ const _sfc_main = {
73
74
  __name: "OrderBackoffice",
74
75
  setup(__props) {
75
76
  const { locale } = vueI18n.useI18n();
77
+ const { returnCurrency } = mixins.useGlobalMixins();
76
78
  const router = vueRouter.useRouter();
77
79
  const route = vueRouter.useRoute();
78
80
  const order = vue.ref(null);
@@ -275,7 +277,7 @@ const _sfc_main = {
275
277
  ]),
276
278
  vue.createVNode(PriceTotal.default, {
277
279
  totalPrice: vue.unref(cartTotalPrice),
278
- currency: _ctx.returnCurrency(),
280
+ currency: vue.unref(returnCurrency)(),
279
281
  showFees: globals.state.options?.orders?.showFees,
280
282
  feesRate: globals.state.options?.orders?.feesRate || 0,
281
283
  showVat: globals.state.options?.orders?.showVat,
@@ -388,7 +390,7 @@ const _sfc_main = {
388
390
  vue.createVNode(PriceTotal.default, {
389
391
  totalPrice: vue.unref(cartTotalPrice),
390
392
  deliveryRate: deliveryCost.value,
391
- currency: _ctx.returnCurrency(),
393
+ currency: vue.unref(returnCurrency)(),
392
394
  showFees: globals.state.options?.orders?.showFees,
393
395
  feesRate: globals.state.options?.orders?.feesRate || 0,
394
396
  showVat: globals.state.options?.orders?.showVat,
@@ -401,6 +403,6 @@ const _sfc_main = {
401
403
  };
402
404
  }
403
405
  };
404
- const OrderBackoffice = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-83eadb3a"]]);
406
+ const OrderBackoffice = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-895f54da"]]);
405
407
  exports.default = OrderBackoffice;
406
408
  //# sourceMappingURL=OrderBackoffice.vue.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"OrderBackoffice.vue.cjs","sources":["../../../../../../../src/modules/orders/components/pages/OrderBackoffice.vue"],"sourcesContent":["<template>\n\t<div v-if=\"order && orderOrganization\" class=\"pd-thin bg-white\"> \n\n\t <div v-if=\"order\" class=\"mn-b-thin pos-relative w-100 bg-main radius-medium pd-medium\">\n\t \t<div class=\"mn-b-small flex-nowrap flex\">\n\t\t \t<p class=\"t-medium p-medium\">\n\t\t \tOrder No: <span class=\"p-small t-transp\">#{{order._id}}</span>\n\t\t </p>\n\t\t\t</div>\n\n\t \t<div class=\"flex-nowrap flex gap-thin pos-relative \">\n\t\t <div v-for=\"(status, index) in globals.state.options.orders.statuses\" :key=\"index\" class=\"w-20\">\n\t\t <div\n\t\t \tclass=\"bg-white br-anim br-glow radius-extra h-1r w-100\"\n\t\t :class=\"\n\t\t\t\t\t { 'br-glow-anim': isActiveStatus(index) },\n\t\t\t\t\t { 't-transp': !isActiveStatus(index) },\n\t\t\t\t\t { 'blink': order.status === status.value && getNextStatus(order.status) }\n\t\t\t\t\t \"\n\t\t />\n\t\t <div \n\t\t \t:class=\"{ 't-transp': !isActiveStatus(index) }\"\n\t\t\t\t\t class=\"mn-t-thin p-small t-medium uppercase\">{{ status.value }}</div>\n\t\t \t</div>\n\t\t\t </div>\n\t </div>\n\n \t<Popup \n title=\"Payment Status\" \n @close-popup=\"closePaymentPopup\" \n :isPopupOpen=\"isOpenPaymentPopup\"\n class=\"bg-light w-min-25r w-max-25r radius-medium pd-big\"\n >\n \t<Select \n v-model:select=\"selectedPayments.type\"\n :property=\"'value'\"\n label=\"Type\"\n :options=\"[\n {name: 'Cash', value: 'cash'}, \n {name: 'Card', value: 'card'}, \n {name: 'Bank Transfer', value: 'bank'},\n ]\"\n placeholder=\"Select type of payment\" \n size=\"small\"\n class=\"bg-white mn-b-thin pd-regular radius-small w-100\"\n />\n\n <Select \n v-model:select=\"selectedPayments.status\"\n :property=\"'value'\"\n label=\"Status\"\n :options=\"[\n {name: 'Unpaid', value: 'unpaid'}, \n {name: 'Paid', value: 'paid'}, \n {name: 'Refunded', value: 'refunded'},\n ]\"\n placeholder=\"Select status of payment\" \n size=\"small\"\n class=\"bg-white mn-b-small pd-regular radius-small w-100\"\n />\n\n\n <Button :submit=\"changePaymentStatus\" class=\"t-white w-100 bg-second\">\n\t\t\t\t<span>Change Status</span>\n\t\t\t</Button>\n\t \t</Popup>\n\n\t <Popup \n title=\"Change order status\" \n @close-popup=\"closeStatusPopup\" \n :isPopupOpen=\"isOpeStatusPopup\"\n class=\"bg-light w-min-30r w-max-30r radius-medium pd-big\"\n >\n\n\t\t\t<!-- Добавить выбор примерного времени -->\n\n \t<ul class=\"flex gap-thin flex-column mn-b-thin\">\n \t\t\t<CardOrderItem\n \t\t\t\tv-for=\"(product, index) in order.positions\" \n \t\t\t\t:key=\"`${product._id}_${product.variant || 'no-variant'}_${index}`\"\n \t\t\t\t:editable=\"!order.status_history || order.status_history.length <= 1\" \n \t\t\t\t:productId=\"product._id\"\n \t\t\t\t:variantId=\"product.variant\"\n \t\t\t\t:images=\"product.images\"\n \t\t\t\t:name=\"product.name\"\n \t\t\t\t:quantity=\"product.quantity\"\n \t\t\t\t:unit=\"product.unit\"\n \t\t\t\t:dates=\"product.date\"\n \t\t\t\t:listing=\"product.listing\"\n \t\t\t\t:price=\"product.price\"\n \t\t\t\t:increase=\"() => orders.mutations.incrementItemQuantity(order, product._id, product.variant)\"\n\t :decrease=\"() => orders.mutations.decrementItemQuantity(order, product._id, product.variant)\"\n\t :remove=\"() => orders.mutations.removeProduct(order, product._id, product.variant)\"\n\t @updateRentDates=\"(productId, variantId, dates) => shopcart.actions.updateRentDates({ positions: order.positions, productId, variantId, dates })\"\n \t\t\t\tclass=\"bg-white radius-small pd-small\"\n \t\t\t/>\n </ul>\n \n <PriceTotal \n :totalPrice=\"cartTotalPrice\"\n :currency=\"returnCurrency()\"\n :showFees=\"globals.state.options?.orders?.showFees\"\n :feesRate=\"globals.state.options?.orders?.feesRate || 0\"\n :showVat=\"globals.state.options?.orders?.showVat\"\n :vatRate=\"globals.state.options?.orders?.vatRate || 0\"\n />\n\n \t<Button :submit=\"setNextStatus\" class=\"t-white w-100 bg-second\">\n\t\t\t\t<span>{{'Confirm Changing to ' + (getNextStatus(order.status)).label}}</span>\n\t\t\t</Button>\n\t \t</Popup>\n\n\n\t \n\t <div v-if=\"order\" class=\"gap-thin cols-2 mobile:cols-1\">\n\n\t <div class=\"w-100\">\n\n\n\t\t <CardOrganization \n\t\t \tv-if=\"orderOrganization[0]\"\n\t\t :organization=\"orderOrganization[0]\"\n\t\t :showRating=\"true\"\n\t\t :showFollowers=\"false\"\n\t\t :showProducts=\"false\"\n\t\t class=\"bg-light mn-b-thin w-100 o-hidden radius-medium pd-small \"\n\t\t />\n\n\n\t\t <div \n\t\t \tclass=\"mn-b-thin bg-light w-100 o-hidden radius-medium \"\n\t\t >\n\t\t \t<div class=\"pd-small flex-nowrap flex\">\n\t\t\t \t<div class=\"mn-r-auto\">\n\t\t\t\t \t<span class=\"d-block t-medium p-medium mn-b-thin\">Order is</span>\n\t\t\t\t\t <span class=\" t-lh-075 h2 d-block mn-b-small\">{{order.status}}</span>\n\t\t\t\t\t <p class=\"pd-thin radius-extra bg-black t-white w-max\">{{formatDate(order.updatedAt, {language: locale })}}</p>\n\t\t\t\t\t </div>\n\t\t\t\t\t <!-- <div class=\"t-right\">\n\t\t\t\t\t \tCancel order<br>\n\t\t\t\t\t \tExchange item\n\t\t\t\t\t \t<hr class=\"mn-b-thin mn-t-thin\">\n\t\t\t\t\t \tFor Delivery Queries Contact Us\n\t\t\t\t\t \t\n\t\t\t\t\t </div> -->\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div v-if=\"order.customer.target?.number\" class=\"pd-small flex flex-nowrap flex-v-center br-t br-black-transp-10 br-solid\">\n\t\t\t \t<p class=\"w-100 t-medium p-medium\">\n\t\t\t \tPhone\n\t\t\t </p>\n\n\t\t\t <p class=\"w-100 t-right \">\n\t\t\t \t{{order.customer.target?.number || 'Not specified'}}\n\t\t\t </p>\n\t\t\t </div>\n\n\t\t\t <div class=\"pd-small flex flex-nowrap flex-v-center br-t br-black-transp-10 br-solid\">\n\t\t\t \t<p class=\"t-medium p-medium\">\n\t\t\t \tAddress\n\t\t\t </p>\n\n\t\t\t <p class=\"w-100 t-right\">\n\t\t\t\t\t\t\t{{order.delivery.address || (order.delivery.spot[0]?.profile.name + (order.delivery.spot[0]?.address ? ', ' + order.delivery.spot[0].address : '')) || 'Not specified'}}\n\t\t\t </p>\n\n\n\n\t\t\t </div>\n\n\n\t\t\t <div v-if=\"order.comment\" class=\"pos-relative radius-thin mn-t-zero mn-thin bg-fifth-transp-10 pd-small\">\n\t\t\t <p class=\"mn-b-thin t-transp uppercase p-small t-medium\">Comment</p>\n\t\t\t <p>{{order.comment}}</p>\n\t\t\t </div>\n\n\t\t\t <div class=\"pd-small flex flex-nowrap flex-v-center br-t br-black-transp-10 br-solid\">\n\t\t\t \t<p class=\"t-medium p-medium\">\n\t\t\t \tDelivery\n\t\t\t </p>\n\n\t\t\t <p class=\"w-100 t-right \">\n\t\t\t {{order.delivery.type ? order.delivery.type : 'Not specified'}} \n\t\t\t </p>\n\t\t\t </div>\n\n\t\t\t <div class=\"pd-small flex flex-nowrap flex-v-center br-t br-black-transp-10 br-solid\">\n\t\t\t \t<p class=\"mn-r-auto t-medium p-medium\">\n\t\t\t \tPayment\n\t\t\t </p>\n\n\n\t\t\t <p class=\"w-max t-right\">\n\t\t\t {{order.payment.type ? order.payment.type : 'Not specified'}} \n\t\t\t </p>\n\n\t\t\t <p @click=\"route.meta.context !== 'user' && route.meta.context !== 'root' ? openPaymentPopup() : console.log('Context:', route.meta.context)\" class=\"w-max pd-thin radius-small bg-second t-white mn-l-thin cursor-pointer hover-bg-black t-right\">\n\t\t\t {{order.payment.status ? order.payment.status : 'Unpaid'}} \n\t\t\t </p>\n\t\t\t </div>\n\n\n\t\t\t\t</div>\n\n\t\t\t\t<div v-if=\"route.meta.context !== 'user' && route.meta.context !== 'root'\" class=\"o-y-scroll bg-light pd-thin mn-b-thin pd-thin radius-medium flex-nowrap flex\">\n\t\t \t\t<div class=\"flex-child-default mn-r-small w-max flex-v-center gap-thin flex-nowrap flex pd-thin radius-small bg-light-transp-20\">\n\t\t \t\t\t<IconTime class=\"i-semi t-transp\" fill=\"rgb(var(--black)\" />\n\t\t <p class=\"t-medium mn-r-auto\"><span class=\"p-small t-transp\">Estimated Reaction</span><br>{{formatDate(order.deadline, { language: locale })}}</p>\n\t\t\t \t</div>\n\t\t\t \t<button v-if=\"getNextStatus(order.status)\" @click=\"openStatusPopup\" class=\"flex-child-default mn-l-auto bg-black t-white button\"> \n\t\t\t\t Mark as {{ (getNextStatus(order.status)).label }} \n\t\t\t\t </button>\n\t\t \t</div>\n\n\t\t\t<div class=\"bg-light radius-medium pd-medium mn-r-bold w-100\">\n\t\t <h3 class=\"mn-b-small\">Chat With Us</h3>\n\n\t\t <ChatPage\n\t\t \t:username=\"['Order', 'UserOrder'].includes(route.name) ? (order.user?.name || 'User') : 'Support'\"\n\t\t \t:user=\"auth.state.user._id\"\n\t\t \t:chatID=\"route.params.order\"\n\t\t \tclass=\"radius-semi bs-black bg-light o-hidden\"\n\t\t />\n\n\t </div>\n\t \t<!-- <StatusHistory \n\t \t\tv-if=\"orders.state.current.status_history\"\n\t \t\t:statuses=\"statuses\"\n\t \t\t:statusHistory=\"orders.state.current.status_history\"\n\t \t\t:statusCurrent=\"orders.state.current.status\"\n\t \t\t:edit=\"route.name === 'Order Edit'\"\n\t \t/> -->\n\n\t <!-- \t<button \n\t \t@click=\"requestPayment(order)\"\n\t \tv-if=\"\n\t \t\torder.status === 'Подтвержден' \n\t \t\t&& order.payment.type === 'Online'\n\t \t\t&& payment.Status !== 'CONFIRMED'\n\t \t\t&& payment.Status !== 'REFUNDED'\n\t \t\" \n\t \tclass='w-100 button'>Оплатить заказ</button> -->\n\t \t<span class=\"t-transp\" v-if=\"payment && payment.Status === 'CONFIRMED'\">Paid</span> \n\t </div> \n\n\t <div class=\"bg-light radius-medium pd-medium w-100\">\n\t \t\t<h3 class=\"mn-b-small\">Order Summary</h3>\n\n\t \t\t<ul class=\"flex gap-thin flex-column mn-b-thin\">\n\t \t\t\t<CardOrderItem\n\t \t\t\t\tv-for=\"(product, index) in order.positions\" \n\t \t\t\t\t:key=\"`${product._id}_${product.variant || 'no-variant'}_${index}`\"\n\t \t\t\t\t:editable=\"false\" \n\t \t\t\t\t:productId=\"product._id\"\n\t \t\t\t\t:variantId=\"product.variant\"\n\t \t\t\t\t:images=\"product.images\"\n\t \t\t\t\t:name=\"product.name\"\n\t \t\t\t\t:quantity=\"product.quantity\"\n\t \t\t\t\t:unit=\"product.unit\"\n\t \t\t\t\t:dates=\"product.date\"\n\t \t\t\t\t:listing=\"product.listing\"\n\t \t\t\t\t:price=\"product.price\"\n\t \t\t\t\tclass=\"bg-white radius-small pd-small\"\n\t \t\t\t/>\n\t </ul>\n\t \n\t <PriceTotal \n :totalPrice=\"cartTotalPrice\"\n :deliveryRate=\"deliveryCost\"\n :currency=\"returnCurrency()\"\n :showFees=\"globals.state.options?.orders?.showFees\"\n :feesRate=\"globals.state.options?.orders?.feesRate || 0\"\n :showVat=\"globals.state.options?.orders?.showVat\"\n :vatRate=\"globals.state.options?.orders?.vatRate || 0\"\n\t\t\t\t :showDeliveryFee=\"globals.state.options?.orders.showDeliveryFee\"\n\n />\n \t</div>\n\n\t \n\t </div>\n\t</div>\t\t\n\n</template>\n\n\n<script setup=\"props\">\n\timport { computed, ref, onMounted } from 'vue'\n\timport { useRouter, useRoute } from 'vue-router'\n\n\timport Button from '@martyrs/src/components/Button/Button.vue'\n\timport Select from '@martyrs/src/components/Select/Select.vue'\n\timport Popup from \"@martyrs/src/components/Popup/Popup.vue\";\n\n\timport IconTime from '@martyrs/src/modules/icons/entities/IconTime.vue'\n\n\t// Block\n\timport CardOrderItem from '@martyrs/src/modules/orders/components/blocks/CardOrderItem.vue'\n\timport CardOrganization from '@martyrs/src/modules/organizations/components/blocks/CardOrganization.vue'\n\n\timport ChatPage from '@martyrs/src/modules/chats/components/pages/ChatPage.vue';\n\n\timport StatusHistory from '@martyrs/src/modules/orders/components/blocks/StatusHistory.vue'\n\timport PriceTotal from '@martyrs/src/modules/orders/components/elements/PriceTotal.vue';\n\timport FormPayment from '@martyrs/src/modules/orders/components/sections/FormPayment.vue'\n\n\timport * as globals \tfrom '@martyrs/src/modules/globals/views/store/globals.js'\n\timport * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\n\timport * as orders \tfrom '@martyrs/src/modules/orders/store/orders.js'\n\timport * as products \tfrom '@martyrs/src/modules/products/store/products.js'\n\timport * as organizations \tfrom '@martyrs/src/modules/organizations/store/organizations.js'\n\n\timport { useI18n } from 'vue-i18n';\n\t\n\tconst { locale } = useI18n();\n\n\tconst router = useRouter()\n\tconst route = useRoute()\n\n\tconst order = ref(null)\n\tconst productsOrganization = ref(null)\n\tconst orderOrganization = ref(null)\n\n\tconst statuses = globals.state.options.orders.statuses\n\tconst statusLabels = ['Created', 'Confirmed', 'Preparing', 'In use', 'Finished'];\n\n if (route.meta.context === 'user' && \n auth.state.user && \n route.params._id !== auth.state.user?._id && \n !auth.state.access?.roles?.includes('ROLE_MODERATOR') && \n !auth.state.access?.roles?.includes('ROLE_ADMIN')) {\n router.push('/401');\n }\n\n\tconst isOpeStatusPopup = ref(false);\n\tconst selectedMember = ref(null);\n\n\tfunction openStatusPopup(member) {\n\t isOpeStatusPopup.value = true;\n\t if (typeof member === \"number\") selectedMember.value = member;\n\t}\n\n\tfunction closeStatusPopup() {\n\t isOpeStatusPopup.value = false;\n\t selectedMember.value = null;\n\t}\n\n\tconst isOpenPaymentPopup = ref(false);\n\n\tconst selectedPayments = ref({\n\t\ttype: null,\n\t\tstatus: null\n\t});\n\n\tfunction openPaymentPopup() {\n\t selectedPayments.value.type = order.value.payment.type\n\t selectedPayments.value.status = order.value.payment.status\n\n\t isOpenPaymentPopup.value = true;\n\t}\n\n\tfunction closePaymentPopup() {\n\t isOpenPaymentPopup.value = false;\n\t}\n\n\tonMounted(async()=>{\n\t\torder.value = await orders.actions.read({_id: route.params.order})\n\t\torder.value = order.value[0]\n\n\t orderOrganization.value = await organizations.actions.read({\n\t _id: order.value?.owner.target._id,\n\t location: globals.state.position?.location,\n\t lookup: ['spots']\n\t });\n\n\t})\n\n\nconst deliveryCost = computed(() => {\n const type = orders.state.current.delivery.type\n const distance = orderOrganization.value[0]?.distance || 0\n const config = globals.state.options?.orders?.delivery_formula || {}\n\n return orders.getters.getDeliveryPrice(type, distance, config)\n})\n\n\tlet cartTotalPrice = computed(() => {\n return Number(order.value?.positions.reduce((total, product) => {\n // Проверяем тип листинга\n if (product.listing === 'rent') {\n const start = new Date(product.date.start)\n const end = new Date(product.date.end)\n const diffTime = Math.abs(end - start)\n return total + product.price * (Math.ceil(diffTime / (1000 * 60 * 60 * 24)) + 1);\n } else {\n // Для обычных товаров умножаем на количество\n return total + product.price * (product.quantity || 1);\n }\n }, 0));\n })\n\n\n let cartTotalAmount = computed(() => {\n return Number(order.value?.positions.reduce((total, product) => {\n return total + product.quantity;\n }, 0));\n })\n\n // Функция установки нового статуса\n\tasync function setStatus (newStatus) {\n\t orders.state.current.status = newStatus\n\n\t await orders.actions.update(orders.state.current)\n\t} \n\n\n\tfunction getNextStatus(currentStatus) {\n\t const currentIndex = globals.state.options.orders.statuses.findIndex(status => status.value === currentStatus);\n\n\t if (currentIndex !== -1 && currentIndex + 1 < statuses.length) {\n\t return globals.state.options.orders.statuses[currentIndex + 1];\n\t }\n\t return null; // If next status doesn't exist\n\t}\n\n\tconst isActiveStatus = (index) => {\n\t return globals.state.options.orders.statuses.slice(index).some(status => status.value === order.value.status);\n\t};\n\n async function changePaymentStatus() {\n if (selectedPayments.value.status && selectedPayments.value.type) {\n orders.state.current.payment = selectedPayments.value;\n\n await orders.actions.update(orders.state.current)\n } else {\n console.error('Payment status is void. Must handle somehow.');\n }\n\n\t\tclosePaymentPopup()\n }\n\n async function setNextStatus() {\n const nextStatus = getNextStatus(orders.state.current.status);\n\n if (nextStatus) {\n orders.state.current.status = nextStatus.value;\n \n // Обновляем позиции заказа из текущего состояния\n orders.state.current.positions = order.value.positions;\n\n await orders.actions.update(orders.state.current)\n } else {\n console.error('Next status is void. Must handle somehow.');\n }\n\n\t\tcloseStatusPopup()\n }\n\n async function cancelOrder() {\n \talert()\n\n orders.state.current.status = 'canceled';\n\n await orders.actions.update(orders.state.current)\n}\n\n\n async function confirmOrder() {\n \talert()\n\n orders.state.current.status = 'confirmed';\n\n await orders.actions.update(orders.state.current)\n\t}\n\n\tfunction calculateDeliveryTime(distance, date) {\n\t if (!distance) {\n\t return null;\n\t }\n\n\t const basePreparationTime = 10 * 60 * 1000; // Convert to milliseconds\n\t const travelTime = Math.ceil((15 + 5 + 3 * distance) / 5) * 5 * 60 * 1000;\n\n\t // Преобразование даты начала в миллисекунды и добавление времени подготовки и доставки\n\t const startTime = new Date(date).getTime();\n\t const estimatedDeliveryTime = new Date(startTime + basePreparationTime + travelTime);\n\n\t return estimatedDeliveryTime;\n\t}\n\n\n</script>\n\n<style lang=\"scss\" scoped>\n\t.blink {\n\t animation: blink-animation 1s ease infinite;\n\t}\n\n\t@keyframes blink-animation {\n\t 0%, 100% {\n\t opacity: 1;\n\t }\n\t 50% {\n\t opacity: 0.8;\n\t }\n\t}\n</style>"],"names":["useI18n","useRouter","useRoute","ref","globals.state","auth.state","onMounted","orders.actions","organizations.actions","computed","orders.state","orders.getters"],"mappings":"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"}
1
+ {"version":3,"file":"OrderBackoffice.vue.cjs","sources":["../../../../../../../src/modules/orders/components/pages/OrderBackoffice.vue"],"sourcesContent":["<template>\n\t<div v-if=\"order && orderOrganization\" class=\"pd-thin bg-white\"> \n\n\t <div v-if=\"order\" class=\"mn-b-thin pos-relative w-100 bg-main radius-medium pd-medium\">\n\t \t<div class=\"mn-b-small flex-nowrap flex\">\n\t\t \t<p class=\"t-medium p-medium\">\n\t\t \tOrder No: <span class=\"p-small t-transp\">#{{order._id}}</span>\n\t\t </p>\n\t\t\t</div>\n\n\t \t<div class=\"flex-nowrap flex gap-thin pos-relative \">\n\t\t <div v-for=\"(status, index) in globals.state.options.orders.statuses\" :key=\"index\" class=\"w-20\">\n\t\t <div\n\t\t \tclass=\"bg-white br-anim br-glow radius-extra h-1r w-100\"\n\t\t :class=\"\n\t\t\t\t\t { 'br-glow-anim': isActiveStatus(index) },\n\t\t\t\t\t { 't-transp': !isActiveStatus(index) },\n\t\t\t\t\t { 'blink': order.status === status.value && getNextStatus(order.status) }\n\t\t\t\t\t \"\n\t\t />\n\t\t <div \n\t\t \t:class=\"{ 't-transp': !isActiveStatus(index) }\"\n\t\t\t\t\t class=\"mn-t-thin p-small t-medium uppercase\">{{ status.value }}</div>\n\t\t \t</div>\n\t\t\t </div>\n\t </div>\n\n \t<Popup \n title=\"Payment Status\" \n @close-popup=\"closePaymentPopup\" \n :isPopupOpen=\"isOpenPaymentPopup\"\n class=\"bg-light w-min-25r w-max-25r radius-medium pd-big\"\n >\n \t<Select \n v-model:select=\"selectedPayments.type\"\n :property=\"'value'\"\n label=\"Type\"\n :options=\"[\n {name: 'Cash', value: 'cash'}, \n {name: 'Card', value: 'card'}, \n {name: 'Bank Transfer', value: 'bank'},\n ]\"\n placeholder=\"Select type of payment\" \n size=\"small\"\n class=\"bg-white mn-b-thin pd-regular radius-small w-100\"\n />\n\n <Select \n v-model:select=\"selectedPayments.status\"\n :property=\"'value'\"\n label=\"Status\"\n :options=\"[\n {name: 'Unpaid', value: 'unpaid'}, \n {name: 'Paid', value: 'paid'}, \n {name: 'Refunded', value: 'refunded'},\n ]\"\n placeholder=\"Select status of payment\" \n size=\"small\"\n class=\"bg-white mn-b-small pd-regular radius-small w-100\"\n />\n\n\n <Button :submit=\"changePaymentStatus\" class=\"t-white w-100 bg-second\">\n\t\t\t\t<span>Change Status</span>\n\t\t\t</Button>\n\t \t</Popup>\n\n\t <Popup \n title=\"Change order status\" \n @close-popup=\"closeStatusPopup\" \n :isPopupOpen=\"isOpeStatusPopup\"\n class=\"bg-light w-min-30r w-max-30r radius-medium pd-big\"\n >\n\n\t\t\t<!-- Добавить выбор примерного времени -->\n\n \t<ul class=\"flex gap-thin flex-column mn-b-thin\">\n \t\t\t<CardOrderItem\n \t\t\t\tv-for=\"(product, index) in order.positions\" \n \t\t\t\t:key=\"`${product._id}_${product.variant || 'no-variant'}_${index}`\"\n \t\t\t\t:editable=\"!order.status_history || order.status_history.length <= 1\" \n \t\t\t\t:productId=\"product._id\"\n \t\t\t\t:variantId=\"product.variant\"\n \t\t\t\t:images=\"product.images\"\n \t\t\t\t:name=\"product.name\"\n \t\t\t\t:quantity=\"product.quantity\"\n \t\t\t\t:unit=\"product.unit\"\n \t\t\t\t:dates=\"product.date\"\n \t\t\t\t:listing=\"product.listing\"\n \t\t\t\t:price=\"product.price\"\n \t\t\t\t:increase=\"() => orders.mutations.incrementItemQuantity(order, product._id, product.variant)\"\n\t :decrease=\"() => orders.mutations.decrementItemQuantity(order, product._id, product.variant)\"\n\t :remove=\"() => orders.mutations.removeProduct(order, product._id, product.variant)\"\n\t @updateRentDates=\"(productId, variantId, dates) => shopcart.actions.updateRentDates({ positions: order.positions, productId, variantId, dates })\"\n \t\t\t\tclass=\"bg-white radius-small pd-small\"\n \t\t\t/>\n </ul>\n \n <PriceTotal \n :totalPrice=\"cartTotalPrice\"\n :currency=\"returnCurrency()\"\n :showFees=\"globals.state.options?.orders?.showFees\"\n :feesRate=\"globals.state.options?.orders?.feesRate || 0\"\n :showVat=\"globals.state.options?.orders?.showVat\"\n :vatRate=\"globals.state.options?.orders?.vatRate || 0\"\n />\n\n \t<Button :submit=\"setNextStatus\" class=\"t-white w-100 bg-second\">\n\t\t\t\t<span>{{'Confirm Changing to ' + (getNextStatus(order.status)).label}}</span>\n\t\t\t</Button>\n\t \t</Popup>\n\n\n\t \n\t <div v-if=\"order\" class=\"gap-thin cols-2 mobile:cols-1\">\n\n\t <div class=\"w-100\">\n\n\n\t\t <CardOrganization \n\t\t \tv-if=\"orderOrganization[0]\"\n\t\t :organization=\"orderOrganization[0]\"\n\t\t :showRating=\"true\"\n\t\t :showFollowers=\"false\"\n\t\t :showProducts=\"false\"\n\t\t class=\"bg-light mn-b-thin w-100 o-hidden radius-medium pd-small \"\n\t\t />\n\n\n\t\t <div \n\t\t \tclass=\"mn-b-thin bg-light w-100 o-hidden radius-medium \"\n\t\t >\n\t\t \t<div class=\"pd-small flex-nowrap flex\">\n\t\t\t \t<div class=\"mn-r-auto\">\n\t\t\t\t \t<span class=\"d-block t-medium p-medium mn-b-thin\">Order is</span>\n\t\t\t\t\t <span class=\" t-lh-075 h2 d-block mn-b-small\">{{order.status}}</span>\n\t\t\t\t\t <p class=\"pd-thin radius-extra bg-black t-white w-max\">{{formatDate(order.updatedAt, {language: locale })}}</p>\n\t\t\t\t\t </div>\n\t\t\t\t\t <!-- <div class=\"t-right\">\n\t\t\t\t\t \tCancel order<br>\n\t\t\t\t\t \tExchange item\n\t\t\t\t\t \t<hr class=\"mn-b-thin mn-t-thin\">\n\t\t\t\t\t \tFor Delivery Queries Contact Us\n\t\t\t\t\t \t\n\t\t\t\t\t </div> -->\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div v-if=\"order.customer.target?.number\" class=\"pd-small flex flex-nowrap flex-v-center br-t br-black-transp-10 br-solid\">\n\t\t\t \t<p class=\"w-100 t-medium p-medium\">\n\t\t\t \tPhone\n\t\t\t </p>\n\n\t\t\t <p class=\"w-100 t-right \">\n\t\t\t \t{{order.customer.target?.number || 'Not specified'}}\n\t\t\t </p>\n\t\t\t </div>\n\n\t\t\t <div class=\"pd-small flex flex-nowrap flex-v-center br-t br-black-transp-10 br-solid\">\n\t\t\t \t<p class=\"t-medium p-medium\">\n\t\t\t \tAddress\n\t\t\t </p>\n\n\t\t\t <p class=\"w-100 t-right\">\n\t\t\t\t\t\t\t{{order.delivery.address || (order.delivery.spot[0]?.profile.name + (order.delivery.spot[0]?.address ? ', ' + order.delivery.spot[0].address : '')) || 'Not specified'}}\n\t\t\t </p>\n\n\n\n\t\t\t </div>\n\n\n\t\t\t <div v-if=\"order.comment\" class=\"pos-relative radius-thin mn-t-zero mn-thin bg-fifth-transp-10 pd-small\">\n\t\t\t <p class=\"mn-b-thin t-transp uppercase p-small t-medium\">Comment</p>\n\t\t\t <p>{{order.comment}}</p>\n\t\t\t </div>\n\n\t\t\t <div class=\"pd-small flex flex-nowrap flex-v-center br-t br-black-transp-10 br-solid\">\n\t\t\t \t<p class=\"t-medium p-medium\">\n\t\t\t \tDelivery\n\t\t\t </p>\n\n\t\t\t <p class=\"w-100 t-right \">\n\t\t\t {{order.delivery.type ? order.delivery.type : 'Not specified'}} \n\t\t\t </p>\n\t\t\t </div>\n\n\t\t\t <div class=\"pd-small flex flex-nowrap flex-v-center br-t br-black-transp-10 br-solid\">\n\t\t\t \t<p class=\"mn-r-auto t-medium p-medium\">\n\t\t\t \tPayment\n\t\t\t </p>\n\n\n\t\t\t <p class=\"w-max t-right\">\n\t\t\t {{order.payment.type ? order.payment.type : 'Not specified'}} \n\t\t\t </p>\n\n\t\t\t <p @click=\"route.meta.context !== 'user' && route.meta.context !== 'root' ? openPaymentPopup() : console.log('Context:', route.meta.context)\" class=\"w-max pd-thin radius-small bg-second t-white mn-l-thin cursor-pointer hover-bg-black t-right\">\n\t\t\t {{order.payment.status ? order.payment.status : 'Unpaid'}} \n\t\t\t </p>\n\t\t\t </div>\n\n\n\t\t\t\t</div>\n\n\t\t\t\t<div v-if=\"route.meta.context !== 'user' && route.meta.context !== 'root'\" class=\"o-y-scroll bg-light pd-thin mn-b-thin pd-thin radius-medium flex-nowrap flex\">\n\t\t \t\t<div class=\"flex-child-default mn-r-small w-max flex-v-center gap-thin flex-nowrap flex pd-thin radius-small bg-light-transp-20\">\n\t\t \t\t\t<IconTime class=\"i-semi t-transp\" fill=\"rgb(var(--black)\" />\n\t\t <p class=\"t-medium mn-r-auto\"><span class=\"p-small t-transp\">Estimated Reaction</span><br>{{formatDate(order.deadline, { language: locale })}}</p>\n\t\t\t \t</div>\n\t\t\t \t<button v-if=\"getNextStatus(order.status)\" @click=\"openStatusPopup\" class=\"flex-child-default mn-l-auto bg-black t-white button\"> \n\t\t\t\t Mark as {{ (getNextStatus(order.status)).label }} \n\t\t\t\t </button>\n\t\t \t</div>\n\n\t\t\t<div class=\"bg-light radius-medium pd-medium mn-r-bold w-100\">\n\t\t <h3 class=\"mn-b-small\">Chat With Us</h3>\n\n\t\t <ChatPage\n\t\t \t:username=\"['Order', 'UserOrder'].includes(route.name) ? (order.user?.name || 'User') : 'Support'\"\n\t\t \t:user=\"auth.state.user._id\"\n\t\t \t:chatID=\"route.params.order\"\n\t\t \tclass=\"radius-semi bs-black bg-light o-hidden\"\n\t\t />\n\n\t </div>\n\t \t<!-- <StatusHistory \n\t \t\tv-if=\"orders.state.current.status_history\"\n\t \t\t:statuses=\"statuses\"\n\t \t\t:statusHistory=\"orders.state.current.status_history\"\n\t \t\t:statusCurrent=\"orders.state.current.status\"\n\t \t\t:edit=\"route.name === 'Order Edit'\"\n\t \t/> -->\n\n\t <!-- \t<button \n\t \t@click=\"requestPayment(order)\"\n\t \tv-if=\"\n\t \t\torder.status === 'Подтвержден' \n\t \t\t&& order.payment.type === 'Online'\n\t \t\t&& payment.Status !== 'CONFIRMED'\n\t \t\t&& payment.Status !== 'REFUNDED'\n\t \t\" \n\t \tclass='w-100 button'>Оплатить заказ</button> -->\n\t \t<span class=\"t-transp\" v-if=\"payment && payment.Status === 'CONFIRMED'\">Paid</span> \n\t </div> \n\n\t <div class=\"bg-light radius-medium pd-medium w-100\">\n\t \t\t<h3 class=\"mn-b-small\">Order Summary</h3>\n\n\t \t\t<ul class=\"flex gap-thin flex-column mn-b-thin\">\n\t \t\t\t<CardOrderItem\n\t \t\t\t\tv-for=\"(product, index) in order.positions\" \n\t \t\t\t\t:key=\"`${product._id}_${product.variant || 'no-variant'}_${index}`\"\n\t \t\t\t\t:editable=\"false\" \n\t \t\t\t\t:productId=\"product._id\"\n\t \t\t\t\t:variantId=\"product.variant\"\n\t \t\t\t\t:images=\"product.images\"\n\t \t\t\t\t:name=\"product.name\"\n\t \t\t\t\t:quantity=\"product.quantity\"\n\t \t\t\t\t:unit=\"product.unit\"\n\t \t\t\t\t:dates=\"product.date\"\n\t \t\t\t\t:listing=\"product.listing\"\n\t \t\t\t\t:price=\"product.price\"\n\t \t\t\t\tclass=\"bg-white radius-small pd-small\"\n\t \t\t\t/>\n\t </ul>\n\t \n\t <PriceTotal \n :totalPrice=\"cartTotalPrice\"\n :deliveryRate=\"deliveryCost\"\n :currency=\"returnCurrency()\"\n :showFees=\"globals.state.options?.orders?.showFees\"\n :feesRate=\"globals.state.options?.orders?.feesRate || 0\"\n :showVat=\"globals.state.options?.orders?.showVat\"\n :vatRate=\"globals.state.options?.orders?.vatRate || 0\"\n\t\t\t\t :showDeliveryFee=\"globals.state.options?.orders.showDeliveryFee\"\n\n />\n \t</div>\n\n\t \n\t </div>\n\t</div>\t\t\n\n</template>\n\n\n<script setup=\"props\">\n\timport { computed, ref, onMounted } from 'vue'\n\timport { useRouter, useRoute } from 'vue-router'\n\n\timport Button from '@martyrs/src/components/Button/Button.vue'\n\timport Select from '@martyrs/src/components/Select/Select.vue'\n\timport Popup from \"@martyrs/src/components/Popup/Popup.vue\";\n\n\timport IconTime from '@martyrs/src/modules/icons/entities/IconTime.vue'\n\n\t// Block\n\timport CardOrderItem from '@martyrs/src/modules/orders/components/blocks/CardOrderItem.vue'\n\timport CardOrganization from '@martyrs/src/modules/organizations/components/blocks/CardOrganization.vue'\n\n\timport ChatPage from '@martyrs/src/modules/chats/components/pages/ChatPage.vue';\n\n\timport StatusHistory from '@martyrs/src/modules/orders/components/blocks/StatusHistory.vue'\n\timport PriceTotal from '@martyrs/src/modules/orders/components/elements/PriceTotal.vue';\n\timport FormPayment from '@martyrs/src/modules/orders/components/sections/FormPayment.vue'\n\n\timport * as globals \tfrom '@martyrs/src/modules/globals/views/store/globals.js'\n\timport * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\n\timport * as orders \tfrom '@martyrs/src/modules/orders/store/orders.js'\n\timport * as products \tfrom '@martyrs/src/modules/products/store/products.js'\n\timport * as organizations \tfrom '@martyrs/src/modules/organizations/store/organizations.js'\n\n\timport { useI18n } from 'vue-i18n';\n\timport { useGlobalMixins } from '@martyrs/src/modules/globals/views/mixins/mixins.js';\n\t\n\tconst { locale } = useI18n();\n\tconst { returnCurrency } = useGlobalMixins();\n\n\tconst router = useRouter()\n\tconst route = useRoute()\n\n\tconst order = ref(null)\n\tconst productsOrganization = ref(null)\n\tconst orderOrganization = ref(null)\n\n\tconst statuses = globals.state.options.orders.statuses\n\tconst statusLabels = ['Created', 'Confirmed', 'Preparing', 'In use', 'Finished'];\n\n if (route.meta.context === 'user' && \n auth.state.user && \n route.params._id !== auth.state.user?._id && \n !auth.state.access?.roles?.includes('ROLE_MODERATOR') && \n !auth.state.access?.roles?.includes('ROLE_ADMIN')) {\n router.push('/401');\n }\n\n\tconst isOpeStatusPopup = ref(false);\n\tconst selectedMember = ref(null);\n\n\tfunction openStatusPopup(member) {\n\t isOpeStatusPopup.value = true;\n\t if (typeof member === \"number\") selectedMember.value = member;\n\t}\n\n\tfunction closeStatusPopup() {\n\t isOpeStatusPopup.value = false;\n\t selectedMember.value = null;\n\t}\n\n\tconst isOpenPaymentPopup = ref(false);\n\n\tconst selectedPayments = ref({\n\t\ttype: null,\n\t\tstatus: null\n\t});\n\n\tfunction openPaymentPopup() {\n\t selectedPayments.value.type = order.value.payment.type\n\t selectedPayments.value.status = order.value.payment.status\n\n\t isOpenPaymentPopup.value = true;\n\t}\n\n\tfunction closePaymentPopup() {\n\t isOpenPaymentPopup.value = false;\n\t}\n\n\tonMounted(async()=>{\n\t\torder.value = await orders.actions.read({_id: route.params.order})\n\t\torder.value = order.value[0]\n\n\t orderOrganization.value = await organizations.actions.read({\n\t _id: order.value?.owner.target._id,\n\t location: globals.state.position?.location,\n\t lookup: ['spots']\n\t });\n\n\t})\n\n\nconst deliveryCost = computed(() => {\n const type = orders.state.current.delivery.type\n const distance = orderOrganization.value[0]?.distance || 0\n const config = globals.state.options?.orders?.delivery_formula || {}\n\n return orders.getters.getDeliveryPrice(type, distance, config)\n})\n\n\tlet cartTotalPrice = computed(() => {\n return Number(order.value?.positions.reduce((total, product) => {\n // Проверяем тип листинга\n if (product.listing === 'rent') {\n const start = new Date(product.date.start)\n const end = new Date(product.date.end)\n const diffTime = Math.abs(end - start)\n return total + product.price * (Math.ceil(diffTime / (1000 * 60 * 60 * 24)) + 1);\n } else {\n // Для обычных товаров умножаем на количество\n return total + product.price * (product.quantity || 1);\n }\n }, 0));\n })\n\n\n let cartTotalAmount = computed(() => {\n return Number(order.value?.positions.reduce((total, product) => {\n return total + product.quantity;\n }, 0));\n })\n\n // Функция установки нового статуса\n\tasync function setStatus (newStatus) {\n\t orders.state.current.status = newStatus\n\n\t await orders.actions.update(orders.state.current)\n\t} \n\n\n\tfunction getNextStatus(currentStatus) {\n\t const currentIndex = globals.state.options.orders.statuses.findIndex(status => status.value === currentStatus);\n\n\t if (currentIndex !== -1 && currentIndex + 1 < statuses.length) {\n\t return globals.state.options.orders.statuses[currentIndex + 1];\n\t }\n\t return null; // If next status doesn't exist\n\t}\n\n\tconst isActiveStatus = (index) => {\n\t return globals.state.options.orders.statuses.slice(index).some(status => status.value === order.value.status);\n\t};\n\n async function changePaymentStatus() {\n if (selectedPayments.value.status && selectedPayments.value.type) {\n orders.state.current.payment = selectedPayments.value;\n\n await orders.actions.update(orders.state.current)\n } else {\n console.error('Payment status is void. Must handle somehow.');\n }\n\n\t\tclosePaymentPopup()\n }\n\n async function setNextStatus() {\n const nextStatus = getNextStatus(orders.state.current.status);\n\n if (nextStatus) {\n orders.state.current.status = nextStatus.value;\n \n // Обновляем позиции заказа из текущего состояния\n orders.state.current.positions = order.value.positions;\n\n await orders.actions.update(orders.state.current)\n } else {\n console.error('Next status is void. Must handle somehow.');\n }\n\n\t\tcloseStatusPopup()\n }\n\n async function cancelOrder() {\n \talert()\n\n orders.state.current.status = 'canceled';\n\n await orders.actions.update(orders.state.current)\n}\n\n\n async function confirmOrder() {\n \talert()\n\n orders.state.current.status = 'confirmed';\n\n await orders.actions.update(orders.state.current)\n\t}\n\n\tfunction calculateDeliveryTime(distance, date) {\n\t if (!distance) {\n\t return null;\n\t }\n\n\t const basePreparationTime = 10 * 60 * 1000; // Convert to milliseconds\n\t const travelTime = Math.ceil((15 + 5 + 3 * distance) / 5) * 5 * 60 * 1000;\n\n\t // Преобразование даты начала в миллисекунды и добавление времени подготовки и доставки\n\t const startTime = new Date(date).getTime();\n\t const estimatedDeliveryTime = new Date(startTime + basePreparationTime + travelTime);\n\n\t return estimatedDeliveryTime;\n\t}\n\n\n</script>\n\n<style lang=\"scss\" scoped>\n\t.blink {\n\t animation: blink-animation 1s ease infinite;\n\t}\n\n\t@keyframes blink-animation {\n\t 0%, 100% {\n\t opacity: 1;\n\t }\n\t 50% {\n\t opacity: 0.8;\n\t }\n\t}\n</style>"],"names":["useI18n","useGlobalMixins","useRouter","useRoute","ref","globals.state","auth.state","onMounted","orders.actions","organizations.actions","computed","orders.state","orders.getters"],"mappings":"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"}
@@ -14,6 +14,7 @@ import { state as state$1 } from "../../../auth/views/store/auth.js";
14
14
  import { actions, state as state$2, getters, mutations } from "../../store/orders.js";
15
15
  import { actions as actions$1 } from "../../../organizations/store/organizations.js";
16
16
  import { useI18n } from "vue-i18n";
17
+ import { useGlobalMixins } from "../../../globals/views/mixins/mixins.js";
17
18
  /* empty css */
18
19
  import _export_sfc from "../../../../../../_virtual/_plugin-vue_export-helper.js";
19
20
  const _hoisted_1 = {
@@ -71,6 +72,7 @@ const _sfc_main = {
71
72
  __name: "OrderBackoffice",
72
73
  setup(__props) {
73
74
  const { locale } = useI18n();
75
+ const { returnCurrency } = useGlobalMixins();
74
76
  const router = useRouter();
75
77
  const route = useRoute();
76
78
  const order = ref(null);
@@ -273,7 +275,7 @@ const _sfc_main = {
273
275
  ]),
274
276
  createVNode(_sfc_main$4, {
275
277
  totalPrice: unref(cartTotalPrice),
276
- currency: _ctx.returnCurrency(),
278
+ currency: unref(returnCurrency)(),
277
279
  showFees: state.options?.orders?.showFees,
278
280
  feesRate: state.options?.orders?.feesRate || 0,
279
281
  showVat: state.options?.orders?.showVat,
@@ -386,7 +388,7 @@ const _sfc_main = {
386
388
  createVNode(_sfc_main$4, {
387
389
  totalPrice: unref(cartTotalPrice),
388
390
  deliveryRate: deliveryCost.value,
389
- currency: _ctx.returnCurrency(),
391
+ currency: unref(returnCurrency)(),
390
392
  showFees: state.options?.orders?.showFees,
391
393
  feesRate: state.options?.orders?.feesRate || 0,
392
394
  showVat: state.options?.orders?.showVat,
@@ -399,7 +401,7 @@ const _sfc_main = {
399
401
  };
400
402
  }
401
403
  };
402
- const OrderBackoffice = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-83eadb3a"]]);
404
+ const OrderBackoffice = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-895f54da"]]);
403
405
  export {
404
406
  OrderBackoffice as default
405
407
  };
@@ -1 +1 @@
1
- {"version":3,"file":"OrderBackoffice.vue.js","sources":["../../../../../../../src/modules/orders/components/pages/OrderBackoffice.vue"],"sourcesContent":["<template>\n\t<div v-if=\"order && orderOrganization\" class=\"pd-thin bg-white\"> \n\n\t <div v-if=\"order\" class=\"mn-b-thin pos-relative w-100 bg-main radius-medium pd-medium\">\n\t \t<div class=\"mn-b-small flex-nowrap flex\">\n\t\t \t<p class=\"t-medium p-medium\">\n\t\t \tOrder No: <span class=\"p-small t-transp\">#{{order._id}}</span>\n\t\t </p>\n\t\t\t</div>\n\n\t \t<div class=\"flex-nowrap flex gap-thin pos-relative \">\n\t\t <div v-for=\"(status, index) in globals.state.options.orders.statuses\" :key=\"index\" class=\"w-20\">\n\t\t <div\n\t\t \tclass=\"bg-white br-anim br-glow radius-extra h-1r w-100\"\n\t\t :class=\"\n\t\t\t\t\t { 'br-glow-anim': isActiveStatus(index) },\n\t\t\t\t\t { 't-transp': !isActiveStatus(index) },\n\t\t\t\t\t { 'blink': order.status === status.value && getNextStatus(order.status) }\n\t\t\t\t\t \"\n\t\t />\n\t\t <div \n\t\t \t:class=\"{ 't-transp': !isActiveStatus(index) }\"\n\t\t\t\t\t class=\"mn-t-thin p-small t-medium uppercase\">{{ status.value }}</div>\n\t\t \t</div>\n\t\t\t </div>\n\t </div>\n\n \t<Popup \n title=\"Payment Status\" \n @close-popup=\"closePaymentPopup\" \n :isPopupOpen=\"isOpenPaymentPopup\"\n class=\"bg-light w-min-25r w-max-25r radius-medium pd-big\"\n >\n \t<Select \n v-model:select=\"selectedPayments.type\"\n :property=\"'value'\"\n label=\"Type\"\n :options=\"[\n {name: 'Cash', value: 'cash'}, \n {name: 'Card', value: 'card'}, \n {name: 'Bank Transfer', value: 'bank'},\n ]\"\n placeholder=\"Select type of payment\" \n size=\"small\"\n class=\"bg-white mn-b-thin pd-regular radius-small w-100\"\n />\n\n <Select \n v-model:select=\"selectedPayments.status\"\n :property=\"'value'\"\n label=\"Status\"\n :options=\"[\n {name: 'Unpaid', value: 'unpaid'}, \n {name: 'Paid', value: 'paid'}, \n {name: 'Refunded', value: 'refunded'},\n ]\"\n placeholder=\"Select status of payment\" \n size=\"small\"\n class=\"bg-white mn-b-small pd-regular radius-small w-100\"\n />\n\n\n <Button :submit=\"changePaymentStatus\" class=\"t-white w-100 bg-second\">\n\t\t\t\t<span>Change Status</span>\n\t\t\t</Button>\n\t \t</Popup>\n\n\t <Popup \n title=\"Change order status\" \n @close-popup=\"closeStatusPopup\" \n :isPopupOpen=\"isOpeStatusPopup\"\n class=\"bg-light w-min-30r w-max-30r radius-medium pd-big\"\n >\n\n\t\t\t<!-- Добавить выбор примерного времени -->\n\n \t<ul class=\"flex gap-thin flex-column mn-b-thin\">\n \t\t\t<CardOrderItem\n \t\t\t\tv-for=\"(product, index) in order.positions\" \n \t\t\t\t:key=\"`${product._id}_${product.variant || 'no-variant'}_${index}`\"\n \t\t\t\t:editable=\"!order.status_history || order.status_history.length <= 1\" \n \t\t\t\t:productId=\"product._id\"\n \t\t\t\t:variantId=\"product.variant\"\n \t\t\t\t:images=\"product.images\"\n \t\t\t\t:name=\"product.name\"\n \t\t\t\t:quantity=\"product.quantity\"\n \t\t\t\t:unit=\"product.unit\"\n \t\t\t\t:dates=\"product.date\"\n \t\t\t\t:listing=\"product.listing\"\n \t\t\t\t:price=\"product.price\"\n \t\t\t\t:increase=\"() => orders.mutations.incrementItemQuantity(order, product._id, product.variant)\"\n\t :decrease=\"() => orders.mutations.decrementItemQuantity(order, product._id, product.variant)\"\n\t :remove=\"() => orders.mutations.removeProduct(order, product._id, product.variant)\"\n\t @updateRentDates=\"(productId, variantId, dates) => shopcart.actions.updateRentDates({ positions: order.positions, productId, variantId, dates })\"\n \t\t\t\tclass=\"bg-white radius-small pd-small\"\n \t\t\t/>\n </ul>\n \n <PriceTotal \n :totalPrice=\"cartTotalPrice\"\n :currency=\"returnCurrency()\"\n :showFees=\"globals.state.options?.orders?.showFees\"\n :feesRate=\"globals.state.options?.orders?.feesRate || 0\"\n :showVat=\"globals.state.options?.orders?.showVat\"\n :vatRate=\"globals.state.options?.orders?.vatRate || 0\"\n />\n\n \t<Button :submit=\"setNextStatus\" class=\"t-white w-100 bg-second\">\n\t\t\t\t<span>{{'Confirm Changing to ' + (getNextStatus(order.status)).label}}</span>\n\t\t\t</Button>\n\t \t</Popup>\n\n\n\t \n\t <div v-if=\"order\" class=\"gap-thin cols-2 mobile:cols-1\">\n\n\t <div class=\"w-100\">\n\n\n\t\t <CardOrganization \n\t\t \tv-if=\"orderOrganization[0]\"\n\t\t :organization=\"orderOrganization[0]\"\n\t\t :showRating=\"true\"\n\t\t :showFollowers=\"false\"\n\t\t :showProducts=\"false\"\n\t\t class=\"bg-light mn-b-thin w-100 o-hidden radius-medium pd-small \"\n\t\t />\n\n\n\t\t <div \n\t\t \tclass=\"mn-b-thin bg-light w-100 o-hidden radius-medium \"\n\t\t >\n\t\t \t<div class=\"pd-small flex-nowrap flex\">\n\t\t\t \t<div class=\"mn-r-auto\">\n\t\t\t\t \t<span class=\"d-block t-medium p-medium mn-b-thin\">Order is</span>\n\t\t\t\t\t <span class=\" t-lh-075 h2 d-block mn-b-small\">{{order.status}}</span>\n\t\t\t\t\t <p class=\"pd-thin radius-extra bg-black t-white w-max\">{{formatDate(order.updatedAt, {language: locale })}}</p>\n\t\t\t\t\t </div>\n\t\t\t\t\t <!-- <div class=\"t-right\">\n\t\t\t\t\t \tCancel order<br>\n\t\t\t\t\t \tExchange item\n\t\t\t\t\t \t<hr class=\"mn-b-thin mn-t-thin\">\n\t\t\t\t\t \tFor Delivery Queries Contact Us\n\t\t\t\t\t \t\n\t\t\t\t\t </div> -->\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div v-if=\"order.customer.target?.number\" class=\"pd-small flex flex-nowrap flex-v-center br-t br-black-transp-10 br-solid\">\n\t\t\t \t<p class=\"w-100 t-medium p-medium\">\n\t\t\t \tPhone\n\t\t\t </p>\n\n\t\t\t <p class=\"w-100 t-right \">\n\t\t\t \t{{order.customer.target?.number || 'Not specified'}}\n\t\t\t </p>\n\t\t\t </div>\n\n\t\t\t <div class=\"pd-small flex flex-nowrap flex-v-center br-t br-black-transp-10 br-solid\">\n\t\t\t \t<p class=\"t-medium p-medium\">\n\t\t\t \tAddress\n\t\t\t </p>\n\n\t\t\t <p class=\"w-100 t-right\">\n\t\t\t\t\t\t\t{{order.delivery.address || (order.delivery.spot[0]?.profile.name + (order.delivery.spot[0]?.address ? ', ' + order.delivery.spot[0].address : '')) || 'Not specified'}}\n\t\t\t </p>\n\n\n\n\t\t\t </div>\n\n\n\t\t\t <div v-if=\"order.comment\" class=\"pos-relative radius-thin mn-t-zero mn-thin bg-fifth-transp-10 pd-small\">\n\t\t\t <p class=\"mn-b-thin t-transp uppercase p-small t-medium\">Comment</p>\n\t\t\t <p>{{order.comment}}</p>\n\t\t\t </div>\n\n\t\t\t <div class=\"pd-small flex flex-nowrap flex-v-center br-t br-black-transp-10 br-solid\">\n\t\t\t \t<p class=\"t-medium p-medium\">\n\t\t\t \tDelivery\n\t\t\t </p>\n\n\t\t\t <p class=\"w-100 t-right \">\n\t\t\t {{order.delivery.type ? order.delivery.type : 'Not specified'}} \n\t\t\t </p>\n\t\t\t </div>\n\n\t\t\t <div class=\"pd-small flex flex-nowrap flex-v-center br-t br-black-transp-10 br-solid\">\n\t\t\t \t<p class=\"mn-r-auto t-medium p-medium\">\n\t\t\t \tPayment\n\t\t\t </p>\n\n\n\t\t\t <p class=\"w-max t-right\">\n\t\t\t {{order.payment.type ? order.payment.type : 'Not specified'}} \n\t\t\t </p>\n\n\t\t\t <p @click=\"route.meta.context !== 'user' && route.meta.context !== 'root' ? openPaymentPopup() : console.log('Context:', route.meta.context)\" class=\"w-max pd-thin radius-small bg-second t-white mn-l-thin cursor-pointer hover-bg-black t-right\">\n\t\t\t {{order.payment.status ? order.payment.status : 'Unpaid'}} \n\t\t\t </p>\n\t\t\t </div>\n\n\n\t\t\t\t</div>\n\n\t\t\t\t<div v-if=\"route.meta.context !== 'user' && route.meta.context !== 'root'\" class=\"o-y-scroll bg-light pd-thin mn-b-thin pd-thin radius-medium flex-nowrap flex\">\n\t\t \t\t<div class=\"flex-child-default mn-r-small w-max flex-v-center gap-thin flex-nowrap flex pd-thin radius-small bg-light-transp-20\">\n\t\t \t\t\t<IconTime class=\"i-semi t-transp\" fill=\"rgb(var(--black)\" />\n\t\t <p class=\"t-medium mn-r-auto\"><span class=\"p-small t-transp\">Estimated Reaction</span><br>{{formatDate(order.deadline, { language: locale })}}</p>\n\t\t\t \t</div>\n\t\t\t \t<button v-if=\"getNextStatus(order.status)\" @click=\"openStatusPopup\" class=\"flex-child-default mn-l-auto bg-black t-white button\"> \n\t\t\t\t Mark as {{ (getNextStatus(order.status)).label }} \n\t\t\t\t </button>\n\t\t \t</div>\n\n\t\t\t<div class=\"bg-light radius-medium pd-medium mn-r-bold w-100\">\n\t\t <h3 class=\"mn-b-small\">Chat With Us</h3>\n\n\t\t <ChatPage\n\t\t \t:username=\"['Order', 'UserOrder'].includes(route.name) ? (order.user?.name || 'User') : 'Support'\"\n\t\t \t:user=\"auth.state.user._id\"\n\t\t \t:chatID=\"route.params.order\"\n\t\t \tclass=\"radius-semi bs-black bg-light o-hidden\"\n\t\t />\n\n\t </div>\n\t \t<!-- <StatusHistory \n\t \t\tv-if=\"orders.state.current.status_history\"\n\t \t\t:statuses=\"statuses\"\n\t \t\t:statusHistory=\"orders.state.current.status_history\"\n\t \t\t:statusCurrent=\"orders.state.current.status\"\n\t \t\t:edit=\"route.name === 'Order Edit'\"\n\t \t/> -->\n\n\t <!-- \t<button \n\t \t@click=\"requestPayment(order)\"\n\t \tv-if=\"\n\t \t\torder.status === 'Подтвержден' \n\t \t\t&& order.payment.type === 'Online'\n\t \t\t&& payment.Status !== 'CONFIRMED'\n\t \t\t&& payment.Status !== 'REFUNDED'\n\t \t\" \n\t \tclass='w-100 button'>Оплатить заказ</button> -->\n\t \t<span class=\"t-transp\" v-if=\"payment && payment.Status === 'CONFIRMED'\">Paid</span> \n\t </div> \n\n\t <div class=\"bg-light radius-medium pd-medium w-100\">\n\t \t\t<h3 class=\"mn-b-small\">Order Summary</h3>\n\n\t \t\t<ul class=\"flex gap-thin flex-column mn-b-thin\">\n\t \t\t\t<CardOrderItem\n\t \t\t\t\tv-for=\"(product, index) in order.positions\" \n\t \t\t\t\t:key=\"`${product._id}_${product.variant || 'no-variant'}_${index}`\"\n\t \t\t\t\t:editable=\"false\" \n\t \t\t\t\t:productId=\"product._id\"\n\t \t\t\t\t:variantId=\"product.variant\"\n\t \t\t\t\t:images=\"product.images\"\n\t \t\t\t\t:name=\"product.name\"\n\t \t\t\t\t:quantity=\"product.quantity\"\n\t \t\t\t\t:unit=\"product.unit\"\n\t \t\t\t\t:dates=\"product.date\"\n\t \t\t\t\t:listing=\"product.listing\"\n\t \t\t\t\t:price=\"product.price\"\n\t \t\t\t\tclass=\"bg-white radius-small pd-small\"\n\t \t\t\t/>\n\t </ul>\n\t \n\t <PriceTotal \n :totalPrice=\"cartTotalPrice\"\n :deliveryRate=\"deliveryCost\"\n :currency=\"returnCurrency()\"\n :showFees=\"globals.state.options?.orders?.showFees\"\n :feesRate=\"globals.state.options?.orders?.feesRate || 0\"\n :showVat=\"globals.state.options?.orders?.showVat\"\n :vatRate=\"globals.state.options?.orders?.vatRate || 0\"\n\t\t\t\t :showDeliveryFee=\"globals.state.options?.orders.showDeliveryFee\"\n\n />\n \t</div>\n\n\t \n\t </div>\n\t</div>\t\t\n\n</template>\n\n\n<script setup=\"props\">\n\timport { computed, ref, onMounted } from 'vue'\n\timport { useRouter, useRoute } from 'vue-router'\n\n\timport Button from '@martyrs/src/components/Button/Button.vue'\n\timport Select from '@martyrs/src/components/Select/Select.vue'\n\timport Popup from \"@martyrs/src/components/Popup/Popup.vue\";\n\n\timport IconTime from '@martyrs/src/modules/icons/entities/IconTime.vue'\n\n\t// Block\n\timport CardOrderItem from '@martyrs/src/modules/orders/components/blocks/CardOrderItem.vue'\n\timport CardOrganization from '@martyrs/src/modules/organizations/components/blocks/CardOrganization.vue'\n\n\timport ChatPage from '@martyrs/src/modules/chats/components/pages/ChatPage.vue';\n\n\timport StatusHistory from '@martyrs/src/modules/orders/components/blocks/StatusHistory.vue'\n\timport PriceTotal from '@martyrs/src/modules/orders/components/elements/PriceTotal.vue';\n\timport FormPayment from '@martyrs/src/modules/orders/components/sections/FormPayment.vue'\n\n\timport * as globals \tfrom '@martyrs/src/modules/globals/views/store/globals.js'\n\timport * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\n\timport * as orders \tfrom '@martyrs/src/modules/orders/store/orders.js'\n\timport * as products \tfrom '@martyrs/src/modules/products/store/products.js'\n\timport * as organizations \tfrom '@martyrs/src/modules/organizations/store/organizations.js'\n\n\timport { useI18n } from 'vue-i18n';\n\t\n\tconst { locale } = useI18n();\n\n\tconst router = useRouter()\n\tconst route = useRoute()\n\n\tconst order = ref(null)\n\tconst productsOrganization = ref(null)\n\tconst orderOrganization = ref(null)\n\n\tconst statuses = globals.state.options.orders.statuses\n\tconst statusLabels = ['Created', 'Confirmed', 'Preparing', 'In use', 'Finished'];\n\n if (route.meta.context === 'user' && \n auth.state.user && \n route.params._id !== auth.state.user?._id && \n !auth.state.access?.roles?.includes('ROLE_MODERATOR') && \n !auth.state.access?.roles?.includes('ROLE_ADMIN')) {\n router.push('/401');\n }\n\n\tconst isOpeStatusPopup = ref(false);\n\tconst selectedMember = ref(null);\n\n\tfunction openStatusPopup(member) {\n\t isOpeStatusPopup.value = true;\n\t if (typeof member === \"number\") selectedMember.value = member;\n\t}\n\n\tfunction closeStatusPopup() {\n\t isOpeStatusPopup.value = false;\n\t selectedMember.value = null;\n\t}\n\n\tconst isOpenPaymentPopup = ref(false);\n\n\tconst selectedPayments = ref({\n\t\ttype: null,\n\t\tstatus: null\n\t});\n\n\tfunction openPaymentPopup() {\n\t selectedPayments.value.type = order.value.payment.type\n\t selectedPayments.value.status = order.value.payment.status\n\n\t isOpenPaymentPopup.value = true;\n\t}\n\n\tfunction closePaymentPopup() {\n\t isOpenPaymentPopup.value = false;\n\t}\n\n\tonMounted(async()=>{\n\t\torder.value = await orders.actions.read({_id: route.params.order})\n\t\torder.value = order.value[0]\n\n\t orderOrganization.value = await organizations.actions.read({\n\t _id: order.value?.owner.target._id,\n\t location: globals.state.position?.location,\n\t lookup: ['spots']\n\t });\n\n\t})\n\n\nconst deliveryCost = computed(() => {\n const type = orders.state.current.delivery.type\n const distance = orderOrganization.value[0]?.distance || 0\n const config = globals.state.options?.orders?.delivery_formula || {}\n\n return orders.getters.getDeliveryPrice(type, distance, config)\n})\n\n\tlet cartTotalPrice = computed(() => {\n return Number(order.value?.positions.reduce((total, product) => {\n // Проверяем тип листинга\n if (product.listing === 'rent') {\n const start = new Date(product.date.start)\n const end = new Date(product.date.end)\n const diffTime = Math.abs(end - start)\n return total + product.price * (Math.ceil(diffTime / (1000 * 60 * 60 * 24)) + 1);\n } else {\n // Для обычных товаров умножаем на количество\n return total + product.price * (product.quantity || 1);\n }\n }, 0));\n })\n\n\n let cartTotalAmount = computed(() => {\n return Number(order.value?.positions.reduce((total, product) => {\n return total + product.quantity;\n }, 0));\n })\n\n // Функция установки нового статуса\n\tasync function setStatus (newStatus) {\n\t orders.state.current.status = newStatus\n\n\t await orders.actions.update(orders.state.current)\n\t} \n\n\n\tfunction getNextStatus(currentStatus) {\n\t const currentIndex = globals.state.options.orders.statuses.findIndex(status => status.value === currentStatus);\n\n\t if (currentIndex !== -1 && currentIndex + 1 < statuses.length) {\n\t return globals.state.options.orders.statuses[currentIndex + 1];\n\t }\n\t return null; // If next status doesn't exist\n\t}\n\n\tconst isActiveStatus = (index) => {\n\t return globals.state.options.orders.statuses.slice(index).some(status => status.value === order.value.status);\n\t};\n\n async function changePaymentStatus() {\n if (selectedPayments.value.status && selectedPayments.value.type) {\n orders.state.current.payment = selectedPayments.value;\n\n await orders.actions.update(orders.state.current)\n } else {\n console.error('Payment status is void. Must handle somehow.');\n }\n\n\t\tclosePaymentPopup()\n }\n\n async function setNextStatus() {\n const nextStatus = getNextStatus(orders.state.current.status);\n\n if (nextStatus) {\n orders.state.current.status = nextStatus.value;\n \n // Обновляем позиции заказа из текущего состояния\n orders.state.current.positions = order.value.positions;\n\n await orders.actions.update(orders.state.current)\n } else {\n console.error('Next status is void. Must handle somehow.');\n }\n\n\t\tcloseStatusPopup()\n }\n\n async function cancelOrder() {\n \talert()\n\n orders.state.current.status = 'canceled';\n\n await orders.actions.update(orders.state.current)\n}\n\n\n async function confirmOrder() {\n \talert()\n\n orders.state.current.status = 'confirmed';\n\n await orders.actions.update(orders.state.current)\n\t}\n\n\tfunction calculateDeliveryTime(distance, date) {\n\t if (!distance) {\n\t return null;\n\t }\n\n\t const basePreparationTime = 10 * 60 * 1000; // Convert to milliseconds\n\t const travelTime = Math.ceil((15 + 5 + 3 * distance) / 5) * 5 * 60 * 1000;\n\n\t // Преобразование даты начала в миллисекунды и добавление времени подготовки и доставки\n\t const startTime = new Date(date).getTime();\n\t const estimatedDeliveryTime = new Date(startTime + basePreparationTime + travelTime);\n\n\t return estimatedDeliveryTime;\n\t}\n\n\n</script>\n\n<style lang=\"scss\" scoped>\n\t.blink {\n\t animation: blink-animation 1s ease infinite;\n\t}\n\n\t@keyframes blink-animation {\n\t 0%, 100% {\n\t opacity: 1;\n\t }\n\t 50% {\n\t opacity: 0.8;\n\t }\n\t}\n</style>"],"names":["globals.state","auth.state","orders.actions","organizations.actions","orders.state","orders.getters"],"mappings":"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"}
1
+ {"version":3,"file":"OrderBackoffice.vue.js","sources":["../../../../../../../src/modules/orders/components/pages/OrderBackoffice.vue"],"sourcesContent":["<template>\n\t<div v-if=\"order && orderOrganization\" class=\"pd-thin bg-white\"> \n\n\t <div v-if=\"order\" class=\"mn-b-thin pos-relative w-100 bg-main radius-medium pd-medium\">\n\t \t<div class=\"mn-b-small flex-nowrap flex\">\n\t\t \t<p class=\"t-medium p-medium\">\n\t\t \tOrder No: <span class=\"p-small t-transp\">#{{order._id}}</span>\n\t\t </p>\n\t\t\t</div>\n\n\t \t<div class=\"flex-nowrap flex gap-thin pos-relative \">\n\t\t <div v-for=\"(status, index) in globals.state.options.orders.statuses\" :key=\"index\" class=\"w-20\">\n\t\t <div\n\t\t \tclass=\"bg-white br-anim br-glow radius-extra h-1r w-100\"\n\t\t :class=\"\n\t\t\t\t\t { 'br-glow-anim': isActiveStatus(index) },\n\t\t\t\t\t { 't-transp': !isActiveStatus(index) },\n\t\t\t\t\t { 'blink': order.status === status.value && getNextStatus(order.status) }\n\t\t\t\t\t \"\n\t\t />\n\t\t <div \n\t\t \t:class=\"{ 't-transp': !isActiveStatus(index) }\"\n\t\t\t\t\t class=\"mn-t-thin p-small t-medium uppercase\">{{ status.value }}</div>\n\t\t \t</div>\n\t\t\t </div>\n\t </div>\n\n \t<Popup \n title=\"Payment Status\" \n @close-popup=\"closePaymentPopup\" \n :isPopupOpen=\"isOpenPaymentPopup\"\n class=\"bg-light w-min-25r w-max-25r radius-medium pd-big\"\n >\n \t<Select \n v-model:select=\"selectedPayments.type\"\n :property=\"'value'\"\n label=\"Type\"\n :options=\"[\n {name: 'Cash', value: 'cash'}, \n {name: 'Card', value: 'card'}, \n {name: 'Bank Transfer', value: 'bank'},\n ]\"\n placeholder=\"Select type of payment\" \n size=\"small\"\n class=\"bg-white mn-b-thin pd-regular radius-small w-100\"\n />\n\n <Select \n v-model:select=\"selectedPayments.status\"\n :property=\"'value'\"\n label=\"Status\"\n :options=\"[\n {name: 'Unpaid', value: 'unpaid'}, \n {name: 'Paid', value: 'paid'}, \n {name: 'Refunded', value: 'refunded'},\n ]\"\n placeholder=\"Select status of payment\" \n size=\"small\"\n class=\"bg-white mn-b-small pd-regular radius-small w-100\"\n />\n\n\n <Button :submit=\"changePaymentStatus\" class=\"t-white w-100 bg-second\">\n\t\t\t\t<span>Change Status</span>\n\t\t\t</Button>\n\t \t</Popup>\n\n\t <Popup \n title=\"Change order status\" \n @close-popup=\"closeStatusPopup\" \n :isPopupOpen=\"isOpeStatusPopup\"\n class=\"bg-light w-min-30r w-max-30r radius-medium pd-big\"\n >\n\n\t\t\t<!-- Добавить выбор примерного времени -->\n\n \t<ul class=\"flex gap-thin flex-column mn-b-thin\">\n \t\t\t<CardOrderItem\n \t\t\t\tv-for=\"(product, index) in order.positions\" \n \t\t\t\t:key=\"`${product._id}_${product.variant || 'no-variant'}_${index}`\"\n \t\t\t\t:editable=\"!order.status_history || order.status_history.length <= 1\" \n \t\t\t\t:productId=\"product._id\"\n \t\t\t\t:variantId=\"product.variant\"\n \t\t\t\t:images=\"product.images\"\n \t\t\t\t:name=\"product.name\"\n \t\t\t\t:quantity=\"product.quantity\"\n \t\t\t\t:unit=\"product.unit\"\n \t\t\t\t:dates=\"product.date\"\n \t\t\t\t:listing=\"product.listing\"\n \t\t\t\t:price=\"product.price\"\n \t\t\t\t:increase=\"() => orders.mutations.incrementItemQuantity(order, product._id, product.variant)\"\n\t :decrease=\"() => orders.mutations.decrementItemQuantity(order, product._id, product.variant)\"\n\t :remove=\"() => orders.mutations.removeProduct(order, product._id, product.variant)\"\n\t @updateRentDates=\"(productId, variantId, dates) => shopcart.actions.updateRentDates({ positions: order.positions, productId, variantId, dates })\"\n \t\t\t\tclass=\"bg-white radius-small pd-small\"\n \t\t\t/>\n </ul>\n \n <PriceTotal \n :totalPrice=\"cartTotalPrice\"\n :currency=\"returnCurrency()\"\n :showFees=\"globals.state.options?.orders?.showFees\"\n :feesRate=\"globals.state.options?.orders?.feesRate || 0\"\n :showVat=\"globals.state.options?.orders?.showVat\"\n :vatRate=\"globals.state.options?.orders?.vatRate || 0\"\n />\n\n \t<Button :submit=\"setNextStatus\" class=\"t-white w-100 bg-second\">\n\t\t\t\t<span>{{'Confirm Changing to ' + (getNextStatus(order.status)).label}}</span>\n\t\t\t</Button>\n\t \t</Popup>\n\n\n\t \n\t <div v-if=\"order\" class=\"gap-thin cols-2 mobile:cols-1\">\n\n\t <div class=\"w-100\">\n\n\n\t\t <CardOrganization \n\t\t \tv-if=\"orderOrganization[0]\"\n\t\t :organization=\"orderOrganization[0]\"\n\t\t :showRating=\"true\"\n\t\t :showFollowers=\"false\"\n\t\t :showProducts=\"false\"\n\t\t class=\"bg-light mn-b-thin w-100 o-hidden radius-medium pd-small \"\n\t\t />\n\n\n\t\t <div \n\t\t \tclass=\"mn-b-thin bg-light w-100 o-hidden radius-medium \"\n\t\t >\n\t\t \t<div class=\"pd-small flex-nowrap flex\">\n\t\t\t \t<div class=\"mn-r-auto\">\n\t\t\t\t \t<span class=\"d-block t-medium p-medium mn-b-thin\">Order is</span>\n\t\t\t\t\t <span class=\" t-lh-075 h2 d-block mn-b-small\">{{order.status}}</span>\n\t\t\t\t\t <p class=\"pd-thin radius-extra bg-black t-white w-max\">{{formatDate(order.updatedAt, {language: locale })}}</p>\n\t\t\t\t\t </div>\n\t\t\t\t\t <!-- <div class=\"t-right\">\n\t\t\t\t\t \tCancel order<br>\n\t\t\t\t\t \tExchange item\n\t\t\t\t\t \t<hr class=\"mn-b-thin mn-t-thin\">\n\t\t\t\t\t \tFor Delivery Queries Contact Us\n\t\t\t\t\t \t\n\t\t\t\t\t </div> -->\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div v-if=\"order.customer.target?.number\" class=\"pd-small flex flex-nowrap flex-v-center br-t br-black-transp-10 br-solid\">\n\t\t\t \t<p class=\"w-100 t-medium p-medium\">\n\t\t\t \tPhone\n\t\t\t </p>\n\n\t\t\t <p class=\"w-100 t-right \">\n\t\t\t \t{{order.customer.target?.number || 'Not specified'}}\n\t\t\t </p>\n\t\t\t </div>\n\n\t\t\t <div class=\"pd-small flex flex-nowrap flex-v-center br-t br-black-transp-10 br-solid\">\n\t\t\t \t<p class=\"t-medium p-medium\">\n\t\t\t \tAddress\n\t\t\t </p>\n\n\t\t\t <p class=\"w-100 t-right\">\n\t\t\t\t\t\t\t{{order.delivery.address || (order.delivery.spot[0]?.profile.name + (order.delivery.spot[0]?.address ? ', ' + order.delivery.spot[0].address : '')) || 'Not specified'}}\n\t\t\t </p>\n\n\n\n\t\t\t </div>\n\n\n\t\t\t <div v-if=\"order.comment\" class=\"pos-relative radius-thin mn-t-zero mn-thin bg-fifth-transp-10 pd-small\">\n\t\t\t <p class=\"mn-b-thin t-transp uppercase p-small t-medium\">Comment</p>\n\t\t\t <p>{{order.comment}}</p>\n\t\t\t </div>\n\n\t\t\t <div class=\"pd-small flex flex-nowrap flex-v-center br-t br-black-transp-10 br-solid\">\n\t\t\t \t<p class=\"t-medium p-medium\">\n\t\t\t \tDelivery\n\t\t\t </p>\n\n\t\t\t <p class=\"w-100 t-right \">\n\t\t\t {{order.delivery.type ? order.delivery.type : 'Not specified'}} \n\t\t\t </p>\n\t\t\t </div>\n\n\t\t\t <div class=\"pd-small flex flex-nowrap flex-v-center br-t br-black-transp-10 br-solid\">\n\t\t\t \t<p class=\"mn-r-auto t-medium p-medium\">\n\t\t\t \tPayment\n\t\t\t </p>\n\n\n\t\t\t <p class=\"w-max t-right\">\n\t\t\t {{order.payment.type ? order.payment.type : 'Not specified'}} \n\t\t\t </p>\n\n\t\t\t <p @click=\"route.meta.context !== 'user' && route.meta.context !== 'root' ? openPaymentPopup() : console.log('Context:', route.meta.context)\" class=\"w-max pd-thin radius-small bg-second t-white mn-l-thin cursor-pointer hover-bg-black t-right\">\n\t\t\t {{order.payment.status ? order.payment.status : 'Unpaid'}} \n\t\t\t </p>\n\t\t\t </div>\n\n\n\t\t\t\t</div>\n\n\t\t\t\t<div v-if=\"route.meta.context !== 'user' && route.meta.context !== 'root'\" class=\"o-y-scroll bg-light pd-thin mn-b-thin pd-thin radius-medium flex-nowrap flex\">\n\t\t \t\t<div class=\"flex-child-default mn-r-small w-max flex-v-center gap-thin flex-nowrap flex pd-thin radius-small bg-light-transp-20\">\n\t\t \t\t\t<IconTime class=\"i-semi t-transp\" fill=\"rgb(var(--black)\" />\n\t\t <p class=\"t-medium mn-r-auto\"><span class=\"p-small t-transp\">Estimated Reaction</span><br>{{formatDate(order.deadline, { language: locale })}}</p>\n\t\t\t \t</div>\n\t\t\t \t<button v-if=\"getNextStatus(order.status)\" @click=\"openStatusPopup\" class=\"flex-child-default mn-l-auto bg-black t-white button\"> \n\t\t\t\t Mark as {{ (getNextStatus(order.status)).label }} \n\t\t\t\t </button>\n\t\t \t</div>\n\n\t\t\t<div class=\"bg-light radius-medium pd-medium mn-r-bold w-100\">\n\t\t <h3 class=\"mn-b-small\">Chat With Us</h3>\n\n\t\t <ChatPage\n\t\t \t:username=\"['Order', 'UserOrder'].includes(route.name) ? (order.user?.name || 'User') : 'Support'\"\n\t\t \t:user=\"auth.state.user._id\"\n\t\t \t:chatID=\"route.params.order\"\n\t\t \tclass=\"radius-semi bs-black bg-light o-hidden\"\n\t\t />\n\n\t </div>\n\t \t<!-- <StatusHistory \n\t \t\tv-if=\"orders.state.current.status_history\"\n\t \t\t:statuses=\"statuses\"\n\t \t\t:statusHistory=\"orders.state.current.status_history\"\n\t \t\t:statusCurrent=\"orders.state.current.status\"\n\t \t\t:edit=\"route.name === 'Order Edit'\"\n\t \t/> -->\n\n\t <!-- \t<button \n\t \t@click=\"requestPayment(order)\"\n\t \tv-if=\"\n\t \t\torder.status === 'Подтвержден' \n\t \t\t&& order.payment.type === 'Online'\n\t \t\t&& payment.Status !== 'CONFIRMED'\n\t \t\t&& payment.Status !== 'REFUNDED'\n\t \t\" \n\t \tclass='w-100 button'>Оплатить заказ</button> -->\n\t \t<span class=\"t-transp\" v-if=\"payment && payment.Status === 'CONFIRMED'\">Paid</span> \n\t </div> \n\n\t <div class=\"bg-light radius-medium pd-medium w-100\">\n\t \t\t<h3 class=\"mn-b-small\">Order Summary</h3>\n\n\t \t\t<ul class=\"flex gap-thin flex-column mn-b-thin\">\n\t \t\t\t<CardOrderItem\n\t \t\t\t\tv-for=\"(product, index) in order.positions\" \n\t \t\t\t\t:key=\"`${product._id}_${product.variant || 'no-variant'}_${index}`\"\n\t \t\t\t\t:editable=\"false\" \n\t \t\t\t\t:productId=\"product._id\"\n\t \t\t\t\t:variantId=\"product.variant\"\n\t \t\t\t\t:images=\"product.images\"\n\t \t\t\t\t:name=\"product.name\"\n\t \t\t\t\t:quantity=\"product.quantity\"\n\t \t\t\t\t:unit=\"product.unit\"\n\t \t\t\t\t:dates=\"product.date\"\n\t \t\t\t\t:listing=\"product.listing\"\n\t \t\t\t\t:price=\"product.price\"\n\t \t\t\t\tclass=\"bg-white radius-small pd-small\"\n\t \t\t\t/>\n\t </ul>\n\t \n\t <PriceTotal \n :totalPrice=\"cartTotalPrice\"\n :deliveryRate=\"deliveryCost\"\n :currency=\"returnCurrency()\"\n :showFees=\"globals.state.options?.orders?.showFees\"\n :feesRate=\"globals.state.options?.orders?.feesRate || 0\"\n :showVat=\"globals.state.options?.orders?.showVat\"\n :vatRate=\"globals.state.options?.orders?.vatRate || 0\"\n\t\t\t\t :showDeliveryFee=\"globals.state.options?.orders.showDeliveryFee\"\n\n />\n \t</div>\n\n\t \n\t </div>\n\t</div>\t\t\n\n</template>\n\n\n<script setup=\"props\">\n\timport { computed, ref, onMounted } from 'vue'\n\timport { useRouter, useRoute } from 'vue-router'\n\n\timport Button from '@martyrs/src/components/Button/Button.vue'\n\timport Select from '@martyrs/src/components/Select/Select.vue'\n\timport Popup from \"@martyrs/src/components/Popup/Popup.vue\";\n\n\timport IconTime from '@martyrs/src/modules/icons/entities/IconTime.vue'\n\n\t// Block\n\timport CardOrderItem from '@martyrs/src/modules/orders/components/blocks/CardOrderItem.vue'\n\timport CardOrganization from '@martyrs/src/modules/organizations/components/blocks/CardOrganization.vue'\n\n\timport ChatPage from '@martyrs/src/modules/chats/components/pages/ChatPage.vue';\n\n\timport StatusHistory from '@martyrs/src/modules/orders/components/blocks/StatusHistory.vue'\n\timport PriceTotal from '@martyrs/src/modules/orders/components/elements/PriceTotal.vue';\n\timport FormPayment from '@martyrs/src/modules/orders/components/sections/FormPayment.vue'\n\n\timport * as globals \tfrom '@martyrs/src/modules/globals/views/store/globals.js'\n\timport * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\n\timport * as orders \tfrom '@martyrs/src/modules/orders/store/orders.js'\n\timport * as products \tfrom '@martyrs/src/modules/products/store/products.js'\n\timport * as organizations \tfrom '@martyrs/src/modules/organizations/store/organizations.js'\n\n\timport { useI18n } from 'vue-i18n';\n\timport { useGlobalMixins } from '@martyrs/src/modules/globals/views/mixins/mixins.js';\n\t\n\tconst { locale } = useI18n();\n\tconst { returnCurrency } = useGlobalMixins();\n\n\tconst router = useRouter()\n\tconst route = useRoute()\n\n\tconst order = ref(null)\n\tconst productsOrganization = ref(null)\n\tconst orderOrganization = ref(null)\n\n\tconst statuses = globals.state.options.orders.statuses\n\tconst statusLabels = ['Created', 'Confirmed', 'Preparing', 'In use', 'Finished'];\n\n if (route.meta.context === 'user' && \n auth.state.user && \n route.params._id !== auth.state.user?._id && \n !auth.state.access?.roles?.includes('ROLE_MODERATOR') && \n !auth.state.access?.roles?.includes('ROLE_ADMIN')) {\n router.push('/401');\n }\n\n\tconst isOpeStatusPopup = ref(false);\n\tconst selectedMember = ref(null);\n\n\tfunction openStatusPopup(member) {\n\t isOpeStatusPopup.value = true;\n\t if (typeof member === \"number\") selectedMember.value = member;\n\t}\n\n\tfunction closeStatusPopup() {\n\t isOpeStatusPopup.value = false;\n\t selectedMember.value = null;\n\t}\n\n\tconst isOpenPaymentPopup = ref(false);\n\n\tconst selectedPayments = ref({\n\t\ttype: null,\n\t\tstatus: null\n\t});\n\n\tfunction openPaymentPopup() {\n\t selectedPayments.value.type = order.value.payment.type\n\t selectedPayments.value.status = order.value.payment.status\n\n\t isOpenPaymentPopup.value = true;\n\t}\n\n\tfunction closePaymentPopup() {\n\t isOpenPaymentPopup.value = false;\n\t}\n\n\tonMounted(async()=>{\n\t\torder.value = await orders.actions.read({_id: route.params.order})\n\t\torder.value = order.value[0]\n\n\t orderOrganization.value = await organizations.actions.read({\n\t _id: order.value?.owner.target._id,\n\t location: globals.state.position?.location,\n\t lookup: ['spots']\n\t });\n\n\t})\n\n\nconst deliveryCost = computed(() => {\n const type = orders.state.current.delivery.type\n const distance = orderOrganization.value[0]?.distance || 0\n const config = globals.state.options?.orders?.delivery_formula || {}\n\n return orders.getters.getDeliveryPrice(type, distance, config)\n})\n\n\tlet cartTotalPrice = computed(() => {\n return Number(order.value?.positions.reduce((total, product) => {\n // Проверяем тип листинга\n if (product.listing === 'rent') {\n const start = new Date(product.date.start)\n const end = new Date(product.date.end)\n const diffTime = Math.abs(end - start)\n return total + product.price * (Math.ceil(diffTime / (1000 * 60 * 60 * 24)) + 1);\n } else {\n // Для обычных товаров умножаем на количество\n return total + product.price * (product.quantity || 1);\n }\n }, 0));\n })\n\n\n let cartTotalAmount = computed(() => {\n return Number(order.value?.positions.reduce((total, product) => {\n return total + product.quantity;\n }, 0));\n })\n\n // Функция установки нового статуса\n\tasync function setStatus (newStatus) {\n\t orders.state.current.status = newStatus\n\n\t await orders.actions.update(orders.state.current)\n\t} \n\n\n\tfunction getNextStatus(currentStatus) {\n\t const currentIndex = globals.state.options.orders.statuses.findIndex(status => status.value === currentStatus);\n\n\t if (currentIndex !== -1 && currentIndex + 1 < statuses.length) {\n\t return globals.state.options.orders.statuses[currentIndex + 1];\n\t }\n\t return null; // If next status doesn't exist\n\t}\n\n\tconst isActiveStatus = (index) => {\n\t return globals.state.options.orders.statuses.slice(index).some(status => status.value === order.value.status);\n\t};\n\n async function changePaymentStatus() {\n if (selectedPayments.value.status && selectedPayments.value.type) {\n orders.state.current.payment = selectedPayments.value;\n\n await orders.actions.update(orders.state.current)\n } else {\n console.error('Payment status is void. Must handle somehow.');\n }\n\n\t\tclosePaymentPopup()\n }\n\n async function setNextStatus() {\n const nextStatus = getNextStatus(orders.state.current.status);\n\n if (nextStatus) {\n orders.state.current.status = nextStatus.value;\n \n // Обновляем позиции заказа из текущего состояния\n orders.state.current.positions = order.value.positions;\n\n await orders.actions.update(orders.state.current)\n } else {\n console.error('Next status is void. Must handle somehow.');\n }\n\n\t\tcloseStatusPopup()\n }\n\n async function cancelOrder() {\n \talert()\n\n orders.state.current.status = 'canceled';\n\n await orders.actions.update(orders.state.current)\n}\n\n\n async function confirmOrder() {\n \talert()\n\n orders.state.current.status = 'confirmed';\n\n await orders.actions.update(orders.state.current)\n\t}\n\n\tfunction calculateDeliveryTime(distance, date) {\n\t if (!distance) {\n\t return null;\n\t }\n\n\t const basePreparationTime = 10 * 60 * 1000; // Convert to milliseconds\n\t const travelTime = Math.ceil((15 + 5 + 3 * distance) / 5) * 5 * 60 * 1000;\n\n\t // Преобразование даты начала в миллисекунды и добавление времени подготовки и доставки\n\t const startTime = new Date(date).getTime();\n\t const estimatedDeliveryTime = new Date(startTime + basePreparationTime + travelTime);\n\n\t return estimatedDeliveryTime;\n\t}\n\n\n</script>\n\n<style lang=\"scss\" scoped>\n\t.blink {\n\t animation: blink-animation 1s ease infinite;\n\t}\n\n\t@keyframes blink-animation {\n\t 0%, 100% {\n\t opacity: 1;\n\t }\n\t 50% {\n\t opacity: 0.8;\n\t }\n\t}\n</style>"],"names":["globals.state","auth.state","orders.actions","organizations.actions","orders.state","orders.getters"],"mappings":"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"}
@@ -2,12 +2,12 @@
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
- ;/* empty css */
5
+ ;/* empty css */
6
6
  const Button = require("../../../../components/Button/Button.vue.cjs");
7
7
  const Tab = require("../../../../components/Tab/Tab.vue2.cjs");
8
8
  const Popup = require("../../../../components/Popup/Popup.vue.cjs");
9
9
  const Block = require("../../../../components/Block/Block.vue.cjs");
10
- const Feed = require("../../../../components/Feed/Feed.vue.cjs");
10
+ const Feed = require("../../../../components/Feed/Feed.vue2.cjs");
11
11
  const CardOrderItem = require("../blocks/CardOrderItem.vue.cjs");
12
12
  const mixins = require("../../../globals/views/mixins/mixins.cjs");
13
13
  const FormSelectCustomer = require("../forms/FormSelectCustomer.vue.cjs");
@@ -47,7 +47,7 @@ const _sfc_main = {
47
47
  const route = vueRouter.useRoute();
48
48
  const router = vueRouter.useRouter();
49
49
  const { proxy } = vue.getCurrentInstance();
50
- const { formatPrice } = mixins.useGlobalMixins();
50
+ const { formatPrice, returnCurrency } = mixins.useGlobalMixins();
51
51
  orders.mutations.resetOrder(orders.state.current);
52
52
  let cartTotalPrice = vue.computed(() => {
53
53
  return Number(orders.state.current.positions.reduce((total, product) => {
@@ -381,7 +381,7 @@ const _sfc_main = {
381
381
  default: vue.withCtx(() => [
382
382
  vue.createElementVNode("div", _hoisted_12, [
383
383
  _cache[6] || (_cache[6] = vue.createElementVNode("span", { class: "mn-r-auto t-transp" }, "In total", -1)),
384
- vue.createElementVNode("span", null, vue.toDisplayString(vue.unref(cartTotalPrice)) + " " + vue.toDisplayString(_ctx.returnCurrency()), 1)
384
+ vue.createElementVNode("span", null, vue.toDisplayString(vue.unref(cartTotalPrice)) + " " + vue.toDisplayString(vue.unref(returnCurrency)()), 1)
385
385
  ])
386
386
  ]),
387
387
  _: 1