@ozdao/martyrs 0.2.512 → 0.2.513

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 (309) hide show
  1. package/dist/{main-B1XN9Zjg.cjs → main-CVOBCkmD.cjs} +5 -5
  2. package/dist/{main-u7zgfMGL.js → main-CVRRj-vK.js} +259 -262
  3. package/dist/martyrs/src/components/Button/{Button.vue.cjs → Button.vue2.cjs} +3 -3
  4. package/dist/martyrs/src/components/Button/Button.vue2.cjs.map +1 -0
  5. package/dist/martyrs/src/components/Button/{Button.vue.js → Button.vue2.js} +3 -3
  6. package/dist/martyrs/src/components/Button/{Button.vue.cjs.map → Button.vue2.js.map} +1 -1
  7. package/dist/martyrs/src/components/Chips/{Chips.vue.cjs → Chips.vue2.cjs} +2 -2
  8. package/dist/martyrs/src/components/Chips/Chips.vue2.cjs.map +1 -0
  9. package/dist/martyrs/src/components/Chips/{Chips.vue.js → Chips.vue2.js} +2 -2
  10. package/dist/martyrs/src/components/Chips/Chips.vue2.js.map +1 -0
  11. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.cjs → Dropdown.vue2.cjs} +2 -2
  12. package/dist/martyrs/src/components/Dropdown/Dropdown.vue2.cjs.map +1 -0
  13. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.js → Dropdown.vue2.js} +2 -2
  14. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.cjs.map → Dropdown.vue2.js.map} +1 -1
  15. package/dist/martyrs/src/components/Feed/Carousel.vue.cjs +1 -1
  16. package/dist/martyrs/src/components/Feed/Carousel.vue.js +1 -1
  17. package/dist/martyrs/src/components/Feed/Feed.vue.cjs +2 -2
  18. package/dist/martyrs/src/components/Feed/Feed.vue.js +2 -2
  19. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.cjs +1 -1
  20. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +1 -1
  21. package/dist/martyrs/src/components/Loader/{Loader.vue2.cjs → Loader.vue.cjs} +2 -2
  22. package/dist/martyrs/src/components/Loader/{Loader.vue2.js.map → Loader.vue.cjs.map} +1 -1
  23. package/dist/martyrs/src/components/Loader/{Loader.vue2.js → Loader.vue.js} +2 -2
  24. package/dist/martyrs/src/components/Loader/Loader.vue.js.map +1 -0
  25. package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue2.cjs +1 -1
  26. package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue2.js +1 -1
  27. package/dist/martyrs/src/components/Menu/MenuItem.vue.cjs +2 -2
  28. package/dist/martyrs/src/components/Menu/MenuItem.vue.cjs.map +1 -1
  29. package/dist/martyrs/src/components/Menu/MenuItem.vue.js +2 -2
  30. package/dist/martyrs/src/components/Menu/MenuItem.vue.js.map +1 -1
  31. package/dist/martyrs/src/components/Select/{Select.vue2.cjs → Select.vue.cjs} +2 -2
  32. package/dist/martyrs/src/components/Select/{Select.vue2.js.map → Select.vue.cjs.map} +1 -1
  33. package/dist/martyrs/src/components/Select/{Select.vue2.js → Select.vue.js} +2 -2
  34. package/dist/martyrs/src/components/Select/Select.vue.js.map +1 -0
  35. package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.cjs +1 -1
  36. package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.js +1 -1
  37. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs +1 -1
  38. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +1 -1
  39. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +1 -1
  40. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +1 -1
  41. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +3 -3
  42. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs.map +1 -1
  43. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +3 -3
  44. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js.map +1 -1
  45. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.cjs +1 -1
  46. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +1 -1
  47. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.cjs +1 -1
  48. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +1 -1
  49. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.cjs +1 -1
  50. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +1 -1
  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/chats/components/sections/ChatWindow.vue.cjs +0 -2
  60. package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.cjs.map +1 -1
  61. package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.js +0 -2
  62. package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.js.map +1 -1
  63. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.cjs +1 -1
  64. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js +1 -1
  65. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.cjs +1 -1
  66. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +1 -1
  67. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs +3 -3
  68. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +3 -3
  69. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +1 -1
  70. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
  71. package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.cjs +1 -1
  72. package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js +1 -1
  73. package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.cjs +1 -1
  74. package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.js +1 -1
  75. package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.cjs +1 -1
  76. package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.js +1 -1
  77. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +2 -2
  78. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +2 -2
  79. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs +1 -1
  80. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
  81. package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +3 -3
  82. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +3 -3
  83. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.cjs +3 -5
  84. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.cjs.map +1 -1
  85. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js +3 -5
  86. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js.map +1 -1
  87. package/dist/martyrs/src/modules/events/components/sections/Feed.vue.cjs +1 -1
  88. package/dist/martyrs/src/modules/events/components/sections/Feed.vue.js +1 -1
  89. package/dist/martyrs/src/modules/events/components/sections/List.vue.cjs +1 -1
  90. package/dist/martyrs/src/modules/events/components/sections/List.vue.js +1 -1
  91. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +3 -3
  92. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +3 -3
  93. package/dist/martyrs/src/modules/globals/globals.client.cjs +6 -0
  94. package/dist/martyrs/src/modules/globals/globals.client.cjs.map +1 -1
  95. package/dist/martyrs/src/modules/globals/globals.client.js +8 -2
  96. package/dist/martyrs/src/modules/globals/globals.client.js.map +1 -1
  97. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +2 -2
  98. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +2 -2
  99. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupAuth.vue.cjs +1 -1
  100. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupAuth.vue.js +1 -1
  101. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs +2 -2
  102. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js +2 -2
  103. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +2 -2
  104. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +2 -2
  105. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs +2 -2
  106. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js +2 -2
  107. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs +1 -1
  108. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js +1 -1
  109. package/dist/martyrs/src/modules/globals/views/components/partials/NavigationBar.vue.cjs +1 -1
  110. package/dist/martyrs/src/modules/globals/views/components/partials/NavigationBar.vue.js +1 -1
  111. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.cjs +42 -46
  112. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.cjs.map +1 -1
  113. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.js +45 -49
  114. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.js.map +1 -1
  115. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.cjs +1 -1
  116. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +1 -1
  117. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.cjs +1 -1
  118. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +1 -1
  119. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.cjs +15 -17
  120. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.cjs.map +1 -1
  121. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js +15 -17
  122. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js.map +1 -1
  123. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.cjs +3 -3
  124. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +3 -3
  125. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.cjs +1 -1
  126. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js +1 -1
  127. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.cjs +1 -1
  128. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +1 -1
  129. package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.cjs +1 -1
  130. package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.js +1 -1
  131. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.cjs +1 -1
  132. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js +1 -1
  133. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.cjs +1 -1
  134. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js +1 -1
  135. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.cjs +2 -2
  136. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +2 -2
  137. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.cjs +3 -3
  138. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +3 -3
  139. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.cjs +1 -1
  140. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +1 -1
  141. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.cjs +1 -1
  142. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js +1 -1
  143. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs +2 -2
  144. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +2 -2
  145. package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs +3 -3
  146. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +3 -3
  147. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.cjs +2 -2
  148. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +2 -2
  149. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.cjs +1 -1
  150. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +1 -1
  151. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs +3 -3
  152. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +3 -3
  153. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.cjs +2 -2
  154. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +2 -2
  155. package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs +3 -3
  156. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +3 -3
  157. package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.cjs +1 -1
  158. package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.js +1 -1
  159. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.cjs +1 -1
  160. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js +1 -1
  161. package/dist/martyrs/src/modules/music/router/music.cjs +2 -2
  162. package/dist/martyrs/src/modules/music/router/music.js +2 -2
  163. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.cjs +19 -18
  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 +19 -18
  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 +2 -2
  168. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +2 -2
  169. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.cjs +84 -63
  170. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.cjs.map +1 -1
  171. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +85 -64
  172. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js.map +1 -1
  173. package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.cjs +2 -2
  174. package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js +2 -2
  175. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +5 -5
  176. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs.map +1 -1
  177. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +5 -5
  178. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js.map +1 -1
  179. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs +5 -3
  180. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs.map +1 -1
  181. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +5 -3
  182. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js.map +1 -1
  183. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +1 -1
  184. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +1 -1
  185. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.cjs +1 -1
  186. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js +1 -1
  187. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.cjs +1 -1
  188. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js +1 -1
  189. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +4 -4
  190. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs.map +1 -1
  191. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +4 -4
  192. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js.map +1 -1
  193. package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.cjs +1 -1
  194. package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.js +1 -1
  195. package/dist/martyrs/src/modules/orders/orders.client.cjs +1 -0
  196. package/dist/martyrs/src/modules/orders/orders.client.cjs.map +1 -1
  197. package/dist/martyrs/src/modules/orders/orders.client.js +2 -0
  198. package/dist/martyrs/src/modules/orders/orders.client.js.map +1 -1
  199. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.cjs +1 -1
  200. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +1 -1
  201. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.cjs +1 -1
  202. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +1 -1
  203. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +3 -3
  204. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +3 -3
  205. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +4 -19
  206. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs.map +1 -1
  207. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +5 -20
  208. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js.map +1 -1
  209. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +2 -2
  210. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +2 -2
  211. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs +2 -2
  212. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +2 -2
  213. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.cjs +2 -2
  214. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +2 -2
  215. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +2 -2
  216. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +2 -2
  217. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.cjs +37 -43
  218. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.cjs.map +1 -1
  219. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.js +48 -54
  220. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.js.map +1 -1
  221. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.cjs +1 -1
  222. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -1
  223. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.cjs +1 -1
  224. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -1
  225. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.cjs +1 -1
  226. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +1 -1
  227. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.cjs +1 -1
  228. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.js +1 -1
  229. package/dist/martyrs/src/modules/products/components/elements/Image360.vue.cjs +1 -1
  230. package/dist/martyrs/src/modules/products/components/elements/Image360.vue.js +1 -1
  231. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs +1 -1
  232. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +1 -1
  233. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +4 -4
  234. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +4 -4
  235. package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +1 -1
  236. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +1 -1
  237. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +2 -2
  238. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +2 -2
  239. package/dist/martyrs/src/modules/products/components/pages/ProductRecommmendation.vue.cjs +1 -1
  240. package/dist/martyrs/src/modules/products/components/pages/ProductRecommmendation.vue.js +1 -1
  241. package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs +11 -8
  242. package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs.map +1 -1
  243. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +11 -8
  244. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js.map +1 -1
  245. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.cjs +1 -1
  246. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +1 -1
  247. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs +2 -2
  248. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +2 -2
  249. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs +2 -2
  250. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +2 -2
  251. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.cjs +1 -1
  252. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js +1 -1
  253. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.cjs +1 -1
  254. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +1 -1
  255. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.cjs +1 -1
  256. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +1 -1
  257. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.cjs +2 -2
  258. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +2 -2
  259. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs +2 -2
  260. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +2 -2
  261. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs +1 -1
  262. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js +1 -1
  263. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.cjs +1 -1
  264. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js +1 -1
  265. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs +1 -1
  266. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +1 -1
  267. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.cjs +1 -1
  268. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js +1 -1
  269. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +2 -2
  270. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +2 -2
  271. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.cjs +2 -2
  272. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +2 -2
  273. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.cjs +1 -1
  274. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +1 -1
  275. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.cjs +4 -4
  276. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +4 -4
  277. package/dist/martyrs.cjs.js +1 -1
  278. package/dist/martyrs.css +1 -1
  279. package/dist/martyrs.es.js +1 -1
  280. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/utils.cjs +1 -1
  281. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/utils.js +1 -1
  282. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/utils.cjs +1 -1
  283. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/utils.js +1 -1
  284. package/dist/style.css +60 -53
  285. package/dist/{web--8-wgr6b.js → web-BW449LVt.js} +1 -1
  286. package/dist/{web-BS6utuAZ.cjs → web-CO3tWG6J.cjs} +1 -1
  287. package/package.json +1 -1
  288. package/src/components/Menu/MenuItem.vue +11 -6
  289. package/src/modules/auth/views/components/pages/Profile.vue +1 -1
  290. package/src/modules/chats/components/sections/ChatWindow.vue +1 -1
  291. package/src/modules/events/components/pages/EventsBackoffice.vue +0 -1
  292. package/src/modules/globals/globals.client.js +13 -0
  293. package/src/modules/globals/views/components/sections/Filters.vue +2 -4
  294. package/src/modules/inventory/components/pages/Inventory.vue +0 -1
  295. package/src/modules/orders/components/blocks/CardOrderItem.vue +1 -1
  296. package/src/modules/orders/components/forms/FormCustomerDetails.vue +52 -35
  297. package/src/modules/orders/components/pages/OrderBackoffice.vue +2 -2
  298. package/src/modules/orders/components/pages/OrderCreate.vue +3 -1
  299. package/src/modules/orders/components/sections/FormDelivery.vue +2 -2
  300. package/src/modules/orders/orders.client.js +2 -0
  301. package/src/modules/organizations/components/pages/Organization.vue +6 -2
  302. package/src/modules/organizations/configs/navigation.organization.config.js +36 -36
  303. package/src/modules/products/components/pages/Products.vue +11 -9
  304. package/dist/martyrs/src/components/Button/Button.vue.js.map +0 -1
  305. package/dist/martyrs/src/components/Chips/Chips.vue.cjs.map +0 -1
  306. package/dist/martyrs/src/components/Chips/Chips.vue.js.map +0 -1
  307. package/dist/martyrs/src/components/Dropdown/Dropdown.vue.js.map +0 -1
  308. package/dist/martyrs/src/components/Loader/Loader.vue2.cjs.map +0 -1
  309. package/dist/martyrs/src/components/Select/Select.vue2.cjs.map +0 -1
@@ -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\">\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\">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\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,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
- const Button = require("../../../../components/Button/Button.vue.cjs");
4
+ const Button = require("../../../../components/Button/Button.vue2.cjs");
5
5
  const CardOrderItem = require("../blocks/CardOrderItem.vue.cjs");
6
6
  const AskToLogin = require("../sections/AskToLogin.vue.cjs");
7
7
  const Succes = require("../sections/Succes.vue.cjs");
@@ -33,7 +33,7 @@ const _hoisted_4 = {
33
33
  class: "bg-fourth-nano pd-small radius-medium t-center"
34
34
  };
35
35
  const _hoisted_5 = { class: "t-fourth" };
36
- const _hoisted_6 = { class: "gap-small mn-b-thin cols-2" };
36
+ const _hoisted_6 = { class: "gap-small mn-b-thin cols-2 mobile:cols-1" };
37
37
  const _hoisted_7 = {
38
38
  key: 0,
39
39
  class: "rows-1 gap-thin"
@@ -276,7 +276,9 @@ const _sfc_main = {
276
276
  orders.state.current.status !== true && shopcart.state.positions.length > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7, [
277
277
  vue.createVNode(FormCustomerDetails.default, {
278
278
  customer: orders.state.current.customer,
279
- "onUpdate:customer": _cache[0] || (_cache[0] = ($event) => orders.state.current.customer = $event)
279
+ "onUpdate:customer": _cache[0] || (_cache[0] = ($event) => orders.state.current.customer = $event),
280
+ showAdminFields: false,
281
+ showButtons: false
280
282
  }, null, 8, ["customer"]),
281
283
  orders.state.current.status !== true && shopcart.state.positions.length > 0 ? (vue.openBlock(), vue.createBlock(FormPayment.default, {
282
284
  key: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"OrderCreate.vue.cjs","sources":["../../../../../../../src/modules/orders/components/pages/OrderCreate.vue"],"sourcesContent":["<template>\n\n<section class=\"bg-white pd-thin\">\n\n\t<!-- Ask to login -->\n\t<AskToLogin class=\"mn-b-thin\" v-if=\"auth.state.access.status === false\" /> \n\n\t<!-- Empty State -->\n\t<EmptyState \n\t\tv-if=\"shopcart.state.positions < 1\" \n\t/>\t\n\t<Succes \n\t\tv-if=\"order.status === true && shopcart.state.positions.length > 0\" \n\t\t:order=\"order\" \n\t/>\n\t<!-- Уведомления о минимальной сумме заказа и времени работы -->\n\t<div v-if=\"shopcart.state.positions.length > 0\" class=\"w-100 gap-thin cols-1 mn-b-thin\">\n\t\t<div v-if=\"!isOpen\" class=\"bg-fifth-nano pd-small radius-medium t-center\">\n\t\t\t<p class=\"t-fourth\">⚠️ This spot is currently closed. You can place an order, but it will be processed when the spot opens.</p>\n\t\t</div>\n\t\t<div v-if=\"cartTotalPrice < minOrderAmount\" class=\"bg-fourth-nano pd-small radius-medium t-center\">\n\t\t\t<p class=\"t-fourth\">⚠️ Minimum order amount is {{ formatPrice(minOrderAmount) }}. Your current total is {{ formatPrice(cartTotalPrice) }}.</p>\n\t\t</div>\n\t</div>\n\t<!-- Order form -->\n\t<div class=\"gap-small mn-b-thin cols-2\">\n\t\t<!-- Order Form -->\n\t\t<div\n\t\t\tv-if=\"orders.state.current.status !== true && shopcart.state.positions.length > 0\" \n\t\t\tclass=\"rows-1 gap-thin\"\n\t\t>\n\t\t\t<FormCustomerDetails\n\t\t\t\tv-model:customer=\"orders.state.current.customer\"\n\t\t\t/>\n\t\t\t<FormPayment \t\n\t\t\t\tv-if=\"orders.state.current.status !== true && shopcart.state.positions.length > 0\"\n\t\t\t\t:order=\"orders.state.current\" \n\t\t\t\t:organization=\"orderOrganization[0]\" \n\t\t\t/>\n\t\t\t<FormDelivery \t\n\t\t\t\tv-if=\"orders.state.current.status !== true && shopcart.state.positions.length > 0\"\n\t\t\t\t:order=\"orders.state.current\" \n\t\t\t\t:organization=\"orderOrganization[0]\" \n\t\t\t/>\n\t\t\t\n\t\t</div>\n\n\t\t<!-- Order positions -->\n\t\t<div \n\t\t\tv-if=\"shopcart.state.positions.length > 0\" \n\t\t\tclass=\"bg-white br-solid br-light br-1px pd-medium radius-medium\"\n\t\t>\n\t\t\t<h4 class=\"font-second mn-b-thin\">Your Order</h4>\n\n\t\t\t<ul class=\"flex gap-thin flex-wrap mn-b-thin\">\n\t\t\t\t<CardOrderItem \n\t\t\t\t\tv-for=\"(product, index) in shopcart.state.positions\" \n\t\t\t\t\t:key=\"`${product._id}_${product.variant || 'no-variant'}_${index}`\" \n\t\t\t\t\t:editable=\"true\" \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 :increase=\"() => shopcart.actions.incrementItemQuantity(product._id, product.variant)\"\n\t :decrease=\"() => shopcart.actions.decrementItemQuantity(product._id, product.variant)\"\n\t :remove=\"() => shopcart.actions.removeProduct(product._id, product.variant)\"\n\t\t\t\t\t@updateRentDates=\"(productId, variantId, dates) => shopcart.actions.updateRentDates({ productId, variantId, dates })\"\n\t class=\"w-100 bg-white \"\n\t />\n\t\t\t</ul>\n\n\t\t\t\t<div \n\t\t\t\tclass=\"mn-b-thin\"\n\t\t\t>\t\n\t\t\t\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 :showDeliveryFee=\"globals.state.options?.orders.showDeliveryFee\"\n />\n\t\t\t</div>\n\t\t\t<!-- Send order -->\n\t\t <Button\n v-if=\"orders.state.current.status !== true && shopcart.state.positions.length > 0\"\n :submit=\"() => handleCreate()\"\n class=\"bg-main mn-b-small pd-small radius-big w-100 button\"\n :disabled=\"\n\t\t errorName \n\t\t || errorPhoneOrMessenger \n\t\t || errorCity \n\t\t || errorAddress \n\t\t || errorDelivery \n\t\t || errorPayment\n\t\t || isLocationLoading\n\t\t || cartTotalPrice < minOrderAmount\n\t\t \"\n >\n <span>Place an Order</span>\n </Button>\n\n\t\t <p class='mn-b-thin'>\n\t\t\t\tI agree that placing the order places me under an obligation to make a payment in accordance with <a class=\"t-semi font-second t-second\" href=\"/legal/terms-of-use\" target=\"_blank\">Terms of Use.</a>\n\t\t\t</p>\n\t\t\t<p >\n\t\t\t\t\n\t\t\t</p>\n\t\t</div>\n\n\t</div>\n\n\t\n\t\n</section>\n\n</template>\n\n\n<script setup>\n///////////////////////////////////////////////////////////////////////////////////////////////////\n// Import components\n///////////////////////////////////////////////////////////////////////////////////////////////////\nimport Button from '@martyrs/src/components/Button/Button.vue'\n// Block\nimport CardOrderItem from '@martyrs/src/modules/orders/components/blocks/CardOrderItem.vue'\n// Sections\nimport AskToLogin from '@martyrs/src/modules/orders/components/sections/AskToLogin.vue'\nimport Succes from '@martyrs/src/modules/orders/components/sections/Succes.vue'\nimport EmptyState from '@martyrs/src/modules/orders/components/sections/EmptyState.vue'\n\nimport PriceTotal from '@martyrs/src/modules/orders/components/elements/PriceTotal.vue';\n\nimport FormCustomerDetails from '@martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue'\nimport FormDelivery from '@martyrs/src/modules/orders/components/sections/FormDelivery.vue'\nimport FormPayment from '@martyrs/src/modules/orders/components/sections/FormPayment.vue'\n///////////////////////////////////////////////////////////////////////////////////////////////////\n// Import libs\n///////////////////////////////////////////////////////////////////////////////////////////////////\nimport { ref, computed, onMounted, watch } from 'vue'\nimport { useRoute,useRouter } from 'vue-router'\nimport { useGlobalMixins } from \"@martyrs/src/modules/globals/views/mixins/mixins.js\"\n\n// Store\nimport * as globals from '@martyrs/src/modules/globals/views/store/globals.js';\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\nimport * as shopcart from '@martyrs/src/modules/orders/store/shopcart.js';\nimport * as organizations from '@martyrs/src/modules/organizations/store/organizations.js';\nimport * as orders from '@martyrs/src/modules/orders/store/orders.js';\nimport * as users from '@martyrs/src/modules/auth/views/store/users.js';\n\nconst emits = defineEmits(['page-loading', 'page-loaded']);\n\n///////////////////////////////////////////////////////////////////////////////////////////////////\n// Variables and computed\n//////////////////////////////////////////////////////////////////////////////////////////////////\nconst isLocationLoading = ref(false)\n// Accessing router and store\nconst route = useRoute()\nconst router = useRouter()\nconst { returnCurrency, formatPrice } = useGlobalMixins()\n// COMPUTED\nconst order = computed(() => orders.state.current)\nconst user = computed(() => users.state.current)\n\nconst cartTotalPrice = shopcart.getters.cartTotalPrice\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// Organization\nconst orderOrganization = ref({})\nconst spotOrganization = ref({})\nconst isOpen = ref(true)\n\n// Новые переменные для проверки минимальной суммы заказа и времени работы\nconst minOrderAmount = ref(0)\n\nfunction checkIsOpenNow(worktime) {\n try {\n console.log('[checkIsOpenNow] worktime:', worktime);\n\n if (\n !worktime ||\n typeof worktime !== 'object' ||\n Array.isArray(worktime) ||\n !worktime.regular\n ) {\n console.log('[checkIsOpenNow] invalid, returning true');\n return true;\n }\n\n const now = new Date();\n const currentDay = now.getDay();\n const currentTime = `${String(now.getHours()).padStart(2, '0')}:${String(now.getMinutes()).padStart(2, '0')}`;\n const today = new Date(now.getFullYear(), now.getMonth(), now.getDate());\n\n console.log('[checkIsOpenNow] currentDay:', currentDay);\n console.log('[checkIsOpenNow] currentTime:', currentTime);\n\n const specialDay = worktime.special?.find(s => {\n const d = new Date(s.date);\n return (\n d.getFullYear() === today.getFullYear() &&\n d.getMonth() === today.getMonth() &&\n d.getDate() === today.getDate()\n );\n });\n\n if (specialDay) {\n console.log('[checkIsOpenNow] specialDay:', specialDay);\n if (!specialDay.isOpen) return false;\n return specialDay.periods?.some(p => p.open <= currentTime && p.close > currentTime);\n }\n\n const regularDay = worktime.regular.find(d => d.dayOfWeek === currentDay);\n if (!regularDay || !regularDay.isOpen) return false;\n\n return regularDay.periods?.some(p => p.open <= currentTime && p.close > currentTime);\n } catch (err) {\n console.error('[checkIsOpenNow] error:', err);\n return true;\n }\n}\n\n\nif (!globals.state.options.orders.allowUnauthenticatedOrders && !auth.state.user._id) { \n\trouter.push({name: 'Sign In'})\t\n}\n\n\norders.mutations.resetOrder()\n\nonMounted(async()=> {\n\temits('page-loading');\n\n\tisLocationLoading.value = true\n\n\tif (auth.state.user._id) {\n\t\tlet data = await users.actions.read({ _id:auth.state.user._id, user: auth.state.user._id });\n\n\t\torders.state.current.customer.profile.name = users.state.current.profile.name\n\t\torders.state.current.customer.phone = users.state.current.phone\n\t\torders.state.current.customer.phone = users.state.current.phone\n\t}\n\t\n\torderOrganization.value = await organizations.actions.read({\n\t _id: shopcart.state.organization,\n\t location: globals.state.position?.location,\n\t lookup: ['spots']\n\t})\n\t\n\t// Получаем информацию о минимальной сумме заказа и времени работы из spot\n\tif (orderOrganization.value && orderOrganization.value[0]?.spots?.length > 0) {\n\t spotOrganization.value = orderOrganization.value[0].spots[0];\n\t\tisOpen.value = checkIsOpenNow(spotOrganization.value.worktime);\n\t console.log(spotOrganization.value)\n\t minOrderAmount.value = spotOrganization.value.minorder || 0;\n\t}\n\n\n\t\n \tisLocationLoading.value = false\n emits('page-loaded');\n\n if (typeof gtag === 'function') {\n gtag('event', 'begin_checkout', {\n currency: returnCurrency(), // Замените на вашу валюту\n value: cartTotalPrice || 0,\n items: shopcart.state.positions.map(item => ({\n item_id: item.product?._id,\n item_name: item.product?.name,\n price: item.price || 0,\n quantity: item.quantity || 1,\n item_category: item.product?.category || '',\n item_brand: orderOrganization.value.profile?.name || ''\n })),\n organization: orderOrganization.value.profile?.name || '',\n location: globals.state.position?.location || 'unknown'\n });\n }\n})\n\n\nwatch(\n () => orders.state.current.delivery,\n async (newVal) => {\n if (newVal?.location) {\n \tisLocationLoading.value = true\n\n orderOrganization.value = await organizations.actions.read({\n _id: shopcart.state.organization,\n location: newVal.location,\n lookup: ['spots']\n })\n \n isLocationLoading.value = false\n }\n },\n { deep: true }\n)\n\n\n/////////////////////////////\n// Store Verification\n/////////////////////////////\nconst errorName = computed(() => {\n if (orders.state.current.customer.name?.length < 2) { return true } else { return false }\n});\n\nconst errorPhoneOrMessenger = computed(() => {\n const hasMessengerType = orders.state.current.customer.messenger?.type;\n const hasMessengerValue = orders.state.current.customer.messenger?.value?.length >\t 2;\n const hasPhone = orders.state.current.customer.number?.length > 0;\n // Ошибка, если нет ни номера телефона, ни корректного типа и значения мессенджера\n return !hasPhone && !(hasMessengerType && hasMessengerValue);\n});\n\nconst errorAddress = computed(() => {\n const type = orders.state.current.delivery.type;\n if (type === \"pickup\") {\n return !orders.state.current.delivery.spot;\n } else if (type === \"courier\" || type === \"mail\") {\n const address = orders.state.current.delivery.address;\n return !address || typeof address !== 'string' || address.length < 2;\n }\n return false;\n});\n\nconst errorDelivery = computed(() => {\n if (orders.state.current.delivery.type) {return false } else {return true } \n})\n\nconst errorPayment = computed(() => {\n if (orders.state.current.payment.type) { return false } else {return true } \n})\n/////////////////////////////\n// Methods\n/////////////////////////////\nasync function handleCreate() {\n\n\torders.state.current.status = 'created';\n\n\torders.state.current.owner = {\n\t\ttarget: orderOrganization.value[0]._id,\n\t\ttype: 'organization'\n\t}\n\n\tif (auth.state.user._id) {\n\t\torders.state.current.creator = {\n\t\t\ttarget: auth.state.user._id,\n\t\t\ttype: 'user'\n\t\t}\n\t}\n\n\tif (auth.state.user._id) {\n\t\torders.state.current.customer = {\n\t\t\ttarget: auth.state.user._id,\n\t\t\ttype: 'user'\n\t\t}\n\t}\n\n\torders.state.current.positions = shopcart.state.positions\n\n \tconst referralCode = localStorage.getItem('referalCode');\n \n if (referralCode) {\n orders.state.current.referralCode = referralCode;\n }\n\n let order = await orders.actions.create(orders.state.current);\n\n if (order) {\n\t if (typeof gtag === 'function') {\n\t gtag('event', 'purchase', {\n\t transaction_id: order._id,\n\t value: cartTotalPrice || 0,\n\t currency: returnCurrency(), // Замените на вашу валюту\n\t tax: 0, // Если есть данные о налоге\n\t shipping: deliveryCost.value, // Если есть данные о доставке\n\t items: shopcart.state.positions.map(item => ({\n\t item_id: item.product?._id,\n\t item_name: item.product?.name ,\n\t price: item.price || 0,\n\t quantity: item.quantity || 1,\n\t item_category: item.product?.category || ''\n\t })),\n\t organization: orderOrganization.value?.profile?.name,\n\t location: globals.state.position?.location || 'unknown',\n\t referral_code: referralCode || null,\n\t user_id: auth.state.user._id || 'anonymous'\n\t });\n\t }\n\t}\n\n if (order) {\n \tawait router.push({\n \t\tname: 'Order',\n \t\tparams: {\n \t\t\torder: order._id\n \t\t}\n \t})\n \t\t\n \tshopcart.actions.resetShopcart()\n\n } else {\n \talert('something wrong')\n }\n}\n</script>\n\n<style lang=\"scss\">\n\n.round-wrapper {\n\tposition: relative;\n\n\t.round {\n\t\tmargin: 0;\n\t\tmargin-right: 1rem;\n\t}\n\n\tinput:checked {\n\t\tbackground: #00ff88;\n\t}\n\n\t.round-checkmark {\n\t\tposition: absolute;\n\t\twidth: 0.5rem;\n\t\theight: 0.5rem;\n\t\tbackground: white;\n\n\t\tleft: 0.5rem;\n\t\ttop: 0.5rem;\n\n\t\topacity: 1;\n\t}\n}\n</style>"],"names":["ref","useRoute","useRouter","useGlobalMixins","computed","orders.state","users.state","shopcart.getters","globals.state","orders.getters","auth.state","orders.mutations","onMounted","users.actions","organizations.actions","shopcart.state","watch","order","orders.actions","shopcart.actions"],"mappings":"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"}
1
+ {"version":3,"file":"OrderCreate.vue.cjs","sources":["../../../../../../../src/modules/orders/components/pages/OrderCreate.vue"],"sourcesContent":["<template>\n\n<section class=\"bg-white pd-thin\">\n\n\t<!-- Ask to login -->\n\t<AskToLogin class=\"mn-b-thin\" v-if=\"auth.state.access.status === false\" /> \n\n\t<!-- Empty State -->\n\t<EmptyState \n\t\tv-if=\"shopcart.state.positions < 1\" \n\t/>\t\n\t<Succes \n\t\tv-if=\"order.status === true && shopcart.state.positions.length > 0\" \n\t\t:order=\"order\" \n\t/>\n\t<!-- Уведомления о минимальной сумме заказа и времени работы -->\n\t<div v-if=\"shopcart.state.positions.length > 0\" class=\"w-100 gap-thin cols-1 mn-b-thin\">\n\t\t<div v-if=\"!isOpen\" class=\"bg-fifth-nano pd-small radius-medium t-center\">\n\t\t\t<p class=\"t-fourth\">⚠️ This spot is currently closed. You can place an order, but it will be processed when the spot opens.</p>\n\t\t</div>\n\t\t<div v-if=\"cartTotalPrice < minOrderAmount\" class=\"bg-fourth-nano pd-small radius-medium t-center\">\n\t\t\t<p class=\"t-fourth\">⚠️ Minimum order amount is {{ formatPrice(minOrderAmount) }}. Your current total is {{ formatPrice(cartTotalPrice) }}.</p>\n\t\t</div>\n\t</div>\n\t<!-- Order form -->\n\t<div class=\"gap-small mn-b-thin cols-2 mobile:cols-1\">\n\t\t<!-- Order Form -->\n\t\t<div\n\t\t\tv-if=\"orders.state.current.status !== true && shopcart.state.positions.length > 0\" \n\t\t\tclass=\"rows-1 gap-thin\"\n\t\t>\n\t\t\t<FormCustomerDetails\n\t\t\t\tv-model:customer=\"orders.state.current.customer\"\n\t\t\t :showAdminFields=\"false\"\n\t\t\t :showButtons=\"false\"\n\t\t\t/>\n\t\t\t<FormPayment \t\n\t\t\t\tv-if=\"orders.state.current.status !== true && shopcart.state.positions.length > 0\"\n\t\t\t\t:order=\"orders.state.current\" \n\t\t\t\t:organization=\"orderOrganization[0]\" \n\t\t\t/>\n\t\t\t<FormDelivery \t\n\t\t\t\tv-if=\"orders.state.current.status !== true && shopcart.state.positions.length > 0\"\n\t\t\t\t:order=\"orders.state.current\" \n\t\t\t\t:organization=\"orderOrganization[0]\" \n\t\t\t/>\n\t\t\t\n\t\t</div>\n\n\t\t<!-- Order positions -->\n\t\t<div \n\t\t\tv-if=\"shopcart.state.positions.length > 0\" \n\t\t\tclass=\"bg-white br-solid br-light br-1px pd-medium radius-medium\"\n\t\t>\n\t\t\t<h4 class=\"font-second mn-b-thin\">Your Order</h4>\n\n\t\t\t<ul class=\"flex gap-thin flex-wrap mn-b-thin\">\n\t\t\t\t<CardOrderItem \n\t\t\t\t\tv-for=\"(product, index) in shopcart.state.positions\" \n\t\t\t\t\t:key=\"`${product._id}_${product.variant || 'no-variant'}_${index}`\" \n\t\t\t\t\t:editable=\"true\" \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 :increase=\"() => shopcart.actions.incrementItemQuantity(product._id, product.variant)\"\n\t :decrease=\"() => shopcart.actions.decrementItemQuantity(product._id, product.variant)\"\n\t :remove=\"() => shopcart.actions.removeProduct(product._id, product.variant)\"\n\t\t\t\t\t@updateRentDates=\"(productId, variantId, dates) => shopcart.actions.updateRentDates({ productId, variantId, dates })\"\n\t class=\"w-100 bg-white \"\n\t />\n\t\t\t</ul>\n\n\t\t\t\t<div \n\t\t\t\tclass=\"mn-b-thin\"\n\t\t\t>\t\n\t\t\t\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 :showDeliveryFee=\"globals.state.options?.orders.showDeliveryFee\"\n />\n\t\t\t</div>\n\t\t\t<!-- Send order -->\n\t\t <Button\n v-if=\"orders.state.current.status !== true && shopcart.state.positions.length > 0\"\n :submit=\"() => handleCreate()\"\n class=\"bg-main mn-b-small pd-small radius-big w-100 button\"\n :disabled=\"\n\t\t errorName \n\t\t || errorPhoneOrMessenger \n\t\t || errorCity \n\t\t || errorAddress \n\t\t || errorDelivery \n\t\t || errorPayment\n\t\t || isLocationLoading\n\t\t || cartTotalPrice < minOrderAmount\n\t\t \"\n >\n <span>Place an Order</span>\n </Button>\n\n\t\t <p class='mn-b-thin'>\n\t\t\t\tI agree that placing the order places me under an obligation to make a payment in accordance with <a class=\"t-semi font-second t-second\" href=\"/legal/terms-of-use\" target=\"_blank\">Terms of Use.</a>\n\t\t\t</p>\n\t\t\t<p >\n\t\t\t\t\n\t\t\t</p>\n\t\t</div>\n\n\t</div>\n\n\t\n\t\n</section>\n\n</template>\n\n\n<script setup>\n///////////////////////////////////////////////////////////////////////////////////////////////////\n// Import components\n///////////////////////////////////////////////////////////////////////////////////////////////////\nimport Button from '@martyrs/src/components/Button/Button.vue'\n// Block\nimport CardOrderItem from '@martyrs/src/modules/orders/components/blocks/CardOrderItem.vue'\n// Sections\nimport AskToLogin from '@martyrs/src/modules/orders/components/sections/AskToLogin.vue'\nimport Succes from '@martyrs/src/modules/orders/components/sections/Succes.vue'\nimport EmptyState from '@martyrs/src/modules/orders/components/sections/EmptyState.vue'\n\nimport PriceTotal from '@martyrs/src/modules/orders/components/elements/PriceTotal.vue';\n\nimport FormCustomerDetails from '@martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue'\nimport FormDelivery from '@martyrs/src/modules/orders/components/sections/FormDelivery.vue'\nimport FormPayment from '@martyrs/src/modules/orders/components/sections/FormPayment.vue'\n///////////////////////////////////////////////////////////////////////////////////////////////////\n// Import libs\n///////////////////////////////////////////////////////////////////////////////////////////////////\nimport { ref, computed, onMounted, watch } from 'vue'\nimport { useRoute,useRouter } from 'vue-router'\nimport { useGlobalMixins } from \"@martyrs/src/modules/globals/views/mixins/mixins.js\"\n\n// Store\nimport * as globals from '@martyrs/src/modules/globals/views/store/globals.js';\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\nimport * as shopcart from '@martyrs/src/modules/orders/store/shopcart.js';\nimport * as organizations from '@martyrs/src/modules/organizations/store/organizations.js';\nimport * as orders from '@martyrs/src/modules/orders/store/orders.js';\nimport * as users from '@martyrs/src/modules/auth/views/store/users.js';\n\nconst emits = defineEmits(['page-loading', 'page-loaded']);\n\n///////////////////////////////////////////////////////////////////////////////////////////////////\n// Variables and computed\n//////////////////////////////////////////////////////////////////////////////////////////////////\nconst isLocationLoading = ref(false)\n// Accessing router and store\nconst route = useRoute()\nconst router = useRouter()\nconst { returnCurrency, formatPrice } = useGlobalMixins()\n// COMPUTED\nconst order = computed(() => orders.state.current)\nconst user = computed(() => users.state.current)\n\nconst cartTotalPrice = shopcart.getters.cartTotalPrice\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// Organization\nconst orderOrganization = ref({})\nconst spotOrganization = ref({})\nconst isOpen = ref(true)\n\n// Новые переменные для проверки минимальной суммы заказа и времени работы\nconst minOrderAmount = ref(0)\n\nfunction checkIsOpenNow(worktime) {\n try {\n console.log('[checkIsOpenNow] worktime:', worktime);\n\n if (\n !worktime ||\n typeof worktime !== 'object' ||\n Array.isArray(worktime) ||\n !worktime.regular\n ) {\n console.log('[checkIsOpenNow] invalid, returning true');\n return true;\n }\n\n const now = new Date();\n const currentDay = now.getDay();\n const currentTime = `${String(now.getHours()).padStart(2, '0')}:${String(now.getMinutes()).padStart(2, '0')}`;\n const today = new Date(now.getFullYear(), now.getMonth(), now.getDate());\n\n console.log('[checkIsOpenNow] currentDay:', currentDay);\n console.log('[checkIsOpenNow] currentTime:', currentTime);\n\n const specialDay = worktime.special?.find(s => {\n const d = new Date(s.date);\n return (\n d.getFullYear() === today.getFullYear() &&\n d.getMonth() === today.getMonth() &&\n d.getDate() === today.getDate()\n );\n });\n\n if (specialDay) {\n console.log('[checkIsOpenNow] specialDay:', specialDay);\n if (!specialDay.isOpen) return false;\n return specialDay.periods?.some(p => p.open <= currentTime && p.close > currentTime);\n }\n\n const regularDay = worktime.regular.find(d => d.dayOfWeek === currentDay);\n if (!regularDay || !regularDay.isOpen) return false;\n\n return regularDay.periods?.some(p => p.open <= currentTime && p.close > currentTime);\n } catch (err) {\n console.error('[checkIsOpenNow] error:', err);\n return true;\n }\n}\n\n\nif (!globals.state.options.orders.allowUnauthenticatedOrders && !auth.state.user._id) { \n\trouter.push({name: 'Sign In'})\t\n}\n\n\norders.mutations.resetOrder()\n\nonMounted(async()=> {\n\temits('page-loading');\n\n\tisLocationLoading.value = true\n\n\tif (auth.state.user._id) {\n\t\tlet data = await users.actions.read({ _id:auth.state.user._id, user: auth.state.user._id });\n\n\t\torders.state.current.customer.profile.name = users.state.current.profile.name\n\t\torders.state.current.customer.phone = users.state.current.phone\n\t\torders.state.current.customer.phone = users.state.current.phone\n\t}\n\t\n\torderOrganization.value = await organizations.actions.read({\n\t _id: shopcart.state.organization,\n\t location: globals.state.position?.location,\n\t lookup: ['spots']\n\t})\n\t\n\t// Получаем информацию о минимальной сумме заказа и времени работы из spot\n\tif (orderOrganization.value && orderOrganization.value[0]?.spots?.length > 0) {\n\t spotOrganization.value = orderOrganization.value[0].spots[0];\n\t\tisOpen.value = checkIsOpenNow(spotOrganization.value.worktime);\n\t console.log(spotOrganization.value)\n\t minOrderAmount.value = spotOrganization.value.minorder || 0;\n\t}\n\n\n\t\n \tisLocationLoading.value = false\n emits('page-loaded');\n\n if (typeof gtag === 'function') {\n gtag('event', 'begin_checkout', {\n currency: returnCurrency(), // Замените на вашу валюту\n value: cartTotalPrice || 0,\n items: shopcart.state.positions.map(item => ({\n item_id: item.product?._id,\n item_name: item.product?.name,\n price: item.price || 0,\n quantity: item.quantity || 1,\n item_category: item.product?.category || '',\n item_brand: orderOrganization.value.profile?.name || ''\n })),\n organization: orderOrganization.value.profile?.name || '',\n location: globals.state.position?.location || 'unknown'\n });\n }\n})\n\n\nwatch(\n () => orders.state.current.delivery,\n async (newVal) => {\n if (newVal?.location) {\n \tisLocationLoading.value = true\n\n orderOrganization.value = await organizations.actions.read({\n _id: shopcart.state.organization,\n location: newVal.location,\n lookup: ['spots']\n })\n \n isLocationLoading.value = false\n }\n },\n { deep: true }\n)\n\n\n/////////////////////////////\n// Store Verification\n/////////////////////////////\nconst errorName = computed(() => {\n if (orders.state.current.customer.name?.length < 2) { return true } else { return false }\n});\n\nconst errorPhoneOrMessenger = computed(() => {\n const hasMessengerType = orders.state.current.customer.messenger?.type;\n const hasMessengerValue = orders.state.current.customer.messenger?.value?.length >\t 2;\n const hasPhone = orders.state.current.customer.number?.length > 0;\n // Ошибка, если нет ни номера телефона, ни корректного типа и значения мессенджера\n return !hasPhone && !(hasMessengerType && hasMessengerValue);\n});\n\nconst errorAddress = computed(() => {\n const type = orders.state.current.delivery.type;\n if (type === \"pickup\") {\n return !orders.state.current.delivery.spot;\n } else if (type === \"courier\" || type === \"mail\") {\n const address = orders.state.current.delivery.address;\n return !address || typeof address !== 'string' || address.length < 2;\n }\n return false;\n});\n\nconst errorDelivery = computed(() => {\n if (orders.state.current.delivery.type) {return false } else {return true } \n})\n\nconst errorPayment = computed(() => {\n if (orders.state.current.payment.type) { return false } else {return true } \n})\n/////////////////////////////\n// Methods\n/////////////////////////////\nasync function handleCreate() {\n\n\torders.state.current.status = 'created';\n\n\torders.state.current.owner = {\n\t\ttarget: orderOrganization.value[0]._id,\n\t\ttype: 'organization'\n\t}\n\n\tif (auth.state.user._id) {\n\t\torders.state.current.creator = {\n\t\t\ttarget: auth.state.user._id,\n\t\t\ttype: 'user'\n\t\t}\n\t}\n\n\tif (auth.state.user._id) {\n\t\torders.state.current.customer = {\n\t\t\ttarget: auth.state.user._id,\n\t\t\ttype: 'user'\n\t\t}\n\t}\n\n\torders.state.current.positions = shopcart.state.positions\n\n \tconst referralCode = localStorage.getItem('referalCode');\n \n if (referralCode) {\n orders.state.current.referralCode = referralCode;\n }\n\n let order = await orders.actions.create(orders.state.current);\n\n if (order) {\n\t if (typeof gtag === 'function') {\n\t gtag('event', 'purchase', {\n\t transaction_id: order._id,\n\t value: cartTotalPrice || 0,\n\t currency: returnCurrency(), // Замените на вашу валюту\n\t tax: 0, // Если есть данные о налоге\n\t shipping: deliveryCost.value, // Если есть данные о доставке\n\t items: shopcart.state.positions.map(item => ({\n\t item_id: item.product?._id,\n\t item_name: item.product?.name ,\n\t price: item.price || 0,\n\t quantity: item.quantity || 1,\n\t item_category: item.product?.category || ''\n\t })),\n\t organization: orderOrganization.value?.profile?.name,\n\t location: globals.state.position?.location || 'unknown',\n\t referral_code: referralCode || null,\n\t user_id: auth.state.user._id || 'anonymous'\n\t });\n\t }\n\t}\n\n if (order) {\n \tawait router.push({\n \t\tname: 'Order',\n \t\tparams: {\n \t\t\torder: order._id\n \t\t}\n \t})\n \t\t\n \tshopcart.actions.resetShopcart()\n\n } else {\n \talert('something wrong')\n }\n}\n</script>\n\n<style lang=\"scss\">\n\n.round-wrapper {\n\tposition: relative;\n\n\t.round {\n\t\tmargin: 0;\n\t\tmargin-right: 1rem;\n\t}\n\n\tinput:checked {\n\t\tbackground: #00ff88;\n\t}\n\n\t.round-checkmark {\n\t\tposition: absolute;\n\t\twidth: 0.5rem;\n\t\theight: 0.5rem;\n\t\tbackground: white;\n\n\t\tleft: 0.5rem;\n\t\ttop: 0.5rem;\n\n\t\topacity: 1;\n\t}\n}\n</style>"],"names":["ref","useRoute","useRouter","useGlobalMixins","computed","orders.state","users.state","shopcart.getters","globals.state","orders.getters","auth.state","orders.mutations","onMounted","users.actions","organizations.actions","shopcart.state","watch","order","orders.actions","shopcart.actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgKA,UAAM,QAAQ;AAKd,UAAM,oBAAoBA,IAAAA,IAAI,KAAK;AAErBC,cAAAA,SAAQ;AACtB,UAAM,SAASC,UAAAA,UAAS;AACxB,UAAM,EAAE,gBAAgB,YAAW,IAAKC,OAAAA,gBAAe;AAEvD,UAAM,QAAQC,IAAAA,SAAS,MAAMC,OAAAA,MAAa,OAAO;AACpCD,QAAAA,SAAS,MAAME,MAAAA,MAAY,OAAO;AAE/C,UAAM,iBAAiBC,SAAAA,QAAiB;AAExC,UAAM,eAAeH,IAAAA,SAAS,MAAM;AAClC,YAAM,OAAOC,OAAAA,MAAa,QAAQ,SAAS;AAC3C,YAAM,WAAW,kBAAkB,MAAM,CAAC,GAAG,YAAY;AACzD,YAAM,SAASG,QAAAA,MAAc,SAAS,QAAQ,oBAAoB,CAAA;AAElE,aAAOC,eAAe,iBAAiB,MAAM,UAAU,MAAM;AAAA,IAC/D,CAAC;AAGD,UAAM,oBAAoBT,IAAAA,IAAI,CAAA,CAAE;AAChC,UAAM,mBAAmBA,IAAAA,IAAI,CAAA,CAAE;AAC/B,UAAM,SAASA,IAAAA,IAAI,IAAI;AAGvB,UAAM,iBAAiBA,IAAAA,IAAI,CAAC;AAE5B,aAAS,eAAe,UAAU;AAChC,UAAI;AACF,gBAAQ,IAAI,8BAA8B,QAAQ;AAElD,YACE,CAAC,YACD,OAAO,aAAa,YACpB,MAAM,QAAQ,QAAQ,KACtB,CAAC,SAAS,SACV;AACA,kBAAQ,IAAI,0CAA0C;AACtD,iBAAO;AAAA,QACT;AAEA,cAAM,MAAM,oBAAI,KAAI;AACpB,cAAM,aAAa,IAAI,OAAM;AAC7B,cAAM,cAAc,GAAG,OAAO,IAAI,UAAU,EAAE,SAAS,GAAG,GAAG,CAAC,IAAI,OAAO,IAAI,WAAU,CAAE,EAAE,SAAS,GAAG,GAAG,CAAC;AAC3G,cAAM,QAAQ,IAAI,KAAK,IAAI,YAAW,GAAI,IAAI,SAAQ,GAAI,IAAI,SAAS;AAEvE,gBAAQ,IAAI,gCAAgC,UAAU;AACtD,gBAAQ,IAAI,iCAAiC,WAAW;AAExD,cAAM,aAAa,SAAS,SAAS,KAAK,OAAK;AAC7C,gBAAM,IAAI,IAAI,KAAK,EAAE,IAAI;AACzB,iBACE,EAAE,YAAW,MAAO,MAAM,YAAW,KACrC,EAAE,SAAQ,MAAO,MAAM,SAAQ,KAC/B,EAAE,cAAc,MAAM,QAAO;AAAA,QAEjC,CAAC;AAED,YAAI,YAAY;AACd,kBAAQ,IAAI,gCAAgC,UAAU;AACtD,cAAI,CAAC,WAAW,OAAQ,QAAO;AAC/B,iBAAO,WAAW,SAAS,KAAK,OAAK,EAAE,QAAQ,eAAe,EAAE,QAAQ,WAAW;AAAA,QACrF;AAEA,cAAM,aAAa,SAAS,QAAQ,KAAK,OAAK,EAAE,cAAc,UAAU;AACxE,YAAI,CAAC,cAAc,CAAC,WAAW,OAAQ,QAAO;AAE9C,eAAO,WAAW,SAAS,KAAK,OAAK,EAAE,QAAQ,eAAe,EAAE,QAAQ,WAAW;AAAA,MACrF,SAAS,KAAK;AACZ,gBAAQ,MAAM,2BAA2B,GAAG;AAC5C,eAAO;AAAA,MACT;AAAA,IACF;AAGA,QAAI,CAACQ,QAAAA,MAAc,QAAQ,OAAO,8BAA8B,CAACE,KAAAA,MAAW,KAAK,KAAK;AACrF,aAAO,KAAK,EAAC,MAAM,UAAS,CAAC;AAAA,IAC9B;AAGAC,WAAAA,UAAiB,WAAU;AAE3BC,QAAAA,UAAU,YAAU;AACnB,YAAM,cAAc;AAEpB,wBAAkB,QAAQ;AAE1B,UAAIF,KAAAA,MAAW,KAAK,KAAK;AACb,cAAMG,cAAc,KAAK,EAAE,KAAIH,KAAAA,MAAW,KAAK,KAAK,MAAMA,WAAW,KAAK,IAAG,CAAE;AAE1FL,eAAAA,MAAa,QAAQ,SAAS,QAAQ,OAAOC,MAAAA,MAAY,QAAQ,QAAQ;AACzED,eAAAA,MAAa,QAAQ,SAAS,QAAQC,MAAAA,MAAY,QAAQ;AAC1DD,eAAAA,MAAa,QAAQ,SAAS,QAAQC,MAAAA,MAAY,QAAQ;AAAA,MAC3D;AAEA,wBAAkB,QAAQ,MAAMQ,cAAAA,QAAsB,KAAK;AAAA,QACzD,KAAKC,SAAAA,MAAe;AAAA,QACpB,UAAUP,QAAAA,MAAc,UAAU;AAAA,QAClC,QAAQ,CAAC,OAAO;AAAA,MACnB,CAAE;AAGD,UAAI,kBAAkB,SAAS,kBAAkB,MAAM,CAAC,GAAG,OAAO,SAAS,GAAG;AAC5E,yBAAiB,QAAQ,kBAAkB,MAAM,CAAC,EAAE,MAAM,CAAC;AAC5D,eAAO,QAAQ,eAAe,iBAAiB,MAAM,QAAQ;AAC5D,gBAAQ,IAAI,iBAAiB,KAAK;AAClC,uBAAe,QAAQ,iBAAiB,MAAM,YAAY;AAAA,MAC5D;AAIC,wBAAkB,QAAQ;AAC1B,YAAM,aAAa;AAEnB,UAAI,OAAO,SAAS,YAAY;AAC9B,aAAK,SAAS,kBAAkB;AAAA,UAC9B,UAAU,eAAc;AAAA;AAAA,UACxB,OAAO,kBAAkB;AAAA,UACzB,OAAOO,SAAAA,MAAe,UAAU,IAAI,WAAS;AAAA,YAC3C,SAAS,KAAK,SAAS;AAAA,YACvB,WAAW,KAAK,SAAS;AAAA,YACzB,OAAO,KAAK,SAAS;AAAA,YACrB,UAAU,KAAK,YAAY;AAAA,YAC3B,eAAe,KAAK,SAAS,YAAY;AAAA,YACzC,YAAY,kBAAkB,MAAM,SAAS,QAAQ;AAAA,UAC7D,EAAQ;AAAA,UACF,cAAc,kBAAkB,MAAM,SAAS,QAAQ;AAAA,UACvD,UAAUP,QAAAA,MAAc,UAAU,YAAY;AAAA,QACpD,CAAK;AAAA,MACH;AAAA,IACF,CAAC;AAGDQ,QAAAA;AAAAA,MACE,MAAMX,OAAAA,MAAa,QAAQ;AAAA,MAC3B,OAAO,WAAW;AAChB,YAAI,QAAQ,UAAU;AACrB,4BAAkB,QAAQ;AAEzB,4BAAkB,QAAQ,MAAMS,cAAAA,QAAsB,KAAK;AAAA,YACzD,KAAKC,SAAAA,MAAe;AAAA,YACpB,UAAU,OAAO;AAAA,YACjB,QAAQ,CAAC,OAAO;AAAA,UACxB,CAAO;AAED,4BAAkB,QAAQ;AAAA,QAC5B;AAAA,MACF;AAAA,MACA,EAAE,MAAM,KAAI;AAAA,IACd;AAMA,UAAM,YAAYX,IAAAA,SAAS,MAAM;AAC/B,UAAIC,aAAa,QAAQ,SAAS,MAAM,SAAS,GAAG;AAAE,eAAO;AAAA,MAAK,OAAO;AAAE,eAAO;AAAA,MAAM;AAAA,IAC1F,CAAC;AAED,UAAM,wBAAwBD,IAAAA,SAAS,MAAM;AAC3C,YAAM,mBAAmBC,OAAAA,MAAa,QAAQ,SAAS,WAAW;AAClE,YAAM,oBAAoBA,OAAAA,MAAa,QAAQ,SAAS,WAAW,OAAO,SAAU;AACpF,YAAM,WAAWA,OAAAA,MAAa,QAAQ,SAAS,QAAQ,SAAS;AAEhE,aAAO,CAAC,YAAY,EAAE,oBAAoB;AAAA,IAC5C,CAAC;AAED,UAAM,eAAeD,IAAAA,SAAS,MAAM;AAClC,YAAM,OAAOC,OAAAA,MAAa,QAAQ,SAAS;AAC3C,UAAI,SAAS,UAAU;AACrB,eAAO,CAACA,OAAAA,MAAa,QAAQ,SAAS;AAAA,MACxC,WAAW,SAAS,aAAa,SAAS,QAAQ;AAChD,cAAM,UAAUA,OAAAA,MAAa,QAAQ,SAAS;AAC9C,eAAO,CAAC,WAAW,OAAO,YAAY,YAAY,QAAQ,SAAS;AAAA,MACrE;AACA,aAAO;AAAA,IACT,CAAC;AAED,UAAM,gBAAgBD,IAAAA,SAAS,MAAM;AACnC,UAAIC,OAAAA,MAAa,QAAQ,SAAS,MAAM;AAAC,eAAO;AAAA,MAAM,OAAO;AAAC,eAAO;AAAA,MAAK;AAAA,IAC5E,CAAC;AAED,UAAM,eAAeD,IAAAA,SAAS,MAAM;AAClC,UAAIC,OAAAA,MAAa,QAAQ,QAAQ,MAAM;AAAE,eAAO;AAAA,MAAM,OAAO;AAAC,eAAO;AAAA,MAAK;AAAA,IAC5E,CAAC;AAID,mBAAe,eAAe;AAE7BA,mBAAa,QAAQ,SAAS;AAE9BA,aAAAA,MAAa,QAAQ,QAAQ;AAAA,QAC5B,QAAQ,kBAAkB,MAAM,CAAC,EAAE;AAAA,QACnC,MAAM;AAAA,MACR;AAEC,UAAIK,KAAAA,MAAW,KAAK,KAAK;AACxBL,eAAAA,MAAa,QAAQ,UAAU;AAAA,UAC9B,QAAQK,KAAAA,MAAW,KAAK;AAAA,UACxB,MAAM;AAAA,QACT;AAAA,MACC;AAEA,UAAIA,KAAAA,MAAW,KAAK,KAAK;AACxBL,eAAAA,MAAa,QAAQ,WAAW;AAAA,UAC/B,QAAQK,KAAAA,MAAW,KAAK;AAAA,UACxB,MAAM;AAAA,QACT;AAAA,MACC;AAEAL,mBAAa,QAAQ,YAAYU,eAAe;AAE/C,YAAM,eAAe,aAAa,QAAQ,aAAa;AAEvD,UAAI,cAAc;AAChBV,qBAAa,QAAQ,eAAe;AAAA,MACtC;AAEA,UAAIY,SAAQ,MAAMC,OAAAA,QAAe,OAAOb,OAAAA,MAAa,OAAO;AAE3D,UAAIY,QAAO;AACX,YAAI,OAAO,SAAS,YAAY;AAC9B,eAAK,SAAS,YAAY;AAAA,YACxB,gBAAgBA,OAAM;AAAA,YACtB,OAAO,kBAAkB;AAAA,YACzB,UAAU,eAAc;AAAA;AAAA,YACxB,KAAK;AAAA;AAAA,YACL,UAAU,aAAa;AAAA;AAAA,YACvB,OAAOF,SAAAA,MAAe,UAAU,IAAI,WAAS;AAAA,cAC3C,SAAS,KAAK,SAAS;AAAA,cACvB,WAAW,KAAK,SAAS;AAAA,cACzB,OAAO,KAAK,SAAS;AAAA,cACrB,UAAU,KAAK,YAAY;AAAA,cAC3B,eAAe,KAAK,SAAS,YAAY;AAAA,YAClD,EAAS;AAAA,YACF,cAAc,kBAAkB,OAAO,SAAS;AAAA,YAChD,UAAUP,QAAAA,MAAc,UAAU,YAAY;AAAA,YAC9C,eAAe,gBAAgB;AAAA,YAC/B,SAASE,KAAAA,MAAW,KAAK,OAAO;AAAA,UACvC,CAAM;AAAA,QACH;AAAA,MACF;AAEC,UAAIO,QAAO;AACV,cAAM,OAAO,KAAK;AAAA,UACjB,MAAM;AAAA,UACN,QAAQ;AAAA,YACP,OAAOA,OAAM;AAAA,UAClB;AAAA,QACA,CAAI;AAEDE,iBAAAA,QAAiB,cAAa;AAAA,MAE/B,OAAO;AACN,cAAM,iBAAiB;AAAA,MACxB;AAAA,IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { ref, computed, onMounted, watch, createElementBlock, openBlock, createBlock, createCommentVNode, createElementVNode, unref, toDisplayString, createVNode, Fragment, renderList, withCtx, createTextVNode } from "vue";
2
- import _sfc_main$9 from "../../../../components/Button/Button.vue.js";
2
+ import _sfc_main$9 from "../../../../components/Button/Button.vue2.js";
3
3
  import _sfc_main$7 from "../blocks/CardOrderItem.vue.js";
4
4
  import _sfc_main$1 from "../sections/AskToLogin.vue.js";
5
5
  import _sfc_main$3 from "../sections/Succes.vue.js";
@@ -31,7 +31,7 @@ const _hoisted_4 = {
31
31
  class: "bg-fourth-nano pd-small radius-medium t-center"
32
32
  };
33
33
  const _hoisted_5 = { class: "t-fourth" };
34
- const _hoisted_6 = { class: "gap-small mn-b-thin cols-2" };
34
+ const _hoisted_6 = { class: "gap-small mn-b-thin cols-2 mobile:cols-1" };
35
35
  const _hoisted_7 = {
36
36
  key: 0,
37
37
  class: "rows-1 gap-thin"
@@ -274,7 +274,9 @@ const _sfc_main = {
274
274
  state.current.status !== true && state$4.positions.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_7, [
275
275
  createVNode(_sfc_main$4, {
276
276
  customer: state.current.customer,
277
- "onUpdate:customer": _cache[0] || (_cache[0] = ($event) => state.current.customer = $event)
277
+ "onUpdate:customer": _cache[0] || (_cache[0] = ($event) => state.current.customer = $event),
278
+ showAdminFields: false,
279
+ showButtons: false
278
280
  }, null, 8, ["customer"]),
279
281
  state.current.status !== true && state$4.positions.length > 0 ? (openBlock(), createBlock(_sfc_main$5, {
280
282
  key: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"OrderCreate.vue.js","sources":["../../../../../../../src/modules/orders/components/pages/OrderCreate.vue"],"sourcesContent":["<template>\n\n<section class=\"bg-white pd-thin\">\n\n\t<!-- Ask to login -->\n\t<AskToLogin class=\"mn-b-thin\" v-if=\"auth.state.access.status === false\" /> \n\n\t<!-- Empty State -->\n\t<EmptyState \n\t\tv-if=\"shopcart.state.positions < 1\" \n\t/>\t\n\t<Succes \n\t\tv-if=\"order.status === true && shopcart.state.positions.length > 0\" \n\t\t:order=\"order\" \n\t/>\n\t<!-- Уведомления о минимальной сумме заказа и времени работы -->\n\t<div v-if=\"shopcart.state.positions.length > 0\" class=\"w-100 gap-thin cols-1 mn-b-thin\">\n\t\t<div v-if=\"!isOpen\" class=\"bg-fifth-nano pd-small radius-medium t-center\">\n\t\t\t<p class=\"t-fourth\">⚠️ This spot is currently closed. You can place an order, but it will be processed when the spot opens.</p>\n\t\t</div>\n\t\t<div v-if=\"cartTotalPrice < minOrderAmount\" class=\"bg-fourth-nano pd-small radius-medium t-center\">\n\t\t\t<p class=\"t-fourth\">⚠️ Minimum order amount is {{ formatPrice(minOrderAmount) }}. Your current total is {{ formatPrice(cartTotalPrice) }}.</p>\n\t\t</div>\n\t</div>\n\t<!-- Order form -->\n\t<div class=\"gap-small mn-b-thin cols-2\">\n\t\t<!-- Order Form -->\n\t\t<div\n\t\t\tv-if=\"orders.state.current.status !== true && shopcart.state.positions.length > 0\" \n\t\t\tclass=\"rows-1 gap-thin\"\n\t\t>\n\t\t\t<FormCustomerDetails\n\t\t\t\tv-model:customer=\"orders.state.current.customer\"\n\t\t\t/>\n\t\t\t<FormPayment \t\n\t\t\t\tv-if=\"orders.state.current.status !== true && shopcart.state.positions.length > 0\"\n\t\t\t\t:order=\"orders.state.current\" \n\t\t\t\t:organization=\"orderOrganization[0]\" \n\t\t\t/>\n\t\t\t<FormDelivery \t\n\t\t\t\tv-if=\"orders.state.current.status !== true && shopcart.state.positions.length > 0\"\n\t\t\t\t:order=\"orders.state.current\" \n\t\t\t\t:organization=\"orderOrganization[0]\" \n\t\t\t/>\n\t\t\t\n\t\t</div>\n\n\t\t<!-- Order positions -->\n\t\t<div \n\t\t\tv-if=\"shopcart.state.positions.length > 0\" \n\t\t\tclass=\"bg-white br-solid br-light br-1px pd-medium radius-medium\"\n\t\t>\n\t\t\t<h4 class=\"font-second mn-b-thin\">Your Order</h4>\n\n\t\t\t<ul class=\"flex gap-thin flex-wrap mn-b-thin\">\n\t\t\t\t<CardOrderItem \n\t\t\t\t\tv-for=\"(product, index) in shopcart.state.positions\" \n\t\t\t\t\t:key=\"`${product._id}_${product.variant || 'no-variant'}_${index}`\" \n\t\t\t\t\t:editable=\"true\" \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 :increase=\"() => shopcart.actions.incrementItemQuantity(product._id, product.variant)\"\n\t :decrease=\"() => shopcart.actions.decrementItemQuantity(product._id, product.variant)\"\n\t :remove=\"() => shopcart.actions.removeProduct(product._id, product.variant)\"\n\t\t\t\t\t@updateRentDates=\"(productId, variantId, dates) => shopcart.actions.updateRentDates({ productId, variantId, dates })\"\n\t class=\"w-100 bg-white \"\n\t />\n\t\t\t</ul>\n\n\t\t\t\t<div \n\t\t\t\tclass=\"mn-b-thin\"\n\t\t\t>\t\n\t\t\t\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 :showDeliveryFee=\"globals.state.options?.orders.showDeliveryFee\"\n />\n\t\t\t</div>\n\t\t\t<!-- Send order -->\n\t\t <Button\n v-if=\"orders.state.current.status !== true && shopcart.state.positions.length > 0\"\n :submit=\"() => handleCreate()\"\n class=\"bg-main mn-b-small pd-small radius-big w-100 button\"\n :disabled=\"\n\t\t errorName \n\t\t || errorPhoneOrMessenger \n\t\t || errorCity \n\t\t || errorAddress \n\t\t || errorDelivery \n\t\t || errorPayment\n\t\t || isLocationLoading\n\t\t || cartTotalPrice < minOrderAmount\n\t\t \"\n >\n <span>Place an Order</span>\n </Button>\n\n\t\t <p class='mn-b-thin'>\n\t\t\t\tI agree that placing the order places me under an obligation to make a payment in accordance with <a class=\"t-semi font-second t-second\" href=\"/legal/terms-of-use\" target=\"_blank\">Terms of Use.</a>\n\t\t\t</p>\n\t\t\t<p >\n\t\t\t\t\n\t\t\t</p>\n\t\t</div>\n\n\t</div>\n\n\t\n\t\n</section>\n\n</template>\n\n\n<script setup>\n///////////////////////////////////////////////////////////////////////////////////////////////////\n// Import components\n///////////////////////////////////////////////////////////////////////////////////////////////////\nimport Button from '@martyrs/src/components/Button/Button.vue'\n// Block\nimport CardOrderItem from '@martyrs/src/modules/orders/components/blocks/CardOrderItem.vue'\n// Sections\nimport AskToLogin from '@martyrs/src/modules/orders/components/sections/AskToLogin.vue'\nimport Succes from '@martyrs/src/modules/orders/components/sections/Succes.vue'\nimport EmptyState from '@martyrs/src/modules/orders/components/sections/EmptyState.vue'\n\nimport PriceTotal from '@martyrs/src/modules/orders/components/elements/PriceTotal.vue';\n\nimport FormCustomerDetails from '@martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue'\nimport FormDelivery from '@martyrs/src/modules/orders/components/sections/FormDelivery.vue'\nimport FormPayment from '@martyrs/src/modules/orders/components/sections/FormPayment.vue'\n///////////////////////////////////////////////////////////////////////////////////////////////////\n// Import libs\n///////////////////////////////////////////////////////////////////////////////////////////////////\nimport { ref, computed, onMounted, watch } from 'vue'\nimport { useRoute,useRouter } from 'vue-router'\nimport { useGlobalMixins } from \"@martyrs/src/modules/globals/views/mixins/mixins.js\"\n\n// Store\nimport * as globals from '@martyrs/src/modules/globals/views/store/globals.js';\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\nimport * as shopcart from '@martyrs/src/modules/orders/store/shopcart.js';\nimport * as organizations from '@martyrs/src/modules/organizations/store/organizations.js';\nimport * as orders from '@martyrs/src/modules/orders/store/orders.js';\nimport * as users from '@martyrs/src/modules/auth/views/store/users.js';\n\nconst emits = defineEmits(['page-loading', 'page-loaded']);\n\n///////////////////////////////////////////////////////////////////////////////////////////////////\n// Variables and computed\n//////////////////////////////////////////////////////////////////////////////////////////////////\nconst isLocationLoading = ref(false)\n// Accessing router and store\nconst route = useRoute()\nconst router = useRouter()\nconst { returnCurrency, formatPrice } = useGlobalMixins()\n// COMPUTED\nconst order = computed(() => orders.state.current)\nconst user = computed(() => users.state.current)\n\nconst cartTotalPrice = shopcart.getters.cartTotalPrice\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// Organization\nconst orderOrganization = ref({})\nconst spotOrganization = ref({})\nconst isOpen = ref(true)\n\n// Новые переменные для проверки минимальной суммы заказа и времени работы\nconst minOrderAmount = ref(0)\n\nfunction checkIsOpenNow(worktime) {\n try {\n console.log('[checkIsOpenNow] worktime:', worktime);\n\n if (\n !worktime ||\n typeof worktime !== 'object' ||\n Array.isArray(worktime) ||\n !worktime.regular\n ) {\n console.log('[checkIsOpenNow] invalid, returning true');\n return true;\n }\n\n const now = new Date();\n const currentDay = now.getDay();\n const currentTime = `${String(now.getHours()).padStart(2, '0')}:${String(now.getMinutes()).padStart(2, '0')}`;\n const today = new Date(now.getFullYear(), now.getMonth(), now.getDate());\n\n console.log('[checkIsOpenNow] currentDay:', currentDay);\n console.log('[checkIsOpenNow] currentTime:', currentTime);\n\n const specialDay = worktime.special?.find(s => {\n const d = new Date(s.date);\n return (\n d.getFullYear() === today.getFullYear() &&\n d.getMonth() === today.getMonth() &&\n d.getDate() === today.getDate()\n );\n });\n\n if (specialDay) {\n console.log('[checkIsOpenNow] specialDay:', specialDay);\n if (!specialDay.isOpen) return false;\n return specialDay.periods?.some(p => p.open <= currentTime && p.close > currentTime);\n }\n\n const regularDay = worktime.regular.find(d => d.dayOfWeek === currentDay);\n if (!regularDay || !regularDay.isOpen) return false;\n\n return regularDay.periods?.some(p => p.open <= currentTime && p.close > currentTime);\n } catch (err) {\n console.error('[checkIsOpenNow] error:', err);\n return true;\n }\n}\n\n\nif (!globals.state.options.orders.allowUnauthenticatedOrders && !auth.state.user._id) { \n\trouter.push({name: 'Sign In'})\t\n}\n\n\norders.mutations.resetOrder()\n\nonMounted(async()=> {\n\temits('page-loading');\n\n\tisLocationLoading.value = true\n\n\tif (auth.state.user._id) {\n\t\tlet data = await users.actions.read({ _id:auth.state.user._id, user: auth.state.user._id });\n\n\t\torders.state.current.customer.profile.name = users.state.current.profile.name\n\t\torders.state.current.customer.phone = users.state.current.phone\n\t\torders.state.current.customer.phone = users.state.current.phone\n\t}\n\t\n\torderOrganization.value = await organizations.actions.read({\n\t _id: shopcart.state.organization,\n\t location: globals.state.position?.location,\n\t lookup: ['spots']\n\t})\n\t\n\t// Получаем информацию о минимальной сумме заказа и времени работы из spot\n\tif (orderOrganization.value && orderOrganization.value[0]?.spots?.length > 0) {\n\t spotOrganization.value = orderOrganization.value[0].spots[0];\n\t\tisOpen.value = checkIsOpenNow(spotOrganization.value.worktime);\n\t console.log(spotOrganization.value)\n\t minOrderAmount.value = spotOrganization.value.minorder || 0;\n\t}\n\n\n\t\n \tisLocationLoading.value = false\n emits('page-loaded');\n\n if (typeof gtag === 'function') {\n gtag('event', 'begin_checkout', {\n currency: returnCurrency(), // Замените на вашу валюту\n value: cartTotalPrice || 0,\n items: shopcart.state.positions.map(item => ({\n item_id: item.product?._id,\n item_name: item.product?.name,\n price: item.price || 0,\n quantity: item.quantity || 1,\n item_category: item.product?.category || '',\n item_brand: orderOrganization.value.profile?.name || ''\n })),\n organization: orderOrganization.value.profile?.name || '',\n location: globals.state.position?.location || 'unknown'\n });\n }\n})\n\n\nwatch(\n () => orders.state.current.delivery,\n async (newVal) => {\n if (newVal?.location) {\n \tisLocationLoading.value = true\n\n orderOrganization.value = await organizations.actions.read({\n _id: shopcart.state.organization,\n location: newVal.location,\n lookup: ['spots']\n })\n \n isLocationLoading.value = false\n }\n },\n { deep: true }\n)\n\n\n/////////////////////////////\n// Store Verification\n/////////////////////////////\nconst errorName = computed(() => {\n if (orders.state.current.customer.name?.length < 2) { return true } else { return false }\n});\n\nconst errorPhoneOrMessenger = computed(() => {\n const hasMessengerType = orders.state.current.customer.messenger?.type;\n const hasMessengerValue = orders.state.current.customer.messenger?.value?.length >\t 2;\n const hasPhone = orders.state.current.customer.number?.length > 0;\n // Ошибка, если нет ни номера телефона, ни корректного типа и значения мессенджера\n return !hasPhone && !(hasMessengerType && hasMessengerValue);\n});\n\nconst errorAddress = computed(() => {\n const type = orders.state.current.delivery.type;\n if (type === \"pickup\") {\n return !orders.state.current.delivery.spot;\n } else if (type === \"courier\" || type === \"mail\") {\n const address = orders.state.current.delivery.address;\n return !address || typeof address !== 'string' || address.length < 2;\n }\n return false;\n});\n\nconst errorDelivery = computed(() => {\n if (orders.state.current.delivery.type) {return false } else {return true } \n})\n\nconst errorPayment = computed(() => {\n if (orders.state.current.payment.type) { return false } else {return true } \n})\n/////////////////////////////\n// Methods\n/////////////////////////////\nasync function handleCreate() {\n\n\torders.state.current.status = 'created';\n\n\torders.state.current.owner = {\n\t\ttarget: orderOrganization.value[0]._id,\n\t\ttype: 'organization'\n\t}\n\n\tif (auth.state.user._id) {\n\t\torders.state.current.creator = {\n\t\t\ttarget: auth.state.user._id,\n\t\t\ttype: 'user'\n\t\t}\n\t}\n\n\tif (auth.state.user._id) {\n\t\torders.state.current.customer = {\n\t\t\ttarget: auth.state.user._id,\n\t\t\ttype: 'user'\n\t\t}\n\t}\n\n\torders.state.current.positions = shopcart.state.positions\n\n \tconst referralCode = localStorage.getItem('referalCode');\n \n if (referralCode) {\n orders.state.current.referralCode = referralCode;\n }\n\n let order = await orders.actions.create(orders.state.current);\n\n if (order) {\n\t if (typeof gtag === 'function') {\n\t gtag('event', 'purchase', {\n\t transaction_id: order._id,\n\t value: cartTotalPrice || 0,\n\t currency: returnCurrency(), // Замените на вашу валюту\n\t tax: 0, // Если есть данные о налоге\n\t shipping: deliveryCost.value, // Если есть данные о доставке\n\t items: shopcart.state.positions.map(item => ({\n\t item_id: item.product?._id,\n\t item_name: item.product?.name ,\n\t price: item.price || 0,\n\t quantity: item.quantity || 1,\n\t item_category: item.product?.category || ''\n\t })),\n\t organization: orderOrganization.value?.profile?.name,\n\t location: globals.state.position?.location || 'unknown',\n\t referral_code: referralCode || null,\n\t user_id: auth.state.user._id || 'anonymous'\n\t });\n\t }\n\t}\n\n if (order) {\n \tawait router.push({\n \t\tname: 'Order',\n \t\tparams: {\n \t\t\torder: order._id\n \t\t}\n \t})\n \t\t\n \tshopcart.actions.resetShopcart()\n\n } else {\n \talert('something wrong')\n }\n}\n</script>\n\n<style lang=\"scss\">\n\n.round-wrapper {\n\tposition: relative;\n\n\t.round {\n\t\tmargin: 0;\n\t\tmargin-right: 1rem;\n\t}\n\n\tinput:checked {\n\t\tbackground: #00ff88;\n\t}\n\n\t.round-checkmark {\n\t\tposition: absolute;\n\t\twidth: 0.5rem;\n\t\theight: 0.5rem;\n\t\tbackground: white;\n\n\t\tleft: 0.5rem;\n\t\ttop: 0.5rem;\n\n\t\topacity: 1;\n\t}\n}\n</style>"],"names":["orders.state","users.state","shopcart.getters","globals.state","orders.getters","auth.state","orders.mutations","users.actions","organizations.actions","shopcart.state","order","orders.actions","shopcart.actions"],"mappings":"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"}
1
+ {"version":3,"file":"OrderCreate.vue.js","sources":["../../../../../../../src/modules/orders/components/pages/OrderCreate.vue"],"sourcesContent":["<template>\n\n<section class=\"bg-white pd-thin\">\n\n\t<!-- Ask to login -->\n\t<AskToLogin class=\"mn-b-thin\" v-if=\"auth.state.access.status === false\" /> \n\n\t<!-- Empty State -->\n\t<EmptyState \n\t\tv-if=\"shopcart.state.positions < 1\" \n\t/>\t\n\t<Succes \n\t\tv-if=\"order.status === true && shopcart.state.positions.length > 0\" \n\t\t:order=\"order\" \n\t/>\n\t<!-- Уведомления о минимальной сумме заказа и времени работы -->\n\t<div v-if=\"shopcart.state.positions.length > 0\" class=\"w-100 gap-thin cols-1 mn-b-thin\">\n\t\t<div v-if=\"!isOpen\" class=\"bg-fifth-nano pd-small radius-medium t-center\">\n\t\t\t<p class=\"t-fourth\">⚠️ This spot is currently closed. You can place an order, but it will be processed when the spot opens.</p>\n\t\t</div>\n\t\t<div v-if=\"cartTotalPrice < minOrderAmount\" class=\"bg-fourth-nano pd-small radius-medium t-center\">\n\t\t\t<p class=\"t-fourth\">⚠️ Minimum order amount is {{ formatPrice(minOrderAmount) }}. Your current total is {{ formatPrice(cartTotalPrice) }}.</p>\n\t\t</div>\n\t</div>\n\t<!-- Order form -->\n\t<div class=\"gap-small mn-b-thin cols-2 mobile:cols-1\">\n\t\t<!-- Order Form -->\n\t\t<div\n\t\t\tv-if=\"orders.state.current.status !== true && shopcart.state.positions.length > 0\" \n\t\t\tclass=\"rows-1 gap-thin\"\n\t\t>\n\t\t\t<FormCustomerDetails\n\t\t\t\tv-model:customer=\"orders.state.current.customer\"\n\t\t\t :showAdminFields=\"false\"\n\t\t\t :showButtons=\"false\"\n\t\t\t/>\n\t\t\t<FormPayment \t\n\t\t\t\tv-if=\"orders.state.current.status !== true && shopcart.state.positions.length > 0\"\n\t\t\t\t:order=\"orders.state.current\" \n\t\t\t\t:organization=\"orderOrganization[0]\" \n\t\t\t/>\n\t\t\t<FormDelivery \t\n\t\t\t\tv-if=\"orders.state.current.status !== true && shopcart.state.positions.length > 0\"\n\t\t\t\t:order=\"orders.state.current\" \n\t\t\t\t:organization=\"orderOrganization[0]\" \n\t\t\t/>\n\t\t\t\n\t\t</div>\n\n\t\t<!-- Order positions -->\n\t\t<div \n\t\t\tv-if=\"shopcart.state.positions.length > 0\" \n\t\t\tclass=\"bg-white br-solid br-light br-1px pd-medium radius-medium\"\n\t\t>\n\t\t\t<h4 class=\"font-second mn-b-thin\">Your Order</h4>\n\n\t\t\t<ul class=\"flex gap-thin flex-wrap mn-b-thin\">\n\t\t\t\t<CardOrderItem \n\t\t\t\t\tv-for=\"(product, index) in shopcart.state.positions\" \n\t\t\t\t\t:key=\"`${product._id}_${product.variant || 'no-variant'}_${index}`\" \n\t\t\t\t\t:editable=\"true\" \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 :increase=\"() => shopcart.actions.incrementItemQuantity(product._id, product.variant)\"\n\t :decrease=\"() => shopcart.actions.decrementItemQuantity(product._id, product.variant)\"\n\t :remove=\"() => shopcart.actions.removeProduct(product._id, product.variant)\"\n\t\t\t\t\t@updateRentDates=\"(productId, variantId, dates) => shopcart.actions.updateRentDates({ productId, variantId, dates })\"\n\t class=\"w-100 bg-white \"\n\t />\n\t\t\t</ul>\n\n\t\t\t\t<div \n\t\t\t\tclass=\"mn-b-thin\"\n\t\t\t>\t\n\t\t\t\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 :showDeliveryFee=\"globals.state.options?.orders.showDeliveryFee\"\n />\n\t\t\t</div>\n\t\t\t<!-- Send order -->\n\t\t <Button\n v-if=\"orders.state.current.status !== true && shopcart.state.positions.length > 0\"\n :submit=\"() => handleCreate()\"\n class=\"bg-main mn-b-small pd-small radius-big w-100 button\"\n :disabled=\"\n\t\t errorName \n\t\t || errorPhoneOrMessenger \n\t\t || errorCity \n\t\t || errorAddress \n\t\t || errorDelivery \n\t\t || errorPayment\n\t\t || isLocationLoading\n\t\t || cartTotalPrice < minOrderAmount\n\t\t \"\n >\n <span>Place an Order</span>\n </Button>\n\n\t\t <p class='mn-b-thin'>\n\t\t\t\tI agree that placing the order places me under an obligation to make a payment in accordance with <a class=\"t-semi font-second t-second\" href=\"/legal/terms-of-use\" target=\"_blank\">Terms of Use.</a>\n\t\t\t</p>\n\t\t\t<p >\n\t\t\t\t\n\t\t\t</p>\n\t\t</div>\n\n\t</div>\n\n\t\n\t\n</section>\n\n</template>\n\n\n<script setup>\n///////////////////////////////////////////////////////////////////////////////////////////////////\n// Import components\n///////////////////////////////////////////////////////////////////////////////////////////////////\nimport Button from '@martyrs/src/components/Button/Button.vue'\n// Block\nimport CardOrderItem from '@martyrs/src/modules/orders/components/blocks/CardOrderItem.vue'\n// Sections\nimport AskToLogin from '@martyrs/src/modules/orders/components/sections/AskToLogin.vue'\nimport Succes from '@martyrs/src/modules/orders/components/sections/Succes.vue'\nimport EmptyState from '@martyrs/src/modules/orders/components/sections/EmptyState.vue'\n\nimport PriceTotal from '@martyrs/src/modules/orders/components/elements/PriceTotal.vue';\n\nimport FormCustomerDetails from '@martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue'\nimport FormDelivery from '@martyrs/src/modules/orders/components/sections/FormDelivery.vue'\nimport FormPayment from '@martyrs/src/modules/orders/components/sections/FormPayment.vue'\n///////////////////////////////////////////////////////////////////////////////////////////////////\n// Import libs\n///////////////////////////////////////////////////////////////////////////////////////////////////\nimport { ref, computed, onMounted, watch } from 'vue'\nimport { useRoute,useRouter } from 'vue-router'\nimport { useGlobalMixins } from \"@martyrs/src/modules/globals/views/mixins/mixins.js\"\n\n// Store\nimport * as globals from '@martyrs/src/modules/globals/views/store/globals.js';\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\nimport * as shopcart from '@martyrs/src/modules/orders/store/shopcart.js';\nimport * as organizations from '@martyrs/src/modules/organizations/store/organizations.js';\nimport * as orders from '@martyrs/src/modules/orders/store/orders.js';\nimport * as users from '@martyrs/src/modules/auth/views/store/users.js';\n\nconst emits = defineEmits(['page-loading', 'page-loaded']);\n\n///////////////////////////////////////////////////////////////////////////////////////////////////\n// Variables and computed\n//////////////////////////////////////////////////////////////////////////////////////////////////\nconst isLocationLoading = ref(false)\n// Accessing router and store\nconst route = useRoute()\nconst router = useRouter()\nconst { returnCurrency, formatPrice } = useGlobalMixins()\n// COMPUTED\nconst order = computed(() => orders.state.current)\nconst user = computed(() => users.state.current)\n\nconst cartTotalPrice = shopcart.getters.cartTotalPrice\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// Organization\nconst orderOrganization = ref({})\nconst spotOrganization = ref({})\nconst isOpen = ref(true)\n\n// Новые переменные для проверки минимальной суммы заказа и времени работы\nconst minOrderAmount = ref(0)\n\nfunction checkIsOpenNow(worktime) {\n try {\n console.log('[checkIsOpenNow] worktime:', worktime);\n\n if (\n !worktime ||\n typeof worktime !== 'object' ||\n Array.isArray(worktime) ||\n !worktime.regular\n ) {\n console.log('[checkIsOpenNow] invalid, returning true');\n return true;\n }\n\n const now = new Date();\n const currentDay = now.getDay();\n const currentTime = `${String(now.getHours()).padStart(2, '0')}:${String(now.getMinutes()).padStart(2, '0')}`;\n const today = new Date(now.getFullYear(), now.getMonth(), now.getDate());\n\n console.log('[checkIsOpenNow] currentDay:', currentDay);\n console.log('[checkIsOpenNow] currentTime:', currentTime);\n\n const specialDay = worktime.special?.find(s => {\n const d = new Date(s.date);\n return (\n d.getFullYear() === today.getFullYear() &&\n d.getMonth() === today.getMonth() &&\n d.getDate() === today.getDate()\n );\n });\n\n if (specialDay) {\n console.log('[checkIsOpenNow] specialDay:', specialDay);\n if (!specialDay.isOpen) return false;\n return specialDay.periods?.some(p => p.open <= currentTime && p.close > currentTime);\n }\n\n const regularDay = worktime.regular.find(d => d.dayOfWeek === currentDay);\n if (!regularDay || !regularDay.isOpen) return false;\n\n return regularDay.periods?.some(p => p.open <= currentTime && p.close > currentTime);\n } catch (err) {\n console.error('[checkIsOpenNow] error:', err);\n return true;\n }\n}\n\n\nif (!globals.state.options.orders.allowUnauthenticatedOrders && !auth.state.user._id) { \n\trouter.push({name: 'Sign In'})\t\n}\n\n\norders.mutations.resetOrder()\n\nonMounted(async()=> {\n\temits('page-loading');\n\n\tisLocationLoading.value = true\n\n\tif (auth.state.user._id) {\n\t\tlet data = await users.actions.read({ _id:auth.state.user._id, user: auth.state.user._id });\n\n\t\torders.state.current.customer.profile.name = users.state.current.profile.name\n\t\torders.state.current.customer.phone = users.state.current.phone\n\t\torders.state.current.customer.phone = users.state.current.phone\n\t}\n\t\n\torderOrganization.value = await organizations.actions.read({\n\t _id: shopcart.state.organization,\n\t location: globals.state.position?.location,\n\t lookup: ['spots']\n\t})\n\t\n\t// Получаем информацию о минимальной сумме заказа и времени работы из spot\n\tif (orderOrganization.value && orderOrganization.value[0]?.spots?.length > 0) {\n\t spotOrganization.value = orderOrganization.value[0].spots[0];\n\t\tisOpen.value = checkIsOpenNow(spotOrganization.value.worktime);\n\t console.log(spotOrganization.value)\n\t minOrderAmount.value = spotOrganization.value.minorder || 0;\n\t}\n\n\n\t\n \tisLocationLoading.value = false\n emits('page-loaded');\n\n if (typeof gtag === 'function') {\n gtag('event', 'begin_checkout', {\n currency: returnCurrency(), // Замените на вашу валюту\n value: cartTotalPrice || 0,\n items: shopcart.state.positions.map(item => ({\n item_id: item.product?._id,\n item_name: item.product?.name,\n price: item.price || 0,\n quantity: item.quantity || 1,\n item_category: item.product?.category || '',\n item_brand: orderOrganization.value.profile?.name || ''\n })),\n organization: orderOrganization.value.profile?.name || '',\n location: globals.state.position?.location || 'unknown'\n });\n }\n})\n\n\nwatch(\n () => orders.state.current.delivery,\n async (newVal) => {\n if (newVal?.location) {\n \tisLocationLoading.value = true\n\n orderOrganization.value = await organizations.actions.read({\n _id: shopcart.state.organization,\n location: newVal.location,\n lookup: ['spots']\n })\n \n isLocationLoading.value = false\n }\n },\n { deep: true }\n)\n\n\n/////////////////////////////\n// Store Verification\n/////////////////////////////\nconst errorName = computed(() => {\n if (orders.state.current.customer.name?.length < 2) { return true } else { return false }\n});\n\nconst errorPhoneOrMessenger = computed(() => {\n const hasMessengerType = orders.state.current.customer.messenger?.type;\n const hasMessengerValue = orders.state.current.customer.messenger?.value?.length >\t 2;\n const hasPhone = orders.state.current.customer.number?.length > 0;\n // Ошибка, если нет ни номера телефона, ни корректного типа и значения мессенджера\n return !hasPhone && !(hasMessengerType && hasMessengerValue);\n});\n\nconst errorAddress = computed(() => {\n const type = orders.state.current.delivery.type;\n if (type === \"pickup\") {\n return !orders.state.current.delivery.spot;\n } else if (type === \"courier\" || type === \"mail\") {\n const address = orders.state.current.delivery.address;\n return !address || typeof address !== 'string' || address.length < 2;\n }\n return false;\n});\n\nconst errorDelivery = computed(() => {\n if (orders.state.current.delivery.type) {return false } else {return true } \n})\n\nconst errorPayment = computed(() => {\n if (orders.state.current.payment.type) { return false } else {return true } \n})\n/////////////////////////////\n// Methods\n/////////////////////////////\nasync function handleCreate() {\n\n\torders.state.current.status = 'created';\n\n\torders.state.current.owner = {\n\t\ttarget: orderOrganization.value[0]._id,\n\t\ttype: 'organization'\n\t}\n\n\tif (auth.state.user._id) {\n\t\torders.state.current.creator = {\n\t\t\ttarget: auth.state.user._id,\n\t\t\ttype: 'user'\n\t\t}\n\t}\n\n\tif (auth.state.user._id) {\n\t\torders.state.current.customer = {\n\t\t\ttarget: auth.state.user._id,\n\t\t\ttype: 'user'\n\t\t}\n\t}\n\n\torders.state.current.positions = shopcart.state.positions\n\n \tconst referralCode = localStorage.getItem('referalCode');\n \n if (referralCode) {\n orders.state.current.referralCode = referralCode;\n }\n\n let order = await orders.actions.create(orders.state.current);\n\n if (order) {\n\t if (typeof gtag === 'function') {\n\t gtag('event', 'purchase', {\n\t transaction_id: order._id,\n\t value: cartTotalPrice || 0,\n\t currency: returnCurrency(), // Замените на вашу валюту\n\t tax: 0, // Если есть данные о налоге\n\t shipping: deliveryCost.value, // Если есть данные о доставке\n\t items: shopcart.state.positions.map(item => ({\n\t item_id: item.product?._id,\n\t item_name: item.product?.name ,\n\t price: item.price || 0,\n\t quantity: item.quantity || 1,\n\t item_category: item.product?.category || ''\n\t })),\n\t organization: orderOrganization.value?.profile?.name,\n\t location: globals.state.position?.location || 'unknown',\n\t referral_code: referralCode || null,\n\t user_id: auth.state.user._id || 'anonymous'\n\t });\n\t }\n\t}\n\n if (order) {\n \tawait router.push({\n \t\tname: 'Order',\n \t\tparams: {\n \t\t\torder: order._id\n \t\t}\n \t})\n \t\t\n \tshopcart.actions.resetShopcart()\n\n } else {\n \talert('something wrong')\n }\n}\n</script>\n\n<style lang=\"scss\">\n\n.round-wrapper {\n\tposition: relative;\n\n\t.round {\n\t\tmargin: 0;\n\t\tmargin-right: 1rem;\n\t}\n\n\tinput:checked {\n\t\tbackground: #00ff88;\n\t}\n\n\t.round-checkmark {\n\t\tposition: absolute;\n\t\twidth: 0.5rem;\n\t\theight: 0.5rem;\n\t\tbackground: white;\n\n\t\tleft: 0.5rem;\n\t\ttop: 0.5rem;\n\n\t\topacity: 1;\n\t}\n}\n</style>"],"names":["orders.state","users.state","shopcart.getters","globals.state","orders.getters","auth.state","orders.mutations","users.actions","organizations.actions","shopcart.state","order","orders.actions","shopcart.actions"],"mappings":"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"}
@@ -3,7 +3,7 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
3
3
  const vue = require("vue");
4
4
  const vueRouter = require("vue-router");
5
5
  ;/* empty css */
6
- const Button = require("../../../../components/Button/Button.vue.cjs");
6
+ const Button = require("../../../../components/Button/Button.vue2.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");
@@ -1,7 +1,7 @@
1
1
  import { getCurrentInstance, computed, ref, onMounted, createElementBlock, openBlock, createVNode, createBlock, createCommentVNode, withCtx, createElementVNode, createTextVNode, unref, Fragment, renderList, toDisplayString } from "vue";
2
2
  import { useRoute, useRouter } from "vue-router";
3
3
  /* empty css */
4
- import _sfc_main$2 from "../../../../components/Button/Button.vue.js";
4
+ import _sfc_main$2 from "../../../../components/Button/Button.vue2.js";
5
5
  import _sfc_main$3 from "../../../../components/Tab/Tab.vue2.js";
6
6
  import _sfc_main$4 from "../../../../components/Popup/Popup.vue.js";
7
7
  import _sfc_main$1 from "../../../../components/Block/Block.vue.js";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
3
3
  const vue = require("vue");
4
4
  const Block = require("../../../../components/Block/Block.vue.cjs");
5
5
  const StatusBadge = require("../../../../components/Table/StatusBadge.vue.cjs");
6
- const Button = require("../../../../components/Button/Button.vue.cjs");
6
+ const Button = require("../../../../components/Button/Button.vue2.cjs");
7
7
  const mixins = require("../../../globals/views/mixins/mixins.cjs");
8
8
  ;/* empty css */
9
9
  const _pluginVue_exportHelper = require("../../../../../../_virtual/_plugin-vue_export-helper.cjs");
@@ -1,7 +1,7 @@
1
1
  import { createElementBlock, openBlock, createVNode, createElementVNode, withCtx, toDisplayString, createCommentVNode, unref, createTextVNode } from "vue";
2
2
  import _sfc_main$1 from "../../../../components/Block/Block.vue.js";
3
3
  import StatusBadge from "../../../../components/Table/StatusBadge.vue.js";
4
- import _sfc_main$2 from "../../../../components/Button/Button.vue.js";
4
+ import _sfc_main$2 from "../../../../components/Button/Button.vue2.js";
5
5
  import { useGlobalMixins } from "../../../globals/views/mixins/mixins.js";
6
6
  /* empty css */
7
7
  import _export_sfc from "../../../../../../_virtual/_plugin-vue_export-helper.js";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
3
3
  const vue = require("vue");
4
4
  const Block = require("../../../../components/Block/Block.vue.cjs");
5
5
  const StatusBadge = require("../../../../components/Table/StatusBadge.vue.cjs");
6
- const Button = require("../../../../components/Button/Button.vue.cjs");
6
+ const Button = require("../../../../components/Button/Button.vue2.cjs");
7
7
  const mixins = require("../../../globals/views/mixins/mixins.cjs");
8
8
  ;/* empty css */
9
9
  const _pluginVue_exportHelper = require("../../../../../../_virtual/_plugin-vue_export-helper.cjs");
@@ -1,7 +1,7 @@
1
1
  import { createElementBlock, openBlock, createVNode, createElementVNode, withCtx, toDisplayString, createCommentVNode, unref, Fragment, renderList, createTextVNode } from "vue";
2
2
  import _sfc_main$1 from "../../../../components/Block/Block.vue.js";
3
3
  import StatusBadge from "../../../../components/Table/StatusBadge.vue.js";
4
- import _sfc_main$2 from "../../../../components/Button/Button.vue.js";
4
+ import _sfc_main$2 from "../../../../components/Button/Button.vue2.js";
5
5
  import { useGlobalMixins } from "../../../globals/views/mixins/mixins.js";
6
6
  /* empty css */
7
7
  import _export_sfc from "../../../../../../_virtual/_plugin-vue_export-helper.js";
@@ -2,9 +2,9 @@
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
4
  const vueRouter = require("vue-router");
5
- ;/* empty css */
5
+ ;/* empty css */
6
+ ;/* empty css */
6
7
  ;/* empty css */
7
- ;/* empty css */
8
8
  ;/* empty css */
9
9
  const Field = require("../../../../components/Field/Field.vue.cjs");
10
10
  const Radio = require("../../../../components/Radio/Radio.vue.cjs");
@@ -66,7 +66,7 @@ const _sfc_main = {
66
66
  "onUpdate:radio": ($event) => __props.order.delivery.type = $event,
67
67
  label: capitalize(type),
68
68
  value: type,
69
- class: "bg-white pd-medium radius-small w-100 mn-r-small"
69
+ class: "bg-white field-wrapper cursor-pointer pd-medium radius-small w-100 mn-r-small"
70
70
  }, null, 8, ["radio", "onUpdate:radio", "label", "value"]);
71
71
  }), 128))
72
72
  ])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_2, "No delivery options available.")),
@@ -82,7 +82,7 @@ const _sfc_main = {
82
82
  showPaymentOptions: false,
83
83
  selected: __props.order.delivery.spot === spot._id,
84
84
  onClick: () => __props.order.delivery.spot = __props.order.delivery.spot === spot._id ? null : spot._id,
85
- class: "mn-b-thin radius-medium o-hidden bg-white"
85
+ class: "field-wrapper cursor-pointer mn-b-thin radius-medium o-hidden bg-white"
86
86
  }, null, 8, ["spot", "organization", "selected", "onClick"]);
87
87
  }), 128))
88
88
  ], 64)) : __props.order.delivery.type === "courier" || __props.order.delivery.type === "post" ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 3 }, [
@@ -1 +1 @@
1
- {"version":3,"file":"FormDelivery.vue.cjs","sources":["../../../../../../../src/modules/orders/components/sections/FormDelivery.vue"],"sourcesContent":["<template>\n <Block title=\"Delivery\">\n <h5 class=\"font-second mn-b-thin\">Select delivery type</h5>\n \n <div class=\"mn-b-small flex-nowrap flex\" v-if=\"availableDeliveryTypes.length\">\n <Radio \n v-for=\"type in availableDeliveryTypes\"\n :key=\"type\"\n v-model:radio=\"order.delivery.type\"\n :label=\"capitalize(type)\"\n :value=\"type\"\n class=\"bg-white pd-medium radius-small w-100 mn-r-small\"\n />\n </div>\n <div v-else>No delivery options available.</div>\n\n <!-- Раздел для Pickup -->\n <template v-if=\"order.delivery.type === 'pickup'\">\n <h5 class=\"font-second mn-b-thin\">Select pickup spot</h5>\n <CardSpot\n v-for=\"(spot, index) in organization?.spots.filter(item => item.delivery?.includes('pickup'))\"\n :key=\"index\"\n :spot=\"spot\"\n :organization=\"order.organization\"\n :editAcess=\"false\"\n :showDeliveryOptions=\"false\"\n :showPaymentOptions=\"false\"\n :selected=\"order.delivery.spot === spot._id\"\n @click=\"() => order.delivery.spot = order.delivery.spot === spot._id ? null : spot._id\"\n class=\"mn-b-thin radius-medium o-hidden bg-white\"\n />\n </template>\n\n <!-- Раздел для Courier -->\n <template v-else-if=\"order.delivery.type === 'courier' || order.delivery.type === 'post'\">\n <h5 class=\"font-second mn-b-thin\">Address</h5>\n <Address\n label=\"Location\" \n :apiKey=\"GOOGLE_MAPS_API_KEY\" \n :address=\"order.delivery.address\" \n :location=\"order.delivery.location\" \n placeholder=\"Enter your address\" \n class=\"bg-white radius-tl-medium radius-tr-medium t-black pd-medium\"\n @update:location=\"newLocation => { order.delivery.location = newLocation; }\"\n @update:address=\"newAddress => { order.delivery.address = newAddress; }\"\n />\n <!-- Карта доставки -->\n <LocationMarker \n :apiKey=\"GOOGLE_MAPS_API_KEY\" \n :address=\"order.delivery.address\" \n :location=\"order.delivery.location\"\n class=\"mn-b-thin radius-bl-medium radius-br-medium h-15r o-hidden\"\n @update:location=\"newLocation => { \n if (order.delivery.type === 'courier') order.delivery.location = newLocation;\n }\"\n @update:address=\"newAddress => { \n if (order.delivery.type === 'courier') order.delivery.address = newAddress;\n }\"\n />\n </template>\n <!-- Комментарии -->\n <Field \n v-model:field=\"order.comment\" \n placeholder=\"Comments regarding the address (apartment unit, floor level, building section)\"\n type=\"textarea\" \n class=\"bg-white pd-medium radius-small\"\n />\n </Block>\n</template>\n\n<script setup>\nimport { watch, computed, onMounted } from 'vue';\nimport { useRoute } from 'vue-router';\n\nimport Feed from '@martyrs/src/components/Feed/Feed.vue';\nimport CardSpot from '@martyrs/src/modules/spots/components/blocks/CardSpot.vue'; \nimport * as spotsModule from '@martyrs/src/modules/spots/store/spots.js';\nimport * as globals from '@martyrs/src/modules/globals/views/store/globals.js';\nimport Block from '@martyrs/src/components/Block/Block.vue';\nimport Address from '@martyrs/src/components/Address/Address.vue';\nimport LocationMarker from '@martyrs/src/components/LocationMarker/LocationMarker.vue';\nimport Radio from '@martyrs/src/components/Radio/Radio.vue';\nimport Field from '@martyrs/src/components/Field/Field.vue';\n\nconst props = defineProps({\n order: Object,\n organization: Object,\n});\n\nconst route = useRoute();\n\n// Сбрасываем spot при переключении типа доставки\nwatch(() => props.order.delivery.type, (newType) => {\n if (newType !== 'pickup') {\n props.order.delivery.spot = null;\n }\n});\n\n// Устанавливаем начальные данные из globals при монтировании\nonMounted(() => {\n if (globals.state.position) {\n props.order.delivery.address = globals.state.position.address;\n props.order.delivery.location = globals.state.position.location;\n }\n});\n\nconst availableDeliveryTypes = computed(() => {\n const types = new Set()\n props.organization?.spots?.forEach(spot => {\n spot.delivery?.forEach(type => types.add(type))\n })\n return Array.from(types)\n})\n\nfunction capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n}\n\n</script>"],"names":["useRoute","watch","onMounted","globals.state","computed"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoFA,UAAM,QAAQ;AAKAA,cAAAA,SAAQ;AAGtBC,QAAAA,MAAM,MAAM,MAAM,MAAM,SAAS,MAAM,CAAC,YAAY;AAClD,UAAI,YAAY,UAAU;AACxB,cAAM,MAAM,SAAS,OAAO;AAAA,MAC9B;AAAA,IACF,CAAC;AAGDC,QAAAA,UAAU,MAAM;AACd,UAAIC,QAAAA,MAAc,UAAU;AAC1B,cAAM,MAAM,SAAS,UAAUA,QAAAA,MAAc,SAAS;AACtD,cAAM,MAAM,SAAS,WAAWA,QAAAA,MAAc,SAAS;AAAA,MACzD;AAAA,IACF,CAAC;AAED,UAAM,yBAAyBC,IAAAA,SAAS,MAAM;AAC5C,YAAM,QAAQ,oBAAI,IAAG;AACrB,YAAM,cAAc,OAAO,QAAQ,UAAQ;AACzC,aAAK,UAAU,QAAQ,UAAQ,MAAM,IAAI,IAAI,CAAC;AAAA,MAChD,CAAC;AACD,aAAO,MAAM,KAAK,KAAK;AAAA,IACzB,CAAC;AAED,aAAS,WAAW,KAAK;AACvB,aAAO,IAAI,OAAO,CAAC,EAAE,gBAAgB,IAAI,MAAM,CAAC;AAAA,IAClD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"FormDelivery.vue.cjs","sources":["../../../../../../../src/modules/orders/components/sections/FormDelivery.vue"],"sourcesContent":["<template>\n <Block title=\"Delivery\">\n <h5 class=\"font-second mn-b-thin\">Select delivery type</h5>\n \n <div class=\"mn-b-small flex-nowrap flex\" v-if=\"availableDeliveryTypes.length\">\n <Radio \n v-for=\"type in availableDeliveryTypes\"\n :key=\"type\"\n v-model:radio=\"order.delivery.type\"\n :label=\"capitalize(type)\"\n :value=\"type\"\n class=\"bg-white field-wrapper cursor-pointer pd-medium radius-small w-100 mn-r-small\"\n />\n </div>\n <div v-else>No delivery options available.</div>\n\n <!-- Раздел для Pickup -->\n <template v-if=\"order.delivery.type === 'pickup'\">\n <h5 class=\"font-second mn-b-thin\">Select pickup spot</h5>\n <CardSpot\n v-for=\"(spot, index) in organization?.spots.filter(item => item.delivery?.includes('pickup'))\"\n :key=\"index\"\n :spot=\"spot\"\n :organization=\"order.organization\"\n :editAcess=\"false\"\n :showDeliveryOptions=\"false\"\n :showPaymentOptions=\"false\"\n :selected=\"order.delivery.spot === spot._id\"\n @click=\"() => order.delivery.spot = order.delivery.spot === spot._id ? null : spot._id\"\n class=\"field-wrapper cursor-pointer mn-b-thin radius-medium o-hidden bg-white\"\n />\n </template>\n\n <!-- Раздел для Courier -->\n <template v-else-if=\"order.delivery.type === 'courier' || order.delivery.type === 'post'\">\n <h5 class=\"font-second mn-b-thin\">Address</h5>\n <Address\n label=\"Location\" \n :apiKey=\"GOOGLE_MAPS_API_KEY\" \n :address=\"order.delivery.address\" \n :location=\"order.delivery.location\" \n placeholder=\"Enter your address\" \n class=\"bg-white radius-tl-medium radius-tr-medium t-black pd-medium\"\n @update:location=\"newLocation => { order.delivery.location = newLocation; }\"\n @update:address=\"newAddress => { order.delivery.address = newAddress; }\"\n />\n <!-- Карта доставки -->\n <LocationMarker \n :apiKey=\"GOOGLE_MAPS_API_KEY\" \n :address=\"order.delivery.address\" \n :location=\"order.delivery.location\"\n class=\"mn-b-thin radius-bl-medium radius-br-medium h-15r o-hidden\"\n @update:location=\"newLocation => { \n if (order.delivery.type === 'courier') order.delivery.location = newLocation;\n }\"\n @update:address=\"newAddress => { \n if (order.delivery.type === 'courier') order.delivery.address = newAddress;\n }\"\n />\n </template>\n <!-- Комментарии -->\n <Field \n v-model:field=\"order.comment\" \n placeholder=\"Comments regarding the address (apartment unit, floor level, building section)\"\n type=\"textarea\" \n class=\"bg-white pd-medium radius-small\"\n />\n </Block>\n</template>\n\n<script setup>\nimport { watch, computed, onMounted } from 'vue';\nimport { useRoute } from 'vue-router';\n\nimport Feed from '@martyrs/src/components/Feed/Feed.vue';\nimport CardSpot from '@martyrs/src/modules/spots/components/blocks/CardSpot.vue'; \nimport * as spotsModule from '@martyrs/src/modules/spots/store/spots.js';\nimport * as globals from '@martyrs/src/modules/globals/views/store/globals.js';\nimport Block from '@martyrs/src/components/Block/Block.vue';\nimport Address from '@martyrs/src/components/Address/Address.vue';\nimport LocationMarker from '@martyrs/src/components/LocationMarker/LocationMarker.vue';\nimport Radio from '@martyrs/src/components/Radio/Radio.vue';\nimport Field from '@martyrs/src/components/Field/Field.vue';\n\nconst props = defineProps({\n order: Object,\n organization: Object,\n});\n\nconst route = useRoute();\n\n// Сбрасываем spot при переключении типа доставки\nwatch(() => props.order.delivery.type, (newType) => {\n if (newType !== 'pickup') {\n props.order.delivery.spot = null;\n }\n});\n\n// Устанавливаем начальные данные из globals при монтировании\nonMounted(() => {\n if (globals.state.position) {\n props.order.delivery.address = globals.state.position.address;\n props.order.delivery.location = globals.state.position.location;\n }\n});\n\nconst availableDeliveryTypes = computed(() => {\n const types = new Set()\n props.organization?.spots?.forEach(spot => {\n spot.delivery?.forEach(type => types.add(type))\n })\n return Array.from(types)\n})\n\nfunction capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n}\n\n</script>"],"names":["useRoute","watch","onMounted","globals.state","computed"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoFA,UAAM,QAAQ;AAKAA,cAAAA,SAAQ;AAGtBC,QAAAA,MAAM,MAAM,MAAM,MAAM,SAAS,MAAM,CAAC,YAAY;AAClD,UAAI,YAAY,UAAU;AACxB,cAAM,MAAM,SAAS,OAAO;AAAA,MAC9B;AAAA,IACF,CAAC;AAGDC,QAAAA,UAAU,MAAM;AACd,UAAIC,QAAAA,MAAc,UAAU;AAC1B,cAAM,MAAM,SAAS,UAAUA,QAAAA,MAAc,SAAS;AACtD,cAAM,MAAM,SAAS,WAAWA,QAAAA,MAAc,SAAS;AAAA,MACzD;AAAA,IACF,CAAC;AAED,UAAM,yBAAyBC,IAAAA,SAAS,MAAM;AAC5C,YAAM,QAAQ,oBAAI,IAAG;AACrB,YAAM,cAAc,OAAO,QAAQ,UAAQ;AACzC,aAAK,UAAU,QAAQ,UAAQ,MAAM,IAAI,IAAI,CAAC;AAAA,MAChD,CAAC;AACD,aAAO,MAAM,KAAK,KAAK;AAAA,IACzB,CAAC;AAED,aAAS,WAAW,KAAK;AACvB,aAAO,IAAI,OAAO,CAAC,EAAE,gBAAgB,IAAI,MAAM,CAAC;AAAA,IAClD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}