@ozdao/prometheus-framework 0.2.323 → 0.2.325

Sign up to get free protection for your applications and to get access to all the features.
Files changed (338) hide show
  1. package/dist/Media-BjSScxrV.js +1 -0
  2. package/dist/Media-CCVndMgQ.mjs +111 -0
  3. package/dist/main-BBmjvE8i.js +92 -0
  4. package/dist/main-BCskq3d2.mjs +13068 -0
  5. package/dist/main.css +1 -1
  6. package/dist/prometheus-framework/src/components/Button/Button.vue.cjs +9 -11
  7. package/dist/prometheus-framework/src/components/Button/Button.vue.cjs.map +1 -1
  8. package/dist/prometheus-framework/src/components/Button/Button.vue.js +10 -12
  9. package/dist/prometheus-framework/src/components/Button/Button.vue.js.map +1 -1
  10. package/dist/prometheus-framework/src/components/DatePicker/Calendar.vue2.cjs +37 -9
  11. package/dist/prometheus-framework/src/components/DatePicker/Calendar.vue2.cjs.map +1 -1
  12. package/dist/prometheus-framework/src/components/DatePicker/Calendar.vue2.js +37 -9
  13. package/dist/prometheus-framework/src/components/DatePicker/Calendar.vue2.js.map +1 -1
  14. package/dist/prometheus-framework/src/components/DatePicker/DatePicker.vue.cjs +27 -18
  15. package/dist/prometheus-framework/src/components/DatePicker/DatePicker.vue.cjs.map +1 -1
  16. package/dist/prometheus-framework/src/components/DatePicker/DatePicker.vue.js +27 -18
  17. package/dist/prometheus-framework/src/components/DatePicker/DatePicker.vue.js.map +1 -1
  18. package/dist/prometheus-framework/src/components/EditImages/EditImages.vue.cjs +93 -0
  19. package/dist/prometheus-framework/src/components/EditImages/EditImages.vue.cjs.map +1 -1
  20. package/dist/prometheus-framework/src/components/EditImages/EditImages.vue.js +94 -1
  21. package/dist/prometheus-framework/src/components/EditImages/EditImages.vue.js.map +1 -1
  22. package/dist/prometheus-framework/src/components/EditImages/EditImages.vue2.cjs +0 -93
  23. package/dist/prometheus-framework/src/components/EditImages/EditImages.vue2.cjs.map +1 -1
  24. package/dist/prometheus-framework/src/components/EditImages/EditImages.vue2.js +1 -94
  25. package/dist/prometheus-framework/src/components/EditImages/EditImages.vue2.js.map +1 -1
  26. package/dist/prometheus-framework/src/components/EmptyState/EmptyState.vue.cjs +2 -2
  27. package/dist/prometheus-framework/src/components/EmptyState/EmptyState.vue.js +2 -2
  28. package/dist/prometheus-framework/src/components/Feed/Feed.vue.cjs +7 -3
  29. package/dist/prometheus-framework/src/components/Feed/Feed.vue.cjs.map +1 -1
  30. package/dist/prometheus-framework/src/components/Feed/Feed.vue.js +7 -3
  31. package/dist/prometheus-framework/src/components/Feed/Feed.vue.js.map +1 -1
  32. package/dist/prometheus-framework/src/components/Media/Media.vue.cjs +154 -0
  33. package/dist/prometheus-framework/src/components/Media/Media.vue.cjs.map +1 -0
  34. package/dist/prometheus-framework/src/components/Media/Media.vue.js +154 -0
  35. package/dist/prometheus-framework/src/components/Media/Media.vue.js.map +1 -0
  36. package/dist/prometheus-framework/src/components/Popup/Popup.vue.cjs +1 -4
  37. package/dist/prometheus-framework/src/components/Popup/Popup.vue.cjs.map +1 -1
  38. package/dist/prometheus-framework/src/components/Popup/Popup.vue.js +1 -4
  39. package/dist/prometheus-framework/src/components/Popup/Popup.vue.js.map +1 -1
  40. package/dist/prometheus-framework/src/components/Slider/Slider.vue.cjs +68 -37
  41. package/dist/prometheus-framework/src/components/Slider/Slider.vue.cjs.map +1 -1
  42. package/dist/prometheus-framework/src/components/Slider/Slider.vue.js +69 -38
  43. package/dist/prometheus-framework/src/components/Slider/Slider.vue.js.map +1 -1
  44. package/dist/prometheus-framework/src/modules/auth/views/components/pages/Profile.vue.cjs +3 -2
  45. package/dist/prometheus-framework/src/modules/auth/views/components/pages/Profile.vue.cjs.map +1 -1
  46. package/dist/prometheus-framework/src/modules/auth/views/components/pages/Profile.vue.js +3 -2
  47. package/dist/prometheus-framework/src/modules/auth/views/components/pages/Profile.vue.js.map +1 -1
  48. package/dist/prometheus-framework/src/modules/backoffice/backoffice.client.cjs +0 -2
  49. package/dist/prometheus-framework/src/modules/backoffice/backoffice.client.cjs.map +1 -1
  50. package/dist/prometheus-framework/src/modules/backoffice/backoffice.client.js +4 -6
  51. package/dist/prometheus-framework/src/modules/backoffice/backoffice.client.js.map +1 -1
  52. package/dist/prometheus-framework/src/modules/backoffice/components/pages/Dashboard.vue.cjs +118 -3
  53. package/dist/prometheus-framework/src/modules/backoffice/components/pages/Dashboard.vue.cjs.map +1 -1
  54. package/dist/prometheus-framework/src/modules/backoffice/components/pages/Dashboard.vue.js +119 -4
  55. package/dist/prometheus-framework/src/modules/backoffice/components/pages/Dashboard.vue.js.map +1 -1
  56. package/dist/prometheus-framework/src/modules/backoffice/components/partials/Sidebar.vue.cjs +112 -163
  57. package/dist/prometheus-framework/src/modules/backoffice/components/partials/Sidebar.vue.cjs.map +1 -1
  58. package/dist/prometheus-framework/src/modules/backoffice/components/partials/Sidebar.vue.js +119 -170
  59. package/dist/prometheus-framework/src/modules/backoffice/components/partials/Sidebar.vue.js.map +1 -1
  60. package/dist/prometheus-framework/src/modules/backoffice/router/backoffice.cjs +0 -17
  61. package/dist/prometheus-framework/src/modules/backoffice/router/backoffice.cjs.map +1 -1
  62. package/dist/prometheus-framework/src/modules/backoffice/router/backoffice.js +2 -19
  63. package/dist/prometheus-framework/src/modules/backoffice/router/backoffice.js.map +1 -1
  64. package/dist/prometheus-framework/src/modules/community/components/blocks/CardBlogpost.vue.cjs +1 -1
  65. package/dist/prometheus-framework/src/modules/community/components/blocks/CardBlogpost.vue.js +1 -1
  66. package/dist/prometheus-framework/src/modules/community/components/layouts/Community.vue.cjs +18 -78
  67. package/dist/prometheus-framework/src/modules/community/components/layouts/Community.vue.cjs.map +1 -1
  68. package/dist/prometheus-framework/src/modules/community/components/layouts/Community.vue.js +23 -83
  69. package/dist/prometheus-framework/src/modules/community/components/layouts/Community.vue.js.map +1 -1
  70. package/dist/prometheus-framework/src/modules/community/components/pages/BlogPost.vue.cjs +1 -1
  71. package/dist/prometheus-framework/src/modules/community/components/pages/BlogPost.vue.js +1 -1
  72. package/dist/prometheus-framework/src/modules/community/components/pages/Community.vue.cjs +1 -1
  73. package/dist/prometheus-framework/src/modules/community/components/pages/Community.vue.js +1 -1
  74. package/dist/prometheus-framework/src/modules/community/components/pages/CreateBlogPost.vue.cjs +1 -1
  75. package/dist/prometheus-framework/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
  76. package/dist/prometheus-framework/src/modules/community/components/sections/HotPosts.vue.cjs +1 -1
  77. package/dist/prometheus-framework/src/modules/community/components/sections/HotPosts.vue.js +5 -5
  78. package/dist/prometheus-framework/src/modules/events/components/blocks/CardEvent.vue.cjs +34 -25
  79. package/dist/prometheus-framework/src/modules/events/components/blocks/CardEvent.vue.cjs.map +1 -1
  80. package/dist/prometheus-framework/src/modules/events/components/blocks/CardEvent.vue.js +35 -26
  81. package/dist/prometheus-framework/src/modules/events/components/blocks/CardEvent.vue.js.map +1 -1
  82. package/dist/prometheus-framework/src/modules/events/components/pages/EditEvent.vue.cjs +2 -2
  83. package/dist/prometheus-framework/src/modules/events/components/pages/EditEvent.vue.js +2 -2
  84. package/dist/prometheus-framework/src/modules/events/components/pages/EditEventTickets.vue.cjs +1 -1
  85. package/dist/prometheus-framework/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
  86. package/dist/prometheus-framework/src/modules/events/components/pages/Event.vue.cjs +45 -38
  87. package/dist/prometheus-framework/src/modules/events/components/pages/Event.vue.cjs.map +1 -1
  88. package/dist/prometheus-framework/src/modules/events/components/pages/Event.vue.js +56 -49
  89. package/dist/prometheus-framework/src/modules/events/components/pages/Event.vue.js.map +1 -1
  90. package/dist/prometheus-framework/src/modules/events/components/pages/Events.vue.cjs +221 -50
  91. package/dist/prometheus-framework/src/modules/events/components/pages/Events.vue.cjs.map +1 -1
  92. package/dist/prometheus-framework/src/modules/events/components/pages/Events.vue.js +225 -54
  93. package/dist/prometheus-framework/src/modules/events/components/pages/Events.vue.js.map +1 -1
  94. package/dist/prometheus-framework/src/modules/events/components/sections/EventsHot.vue.cjs +98 -0
  95. package/dist/prometheus-framework/src/modules/events/components/sections/EventsHot.vue.cjs.map +1 -0
  96. package/dist/prometheus-framework/src/modules/events/components/sections/EventsHot.vue.js +98 -0
  97. package/dist/prometheus-framework/src/modules/events/components/sections/EventsHot.vue.js.map +1 -0
  98. package/dist/prometheus-framework/src/modules/events/components/sections/FeaturedEvents.vue.cjs +9 -9
  99. package/dist/prometheus-framework/src/modules/events/components/sections/FeaturedEvents.vue.cjs.map +1 -1
  100. package/dist/prometheus-framework/src/modules/events/components/sections/FeaturedEvents.vue.js +9 -9
  101. package/dist/prometheus-framework/src/modules/events/components/sections/FeaturedEvents.vue.js.map +1 -1
  102. package/dist/prometheus-framework/src/modules/events/components/sections/List.vue.cjs +1 -1
  103. package/dist/prometheus-framework/src/modules/events/components/sections/List.vue.cjs.map +1 -1
  104. package/dist/prometheus-framework/src/modules/events/components/sections/List.vue.js +1 -1
  105. package/dist/prometheus-framework/src/modules/events/components/sections/List.vue.js.map +1 -1
  106. package/dist/prometheus-framework/src/modules/events/events.client.cjs +1 -0
  107. package/dist/prometheus-framework/src/modules/events/events.client.cjs.map +1 -1
  108. package/dist/prometheus-framework/src/modules/events/events.client.js +1 -0
  109. package/dist/prometheus-framework/src/modules/events/events.client.js.map +1 -1
  110. package/dist/prometheus-framework/src/modules/events/router/events.cjs.map +1 -1
  111. package/dist/prometheus-framework/src/modules/events/router/events.js.map +1 -1
  112. package/dist/prometheus-framework/src/modules/events/store/events.cjs +2 -1
  113. package/dist/prometheus-framework/src/modules/events/store/events.cjs.map +1 -1
  114. package/dist/prometheus-framework/src/modules/events/store/events.js +2 -1
  115. package/dist/prometheus-framework/src/modules/events/store/events.js.map +1 -1
  116. package/dist/prometheus-framework/src/modules/gallery/components/pages/Gallery.vue.cjs +1 -1
  117. package/dist/prometheus-framework/src/modules/gallery/components/pages/Gallery.vue.js +1 -1
  118. package/dist/prometheus-framework/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +4 -4
  119. package/dist/prometheus-framework/src/modules/gallery/components/sections/BackofficeGallery.vue.js +4 -4
  120. package/dist/prometheus-framework/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +1 -1
  121. package/dist/prometheus-framework/src/modules/globals/views/components/blocks/CardHeader.vue.js +1 -1
  122. package/dist/prometheus-framework/src/modules/globals/views/components/layouts/App.vue.cjs +4 -4
  123. package/dist/prometheus-framework/src/modules/globals/views/components/layouts/App.vue.cjs.map +1 -1
  124. package/dist/prometheus-framework/src/modules/globals/views/components/layouts/App.vue.js +4 -4
  125. package/dist/prometheus-framework/src/modules/globals/views/components/layouts/App.vue.js.map +1 -1
  126. package/dist/prometheus-framework/src/modules/globals/views/components/layouts/Client.vue.cjs +11 -5
  127. package/dist/prometheus-framework/src/modules/globals/views/components/layouts/Client.vue.cjs.map +1 -1
  128. package/dist/prometheus-framework/src/modules/globals/views/components/layouts/Client.vue.js +11 -5
  129. package/dist/prometheus-framework/src/modules/globals/views/components/layouts/Client.vue.js.map +1 -1
  130. package/dist/prometheus-framework/src/modules/globals/views/components/partials/CitySelection.vue.cjs +100 -0
  131. package/dist/prometheus-framework/src/modules/globals/views/components/partials/CitySelection.vue.cjs.map +1 -0
  132. package/dist/prometheus-framework/src/modules/globals/views/components/partials/CitySelection.vue.js +100 -0
  133. package/dist/prometheus-framework/src/modules/globals/views/components/partials/CitySelection.vue.js.map +1 -0
  134. package/dist/prometheus-framework/src/modules/globals/views/components/partials/Header.vue.cjs +6 -7
  135. package/dist/prometheus-framework/src/modules/globals/views/components/partials/Header.vue.cjs.map +1 -1
  136. package/dist/prometheus-framework/src/modules/globals/views/components/partials/Header.vue.js +6 -7
  137. package/dist/prometheus-framework/src/modules/globals/views/components/partials/Header.vue.js.map +1 -1
  138. package/dist/prometheus-framework/src/modules/globals/views/components/partials/Sidebar.vue.cjs +1 -6
  139. package/dist/prometheus-framework/src/modules/globals/views/components/partials/Sidebar.vue.cjs.map +1 -1
  140. package/dist/prometheus-framework/src/modules/globals/views/components/partials/Sidebar.vue.js +1 -6
  141. package/dist/prometheus-framework/src/modules/globals/views/components/partials/Sidebar.vue.js.map +1 -1
  142. package/dist/prometheus-framework/src/modules/globals/views/mixins/mixins.cjs +30 -14
  143. package/dist/prometheus-framework/src/modules/globals/views/mixins/mixins.cjs.map +1 -1
  144. package/dist/prometheus-framework/src/modules/globals/views/mixins/mixins.js +30 -14
  145. package/dist/prometheus-framework/src/modules/globals/views/mixins/mixins.js.map +1 -1
  146. package/dist/prometheus-framework/src/modules/icons/actions/IconShopcartAdd.vue.cjs +33 -0
  147. package/dist/prometheus-framework/src/modules/icons/actions/IconShopcartAdd.vue.cjs.map +1 -0
  148. package/dist/prometheus-framework/src/modules/icons/actions/IconShopcartAdd.vue.js +33 -0
  149. package/dist/prometheus-framework/src/modules/icons/actions/IconShopcartAdd.vue.js.map +1 -0
  150. package/dist/prometheus-framework/src/modules/icons/entities/IconCommunity.vue.cjs +4 -17
  151. package/dist/prometheus-framework/src/modules/icons/entities/IconCommunity.vue.cjs.map +1 -1
  152. package/dist/prometheus-framework/src/modules/icons/entities/IconCommunity.vue.js +4 -17
  153. package/dist/prometheus-framework/src/modules/icons/entities/IconCommunity.vue.js.map +1 -1
  154. package/dist/prometheus-framework/src/modules/icons/entities/IconPayments.vue.cjs +34 -0
  155. package/dist/prometheus-framework/src/modules/icons/entities/IconPayments.vue.cjs.map +1 -0
  156. package/dist/prometheus-framework/src/modules/icons/entities/IconPayments.vue.js +34 -0
  157. package/dist/prometheus-framework/src/modules/icons/entities/IconPayments.vue.js.map +1 -0
  158. package/dist/prometheus-framework/src/modules/icons/entities/IconPrice.vue.cjs +27 -17
  159. package/dist/prometheus-framework/src/modules/icons/entities/IconPrice.vue.cjs.map +1 -1
  160. package/dist/prometheus-framework/src/modules/icons/entities/IconPrice.vue.js +28 -18
  161. package/dist/prometheus-framework/src/modules/icons/entities/IconPrice.vue.js.map +1 -1
  162. package/dist/prometheus-framework/src/modules/icons/icons.client.cjs +2 -0
  163. package/dist/prometheus-framework/src/modules/icons/icons.client.cjs.map +1 -1
  164. package/dist/prometheus-framework/src/modules/icons/icons.client.js +50 -48
  165. package/dist/prometheus-framework/src/modules/icons/icons.client.js.map +1 -1
  166. package/dist/prometheus-framework/src/modules/orders/components/blocks/CardOrderItem.vue.cjs +1 -1
  167. package/dist/prometheus-framework/src/modules/orders/components/blocks/CardOrderItem.vue.cjs.map +1 -1
  168. package/dist/prometheus-framework/src/modules/orders/components/blocks/CardOrderItem.vue.js +1 -1
  169. package/dist/prometheus-framework/src/modules/orders/components/blocks/CardOrderItem.vue.js.map +1 -1
  170. package/dist/prometheus-framework/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +1 -1
  171. package/dist/prometheus-framework/src/modules/orders/components/pages/OrderBackoffice.vue.js +1 -1
  172. package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +2 -2
  173. package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +2 -2
  174. package/dist/prometheus-framework/src/modules/orders/components/sections/FormAddCustomer.vue.cjs +1 -1
  175. package/dist/prometheus-framework/src/modules/orders/components/sections/FormAddCustomer.vue.js +1 -1
  176. package/dist/prometheus-framework/src/modules/orders/components/sections/FormCustomerDetails.vue.cjs +1 -1
  177. package/dist/prometheus-framework/src/modules/orders/components/sections/FormCustomerDetails.vue.js +1 -1
  178. package/dist/prometheus-framework/src/modules/orders/components/sections/FormPayment.vue.cjs +1 -1
  179. package/dist/prometheus-framework/src/modules/orders/components/sections/FormPayment.vue.js +1 -1
  180. package/dist/prometheus-framework/src/modules/orders/store/shopcart.cjs +67 -2
  181. package/dist/prometheus-framework/src/modules/orders/store/shopcart.cjs.map +1 -1
  182. package/dist/prometheus-framework/src/modules/orders/store/shopcart.js +67 -2
  183. package/dist/prometheus-framework/src/modules/orders/store/shopcart.js.map +1 -1
  184. package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardOrganization.vue.cjs +1 -1
  185. package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardOrganization.vue.js +7 -7
  186. package/dist/prometheus-framework/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +2 -2
  187. package/dist/prometheus-framework/src/modules/organizations/components/pages/DepartmentEdit.vue.js +2 -2
  188. package/dist/prometheus-framework/src/modules/organizations/components/pages/Members.vue.cjs +1 -1
  189. package/dist/prometheus-framework/src/modules/organizations/components/pages/Members.vue.js +1 -1
  190. package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +2 -2
  191. package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationEdit.vue.js +2 -2
  192. package/dist/prometheus-framework/src/modules/organizations/components/pages/Organizations.vue.cjs +1 -1
  193. package/dist/prometheus-framework/src/modules/organizations/components/pages/Organizations.vue.cjs.map +1 -1
  194. package/dist/prometheus-framework/src/modules/organizations/components/pages/Organizations.vue.js +1 -1
  195. package/dist/prometheus-framework/src/modules/organizations/components/pages/Organizations.vue.js.map +1 -1
  196. package/dist/prometheus-framework/src/modules/organizations/components/sections/DetailsTabSection.vue.cjs +2 -2
  197. package/dist/prometheus-framework/src/modules/organizations/components/sections/DetailsTabSection.vue.js +2 -2
  198. package/dist/prometheus-framework/src/modules/organizations/components/sections/Documents.vue.cjs +1 -1
  199. package/dist/prometheus-framework/src/modules/organizations/components/sections/Documents.vue.js +1 -1
  200. package/dist/prometheus-framework/src/modules/organizations/components/sections/MembersAdd.vue.cjs +1 -1
  201. package/dist/prometheus-framework/src/modules/organizations/components/sections/MembersAdd.vue.js +1 -1
  202. package/dist/prometheus-framework/src/modules/organizations/components/sections/Organizations.vue.cjs +1 -1
  203. package/dist/prometheus-framework/src/modules/organizations/components/sections/Organizations.vue.js +1 -1
  204. package/dist/prometheus-framework/src/modules/pages/pages.client.cjs +821 -789
  205. package/dist/prometheus-framework/src/modules/pages/pages.client.js +821 -789
  206. package/dist/prometheus-framework/src/modules/pages/views/components/partials/SidebarPages.vue.cjs +1 -1
  207. package/dist/prometheus-framework/src/modules/pages/views/components/partials/SidebarPages.vue.js +1 -1
  208. package/dist/prometheus-framework/src/modules/products/components/blocks/CardPosition.vue.cjs +1 -1
  209. package/dist/prometheus-framework/src/modules/products/components/blocks/CardPosition.vue.js +1 -1
  210. package/dist/prometheus-framework/src/modules/products/components/blocks/CardProduct.vue.cjs +4 -15
  211. package/dist/prometheus-framework/src/modules/products/components/blocks/CardProduct.vue.cjs.map +1 -1
  212. package/dist/prometheus-framework/src/modules/products/components/blocks/CardProduct.vue.js +4 -15
  213. package/dist/prometheus-framework/src/modules/products/components/blocks/CardProduct.vue.js.map +1 -1
  214. package/dist/prometheus-framework/src/modules/products/components/blocks/ImagesThumbnails.vue.cjs +4 -4
  215. package/dist/prometheus-framework/src/modules/products/components/blocks/ImagesThumbnails.vue.cjs.map +1 -1
  216. package/dist/prometheus-framework/src/modules/products/components/blocks/ImagesThumbnails.vue.js +4 -4
  217. package/dist/prometheus-framework/src/modules/products/components/blocks/ImagesThumbnails.vue.js.map +1 -1
  218. package/dist/prometheus-framework/src/modules/products/components/elements/Price.vue.cjs +24 -30
  219. package/dist/prometheus-framework/src/modules/products/components/elements/Price.vue.cjs.map +1 -1
  220. package/dist/prometheus-framework/src/modules/products/components/elements/Price.vue.js +25 -31
  221. package/dist/prometheus-framework/src/modules/products/components/elements/Price.vue.js.map +1 -1
  222. package/dist/prometheus-framework/src/modules/products/components/pages/Categories.vue.cjs +1 -1
  223. package/dist/prometheus-framework/src/modules/products/components/pages/Categories.vue.js +1 -1
  224. package/dist/prometheus-framework/src/modules/products/components/pages/CategoryEdit.vue.cjs +2 -2
  225. package/dist/prometheus-framework/src/modules/products/components/pages/CategoryEdit.vue.js +2 -2
  226. package/dist/prometheus-framework/src/modules/products/components/pages/EditLeftover.vue.cjs +2 -2
  227. package/dist/prometheus-framework/src/modules/products/components/pages/EditLeftover.vue.js +2 -2
  228. package/dist/prometheus-framework/src/modules/products/components/pages/Product.vue.cjs +236 -13
  229. package/dist/prometheus-framework/src/modules/products/components/pages/Product.vue.cjs.map +1 -1
  230. package/dist/prometheus-framework/src/modules/products/components/pages/Product.vue.js +239 -16
  231. package/dist/prometheus-framework/src/modules/products/components/pages/Product.vue.js.map +1 -1
  232. package/dist/prometheus-framework/src/modules/products/components/pages/ProductEdit.vue.cjs +2 -2
  233. package/dist/prometheus-framework/src/modules/products/components/pages/ProductEdit.vue.js +2 -2
  234. package/dist/prometheus-framework/src/modules/products/components/sections/EditProductInfo.vue.cjs +1 -1
  235. package/dist/prometheus-framework/src/modules/products/components/sections/EditProductInfo.vue.js +1 -1
  236. package/dist/prometheus-framework/src/modules/products/components/sections/SectionProduct.vue.cjs +60 -14
  237. package/dist/prometheus-framework/src/modules/products/components/sections/SectionProduct.vue.cjs.map +1 -1
  238. package/dist/prometheus-framework/src/modules/products/components/sections/SectionProduct.vue.js +67 -21
  239. package/dist/prometheus-framework/src/modules/products/components/sections/SectionProduct.vue.js.map +1 -1
  240. package/dist/prometheus-framework/src/modules/products/products.client.cjs +0 -3
  241. package/dist/prometheus-framework/src/modules/products/products.client.cjs.map +1 -1
  242. package/dist/prometheus-framework/src/modules/products/products.client.js +48 -51
  243. package/dist/prometheus-framework/src/modules/products/products.client.js.map +1 -1
  244. package/dist/prometheus-framework/src/modules/reports/components/sections/FormReport.vue.cjs +2 -2
  245. package/dist/prometheus-framework/src/modules/reports/components/sections/FormReport.vue.js +2 -2
  246. package/dist/prometheus-framework/src/modules/spots/components/blocks/CardSpot.vue.cjs +1 -1
  247. package/dist/prometheus-framework/src/modules/spots/components/blocks/CardSpot.vue.js +1 -1
  248. package/dist/prometheus-framework/src/modules/spots/components/blocks/SpotMemberModify.vue.cjs +1 -1
  249. package/dist/prometheus-framework/src/modules/spots/components/blocks/SpotMemberModify.vue.js +1 -1
  250. package/dist/prometheus-framework/src/modules/spots/components/layouts/Spots.vue.cjs +1 -1
  251. package/dist/prometheus-framework/src/modules/spots/components/layouts/Spots.vue.js +1 -1
  252. package/dist/prometheus-framework/src/modules/spots/components/pages/SpotEdit.vue.cjs +2 -2
  253. package/dist/prometheus-framework/src/modules/spots/components/pages/SpotEdit.vue.js +2 -2
  254. package/dist/prometheus-framework/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.cjs +1 -1
  255. package/dist/prometheus-framework/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +1 -1
  256. package/dist/prometheus-framework/src/modules/wallet/views/components/pages/Wallet.vue.cjs +4 -4
  257. package/dist/prometheus-framework/src/modules/wallet/views/components/pages/Wallet.vue.js +4 -4
  258. package/dist/prometheus-framework.cjs.js +1 -92
  259. package/dist/prometheus-framework.es.js +36 -13005
  260. package/package.json +1 -1
  261. package/src/components/Button/Button.vue +43 -40
  262. package/src/components/DatePicker/Calendar.vue +15 -7
  263. package/src/components/DatePicker/DatePicker.vue +50 -40
  264. package/src/components/EmptyState/EmptyState.vue +2 -2
  265. package/src/components/Feed/Feed.vue +6 -2
  266. package/src/components/Media/Media.vue +211 -0
  267. package/src/components/Popup/Popup.vue +19 -21
  268. package/src/components/Slider/Slider.vue +57 -21
  269. package/src/components/index.js +1 -0
  270. package/src/main.js +3 -1
  271. package/src/modules/auth/views/components/pages/Profile.vue +2 -1
  272. package/src/modules/backoffice/backoffice.client.js +0 -2
  273. package/src/modules/backoffice/components/pages/Dashboard.vue +95 -2
  274. package/src/modules/backoffice/components/partials/Sidebar.vue +115 -132
  275. package/src/modules/backoffice/router/backoffice.js +0 -14
  276. package/src/modules/community/components/layouts/Community.vue +1 -52
  277. package/src/modules/events/components/blocks/CardEvent.vue +28 -22
  278. package/src/modules/events/components/pages/Event.vue +11 -8
  279. package/src/modules/events/components/pages/Events.vue +241 -56
  280. package/src/modules/events/components/sections/EventsHot.vue +93 -0
  281. package/src/modules/events/components/sections/FeaturedEvents.vue +17 -15
  282. package/src/modules/events/components/sections/List.vue +1 -1
  283. package/src/modules/events/events.client.js +1 -0
  284. package/src/modules/events/router/events.js +0 -4
  285. package/src/modules/events/store/events.js +1 -0
  286. package/src/modules/globals/views/components/layouts/App.vue +4 -5
  287. package/src/modules/globals/views/components/layouts/Client.vue +8 -2
  288. package/src/modules/globals/views/components/partials/CitySelection.vue +88 -0
  289. package/src/modules/globals/views/components/partials/Header.vue +3 -3
  290. package/src/modules/globals/views/components/partials/Navigation.vue +75 -20
  291. package/src/modules/globals/views/components/partials/Sidebar.vue +2 -9
  292. package/src/modules/globals/views/mixins/mixins.js +56 -35
  293. package/src/modules/governance/DESCRIPTION.MD +238 -0
  294. package/src/modules/governance/controllers/factories/initiatives.controller.js +3 -1
  295. package/src/modules/governance/controllers/routes/initiatives.routes.js +1 -1
  296. package/src/modules/governance/controllers/routes/tasks.routes.js +1 -1
  297. package/src/modules/governance/controllers/routes/votes.routes.js +1 -1
  298. package/src/modules/governance/controllers/routes/votings.routes.js +1 -1
  299. package/src/modules/governance/governance.client.js +35 -35
  300. package/src/modules/governance/governance.server.js +8 -8
  301. package/src/modules/governance/models/milestone.model.js +98 -0
  302. package/src/modules/governance/models/task.model.js +39 -7
  303. package/src/modules/governance/views/components/pages/Initiative.vue +1 -1
  304. package/src/modules/governance/views/components/pages/InitiativeCreate.vue +2 -2
  305. package/src/modules/governance/views/components/pages/Initiatives.vue +3 -2
  306. package/src/modules/governance/views/components/pages/Task.vue +1 -1
  307. package/src/modules/governance/views/components/pages/TaskCreate.vue +2 -2
  308. package/src/modules/governance/views/components/pages/Tasks.vue +2 -2
  309. package/src/modules/governance/views/components/pages/Voting.vue +3 -3
  310. package/src/modules/governance/views/components/pages/VotingCreate.vue +2 -2
  311. package/src/modules/governance/views/components/pages/Votings.vue +2 -2
  312. package/src/modules/governance/views/components/sections/VoteForm.vue +1 -1
  313. package/src/modules/governance/views/router/goverance.router.js +263 -0
  314. package/src/modules/icons/actions/IconShopcartAdd.vue +15 -0
  315. package/src/modules/icons/entities/IconCommunity.vue +4 -6
  316. package/src/modules/icons/entities/IconPayments.vue +14 -0
  317. package/src/modules/icons/entities/IconPrice.vue +12 -3
  318. package/src/modules/icons/icons.client.js +5 -0
  319. package/src/modules/icons/logos/Logotype.vue +50 -17
  320. package/src/modules/orders/components/blocks/CardOrderItem.vue +2 -0
  321. package/src/modules/orders/store/shopcart.js +100 -1
  322. package/src/modules/organizations/components/pages/Organizations.vue +1 -1
  323. package/src/modules/products/components/blocks/CardProduct.vue +5 -11
  324. package/src/modules/products/components/blocks/ImagesThumbnails.vue +4 -4
  325. package/src/modules/products/components/elements/Price.vue +33 -56
  326. package/src/modules/products/components/pages/Product.vue +235 -13
  327. package/src/modules/products/components/sections/SectionProduct.vue +50 -25
  328. package/src/modules/products/products.client.js +0 -4
  329. package/src/styles/base/all.scss +15 -16
  330. package/src/styles/config.scss +2 -2
  331. package/src/modules/backoffice/components/layouts/Backoffice.vue +0 -55
  332. package/src/modules/events/components/sections/SectionLineup.vue +0 -42
  333. package/src/modules/events/components/sections/SectionMainGuest.vue +0 -95
  334. package/src/modules/events/components/sections/SectionPreviousEvents.vue +0 -117
  335. package/src/modules/events/components/sections/SectionSpecialGuests.vue +0 -46
  336. package/src/modules/governance/controllers/factories/projects.controller.js +0 -65
  337. package/src/modules/governance/controllers/routes/projects.routes.js +0 -34
  338. package/src/modules/governance/models/project.model.js +0 -26
@@ -1,15 +1,61 @@
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");
5
+ const Popup = require("../../../../components/Popup/Popup.vue.cjs");
6
+ const Tab = require("../../../../components/Tab/Tab.vue.cjs");
7
+ const Calendar = require("../../../../components/DatePicker/Calendar.vue2.cjs");
8
+ const IconEdit = require("../../../icons/navigation/IconEdit.vue.cjs");
9
+ const IconShopcartAdd = require("../../../icons/actions/IconShopcartAdd.vue.cjs");
10
+ const PlaceholderImage = require("../../../icons/placeholders/PlaceholderImage.vue.cjs");
11
+ const Images360 = require("../blocks/Images360.vue.cjs");
12
+ const ImagesThumbnails = require("../blocks/ImagesThumbnails.vue.cjs");
13
+ const Price = require("../elements/Price.vue.cjs");
4
14
  const PopularProducts = require("../sections/PopularProducts.vue.cjs");
5
- const SectionProduct = require("../sections/SectionProduct.vue.cjs");
15
+ ;/* empty css */
6
16
  const vueRouter = require("vue-router");
7
17
  const vueI18n = require("vue-i18n");
8
- const auth = require("../../../auth/views/store/auth.cjs");
18
+ const shopcart = require("../../../orders/store/shopcart.cjs");
19
+ require("../../../auth/views/store/auth.cjs");
9
20
  const products = require("../../store/products.cjs");
10
21
  require("../../store/categories.cjs");
11
- const _hoisted_1 = { class: "h-100 w-100 bg-white" };
12
- const _hoisted_2 = { class: "h-max pos-relative" };
22
+ const _hoisted_1 = { class: "h-100 w-100 mobile:pd-thin pd-big bg-white" };
23
+ const _hoisted_2 = { class: "cols-2-1_2 w-100 gap-medium" };
24
+ const _hoisted_3 = { class: "w-100 o-hidden bg-light radius-big flex-nowrap flex-column flex pos-relative" };
25
+ const _hoisted_4 = { class: "pd-semi w-100 bg-light radius-semi o-hidden" };
26
+ const _hoisted_5 = ["src"];
27
+ const _hoisted_6 = { class: "pos-relative w-100 h-100 flex-column flex-h-center flex" };
28
+ const _hoisted_7 = { class: "w-100 h1-product mn-b-small" };
29
+ const _hoisted_8 = {
30
+ key: 1,
31
+ class: "h-min-5r o-hidden radius-small bg-light mn-b-medium pos-relative"
32
+ };
33
+ const _hoisted_9 = {
34
+ key: 0,
35
+ class: "pd-medium"
36
+ };
37
+ const _hoisted_10 = {
38
+ key: 0,
39
+ class: "w-100 t-transp"
40
+ };
41
+ const _hoisted_11 = {
42
+ key: 1,
43
+ class: "w-100 t-transp"
44
+ };
45
+ const _hoisted_12 = {
46
+ key: 1,
47
+ class: "cols-2 pd-medium w-100 gap-small"
48
+ };
49
+ const _hoisted_13 = { class: "w-100 pd-small radius-small bg-white product-information" };
50
+ const _hoisted_14 = { class: "t-demi" };
51
+ const _hoisted_15 = { class: "w-max-33r" };
52
+ const _hoisted_16 = { class: "gap-thin flex flex-center flex-nowrap" };
53
+ const _hoisted_17 = {
54
+ key: 1,
55
+ class: "flex-center flex uppercase radius-big t-black w-max pd-small t-medium bg-grey h-3r w-100 mn-r-smallbutton"
56
+ };
57
+ const _hoisted_18 = { class: "gap-thin flex flex-center flex-nowrap" };
58
+ const _hoisted_19 = { class: "h-max pos-relative" };
13
59
  const _sfc_main = {
14
60
  __name: "Product",
15
61
  setup(__props) {
@@ -18,23 +64,200 @@ const _sfc_main = {
18
64
  route.meta.title.en = products.state.current.name;
19
65
  route.meta.title.ru = products.state.current.name;
20
66
  const product = vue.computed(() => products.state.current);
67
+ const images = vue.computed(() => products.state.current.images);
68
+ let rentDate = vue.ref({
69
+ start: null,
70
+ end: null
71
+ });
72
+ const tabProduct = vue.ref("description");
21
73
  const text = {
22
- messages: {}
74
+ en: {
75
+ addtoorder: "Add to Cart",
76
+ fastorder: "Fast Order"
77
+ },
78
+ ru: {
79
+ addtoorder: "Добавить в корзину",
80
+ fastorder: "Быстрый заказ"
81
+ }
23
82
  };
83
+ const { t } = vueI18n.useI18n({ messages: text });
24
84
  vue.onMounted(async () => {
25
85
  await products.actions.read({ _id: route.params.product });
26
86
  });
27
- vueI18n.useI18n(text);
87
+ function validateToCard(product2) {
88
+ if (product2.quantity > 0) {
89
+ return false;
90
+ }
91
+ return true;
92
+ }
93
+ const isPopupVisible = vue.ref(false);
94
+ const openPopup = () => {
95
+ isPopupVisible.value = true;
96
+ };
97
+ const closePopup = () => {
98
+ isPopupVisible.value = false;
99
+ };
100
+ async function addToCart(product2) {
101
+ try {
102
+ if (shopcart.state.organization !== product2.owner.target) {
103
+ shopcart.state.organization = product2.owner.target;
104
+ shopcart.state.positions = [];
105
+ }
106
+ await shopcart.actions.addProductToCart(product2, product2.owner.target, rentDate);
107
+ return true;
108
+ } catch (error) {
109
+ console.error("Ошибка при добавлении товара в корзину:", error);
110
+ throw error;
111
+ }
112
+ }
28
113
  return (_ctx, _cache) => {
29
114
  return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
30
- product.value ? (vue.openBlock(), vue.createBlock(SectionProduct.default, {
31
- key: 0,
32
- product: product.value,
33
- user: auth.state.user,
34
- class: "pos-relative"
35
- }, null, 8, ["product", "user"])) : vue.createCommentVNode("", true),
36
115
  vue.createElementVNode("div", _hoisted_2, [
37
- _cache[0] || (_cache[0] = vue.createElementVNode("h3", { class: "pd-medium pd-b-small" }, "Most Popular", -1)),
116
+ vue.createElementVNode("div", _hoisted_3, [
117
+ vue.createElementVNode("div", _hoisted_4, [
118
+ product.value && product.value.image3d ? (vue.openBlock(), vue.createBlock(Images360.default, {
119
+ key: 0,
120
+ class: "h-100 w-100",
121
+ imagePath: `/assets/images/products/${product.value.image3d}`,
122
+ imageCount: 36
123
+ }, null, 8, ["imagePath"])) : vue.createCommentVNode("", true),
124
+ images.value[0] && !product.value.image3d ? (vue.openBlock(), vue.createElementBlock("img", {
125
+ key: 1,
126
+ loading: "lazy",
127
+ class: "h-max h-max-15r bg-white radius-semi w-100",
128
+ style: { "object-fit": "contain" },
129
+ src: (_ctx.FILE_SERVER_URL || "") + images.value[0]
130
+ }, null, 8, _hoisted_5)) : vue.createCommentVNode("", true),
131
+ !images.value[0] && !product.value.image3d ? (vue.openBlock(), vue.createBlock(PlaceholderImage.default, {
132
+ key: 2,
133
+ class: "h-max-20r h-100 w-100",
134
+ style: { "object-fit": "cover" }
135
+ })) : vue.createCommentVNode("", true)
136
+ ]),
137
+ images.value.length > 1 ? (vue.openBlock(), vue.createBlock(ImagesThumbnails.default, {
138
+ key: 0,
139
+ images: images.value,
140
+ class: "pd-semi pd-t-zero"
141
+ }, null, 8, ["images"])) : vue.createCommentVNode("", true)
142
+ ]),
143
+ vue.createElementVNode("div", _hoisted_6, [
144
+ _ctx.accesses && _ctx.hasAccess(vue.unref(route).params._id, "products", "edit", _ctx.accesses) ? (vue.openBlock(), vue.createBlock(IconEdit.default, {
145
+ key: 0,
146
+ onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$router.push({
147
+ name: "ProductEdit",
148
+ params: {
149
+ _id: product.value.owner.target,
150
+ product: product.value._id
151
+ }
152
+ })),
153
+ class: "pos-absolute pos-t-regular pos-r-regular i-regular t-transp"
154
+ })) : vue.createCommentVNode("", true),
155
+ vue.createElementVNode("h2", _hoisted_7, vue.toDisplayString(product.value.name), 1),
156
+ vue.createVNode(Price.default, {
157
+ product: product.value,
158
+ size: "big",
159
+ class: "flex gap-thin flex-center pd-thin br-solid br-1px br-black-transp-10 w-max mn-b-medium"
160
+ }, null, 8, ["product"]),
161
+ product.value.description || product.value.specification ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_8, [
162
+ vue.createVNode(Tab.default, {
163
+ selected: tabProduct.value,
164
+ "onUpdate:selected": _cache[1] || (_cache[1] = ($event) => tabProduct.value = $event),
165
+ tabs: [
166
+ { name: "Description", value: "description" },
167
+ { name: "Specifications", value: "specifications" }
168
+ ],
169
+ tabClass: "pd-thin bg-white radius-thin p-small uppercase t-medium",
170
+ class: "gap-micro bg-light pos-relative z-index-2 pd-thin br-solid br-b br-black-transp-10"
171
+ }, null, 8, ["selected"]),
172
+ vue.createVNode(vue.Transition, { name: "slide-fade" }, {
173
+ default: vue.withCtx(() => [
174
+ tabProduct.value === "description" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_9, [
175
+ product.value.description && !product.value.localization < 1 && !_ctx.recommendation ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_10, vue.toDisplayString(product.value.description), 1)) : vue.createCommentVNode("", true),
176
+ product.value.localization && product.value.localization.length > 1 && !_ctx.recommendation ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_11, vue.toDisplayString(vue.unref(t)("description")), 1)) : vue.createCommentVNode("", true)
177
+ ])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_12, [
178
+ product.value.information.length > 0 ? (vue.openBlock(true), vue.createElementBlock(vue.Fragment, { key: 0 }, vue.renderList(product.value.information, (information) => {
179
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_13, [
180
+ vue.createElementVNode("p", _hoisted_14, vue.toDisplayString(information.name), 1),
181
+ vue.createElementVNode("p", null, vue.toDisplayString(information.value), 1)
182
+ ]);
183
+ }), 256)) : vue.createCommentVNode("", true)
184
+ ]))
185
+ ]),
186
+ _: 1
187
+ })
188
+ ])) : vue.createCommentVNode("", true),
189
+ vue.createElementVNode("div", _hoisted_15, [
190
+ product.value.quantity > 0 || product.value.listing === "rent" ? (vue.openBlock(), vue.createElementBlock("button", {
191
+ key: 0,
192
+ onClick: _cache[2] || (_cache[2] = ($event) => product.value.listing === "rent" ? openPopup() : addToCart(product.value)),
193
+ class: "cursor-pointer pd-small radius-big w-max mobile:w-100 bg-main button"
194
+ }, [
195
+ vue.createElementVNode("div", _hoisted_16, [
196
+ product.value.listing === "rent" ? (vue.openBlock(), vue.createBlock(IconShopcartAdd.default, {
197
+ key: 0,
198
+ class: "i-semi"
199
+ })) : vue.createCommentVNode("", true),
200
+ vue.createElementVNode("span", null, vue.toDisplayString(vue.unref(t)("addtoorder")), 1)
201
+ ])
202
+ ])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_17, " Out of Stock "))
203
+ ]),
204
+ vue.createVNode(Popup.default, {
205
+ onClosePopup: closePopup,
206
+ isPopupOpen: isPopupVisible.value,
207
+ class: "radius-medium pd-medium bg-white o-hidden"
208
+ }, {
209
+ default: vue.withCtx(() => [
210
+ _cache[3] || (_cache[3] = vue.createElementVNode("h5", { class: "w-100 t-center mn-b-small" }, "Select Rent Period", -1)),
211
+ vue.createVNode(Calendar.default, {
212
+ date: vue.unref(rentDate),
213
+ allowRange: true,
214
+ class: "bg-light radius-small"
215
+ }, null, 8, ["date"]),
216
+ _cache[4] || (_cache[4] = vue.createElementVNode("p", { class: "flex flex-nowrap pd-t-small" }, [
217
+ vue.createElementVNode("span", { class: "w-100 t-transp" }, "$ 400 x 4 days"),
218
+ vue.createElementVNode("span", { class: "w-100 t-right" }, "$2000")
219
+ ], -1)),
220
+ _cache[5] || (_cache[5] = vue.createElementVNode("p", { class: "flex flex-nowrap pd-t-small" }, [
221
+ vue.createElementVNode("span", { class: "w-100 t-transp" }, "Insurance Fee"),
222
+ vue.createElementVNode("span", { class: "w-100 t-right" }, "$200")
223
+ ], -1)),
224
+ _cache[6] || (_cache[6] = vue.createElementVNode("p", { class: "flex flex-nowrap br-black-transp-10 br-solid br-b pd-b-small pd-t-small" }, [
225
+ vue.createElementVNode("span", { class: "w-100 t-transp" }, "VAT (20%)"),
226
+ vue.createElementVNode("span", { class: "w-100 t-right" }, "$300")
227
+ ], -1)),
228
+ _cache[7] || (_cache[7] = vue.createElementVNode("p", { class: "p-big flex flex-nowrap pd-b-small pd-t-small" }, [
229
+ vue.createElementVNode("span", { class: "w-100 t-medium" }, "In Total"),
230
+ vue.createElementVNode("span", { class: "w-100 t-main t-medium t-right" }, "$2500")
231
+ ], -1)),
232
+ product.value.quantity > 0 || product.value.listing === "rent" ? (vue.openBlock(), vue.createBlock(Button.default, {
233
+ key: 0,
234
+ submit: () => addToCart(product.value),
235
+ callback: () => closePopup(),
236
+ disabled: product.value.listing !== "rent" && validateToCard(product.value),
237
+ text: {
238
+ success: "Added",
239
+ error: "Error"
240
+ },
241
+ class: "h-3r w-100 bg-main button"
242
+ }, {
243
+ default: vue.withCtx(() => [
244
+ vue.createElementVNode("div", _hoisted_18, [
245
+ product.value.listing === "rent" ? (vue.openBlock(), vue.createBlock(IconShopcartAdd.default, {
246
+ key: 0,
247
+ class: "i-semi"
248
+ })) : vue.createCommentVNode("", true),
249
+ vue.createElementVNode("span", null, vue.toDisplayString(vue.unref(t)("addtoorder")), 1)
250
+ ])
251
+ ]),
252
+ _: 1
253
+ }, 8, ["submit", "callback", "disabled"])) : vue.createCommentVNode("", true)
254
+ ]),
255
+ _: 1
256
+ }, 8, ["isPopupOpen"])
257
+ ])
258
+ ]),
259
+ vue.createElementVNode("div", _hoisted_19, [
260
+ _cache[8] || (_cache[8] = vue.createElementVNode("h3", { class: "pd-medium pd-b-small" }, "Most Popular", -1)),
38
261
  vue.createVNode(PopularProducts.default)
39
262
  ])
40
263
  ]);
@@ -1 +1 @@
1
- {"version":3,"file":"Product.vue.cjs","sources":["../../../../../../../src/modules/products/components/pages/Product.vue"],"sourcesContent":["<template>\n\t<div class=\"h-100 w-100 bg-white \">\n\t\t<!-- <Breadcrumbs class=\"bg-light radius-big pd-small\"/> -->\n\t\t<SectionProduct v-if=\"product\" :product=\"product\" :user=\"auth.state.user\" class=\"pos-relative\"/>\n\n\t\t<div class=\"h-max pos-relative\">\n\t\t <h3 class=\"pd-medium pd-b-small\">Most Popular</h3>\n\t\t\t<PopularProducts />\n\t\t</div>\n\t</div>\n</template>\n\n<script setup=\"props\">\n\t// Import components\n\t// import Breadcrumbs from '@pf/src/components/Breadcrumbs/Breadcrumbs.vue'\n\timport PopularProducts \tfrom '@pf/src/modules/products/components/sections/PopularProducts.vue'\n\timport SectionProduct from '@pf/src/modules/products/components/sections/SectionProduct.vue'\n\t// Import libs\n\timport { computed, onMounted } from 'vue'\n\timport { useRoute,useRouter } from 'vue-router'\n\timport { useI18n } from 'vue-i18n'\n\t\n import * as auth from '@pf/src/modules/auth/views/store/auth';\n \timport * as products from '@pf/src/modules/products/store/products';\n import * as categories from '@pf/src/modules/products/store/categories';\n\n\t// Accessing router and store\n\tconst route = useRoute()\n\tconst router = useRouter()\n\n\t\n\troute.meta.title.en = products.state.current.name\n\troute.meta.title.ru = products.state.current.name\n\n\t// Accessing state\n\tconst product = computed(() => products.state.current)\n\n\tconst text = {\n\t\tmessages: {\n\t\t}\n\t};\n\n\tonMounted(async ()=> {\n\t\tawait products.actions.read({_id: route.params.product});\n\n\t})\n\t\n\t// products.state.current.localization.forEach(localization => {\n \t// if (localization) text.messages[localization.locale].description = localization.text\n\t// })\n\n const { t } = useI18n(text)\n</script>\n\n<style lang=\"scss\">\n</style>\n"],"names":["useRoute","useRouter","products.state","computed","onMounted","products.actions","useI18n"],"mappings":";;;;;;;;;;;;;;;AA2BC,UAAM,QAAQA,UAAAA,SAAU;AACTC,wBAAW;AAG1B,UAAM,KAAK,MAAM,KAAKC,SAAc,MAAC,QAAQ;AAC7C,UAAM,KAAK,MAAM,KAAKA,SAAc,MAAC,QAAQ;AAG7C,UAAM,UAAUC,IAAAA,SAAS,MAAMD,SAAAA,MAAe,OAAO;AAErD,UAAM,OAAO;AAAA,MACZ,UAAU,CACT;AAAA,IACH;AAECE,QAAAA,UAAU,YAAW;AACpB,YAAMC,SAAAA,QAAiB,KAAK,EAAC,KAAK,MAAM,OAAO,QAAO,CAAC;AAAA,IAEzD,CAAE;AAMcC,YAAAA,QAAQ,IAAI;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Product.vue.cjs","sources":["../../../../../../../src/modules/products/components/pages/Product.vue"],"sourcesContent":["<template>\n\t<div class=\"h-100 w-100 mobile:pd-thin pd-big bg-white \">\n\t\t<!-- <Breadcrumbs class=\"bg-light radius-big pd-small\"/> -->\n\t\t<div class=\"cols-2-1_2 w-100 gap-medium\">\n\t\t\n\t\t\t<div class=\"w-100 o-hidden bg-light radius-big flex-nowrap flex-column flex pos-relative\">\n\t\t\t\t<div class=\"pd-semi w-100 bg-light radius-semi o-hidden\">\n\t\t\t\t\t<!-- PRODUCT IMAGE -->\n\t\t\t\t\t<Images360\n\t\t\t\t\t\tv-if=\"product && product.image3d\"\n\t\t\t\t\t\tclass=\"h-100 w-100\"\n\t\t\t\t\t\t:imagePath=\"`/assets/images/products/${product.image3d}`\"\n\t\t\t\t\t\t:imageCount=\"36\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<img loading=\"lazy\" \n\t\t\t\t\t\tv-if=\"images[0] && !product.image3d\"\n\t\t\t\t\t\tclass=\"h-max h-max-15r bg-white radius-semi w-100\"\n\t\t\t\t\t\tstyle=\"object-fit: contain;\"\n\t\t\t\t\t\t:src=\"(FILE_SERVER_URL || '') + images[0]\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<PlaceholderImage\n\t\t\t\t\t\tv-if=\"!images[0] && !product.image3d\"\n\t\t\t\t\t\tclass=\"h-max-20r h-100 w-100\"\n\t\t\t\t\t\tstyle=\"object-fit: cover;\"\n\t\t\t\t\t/>\n\n\t\t\t\t</div>\n\n\t\t\t\t<ImagesThumbnails\n\t\t\t\t\tv-if=\"images.length > 1\"\n\t\t\t\t\t:images=\"images\"\n\t\t\t\t\tclass=\"pd-semi pd-t-zero\"\n\t\t\t\t/>\n\t\t\t</div>\n\n\t\t\t<div class=\"pos-relative w-100 h-100 flex-column flex-h-center flex\">\n\n\t\t\t\t<IconEdit\n\t\t\t\t\tv-if=\"accesses && hasAccess(route.params._id, 'products', 'edit', accesses)\"\n\t\t\t\t\t@click=\"$router.push({\n\t\t\t\t\t\tname: 'ProductEdit', \n\t\t\t\t\t\tparams: {\n\t\t\t\t\t\t\t_id: product.owner.target,\n\t\t\t\t\t\t\tproduct: product._id\n\t\t\t\t\t\t}\n\t\t\t\t\t})\" \n\t\t\t\t\tclass=\"pos-absolute pos-t-regular pos-r-regular i-regular t-transp\"\n\t\t\t\t/>\n\n\t\t\t\t<!-- Name -->\n\t\t\t\t<h2 class=\"w-100 h1-product mn-b-small\">{{ product.name }}</h2>\n\n\t\t\t\t<Price :product=\"product\" size=\"big\" class=\"flex gap-thin flex-center pd-thin br-solid br-1px br-black-transp-10 w-max mn-b-medium\" />\n\n\t\t\t\t<!-- Price -->\n\t\t\t\t<div v-if=\"product.description || product.specification\" class=\"h-min-5r o-hidden radius-small bg-light mn-b-medium pos-relative\">\n\t\t\t\t\t<Tab \n\t\t\t\t\t\tv-model:selected=\"tabProduct\"\n\t\t\t\t\t\t:tabs=\"[\n\t\t\t\t\t\t\t{name: 'Description', value: 'description'},\n\t\t\t\t\t\t\t{name: 'Specifications', value: 'specifications'}\n\t\t\t\t\t\t]\"\n\t\t\t\t\t\ttabClass=\"pd-thin bg-white radius-thin p-small uppercase t-medium\"\n\t\t\t\t\t\tclass=\"gap-micro bg-light pos-relative z-index-2 pd-thin br-solid br-b br-black-transp-10\"\n\t\t\t\t\t/>\n\t\t\t\t\t<transition name=\"slide-fade\">\n\t\t\t\t\t\t<div v-if=\"tabProduct === 'description'\" class=\" pd-medium\">\n\t\t\t\t\t\t\t<p v-if=\"product.description && !product.localization < 1 && !recommendation\" class=\"w-100 t-transp\">\n\t\t\t\t\t\t\t\t{{ product.description }}\n\t\t\t\t\t\t\t</p>\n\n\t\t\t\t\t\t\t<p v-if=\"product.localization && product.localization.length > 1 && !recommendation\" class=\"w-100 t-transp\">\n\t\t\t\t\t\t\t\t{{ t('description') }}\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div \n\t\t\t\t\t\t\tv-else\n\t\t\t\t\t\t\tclass=\"cols-2 pd-medium w-100 gap-small\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div \n\t\t\t\t\t\t\t\tv-if=\"product.information.length > 0\" \n\t\t\t\t\t\t\t\tv-for=\"information in product.information\" \n\t\t\t\t\t\t\t\tclass=\"w-100 pd-small radius-small bg-white product-information\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<p class=\"t-demi\">{{ information.name }}</p>\n\t\t\t\t\t\t\t\t<p>{{ information.value }}</p>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</transition>\n\t\t\t\t</div>\n\n\t\t\t\t\t\t\t<!-- Modifications -->\n\t\t\t\t<!-- <div v-if=\"product.modifications.length > 0\" class=\"flex-nojustify flex\">\n\t\t\t\t\t<SelectElement v-if=\"sizes2.length > 0\" :elements=\"sizes2\" :selected=\"product.selectedSize\" class=\"mn-r-medium\" />\n\t\t\t\t</div> -->\n\n\t\t\t\t<!-- Actions -->\n\t\t\t\t<div class=\"w-max-33r\">\n\t\t\t\t <button\n\t\t\t\t v-if=\"product.quantity > 0 || product.listing === 'rent'\"\n\t\t\t\t @click=\"product.listing === 'rent' ? openPopup() : addToCart(product)\" \n\t\t\t\t class=\"cursor-pointer pd-small radius-big w-max mobile:w-100 bg-main button\"\n\t\t\t\t > \n\t\t\t\t <div class=\"gap-thin flex flex-center flex-nowrap\">\n\t\t\t\t <IconShopcartAdd v-if=\"product.listing === 'rent'\" class=\"i-semi\" />\n\t\t\t\t <span>{{ t('addtoorder') }}</span>\n\t\t\t\t </div>\n\t\t\t\t </button>\n\n\t\t\t\t <div \n\t\t\t\t v-else \n\t\t\t\t class=\"flex-center flex uppercase radius-big t-black w-max pd-small t-medium bg-grey h-3r w-100 mn-r-smallbutton\"\n\t\t\t\t >\n\t\t\t\t Out of Stock\n\t\t\t\t </div>\n\t\t\t\t</div>\n\t\t\t\t<!-- Shopcart Adding Popup -->\n\t\t\t\t<Popup @close-popup=\"closePopup\" :isPopupOpen=\"isPopupVisible\" class=\"radius-medium pd-medium bg-white o-hidden\">\n\t\t <h5 class=\"w-100 t-center mn-b-small\">Select Rent Period</h5>\n\t\t <Calendar\n\t\t \t:date=\"rentDate\"\n\t\t \t:allowRange=\"true\"\n\t\t \tclass=\"bg-light radius-small\"\n\t\t />\n\n\t\t <p class=\"flex flex-nowrap pd-t-small\">\n\t\t \t<span class=\"w-100 t-transp\">$ 400 x 4 days</span>\n\t\t \t<span class=\"w-100 t-right\">$2000</span>\n\t\t </p>\n\t\t <p class=\"flex flex-nowrap pd-t-small\">\n\t\t \t<span class=\"w-100 t-transp\">Insurance Fee</span>\n\t\t \t<span class=\"w-100 t-right\">$200</span>\n\t\t </p>\n\t\t <p class=\"flex flex-nowrap br-black-transp-10 br-solid br-b pd-b-small pd-t-small\">\n\t\t \t<span class=\"w-100 t-transp\">VAT (20%)</span>\n\t\t \t<span class=\"w-100 t-right\">$300</span>\n\t\t </p>\n\t\t \n\t\t \t<p class=\"p-big flex flex-nowrap pd-b-small pd-t-small\">\n\t\t \t<span class=\"w-100 t-medium \">In Total</span>\n\t\t \t<span class=\"w-100 t-main t-medium t-right\">$2500</span>\n\t \t</p>\n\n\t \t<Button\n\t\t\t\t v-if=\"product.quantity > 0 || product.listing === 'rent'\"\n\t\t\t\t :submit=\"() => addToCart(product)\" \n\t\t\t\t :callback=\"() => closePopup()\"\n\t\t\t\t :disabled=\"product.listing !== 'rent' && validateToCard(product)\"\n\t\t\t\t :text=\"{\n\t\t\t\t success: 'Added',\n\t\t\t\t error: 'Error'\n\t\t\t\t }\"\n\t\t\t\t class=\"h-3r w-100 bg-main button\"\n\t\t\t\t > \n\t\t\t\t <div class=\"gap-thin flex flex-center flex-nowrap\">\n\t\t\t\t <IconShopcartAdd v-if=\"product.listing === 'rent'\" class=\"i-semi\" />\n\t\t\t\t <span>{{ t('addtoorder') }}</span>\n\t\t\t\t </div>\n\t\t\t\t </Button>\n\t\t </Popup>\n\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=\"h-max pos-relative\">\n\t\t <h3 class=\"pd-medium pd-b-small\">Most Popular</h3>\n\t\t\t<PopularProducts />\n\t\t</div>\n\t</div>\n</template>\n\n<script setup=\"props\">\n\t// Import components\n\t// import Breadcrumbs from '@pf/src/components/Breadcrumbs/Breadcrumbs.vue'\n\timport Button from '@pf/src/components/Button/Button.vue'\n\timport Popup from '@pf/src/components/Popup/Popup.vue'\n\timport Tab from '@pf/src/components/Tab/Tab.vue'\n\timport Calendar from '@pf/src/components/DatePicker/Calendar.vue'\n\n\timport IconEdit from '@pf/src/modules/icons/navigation/IconEdit.vue'\n\timport IconShopcartAdd from '@pf/src/modules/icons/actions/IconShopcartAdd.vue'\n\n\timport PlaceholderImage from '@pf/src/modules/icons/placeholders/PlaceholderImage.vue'\n\n\timport Images360 \tfrom '@pf/src/modules/products/components/blocks/Images360.vue'\n\timport ImagesThumbnails from \"@pf/src/modules/products/components/blocks/ImagesThumbnails.vue\";\n\n\timport Price from '@pf/src/modules/products/components/elements/Price.vue'\n\n\timport PopularProducts \tfrom '@pf/src/modules/products/components/sections/PopularProducts.vue'\n\timport SectionProduct from '@pf/src/modules/products/components/sections/SectionProduct.vue'\n\t// Import libs\n\timport { computed, ref, onMounted } from 'vue'\n\timport { useRoute,useRouter } from 'vue-router'\n\timport { useI18n } from 'vue-i18n'\n\t\n import * as auth from '@pf/src/modules/auth/views/store/auth';\n \timport * as products from '@pf/src/modules/products/store/products';\n import * as categories from '@pf/src/modules/products/store/categories';\n\n\timport * as shopcart from '@pf/src/modules/orders/store/shopcart';\n\n\t// Accessing router and store\n\tconst route = useRoute()\n\tconst router = useRouter()\n\t\n\troute.meta.title.en = products.state.current.name\n\troute.meta.title.ru = products.state.current.name\n\n\t// Accessing state\n\tconst product = computed(() => products.state.current)\n\tconst images = computed(() => products.state.current.images)\n\n\tlet rentDate = ref({\n\t\tstart: null,\n\t\tend: null\n\t})\n\n\n\tconst tabProduct = ref('description')\n\n\tconst text = {\n\t en: {\n\t \taddtoorder: 'Add to Cart',\n\t fastorder: 'Fast Order'\n\t },\n\t ru: {\n\t \taddtoorder: 'Добавить в корзину',\n\t fastorder: 'Быстрый заказ'\n\t }\n\t}\n\n const { t } = useI18n({messages: text})\n\n\tonMounted(async ()=> {\n\t\tawait products.actions.read({_id: route.params.product});\n\t})\n\n\t// Methods\n\tfunction validateToCard(product) {\n\t if (product.quantity > 0) {\n\t return false\n\t }\n\t return true\n\t}\n\n\tconst isPopupVisible = ref(false);\n\n\tconst openPopup = () => {\n\t isPopupVisible.value = true;\n\t};\n\n\tconst closePopup = () => {\n\t isPopupVisible.value = false;\n\t};\n\n\tasync function addToCart(product) {\n try {\n if (shopcart.state.organization !== product.owner.target) {\n shopcart.state.organization = product.owner.target\n shopcart.state.positions = []\n }\n \n await shopcart.actions.addProductToCart(product, product.owner.target, rentDate)\n\n return true\n } catch (error) {\n console.error('Ошибка при добавлении товара в корзину:', error)\n throw error\n }\n\t}\n</script>\n\n<style lang=\"scss\">\n</style>\n"],"names":["useRoute","useRouter","products.state","computed","ref","useI18n","onMounted","products.actions","product","shopcart.state","shopcart.actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8MC,UAAM,QAAQA,UAAAA,SAAU;AACTC,wBAAW;AAE1B,UAAM,KAAK,MAAM,KAAKC,SAAc,MAAC,QAAQ;AAC7C,UAAM,KAAK,MAAM,KAAKA,SAAc,MAAC,QAAQ;AAG7C,UAAM,UAAUC,IAAAA,SAAS,MAAMD,SAAAA,MAAe,OAAO;AACrD,UAAM,SAASC,IAAQ,SAAC,MAAMD,SAAAA,MAAe,QAAQ,MAAM;AAE3D,QAAI,WAAWE,IAAAA,IAAI;AAAA,MAClB,OAAO;AAAA,MACP,KAAK;AAAA,IACP,CAAE;AAGD,UAAM,aAAaA,IAAG,IAAC,aAAa;AAEpC,UAAM,OAAO;AAAA,MACX,IAAI;AAAA,QACH,YAAY;AAAA,QACX,WAAW;AAAA,MACZ;AAAA,MACD,IAAI;AAAA,QACH,YAAY;AAAA,QACX,WAAW;AAAA,MACZ;AAAA,IACF;AAEA,UAAM,EAAE,EAAC,IAAKC,QAAAA,QAAQ,EAAC,UAAU,KAAI,CAAC;AAEvCC,QAAAA,UAAU,YAAW;AACpB,YAAMC,SAAAA,QAAiB,KAAK,EAAC,KAAK,MAAM,OAAO,QAAO,CAAC;AAAA,IACzD,CAAE;AAGD,aAAS,eAAeC,UAAS;AAC/B,UAAIA,SAAQ,WAAW,GAAG;AACxB,eAAO;AAAA,MACR;AACD,aAAO;AAAA,IACR;AAED,UAAM,iBAAiBJ,QAAI,KAAK;AAEhC,UAAM,YAAY,MAAM;AACtB,qBAAe,QAAQ;AAAA,IAC1B;AAEC,UAAM,aAAa,MAAM;AACvB,qBAAe,QAAQ;AAAA,IAC1B;AAEC,mBAAe,UAAUI,UAAS;AAC/B,UAAI;AACF,YAAIC,SAAc,MAAC,iBAAiBD,SAAQ,MAAM,QAAQ;AACxDC,mBAAAA,MAAe,eAAeD,SAAQ,MAAM;AAC5CC,mBAAc,MAAC,YAAY,CAAE;AAAA,QAC9B;AAED,cAAMC,SAAAA,QAAiB,iBAAiBF,UAASA,SAAQ,MAAM,QAAQ,QAAQ;AAE/E,eAAO;AAAA,MACR,SAAQ,OAAO;AACd,gBAAQ,MAAM,2CAA2C,KAAK;AAC9D,cAAM;AAAA,MACP;AAAA,IACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,13 +1,59 @@
1
- import { computed, onMounted, openBlock, createElementBlock, createBlock, createCommentVNode, createElementVNode, createVNode } from "vue";
2
- import _sfc_main$2 from "../sections/PopularProducts.vue.js";
3
- import _sfc_main$1 from "../sections/SectionProduct.vue.js";
1
+ import { computed, ref, onMounted, openBlock, createElementBlock, createElementVNode, createBlock, createCommentVNode, unref, toDisplayString, createVNode, Transition, withCtx, Fragment, renderList } from "vue";
2
+ import _sfc_main$7 from "../../../../components/Button/Button.vue.js";
3
+ import _sfc_main$5 from "../../../../components/Popup/Popup.vue.js";
4
+ import _sfc_main$3 from "../../../../components/Tab/Tab.vue.js";
5
+ import _sfc_main$6 from "../../../../components/DatePicker/Calendar.vue2.js";
6
+ import _sfc_main$1 from "../../../icons/navigation/IconEdit.vue.js";
7
+ import _sfc_main$4 from "../../../icons/actions/IconShopcartAdd.vue.js";
8
+ import PlaceholderImage from "../../../icons/placeholders/PlaceholderImage.vue.js";
9
+ import Images360 from "../blocks/Images360.vue.js";
10
+ import ImagesThumbnails from "../blocks/ImagesThumbnails.vue.js";
11
+ import _sfc_main$2 from "../elements/Price.vue.js";
12
+ import _sfc_main$8 from "../sections/PopularProducts.vue.js";
13
+ /* empty css */
4
14
  import { useRoute, useRouter } from "vue-router";
5
15
  import { useI18n } from "vue-i18n";
6
- import { state as state$1 } from "../../../auth/views/store/auth.js";
16
+ import { state as state$1, actions as actions$1 } from "../../../orders/store/shopcart.js";
17
+ import "../../../auth/views/store/auth.js";
7
18
  import { state, actions } from "../../store/products.js";
8
19
  import "../../store/categories.js";
9
- const _hoisted_1 = { class: "h-100 w-100 bg-white" };
10
- const _hoisted_2 = { class: "h-max pos-relative" };
20
+ const _hoisted_1 = { class: "h-100 w-100 mobile:pd-thin pd-big bg-white" };
21
+ const _hoisted_2 = { class: "cols-2-1_2 w-100 gap-medium" };
22
+ const _hoisted_3 = { class: "w-100 o-hidden bg-light radius-big flex-nowrap flex-column flex pos-relative" };
23
+ const _hoisted_4 = { class: "pd-semi w-100 bg-light radius-semi o-hidden" };
24
+ const _hoisted_5 = ["src"];
25
+ const _hoisted_6 = { class: "pos-relative w-100 h-100 flex-column flex-h-center flex" };
26
+ const _hoisted_7 = { class: "w-100 h1-product mn-b-small" };
27
+ const _hoisted_8 = {
28
+ key: 1,
29
+ class: "h-min-5r o-hidden radius-small bg-light mn-b-medium pos-relative"
30
+ };
31
+ const _hoisted_9 = {
32
+ key: 0,
33
+ class: "pd-medium"
34
+ };
35
+ const _hoisted_10 = {
36
+ key: 0,
37
+ class: "w-100 t-transp"
38
+ };
39
+ const _hoisted_11 = {
40
+ key: 1,
41
+ class: "w-100 t-transp"
42
+ };
43
+ const _hoisted_12 = {
44
+ key: 1,
45
+ class: "cols-2 pd-medium w-100 gap-small"
46
+ };
47
+ const _hoisted_13 = { class: "w-100 pd-small radius-small bg-white product-information" };
48
+ const _hoisted_14 = { class: "t-demi" };
49
+ const _hoisted_15 = { class: "w-max-33r" };
50
+ const _hoisted_16 = { class: "gap-thin flex flex-center flex-nowrap" };
51
+ const _hoisted_17 = {
52
+ key: 1,
53
+ class: "flex-center flex uppercase radius-big t-black w-max pd-small t-medium bg-grey h-3r w-100 mn-r-smallbutton"
54
+ };
55
+ const _hoisted_18 = { class: "gap-thin flex flex-center flex-nowrap" };
56
+ const _hoisted_19 = { class: "h-max pos-relative" };
11
57
  const _sfc_main = {
12
58
  __name: "Product",
13
59
  setup(__props) {
@@ -16,24 +62,201 @@ const _sfc_main = {
16
62
  route.meta.title.en = state.current.name;
17
63
  route.meta.title.ru = state.current.name;
18
64
  const product = computed(() => state.current);
65
+ const images = computed(() => state.current.images);
66
+ let rentDate = ref({
67
+ start: null,
68
+ end: null
69
+ });
70
+ const tabProduct = ref("description");
19
71
  const text = {
20
- messages: {}
72
+ en: {
73
+ addtoorder: "Add to Cart",
74
+ fastorder: "Fast Order"
75
+ },
76
+ ru: {
77
+ addtoorder: "Добавить в корзину",
78
+ fastorder: "Быстрый заказ"
79
+ }
21
80
  };
81
+ const { t } = useI18n({ messages: text });
22
82
  onMounted(async () => {
23
83
  await actions.read({ _id: route.params.product });
24
84
  });
25
- useI18n(text);
85
+ function validateToCard(product2) {
86
+ if (product2.quantity > 0) {
87
+ return false;
88
+ }
89
+ return true;
90
+ }
91
+ const isPopupVisible = ref(false);
92
+ const openPopup = () => {
93
+ isPopupVisible.value = true;
94
+ };
95
+ const closePopup = () => {
96
+ isPopupVisible.value = false;
97
+ };
98
+ async function addToCart(product2) {
99
+ try {
100
+ if (state$1.organization !== product2.owner.target) {
101
+ state$1.organization = product2.owner.target;
102
+ state$1.positions = [];
103
+ }
104
+ await actions$1.addProductToCart(product2, product2.owner.target, rentDate);
105
+ return true;
106
+ } catch (error) {
107
+ console.error("Ошибка при добавлении товара в корзину:", error);
108
+ throw error;
109
+ }
110
+ }
26
111
  return (_ctx, _cache) => {
27
112
  return openBlock(), createElementBlock("div", _hoisted_1, [
28
- product.value ? (openBlock(), createBlock(_sfc_main$1, {
29
- key: 0,
30
- product: product.value,
31
- user: state$1.user,
32
- class: "pos-relative"
33
- }, null, 8, ["product", "user"])) : createCommentVNode("", true),
34
113
  createElementVNode("div", _hoisted_2, [
35
- _cache[0] || (_cache[0] = createElementVNode("h3", { class: "pd-medium pd-b-small" }, "Most Popular", -1)),
36
- createVNode(_sfc_main$2)
114
+ createElementVNode("div", _hoisted_3, [
115
+ createElementVNode("div", _hoisted_4, [
116
+ product.value && product.value.image3d ? (openBlock(), createBlock(Images360, {
117
+ key: 0,
118
+ class: "h-100 w-100",
119
+ imagePath: `/assets/images/products/${product.value.image3d}`,
120
+ imageCount: 36
121
+ }, null, 8, ["imagePath"])) : createCommentVNode("", true),
122
+ images.value[0] && !product.value.image3d ? (openBlock(), createElementBlock("img", {
123
+ key: 1,
124
+ loading: "lazy",
125
+ class: "h-max h-max-15r bg-white radius-semi w-100",
126
+ style: { "object-fit": "contain" },
127
+ src: (_ctx.FILE_SERVER_URL || "") + images.value[0]
128
+ }, null, 8, _hoisted_5)) : createCommentVNode("", true),
129
+ !images.value[0] && !product.value.image3d ? (openBlock(), createBlock(PlaceholderImage, {
130
+ key: 2,
131
+ class: "h-max-20r h-100 w-100",
132
+ style: { "object-fit": "cover" }
133
+ })) : createCommentVNode("", true)
134
+ ]),
135
+ images.value.length > 1 ? (openBlock(), createBlock(ImagesThumbnails, {
136
+ key: 0,
137
+ images: images.value,
138
+ class: "pd-semi pd-t-zero"
139
+ }, null, 8, ["images"])) : createCommentVNode("", true)
140
+ ]),
141
+ createElementVNode("div", _hoisted_6, [
142
+ _ctx.accesses && _ctx.hasAccess(unref(route).params._id, "products", "edit", _ctx.accesses) ? (openBlock(), createBlock(_sfc_main$1, {
143
+ key: 0,
144
+ onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$router.push({
145
+ name: "ProductEdit",
146
+ params: {
147
+ _id: product.value.owner.target,
148
+ product: product.value._id
149
+ }
150
+ })),
151
+ class: "pos-absolute pos-t-regular pos-r-regular i-regular t-transp"
152
+ })) : createCommentVNode("", true),
153
+ createElementVNode("h2", _hoisted_7, toDisplayString(product.value.name), 1),
154
+ createVNode(_sfc_main$2, {
155
+ product: product.value,
156
+ size: "big",
157
+ class: "flex gap-thin flex-center pd-thin br-solid br-1px br-black-transp-10 w-max mn-b-medium"
158
+ }, null, 8, ["product"]),
159
+ product.value.description || product.value.specification ? (openBlock(), createElementBlock("div", _hoisted_8, [
160
+ createVNode(_sfc_main$3, {
161
+ selected: tabProduct.value,
162
+ "onUpdate:selected": _cache[1] || (_cache[1] = ($event) => tabProduct.value = $event),
163
+ tabs: [
164
+ { name: "Description", value: "description" },
165
+ { name: "Specifications", value: "specifications" }
166
+ ],
167
+ tabClass: "pd-thin bg-white radius-thin p-small uppercase t-medium",
168
+ class: "gap-micro bg-light pos-relative z-index-2 pd-thin br-solid br-b br-black-transp-10"
169
+ }, null, 8, ["selected"]),
170
+ createVNode(Transition, { name: "slide-fade" }, {
171
+ default: withCtx(() => [
172
+ tabProduct.value === "description" ? (openBlock(), createElementBlock("div", _hoisted_9, [
173
+ product.value.description && !product.value.localization < 1 && !_ctx.recommendation ? (openBlock(), createElementBlock("p", _hoisted_10, toDisplayString(product.value.description), 1)) : createCommentVNode("", true),
174
+ product.value.localization && product.value.localization.length > 1 && !_ctx.recommendation ? (openBlock(), createElementBlock("p", _hoisted_11, toDisplayString(unref(t)("description")), 1)) : createCommentVNode("", true)
175
+ ])) : (openBlock(), createElementBlock("div", _hoisted_12, [
176
+ product.value.information.length > 0 ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(product.value.information, (information) => {
177
+ return openBlock(), createElementBlock("div", _hoisted_13, [
178
+ createElementVNode("p", _hoisted_14, toDisplayString(information.name), 1),
179
+ createElementVNode("p", null, toDisplayString(information.value), 1)
180
+ ]);
181
+ }), 256)) : createCommentVNode("", true)
182
+ ]))
183
+ ]),
184
+ _: 1
185
+ })
186
+ ])) : createCommentVNode("", true),
187
+ createElementVNode("div", _hoisted_15, [
188
+ product.value.quantity > 0 || product.value.listing === "rent" ? (openBlock(), createElementBlock("button", {
189
+ key: 0,
190
+ onClick: _cache[2] || (_cache[2] = ($event) => product.value.listing === "rent" ? openPopup() : addToCart(product.value)),
191
+ class: "cursor-pointer pd-small radius-big w-max mobile:w-100 bg-main button"
192
+ }, [
193
+ createElementVNode("div", _hoisted_16, [
194
+ product.value.listing === "rent" ? (openBlock(), createBlock(_sfc_main$4, {
195
+ key: 0,
196
+ class: "i-semi"
197
+ })) : createCommentVNode("", true),
198
+ createElementVNode("span", null, toDisplayString(unref(t)("addtoorder")), 1)
199
+ ])
200
+ ])) : (openBlock(), createElementBlock("div", _hoisted_17, " Out of Stock "))
201
+ ]),
202
+ createVNode(_sfc_main$5, {
203
+ onClosePopup: closePopup,
204
+ isPopupOpen: isPopupVisible.value,
205
+ class: "radius-medium pd-medium bg-white o-hidden"
206
+ }, {
207
+ default: withCtx(() => [
208
+ _cache[3] || (_cache[3] = createElementVNode("h5", { class: "w-100 t-center mn-b-small" }, "Select Rent Period", -1)),
209
+ createVNode(_sfc_main$6, {
210
+ date: unref(rentDate),
211
+ allowRange: true,
212
+ class: "bg-light radius-small"
213
+ }, null, 8, ["date"]),
214
+ _cache[4] || (_cache[4] = createElementVNode("p", { class: "flex flex-nowrap pd-t-small" }, [
215
+ createElementVNode("span", { class: "w-100 t-transp" }, "$ 400 x 4 days"),
216
+ createElementVNode("span", { class: "w-100 t-right" }, "$2000")
217
+ ], -1)),
218
+ _cache[5] || (_cache[5] = createElementVNode("p", { class: "flex flex-nowrap pd-t-small" }, [
219
+ createElementVNode("span", { class: "w-100 t-transp" }, "Insurance Fee"),
220
+ createElementVNode("span", { class: "w-100 t-right" }, "$200")
221
+ ], -1)),
222
+ _cache[6] || (_cache[6] = createElementVNode("p", { class: "flex flex-nowrap br-black-transp-10 br-solid br-b pd-b-small pd-t-small" }, [
223
+ createElementVNode("span", { class: "w-100 t-transp" }, "VAT (20%)"),
224
+ createElementVNode("span", { class: "w-100 t-right" }, "$300")
225
+ ], -1)),
226
+ _cache[7] || (_cache[7] = createElementVNode("p", { class: "p-big flex flex-nowrap pd-b-small pd-t-small" }, [
227
+ createElementVNode("span", { class: "w-100 t-medium" }, "In Total"),
228
+ createElementVNode("span", { class: "w-100 t-main t-medium t-right" }, "$2500")
229
+ ], -1)),
230
+ product.value.quantity > 0 || product.value.listing === "rent" ? (openBlock(), createBlock(_sfc_main$7, {
231
+ key: 0,
232
+ submit: () => addToCart(product.value),
233
+ callback: () => closePopup(),
234
+ disabled: product.value.listing !== "rent" && validateToCard(product.value),
235
+ text: {
236
+ success: "Added",
237
+ error: "Error"
238
+ },
239
+ class: "h-3r w-100 bg-main button"
240
+ }, {
241
+ default: withCtx(() => [
242
+ createElementVNode("div", _hoisted_18, [
243
+ product.value.listing === "rent" ? (openBlock(), createBlock(_sfc_main$4, {
244
+ key: 0,
245
+ class: "i-semi"
246
+ })) : createCommentVNode("", true),
247
+ createElementVNode("span", null, toDisplayString(unref(t)("addtoorder")), 1)
248
+ ])
249
+ ]),
250
+ _: 1
251
+ }, 8, ["submit", "callback", "disabled"])) : createCommentVNode("", true)
252
+ ]),
253
+ _: 1
254
+ }, 8, ["isPopupOpen"])
255
+ ])
256
+ ]),
257
+ createElementVNode("div", _hoisted_19, [
258
+ _cache[8] || (_cache[8] = createElementVNode("h3", { class: "pd-medium pd-b-small" }, "Most Popular", -1)),
259
+ createVNode(_sfc_main$8)
37
260
  ])
38
261
  ]);
39
262
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Product.vue.js","sources":["../../../../../../../src/modules/products/components/pages/Product.vue"],"sourcesContent":["<template>\n\t<div class=\"h-100 w-100 bg-white \">\n\t\t<!-- <Breadcrumbs class=\"bg-light radius-big pd-small\"/> -->\n\t\t<SectionProduct v-if=\"product\" :product=\"product\" :user=\"auth.state.user\" class=\"pos-relative\"/>\n\n\t\t<div class=\"h-max pos-relative\">\n\t\t <h3 class=\"pd-medium pd-b-small\">Most Popular</h3>\n\t\t\t<PopularProducts />\n\t\t</div>\n\t</div>\n</template>\n\n<script setup=\"props\">\n\t// Import components\n\t// import Breadcrumbs from '@pf/src/components/Breadcrumbs/Breadcrumbs.vue'\n\timport PopularProducts \tfrom '@pf/src/modules/products/components/sections/PopularProducts.vue'\n\timport SectionProduct from '@pf/src/modules/products/components/sections/SectionProduct.vue'\n\t// Import libs\n\timport { computed, onMounted } from 'vue'\n\timport { useRoute,useRouter } from 'vue-router'\n\timport { useI18n } from 'vue-i18n'\n\t\n import * as auth from '@pf/src/modules/auth/views/store/auth';\n \timport * as products from '@pf/src/modules/products/store/products';\n import * as categories from '@pf/src/modules/products/store/categories';\n\n\t// Accessing router and store\n\tconst route = useRoute()\n\tconst router = useRouter()\n\n\t\n\troute.meta.title.en = products.state.current.name\n\troute.meta.title.ru = products.state.current.name\n\n\t// Accessing state\n\tconst product = computed(() => products.state.current)\n\n\tconst text = {\n\t\tmessages: {\n\t\t}\n\t};\n\n\tonMounted(async ()=> {\n\t\tawait products.actions.read({_id: route.params.product});\n\n\t})\n\t\n\t// products.state.current.localization.forEach(localization => {\n \t// if (localization) text.messages[localization.locale].description = localization.text\n\t// })\n\n const { t } = useI18n(text)\n</script>\n\n<style lang=\"scss\">\n</style>\n"],"names":["products.state","products.actions"],"mappings":";;;;;;;;;;;;;AA2BC,UAAM,QAAQ,SAAU;AACT,cAAW;AAG1B,UAAM,KAAK,MAAM,KAAKA,MAAe,QAAQ;AAC7C,UAAM,KAAK,MAAM,KAAKA,MAAe,QAAQ;AAG7C,UAAM,UAAU,SAAS,MAAMA,MAAe,OAAO;AAErD,UAAM,OAAO;AAAA,MACZ,UAAU,CACT;AAAA,IACH;AAEC,cAAU,YAAW;AACpB,YAAMC,QAAiB,KAAK,EAAC,KAAK,MAAM,OAAO,QAAO,CAAC;AAAA,IAEzD,CAAE;AAMc,YAAQ,IAAI;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Product.vue.js","sources":["../../../../../../../src/modules/products/components/pages/Product.vue"],"sourcesContent":["<template>\n\t<div class=\"h-100 w-100 mobile:pd-thin pd-big bg-white \">\n\t\t<!-- <Breadcrumbs class=\"bg-light radius-big pd-small\"/> -->\n\t\t<div class=\"cols-2-1_2 w-100 gap-medium\">\n\t\t\n\t\t\t<div class=\"w-100 o-hidden bg-light radius-big flex-nowrap flex-column flex pos-relative\">\n\t\t\t\t<div class=\"pd-semi w-100 bg-light radius-semi o-hidden\">\n\t\t\t\t\t<!-- PRODUCT IMAGE -->\n\t\t\t\t\t<Images360\n\t\t\t\t\t\tv-if=\"product && product.image3d\"\n\t\t\t\t\t\tclass=\"h-100 w-100\"\n\t\t\t\t\t\t:imagePath=\"`/assets/images/products/${product.image3d}`\"\n\t\t\t\t\t\t:imageCount=\"36\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<img loading=\"lazy\" \n\t\t\t\t\t\tv-if=\"images[0] && !product.image3d\"\n\t\t\t\t\t\tclass=\"h-max h-max-15r bg-white radius-semi w-100\"\n\t\t\t\t\t\tstyle=\"object-fit: contain;\"\n\t\t\t\t\t\t:src=\"(FILE_SERVER_URL || '') + images[0]\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<PlaceholderImage\n\t\t\t\t\t\tv-if=\"!images[0] && !product.image3d\"\n\t\t\t\t\t\tclass=\"h-max-20r h-100 w-100\"\n\t\t\t\t\t\tstyle=\"object-fit: cover;\"\n\t\t\t\t\t/>\n\n\t\t\t\t</div>\n\n\t\t\t\t<ImagesThumbnails\n\t\t\t\t\tv-if=\"images.length > 1\"\n\t\t\t\t\t:images=\"images\"\n\t\t\t\t\tclass=\"pd-semi pd-t-zero\"\n\t\t\t\t/>\n\t\t\t</div>\n\n\t\t\t<div class=\"pos-relative w-100 h-100 flex-column flex-h-center flex\">\n\n\t\t\t\t<IconEdit\n\t\t\t\t\tv-if=\"accesses && hasAccess(route.params._id, 'products', 'edit', accesses)\"\n\t\t\t\t\t@click=\"$router.push({\n\t\t\t\t\t\tname: 'ProductEdit', \n\t\t\t\t\t\tparams: {\n\t\t\t\t\t\t\t_id: product.owner.target,\n\t\t\t\t\t\t\tproduct: product._id\n\t\t\t\t\t\t}\n\t\t\t\t\t})\" \n\t\t\t\t\tclass=\"pos-absolute pos-t-regular pos-r-regular i-regular t-transp\"\n\t\t\t\t/>\n\n\t\t\t\t<!-- Name -->\n\t\t\t\t<h2 class=\"w-100 h1-product mn-b-small\">{{ product.name }}</h2>\n\n\t\t\t\t<Price :product=\"product\" size=\"big\" class=\"flex gap-thin flex-center pd-thin br-solid br-1px br-black-transp-10 w-max mn-b-medium\" />\n\n\t\t\t\t<!-- Price -->\n\t\t\t\t<div v-if=\"product.description || product.specification\" class=\"h-min-5r o-hidden radius-small bg-light mn-b-medium pos-relative\">\n\t\t\t\t\t<Tab \n\t\t\t\t\t\tv-model:selected=\"tabProduct\"\n\t\t\t\t\t\t:tabs=\"[\n\t\t\t\t\t\t\t{name: 'Description', value: 'description'},\n\t\t\t\t\t\t\t{name: 'Specifications', value: 'specifications'}\n\t\t\t\t\t\t]\"\n\t\t\t\t\t\ttabClass=\"pd-thin bg-white radius-thin p-small uppercase t-medium\"\n\t\t\t\t\t\tclass=\"gap-micro bg-light pos-relative z-index-2 pd-thin br-solid br-b br-black-transp-10\"\n\t\t\t\t\t/>\n\t\t\t\t\t<transition name=\"slide-fade\">\n\t\t\t\t\t\t<div v-if=\"tabProduct === 'description'\" class=\" pd-medium\">\n\t\t\t\t\t\t\t<p v-if=\"product.description && !product.localization < 1 && !recommendation\" class=\"w-100 t-transp\">\n\t\t\t\t\t\t\t\t{{ product.description }}\n\t\t\t\t\t\t\t</p>\n\n\t\t\t\t\t\t\t<p v-if=\"product.localization && product.localization.length > 1 && !recommendation\" class=\"w-100 t-transp\">\n\t\t\t\t\t\t\t\t{{ t('description') }}\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div \n\t\t\t\t\t\t\tv-else\n\t\t\t\t\t\t\tclass=\"cols-2 pd-medium w-100 gap-small\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div \n\t\t\t\t\t\t\t\tv-if=\"product.information.length > 0\" \n\t\t\t\t\t\t\t\tv-for=\"information in product.information\" \n\t\t\t\t\t\t\t\tclass=\"w-100 pd-small radius-small bg-white product-information\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<p class=\"t-demi\">{{ information.name }}</p>\n\t\t\t\t\t\t\t\t<p>{{ information.value }}</p>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</transition>\n\t\t\t\t</div>\n\n\t\t\t\t\t\t\t<!-- Modifications -->\n\t\t\t\t<!-- <div v-if=\"product.modifications.length > 0\" class=\"flex-nojustify flex\">\n\t\t\t\t\t<SelectElement v-if=\"sizes2.length > 0\" :elements=\"sizes2\" :selected=\"product.selectedSize\" class=\"mn-r-medium\" />\n\t\t\t\t</div> -->\n\n\t\t\t\t<!-- Actions -->\n\t\t\t\t<div class=\"w-max-33r\">\n\t\t\t\t <button\n\t\t\t\t v-if=\"product.quantity > 0 || product.listing === 'rent'\"\n\t\t\t\t @click=\"product.listing === 'rent' ? openPopup() : addToCart(product)\" \n\t\t\t\t class=\"cursor-pointer pd-small radius-big w-max mobile:w-100 bg-main button\"\n\t\t\t\t > \n\t\t\t\t <div class=\"gap-thin flex flex-center flex-nowrap\">\n\t\t\t\t <IconShopcartAdd v-if=\"product.listing === 'rent'\" class=\"i-semi\" />\n\t\t\t\t <span>{{ t('addtoorder') }}</span>\n\t\t\t\t </div>\n\t\t\t\t </button>\n\n\t\t\t\t <div \n\t\t\t\t v-else \n\t\t\t\t class=\"flex-center flex uppercase radius-big t-black w-max pd-small t-medium bg-grey h-3r w-100 mn-r-smallbutton\"\n\t\t\t\t >\n\t\t\t\t Out of Stock\n\t\t\t\t </div>\n\t\t\t\t</div>\n\t\t\t\t<!-- Shopcart Adding Popup -->\n\t\t\t\t<Popup @close-popup=\"closePopup\" :isPopupOpen=\"isPopupVisible\" class=\"radius-medium pd-medium bg-white o-hidden\">\n\t\t <h5 class=\"w-100 t-center mn-b-small\">Select Rent Period</h5>\n\t\t <Calendar\n\t\t \t:date=\"rentDate\"\n\t\t \t:allowRange=\"true\"\n\t\t \tclass=\"bg-light radius-small\"\n\t\t />\n\n\t\t <p class=\"flex flex-nowrap pd-t-small\">\n\t\t \t<span class=\"w-100 t-transp\">$ 400 x 4 days</span>\n\t\t \t<span class=\"w-100 t-right\">$2000</span>\n\t\t </p>\n\t\t <p class=\"flex flex-nowrap pd-t-small\">\n\t\t \t<span class=\"w-100 t-transp\">Insurance Fee</span>\n\t\t \t<span class=\"w-100 t-right\">$200</span>\n\t\t </p>\n\t\t <p class=\"flex flex-nowrap br-black-transp-10 br-solid br-b pd-b-small pd-t-small\">\n\t\t \t<span class=\"w-100 t-transp\">VAT (20%)</span>\n\t\t \t<span class=\"w-100 t-right\">$300</span>\n\t\t </p>\n\t\t \n\t\t \t<p class=\"p-big flex flex-nowrap pd-b-small pd-t-small\">\n\t\t \t<span class=\"w-100 t-medium \">In Total</span>\n\t\t \t<span class=\"w-100 t-main t-medium t-right\">$2500</span>\n\t \t</p>\n\n\t \t<Button\n\t\t\t\t v-if=\"product.quantity > 0 || product.listing === 'rent'\"\n\t\t\t\t :submit=\"() => addToCart(product)\" \n\t\t\t\t :callback=\"() => closePopup()\"\n\t\t\t\t :disabled=\"product.listing !== 'rent' && validateToCard(product)\"\n\t\t\t\t :text=\"{\n\t\t\t\t success: 'Added',\n\t\t\t\t error: 'Error'\n\t\t\t\t }\"\n\t\t\t\t class=\"h-3r w-100 bg-main button\"\n\t\t\t\t > \n\t\t\t\t <div class=\"gap-thin flex flex-center flex-nowrap\">\n\t\t\t\t <IconShopcartAdd v-if=\"product.listing === 'rent'\" class=\"i-semi\" />\n\t\t\t\t <span>{{ t('addtoorder') }}</span>\n\t\t\t\t </div>\n\t\t\t\t </Button>\n\t\t </Popup>\n\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=\"h-max pos-relative\">\n\t\t <h3 class=\"pd-medium pd-b-small\">Most Popular</h3>\n\t\t\t<PopularProducts />\n\t\t</div>\n\t</div>\n</template>\n\n<script setup=\"props\">\n\t// Import components\n\t// import Breadcrumbs from '@pf/src/components/Breadcrumbs/Breadcrumbs.vue'\n\timport Button from '@pf/src/components/Button/Button.vue'\n\timport Popup from '@pf/src/components/Popup/Popup.vue'\n\timport Tab from '@pf/src/components/Tab/Tab.vue'\n\timport Calendar from '@pf/src/components/DatePicker/Calendar.vue'\n\n\timport IconEdit from '@pf/src/modules/icons/navigation/IconEdit.vue'\n\timport IconShopcartAdd from '@pf/src/modules/icons/actions/IconShopcartAdd.vue'\n\n\timport PlaceholderImage from '@pf/src/modules/icons/placeholders/PlaceholderImage.vue'\n\n\timport Images360 \tfrom '@pf/src/modules/products/components/blocks/Images360.vue'\n\timport ImagesThumbnails from \"@pf/src/modules/products/components/blocks/ImagesThumbnails.vue\";\n\n\timport Price from '@pf/src/modules/products/components/elements/Price.vue'\n\n\timport PopularProducts \tfrom '@pf/src/modules/products/components/sections/PopularProducts.vue'\n\timport SectionProduct from '@pf/src/modules/products/components/sections/SectionProduct.vue'\n\t// Import libs\n\timport { computed, ref, onMounted } from 'vue'\n\timport { useRoute,useRouter } from 'vue-router'\n\timport { useI18n } from 'vue-i18n'\n\t\n import * as auth from '@pf/src/modules/auth/views/store/auth';\n \timport * as products from '@pf/src/modules/products/store/products';\n import * as categories from '@pf/src/modules/products/store/categories';\n\n\timport * as shopcart from '@pf/src/modules/orders/store/shopcart';\n\n\t// Accessing router and store\n\tconst route = useRoute()\n\tconst router = useRouter()\n\t\n\troute.meta.title.en = products.state.current.name\n\troute.meta.title.ru = products.state.current.name\n\n\t// Accessing state\n\tconst product = computed(() => products.state.current)\n\tconst images = computed(() => products.state.current.images)\n\n\tlet rentDate = ref({\n\t\tstart: null,\n\t\tend: null\n\t})\n\n\n\tconst tabProduct = ref('description')\n\n\tconst text = {\n\t en: {\n\t \taddtoorder: 'Add to Cart',\n\t fastorder: 'Fast Order'\n\t },\n\t ru: {\n\t \taddtoorder: 'Добавить в корзину',\n\t fastorder: 'Быстрый заказ'\n\t }\n\t}\n\n const { t } = useI18n({messages: text})\n\n\tonMounted(async ()=> {\n\t\tawait products.actions.read({_id: route.params.product});\n\t})\n\n\t// Methods\n\tfunction validateToCard(product) {\n\t if (product.quantity > 0) {\n\t return false\n\t }\n\t return true\n\t}\n\n\tconst isPopupVisible = ref(false);\n\n\tconst openPopup = () => {\n\t isPopupVisible.value = true;\n\t};\n\n\tconst closePopup = () => {\n\t isPopupVisible.value = false;\n\t};\n\n\tasync function addToCart(product) {\n try {\n if (shopcart.state.organization !== product.owner.target) {\n shopcart.state.organization = product.owner.target\n shopcart.state.positions = []\n }\n \n await shopcart.actions.addProductToCart(product, product.owner.target, rentDate)\n\n return true\n } catch (error) {\n console.error('Ошибка при добавлении товара в корзину:', error)\n throw error\n }\n\t}\n</script>\n\n<style lang=\"scss\">\n</style>\n"],"names":["products.state","products.actions","product","shopcart.state","shopcart.actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8MC,UAAM,QAAQ,SAAU;AACT,cAAW;AAE1B,UAAM,KAAK,MAAM,KAAKA,MAAe,QAAQ;AAC7C,UAAM,KAAK,MAAM,KAAKA,MAAe,QAAQ;AAG7C,UAAM,UAAU,SAAS,MAAMA,MAAe,OAAO;AACrD,UAAM,SAAS,SAAS,MAAMA,MAAe,QAAQ,MAAM;AAE3D,QAAI,WAAW,IAAI;AAAA,MAClB,OAAO;AAAA,MACP,KAAK;AAAA,IACP,CAAE;AAGD,UAAM,aAAa,IAAI,aAAa;AAEpC,UAAM,OAAO;AAAA,MACX,IAAI;AAAA,QACH,YAAY;AAAA,QACX,WAAW;AAAA,MACZ;AAAA,MACD,IAAI;AAAA,QACH,YAAY;AAAA,QACX,WAAW;AAAA,MACZ;AAAA,IACF;AAEA,UAAM,EAAE,EAAC,IAAK,QAAQ,EAAC,UAAU,KAAI,CAAC;AAEvC,cAAU,YAAW;AACpB,YAAMC,QAAiB,KAAK,EAAC,KAAK,MAAM,OAAO,QAAO,CAAC;AAAA,IACzD,CAAE;AAGD,aAAS,eAAeC,UAAS;AAC/B,UAAIA,SAAQ,WAAW,GAAG;AACxB,eAAO;AAAA,MACR;AACD,aAAO;AAAA,IACR;AAED,UAAM,iBAAiB,IAAI,KAAK;AAEhC,UAAM,YAAY,MAAM;AACtB,qBAAe,QAAQ;AAAA,IAC1B;AAEC,UAAM,aAAa,MAAM;AACvB,qBAAe,QAAQ;AAAA,IAC1B;AAEC,mBAAe,UAAUA,UAAS;AAC/B,UAAI;AACF,YAAIC,QAAe,iBAAiBD,SAAQ,MAAM,QAAQ;AACxDC,kBAAe,eAAeD,SAAQ,MAAM;AAC5CC,kBAAe,YAAY,CAAE;AAAA,QAC9B;AAED,cAAMC,UAAiB,iBAAiBF,UAASA,SAAQ,MAAM,QAAQ,QAAQ;AAE/E,eAAO;AAAA,MACR,SAAQ,OAAO;AACd,gBAAQ,MAAM,2CAA2C,KAAK;AAC9D,cAAM;AAAA,MACP;AAAA,IACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}