@ozdao/prometheus-framework 0.2.252 → 0.2.254

Sign up to get free protection for your applications and to get access to all the features.
Files changed (310) hide show
  1. package/dist/auth.server.js +298 -14
  2. package/dist/auth.server.mjs +298 -14
  3. package/dist/builder.js +4 -4
  4. package/dist/builder.mjs +4 -4
  5. package/dist/chats.server.js +110 -0
  6. package/dist/chats.server.mjs +111 -0
  7. package/dist/community.server.js +38 -21
  8. package/dist/community.server.mjs +38 -21
  9. package/dist/events.server.js +38 -18
  10. package/dist/events.server.mjs +38 -17
  11. package/dist/files.server.js +12 -3
  12. package/dist/files.server.mjs +12 -3
  13. package/dist/gallery.server.js +17 -4
  14. package/dist/gallery.server.mjs +17 -4
  15. package/dist/organizations.server.js +43 -26
  16. package/dist/organizations.server.mjs +43 -26
  17. package/dist/products.server.js +49 -23
  18. package/dist/products.server.mjs +49 -22
  19. package/dist/prometheus-framework/src/modules/auth/auth.client.cjs +15 -3
  20. package/dist/prometheus-framework/src/modules/auth/auth.client.cjs.map +1 -1
  21. package/dist/prometheus-framework/src/modules/auth/auth.client.js +16 -4
  22. package/dist/prometheus-framework/src/modules/auth/auth.client.js.map +1 -1
  23. package/dist/prometheus-framework/src/modules/auth/views/components/blocks/CardUser.vue.cjs +95 -0
  24. package/dist/prometheus-framework/src/modules/auth/views/components/blocks/CardUser.vue.cjs.map +1 -0
  25. package/dist/prometheus-framework/src/modules/auth/views/components/blocks/CardUser.vue.js +95 -0
  26. package/dist/prometheus-framework/src/modules/auth/views/components/blocks/CardUser.vue.js.map +1 -0
  27. package/dist/prometheus-framework/src/modules/auth/views/components/pages/Profile.vue.cjs +284 -0
  28. package/dist/prometheus-framework/src/modules/auth/views/components/pages/Profile.vue.cjs.map +1 -0
  29. package/dist/prometheus-framework/src/modules/auth/views/components/pages/Profile.vue.js +284 -0
  30. package/dist/prometheus-framework/src/modules/auth/views/components/pages/Profile.vue.js.map +1 -0
  31. package/dist/prometheus-framework/src/modules/auth/views/components/pages/Profile.vue2.cjs +2 -0
  32. package/dist/prometheus-framework/src/modules/auth/views/components/pages/Profile.vue2.cjs.map +1 -0
  33. package/dist/prometheus-framework/src/modules/auth/views/components/pages/Profile.vue2.js +2 -0
  34. package/dist/prometheus-framework/src/modules/auth/views/components/pages/Profile.vue2.js.map +1 -0
  35. package/dist/prometheus-framework/src/modules/auth/views/components/pages/ProfileBlogposts.vue.cjs +85 -0
  36. package/dist/prometheus-framework/src/modules/auth/views/components/pages/ProfileBlogposts.vue.cjs.map +1 -0
  37. package/dist/prometheus-framework/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js +85 -0
  38. package/dist/prometheus-framework/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js.map +1 -0
  39. package/dist/prometheus-framework/src/modules/auth/views/components/pages/ProfileEdit.vue.cjs +176 -0
  40. package/dist/prometheus-framework/src/modules/auth/views/components/pages/ProfileEdit.vue.cjs.map +1 -0
  41. package/dist/prometheus-framework/src/modules/auth/views/components/pages/ProfileEdit.vue.js +176 -0
  42. package/dist/prometheus-framework/src/modules/auth/views/components/pages/ProfileEdit.vue.js.map +1 -0
  43. package/dist/prometheus-framework/src/modules/auth/views/components/pages/ProfileEdit.vue2.cjs +2 -0
  44. package/dist/prometheus-framework/src/modules/auth/views/components/pages/ProfileEdit.vue2.cjs.map +1 -0
  45. package/dist/prometheus-framework/src/modules/auth/views/components/pages/ProfileEdit.vue2.js +2 -0
  46. package/dist/prometheus-framework/src/modules/auth/views/components/pages/ProfileEdit.vue2.js.map +1 -0
  47. package/dist/prometheus-framework/src/modules/auth/views/components/sections/FeaturedUsers.vue.cjs +114 -0
  48. package/dist/prometheus-framework/src/modules/auth/views/components/sections/FeaturedUsers.vue.cjs.map +1 -0
  49. package/dist/prometheus-framework/src/modules/auth/views/components/sections/FeaturedUsers.vue.js +114 -0
  50. package/dist/prometheus-framework/src/modules/auth/views/components/sections/FeaturedUsers.vue.js.map +1 -0
  51. package/dist/prometheus-framework/src/modules/auth/views/components/sections/ProfileCompletion.vue.cjs +72 -0
  52. package/dist/prometheus-framework/src/modules/auth/views/components/sections/ProfileCompletion.vue.cjs.map +1 -0
  53. package/dist/prometheus-framework/src/modules/auth/views/components/sections/ProfileCompletion.vue.js +72 -0
  54. package/dist/prometheus-framework/src/modules/auth/views/components/sections/ProfileCompletion.vue.js.map +1 -0
  55. package/dist/prometheus-framework/src/modules/auth/views/router/users.cjs +97 -0
  56. package/dist/prometheus-framework/src/modules/auth/views/router/users.cjs.map +1 -0
  57. package/dist/prometheus-framework/src/modules/auth/views/router/users.js +97 -0
  58. package/dist/prometheus-framework/src/modules/auth/views/router/users.js.map +1 -0
  59. package/dist/prometheus-framework/src/modules/auth/views/store/users.cjs +95 -0
  60. package/dist/prometheus-framework/src/modules/auth/views/store/users.cjs.map +1 -0
  61. package/dist/prometheus-framework/src/modules/auth/views/store/users.js +95 -0
  62. package/dist/prometheus-framework/src/modules/auth/views/store/users.js.map +1 -0
  63. package/dist/prometheus-framework/src/modules/backoffice/backoffice.client.cjs +32 -2
  64. package/dist/prometheus-framework/src/modules/backoffice/backoffice.client.cjs.map +1 -1
  65. package/dist/prometheus-framework/src/modules/backoffice/backoffice.client.js +32 -2
  66. package/dist/prometheus-framework/src/modules/backoffice/backoffice.client.js.map +1 -1
  67. package/dist/prometheus-framework/src/modules/backoffice/router/backoffice.cjs +2 -2
  68. package/dist/prometheus-framework/src/modules/backoffice/router/backoffice.cjs.map +1 -1
  69. package/dist/prometheus-framework/src/modules/backoffice/router/backoffice.js +2 -2
  70. package/dist/prometheus-framework/src/modules/backoffice/router/backoffice.js.map +1 -1
  71. package/dist/prometheus-framework/src/modules/chats/chats.client.cjs +31 -0
  72. package/dist/prometheus-framework/src/modules/chats/chats.client.cjs.map +1 -0
  73. package/dist/prometheus-framework/src/modules/chats/chats.client.js +31 -0
  74. package/dist/prometheus-framework/src/modules/chats/chats.client.js.map +1 -0
  75. package/dist/prometheus-framework/src/modules/community/community.client.cjs +42 -7
  76. package/dist/prometheus-framework/src/modules/community/community.client.cjs.map +1 -1
  77. package/dist/prometheus-framework/src/modules/community/community.client.js +59 -24
  78. package/dist/prometheus-framework/src/modules/community/community.client.js.map +1 -1
  79. package/dist/prometheus-framework/src/modules/community/router/blogposts.cjs +68 -70
  80. package/dist/prometheus-framework/src/modules/community/router/blogposts.cjs.map +1 -1
  81. package/dist/prometheus-framework/src/modules/community/router/blogposts.js +68 -70
  82. package/dist/prometheus-framework/src/modules/community/router/blogposts.js.map +1 -1
  83. package/dist/prometheus-framework/src/modules/gallery/gallery.client.cjs +26 -3
  84. package/dist/prometheus-framework/src/modules/gallery/gallery.client.cjs.map +1 -1
  85. package/dist/prometheus-framework/src/modules/gallery/gallery.client.js +27 -4
  86. package/dist/prometheus-framework/src/modules/gallery/gallery.client.js.map +1 -1
  87. package/dist/prometheus-framework/src/modules/gallery/router/gallery.router.cjs +2 -2
  88. package/dist/prometheus-framework/src/modules/gallery/router/gallery.router.cjs.map +1 -1
  89. package/dist/prometheus-framework/src/modules/gallery/router/gallery.router.js +2 -2
  90. package/dist/prometheus-framework/src/modules/gallery/router/gallery.router.js.map +1 -1
  91. package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreate.vue.cjs +1 -1
  92. package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreate.vue.cjs.map +1 -1
  93. package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreate.vue.js +1 -1
  94. package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreate.vue.js.map +1 -1
  95. package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +1 -1
  96. package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs.map +1 -1
  97. package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +1 -1
  98. package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js.map +1 -1
  99. package/dist/prometheus-framework/src/modules/orders/components/sections/FormAddCustomer.vue.cjs +2 -2
  100. package/dist/prometheus-framework/src/modules/orders/components/sections/FormAddCustomer.vue.cjs.map +1 -1
  101. package/dist/prometheus-framework/src/modules/orders/components/sections/FormAddCustomer.vue.js +2 -2
  102. package/dist/prometheus-framework/src/modules/orders/components/sections/FormAddCustomer.vue.js.map +1 -1
  103. package/dist/prometheus-framework/src/modules/orders/orders.client.cjs +4 -1
  104. package/dist/prometheus-framework/src/modules/orders/orders.client.cjs.map +1 -1
  105. package/dist/prometheus-framework/src/modules/orders/orders.client.js +4 -1
  106. package/dist/prometheus-framework/src/modules/orders/orders.client.js.map +1 -1
  107. package/dist/prometheus-framework/src/modules/orders/store/testimonials.cjs +63 -0
  108. package/dist/prometheus-framework/src/modules/orders/store/testimonials.cjs.map +1 -0
  109. package/dist/prometheus-framework/src/modules/orders/store/testimonials.js +63 -0
  110. package/dist/prometheus-framework/src/modules/orders/store/testimonials.js.map +1 -0
  111. package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardDepartment.vue.cjs +2 -2
  112. package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardDepartment.vue.cjs.map +1 -1
  113. package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardDepartment.vue.js +2 -2
  114. package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardDepartment.vue.js.map +1 -1
  115. package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardOrganization.vue.cjs +1 -1
  116. package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardOrganization.vue.cjs.map +1 -1
  117. package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardOrganization.vue.js +1 -1
  118. package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardOrganization.vue.js.map +1 -1
  119. package/dist/prometheus-framework/src/modules/organizations/components/pages/Department.vue.cjs +1 -1
  120. package/dist/prometheus-framework/src/modules/organizations/components/pages/Department.vue.cjs.map +1 -1
  121. package/dist/prometheus-framework/src/modules/organizations/components/pages/Department.vue.js +1 -1
  122. package/dist/prometheus-framework/src/modules/organizations/components/pages/Department.vue.js.map +1 -1
  123. package/dist/prometheus-framework/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +1 -1
  124. package/dist/prometheus-framework/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs.map +1 -1
  125. package/dist/prometheus-framework/src/modules/organizations/components/pages/DepartmentEdit.vue.js +1 -1
  126. package/dist/prometheus-framework/src/modules/organizations/components/pages/DepartmentEdit.vue.js.map +1 -1
  127. package/dist/prometheus-framework/src/modules/organizations/components/pages/Members.vue.cjs +1 -1
  128. package/dist/prometheus-framework/src/modules/organizations/components/pages/Members.vue.cjs.map +1 -1
  129. package/dist/prometheus-framework/src/modules/organizations/components/pages/Members.vue.js +1 -1
  130. package/dist/prometheus-framework/src/modules/organizations/components/pages/Members.vue.js.map +1 -1
  131. package/dist/prometheus-framework/src/modules/organizations/components/pages/Organization.vue.cjs.map +1 -1
  132. package/dist/prometheus-framework/src/modules/organizations/components/pages/Organization.vue.js.map +1 -1
  133. package/dist/prometheus-framework/src/modules/organizations/components/sections/MembersAdd.vue.cjs +2 -2
  134. package/dist/prometheus-framework/src/modules/organizations/components/sections/MembersAdd.vue.cjs.map +1 -1
  135. package/dist/prometheus-framework/src/modules/organizations/components/sections/MembersAdd.vue.js +2 -2
  136. package/dist/prometheus-framework/src/modules/organizations/components/sections/MembersAdd.vue.js.map +1 -1
  137. package/dist/prometheus-framework/src/modules/organizations/organizations.client.cjs +60 -11
  138. package/dist/prometheus-framework/src/modules/organizations/organizations.client.cjs.map +1 -1
  139. package/dist/prometheus-framework/src/modules/organizations/organizations.client.js +95 -46
  140. package/dist/prometheus-framework/src/modules/organizations/organizations.client.js.map +1 -1
  141. package/dist/prometheus-framework/src/modules/organizations/router/organizations.cjs +6 -10
  142. package/dist/prometheus-framework/src/modules/organizations/router/organizations.cjs.map +1 -1
  143. package/dist/prometheus-framework/src/modules/organizations/router/organizations.js +8 -12
  144. package/dist/prometheus-framework/src/modules/organizations/router/organizations.js.map +1 -1
  145. package/dist/prometheus-framework/src/modules/pages/pages.client.cjs +500 -500
  146. package/dist/prometheus-framework/src/modules/pages/pages.client.js +500 -500
  147. package/dist/prometheus-framework/src/modules/products/components/layouts/Marketplace.vue.cjs +179 -0
  148. package/dist/prometheus-framework/src/modules/products/components/layouts/Marketplace.vue.cjs.map +1 -0
  149. package/dist/prometheus-framework/src/modules/products/components/layouts/Marketplace.vue.js +179 -0
  150. package/dist/prometheus-framework/src/modules/products/components/layouts/Marketplace.vue.js.map +1 -0
  151. package/dist/prometheus-framework/src/modules/products/components/pages/Catalog.vue.cjs +64 -0
  152. package/dist/prometheus-framework/src/modules/products/components/pages/Catalog.vue.cjs.map +1 -0
  153. package/dist/prometheus-framework/src/modules/products/components/pages/Catalog.vue.js +64 -0
  154. package/dist/prometheus-framework/src/modules/products/components/pages/Catalog.vue.js.map +1 -0
  155. package/dist/prometheus-framework/src/modules/products/components/pages/ProductRecommmendation.vue.cjs +2 -2
  156. package/dist/prometheus-framework/src/modules/products/components/pages/ProductRecommmendation.vue.js +2 -2
  157. package/dist/prometheus-framework/src/modules/products/components/pages/Products.vue.cjs +2 -2
  158. package/dist/prometheus-framework/src/modules/products/components/pages/Products.vue.cjs.map +1 -1
  159. package/dist/prometheus-framework/src/modules/products/components/pages/Products.vue.js +2 -2
  160. package/dist/prometheus-framework/src/modules/products/components/pages/Products.vue.js.map +1 -1
  161. package/dist/prometheus-framework/src/modules/products/components/sections/FilterProducts.vue.cjs +1 -1
  162. package/dist/prometheus-framework/src/modules/products/components/sections/FilterProducts.vue.cjs.map +1 -1
  163. package/dist/prometheus-framework/src/modules/products/components/sections/FilterProducts.vue.js +1 -1
  164. package/dist/prometheus-framework/src/modules/products/components/sections/FilterProducts.vue.js.map +1 -1
  165. package/dist/prometheus-framework/src/modules/products/components/sections/Filters.vue.cjs +156 -0
  166. package/dist/prometheus-framework/src/modules/products/components/sections/Filters.vue.cjs.map +1 -0
  167. package/dist/prometheus-framework/src/modules/products/components/sections/Filters.vue.js +157 -0
  168. package/dist/prometheus-framework/src/modules/products/components/sections/Filters.vue.js.map +1 -0
  169. package/dist/prometheus-framework/src/modules/products/components/sections/HeroRecommendation.vue.cjs +1 -1
  170. package/dist/prometheus-framework/src/modules/products/components/sections/HeroRecommendation.vue.cjs.map +1 -1
  171. package/dist/prometheus-framework/src/modules/products/components/sections/HeroRecommendation.vue.js +1 -1
  172. package/dist/prometheus-framework/src/modules/products/components/sections/HeroRecommendation.vue.js.map +1 -1
  173. package/dist/prometheus-framework/src/modules/products/components/sections/PopularProducts.vue.cjs +1 -1
  174. package/dist/prometheus-framework/src/modules/products/components/sections/PopularProducts.vue.cjs.map +1 -1
  175. package/dist/prometheus-framework/src/modules/products/components/sections/PopularProducts.vue.js +1 -1
  176. package/dist/prometheus-framework/src/modules/products/components/sections/PopularProducts.vue.js.map +1 -1
  177. package/dist/prometheus-framework/src/modules/products/products.client.cjs +72 -7
  178. package/dist/prometheus-framework/src/modules/products/products.client.cjs.map +1 -1
  179. package/dist/prometheus-framework/src/modules/products/products.client.js +114 -49
  180. package/dist/prometheus-framework/src/modules/products/products.client.js.map +1 -1
  181. package/dist/prometheus-framework/src/modules/products/router/marketplace.router.cjs +46 -0
  182. package/dist/prometheus-framework/src/modules/products/router/marketplace.router.cjs.map +1 -0
  183. package/dist/prometheus-framework/src/modules/products/router/marketplace.router.js +46 -0
  184. package/dist/prometheus-framework/src/modules/products/router/marketplace.router.js.map +1 -0
  185. package/dist/prometheus-framework/src/modules/products/router/products.router.cjs +79 -36
  186. package/dist/prometheus-framework/src/modules/products/router/products.router.cjs.map +1 -1
  187. package/dist/prometheus-framework/src/modules/products/router/products.router.js +78 -35
  188. package/dist/prometheus-framework/src/modules/products/router/products.router.js.map +1 -1
  189. package/dist/prometheus-framework/src/modules/products/store/marketplace.cjs +57 -0
  190. package/dist/prometheus-framework/src/modules/products/store/marketplace.cjs.map +1 -0
  191. package/dist/prometheus-framework/src/modules/products/store/marketplace.js +57 -0
  192. package/dist/prometheus-framework/src/modules/products/store/marketplace.js.map +1 -0
  193. package/dist/prometheus-framework/src/modules/reports/reports.client.cjs +21 -2
  194. package/dist/prometheus-framework/src/modules/reports/reports.client.cjs.map +1 -1
  195. package/dist/prometheus-framework/src/modules/reports/reports.client.js +20 -1
  196. package/dist/prometheus-framework/src/modules/reports/reports.client.js.map +1 -1
  197. package/dist/prometheus-framework/src/modules/spots/components/layouts/Spots.vue.cjs +1 -1
  198. package/dist/prometheus-framework/src/modules/spots/components/layouts/Spots.vue.cjs.map +1 -1
  199. package/dist/prometheus-framework/src/modules/spots/components/layouts/Spots.vue.js +1 -1
  200. package/dist/prometheus-framework/src/modules/spots/components/layouts/Spots.vue.js.map +1 -1
  201. package/dist/prometheus-framework/src/modules/spots/components/pages/Map.vue.cjs +2 -2
  202. package/dist/prometheus-framework/src/modules/spots/components/pages/Map.vue.cjs.map +1 -1
  203. package/dist/prometheus-framework/src/modules/spots/components/pages/Map.vue.js +2 -2
  204. package/dist/prometheus-framework/src/modules/spots/components/pages/Map.vue.js.map +1 -1
  205. package/dist/prometheus-framework/src/modules/spots/components/pages/Spot.vue.cjs +2 -2
  206. package/dist/prometheus-framework/src/modules/spots/components/pages/Spot.vue.cjs.map +1 -1
  207. package/dist/prometheus-framework/src/modules/spots/components/pages/Spot.vue.js +2 -2
  208. package/dist/prometheus-framework/src/modules/spots/components/pages/Spot.vue.js.map +1 -1
  209. package/dist/reports.server.js +21 -8
  210. package/dist/reports.server.mjs +21 -8
  211. package/package.json +9 -1
  212. package/src/builder/webpack/webpack.config.client.js +2 -2
  213. package/src/builder/webpack/webpack.config.server.js +1 -1
  214. package/src/builder/webpack/webpack.config.spa.js +1 -1
  215. package/src/builder/webpack/webpack.config.ssr.js +1 -1
  216. package/src/modules/auth/auth.client.js +16 -3
  217. package/src/modules/auth/auth.server.js +22 -1
  218. package/src/modules/{users → auth/controllers}/routes/users.routes.js +1 -1
  219. package/src/modules/auth/controllers/services/auth.service.js +0 -1
  220. package/src/modules/{users → auth/views}/components/pages/Profile.vue +1 -1
  221. package/src/modules/{users → auth/views}/components/pages/ProfileEdit.vue +2 -2
  222. package/src/modules/{users → auth/views}/components/sections/FeaturedUsers.vue +2 -2
  223. package/src/modules/auth/views/router/users.js +79 -0
  224. package/src/modules/backoffice/backoffice.client.js +53 -11
  225. package/src/modules/backoffice/router/backoffice.js +29 -2
  226. package/src/modules/chats/chats.client.js +48 -0
  227. package/src/modules/chats/chats.server.js +32 -0
  228. package/src/modules/community/community.client.js +56 -10
  229. package/src/modules/community/community.server.js +35 -14
  230. package/src/modules/community/models/comment.model.js +7 -7
  231. package/src/modules/community/models/reaction.model.js +5 -5
  232. package/src/modules/community/router/blogposts.js +55 -57
  233. package/src/modules/events/events.server.js +37 -16
  234. package/src/modules/events/models/ticket.model.js +6 -6
  235. package/src/modules/files/files.server.js +17 -7
  236. package/src/modules/gallery/gallery.client.js +44 -8
  237. package/src/modules/gallery/gallery.server.js +28 -9
  238. package/src/modules/gallery/router/gallery.router.js +2 -2
  239. package/src/modules/orders/components/pages/OrderCreate.vue +1 -1
  240. package/src/modules/orders/components/pages/OrderCreateBackoffice.vue +1 -1
  241. package/src/modules/orders/components/sections/FormAddCustomer.vue +2 -2
  242. package/src/modules/orders/orders.client.js +4 -1
  243. package/src/modules/orders/orders.server.js +1 -0
  244. package/src/modules/organizations/components/blocks/CardDepartment.vue +1 -1
  245. package/src/modules/organizations/components/blocks/CardOrganization.vue +1 -1
  246. package/src/modules/organizations/components/pages/Department.vue +1 -1
  247. package/src/modules/organizations/components/pages/DepartmentEdit.vue +1 -1
  248. package/src/modules/organizations/components/pages/Members.vue +1 -1
  249. package/src/modules/organizations/components/pages/Organization.vue +1 -1
  250. package/src/modules/organizations/components/sections/MembersAdd.vue +2 -2
  251. package/src/modules/organizations/controllers/organizations.controller.js +0 -2
  252. package/src/modules/organizations/models/department.model.js +7 -7
  253. package/src/modules/organizations/models/membership.model.js +5 -5
  254. package/src/modules/organizations/organizations.client.js +71 -16
  255. package/src/modules/organizations/organizations.server.js +43 -18
  256. package/src/modules/organizations/router/organizations.js +6 -13
  257. package/src/modules/{marketplace → products}/components/layouts/Marketplace.vue +20 -19
  258. package/src/modules/{marketplace → products}/components/pages/Catalog.vue +5 -5
  259. package/src/modules/products/components/pages/Products.vue +2 -2
  260. package/src/modules/products/components/sections/FilterProducts.vue +1 -1
  261. package/src/modules/{marketplace → products}/components/sections/Filters.vue +12 -15
  262. package/src/modules/products/components/sections/HeroRecommendation.vue +1 -1
  263. package/src/modules/products/components/sections/PopularProducts.vue +1 -1
  264. package/src/modules/products/models/category.model.js +3 -3
  265. package/src/modules/products/models/product.model.js +7 -7
  266. package/src/modules/products/products.client.js +93 -25
  267. package/src/modules/products/products.server.js +47 -16
  268. package/src/modules/products/router/marketplace.router.js +38 -0
  269. package/src/modules/products/router/products.router.js +72 -32
  270. package/src/modules/reports/models/report.model.js +4 -4
  271. package/src/modules/reports/reports.client.js +35 -14
  272. package/src/modules/reports/reports.server.js +27 -8
  273. package/src/modules/spots/components/layouts/Spots.vue +1 -1
  274. package/src/modules/spots/components/pages/Map.vue +1 -1
  275. package/src/modules/spots/components/pages/Spot.vue +1 -1
  276. package/src/modules/backoffice/router/admin.js +0 -51
  277. package/src/modules/landing/components/pages/404.vue +0 -3
  278. package/src/modules/landing/components/pages/Farming.vue +0 -226
  279. package/src/modules/landing/components/pages/Governance.vue +0 -144
  280. package/src/modules/landing/components/pages/Home.vue +0 -51
  281. package/src/modules/landing/components/pages/Hotel.vue +0 -43
  282. package/src/modules/landing/router/landing.js +0 -39
  283. package/src/modules/legal/components/pages/Legal.vue +0 -62
  284. package/src/modules/legal/components/pages/legal/Cookies.vue +0 -370
  285. package/src/modules/legal/components/pages/legal/EULA.vue +0 -2145
  286. package/src/modules/legal/components/pages/legal/Privacy.vue +0 -4284
  287. package/src/modules/legal/components/pages/legal/Terms.vue +0 -1283
  288. package/src/modules/legal/legal.client.js +0 -18
  289. package/src/modules/legal/router/legal.js +0 -59
  290. package/src/modules/marketplace/router/marketplace.js +0 -54
  291. package/src/modules/users/router/users.js +0 -90
  292. package/src/modules/users/users.client.js +0 -22
  293. package/src/modules/users/users.server.js +0 -13
  294. /package/src/modules/{users → auth/controllers}/middlewares/visitor.logger.js +0 -0
  295. /package/src/modules/{users/controllers/users.controller.js → auth/controllers/services/users.service.js} +0 -0
  296. /package/src/modules/{users → auth}/models/request.model.js +0 -0
  297. /package/src/modules/{users → auth}/models/user.model.js +0 -0
  298. /package/src/modules/{users → auth}/models/visitor.model.js +0 -0
  299. /package/src/modules/{users → auth/views}/components/blocks/CardUser.vue +0 -0
  300. /package/src/modules/{users → auth/views}/components/pages/ProfileBlogposts.vue +0 -0
  301. /package/src/modules/{users → auth/views}/components/pages/ProfileComments.vue +0 -0
  302. /package/src/modules/{users → auth/views}/components/pages/ProfileLikes.vue +0 -0
  303. /package/src/modules/{users → auth/views}/components/sections/ProfileCompletion.vue +0 -0
  304. /package/src/modules/{users → auth/views}/router/account.js +0 -0
  305. /package/src/modules/{users → auth/views}/store/users.js +0 -0
  306. /package/src/modules/{projects/controller → governance/controllers/factories}/projects.controller.js +0 -0
  307. /package/src/modules/{projects → governance/controllers}/routes/projects.routes.js +0 -0
  308. /package/src/modules/{projects → governance}/models/project.model.js +0 -0
  309. /package/src/modules/{projects → governance/views}/store/projects.js +0 -0
  310. /package/src/modules/{marketplace → products}/store/marketplace.js +0 -0
@@ -5,7 +5,7 @@ import _sfc_main$3 from "../../../../components/Feed/Feed.vue.js";
5
5
  /* empty css */
6
6
  import "vue-i18n";
7
7
  import { actions } from "../../store/categories.js";
8
- import { state } from "../../../marketplace/store/marketplace.js";
8
+ import { state } from "../../store/marketplace.js";
9
9
  /* empty css */
10
10
  /* empty css */
11
11
  import _sfc_main$2 from "../../../globals/views/components/blocks/BlockFilter.vue.js";
@@ -139,7 +139,7 @@ const _sfc_main = {
139
139
  user: state$2.access,
140
140
  class: "h-max",
141
141
  onClickCapture: ($event) => _ctx.$router.push({
142
- name: "Product Organization",
142
+ name: "Organization_Product",
143
143
  params: {
144
144
  _id: unref(route).params._id,
145
145
  product: product._id
@@ -1 +1 @@
1
- {"version":3,"file":"Products.vue.js","sources":["../../../../../../../src/modules/products/components/pages/Products.vue"],"sourcesContent":["<template>\n <div>\n <header \n v-if=\"route.name !== 'Organization'\"\n class=\"mn-b-medium flex-v-center flex-nowrap flex\"\n >\n <h2 class=\"mn-r-medium\">Products</h2>\n <button \n @click=\"$router.push({\n name: 'ProductAdd'\n })\" \n class=\"radius-100 i-big hover-scale-1 cursor-pointer t-white bg-second\">\n +\n </button>\n </header>\n\n <Tab \n v-if=\"route.name !== 'Organization'\"\n v-model:selected=\"tabProducts\"\n :tabs=\"[\n { name: 'All', value: 'all' },\n { name: 'Published', value: 'published' },\n { name: 'Unpublished', value: 'unpublished' }, \n { name: 'Archivied', value: 'archivied' } \n ]\"\n class=\"mn-b-small o-hidden h5 radius-big bg-light\"\n />\n\n <div class=\"cols-2-1_3 bg-light pd-thin radius-big gap-thin\">\n\n <BlockFilter\n v-model:filter=\"marketplace.state.filter\"\n :options=\"marketplace.state.filter.options\"\n class=\"h-100 w-100 desktop-only\"\n />\n\n\n <div class=\"rows-1\">\n <!-- <BlockSearch \n @search=\"updateSearch\"\n placeholder=\"Enter product name\"\n class=\"bg-white mn-b-thin\"\n /> -->\n <Feed\n v-model:filter=\"marketplace.state.filter\"\n :search=\"true\"\n :states=\"{\n empty: {\n title: 'No Products Found',\n description: 'Currently, there are no products available.'\n }\n }\"\n :store=\"{\n read: (options) => products.actions.read(options),\n state: products.state\n }\"\n :options=\"{\n limit: 15,\n organization: route.params._id,\n categories: route.query.categories,\n prices: route.query.prices,\n delivery: route.query.delivery,\n // search: route.query.search,\n ...(tabProducts !== 'all' && { status: tabProducts })\n // user: user\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"cols-4 gap-thin\"\n >\n <CardProduct\n v-for=\"product in items\"\n :key=\"product._id\"\n :product=\"product\"\n :user=\"auth.state.access\"\n class=\"h-max\"\n @click.capture=\"$router.push({\n name: 'Product Organization', \n params: { \n _id: route.params._id, \n product: product._id \n } \n })\" \n />\n </Feed>\n </div>\n </div>\n</div>\n</template>\n\n\n<script setup=\"props\">\n // Import libs\n import { computed, watch, onMounted, ref } from 'vue'\n import { useRoute, useRouter } from 'vue-router'\n\n // Import components\n import Tab from '@pf/src/components/Tab/Tab.vue'\n import Feed from '@pf/src/components/Feed/Feed.vue'\n\n import FilterProducts from '@pf/src/modules/products/components/sections/FilterProducts.vue'\n import BlockSearch from '@pf/src/modules/globals/views/components/blocks/BlockSearch.vue'\n import BlockFilter from '@pf/src/modules/globals/views/components/blocks/BlockFilter.vue'\n\n import CardProduct from '@pf/src/modules/products/components/blocks/CardProduct.vue'\n\n // Accessing router and store\n import * as auth from '@pf/src/modules/auth/views/store/auth';\n import * as products from '@pf/src/modules/products/store/products';\n import * as marketplace from '@pf/src/modules/marketplace/store/marketplace';\n import * as categories from '@pf/src/modules/products/store/categories';\n\n const route = useRoute()\n const router = useRouter()\n\n // Tab logic\n const tabProducts = ref(route.query.tabProducts ? route.query.tabProducts : 'all')\n\n if (route.name !== 'Organization') route.query.tabProducts = tabProducts.value\n \n if (route.query) {\n const query = route.query;\n\n marketplace.state.filter.selected.categories = query.categories ? query.categories.split(',') : [];\n marketplace.state.filter.selected.prices = query.prices ? query.prices.split(',') : [];\n marketplace.state.filter.selected.delivery = query.delivery ? query.delivery.split(',') : [];\n }\n\n\n watch(tabProducts, (newValue) => {\n if (route.name !== 'Organization') router.replace({ query: { ...route.query, tabProducts: newValue } });\n });\n\n onMounted(async () => {\n let categoriesFilter = await categories.actions.fetchCategories();\n\n categoriesFilter = categoriesFilter.map(category => ({\n value: category.url,\n label: category.name\n }));\n\n const index = marketplace.state.filter.options.findIndex(option => option.value === 'categories');\n\n const categoryOption = {\n title: 'Categories',\n value: 'categories',\n options: categoriesFilter\n };\n\n if (index !== -1) {\n marketplace.state.filter.options[index] = categoryOption;\n } else {\n marketplace.state.filter.options.unshift(categoryOption);\n }\n })\n\n watch(() => marketplace.state.sort, (newSortValue, oldSortValue) => {\n let query = { ...route.query}\n \n query.sortParam = newSortValue.param\n query.sortOrder = newSortValue.order\n \n // replace the current route\n router.replace({ query });\n }, { deep: true });\n\n\n watch(() => marketplace.state.filter.selected, (newFilterValue, oldFilterValue) => {\n // Переводим фильтр в формат query\n const query = { ...route.query };\n\n // Удаляем старые значения фильтра из query\n Object.keys(oldFilterValue).forEach(key => {\n if (query[key]) {\n delete query[key];\n }\n });\n\n // Добавляем новые значения фильтра в query\n const newQueryValues = Object.fromEntries(\n Object.entries(newFilterValue)\n .filter(([key, value]) => Array.isArray(value) && value.length > 0)\n .map(([key, value]) => [key, value.join(',')])\n );\n\n delete query.options;\n Object.assign(query, newQueryValues);\n\n // Обновляем маршрут с новым query\n router.replace({ query });\n }, { deep: true })\n\n\n\n \n function updateSearch(search) {\n let query = { ...route.query}\n \n query.search = search\n \n router.replace({ query });\n }\n</script>\n\n<style lang=\"scss\">\n\n\n</style>\n"],"names":["marketplace.state","categories.actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAiHE,UAAM,QAAQ,SAAU;AACxB,UAAM,SAAS,UAAW;AAG1B,UAAM,cAAc,IAAI,MAAM,MAAM,cAAc,MAAM,MAAM,cAAc,KAAK;AAEjF,QAAI,MAAM,SAAS,eAAgB,OAAM,MAAM,cAAc,YAAY;AAEzE,QAAI,MAAM,OAAO;AACf,YAAM,QAAQ,MAAM;AAEpBA,YAAkB,OAAO,SAAS,aAAa,MAAM,aAAa,MAAM,WAAW,MAAM,GAAG,IAAI,CAAA;AAChGA,YAAkB,OAAO,SAAS,SAAS,MAAM,SAAS,MAAM,OAAO,MAAM,GAAG,IAAI,CAAA;AACpFA,YAAkB,OAAO,SAAS,WAAW,MAAM,WAAW,MAAM,SAAS,MAAM,GAAG,IAAI,CAAA;AAAA,IAC3F;AAGD,UAAM,aAAa,CAAC,aAAa;AAC/B,UAAI,MAAM,SAAS,eAAgB,QAAO,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,aAAa,SAAQ,EAAI,CAAA;AAAA,IAC1G,CAAG;AAED,cAAU,YAAY;AACpB,UAAI,mBAAmB,MAAMC,QAAmB;AAEhD,yBAAmB,iBAAiB,IAAI,eAAa;AAAA,QACnD,OAAO,SAAS;AAAA,QAChB,OAAO,SAAS;AAAA,MACjB,EAAC;AAEF,YAAM,QAAQD,MAAkB,OAAO,QAAQ,UAAU,YAAU,OAAO,UAAU,YAAY;AAEhG,YAAM,iBAAiB;AAAA,QACrB,OAAO;AAAA,QACP,OAAO;AAAA,QACP,SAAS;AAAA,MACf;AAEI,UAAI,UAAU,IAAI;AACdA,cAAkB,OAAO,QAAQ,KAAK,IAAI;AAAA,MAClD,OAAW;AACHA,cAAkB,OAAO,QAAQ,QAAQ,cAAc;AAAA,MAC1D;AAAA,IACL,CAAG;AAED,UAAM,MAAMA,MAAkB,MAAM,CAAC,cAAc,iBAAiB;AAClE,UAAI,QAAQ,EAAE,GAAG,MAAM,MAAK;AAE5B,YAAM,YAAY,aAAa;AAC/B,YAAM,YAAY,aAAa;AAG/B,aAAO,QAAQ,EAAE,MAAK,CAAE;AAAA,IAC5B,GAAK,EAAE,MAAM,KAAI,CAAE;AAGjB,UAAM,MAAMA,MAAkB,OAAO,UAAU,CAAC,gBAAgB,mBAAmB;AAEjF,YAAM,QAAQ,EAAE,GAAG,MAAM,MAAK;AAG9B,aAAO,KAAK,cAAc,EAAE,QAAQ,SAAO;AACzC,YAAI,MAAM,GAAG,GAAG;AACd,iBAAO,MAAM,GAAG;AAAA,QACjB;AAAA,MACP,CAAK;AAGD,YAAM,iBAAiB,OAAO;AAAA,QAC5B,OAAO,QAAQ,cAAc,EAC1B,OAAO,CAAC,CAAC,KAAK,KAAK,MAAM,MAAM,QAAQ,KAAK,KAAK,MAAM,SAAS,CAAC,EACjE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,MAAM,KAAK,GAAG,CAAC,CAAC;AAAA,MACrD;AAEI,aAAO,MAAM;AACb,aAAO,OAAO,OAAO,cAAc;AAGnC,aAAO,QAAQ,EAAE,MAAK,CAAE;AAAA,IAC5B,GAAK,EAAE,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Products.vue.js","sources":["../../../../../../../src/modules/products/components/pages/Products.vue"],"sourcesContent":["<template>\n <div>\n <header \n v-if=\"route.name !== 'Organization'\"\n class=\"mn-b-medium flex-v-center flex-nowrap flex\"\n >\n <h2 class=\"mn-r-medium\">Products</h2>\n <button \n @click=\"$router.push({\n name: 'ProductAdd'\n })\" \n class=\"radius-100 i-big hover-scale-1 cursor-pointer t-white bg-second\">\n +\n </button>\n </header>\n\n <Tab \n v-if=\"route.name !== 'Organization'\"\n v-model:selected=\"tabProducts\"\n :tabs=\"[\n { name: 'All', value: 'all' },\n { name: 'Published', value: 'published' },\n { name: 'Unpublished', value: 'unpublished' }, \n { name: 'Archivied', value: 'archivied' } \n ]\"\n class=\"mn-b-small o-hidden h5 radius-big bg-light\"\n />\n\n <div class=\"cols-2-1_3 bg-light pd-thin radius-big gap-thin\">\n\n <BlockFilter\n v-model:filter=\"marketplace.state.filter\"\n :options=\"marketplace.state.filter.options\"\n class=\"h-100 w-100 desktop-only\"\n />\n\n\n <div class=\"rows-1\">\n <!-- <BlockSearch \n @search=\"updateSearch\"\n placeholder=\"Enter product name\"\n class=\"bg-white mn-b-thin\"\n /> -->\n <Feed\n v-model:filter=\"marketplace.state.filter\"\n :search=\"true\"\n :states=\"{\n empty: {\n title: 'No Products Found',\n description: 'Currently, there are no products available.'\n }\n }\"\n :store=\"{\n read: (options) => products.actions.read(options),\n state: products.state\n }\"\n :options=\"{\n limit: 15,\n organization: route.params._id,\n categories: route.query.categories,\n prices: route.query.prices,\n delivery: route.query.delivery,\n // search: route.query.search,\n ...(tabProducts !== 'all' && { status: tabProducts })\n // user: user\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"cols-4 gap-thin\"\n >\n <CardProduct\n v-for=\"product in items\"\n :key=\"product._id\"\n :product=\"product\"\n :user=\"auth.state.access\"\n class=\"h-max\"\n @click.capture=\"$router.push({\n name: 'Organization_Product', \n params: { \n _id: route.params._id, \n product: product._id \n } \n })\" \n />\n </Feed>\n </div>\n </div>\n</div>\n</template>\n\n\n<script setup=\"props\">\n // Import libs\n import { computed, watch, onMounted, ref } from 'vue'\n import { useRoute, useRouter } from 'vue-router'\n\n // Import components\n import Tab from '@pf/src/components/Tab/Tab.vue'\n import Feed from '@pf/src/components/Feed/Feed.vue'\n\n import FilterProducts from '@pf/src/modules/products/components/sections/FilterProducts.vue'\n import BlockSearch from '@pf/src/modules/globals/views/components/blocks/BlockSearch.vue'\n import BlockFilter from '@pf/src/modules/globals/views/components/blocks/BlockFilter.vue'\n\n import CardProduct from '@pf/src/modules/products/components/blocks/CardProduct.vue'\n\n // Accessing router and store\n import * as auth from '@pf/src/modules/auth/views/store/auth';\n import * as products from '@pf/src/modules/products/store/products';\n import * as marketplace from '@pf/src/modules/products/store/marketplace';\n import * as categories from '@pf/src/modules/products/store/categories';\n\n const route = useRoute()\n const router = useRouter()\n\n // Tab logic\n const tabProducts = ref(route.query.tabProducts ? route.query.tabProducts : 'all')\n\n if (route.name !== 'Organization') route.query.tabProducts = tabProducts.value\n \n if (route.query) {\n const query = route.query;\n\n marketplace.state.filter.selected.categories = query.categories ? query.categories.split(',') : [];\n marketplace.state.filter.selected.prices = query.prices ? query.prices.split(',') : [];\n marketplace.state.filter.selected.delivery = query.delivery ? query.delivery.split(',') : [];\n }\n\n\n watch(tabProducts, (newValue) => {\n if (route.name !== 'Organization') router.replace({ query: { ...route.query, tabProducts: newValue } });\n });\n\n onMounted(async () => {\n let categoriesFilter = await categories.actions.fetchCategories();\n\n categoriesFilter = categoriesFilter.map(category => ({\n value: category.url,\n label: category.name\n }));\n\n const index = marketplace.state.filter.options.findIndex(option => option.value === 'categories');\n\n const categoryOption = {\n title: 'Categories',\n value: 'categories',\n options: categoriesFilter\n };\n\n if (index !== -1) {\n marketplace.state.filter.options[index] = categoryOption;\n } else {\n marketplace.state.filter.options.unshift(categoryOption);\n }\n })\n\n watch(() => marketplace.state.sort, (newSortValue, oldSortValue) => {\n let query = { ...route.query}\n \n query.sortParam = newSortValue.param\n query.sortOrder = newSortValue.order\n \n // replace the current route\n router.replace({ query });\n }, { deep: true });\n\n\n watch(() => marketplace.state.filter.selected, (newFilterValue, oldFilterValue) => {\n // Переводим фильтр в формат query\n const query = { ...route.query };\n\n // Удаляем старые значения фильтра из query\n Object.keys(oldFilterValue).forEach(key => {\n if (query[key]) {\n delete query[key];\n }\n });\n\n // Добавляем новые значения фильтра в query\n const newQueryValues = Object.fromEntries(\n Object.entries(newFilterValue)\n .filter(([key, value]) => Array.isArray(value) && value.length > 0)\n .map(([key, value]) => [key, value.join(',')])\n );\n\n delete query.options;\n Object.assign(query, newQueryValues);\n\n // Обновляем маршрут с новым query\n router.replace({ query });\n }, { deep: true })\n\n\n\n \n function updateSearch(search) {\n let query = { ...route.query}\n \n query.search = search\n \n router.replace({ query });\n }\n</script>\n\n<style lang=\"scss\">\n\n\n</style>\n"],"names":["marketplace.state","categories.actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAiHE,UAAM,QAAQ,SAAU;AACxB,UAAM,SAAS,UAAW;AAG1B,UAAM,cAAc,IAAI,MAAM,MAAM,cAAc,MAAM,MAAM,cAAc,KAAK;AAEjF,QAAI,MAAM,SAAS,eAAgB,OAAM,MAAM,cAAc,YAAY;AAEzE,QAAI,MAAM,OAAO;AACf,YAAM,QAAQ,MAAM;AAEpBA,YAAkB,OAAO,SAAS,aAAa,MAAM,aAAa,MAAM,WAAW,MAAM,GAAG,IAAI,CAAA;AAChGA,YAAkB,OAAO,SAAS,SAAS,MAAM,SAAS,MAAM,OAAO,MAAM,GAAG,IAAI,CAAA;AACpFA,YAAkB,OAAO,SAAS,WAAW,MAAM,WAAW,MAAM,SAAS,MAAM,GAAG,IAAI,CAAA;AAAA,IAC3F;AAGD,UAAM,aAAa,CAAC,aAAa;AAC/B,UAAI,MAAM,SAAS,eAAgB,QAAO,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,aAAa,SAAQ,EAAI,CAAA;AAAA,IAC1G,CAAG;AAED,cAAU,YAAY;AACpB,UAAI,mBAAmB,MAAMC,QAAmB;AAEhD,yBAAmB,iBAAiB,IAAI,eAAa;AAAA,QACnD,OAAO,SAAS;AAAA,QAChB,OAAO,SAAS;AAAA,MACjB,EAAC;AAEF,YAAM,QAAQD,MAAkB,OAAO,QAAQ,UAAU,YAAU,OAAO,UAAU,YAAY;AAEhG,YAAM,iBAAiB;AAAA,QACrB,OAAO;AAAA,QACP,OAAO;AAAA,QACP,SAAS;AAAA,MACf;AAEI,UAAI,UAAU,IAAI;AACdA,cAAkB,OAAO,QAAQ,KAAK,IAAI;AAAA,MAClD,OAAW;AACHA,cAAkB,OAAO,QAAQ,QAAQ,cAAc;AAAA,MAC1D;AAAA,IACL,CAAG;AAED,UAAM,MAAMA,MAAkB,MAAM,CAAC,cAAc,iBAAiB;AAClE,UAAI,QAAQ,EAAE,GAAG,MAAM,MAAK;AAE5B,YAAM,YAAY,aAAa;AAC/B,YAAM,YAAY,aAAa;AAG/B,aAAO,QAAQ,EAAE,MAAK,CAAE;AAAA,IAC5B,GAAK,EAAE,MAAM,KAAI,CAAE;AAGjB,UAAM,MAAMA,MAAkB,OAAO,UAAU,CAAC,gBAAgB,mBAAmB;AAEjF,YAAM,QAAQ,EAAE,GAAG,MAAM,MAAK;AAG9B,aAAO,KAAK,cAAc,EAAE,QAAQ,SAAO;AACzC,YAAI,MAAM,GAAG,GAAG;AACd,iBAAO,MAAM,GAAG;AAAA,QACjB;AAAA,MACP,CAAK;AAGD,YAAM,iBAAiB,OAAO;AAAA,QAC5B,OAAO,QAAQ,cAAc,EAC1B,OAAO,CAAC,CAAC,KAAK,KAAK,MAAM,MAAM,QAAQ,KAAK,KAAK,MAAM,SAAS,CAAC,EACjE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,MAAM,KAAK,GAAG,CAAC,CAAC;AAAA,MACrD;AAEI,aAAO,MAAM;AACb,aAAO,OAAO,OAAO,cAAc;AAGnC,aAAO,QAAQ,EAAE,MAAK,CAAE;AAAA,IAC5B,GAAK,EAAE,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -6,7 +6,7 @@ const Checkbox = require("../../../../components/Checkbox/Checkbox.vue.cjs");
6
6
  const vueI18n = require("vue-i18n");
7
7
  const vueRouter = require("vue-router");
8
8
  const categories = require("../../store/categories.cjs");
9
- const marketplace = require("../../../marketplace/store/marketplace.cjs");
9
+ const marketplace = require("../../store/marketplace.cjs");
10
10
  ;/* empty css */
11
11
  const _hoisted_1 = { class: "pd-medium bg-light radius-big" };
12
12
  const _hoisted_2 = { class: "cursor-pointer mn-r-auto t-medium p-big" };
@@ -1 +1 @@
1
- {"version":3,"file":"FilterProducts.vue.cjs","sources":["../../../../../../../src/modules/products/components/sections/FilterProducts.vue"],"sourcesContent":[" <template>\n <div class=\"pd-medium bg-light radius-big\">\n <!-- Categories Filter -->\n <Spoiler \n class=\"radius-small o-hidden mn-b-small\"\n :status=\"true\"\n >\n <template #header>\n <p class=\"cursor-pointer mn-r-auto t-medium p-big\">{{ t('categoriesTitle') }}</p>\n <!-- SVG Icon -->\n </template>\n <template #content>\n <Checkbox \n v-for=\"(category, index) in categories.state.all\"\n :key=\"index\"\n :label=\"category.name\"\n :value=\"category.url\"\n class=\"w-100 mn-t-small mn-b-small bg-white radius-small pd-small\"\n :radio=\"marketplace.state.filter.categories\"\n @update:radio=\"event => marketplace.state.filter.categories = event\"\n />\n </template>\n </Spoiler>\n\n <hr class=\"mn-b-small t-transp\">\n\n <!-- Prices Filter -->\n <Spoiler \n class=\"radius-small o-hidden mn-b-small\"\n :status=\"false\"\n >\n <template #header>\n <p class=\"cursor-pointer mn-r-auto t-medium p-big\">{{ t('filters.price.title') }}</p>\n <!-- SVG Icon -->\n </template>\n <template #content>\n <Checkbox \n v-for=\"(price, index) in prices\"\n :key=\"index\"\n :label=\"price.label\"\n :value=\"price.value\"\n class=\"w-100 mn-t-small bg-white radius-small pd-small\"\n :radio=\"marketplace.state.filter.prices\"\n @update:radio=\"event => marketplace.state.filter.prices = event\"\n />\n </template>\n </Spoiler>\n\n <hr class=\"mn-b-small\">\n\n <!-- Delivery Filter -->\n <Spoiler \n class=\"radius-small o-hidden mn-b-small\"\n :status=\"false\"\n >\n <template #header>\n <p class=\"cursor-pointer mn-r-auto t-medium p-big\">Delivery</p>\n </template>\n <template #content>\n <Checkbox \n v-for=\"(deliveryOption, index) in deliveryOptions\"\n :key=\"index\"\n :label=\"deliveryOption.label\"\n :value=\"deliveryOption.value\"\n class=\"w-100 mn-t-small bg-white radius-small pd-small\"\n :radio=\"marketplace.state.filter.delivery\"\n @update:radio=\"event => marketplace.state.filter.delivery = event\"\n />\n </template>\n </Spoiler>\n\n <hr class=\"mn-b-semi\">\n\n <!-- Reset filter -->\n <button @click=\"resetFilters\" class=\"bg-main w-100 button\">{{ t('filters.reset') }}</button>\n </div>\n </template>\n\n<script setup>\nimport { ref, watch, onMounted } from 'vue'\n\nimport Spoiler from \"@pf/src/components/Spoiler/Spoiler.vue\"\nimport Checkbox from \"@pf/src/components/Checkbox/Checkbox.vue\"\n\nimport { useI18n } from 'vue-i18n'\nimport { useRoute, useRouter,onBeforeRouteLeave } from 'vue-router'\n\nconst route = useRoute()\nconst router = useRouter()\n\nimport * as categories from '@pf/src/modules/products/store/categories';\nimport * as marketplace from '@pf/src/modules/marketplace/store/marketplace';\n\nlet options = {\n status: 'published'\n}\n\nlet selectedFilters = ref({\n categories: [],\n prices: [],\n delivery: [],\n extra: []\n})\n\n// Пропсы и данные, которые вы передаёте в компонент\nconst props = defineProps({\n selectedFilters: Object,\n prices: {\n type: Array,\n default: () => [\n { label: 'Under 300฿', value: '<300' },\n { label: '300฿ to 600฿', value: '300-600' },\n { label: '600฿ to 1200฿', value: '600-1200' },\n { label: '$1200 and above', value: '>1200' }\n ]\n },\n deliveryOptions: {\n type: Array,\n default: () => [\n { label: 'Pickup', value: { min: 0, max: 25 } },\n { label: 'Courier', value: { min: 25, max: 50 } },\n { label: 'Post', value: { min: 50, max: 100 } }\n ]\n }\n})\n\nwatch(() => marketplace.state.filter, (newFilterValue, oldFilterValue) => {\n // Переводим фильтр в формат query\n const query = { ...route.query };\n\n // Удаляем старые значения фильтра из query\n Object.keys(oldFilterValue).forEach(key => {\n if (query[key]) {\n delete query[key];\n }\n });\n\n // Добавляем новые значения фильтра в query\n const newQueryValues = Object.fromEntries(\n Object.entries(newFilterValue)\n .filter(([key, value]) => Array.isArray(value) && value.length > 0)\n .map(([key, value]) => [key, value.join(',')])\n );\n Object.assign(query, newQueryValues);\n\n // Обновляем маршрут с новым query\n router.repalce({ query });\n}, { deep: true })\n\nonMounted(async () => {\n await categories.actions.fetchCategories(options)\n \n if (route.query) {\n const query = route.query;\n const newFilterValue = {\n categories: query.categories ? query.categories.split(',') : [],\n prices: query.prices ? query.prices.split(',') : [],\n delivery: query.delivery ? query.delivery.split(',') : [],\n // Продолжайте этот паттерн для остальных полей фильтра\n };\n marketplace.state.filter.innerHTML = newFilterValue;\n }\n})\n\nconst emit = defineEmits(['updateFilters', 'resetFilters'])\n\nconst emitFilterChange = (filterType, value) => {\n emit('updateFilters', { filterType, value })\n}\n\nconst resetFilters = () => {\n emit('resetFilters')\n}\nconst text = {\n locale: 'en',\n messages: {\n en: {\n categoriesTitle: 'Category',\n categories: [],\n filters: {\n title: 'Filters',\n price: {\n title: 'Price',\n from: 'From',\n to: 'To'\n },\n filters: [],\n reset: 'Reset Filters'\n }\n },\n ru: {\n categoriesTitle: 'Категория',\n categories: [],\n filters: {\n title: 'Фильтры',\n price: {\n title: 'Цена',\n from: 'От',\n to: 'До'\n },\n filters: [],\n reset: 'Сбросить фильтры',\n }\n }\n }\n }\n\n categories.state.all.forEach( category => {\n category.localization.forEach( localization => {\n text.messages[localization.locale].categories.push(localization.text)\n })\n })\n\n const { t } = useI18n(text)\n \n\n\n// Добавьте свою локализацию и методы t, если они нужны\n</script>\n\n<style>\n/* Ваши стили */\n</style>\n"],"names":["useRoute","useRouter","ref","watch","marketplace.state","onMounted","categories.actions","categories.state","useI18n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuFA,UAAM,QAAQA,UAAAA,SAAU;AACxB,UAAM,SAASC,UAAAA,UAAW;AAK1B,QAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,IACV;AAEsBC,QAAAA,IAAI;AAAA,MACxB,YAAY,CAAE;AAAA,MACd,QAAQ,CAAE;AAAA,MACV,UAAU,CAAE;AAAA,MACZ,OAAO,CAAE;AAAA,IACX,CAAC;AAwBDC,QAAK,MAAC,MAAMC,YAAAA,MAAkB,QAAQ,CAAC,gBAAgB,mBAAmB;AAExE,YAAM,QAAQ,EAAE,GAAG,MAAM,MAAK;AAG9B,aAAO,KAAK,cAAc,EAAE,QAAQ,SAAO;AACzC,YAAI,MAAM,GAAG,GAAG;AACd,iBAAO,MAAM,GAAG;AAAA,QACjB;AAAA,MACL,CAAG;AAGD,YAAM,iBAAiB,OAAO;AAAA,QAC5B,OAAO,QAAQ,cAAc,EAC1B,OAAO,CAAC,CAAC,KAAK,KAAK,MAAM,MAAM,QAAQ,KAAK,KAAK,MAAM,SAAS,CAAC,EACjE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,MAAM,KAAK,GAAG,CAAC,CAAC;AAAA,MACnD;AACE,aAAO,OAAO,OAAO,cAAc;AAGnC,aAAO,QAAQ,EAAE,MAAK,CAAE;AAAA,IAC1B,GAAG,EAAE,MAAM,MAAM;AAEjBC,QAAAA,UAAU,YAAY;AACpB,YAAMC,WAAkB,QAAC,gBAAgB,OAAO;AAEhD,UAAI,MAAM,OAAO;AACf,cAAM,QAAQ,MAAM;AACpB,cAAM,iBAAiB;AAAA,UACrB,YAAY,MAAM,aAAa,MAAM,WAAW,MAAM,GAAG,IAAI,CAAE;AAAA,UAC/D,QAAQ,MAAM,SAAS,MAAM,OAAO,MAAM,GAAG,IAAI,CAAE;AAAA,UACnD,UAAU,MAAM,WAAW,MAAM,SAAS,MAAM,GAAG,IAAI,CAAE;AAAA;AAAA,QAE/D;AACIF,0BAAkB,OAAO,YAAY;AAAA,MACtC;AAAA,IACH,CAAC;AAED,UAAM,OAAO;AAMb,UAAM,eAAe,MAAM;AACzB,WAAK,cAAc;AAAA,IACrB;AACA,UAAM,OAAO;AAAA,MACT,QAAQ;AAAA,MACR,UAAU;AAAA,QACR,IAAI;AAAA,UACF,iBAAiB;AAAA,UACjB,YAAY,CAAE;AAAA,UACd,SAAS;AAAA,YACP,OAAO;AAAA,YACP,OAAO;AAAA,cACL,OAAO;AAAA,cACP,MAAM;AAAA,cACN,IAAI;AAAA,YACL;AAAA,YACD,SAAS,CAAE;AAAA,YACX,OAAO;AAAA,UACR;AAAA,QACF;AAAA,QACD,IAAI;AAAA,UACF,iBAAiB;AAAA,UACjB,YAAY,CAAE;AAAA,UACd,SAAS;AAAA,YACP,OAAO;AAAA,YACP,OAAO;AAAA,cACL,OAAO;AAAA,cACP,MAAM;AAAA,cACN,IAAI;AAAA,YACL;AAAA,YACD,SAAS,CAAE;AAAA,YACX,OAAO;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEDG,qBAAiB,IAAI,QAAS,cAAY;AACxC,eAAS,aAAa,QAAS,kBAAgB;AAC7C,aAAK,SAAS,aAAa,MAAM,EAAE,WAAW,KAAK,aAAa,IAAI;AAAA,MAC1E,CAAK;AAAA,IACL,CAAG;AAED,UAAM,EAAE,EAAC,IAAKC,QAAO,QAAC,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"FilterProducts.vue.cjs","sources":["../../../../../../../src/modules/products/components/sections/FilterProducts.vue"],"sourcesContent":[" <template>\n <div class=\"pd-medium bg-light radius-big\">\n <!-- Categories Filter -->\n <Spoiler \n class=\"radius-small o-hidden mn-b-small\"\n :status=\"true\"\n >\n <template #header>\n <p class=\"cursor-pointer mn-r-auto t-medium p-big\">{{ t('categoriesTitle') }}</p>\n <!-- SVG Icon -->\n </template>\n <template #content>\n <Checkbox \n v-for=\"(category, index) in categories.state.all\"\n :key=\"index\"\n :label=\"category.name\"\n :value=\"category.url\"\n class=\"w-100 mn-t-small mn-b-small bg-white radius-small pd-small\"\n :radio=\"marketplace.state.filter.categories\"\n @update:radio=\"event => marketplace.state.filter.categories = event\"\n />\n </template>\n </Spoiler>\n\n <hr class=\"mn-b-small t-transp\">\n\n <!-- Prices Filter -->\n <Spoiler \n class=\"radius-small o-hidden mn-b-small\"\n :status=\"false\"\n >\n <template #header>\n <p class=\"cursor-pointer mn-r-auto t-medium p-big\">{{ t('filters.price.title') }}</p>\n <!-- SVG Icon -->\n </template>\n <template #content>\n <Checkbox \n v-for=\"(price, index) in prices\"\n :key=\"index\"\n :label=\"price.label\"\n :value=\"price.value\"\n class=\"w-100 mn-t-small bg-white radius-small pd-small\"\n :radio=\"marketplace.state.filter.prices\"\n @update:radio=\"event => marketplace.state.filter.prices = event\"\n />\n </template>\n </Spoiler>\n\n <hr class=\"mn-b-small\">\n\n <!-- Delivery Filter -->\n <Spoiler \n class=\"radius-small o-hidden mn-b-small\"\n :status=\"false\"\n >\n <template #header>\n <p class=\"cursor-pointer mn-r-auto t-medium p-big\">Delivery</p>\n </template>\n <template #content>\n <Checkbox \n v-for=\"(deliveryOption, index) in deliveryOptions\"\n :key=\"index\"\n :label=\"deliveryOption.label\"\n :value=\"deliveryOption.value\"\n class=\"w-100 mn-t-small bg-white radius-small pd-small\"\n :radio=\"marketplace.state.filter.delivery\"\n @update:radio=\"event => marketplace.state.filter.delivery = event\"\n />\n </template>\n </Spoiler>\n\n <hr class=\"mn-b-semi\">\n\n <!-- Reset filter -->\n <button @click=\"resetFilters\" class=\"bg-main w-100 button\">{{ t('filters.reset') }}</button>\n </div>\n </template>\n\n<script setup>\nimport { ref, watch, onMounted } from 'vue'\n\nimport Spoiler from \"@pf/src/components/Spoiler/Spoiler.vue\"\nimport Checkbox from \"@pf/src/components/Checkbox/Checkbox.vue\"\n\nimport { useI18n } from 'vue-i18n'\nimport { useRoute, useRouter,onBeforeRouteLeave } from 'vue-router'\n\nconst route = useRoute()\nconst router = useRouter()\n\nimport * as categories from '@pf/src/modules/products/store/categories';\nimport * as marketplace from '@pf/src/modules/products/store/marketplace';\n\nlet options = {\n status: 'published'\n}\n\nlet selectedFilters = ref({\n categories: [],\n prices: [],\n delivery: [],\n extra: []\n})\n\n// Пропсы и данные, которые вы передаёте в компонент\nconst props = defineProps({\n selectedFilters: Object,\n prices: {\n type: Array,\n default: () => [\n { label: 'Under 300฿', value: '<300' },\n { label: '300฿ to 600฿', value: '300-600' },\n { label: '600฿ to 1200฿', value: '600-1200' },\n { label: '$1200 and above', value: '>1200' }\n ]\n },\n deliveryOptions: {\n type: Array,\n default: () => [\n { label: 'Pickup', value: { min: 0, max: 25 } },\n { label: 'Courier', value: { min: 25, max: 50 } },\n { label: 'Post', value: { min: 50, max: 100 } }\n ]\n }\n})\n\nwatch(() => marketplace.state.filter, (newFilterValue, oldFilterValue) => {\n // Переводим фильтр в формат query\n const query = { ...route.query };\n\n // Удаляем старые значения фильтра из query\n Object.keys(oldFilterValue).forEach(key => {\n if (query[key]) {\n delete query[key];\n }\n });\n\n // Добавляем новые значения фильтра в query\n const newQueryValues = Object.fromEntries(\n Object.entries(newFilterValue)\n .filter(([key, value]) => Array.isArray(value) && value.length > 0)\n .map(([key, value]) => [key, value.join(',')])\n );\n Object.assign(query, newQueryValues);\n\n // Обновляем маршрут с новым query\n router.repalce({ query });\n}, { deep: true })\n\nonMounted(async () => {\n await categories.actions.fetchCategories(options)\n \n if (route.query) {\n const query = route.query;\n const newFilterValue = {\n categories: query.categories ? query.categories.split(',') : [],\n prices: query.prices ? query.prices.split(',') : [],\n delivery: query.delivery ? query.delivery.split(',') : [],\n // Продолжайте этот паттерн для остальных полей фильтра\n };\n marketplace.state.filter.innerHTML = newFilterValue;\n }\n})\n\nconst emit = defineEmits(['updateFilters', 'resetFilters'])\n\nconst emitFilterChange = (filterType, value) => {\n emit('updateFilters', { filterType, value })\n}\n\nconst resetFilters = () => {\n emit('resetFilters')\n}\nconst text = {\n locale: 'en',\n messages: {\n en: {\n categoriesTitle: 'Category',\n categories: [],\n filters: {\n title: 'Filters',\n price: {\n title: 'Price',\n from: 'From',\n to: 'To'\n },\n filters: [],\n reset: 'Reset Filters'\n }\n },\n ru: {\n categoriesTitle: 'Категория',\n categories: [],\n filters: {\n title: 'Фильтры',\n price: {\n title: 'Цена',\n from: 'От',\n to: 'До'\n },\n filters: [],\n reset: 'Сбросить фильтры',\n }\n }\n }\n }\n\n categories.state.all.forEach( category => {\n category.localization.forEach( localization => {\n text.messages[localization.locale].categories.push(localization.text)\n })\n })\n\n const { t } = useI18n(text)\n \n\n\n// Добавьте свою локализацию и методы t, если они нужны\n</script>\n\n<style>\n/* Ваши стили */\n</style>\n"],"names":["useRoute","useRouter","ref","watch","marketplace.state","onMounted","categories.actions","categories.state","useI18n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuFA,UAAM,QAAQA,UAAAA,SAAU;AACxB,UAAM,SAASC,UAAAA,UAAW;AAK1B,QAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,IACV;AAEsBC,QAAAA,IAAI;AAAA,MACxB,YAAY,CAAE;AAAA,MACd,QAAQ,CAAE;AAAA,MACV,UAAU,CAAE;AAAA,MACZ,OAAO,CAAE;AAAA,IACX,CAAC;AAwBDC,QAAK,MAAC,MAAMC,YAAAA,MAAkB,QAAQ,CAAC,gBAAgB,mBAAmB;AAExE,YAAM,QAAQ,EAAE,GAAG,MAAM,MAAK;AAG9B,aAAO,KAAK,cAAc,EAAE,QAAQ,SAAO;AACzC,YAAI,MAAM,GAAG,GAAG;AACd,iBAAO,MAAM,GAAG;AAAA,QACjB;AAAA,MACL,CAAG;AAGD,YAAM,iBAAiB,OAAO;AAAA,QAC5B,OAAO,QAAQ,cAAc,EAC1B,OAAO,CAAC,CAAC,KAAK,KAAK,MAAM,MAAM,QAAQ,KAAK,KAAK,MAAM,SAAS,CAAC,EACjE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,MAAM,KAAK,GAAG,CAAC,CAAC;AAAA,MACnD;AACE,aAAO,OAAO,OAAO,cAAc;AAGnC,aAAO,QAAQ,EAAE,MAAK,CAAE;AAAA,IAC1B,GAAG,EAAE,MAAM,MAAM;AAEjBC,QAAAA,UAAU,YAAY;AACpB,YAAMC,WAAkB,QAAC,gBAAgB,OAAO;AAEhD,UAAI,MAAM,OAAO;AACf,cAAM,QAAQ,MAAM;AACpB,cAAM,iBAAiB;AAAA,UACrB,YAAY,MAAM,aAAa,MAAM,WAAW,MAAM,GAAG,IAAI,CAAE;AAAA,UAC/D,QAAQ,MAAM,SAAS,MAAM,OAAO,MAAM,GAAG,IAAI,CAAE;AAAA,UACnD,UAAU,MAAM,WAAW,MAAM,SAAS,MAAM,GAAG,IAAI,CAAE;AAAA;AAAA,QAE/D;AACIF,0BAAkB,OAAO,YAAY;AAAA,MACtC;AAAA,IACH,CAAC;AAED,UAAM,OAAO;AAMb,UAAM,eAAe,MAAM;AACzB,WAAK,cAAc;AAAA,IACrB;AACA,UAAM,OAAO;AAAA,MACT,QAAQ;AAAA,MACR,UAAU;AAAA,QACR,IAAI;AAAA,UACF,iBAAiB;AAAA,UACjB,YAAY,CAAE;AAAA,UACd,SAAS;AAAA,YACP,OAAO;AAAA,YACP,OAAO;AAAA,cACL,OAAO;AAAA,cACP,MAAM;AAAA,cACN,IAAI;AAAA,YACL;AAAA,YACD,SAAS,CAAE;AAAA,YACX,OAAO;AAAA,UACR;AAAA,QACF;AAAA,QACD,IAAI;AAAA,UACF,iBAAiB;AAAA,UACjB,YAAY,CAAE;AAAA,UACd,SAAS;AAAA,YACP,OAAO;AAAA,YACP,OAAO;AAAA,cACL,OAAO;AAAA,cACP,MAAM;AAAA,cACN,IAAI;AAAA,YACL;AAAA,YACD,SAAS,CAAE;AAAA,YACX,OAAO;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEDG,qBAAiB,IAAI,QAAS,cAAY;AACxC,eAAS,aAAa,QAAS,kBAAgB;AAC7C,aAAK,SAAS,aAAa,MAAM,EAAE,WAAW,KAAK,aAAa,IAAI;AAAA,MAC1E,CAAK;AAAA,IACL,CAAG;AAED,UAAM,EAAE,EAAC,IAAKC,QAAO,QAAC,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -4,7 +4,7 @@ import _sfc_main$2 from "../../../../components/Checkbox/Checkbox.vue.js";
4
4
  import { useI18n } from "vue-i18n";
5
5
  import { useRoute, useRouter } from "vue-router";
6
6
  import { actions, state as state$1 } from "../../store/categories.js";
7
- import { state } from "../../../marketplace/store/marketplace.js";
7
+ import { state } from "../../store/marketplace.js";
8
8
  /* empty css */
9
9
  const _hoisted_1 = { class: "pd-medium bg-light radius-big" };
10
10
  const _hoisted_2 = { class: "cursor-pointer mn-r-auto t-medium p-big" };
@@ -1 +1 @@
1
- {"version":3,"file":"FilterProducts.vue.js","sources":["../../../../../../../src/modules/products/components/sections/FilterProducts.vue"],"sourcesContent":[" <template>\n <div class=\"pd-medium bg-light radius-big\">\n <!-- Categories Filter -->\n <Spoiler \n class=\"radius-small o-hidden mn-b-small\"\n :status=\"true\"\n >\n <template #header>\n <p class=\"cursor-pointer mn-r-auto t-medium p-big\">{{ t('categoriesTitle') }}</p>\n <!-- SVG Icon -->\n </template>\n <template #content>\n <Checkbox \n v-for=\"(category, index) in categories.state.all\"\n :key=\"index\"\n :label=\"category.name\"\n :value=\"category.url\"\n class=\"w-100 mn-t-small mn-b-small bg-white radius-small pd-small\"\n :radio=\"marketplace.state.filter.categories\"\n @update:radio=\"event => marketplace.state.filter.categories = event\"\n />\n </template>\n </Spoiler>\n\n <hr class=\"mn-b-small t-transp\">\n\n <!-- Prices Filter -->\n <Spoiler \n class=\"radius-small o-hidden mn-b-small\"\n :status=\"false\"\n >\n <template #header>\n <p class=\"cursor-pointer mn-r-auto t-medium p-big\">{{ t('filters.price.title') }}</p>\n <!-- SVG Icon -->\n </template>\n <template #content>\n <Checkbox \n v-for=\"(price, index) in prices\"\n :key=\"index\"\n :label=\"price.label\"\n :value=\"price.value\"\n class=\"w-100 mn-t-small bg-white radius-small pd-small\"\n :radio=\"marketplace.state.filter.prices\"\n @update:radio=\"event => marketplace.state.filter.prices = event\"\n />\n </template>\n </Spoiler>\n\n <hr class=\"mn-b-small\">\n\n <!-- Delivery Filter -->\n <Spoiler \n class=\"radius-small o-hidden mn-b-small\"\n :status=\"false\"\n >\n <template #header>\n <p class=\"cursor-pointer mn-r-auto t-medium p-big\">Delivery</p>\n </template>\n <template #content>\n <Checkbox \n v-for=\"(deliveryOption, index) in deliveryOptions\"\n :key=\"index\"\n :label=\"deliveryOption.label\"\n :value=\"deliveryOption.value\"\n class=\"w-100 mn-t-small bg-white radius-small pd-small\"\n :radio=\"marketplace.state.filter.delivery\"\n @update:radio=\"event => marketplace.state.filter.delivery = event\"\n />\n </template>\n </Spoiler>\n\n <hr class=\"mn-b-semi\">\n\n <!-- Reset filter -->\n <button @click=\"resetFilters\" class=\"bg-main w-100 button\">{{ t('filters.reset') }}</button>\n </div>\n </template>\n\n<script setup>\nimport { ref, watch, onMounted } from 'vue'\n\nimport Spoiler from \"@pf/src/components/Spoiler/Spoiler.vue\"\nimport Checkbox from \"@pf/src/components/Checkbox/Checkbox.vue\"\n\nimport { useI18n } from 'vue-i18n'\nimport { useRoute, useRouter,onBeforeRouteLeave } from 'vue-router'\n\nconst route = useRoute()\nconst router = useRouter()\n\nimport * as categories from '@pf/src/modules/products/store/categories';\nimport * as marketplace from '@pf/src/modules/marketplace/store/marketplace';\n\nlet options = {\n status: 'published'\n}\n\nlet selectedFilters = ref({\n categories: [],\n prices: [],\n delivery: [],\n extra: []\n})\n\n// Пропсы и данные, которые вы передаёте в компонент\nconst props = defineProps({\n selectedFilters: Object,\n prices: {\n type: Array,\n default: () => [\n { label: 'Under 300฿', value: '<300' },\n { label: '300฿ to 600฿', value: '300-600' },\n { label: '600฿ to 1200฿', value: '600-1200' },\n { label: '$1200 and above', value: '>1200' }\n ]\n },\n deliveryOptions: {\n type: Array,\n default: () => [\n { label: 'Pickup', value: { min: 0, max: 25 } },\n { label: 'Courier', value: { min: 25, max: 50 } },\n { label: 'Post', value: { min: 50, max: 100 } }\n ]\n }\n})\n\nwatch(() => marketplace.state.filter, (newFilterValue, oldFilterValue) => {\n // Переводим фильтр в формат query\n const query = { ...route.query };\n\n // Удаляем старые значения фильтра из query\n Object.keys(oldFilterValue).forEach(key => {\n if (query[key]) {\n delete query[key];\n }\n });\n\n // Добавляем новые значения фильтра в query\n const newQueryValues = Object.fromEntries(\n Object.entries(newFilterValue)\n .filter(([key, value]) => Array.isArray(value) && value.length > 0)\n .map(([key, value]) => [key, value.join(',')])\n );\n Object.assign(query, newQueryValues);\n\n // Обновляем маршрут с новым query\n router.repalce({ query });\n}, { deep: true })\n\nonMounted(async () => {\n await categories.actions.fetchCategories(options)\n \n if (route.query) {\n const query = route.query;\n const newFilterValue = {\n categories: query.categories ? query.categories.split(',') : [],\n prices: query.prices ? query.prices.split(',') : [],\n delivery: query.delivery ? query.delivery.split(',') : [],\n // Продолжайте этот паттерн для остальных полей фильтра\n };\n marketplace.state.filter.innerHTML = newFilterValue;\n }\n})\n\nconst emit = defineEmits(['updateFilters', 'resetFilters'])\n\nconst emitFilterChange = (filterType, value) => {\n emit('updateFilters', { filterType, value })\n}\n\nconst resetFilters = () => {\n emit('resetFilters')\n}\nconst text = {\n locale: 'en',\n messages: {\n en: {\n categoriesTitle: 'Category',\n categories: [],\n filters: {\n title: 'Filters',\n price: {\n title: 'Price',\n from: 'From',\n to: 'To'\n },\n filters: [],\n reset: 'Reset Filters'\n }\n },\n ru: {\n categoriesTitle: 'Категория',\n categories: [],\n filters: {\n title: 'Фильтры',\n price: {\n title: 'Цена',\n from: 'От',\n to: 'До'\n },\n filters: [],\n reset: 'Сбросить фильтры',\n }\n }\n }\n }\n\n categories.state.all.forEach( category => {\n category.localization.forEach( localization => {\n text.messages[localization.locale].categories.push(localization.text)\n })\n })\n\n const { t } = useI18n(text)\n \n\n\n// Добавьте свою локализацию и методы t, если они нужны\n</script>\n\n<style>\n/* Ваши стили */\n</style>\n"],"names":["marketplace.state","categories.actions","categories.state"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuFA,UAAM,QAAQ,SAAU;AACxB,UAAM,SAAS,UAAW;AAK1B,QAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,IACV;AAEsB,QAAI;AAAA,MACxB,YAAY,CAAE;AAAA,MACd,QAAQ,CAAE;AAAA,MACV,UAAU,CAAE;AAAA,MACZ,OAAO,CAAE;AAAA,IACX,CAAC;AAwBD,UAAM,MAAMA,MAAkB,QAAQ,CAAC,gBAAgB,mBAAmB;AAExE,YAAM,QAAQ,EAAE,GAAG,MAAM,MAAK;AAG9B,aAAO,KAAK,cAAc,EAAE,QAAQ,SAAO;AACzC,YAAI,MAAM,GAAG,GAAG;AACd,iBAAO,MAAM,GAAG;AAAA,QACjB;AAAA,MACL,CAAG;AAGD,YAAM,iBAAiB,OAAO;AAAA,QAC5B,OAAO,QAAQ,cAAc,EAC1B,OAAO,CAAC,CAAC,KAAK,KAAK,MAAM,MAAM,QAAQ,KAAK,KAAK,MAAM,SAAS,CAAC,EACjE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,MAAM,KAAK,GAAG,CAAC,CAAC;AAAA,MACnD;AACE,aAAO,OAAO,OAAO,cAAc;AAGnC,aAAO,QAAQ,EAAE,MAAK,CAAE;AAAA,IAC1B,GAAG,EAAE,MAAM,MAAM;AAEjB,cAAU,YAAY;AACpB,YAAMC,QAAmB,gBAAgB,OAAO;AAEhD,UAAI,MAAM,OAAO;AACf,cAAM,QAAQ,MAAM;AACpB,cAAM,iBAAiB;AAAA,UACrB,YAAY,MAAM,aAAa,MAAM,WAAW,MAAM,GAAG,IAAI,CAAE;AAAA,UAC/D,QAAQ,MAAM,SAAS,MAAM,OAAO,MAAM,GAAG,IAAI,CAAE;AAAA,UACnD,UAAU,MAAM,WAAW,MAAM,SAAS,MAAM,GAAG,IAAI,CAAE;AAAA;AAAA,QAE/D;AACID,cAAkB,OAAO,YAAY;AAAA,MACtC;AAAA,IACH,CAAC;AAED,UAAM,OAAO;AAMb,UAAM,eAAe,MAAM;AACzB,WAAK,cAAc;AAAA,IACrB;AACA,UAAM,OAAO;AAAA,MACT,QAAQ;AAAA,MACR,UAAU;AAAA,QACR,IAAI;AAAA,UACF,iBAAiB;AAAA,UACjB,YAAY,CAAE;AAAA,UACd,SAAS;AAAA,YACP,OAAO;AAAA,YACP,OAAO;AAAA,cACL,OAAO;AAAA,cACP,MAAM;AAAA,cACN,IAAI;AAAA,YACL;AAAA,YACD,SAAS,CAAE;AAAA,YACX,OAAO;AAAA,UACR;AAAA,QACF;AAAA,QACD,IAAI;AAAA,UACF,iBAAiB;AAAA,UACjB,YAAY,CAAE;AAAA,UACd,SAAS;AAAA,YACP,OAAO;AAAA,YACP,OAAO;AAAA,cACL,OAAO;AAAA,cACP,MAAM;AAAA,cACN,IAAI;AAAA,YACL;AAAA,YACD,SAAS,CAAE;AAAA,YACX,OAAO;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEDE,YAAiB,IAAI,QAAS,cAAY;AACxC,eAAS,aAAa,QAAS,kBAAgB;AAC7C,aAAK,SAAS,aAAa,MAAM,EAAE,WAAW,KAAK,aAAa,IAAI;AAAA,MAC1E,CAAK;AAAA,IACL,CAAG;AAED,UAAM,EAAE,EAAC,IAAK,QAAQ,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"FilterProducts.vue.js","sources":["../../../../../../../src/modules/products/components/sections/FilterProducts.vue"],"sourcesContent":[" <template>\n <div class=\"pd-medium bg-light radius-big\">\n <!-- Categories Filter -->\n <Spoiler \n class=\"radius-small o-hidden mn-b-small\"\n :status=\"true\"\n >\n <template #header>\n <p class=\"cursor-pointer mn-r-auto t-medium p-big\">{{ t('categoriesTitle') }}</p>\n <!-- SVG Icon -->\n </template>\n <template #content>\n <Checkbox \n v-for=\"(category, index) in categories.state.all\"\n :key=\"index\"\n :label=\"category.name\"\n :value=\"category.url\"\n class=\"w-100 mn-t-small mn-b-small bg-white radius-small pd-small\"\n :radio=\"marketplace.state.filter.categories\"\n @update:radio=\"event => marketplace.state.filter.categories = event\"\n />\n </template>\n </Spoiler>\n\n <hr class=\"mn-b-small t-transp\">\n\n <!-- Prices Filter -->\n <Spoiler \n class=\"radius-small o-hidden mn-b-small\"\n :status=\"false\"\n >\n <template #header>\n <p class=\"cursor-pointer mn-r-auto t-medium p-big\">{{ t('filters.price.title') }}</p>\n <!-- SVG Icon -->\n </template>\n <template #content>\n <Checkbox \n v-for=\"(price, index) in prices\"\n :key=\"index\"\n :label=\"price.label\"\n :value=\"price.value\"\n class=\"w-100 mn-t-small bg-white radius-small pd-small\"\n :radio=\"marketplace.state.filter.prices\"\n @update:radio=\"event => marketplace.state.filter.prices = event\"\n />\n </template>\n </Spoiler>\n\n <hr class=\"mn-b-small\">\n\n <!-- Delivery Filter -->\n <Spoiler \n class=\"radius-small o-hidden mn-b-small\"\n :status=\"false\"\n >\n <template #header>\n <p class=\"cursor-pointer mn-r-auto t-medium p-big\">Delivery</p>\n </template>\n <template #content>\n <Checkbox \n v-for=\"(deliveryOption, index) in deliveryOptions\"\n :key=\"index\"\n :label=\"deliveryOption.label\"\n :value=\"deliveryOption.value\"\n class=\"w-100 mn-t-small bg-white radius-small pd-small\"\n :radio=\"marketplace.state.filter.delivery\"\n @update:radio=\"event => marketplace.state.filter.delivery = event\"\n />\n </template>\n </Spoiler>\n\n <hr class=\"mn-b-semi\">\n\n <!-- Reset filter -->\n <button @click=\"resetFilters\" class=\"bg-main w-100 button\">{{ t('filters.reset') }}</button>\n </div>\n </template>\n\n<script setup>\nimport { ref, watch, onMounted } from 'vue'\n\nimport Spoiler from \"@pf/src/components/Spoiler/Spoiler.vue\"\nimport Checkbox from \"@pf/src/components/Checkbox/Checkbox.vue\"\n\nimport { useI18n } from 'vue-i18n'\nimport { useRoute, useRouter,onBeforeRouteLeave } from 'vue-router'\n\nconst route = useRoute()\nconst router = useRouter()\n\nimport * as categories from '@pf/src/modules/products/store/categories';\nimport * as marketplace from '@pf/src/modules/products/store/marketplace';\n\nlet options = {\n status: 'published'\n}\n\nlet selectedFilters = ref({\n categories: [],\n prices: [],\n delivery: [],\n extra: []\n})\n\n// Пропсы и данные, которые вы передаёте в компонент\nconst props = defineProps({\n selectedFilters: Object,\n prices: {\n type: Array,\n default: () => [\n { label: 'Under 300฿', value: '<300' },\n { label: '300฿ to 600฿', value: '300-600' },\n { label: '600฿ to 1200฿', value: '600-1200' },\n { label: '$1200 and above', value: '>1200' }\n ]\n },\n deliveryOptions: {\n type: Array,\n default: () => [\n { label: 'Pickup', value: { min: 0, max: 25 } },\n { label: 'Courier', value: { min: 25, max: 50 } },\n { label: 'Post', value: { min: 50, max: 100 } }\n ]\n }\n})\n\nwatch(() => marketplace.state.filter, (newFilterValue, oldFilterValue) => {\n // Переводим фильтр в формат query\n const query = { ...route.query };\n\n // Удаляем старые значения фильтра из query\n Object.keys(oldFilterValue).forEach(key => {\n if (query[key]) {\n delete query[key];\n }\n });\n\n // Добавляем новые значения фильтра в query\n const newQueryValues = Object.fromEntries(\n Object.entries(newFilterValue)\n .filter(([key, value]) => Array.isArray(value) && value.length > 0)\n .map(([key, value]) => [key, value.join(',')])\n );\n Object.assign(query, newQueryValues);\n\n // Обновляем маршрут с новым query\n router.repalce({ query });\n}, { deep: true })\n\nonMounted(async () => {\n await categories.actions.fetchCategories(options)\n \n if (route.query) {\n const query = route.query;\n const newFilterValue = {\n categories: query.categories ? query.categories.split(',') : [],\n prices: query.prices ? query.prices.split(',') : [],\n delivery: query.delivery ? query.delivery.split(',') : [],\n // Продолжайте этот паттерн для остальных полей фильтра\n };\n marketplace.state.filter.innerHTML = newFilterValue;\n }\n})\n\nconst emit = defineEmits(['updateFilters', 'resetFilters'])\n\nconst emitFilterChange = (filterType, value) => {\n emit('updateFilters', { filterType, value })\n}\n\nconst resetFilters = () => {\n emit('resetFilters')\n}\nconst text = {\n locale: 'en',\n messages: {\n en: {\n categoriesTitle: 'Category',\n categories: [],\n filters: {\n title: 'Filters',\n price: {\n title: 'Price',\n from: 'From',\n to: 'To'\n },\n filters: [],\n reset: 'Reset Filters'\n }\n },\n ru: {\n categoriesTitle: 'Категория',\n categories: [],\n filters: {\n title: 'Фильтры',\n price: {\n title: 'Цена',\n from: 'От',\n to: 'До'\n },\n filters: [],\n reset: 'Сбросить фильтры',\n }\n }\n }\n }\n\n categories.state.all.forEach( category => {\n category.localization.forEach( localization => {\n text.messages[localization.locale].categories.push(localization.text)\n })\n })\n\n const { t } = useI18n(text)\n \n\n\n// Добавьте свою локализацию и методы t, если они нужны\n</script>\n\n<style>\n/* Ваши стили */\n</style>\n"],"names":["marketplace.state","categories.actions","categories.state"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuFA,UAAM,QAAQ,SAAU;AACxB,UAAM,SAAS,UAAW;AAK1B,QAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,IACV;AAEsB,QAAI;AAAA,MACxB,YAAY,CAAE;AAAA,MACd,QAAQ,CAAE;AAAA,MACV,UAAU,CAAE;AAAA,MACZ,OAAO,CAAE;AAAA,IACX,CAAC;AAwBD,UAAM,MAAMA,MAAkB,QAAQ,CAAC,gBAAgB,mBAAmB;AAExE,YAAM,QAAQ,EAAE,GAAG,MAAM,MAAK;AAG9B,aAAO,KAAK,cAAc,EAAE,QAAQ,SAAO;AACzC,YAAI,MAAM,GAAG,GAAG;AACd,iBAAO,MAAM,GAAG;AAAA,QACjB;AAAA,MACL,CAAG;AAGD,YAAM,iBAAiB,OAAO;AAAA,QAC5B,OAAO,QAAQ,cAAc,EAC1B,OAAO,CAAC,CAAC,KAAK,KAAK,MAAM,MAAM,QAAQ,KAAK,KAAK,MAAM,SAAS,CAAC,EACjE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,MAAM,KAAK,GAAG,CAAC,CAAC;AAAA,MACnD;AACE,aAAO,OAAO,OAAO,cAAc;AAGnC,aAAO,QAAQ,EAAE,MAAK,CAAE;AAAA,IAC1B,GAAG,EAAE,MAAM,MAAM;AAEjB,cAAU,YAAY;AACpB,YAAMC,QAAmB,gBAAgB,OAAO;AAEhD,UAAI,MAAM,OAAO;AACf,cAAM,QAAQ,MAAM;AACpB,cAAM,iBAAiB;AAAA,UACrB,YAAY,MAAM,aAAa,MAAM,WAAW,MAAM,GAAG,IAAI,CAAE;AAAA,UAC/D,QAAQ,MAAM,SAAS,MAAM,OAAO,MAAM,GAAG,IAAI,CAAE;AAAA,UACnD,UAAU,MAAM,WAAW,MAAM,SAAS,MAAM,GAAG,IAAI,CAAE;AAAA;AAAA,QAE/D;AACID,cAAkB,OAAO,YAAY;AAAA,MACtC;AAAA,IACH,CAAC;AAED,UAAM,OAAO;AAMb,UAAM,eAAe,MAAM;AACzB,WAAK,cAAc;AAAA,IACrB;AACA,UAAM,OAAO;AAAA,MACT,QAAQ;AAAA,MACR,UAAU;AAAA,QACR,IAAI;AAAA,UACF,iBAAiB;AAAA,UACjB,YAAY,CAAE;AAAA,UACd,SAAS;AAAA,YACP,OAAO;AAAA,YACP,OAAO;AAAA,cACL,OAAO;AAAA,cACP,MAAM;AAAA,cACN,IAAI;AAAA,YACL;AAAA,YACD,SAAS,CAAE;AAAA,YACX,OAAO;AAAA,UACR;AAAA,QACF;AAAA,QACD,IAAI;AAAA,UACF,iBAAiB;AAAA,UACjB,YAAY,CAAE;AAAA,UACd,SAAS;AAAA,YACP,OAAO;AAAA,YACP,OAAO;AAAA,cACL,OAAO;AAAA,cACP,MAAM;AAAA,cACN,IAAI;AAAA,YACL;AAAA,YACD,SAAS,CAAE;AAAA,YACX,OAAO;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEDE,YAAiB,IAAI,QAAS,cAAY;AACxC,eAAS,aAAa,QAAS,kBAAgB;AAC7C,aAAK,SAAS,aAAa,MAAM,EAAE,WAAW,KAAK,aAAa,IAAI;AAAA,MAC1E,CAAK;AAAA,IACL,CAAG;AAED,UAAM,EAAE,EAAC,IAAK,QAAQ,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const vue = require("vue");
4
+ const Checkbox = require("../../../../components/Checkbox/Checkbox.vue.cjs");
5
+ ;/* empty css */
6
+ const Dropdown = require("../../../../components/Dropdown/Dropdown.vue.cjs");
7
+ const vueI18n = require("vue-i18n");
8
+ const marketplace = require("../../store/marketplace.cjs");
9
+ const categories = require("../../store/categories.cjs");
10
+ const _hoisted_1 = { class: "z-index-1 pos-relative radius-big bg-black t-white pd-medium flex-v-center flex-nowrap flex" };
11
+ const _hoisted_2 = { class: "mn-r-auto pd-micro gap-micro br-solid br-2px br-white radius-extra flex-nowrap flex" };
12
+ const _hoisted_3 = { class: "w-100 h-100 radius-semi o-hidden bg-black" };
13
+ const _hoisted_4 = { class: "w-100 h-100 radius-semi o-hidden bg-black" };
14
+ const _hoisted_5 = { class: "w-100 h-100 radius-semi o-hidden bg-black" };
15
+ const _sfc_main = {
16
+ __name: "Filters",
17
+ setup(__props) {
18
+ const delivery = [
19
+ { label: "Pickup", value: "pickup" },
20
+ { label: "Courier", value: "courier" },
21
+ { label: "Post", value: "post" }
22
+ ];
23
+ const prices = [
24
+ { label: "Under 300฿", value: "<300" },
25
+ { label: "300฿ to 600฿", value: "300-600" },
26
+ { label: "600฿ to 1200฿", value: "600-1200" },
27
+ { label: "$1200 and above", value: ">1200" }
28
+ ];
29
+ const text = {
30
+ locale: "en",
31
+ messages: {
32
+ en: {
33
+ categoriesTitle: "Category",
34
+ categories: [],
35
+ sort: {
36
+ price: "By price",
37
+ newest: "By newest",
38
+ popularity: "By popularity"
39
+ },
40
+ filters: {
41
+ title: "Filters",
42
+ price: {
43
+ title: "Price",
44
+ from: "From",
45
+ to: "To"
46
+ },
47
+ filters: [],
48
+ reset: "Reset Filters"
49
+ }
50
+ },
51
+ ru: {
52
+ categoriesTitle: "Категория",
53
+ sort: {
54
+ price: "По цене",
55
+ newest: "По новизне",
56
+ popularity: "По популярности"
57
+ },
58
+ filters: {
59
+ title: "Фильтры",
60
+ price: {
61
+ title: "Цена",
62
+ from: "От",
63
+ to: "До"
64
+ },
65
+ filters: [],
66
+ reset: "Сбросить фильтры"
67
+ }
68
+ }
69
+ }
70
+ };
71
+ const { t } = vueI18n.useI18n(text);
72
+ vue.onMounted(async () => {
73
+ let options = {
74
+ status: "published"
75
+ };
76
+ await categories.actions.fetchCategories(options);
77
+ });
78
+ return (_ctx, _cache) => {
79
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
80
+ vue.createElementVNode("div", _hoisted_2, [
81
+ vue.createVNode(Dropdown.default, {
82
+ id: "fitlerCategory",
83
+ label: vue.unref(t)("categoriesTitle"),
84
+ class: vue.normalizeClass(["cursor-pointer pd-thin t-semi radius-extra uppercase p-medium", [
85
+ marketplace.state.filter.categories.length > 0 ? "bg-white t-black" : ""
86
+ ]])
87
+ }, {
88
+ default: vue.withCtx(() => [
89
+ vue.createElementVNode("div", _hoisted_3, [
90
+ (vue.openBlock(), vue.createElementBlock(vue.Fragment, null, vue.renderList(categories, (category, index) => {
91
+ return vue.createVNode(Checkbox.default, {
92
+ label: category.name,
93
+ name: "categories",
94
+ value: category.url,
95
+ class: "cursor-pointer w-100 bg-black t-white radius-small pd-small",
96
+ radio: marketplace.state.filter.categories,
97
+ "onUpdate:radio": _cache[0] || (_cache[0] = (event) => marketplace.state.filter.categories = event)
98
+ }, null, 8, ["label", "value", "radio"]);
99
+ }), 64))
100
+ ])
101
+ ]),
102
+ _: 1
103
+ }, 8, ["label", "class"]),
104
+ vue.createVNode(Dropdown.default, {
105
+ id: "fitlerPrice",
106
+ label: vue.unref(t)("filters.price.title"),
107
+ class: vue.normalizeClass(["cursor-pointer pd-thin t-semi radius-extra uppercase p-medium", [
108
+ marketplace.state.filter.prices.length > 0 ? "bg-white t-black" : ""
109
+ ]])
110
+ }, {
111
+ default: vue.withCtx(() => [
112
+ vue.createElementVNode("div", _hoisted_4, [
113
+ (vue.openBlock(), vue.createElementBlock(vue.Fragment, null, vue.renderList(prices, (price, index) => {
114
+ return vue.createVNode(Checkbox.default, {
115
+ label: price.label,
116
+ name: "prices",
117
+ value: price.value,
118
+ class: "cursor-pointer w-100 mn-t-small bg-black t-white radius-small pd-small",
119
+ radio: marketplace.state.filter.prices,
120
+ "onUpdate:radio": _cache[1] || (_cache[1] = (event) => marketplace.state.filter.prices = event)
121
+ }, null, 8, ["label", "value", "radio"]);
122
+ }), 64))
123
+ ])
124
+ ]),
125
+ _: 1
126
+ }, 8, ["label", "class"]),
127
+ vue.createVNode(Dropdown.default, {
128
+ label: "Delivery",
129
+ id: "fitlerDelivery",
130
+ class: vue.normalizeClass(["cursor-pointer pd-thin t-semi radius-extra uppercase p-medium", [
131
+ marketplace.state.filter.delivery.length > 0 ? "bg-white t-black" : ""
132
+ ]])
133
+ }, {
134
+ default: vue.withCtx(() => [
135
+ vue.createElementVNode("div", _hoisted_5, [
136
+ (vue.openBlock(), vue.createElementBlock(vue.Fragment, null, vue.renderList(delivery, (delivery2, index) => {
137
+ return vue.createVNode(Checkbox.default, {
138
+ label: delivery2.label,
139
+ name: "prices",
140
+ value: delivery2.value,
141
+ class: "cursor-pointer w-100 mn-t-small bg-black t-white radius-small pd-small",
142
+ radio: marketplace.state.filter.delivery,
143
+ "onUpdate:radio": (event) => marketplace.state.filter.delivery = event
144
+ }, null, 8, ["label", "value", "radio", "onUpdate:radio"]);
145
+ }), 64))
146
+ ])
147
+ ]),
148
+ _: 1
149
+ }, 8, ["class"])
150
+ ])
151
+ ]);
152
+ };
153
+ }
154
+ };
155
+ exports.default = _sfc_main;
156
+ //# sourceMappingURL=Filters.vue.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Filters.vue.cjs","sources":["../../../../../../../src/modules/products/components/sections/Filters.vue"],"sourcesContent":["<template>\n\t<div class=\"z-index-1 pos-relative radius-big bg-black t-white pd-medium flex-v-center flex-nowrap flex\">\n <div class=\"mn-r-auto pd-micro gap-micro br-solid br-2px br-white radius-extra flex-nowrap flex\"\n >\n \t\t<Dropdown \n id=\"fitlerCategory\"\n \t\t\t:label=\"t('categoriesTitle')\" \n \t\t\tclass=\"cursor-pointer pd-thin t-semi radius-extra uppercase p-medium\"\n \t\t\t:class=\"[\n marketplace.state.filter.categories.length > 0 ? 'bg-white t-black' : ''\n ]\"\n \t\t>\n \t\t\t<div class=\"w-100 h-100 radius-semi o-hidden bg-black\">\n \t<Checkbox \n \t\t\t\tv-for=\"(category, index) in categories\"\n :label=\"category.name\"\n name=\"categories\"\n :value=\"category.url\"\n class=\"cursor-pointer w-100 bg-black t-white radius-small pd-small\"\n :radio=\"marketplace.state.filter.categories\"\n @update:radio=\"event => marketplace.state.filter.categories = event\"\n />\n \t</div>\n </Dropdown>\n\n <Dropdown \n id=\"fitlerPrice\"\n \t:label=\"t('filters.price.title')\" \n \tclass=\"cursor-pointer pd-thin t-semi radius-extra uppercase p-medium\"\n \t:class=\"[\n marketplace.state.filter.prices.length > 0 ? 'bg-white t-black' : ''\n ]\"\n >\n <div class=\"w-100 h-100 radius-semi o-hidden bg-black\">\n \t<Checkbox \n \t\t\t\tv-for=\"(price, index) in prices\"\n :label=\"price.label\"\n name=\"prices\"\n :value=\"price.value\"\n class=\"cursor-pointer w-100 mn-t-small bg-black t-white radius-small pd-small\"\n :radio=\"marketplace.state.filter.prices\"\n @update:radio=\"event => marketplace.state.filter.prices = event\"\n />\n </div>\n </Dropdown>\n\n <Dropdown \n \t label=\"Delivery\" \n id=\"fitlerDelivery\"\n \tclass=\"cursor-pointer pd-thin t-semi radius-extra uppercase p-medium\"\n \t:class=\"[\n marketplace.state.filter.delivery.length > 0 ? 'bg-white t-black' : ''\n ]\"\n >\n <div class=\"w-100 h-100 radius-semi o-hidden bg-black\">\n \t<Checkbox \n \t\t\t\tv-for=\"(delivery, index) in delivery\"\n :label=\"delivery.label\"\n name=\"prices\"\n :value=\"delivery.value\"\n class=\"cursor-pointer w-100 mn-t-small bg-black t-white radius-small pd-small\"\n :radio=\"marketplace.state.filter.delivery\"\n @update:radio=\"event => marketplace.state.filter.delivery = event\"\n />\n </div>\n </Dropdown>\n </div>\n </div>\n\n</template>\n\n<script setup>\n\timport { computed, onMounted, ref } from 'vue'\n\n \timport Checkbox from \"@pf/src/components/Checkbox/Checkbox.vue\";\n import Radio from \"@pf/src/components/Radio/Radio.vue\";\n \timport Select from \"@pf/src/components/Select/Select.vue\";\n \timport Dropdown from \"@pf/src/components/Dropdown/Dropdown.vue\";\n\n\timport { useI18n } from 'vue-i18n'\n\n\timport * as marketplace from '@pf/src/modules/products/store/marketplace';\n import * as categories from '@pf/src/modules/products/store/categories';\n\n\tconst delivery = [\n { label: 'Pickup',\t\t\t\t\tvalue: 'pickup' },\n { label: 'Courier',\t\t\t\t\tvalue: 'courier' },\n { label: 'Post',\t\t\t\t\t\tvalue: 'post' }\n\t]\n\n\tconst prices = [\n { label: 'Under 300฿',\t\t\t\tvalue: '<300' },\n { label: '300฿ to 600฿',\t\t\tvalue: '300-600' },\n { label: '600฿ to 1200฿',\t\t\tvalue: '600-1200' },\n { label: '$1200 and above',\t\tvalue: '>1200' }\n\t]\n\n\tconst text = {\n locale: 'en',\n messages: {\n en: {\n \tcategoriesTitle: 'Category',\n \tcategories: [],\n \tsort: {\n \t\tprice: 'By price',\n \t\tnewest: 'By newest',\n \t\tpopularity: 'By popularity'\n \t},\n \tfilters: {\n \t\ttitle: 'Filters',\n \t\tprice: {\n \t\t\ttitle: 'Price',\n \t\t\tfrom: 'From',\n \t\t\tto: 'To'\n \t\t},\n \t\tfilters: [],\n \t\treset: 'Reset Filters'\n \t}\n },\n ru: {\n \tcategoriesTitle: 'Категория',\n \tsort: {\n \t\tprice: 'По цене',\n \t\tnewest: 'По новизне',\n \t\tpopularity: 'По популярности'\n \t},\n \tfilters: {\n \t\ttitle: 'Фильтры',\n \t\tprice: {\n \t\t\ttitle: 'Цена',\n \t\t\tfrom: 'От',\n \t\t\tto: 'До'\n \t\t},\n \t\tfilters: [],\n \t\treset: 'Сбросить фильтры',\n \t}\n }\n }\n }\n\n\tconst { t } = useI18n(text)\n\n\tonMounted(async () => {\n let options = {\n status: 'published'\n }\n\n\t\tawait categories.actions.fetchCategories(options)\n\t})\n\n\t\n</script>"],"names":["useI18n","onMounted","categories.actions"],"mappings":";;;;;;;;;;;;;;;;;AAoFC,UAAM,WAAW;AAAA,MACd,EAAE,OAAO,UAAc,OAAO,SAAU;AAAA,MACxC,EAAE,OAAO,WAAe,OAAO,UAAW;AAAA,MAC1C,EAAE,OAAO,QAAa,OAAO,OAAQ;AAAA,IACvC;AAED,UAAM,SAAS;AAAA,MACZ,EAAE,OAAO,cAAiB,OAAO,OAAQ;AAAA,MACzC,EAAE,OAAO,gBAAkB,OAAO,UAAW;AAAA,MAC7C,EAAE,OAAO,iBAAmB,OAAO,WAAY;AAAA,MAC/C,EAAE,OAAO,mBAAoB,OAAO,QAAS;AAAA,IAC/C;AAED,UAAM,OAAO;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,QACR,IAAI;AAAA,UACH,iBAAiB;AAAA,UACjB,YAAY,CAAE;AAAA,UACd,MAAM;AAAA,YACL,OAAO;AAAA,YACP,QAAQ;AAAA,YACR,YAAY;AAAA,UACZ;AAAA,UACD,SAAS;AAAA,YACR,OAAO;AAAA,YACP,OAAO;AAAA,cACN,OAAO;AAAA,cACP,MAAM;AAAA,cACN,IAAI;AAAA,YACJ;AAAA,YACD,SAAS,CAAE;AAAA,YACX,OAAO;AAAA,UACP;AAAA,QACD;AAAA,QACD,IAAI;AAAA,UACH,iBAAiB;AAAA,UACjB,MAAM;AAAA,YACL,OAAO;AAAA,YACP,QAAQ;AAAA,YACR,YAAY;AAAA,UACZ;AAAA,UACD,SAAS;AAAA,YACR,OAAO;AAAA,YACP,OAAO;AAAA,cACN,OAAO;AAAA,cACP,MAAM;AAAA,cACN,IAAI;AAAA,YACJ;AAAA,YACD,SAAS,CAAE;AAAA,YACX,OAAO;AAAA,UACP;AAAA,QACD;AAAA,MACF;AAAA,IACF;AAEF,UAAM,EAAE,EAAC,IAAKA,QAAO,QAAC,IAAI;AAE1BC,QAAAA,UAAU,YAAY;AACnB,UAAI,UAAU;AAAA,QACZ,QAAQ;AAAA,MACT;AAEH,YAAMC,WAAkB,QAAC,gBAAgB,OAAO;AAAA,IAClD,CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,157 @@
1
+ import { onMounted, openBlock, createElementBlock, createElementVNode, createVNode, unref, normalizeClass, withCtx, Fragment, renderList } from "vue";
2
+ import _sfc_main$2 from "../../../../components/Checkbox/Checkbox.vue.js";
3
+ /* empty css */
4
+ import _sfc_main$1 from "../../../../components/Dropdown/Dropdown.vue.js";
5
+ import { useI18n } from "vue-i18n";
6
+ import { state } from "../../store/marketplace.js";
7
+ import * as categories from "../../store/categories.js";
8
+ import { actions } from "../../store/categories.js";
9
+ const _hoisted_1 = { class: "z-index-1 pos-relative radius-big bg-black t-white pd-medium flex-v-center flex-nowrap flex" };
10
+ const _hoisted_2 = { class: "mn-r-auto pd-micro gap-micro br-solid br-2px br-white radius-extra flex-nowrap flex" };
11
+ const _hoisted_3 = { class: "w-100 h-100 radius-semi o-hidden bg-black" };
12
+ const _hoisted_4 = { class: "w-100 h-100 radius-semi o-hidden bg-black" };
13
+ const _hoisted_5 = { class: "w-100 h-100 radius-semi o-hidden bg-black" };
14
+ const _sfc_main = {
15
+ __name: "Filters",
16
+ setup(__props) {
17
+ const delivery = [
18
+ { label: "Pickup", value: "pickup" },
19
+ { label: "Courier", value: "courier" },
20
+ { label: "Post", value: "post" }
21
+ ];
22
+ const prices = [
23
+ { label: "Under 300฿", value: "<300" },
24
+ { label: "300฿ to 600฿", value: "300-600" },
25
+ { label: "600฿ to 1200฿", value: "600-1200" },
26
+ { label: "$1200 and above", value: ">1200" }
27
+ ];
28
+ const text = {
29
+ locale: "en",
30
+ messages: {
31
+ en: {
32
+ categoriesTitle: "Category",
33
+ categories: [],
34
+ sort: {
35
+ price: "By price",
36
+ newest: "By newest",
37
+ popularity: "By popularity"
38
+ },
39
+ filters: {
40
+ title: "Filters",
41
+ price: {
42
+ title: "Price",
43
+ from: "From",
44
+ to: "To"
45
+ },
46
+ filters: [],
47
+ reset: "Reset Filters"
48
+ }
49
+ },
50
+ ru: {
51
+ categoriesTitle: "Категория",
52
+ sort: {
53
+ price: "По цене",
54
+ newest: "По новизне",
55
+ popularity: "По популярности"
56
+ },
57
+ filters: {
58
+ title: "Фильтры",
59
+ price: {
60
+ title: "Цена",
61
+ from: "От",
62
+ to: "До"
63
+ },
64
+ filters: [],
65
+ reset: "Сбросить фильтры"
66
+ }
67
+ }
68
+ }
69
+ };
70
+ const { t } = useI18n(text);
71
+ onMounted(async () => {
72
+ let options = {
73
+ status: "published"
74
+ };
75
+ await actions.fetchCategories(options);
76
+ });
77
+ return (_ctx, _cache) => {
78
+ return openBlock(), createElementBlock("div", _hoisted_1, [
79
+ createElementVNode("div", _hoisted_2, [
80
+ createVNode(_sfc_main$1, {
81
+ id: "fitlerCategory",
82
+ label: unref(t)("categoriesTitle"),
83
+ class: normalizeClass(["cursor-pointer pd-thin t-semi radius-extra uppercase p-medium", [
84
+ state.filter.categories.length > 0 ? "bg-white t-black" : ""
85
+ ]])
86
+ }, {
87
+ default: withCtx(() => [
88
+ createElementVNode("div", _hoisted_3, [
89
+ (openBlock(), createElementBlock(Fragment, null, renderList(categories, (category, index) => {
90
+ return createVNode(_sfc_main$2, {
91
+ label: category.name,
92
+ name: "categories",
93
+ value: category.url,
94
+ class: "cursor-pointer w-100 bg-black t-white radius-small pd-small",
95
+ radio: state.filter.categories,
96
+ "onUpdate:radio": _cache[0] || (_cache[0] = (event) => state.filter.categories = event)
97
+ }, null, 8, ["label", "value", "radio"]);
98
+ }), 64))
99
+ ])
100
+ ]),
101
+ _: 1
102
+ }, 8, ["label", "class"]),
103
+ createVNode(_sfc_main$1, {
104
+ id: "fitlerPrice",
105
+ label: unref(t)("filters.price.title"),
106
+ class: normalizeClass(["cursor-pointer pd-thin t-semi radius-extra uppercase p-medium", [
107
+ state.filter.prices.length > 0 ? "bg-white t-black" : ""
108
+ ]])
109
+ }, {
110
+ default: withCtx(() => [
111
+ createElementVNode("div", _hoisted_4, [
112
+ (openBlock(), createElementBlock(Fragment, null, renderList(prices, (price, index) => {
113
+ return createVNode(_sfc_main$2, {
114
+ label: price.label,
115
+ name: "prices",
116
+ value: price.value,
117
+ class: "cursor-pointer w-100 mn-t-small bg-black t-white radius-small pd-small",
118
+ radio: state.filter.prices,
119
+ "onUpdate:radio": _cache[1] || (_cache[1] = (event) => state.filter.prices = event)
120
+ }, null, 8, ["label", "value", "radio"]);
121
+ }), 64))
122
+ ])
123
+ ]),
124
+ _: 1
125
+ }, 8, ["label", "class"]),
126
+ createVNode(_sfc_main$1, {
127
+ label: "Delivery",
128
+ id: "fitlerDelivery",
129
+ class: normalizeClass(["cursor-pointer pd-thin t-semi radius-extra uppercase p-medium", [
130
+ state.filter.delivery.length > 0 ? "bg-white t-black" : ""
131
+ ]])
132
+ }, {
133
+ default: withCtx(() => [
134
+ createElementVNode("div", _hoisted_5, [
135
+ (openBlock(), createElementBlock(Fragment, null, renderList(delivery, (delivery2, index) => {
136
+ return createVNode(_sfc_main$2, {
137
+ label: delivery2.label,
138
+ name: "prices",
139
+ value: delivery2.value,
140
+ class: "cursor-pointer w-100 mn-t-small bg-black t-white radius-small pd-small",
141
+ radio: state.filter.delivery,
142
+ "onUpdate:radio": (event) => state.filter.delivery = event
143
+ }, null, 8, ["label", "value", "radio", "onUpdate:radio"]);
144
+ }), 64))
145
+ ])
146
+ ]),
147
+ _: 1
148
+ }, 8, ["class"])
149
+ ])
150
+ ]);
151
+ };
152
+ }
153
+ };
154
+ export {
155
+ _sfc_main as default
156
+ };
157
+ //# sourceMappingURL=Filters.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Filters.vue.js","sources":["../../../../../../../src/modules/products/components/sections/Filters.vue"],"sourcesContent":["<template>\n\t<div class=\"z-index-1 pos-relative radius-big bg-black t-white pd-medium flex-v-center flex-nowrap flex\">\n <div class=\"mn-r-auto pd-micro gap-micro br-solid br-2px br-white radius-extra flex-nowrap flex\"\n >\n \t\t<Dropdown \n id=\"fitlerCategory\"\n \t\t\t:label=\"t('categoriesTitle')\" \n \t\t\tclass=\"cursor-pointer pd-thin t-semi radius-extra uppercase p-medium\"\n \t\t\t:class=\"[\n marketplace.state.filter.categories.length > 0 ? 'bg-white t-black' : ''\n ]\"\n \t\t>\n \t\t\t<div class=\"w-100 h-100 radius-semi o-hidden bg-black\">\n \t<Checkbox \n \t\t\t\tv-for=\"(category, index) in categories\"\n :label=\"category.name\"\n name=\"categories\"\n :value=\"category.url\"\n class=\"cursor-pointer w-100 bg-black t-white radius-small pd-small\"\n :radio=\"marketplace.state.filter.categories\"\n @update:radio=\"event => marketplace.state.filter.categories = event\"\n />\n \t</div>\n </Dropdown>\n\n <Dropdown \n id=\"fitlerPrice\"\n \t:label=\"t('filters.price.title')\" \n \tclass=\"cursor-pointer pd-thin t-semi radius-extra uppercase p-medium\"\n \t:class=\"[\n marketplace.state.filter.prices.length > 0 ? 'bg-white t-black' : ''\n ]\"\n >\n <div class=\"w-100 h-100 radius-semi o-hidden bg-black\">\n \t<Checkbox \n \t\t\t\tv-for=\"(price, index) in prices\"\n :label=\"price.label\"\n name=\"prices\"\n :value=\"price.value\"\n class=\"cursor-pointer w-100 mn-t-small bg-black t-white radius-small pd-small\"\n :radio=\"marketplace.state.filter.prices\"\n @update:radio=\"event => marketplace.state.filter.prices = event\"\n />\n </div>\n </Dropdown>\n\n <Dropdown \n \t label=\"Delivery\" \n id=\"fitlerDelivery\"\n \tclass=\"cursor-pointer pd-thin t-semi radius-extra uppercase p-medium\"\n \t:class=\"[\n marketplace.state.filter.delivery.length > 0 ? 'bg-white t-black' : ''\n ]\"\n >\n <div class=\"w-100 h-100 radius-semi o-hidden bg-black\">\n \t<Checkbox \n \t\t\t\tv-for=\"(delivery, index) in delivery\"\n :label=\"delivery.label\"\n name=\"prices\"\n :value=\"delivery.value\"\n class=\"cursor-pointer w-100 mn-t-small bg-black t-white radius-small pd-small\"\n :radio=\"marketplace.state.filter.delivery\"\n @update:radio=\"event => marketplace.state.filter.delivery = event\"\n />\n </div>\n </Dropdown>\n </div>\n </div>\n\n</template>\n\n<script setup>\n\timport { computed, onMounted, ref } from 'vue'\n\n \timport Checkbox from \"@pf/src/components/Checkbox/Checkbox.vue\";\n import Radio from \"@pf/src/components/Radio/Radio.vue\";\n \timport Select from \"@pf/src/components/Select/Select.vue\";\n \timport Dropdown from \"@pf/src/components/Dropdown/Dropdown.vue\";\n\n\timport { useI18n } from 'vue-i18n'\n\n\timport * as marketplace from '@pf/src/modules/products/store/marketplace';\n import * as categories from '@pf/src/modules/products/store/categories';\n\n\tconst delivery = [\n { label: 'Pickup',\t\t\t\t\tvalue: 'pickup' },\n { label: 'Courier',\t\t\t\t\tvalue: 'courier' },\n { label: 'Post',\t\t\t\t\t\tvalue: 'post' }\n\t]\n\n\tconst prices = [\n { label: 'Under 300฿',\t\t\t\tvalue: '<300' },\n { label: '300฿ to 600฿',\t\t\tvalue: '300-600' },\n { label: '600฿ to 1200฿',\t\t\tvalue: '600-1200' },\n { label: '$1200 and above',\t\tvalue: '>1200' }\n\t]\n\n\tconst text = {\n locale: 'en',\n messages: {\n en: {\n \tcategoriesTitle: 'Category',\n \tcategories: [],\n \tsort: {\n \t\tprice: 'By price',\n \t\tnewest: 'By newest',\n \t\tpopularity: 'By popularity'\n \t},\n \tfilters: {\n \t\ttitle: 'Filters',\n \t\tprice: {\n \t\t\ttitle: 'Price',\n \t\t\tfrom: 'From',\n \t\t\tto: 'To'\n \t\t},\n \t\tfilters: [],\n \t\treset: 'Reset Filters'\n \t}\n },\n ru: {\n \tcategoriesTitle: 'Категория',\n \tsort: {\n \t\tprice: 'По цене',\n \t\tnewest: 'По новизне',\n \t\tpopularity: 'По популярности'\n \t},\n \tfilters: {\n \t\ttitle: 'Фильтры',\n \t\tprice: {\n \t\t\ttitle: 'Цена',\n \t\t\tfrom: 'От',\n \t\t\tto: 'До'\n \t\t},\n \t\tfilters: [],\n \t\treset: 'Сбросить фильтры',\n \t}\n }\n }\n }\n\n\tconst { t } = useI18n(text)\n\n\tonMounted(async () => {\n let options = {\n status: 'published'\n }\n\n\t\tawait categories.actions.fetchCategories(options)\n\t})\n\n\t\n</script>"],"names":["categories.actions"],"mappings":";;;;;;;;;;;;;;;;AAoFC,UAAM,WAAW;AAAA,MACd,EAAE,OAAO,UAAc,OAAO,SAAU;AAAA,MACxC,EAAE,OAAO,WAAe,OAAO,UAAW;AAAA,MAC1C,EAAE,OAAO,QAAa,OAAO,OAAQ;AAAA,IACvC;AAED,UAAM,SAAS;AAAA,MACZ,EAAE,OAAO,cAAiB,OAAO,OAAQ;AAAA,MACzC,EAAE,OAAO,gBAAkB,OAAO,UAAW;AAAA,MAC7C,EAAE,OAAO,iBAAmB,OAAO,WAAY;AAAA,MAC/C,EAAE,OAAO,mBAAoB,OAAO,QAAS;AAAA,IAC/C;AAED,UAAM,OAAO;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,QACR,IAAI;AAAA,UACH,iBAAiB;AAAA,UACjB,YAAY,CAAE;AAAA,UACd,MAAM;AAAA,YACL,OAAO;AAAA,YACP,QAAQ;AAAA,YACR,YAAY;AAAA,UACZ;AAAA,UACD,SAAS;AAAA,YACR,OAAO;AAAA,YACP,OAAO;AAAA,cACN,OAAO;AAAA,cACP,MAAM;AAAA,cACN,IAAI;AAAA,YACJ;AAAA,YACD,SAAS,CAAE;AAAA,YACX,OAAO;AAAA,UACP;AAAA,QACD;AAAA,QACD,IAAI;AAAA,UACH,iBAAiB;AAAA,UACjB,MAAM;AAAA,YACL,OAAO;AAAA,YACP,QAAQ;AAAA,YACR,YAAY;AAAA,UACZ;AAAA,UACD,SAAS;AAAA,YACR,OAAO;AAAA,YACP,OAAO;AAAA,cACN,OAAO;AAAA,cACP,MAAM;AAAA,cACN,IAAI;AAAA,YACJ;AAAA,YACD,SAAS,CAAE;AAAA,YACX,OAAO;AAAA,UACP;AAAA,QACD;AAAA,MACF;AAAA,IACF;AAEF,UAAM,EAAE,EAAC,IAAK,QAAQ,IAAI;AAE1B,cAAU,YAAY;AACnB,UAAI,UAAU;AAAA,QACZ,QAAQ;AAAA,MACT;AAEH,YAAMA,QAAmB,gBAAgB,OAAO;AAAA,IAClD,CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -100,7 +100,7 @@ const _sfc_main = {
100
100
  (vue.openBlock(), vue.createElementBlock(vue.Fragment, null, vue.renderList(presets, (preset, index) => {
101
101
  return vue.createElementVNode("button", {
102
102
  key: preset,
103
- onClick: vue.withModifiers(($event) => vue.unref(router).push({ name: "Product Recommmendation", query: { mood: preset } }), ["stop"]),
103
+ onClick: vue.withModifiers(($event) => vue.unref(router).push({ name: "ProductRecommmendation", query: { mood: preset } }), ["stop"]),
104
104
  class: "uppercase pd-thin t-medium flex-center flex-column flex-nowrap flex bg-dark-transp-50 bg-blur-thin radius-semi cursor-pointer transition-elastic hover-easeInOut-1"
105
105
  }, [
106
106
  vue.createElementVNode("img", {
@@ -1 +1 @@
1
- {"version":3,"file":"HeroRecommendation.vue.cjs","sources":["../../../../../../../src/modules/products/components/sections/HeroRecommendation.vue"],"sourcesContent":["<script setup>\n\timport { ref, onMounted } from 'vue'\n\n\timport FieldBig from \"@pf/src/components/FieldBig/FieldBig.vue\";\n\timport Shader from \"@pf/src/components/Shader/Shader.vue\";\n\n\timport { useRouter } from 'vue-router'\n\timport { useI18n } from 'vue-i18n'\n\n\timport * as products from '@pf/src/modules/products/store/products';\n\n\tconst router = useRouter()\n\n\tconst text = {\n messages: {\n \"en\": {\n\t\t \"title\": \"Increase Your High <br><b class='t-main'>Boosted by AI Budtender</b>\",\n\t\t \"description\": \"Just tell us what you're want, and Weeder will find your ideal match.\",\n\t\t \"placeholderTexts\": [\n\t\t \t'Lowest THC, please!',\n\t\t \t'Something with banana flavors?',\n\t\t \t\"I'm in the mood for trippy vibes.\"\n\t\t ],\n\t\t \"subdescription\": \"AI Curated Recommendations for Your Mood:\",\n\t\t \"presets\": {\n\t\t \"sleep\": \"sleep\",\n\t\t \"creative\": \"creative\",\n\t\t \"giggly\": \"giggly\",\n\t\t \"libido\": \"libido\",\n\t\t \"trippy\": \"trippy\",\n\t\t \"euphoric\": \"euphoric\"\n\t\t },\n\t\t \"placeholder\": \"Tell us what you're after...\",\n\t\t \"action\": \"Transmit\"\n\t\t },\n\t\t \"ru\": {\n\t\t \"title\": \"Персональный Накур,<br><b class='t-main'>Напрямую от AI</b>\",\n\t\t \"description\": \"AI на страже твоего релакса, бро. Мы подбираем самые космические товары с учетом твоего желаемого настроения:\",\n\t\t \"placeholderTexts\": [\n\t\t \t'Я хочу самый низкий THC',\n\t\t \t'Я хочу чего-нибудь бананового',\n\t\t \t'Я хочу курнуть хейза'\n\t\t ],\n\t\t \t \"presets\": {\n\t\t \"sleep\": \"сон\",\n\t\t \"creative\": \"креатив\",\n\t\t \"giggly\": \"смех\",\n\t\t \"libido\": \"либидо\",\n\t\t \"trippy\": \"трип\",\n\t\t \"euphoric\": \"кайф\"\n\t\t },\n\t\t \"subdescription\": \"Или выберите тег, и наш AI направит тебя к самым крутым вариантам:\",\n\t\t \"placeholder\": \"Опиши свой желаемый хай, bro...\",\n\t\t \"action\": \"Передать\"\n\t\t }\n\t\t}\t\n\t}\n\n\tconst { t, rt } = useI18n(text)\n\n\tlet mood = ref('')\n\n\tconst presets = ['sleep','creative','giggly','libido','trippy','euphoric'];\n\n\tasync function submitMood(presetMood = null) {\n\t\tconst moodToSend = presetMood || mood.value;\n\t\tawait products.actions.submitMood(moodToSend);\n\t}\n\n\t\n</script>\n\n<template>\n\t<div \n\t\tclass=\"pd-big bg-black t-white pos-relative o-hidden \"\n\t>\n\t\t<div class=\"flex-column flex-center flex t-center pos-relative z-index-1\">\n\t\t\t\n\t\t\t<h1 \n\t\t\t\tclass=\"mn-b-semi\" \n\t\t\t\tv-html=\"t('title')\"\n\t\t\t/>\n\n\t\t\t<p \n\t\t\t\tclass=\"mn-b-big p-big t-transp\" \n\t\t\t\tv-html=\"t('description')\"\n\t\t\t/>\n\t\t\t\n\t\t\t<FieldBig \n\t\t\t\t:input=\"mood\" \n\t\t :typingSpeed=\"100\"\n\t\t :loopTyping=\"true\"\n\t\t :enableTyping=\"true\"\n\t\t :placeholder=\"t('placeholder')\"\n\t\t :action=\"t('action')\"\n\t\t @update:input=\"mood = $event\"\n\t\t @action=\"router.push({name: 'Product Recommmendation', query: {mood: mood}})\"\n\t\t\t\tclass=\"mn-b-big pd-big bg-dark-transp-50 bg-blur-thin w-100 w-max-40r\"\n\t\t\t/>\n\n\t\t\t<p \n\t\t\t\tclass=\"w-m-60r t-transp mn-b-semi p-medium\" \n\t\t\t\tv-html=\"t('subdescription')\"\n\t\t\t/>\n\n\t\t\t<div style=\"max-width: 50rem;\" class=\"w-100 h-max gap-thin cols-6\">\n\n\t\t\t\t<button \n\t\t\t\t\tv-for=\"(preset,index) in presets\" \n\t\t\t\t\t:key=\"preset\" \n\t\t\t\t\t@click.stop=\"router.push({name: 'Product Recommmendation', query: {mood: preset}})\"\n\t\t\t\t\tclass=\"\n\t\t\t\t\t\tuppercase \n\t\t\t\t\t\tpd-thin\n\t\t\t\t\t\tt-medium\n\t\t\t\t\t\tflex-center\n\t\t\t\t\t\tflex-column\n\t\t\t\t\t\tflex-nowrap\n\t\t\t\t\t\tflex\n\t\t\t\t\t\tbg-dark-transp-50 \n\t\t\t\t\t\tbg-blur-thin\n\t\t\t\t\t\tradius-semi\n\t\t\t\t\t\tcursor-pointer\n\t\t\t\t\t\ttransition-elastic\n\t\t\t\t\t\thover-easeInOut-1 \n\t\t\t\t\t\"\n\t\t\t\t>\n\t\t\t\t\t<img loading=\"lazy\" \n\t\t\t\t\t\t:src=\"(FILE_SERVER_URL || '') + '/icons/moods/' + preset + '.svg'\" \n\t\t\t\t\t\tclass=\"w-100\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<span class=\"t-white\"> \n\t\t\t\t\t\t{{ t(`presets.` + preset) }}\n\t\t\t\t\t</span>\n\t\t\t\t</button>\n\n\t\t\t</div>\n\n\t\t</div>\n\n\t\t<!-- <Shader class=\"w-100 h-100 flex flex-center pos-absolute pos-t-0 pos-r-0 z-index-0\"/> -->\n\n <!-- <div class=\"w-100 h-100 flex flex-center pos-absolute pos-t-0 pos-r-0 z-index-0\">\n \t <div style=\"background-image: url(/spiral.jpg)\" class=\"spiral\"></div>\n </div> -->\n\n\t</div>\n</template>\n\n<style>\n.spiral {\n\t\n background-size: cover;\n width: 100rem;\n height: 100rem;\n position: absolute;\n top: 50%;\n left: 50%;\n opacity: 0.066;\n transform: translate(-50%, -50%) rotate(0deg);\n transform-origin: center center;\n animation: spin 5s linear infinite;\n}\n\n@keyframes spin {\n 0% {\n transform: translate(-50%, -50%) rotate(0deg);\n }\n 100% {\n transform: translate(-50%, -50%) rotate(360deg);\n }\n}\n</style>"],"names":["useRouter","useI18n","ref"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAWC,UAAM,SAASA,UAAAA,UAAW;AAE1B,UAAM,OAAO;AAAA,MACV,UAAU;AAAA,QACR,MAAM;AAAA,UACN,SAAS;AAAA,UACT,eAAe;AAAA,UACf,oBAAoB;AAAA,YACnB;AAAA,YACA;AAAA,YACA;AAAA,UACA;AAAA,UACD,kBAAkB;AAAA,UAClB,WAAW;AAAA,YACT,SAAS;AAAA,YACT,YAAY;AAAA,YACZ,UAAU;AAAA,YACV,UAAU;AAAA,YACV,UAAU;AAAA,YACV,YAAY;AAAA,UACb;AAAA,UACD,eAAe;AAAA,UACf,UAAU;AAAA,QACX;AAAA,QACD,MAAM;AAAA,UACJ,SAAS;AAAA,UACT,eAAe;AAAA,UACf,oBAAoB;AAAA,YACnB;AAAA,YACA;AAAA,YACA;AAAA,UACA;AAAA,UACA,WAAW;AAAA,YACV,SAAS;AAAA,YACT,YAAY;AAAA,YACZ,UAAU;AAAA,YACV,UAAU;AAAA,YACV,UAAU;AAAA,YACV,YAAY;AAAA,UACb;AAAA,UACD,kBAAkB;AAAA,UAClB,eAAe;AAAA,UACf,UAAU;AAAA,QACX;AAAA,MACF;AAAA,IACD;AAED,UAAM,EAAE,GAAG,OAAOC,QAAAA,QAAQ,IAAI;AAE9B,QAAI,OAAOC,IAAG,IAAC,EAAE;AAEjB,UAAM,UAAU,CAAC,SAAQ,YAAW,UAAS,UAAS,UAAS,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"HeroRecommendation.vue.cjs","sources":["../../../../../../../src/modules/products/components/sections/HeroRecommendation.vue"],"sourcesContent":["<script setup>\n\timport { ref, onMounted } from 'vue'\n\n\timport FieldBig from \"@pf/src/components/FieldBig/FieldBig.vue\";\n\timport Shader from \"@pf/src/components/Shader/Shader.vue\";\n\n\timport { useRouter } from 'vue-router'\n\timport { useI18n } from 'vue-i18n'\n\n\timport * as products from '@pf/src/modules/products/store/products';\n\n\tconst router = useRouter()\n\n\tconst text = {\n messages: {\n \"en\": {\n\t\t \"title\": \"Increase Your High <br><b class='t-main'>Boosted by AI Budtender</b>\",\n\t\t \"description\": \"Just tell us what you're want, and Weeder will find your ideal match.\",\n\t\t \"placeholderTexts\": [\n\t\t \t'Lowest THC, please!',\n\t\t \t'Something with banana flavors?',\n\t\t \t\"I'm in the mood for trippy vibes.\"\n\t\t ],\n\t\t \"subdescription\": \"AI Curated Recommendations for Your Mood:\",\n\t\t \"presets\": {\n\t\t \"sleep\": \"sleep\",\n\t\t \"creative\": \"creative\",\n\t\t \"giggly\": \"giggly\",\n\t\t \"libido\": \"libido\",\n\t\t \"trippy\": \"trippy\",\n\t\t \"euphoric\": \"euphoric\"\n\t\t },\n\t\t \"placeholder\": \"Tell us what you're after...\",\n\t\t \"action\": \"Transmit\"\n\t\t },\n\t\t \"ru\": {\n\t\t \"title\": \"Персональный Накур,<br><b class='t-main'>Напрямую от AI</b>\",\n\t\t \"description\": \"AI на страже твоего релакса, бро. Мы подбираем самые космические товары с учетом твоего желаемого настроения:\",\n\t\t \"placeholderTexts\": [\n\t\t \t'Я хочу самый низкий THC',\n\t\t \t'Я хочу чего-нибудь бананового',\n\t\t \t'Я хочу курнуть хейза'\n\t\t ],\n\t\t \t \"presets\": {\n\t\t \"sleep\": \"сон\",\n\t\t \"creative\": \"креатив\",\n\t\t \"giggly\": \"смех\",\n\t\t \"libido\": \"либидо\",\n\t\t \"trippy\": \"трип\",\n\t\t \"euphoric\": \"кайф\"\n\t\t },\n\t\t \"subdescription\": \"Или выберите тег, и наш AI направит тебя к самым крутым вариантам:\",\n\t\t \"placeholder\": \"Опиши свой желаемый хай, bro...\",\n\t\t \"action\": \"Передать\"\n\t\t }\n\t\t}\t\n\t}\n\n\tconst { t, rt } = useI18n(text)\n\n\tlet mood = ref('')\n\n\tconst presets = ['sleep','creative','giggly','libido','trippy','euphoric'];\n\n\tasync function submitMood(presetMood = null) {\n\t\tconst moodToSend = presetMood || mood.value;\n\t\tawait products.actions.submitMood(moodToSend);\n\t}\n\n\t\n</script>\n\n<template>\n\t<div \n\t\tclass=\"pd-big bg-black t-white pos-relative o-hidden \"\n\t>\n\t\t<div class=\"flex-column flex-center flex t-center pos-relative z-index-1\">\n\t\t\t\n\t\t\t<h1 \n\t\t\t\tclass=\"mn-b-semi\" \n\t\t\t\tv-html=\"t('title')\"\n\t\t\t/>\n\n\t\t\t<p \n\t\t\t\tclass=\"mn-b-big p-big t-transp\" \n\t\t\t\tv-html=\"t('description')\"\n\t\t\t/>\n\t\t\t\n\t\t\t<FieldBig \n\t\t\t\t:input=\"mood\" \n\t\t :typingSpeed=\"100\"\n\t\t :loopTyping=\"true\"\n\t\t :enableTyping=\"true\"\n\t\t :placeholder=\"t('placeholder')\"\n\t\t :action=\"t('action')\"\n\t\t @update:input=\"mood = $event\"\n\t\t @action=\"router.push({name: 'Product Recommmendation', query: {mood: mood}})\"\n\t\t\t\tclass=\"mn-b-big pd-big bg-dark-transp-50 bg-blur-thin w-100 w-max-40r\"\n\t\t\t/>\n\n\t\t\t<p \n\t\t\t\tclass=\"w-m-60r t-transp mn-b-semi p-medium\" \n\t\t\t\tv-html=\"t('subdescription')\"\n\t\t\t/>\n\n\t\t\t<div style=\"max-width: 50rem;\" class=\"w-100 h-max gap-thin cols-6\">\n\n\t\t\t\t<button \n\t\t\t\t\tv-for=\"(preset,index) in presets\" \n\t\t\t\t\t:key=\"preset\" \n\t\t\t\t\t@click.stop=\"router.push({name: 'ProductRecommmendation', query: {mood: preset}})\"\n\t\t\t\t\tclass=\"\n\t\t\t\t\t\tuppercase \n\t\t\t\t\t\tpd-thin\n\t\t\t\t\t\tt-medium\n\t\t\t\t\t\tflex-center\n\t\t\t\t\t\tflex-column\n\t\t\t\t\t\tflex-nowrap\n\t\t\t\t\t\tflex\n\t\t\t\t\t\tbg-dark-transp-50 \n\t\t\t\t\t\tbg-blur-thin\n\t\t\t\t\t\tradius-semi\n\t\t\t\t\t\tcursor-pointer\n\t\t\t\t\t\ttransition-elastic\n\t\t\t\t\t\thover-easeInOut-1 \n\t\t\t\t\t\"\n\t\t\t\t>\n\t\t\t\t\t<img loading=\"lazy\" \n\t\t\t\t\t\t:src=\"(FILE_SERVER_URL || '') + '/icons/moods/' + preset + '.svg'\" \n\t\t\t\t\t\tclass=\"w-100\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<span class=\"t-white\"> \n\t\t\t\t\t\t{{ t(`presets.` + preset) }}\n\t\t\t\t\t</span>\n\t\t\t\t</button>\n\n\t\t\t</div>\n\n\t\t</div>\n\n\t\t<!-- <Shader class=\"w-100 h-100 flex flex-center pos-absolute pos-t-0 pos-r-0 z-index-0\"/> -->\n\n <!-- <div class=\"w-100 h-100 flex flex-center pos-absolute pos-t-0 pos-r-0 z-index-0\">\n \t <div style=\"background-image: url(/spiral.jpg)\" class=\"spiral\"></div>\n </div> -->\n\n\t</div>\n</template>\n\n<style>\n.spiral {\n\t\n background-size: cover;\n width: 100rem;\n height: 100rem;\n position: absolute;\n top: 50%;\n left: 50%;\n opacity: 0.066;\n transform: translate(-50%, -50%) rotate(0deg);\n transform-origin: center center;\n animation: spin 5s linear infinite;\n}\n\n@keyframes spin {\n 0% {\n transform: translate(-50%, -50%) rotate(0deg);\n }\n 100% {\n transform: translate(-50%, -50%) rotate(360deg);\n }\n}\n</style>"],"names":["useRouter","useI18n","ref"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAWC,UAAM,SAASA,UAAAA,UAAW;AAE1B,UAAM,OAAO;AAAA,MACV,UAAU;AAAA,QACR,MAAM;AAAA,UACN,SAAS;AAAA,UACT,eAAe;AAAA,UACf,oBAAoB;AAAA,YACnB;AAAA,YACA;AAAA,YACA;AAAA,UACA;AAAA,UACD,kBAAkB;AAAA,UAClB,WAAW;AAAA,YACT,SAAS;AAAA,YACT,YAAY;AAAA,YACZ,UAAU;AAAA,YACV,UAAU;AAAA,YACV,UAAU;AAAA,YACV,YAAY;AAAA,UACb;AAAA,UACD,eAAe;AAAA,UACf,UAAU;AAAA,QACX;AAAA,QACD,MAAM;AAAA,UACJ,SAAS;AAAA,UACT,eAAe;AAAA,UACf,oBAAoB;AAAA,YACnB;AAAA,YACA;AAAA,YACA;AAAA,UACA;AAAA,UACA,WAAW;AAAA,YACV,SAAS;AAAA,YACT,YAAY;AAAA,YACZ,UAAU;AAAA,YACV,UAAU;AAAA,YACV,UAAU;AAAA,YACV,YAAY;AAAA,UACb;AAAA,UACD,kBAAkB;AAAA,UAClB,eAAe;AAAA,UACf,UAAU;AAAA,QACX;AAAA,MACF;AAAA,IACD;AAED,UAAM,EAAE,GAAG,OAAOC,QAAAA,QAAQ,IAAI;AAE9B,QAAI,OAAOC,IAAG,IAAC,EAAE;AAEjB,UAAM,UAAU,CAAC,SAAQ,YAAW,UAAS,UAAS,UAAS,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -98,7 +98,7 @@ const _sfc_main = {
98
98
  (openBlock(), createElementBlock(Fragment, null, renderList(presets, (preset, index) => {
99
99
  return createElementVNode("button", {
100
100
  key: preset,
101
- onClick: withModifiers(($event) => unref(router).push({ name: "Product Recommmendation", query: { mood: preset } }), ["stop"]),
101
+ onClick: withModifiers(($event) => unref(router).push({ name: "ProductRecommmendation", query: { mood: preset } }), ["stop"]),
102
102
  class: "uppercase pd-thin t-medium flex-center flex-column flex-nowrap flex bg-dark-transp-50 bg-blur-thin radius-semi cursor-pointer transition-elastic hover-easeInOut-1"
103
103
  }, [
104
104
  createElementVNode("img", {