@ozdao/prometheus-framework 0.2.29 → 0.2.31

Sign up to get free protection for your applications and to get access to all the features.
Files changed (326) hide show
  1. package/dist/addMembersQuantity-3505b6f3.mjs +98 -0
  2. package/dist/addMembersQuantity-fb552ca0.js +97 -0
  3. package/dist/auth.server.js +6 -9
  4. package/dist/auth.server.mjs +6 -9
  5. package/dist/community.server.js +28 -21
  6. package/dist/community.server.mjs +28 -21
  7. package/dist/events.server.js +1 -1
  8. package/dist/events.server.mjs +1 -1
  9. package/dist/files.server.js +114 -111
  10. package/dist/files.server.mjs +114 -111
  11. package/dist/gallery.server.js +3 -3
  12. package/dist/gallery.server.mjs +3 -3
  13. package/dist/globals.server.js +1 -1
  14. package/dist/globals.server.mjs +1 -1
  15. package/dist/index-a8dffc0c.js +213 -0
  16. package/dist/index-d769324d.mjs +214 -0
  17. package/dist/mailing-37c2ba41.mjs +68 -0
  18. package/dist/mailing-fe16a26a.js +67 -0
  19. package/dist/main.css +1 -1
  20. package/dist/middlewares.server.js +1 -1
  21. package/dist/middlewares.server.mjs +1 -1
  22. package/dist/organizations.server.js +125 -25
  23. package/dist/organizations.server.mjs +125 -25
  24. package/dist/prometheus-framework/src/components/Dropdown/Dropdown.vue.cjs +1 -1
  25. package/dist/prometheus-framework/src/components/Dropdown/Dropdown.vue.js +49 -2
  26. package/dist/prometheus-framework/src/components/Dropdown/Dropdown.vue2.cjs +1 -1
  27. package/dist/prometheus-framework/src/components/Dropdown/Dropdown.vue2.js +2 -49
  28. package/dist/prometheus-framework/src/components/Select/Select.vue.cjs +1 -1
  29. package/dist/prometheus-framework/src/components/Select/Select.vue.js +78 -2
  30. package/dist/prometheus-framework/src/components/Select/Select.vue2.cjs +1 -1
  31. package/dist/prometheus-framework/src/components/Select/Select.vue2.js +2 -78
  32. package/dist/prometheus-framework/src/modules/backoffice/components/pages/Dashboard.vue.cjs +1 -1
  33. package/dist/prometheus-framework/src/modules/backoffice/components/pages/Dashboard.vue.js +1 -1
  34. package/dist/prometheus-framework/src/modules/community/components/layouts/Community.vue.cjs +1 -1
  35. package/dist/prometheus-framework/src/modules/community/components/layouts/Community.vue.js +1 -1
  36. package/dist/prometheus-framework/src/modules/community/components/pages/CreateBlogPost.vue.cjs +1 -1
  37. package/dist/prometheus-framework/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
  38. package/dist/prometheus-framework/src/modules/constructor/components/elements/Textarea.vue.cjs +4 -1
  39. package/dist/prometheus-framework/src/modules/constructor/components/elements/Textarea.vue.js +62 -2
  40. package/dist/prometheus-framework/src/modules/constructor/components/elements/Textarea.vue2.cjs +1 -4
  41. package/dist/prometheus-framework/src/modules/constructor/components/elements/Textarea.vue2.js +2 -62
  42. package/dist/prometheus-framework/src/modules/constructor/components/sections/Constructor.vue.cjs +1 -1
  43. package/dist/prometheus-framework/src/modules/constructor/components/sections/Constructor.vue.js +1 -1
  44. package/dist/prometheus-framework/src/modules/events/components/layouts/layoutEvents.vue.cjs +1 -1
  45. package/dist/prometheus-framework/src/modules/events/components/layouts/layoutEvents.vue.js +1 -1
  46. package/dist/prometheus-framework/src/modules/events/components/pages/EditEvent.vue.cjs +1 -1
  47. package/dist/prometheus-framework/src/modules/events/components/pages/EditEvent.vue.js +1 -1
  48. package/dist/prometheus-framework/src/modules/events/components/pages/Events.vue.cjs +1 -1
  49. package/dist/prometheus-framework/src/modules/events/components/pages/Events.vue.js +2 -2
  50. package/dist/prometheus-framework/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +1 -1
  51. package/dist/prometheus-framework/src/modules/gallery/components/sections/BackofficeGallery.vue.js +1 -1
  52. package/dist/prometheus-framework/src/modules/gallery/components/sections/GalleryWithCategories.vue.cjs +1 -1
  53. package/dist/prometheus-framework/src/modules/gallery/components/sections/GalleryWithCategories.vue.js +1 -1
  54. package/dist/prometheus-framework/src/modules/globals/components/blocks/CardHeader.vue.cjs +1 -1
  55. package/dist/prometheus-framework/src/modules/globals/components/blocks/CardHeader.vue.js +1 -1
  56. package/dist/prometheus-framework/src/modules/legal/components/pages/Legal.vue.cjs +1 -1
  57. package/dist/prometheus-framework/src/modules/legal/components/pages/Legal.vue.js +1 -1
  58. package/dist/prometheus-framework/src/modules/mobile/components/Menu/Menu.vue.cjs +1 -1
  59. package/dist/prometheus-framework/src/modules/mobile/components/Menu/Menu.vue.js +11 -2
  60. package/dist/prometheus-framework/src/modules/mobile/components/Menu/Menu.vue2.cjs +1 -1
  61. package/dist/prometheus-framework/src/modules/mobile/components/Menu/Menu.vue2.js +2 -11
  62. package/dist/prometheus-framework/src/modules/organizations/components/blocks/DepartmentMemberModify.vue.cjs +1 -1
  63. package/dist/prometheus-framework/src/modules/organizations/components/blocks/DepartmentMemberModify.vue.js +1 -1
  64. package/dist/prometheus-framework/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +1 -1
  65. package/dist/prometheus-framework/src/modules/organizations/components/pages/DepartmentEdit.vue.js +1 -1
  66. package/dist/prometheus-framework/src/modules/organizations/components/pages/Organization.vue.cjs +1 -1
  67. package/dist/prometheus-framework/src/modules/organizations/components/pages/Organization.vue.js +2 -2
  68. package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +1 -1
  69. package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationEdit.vue.js +1 -1
  70. package/dist/prometheus-framework/src/modules/organizations/components/sections/DetailsTab.vue.cjs +1 -1
  71. package/dist/prometheus-framework/src/modules/organizations/components/sections/DetailsTab.vue.js +1 -1
  72. package/dist/prometheus-framework/src/modules/organizations/components/sections/MembersAdd.vue.cjs +1 -1
  73. package/dist/prometheus-framework/src/modules/organizations/components/sections/MembersAdd.vue.js +1 -1
  74. package/dist/prometheus-framework/src/modules/organizations/components/sections/Organizations.vue.cjs +1 -1
  75. package/dist/prometheus-framework/src/modules/organizations/components/sections/Organizations.vue.js +2 -2
  76. package/dist/prometheus-framework/src/modules/reports/components/sections/FormReport.vue.cjs +1 -1
  77. package/dist/prometheus-framework/src/modules/reports/components/sections/FormReport.vue.js +1 -1
  78. package/dist/prometheus-framework/src/modules/users/components/pages/Profile.vue.cjs +1 -1
  79. package/dist/prometheus-framework/src/modules/users/components/pages/Profile.vue.js +2 -2
  80. package/dist/prometheus-framework.cjs.js +30 -29
  81. package/dist/prometheus-framework.es.js +2478 -2282
  82. package/dist/reports.server.js +1 -1
  83. package/dist/reports.server.mjs +1 -1
  84. package/dist/style.css +1 -1
  85. package/dist/users.server.js +1 -1
  86. package/dist/users.server.mjs +1 -1
  87. package/package.json +4 -2
  88. package/src/assets/images/logo.svg +7 -7
  89. package/src/components/Block/Block.vue +77 -0
  90. package/src/components/Breadcrumbs/Breadcrumbs.vue +2 -2
  91. package/src/components/Button/Button.vue +32 -227
  92. package/src/components/Checkbox/Checkbox.vue +1 -1
  93. package/src/components/Chips/Chips.vue +8 -8
  94. package/src/components/DatePicker/DatePicker.vue +3 -4
  95. package/src/components/EditImages/EditImages.vue +32 -14
  96. package/src/{modules/globals/components/sections → components/Feed}/Feed.vue +60 -45
  97. package/src/components/FieldBig/FieldBig.vue +16 -5
  98. package/src/components/FieldPhone/FieldPhone.vue +2 -1
  99. package/src/components/Footer/Footer.vue +36 -27
  100. package/src/components/Header/Header.vue +161 -166
  101. package/src/components/Loader/Loader.vue +9 -2
  102. package/src/components/LocationMarker/LocationMarker.vue +38 -12
  103. package/src/components/LocationSelection/LocationSelection.vue +67 -75
  104. package/src/components/Magnifier/Magnifier.vue +3 -3
  105. package/src/components/Navigation/Navigation.vue +16 -16
  106. package/src/components/Popup/Popup.vue +8 -6
  107. package/src/components/Select/Select.vue +35 -6
  108. package/src/components/SelectMulti/SelectMulti.vue +5 -13
  109. package/src/components/Shader/Shader.vue +128 -0
  110. package/src/components/Sidebar/Sidebar.vue +71 -35
  111. package/src/components/Spoiler/Spoiler.vue +1 -1
  112. package/src/components/Tab/Tab.vue +1 -1
  113. package/src/components/Tooltip/Tooltip.vue +1 -1
  114. package/src/components/UploadImage/UploadImage.vue +4 -4
  115. package/src/components/UploadImageMultiple/UploadImageMultiple.vue +54 -10
  116. package/src/modules/applications/controllers/applications.controller.js +0 -1
  117. package/src/modules/auth/components/pages/EnterCode.vue +1 -1
  118. package/src/modules/auth/components/pages/EnterPassword.vue +3 -3
  119. package/src/modules/auth/components/pages/ResetPassword.vue +1 -2
  120. package/src/modules/auth/components/pages/SignIn.vue +26 -10
  121. package/src/modules/auth/components/pages/SignUp.vue +1 -2
  122. package/src/modules/auth/controllers/twofa.controller.js +4 -4
  123. package/src/modules/auth/localization/EnterCode.json +2 -2
  124. package/src/modules/auth/localization/EnterPassword.json +2 -2
  125. package/src/modules/auth/localization/ResetPassword.json +2 -2
  126. package/src/modules/auth/localization/SignIn.json +3 -3
  127. package/src/modules/auth/localization/SignUp.json +3 -3
  128. package/src/modules/auth/utils/server/verifyAppleIdToken.js +0 -1
  129. package/src/modules/backoffice/components/layouts/Backoffice.vue +1 -1
  130. package/src/modules/backoffice/components/pages/Dashboard.vue +171 -120
  131. package/src/modules/backoffice/router/backoffice.js +119 -129
  132. package/src/modules/chats/components/blocks/ChatMessage.vue +25 -0
  133. package/src/modules/chats/components/pages/ChatPage.vue +50 -0
  134. package/src/modules/chats/components/sections/ChatWindow.vue +38 -0
  135. package/src/modules/chats/controllers/chats.controller.js +32 -0
  136. package/src/modules/chats/models/chat.model.js +26 -0
  137. package/src/modules/chats/routes/chats.routes.js +53 -0
  138. package/src/modules/chats/store/chat.store.js +61 -0
  139. package/src/modules/community/components/blocks/CardBlogpost.vue +19 -4
  140. package/src/modules/community/components/layouts/Community.vue +96 -39
  141. package/src/modules/community/components/pages/Blog.vue +4 -3
  142. package/src/modules/community/components/pages/BlogPost.vue +10 -1
  143. package/src/modules/community/components/pages/CreateBlogPost.vue +36 -17
  144. package/src/modules/community/components/sections/HotPosts.vue +3 -3
  145. package/src/modules/community/components/sections/JoinUs.vue +19 -13
  146. package/src/modules/community/controllers/blog.controller.js +3 -4
  147. package/src/modules/community/controllers/utils/queryProcessor.js +16 -17
  148. package/src/modules/community/models/blogpost.model.js +6 -3
  149. package/src/modules/community/store/blogposts.js +1 -0
  150. package/src/modules/constructor/components/elements/Embed.vue +12 -1
  151. package/src/modules/constructor/components/elements/ImageUpload.vue +2 -2
  152. package/src/modules/constructor/components/elements/Textarea.vue +6 -1
  153. package/src/modules/constructor/components/elements/Video.vue +79 -0
  154. package/src/modules/constructor/components/elements/VideoPlayer.vue +59 -0
  155. package/src/modules/constructor/components/elements/Youtube.vue +52 -0
  156. package/src/modules/constructor/components/sections/Constructor.vue +27 -3
  157. package/src/modules/events/components/layouts/layoutEvents.vue +7 -28
  158. package/src/modules/files/controllers/files.controller.js +9 -22
  159. package/src/modules/files/middlewares/server/index.js +2 -2
  160. package/src/modules/files/middlewares/server/middlewareBusboy.js +137 -0
  161. package/src/modules/files/routes/files.routes.js +9 -9
  162. package/src/modules/globals/localization/vue-i18n.js +8 -1
  163. package/src/modules/globals/mixins/mixins.js +23 -13
  164. package/src/modules/globals/router/routerGuards.js +2 -2
  165. package/src/modules/globals/store/globals.js +86 -9
  166. package/src/modules/globals/utils/mailing.js +24 -3
  167. package/src/modules/icons/entities/IconCommunity.vue +4 -4
  168. package/src/modules/icons/entities/IconEvents.vue +1 -1
  169. package/src/modules/icons/entities/IconGroups.vue +1 -1
  170. package/src/modules/icons/entities/IconPrice.vue +5 -0
  171. package/src/modules/icons/entities/IconProfile.vue +5 -0
  172. package/src/modules/icons/entities/IconShopcart.vue +5 -0
  173. package/src/modules/icons/entities/IconTime.vue +5 -0
  174. package/src/modules/icons/icons.client.js +4 -0
  175. package/src/modules/icons/labels/LabelAppStore.vue +24 -24
  176. package/src/modules/icons/labels/LabelGooglePlay.vue +9 -9
  177. package/src/modules/icons/logos/Logotype.vue +20 -0
  178. package/src/modules/icons/navigation/IconAdd.vue +17 -0
  179. package/src/modules/icons/navigation/IconChevronBottom.vue +18 -0
  180. package/src/modules/icons/navigation/IconChevronRight.vue +3 -3
  181. package/src/modules/icons/navigation/IconDelete.vue +19 -0
  182. package/src/modules/icons/navigation/IconMinus.vue +15 -0
  183. package/src/modules/icons/navigation/IconSearch.vue +17 -0
  184. package/src/modules/icons/navigation/IconUpload.vue +16 -0
  185. package/src/modules/icons/placeholders/PlaceholderImage.vue +5 -0
  186. package/src/modules/icons/placeholders/PlaceholderOrganizationPic.vue +20 -0
  187. package/src/modules/icons/placeholders/PlaceholderUserpic.vue +4 -18
  188. package/src/modules/icons/socials/instagram.vue +1 -1
  189. package/src/modules/icons/socials/line.vue +1 -1
  190. package/src/modules/icons/socials/reddit.vue +1 -1
  191. package/src/modules/icons/socials/telegram.vue +1 -1
  192. package/src/modules/icons/socials/twitter.vue +1 -1
  193. package/src/modules/icons/socials/youtube.vue +1 -1
  194. package/src/modules/landing/components/sections/Guide.vue +92 -0
  195. package/src/modules/landing/components/sections/MobileApp.vue +23 -12
  196. package/src/modules/marketplace/components/layouts/Marketplace.vue +76 -188
  197. package/src/modules/marketplace/components/pages/Catalog.vue +65 -119
  198. package/src/modules/marketplace/components/sections/Filters.vue +195 -0
  199. package/src/modules/marketplace/store/marketplace.js +2 -2
  200. package/src/modules/middlewares/client/auth.validation.js +0 -6
  201. package/src/modules/middlewares/client/states.validation.js +2 -8
  202. package/src/modules/middlewares/server/authJwt.js +1 -1
  203. package/src/modules/mobile/components/Menu/MenuItem.vue +3 -6
  204. package/src/modules/openai/controllers/openai.controller.js +0 -1
  205. package/src/modules/orders/components/blocks/CardOrder.vue +166 -0
  206. package/src/modules/orders/components/blocks/CardOrderItem.vue +59 -66
  207. package/src/modules/orders/components/blocks/Positions.vue +4 -4
  208. package/src/modules/orders/components/pages/EditOrder.vue +78 -142
  209. package/src/modules/orders/components/pages/FormOrder.vue +192 -0
  210. package/src/modules/orders/components/pages/Order.vue +326 -120
  211. package/src/modules/orders/components/pages/Orders.vue +13 -9
  212. package/src/modules/orders/components/pages/{ViewOrder.vue → Orders_refact.vue} +13 -10
  213. package/src/modules/orders/components/partials/ShopCart.vue +22 -13
  214. package/src/modules/orders/components/sections/EmptyState.vue +1 -1
  215. package/src/modules/orders/components/sections/{Form.vue → FormOrderDetails.vue} +38 -106
  216. package/src/modules/orders/controllers/orders.controller.js +37 -28
  217. package/src/modules/orders/models/order.model.js +39 -9
  218. package/src/modules/orders/router/orders.router.js +23 -2
  219. package/src/modules/orders/routes/orders.routes.js +14 -17
  220. package/src/modules/orders/store/orders.js +24 -9
  221. package/src/modules/orders/store/shopcart.js +20 -19
  222. package/src/modules/organizations/components/blocks/CardDepartment.vue +1 -1
  223. package/src/modules/organizations/components/blocks/CardOrganization.vue +98 -46
  224. package/src/modules/organizations/components/blocks/Rating.vue +1 -1
  225. package/src/modules/organizations/components/blocks/Socials.vue +11 -3
  226. package/src/modules/organizations/components/elements/ButtonToggleMembership.vue +1 -1
  227. package/src/modules/organizations/components/pages/Department.vue +1 -1
  228. package/src/modules/organizations/components/pages/DepartmentEdit.vue +4 -4
  229. package/src/modules/organizations/components/pages/Members.vue +6 -4
  230. package/src/modules/organizations/components/pages/Organization.vue +120 -49
  231. package/src/modules/organizations/components/pages/OrganizationEdit.vue +8 -1
  232. package/src/modules/organizations/components/pages/Organizations.vue +27 -6
  233. package/src/modules/organizations/components/sections/DetailsTab.vue +11 -9
  234. package/src/modules/organizations/components/sections/Feed.vue +0 -3
  235. package/src/modules/organizations/components/sections/FeedDepartments.vue +2 -2
  236. package/src/modules/organizations/controllers/organizations.controller.js +126 -15
  237. package/src/modules/organizations/controllers/utils/addMembersQuantity.js +19 -9
  238. package/src/modules/organizations/models/organization.model.js +5 -2
  239. package/src/modules/organizations/router/members.router.js +1 -3
  240. package/src/modules/organizations/router/organizations.js +8 -6
  241. package/src/modules/organizations/router/products.router.js +36 -2
  242. package/src/modules/organizations/store/organizations.js +38 -84
  243. package/src/modules/pages/controllers/pages.controller.js +0 -4
  244. package/src/modules/payments/controller/payments.controller.js +1 -1
  245. package/src/modules/products/components/blocks/CardLeftover.vue +17 -22
  246. package/src/modules/products/components/blocks/CardPosition.vue +96 -49
  247. package/src/modules/products/components/blocks/CardProduct.vue +24 -53
  248. package/src/modules/products/components/blocks/Images360.vue +4 -4
  249. package/src/modules/products/components/blocks/ImagesThumbnails.vue +2 -7
  250. package/src/modules/products/components/blocks/ListPositions.vue +74 -0
  251. package/src/modules/products/components/elements/Price.vue +11 -5
  252. package/src/modules/products/components/elements/THC.vue +6 -6
  253. package/src/modules/products/components/pages/{LeftoverAdd.vue → EditLeftover.vue} +93 -79
  254. package/src/modules/products/components/pages/Leftovers.vue +74 -70
  255. package/src/modules/products/components/pages/Product.vue +4 -7
  256. package/src/modules/products/components/pages/ProductEdit.vue +230 -88
  257. package/src/modules/products/components/pages/ProductRecommmendation.vue +1 -1
  258. package/src/modules/products/components/pages/Products.vue +6 -3
  259. package/src/modules/products/components/pages/ProductsBackoffice.vue +3 -5
  260. package/src/modules/products/components/sections/EditModifications.vue +3 -3
  261. package/src/modules/products/components/sections/EditProductInfo.vue +40 -50
  262. package/src/modules/products/components/sections/FilterProducts.vue +57 -18
  263. package/src/modules/products/components/sections/HeroRecommendation.vue +233 -99
  264. package/src/modules/products/components/sections/MenuSection.vue +127 -0
  265. package/src/modules/products/components/sections/PopularProducts.vue +81 -37
  266. package/src/modules/products/components/sections/SectionProduct.vue +21 -23
  267. package/src/modules/products/controllers/leftovers.controller.js +11 -1
  268. package/src/modules/products/controllers/products.controller.js +100 -97
  269. package/src/modules/products/models/leftover.model.js +6 -4
  270. package/src/modules/products/models/product.model.js +13 -1
  271. package/src/modules/products/routes/products.routes.js +4 -4
  272. package/src/modules/products/store/leftovers.js +4 -24
  273. package/src/modules/products/store/products.js +44 -30
  274. package/src/modules/spots/components/blocks/CardSpot.vue +43 -72
  275. package/src/modules/spots/components/layouts/Spots.vue +9 -91
  276. package/src/modules/spots/components/pages/Map.vue +171 -62
  277. package/src/modules/spots/components/pages/Spot.vue +1 -1
  278. package/src/modules/spots/components/pages/SpotEdit.vue +131 -174
  279. package/src/modules/spots/controllers/spots.controller.js +1 -0
  280. package/src/modules/spots/models/spot.model.js +6 -3
  281. package/src/modules/spots/store/spots.js +42 -48
  282. package/src/modules/users/components/pages/Profile.vue +6 -28
  283. package/src/modules/users/components/pages/ProfileBlogposts.vue +1 -1
  284. package/src/modules/users/components/pages/ProfileEdit.vue +1 -1
  285. package/src/modules/users/components/pages/ProfileEvents.vue +1 -1
  286. package/src/modules/users/components/pages/ProfileOrganizations.vue +1 -1
  287. package/src/modules/users/router/users.js +1 -1
  288. package/src/modules/wallet/components/pages/Wallet.vue +105 -109
  289. package/src/modules/wallet/controllers/crypto.controller.js +129 -0
  290. package/src/modules/wallet/models/reward.model.js +53 -0
  291. package/src/modules/wallet/routes/crypto.routes.js +36 -0
  292. package/src/modules/wallet/store/wallet.js +52 -49
  293. package/src/styles/base/all.scss +144 -12
  294. package/src/styles/base/backgrounds.scss +2 -34
  295. package/src/styles/base/borders.scss +18 -23
  296. package/src/styles/base/scrolling.scss +97 -29
  297. package/src/styles/base/{shadows.scss → shadow_transitions_hover_refactor.scss} +55 -2
  298. package/src/styles/config.scss +69 -17
  299. package/src/styles/layout.scss +12 -182
  300. package/src/styles/reset.scss +20 -21
  301. package/src/styles/responsive.scss +4 -67
  302. package/src/styles/theme.scss +3 -4
  303. package/src/styles/typography.scss +15 -17
  304. package/src/assets/fonts/AvenirNext-Bold.woff2 +0 -0
  305. package/src/assets/fonts/AvenirNext-DemiBold.woff2 +0 -0
  306. package/src/assets/fonts/AvenirNext-Heavy.woff2 +0 -0
  307. package/src/assets/fonts/AvenirNext-Medium.woff2 +0 -0
  308. package/src/assets/fonts/AvenirNext-Regular.woff2 +0 -0
  309. package/src/assets/fonts/AvenirNext-UltraLight.woff2 +0 -0
  310. package/src/modules/files/middlewares/server/md.js +0 -152
  311. package/src/modules/files/middlewares/server/middlewareMulter.js +0 -121
  312. package/src/modules/organizations/controllers/organizations.new.controller.js +0 -372
  313. package/src/modules/products/components/blocks/EditCategories.vue +0 -68
  314. package/src/modules/products/components/sections/EditParameters.vue +0 -58
  315. package/src/modules/products/components/sections/EditProductImages.vue +0 -67
  316. package/src/modules/spots/components/sections/Feed.vue +0 -64
  317. package/src/styles/base/border-radius.scss +0 -47
  318. package/src/styles/base/cursors.scss +0 -23
  319. package/src/styles/base/height.scss +0 -60
  320. package/src/styles/base/hovers.scss +0 -110
  321. package/src/styles/base/positions.scss +0 -192
  322. package/src/styles/base/transitions.scss +0 -137
  323. package/src/styles/base/width.scss +0 -2
  324. package/src/styles/components/block.scss +0 -18
  325. package/src/styles/components/breadcrumbs.scss +0 -0
  326. package/src/styles/components/input.scss +0 -319
@@ -1,101 +1,43 @@
1
1
  <template>
2
- <div class="min-h-100vh pd-thin">
3
-
4
- <div class=" br-solid br-1px br-grey bg-grey radius-big">
5
-
6
- <header class=" pd-medium mn-r-auto flex-v-center t-left flex-nowrap flex">
7
- <h2 class="t-left">
8
- <span class="">Weed in </span>
9
-
10
- <span @click="a => { store.globals.state.isLocationPopupOpen = true }" v-if="localPosition.city || localPosition.state || localPosition.country" class="t-semi t-main">
11
- <span v-if="localPosition.city">{{localPosition.city}}, </span>
12
- <span v-if="localPosition.state">{{localPosition.state}}, </span>
13
- <span v-if="localPosition.country">{{localPosition.country}}</span>
14
- </span>
15
-
16
- <span v-else @click="a => { store.globals.state.isLocationPopupOpen = true }" class="t-semi t-main">
17
- The World
18
- </span>
19
- </h2>
20
- </header>
21
-
22
- <div class="z-index-1 radius-bl-big radius-br-big bg-black t-white pd-medium flex-v-center flex-nowrap flex">
23
- <!-- <p class="t-semi radius-extra uppercase p-medium mn-r-thin">Filter by</p> -->
24
- <Dropdown
25
- :label="t('categoriesTitle')"
26
- class="cursor-pointer br-solid br-2px br-white mn-r-small pd-thin t-semi radius-extra uppercase p-medium"
27
- :class="[
28
- store.marketplace.state.filter.categories.length > 0 ? 'bg-white t-black' : ''
29
- ]"
30
- >
31
- <Checkbox
32
- v-for="(category, index) in categories"
33
- :label="category.name"
34
- name="categories"
35
- :value="category.url"
36
- class="cursor-pointer w-100 mn-t-small mn-b-small bg-black t-white radius-small pd-small"
37
- :radio="store.marketplace.state.filter.categories"
38
- />
39
- </Dropdown>
40
-
41
- <Dropdown
42
- :label="t('filters.price.title')"
43
- class="cursor-pointer mn-r-small br-solid br-2px br-white pd-thin t-semi radius-extra uppercase p-medium"
44
- :class="[
45
- store.marketplace.state.filter.prices.length > 0 ? 'bg-white t-black' : ''
46
- ]"
47
- >
48
- <Checkbox
49
- v-for="(price, index) in prices"
50
- :label="price.label"
51
- name="prices"
52
- :value="price.value"
53
- class="cursor-pointer w-100 mn-t-small bg-black t-white radius-small pd-small"
54
- :radio="store.marketplace.state.filter.prices"
55
- />
56
- </Dropdown>
57
-
58
- <Dropdown
59
- label="Delivery"
60
- class="cursor-pointer mn-r-auto br-solid br-2px br-white pd-thin t-semi radius-extra uppercase p-medium"
61
- :class="[
62
- store.marketplace.state.filter.delivery.length > 0 ? 'bg-white t-black' : ''
63
- ]"
64
- >
65
- <Checkbox
66
- v-for="(delivery, index) in delivery"
67
- :label="delivery.label"
68
- name="prices"
69
- :value="delivery.value"
70
- class="cursor-pointer w-100 mn-t-small bg-black t-white radius-small pd-small"
71
- :radio="store.marketplace.state.filter.delivery"
72
- />
73
- </Dropdown>
74
- <!-- Reset filter -->
75
- <p class="t-semi radius-extra uppercase p-medium mn-r-thin">Sort by</p>
76
- <Select
77
- :options="['popularity','rating','products']"
78
- v-model:select="store.marketplace.state.sort.current"
79
- placeholder="Select type"
80
- class="
81
- bg-white
82
- cursor-pointer
83
- pd-thin t-semi radius-extra uppercase p-medium
84
- w-8r
85
- t-center
86
- t-black
87
- "
88
- />
89
-
90
- </div>
91
-
2
+ <div style="min-height: 100%;" class="h-min-100 pd-thin">
3
+ <header class="mn-b-thin radius-big bg-grey pd-medium flex-v-center t-left flex-nowrap flex">
4
+ <h2 class="t-left">
5
+ <span class="">Weed in </span>
6
+
7
+ <span @click="a => { store.globals.state.isOpenLocationPopup = true }" v-if="localPosition.city || localPosition.state || localPosition.country" class="t-semi t-main">
8
+ <span v-if="localPosition.city">{{localPosition.city}}, </span>
9
+ <span v-if="localPosition.state">{{localPosition.state}}, </span>
10
+ <span v-if="localPosition.country">{{localPosition.country}}</span>
11
+ </span>
12
+
13
+ <span v-else @click="a => { store.globals.state.isOpenLocationPopup = true }" class="t-semi t-main">
14
+ The World
15
+ </span>
16
+ </h2>
17
+ </header>
18
+
19
+ <Filters
20
+ class="mn-b-thin"
21
+ />
22
+
23
+ <div class="flex-v-center flex-nowrap flex pd-small bg-grey w-100 radius-big">
24
+ <IconSearch
25
+ class="i-medium mn-r-thin"
26
+ />
27
+ <Field
28
+ placeholder="Enter shop or product name"
29
+ @update:field="search => store.globals.state.search = search"
30
+ class="w-100"
31
+ />
32
+ <button class="pd-thin uppercase p-small t-medium cursor-pointer radius-extra bg-main" @click="updateSearchQuery">Search</button>
92
33
  </div>
34
+
93
35
  <!-- Catalog wrapper -->
94
36
  <div class="cols-1 gap-thin pd-thin">
95
37
  <!-- Products section -->
96
38
  <router-view v-slot="{ Component, route }">
97
- <transition name="scaleIn" mode="out-in">
98
- <component ref="page" :key="route.path" :localPosition="localPosition" :is="Component" />
39
+ <transition name="scaleIn" mode="out-in">
40
+ <component ref="page" :key="route" :localPosition="localPosition" :is="Component" />
99
41
  </transition>
100
42
  </router-view>
101
43
  </div>
@@ -105,45 +47,20 @@
105
47
 
106
48
  <script setup="props">
107
49
  // Import libs
108
- import { computed, onMounted, watch, watchEffect, ref } from 'vue'
50
+ import { computed, onMounted, watch, ref } from 'vue'
109
51
  import { useStore } from '@/store'
110
52
  import { useRoute, useRouter,onBeforeRouteLeave } from 'vue-router'
111
- import { useI18n } from 'vue-i18n'
53
+ import { useI18n } from 'vue-i18n'
112
54
  import { useMeta } from 'vue-meta'
113
- // Prometheus
114
- import Spoiler from "@pf/src/components/Spoiler/Spoiler.vue";
115
- import Checkbox from "@pf/src/components/Checkbox/Checkbox.vue";
116
- import Field from "@pf/src/components/Field/Field.vue";
117
- import Select from "@pf/src/components/Select/Select.vue";
118
- import Dropdown from "@pf/src/components/Dropdown/Dropdown.vue";
119
- // Partials
120
- import Breadcrumbs from '@pf/src/components/Breadcrumbs/Breadcrumbs.vue'
121
55
  // Import components
122
- import CardProduct from '@pf/src/modules/products/components/blocks/CardProduct.vue'
56
+ import Filters from '@pf/src/modules/marketplace/components/sections/Filters.vue'
57
+ import IconSearch from '@pf/src/modules/icons/navigation/IconSearch.vue'
58
+ import Field from '@pf/src/components/Field/Field.vue'
123
59
 
124
60
  // Accessing router and store
125
61
  const store = useStore()
126
62
  const route = useRoute()
127
63
  const router = useRouter()
128
-
129
- // Data fetching
130
-
131
-
132
- // Accessing state
133
- const categories = computed(() => store.categories.state.all)
134
-
135
- const delivery = [
136
- { label: 'Pickup', value: 'pickup' },
137
- { label: 'Courier', value: 'courier' },
138
- { label: 'Post', value: 'post' }
139
- ]
140
-
141
- const prices = [
142
- { label: 'Under $5', value: '<5' },
143
- { label: '$5 to $10', value: '5-10' },
144
- { label: '$10 to $20', value: '10-20' },
145
- { label: '$20 and above', value: '>20' }
146
- ]
147
64
 
148
65
  const localPosition = ref({
149
66
  city: null,
@@ -151,13 +68,28 @@
151
68
  country: null
152
69
  });
153
70
 
154
-
155
71
  function denormalizeUrlParam(param) {
156
72
  return param
157
73
  .replace(/-/g, ' ') // Замена дефисов на пробелы
158
74
  .replace(/\b\w/g, l => l.toUpperCase()); // Преобразование первой буквы каждого слова в заглавную
159
75
  }
160
76
 
77
+ function normalizeUrlParam(param) {
78
+ return param
79
+ .toLowerCase()
80
+ .replace(/ /g, '-')
81
+ .replace(/[^a-z0-9-]/g, '');
82
+ }
83
+
84
+
85
+ function updateSearchQuery() {
86
+ let query = { ...route.query}
87
+
88
+ query.search = store.globals.state.search
89
+
90
+ router.push({ query });
91
+ }
92
+
161
93
  onMounted(async () => {
162
94
  if (route.params) {
163
95
  // Загружаем новые значения из параметров маршрута в состояние
@@ -172,19 +104,33 @@
172
104
  }
173
105
 
174
106
  if (route.query) {
175
- const query = route.query;
107
+ const query = route.query;
108
+
176
109
  const newFilterValue = {
177
110
  categories: query.categories ? query.categories.split(',') : [],
178
111
  prices: query.prices ? query.prices.split(',') : [],
179
112
  delivery: query.delivery ? query.delivery.split(',') : [],
180
- // Продолжайте этот паттерн для остальных полей фильтра
181
113
  };
182
- store.marketplace.state.filter = newFilterValue;
114
+
115
+ store.marketplace.state.filter = newFilterValue;
183
116
  }
184
-
185
- await store.categories.actions.fetchCategories()
117
+
118
+
119
+ if (route.query.sortParam) store.marketplace.state.sort.param = route.query.sortParam
120
+ if (route.query.sortOrder) store.marketplace.state.sort.order = route.query.sortOrder
186
121
  })
187
122
 
123
+ watch(() => store.marketplace.state.sort, (newSortValue, oldSortValue) => {
124
+ let query = { ...route.query}
125
+
126
+ query.sortParam = newSortValue.param
127
+ query.sortOrder = newSortValue.order
128
+
129
+ // replace the current route
130
+ router.push({ query });
131
+ }, { deep: true });
132
+
133
+
188
134
  watch(() => store.marketplace.state.filter, (newFilterValue, oldFilterValue) => {
189
135
  // Переводим фильтр в формат query
190
136
  const query = { ...route.query };
@@ -208,14 +154,6 @@
208
154
  router.push({ query });
209
155
  }, { deep: true })
210
156
 
211
-
212
- function normalizeUrlParam(param) {
213
- return param
214
- .toLowerCase() // Преобразование всех символов в нижний регистр
215
- .replace(/ /g, '-') // Замена всех пробелов на дефисы
216
- .replace(/[^a-z0-9-]/g, ''); // Удаление всех символов, которые не являются буквами, цифрами или дефисами
217
- }
218
-
219
157
  watch(() => store.globals.state.position, (newPosition) => {
220
158
  // get the current route
221
159
  const currentRoute = { ...router.currentRoute.value };
@@ -241,65 +179,17 @@
241
179
  meta: {
242
180
  title: "Marketplace – Shop Our Wide Selection of Quality Weed for Delivery",
243
181
  description: "Browse our marketplace of top-grade weed strains and choose from a variety of delivery options. Order now and have your favorite strains delivered straight to your door. Safe, fast, and reliable.",
244
- },
245
- breadcrumbs: {
246
- home: 'Home',
247
- store: 'Marketplace',
248
- },
249
- categoriesTitle: 'Category',
250
- categories: [],
251
- sort: {
252
- price: 'By price',
253
- newest: 'By newest',
254
- popularity: 'By popularity'
255
- },
256
- filters: {
257
- title: 'Filters',
258
- price: {
259
- title: 'Price',
260
- from: 'From',
261
- to: 'To'
262
- },
263
- filters: [],
264
- reset: 'Reset Filters'
265
- }
182
+ }
266
183
  },
267
184
  ru: {
268
185
  meta: {
269
186
  title: "Маркетплейс – Выбирайте из нашего ассортимента качественной травки для доставки",
270
187
  description: "Маркетплейс – Изучите наши продукты высокого качества и выбирайте из различных вариантов доставки. Закажите сейчас и получите свои любимые сорта на дом. Безопасно, быстро и надежно.",
271
- },
272
- breadcrumbs: {
273
- home: 'Главная',
274
- store: 'Маркетплейс',
275
- },
276
- categoriesTitle: 'Категория',
277
- categories: [],
278
- sort: {
279
- price: 'По цене',
280
- newest: 'По новизне',
281
- popularity: 'По популярности'
282
- },
283
- filters: {
284
- title: 'Фильтры',
285
- price: {
286
- title: 'Цена',
287
- from: 'От',
288
- to: 'До'
289
- },
290
- filters: [],
291
- reset: 'Сбросить фильтры',
292
- }
188
+ }
293
189
  }
294
190
  }
295
191
  }
296
192
 
297
- store.categories.state.all.forEach( category => {
298
- category.localization.forEach( localization => {
299
- text.messages[localization.locale].categories.push(localization.text)
300
- })
301
- })
302
-
303
193
  const { t } = useI18n(text)
304
194
 
305
195
  const computedMeta = computed(() => ({
@@ -308,8 +198,6 @@
308
198
  }))
309
199
 
310
200
  const { meta, onRemoved } = useMeta(computedMeta)
311
-
312
-
313
201
  </script>
314
202
 
315
203
  <style lang="scss">
@@ -1,29 +1,36 @@
1
1
  <template>
2
2
  <div class="for-transition radius-big w-100">
3
-
4
- <div class="flex-column">
5
- <transition name="fade">
6
- <Loader v-if="isLoading" class="z-index-5 pos-t-50 left-t-50 pos-absolute"/>
7
- </transition>
8
-
9
- <transition name="fade">
10
- <EmptyState
11
- v-if="!isLoading && organization.state.all.length < 1"
12
- title="No Organizations Found"
13
- description="It looks like there are no organizations available at the moment."
14
- class="radius-big pd-medium bg-grey"
15
- />
16
- <div v-else class="w-100">
17
- <CardOrganization
18
- v-for="organization in organization.state.all"
19
- :key="organization._id"
20
- :organization="organization"
21
- />
22
- </div>
23
- </transition>
24
-
25
- <button v-if="hasMorePosts" @click="loadMorePosts" class="mn-t-thin bg-main t-black w-100 button">Load more</button>
26
- </div>
3
+
4
+ <transition name="fade">
5
+ <Loader v-if="isLoading" class="z-index-5 pos-t-50 left-t-50 pos-absolute"/>
6
+ </transition>
7
+
8
+ <transition name="fade">
9
+ <EmptyState
10
+ v-if="!isLoading && organization.state.all.length < 1"
11
+ title="No Organizations Found"
12
+ description="It looks like there are no organizations available at the moment."
13
+ class="radius-big pd-medium bg-grey"
14
+ />
15
+ <div v-else class="w-100 cols-1 gap-thin">
16
+ <CardOrganization
17
+ v-for="organization in organization.state.all"
18
+ :key="organization._id"
19
+ :organization="organization"
20
+ :showRating="true"
21
+ :showFollowers="false"
22
+ class="bg-grey w-100 o-hidden radius-big pd-small "
23
+ />
24
+ </div>
25
+ </transition>
26
+
27
+ <button
28
+ v-if="hasMorePosts"
29
+ @click="loadMorePosts"
30
+ class="mn-t-thin bg-main t-black w-100 button"
31
+ >
32
+ Load more
33
+ </button>
27
34
 
28
35
  </div>
29
36
  </template>
@@ -31,6 +38,7 @@
31
38
  <script setup>
32
39
  import { computed,reactive,ref, onMounted,watch } from 'vue'
33
40
  import { useRoute, useRouter } from 'vue-router'
41
+ import { useStore } from '@/store'
34
42
  // Import dependencies
35
43
  import Cookies from 'js-cookie'
36
44
  // Import components
@@ -56,6 +64,7 @@
56
64
  });
57
65
 
58
66
  // Init router
67
+ const store = useStore()
59
68
  const router = useRouter()
60
69
  const route = useRoute()
61
70
 
@@ -65,84 +74,65 @@
65
74
  const hasMorePosts = ref(false);
66
75
  let isLoading = ref(true);
67
76
 
77
+ const params = {
78
+ country: route.params.country,
79
+ state: route.params.state,
80
+ city: route.params.city,
81
+ categories: route.query.categories,
82
+ prices: route.query.prices,
83
+ delivery: route.query.delivery,
84
+ skip: skip.value,
85
+ limit: limit.value,
86
+ sortParam: route.query.sortParam || store.marketplace.state.sort.param,
87
+ sortOrder: route.query.sortOrder || store.marketplace.state.sort.order,
88
+ location: store.globals.state.position?.location,
89
+ search: route.query.search,
90
+ contain: route.query.contain?.split(','),
91
+ };
92
+
68
93
  const loadMorePosts = async () => {
69
- if (hasMorePosts.value) {
70
- skip.value += limit.value;
71
-
72
- const params = {
73
- country: route.params.country,
74
- state: route.params.state,
75
- city: route.params.city,
76
- categories: route.query.categories,
77
- prices: route.query.prices,
78
- delivery: route.query.delivery,
79
- skip: skip.value,
80
- limit: limit.value,
81
- };
82
-
83
- const data = await organization.actions.read(params);
84
-
85
- if (data.length === 0) {
86
- hasMorePosts.value = false;
87
- } else {
88
- hasMorePosts.value = true;
89
- }
90
-
91
- console.log(data)
92
-
93
- organization.state.all = [...organization.state.all, ...data];
94
+ skip.value += limit.value;
95
+
96
+ params.skip = skip.value
97
+
98
+ const data = await organization.actions.read(params);
99
+
100
+ if (data.length < limit.value) {
101
+ hasMorePosts.value = false;
102
+ } else {
103
+ hasMorePosts.value = true;
94
104
  }
105
+
106
+ organization.state.all = [...organization.state.all, ...data];
95
107
  };
96
108
 
97
- // В onMounted функции
98
109
  onMounted(async () => {
99
- const params = {
100
- country: route.params.country,
101
- state: route.params.state,
102
- city: route.params.city,
103
- categories: route.query.categories,
104
- prices: route.query.prices,
105
- delivery: route.query.delivery,
106
- skip: skip.value,
107
- limit: limit.value
108
- };
109
-
110
110
  organization.state.all = [];
111
111
 
112
112
  const data = await organization.actions.read(params);
113
113
 
114
- if (data.length === 0) {
114
+ if (data.length < limit.value) {
115
115
  hasMorePosts.value = false;
116
116
  } else {
117
117
  hasMorePosts.value = true;
118
118
  }
119
119
 
120
- console.log(data)
121
-
122
120
  organization.state.all = [...organization.state.all, ...data];
123
121
 
124
122
  isLoading.value = false;
125
123
  });
126
124
 
127
- // Или в watch функции, если вы хотите обновлять данные при изменении параметров
128
125
  watch(() => route.params, async (newParams, oldParams) => {
129
126
  if (newParams !== oldParams) {
130
- const params = {
131
- country: newParams.country,
132
- state: newParams.state,
133
- city: newParams.city,
134
- categories: route.query.categories,
135
- prices: route.query.prices,
136
- delivery: route.query.delivery,
137
- };
127
+
128
+ params.skip = skip.value
138
129
 
139
130
  const data = await organization.actions.read(params);
140
131
 
141
- if (data.length === 0) {
132
+ if (data.length < limit.value) {
142
133
  hasMorePosts.value = false;
143
134
  }
144
135
 
145
- console.log(data)
146
136
 
147
137
  organization.state.all = data;
148
138
  }
@@ -151,48 +141,4 @@
151
141
  </script>
152
142
 
153
143
  <style lang="scss">
154
- .slide-fade-enter-active {
155
- // min-height: 100vh;
156
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
157
- }
158
-
159
- .slide-fade-leave-active {
160
- // min-height: 100vh;
161
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
162
- }
163
-
164
- .slide-fade-enter-from,
165
- .slide-fade-leave-to {
166
- min-height: 0;
167
- position: absolute;
168
- transform: translateX(20px);
169
- opacity: 0;
170
- left: 0;
171
- top: 0;
172
- }
173
-
174
- .container {
175
- display: inline-grid;
176
- grid-template-columns: auto auto;
177
- position: relative;
178
- }
179
-
180
- .intrinsic-1x1 {
181
- align-self: stretch;
182
- opacity: 0;
183
- }
184
-
185
- .overlay {
186
- position: absolute;
187
- left: 0;
188
- top: 0;
189
- height: 100%;
190
- aspect-ratio: 1/1;
191
- }
192
-
193
- .overlay img {
194
- height: 100%;
195
- width: 100%;
196
- object-fit: cover;
197
- }
198
144
  </style>