@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,19 +1,19 @@
1
1
  <template>
2
2
  <div class="pd-t-zero pd-thin">
3
- <footer class="bg-black t-white radius-big footer">
4
-
3
+ <footer class="bg-black t-white radius-small pd-thin">
4
+ <!--
5
5
  <div id="top-footer" class="cols-3 section">
6
6
 
7
7
  <a href="mailto:hello@weeder.delivery" class="w-100 radius-small contact col">
8
- <!-- <img class="mn-b-small h-3r" src="/logo/logotype-white.svg"> -->
8
+ <img class="mn-b-small h-3r" src="/logo/logotype.svg">
9
9
  <p class="t-transp ">{{t('description')}}</p>
10
10
  </a>
11
11
 
12
12
  <div @click="this.$router.push({ name: 'Home' } )" class="flex-v-center flex logo-link col">
13
13
  <p class="h4 mn-b-small">{{t('app')}}</p>
14
14
  <div class="store-buttons">
15
- <!-- <img class="h-3r" src="/assets/images/landing/appsvg" alt="Download on App Store"> -->
16
- <!-- <img class="h-3r" src="/assets/images/landing/googleplay.svg" alt="Download on Google Play"> -->
15
+ <img class="h-3r" src="/assets/images/landing/appsvg" alt="Download on App Store">
16
+ <img class="h-3r" src="/assets/images/landing/googleplay.svg" alt="Download on Google Play">
17
17
  </div>
18
18
  </div>
19
19
 
@@ -22,13 +22,13 @@
22
22
 
23
23
  <div class="socials flex-nojustify flex">
24
24
  <a class="mn-r-small" href="https://t.me/weederdelivery" target="_blank">
25
- <!-- <img src="@/assets/images/icons/Telegram_blue.svg"> -->
25
+ <img src="@/assets/icons/Telegram_blue.svg">
26
26
  </a>
27
27
  <a class="mn-r-small" href="https://t.me/weederdelivery" target="_blank">
28
- <!-- <img src="@/assets/images/icons/Telegram_blue.svg"> -->
28
+ <img src="@/assets/icons/Telegram_blue.svg">
29
29
  </a>
30
30
  <a class="mn-r-small" href="https://t.me/weederdelivery" target="_blank">
31
- <!-- <img src="@/assets/images/icons/Telegram_blue.svg"> -->
31
+ <img src="@/assets/icons/Telegram_blue.svg">
32
32
  </a>
33
33
  </div>
34
34
  </a>
@@ -44,14 +44,14 @@
44
44
 
45
45
  <div class="mn-b-medium ol">
46
46
  <li v-for="(category,index) in categories.state.all">
47
- <!-- <router-link :to="{ name: 'CatalogCategory', params: { url: category.url }}"> -->
47
+ <router-link :to="getMarketplaceLink([category.url])">
48
48
  <span v-html="t('categories[' + index + ']')"></span>
49
- <!-- </router-link> -->
49
+ </router-link>
50
50
  </li>
51
51
  </div>
52
52
 
53
53
  <a href="https://ozdao.dev" target="_blank">
54
- <!-- <img src="@/assets/images/icons/ozdao.svg"> -->
54
+ <img src="/icons/ozdao.svg">
55
55
  </a>
56
56
  </ul>
57
57
 
@@ -60,12 +60,7 @@
60
60
  <li class="mn-b-small t-semi h5">
61
61
  {{t('information')}}
62
62
  </li>
63
- <!-- <li v-for="(page,index) in pages"> -->
64
-
65
- <!-- <router-link :to="{ name: 'Page', params: { url: page.url}}" class="col nav-link"> -->
66
- <!-- <span v-html="t('pages[' + index + ']')"></span> -->
67
- <!-- </router-link> -->
68
- <!-- </li> -->
63
+
69
64
  </ul>
70
65
 
71
66
  <ul class="lh-semi col">
@@ -80,11 +75,19 @@
80
75
 
81
76
  </ul>
82
77
 
83
- </div>
78
+ </div> -->
79
+ <!-- <li v-for="(page,index) in pages"> -->
84
80
 
81
+ <!-- <router-link :to="{ name: 'Page', params: { url: page.url}}" class="col nav-link"> -->
82
+ <!-- <span v-html="t('pages[' + index + ']')"></span> -->
83
+ <!-- </router-link> -->
84
+ <!-- </li> -->
85
85
 
86
- <p class="pd-small t-center br-top-dark copyright">
87
- {{t('copyright')}}
86
+ <p class="t-semi uppercase t-center">
87
+ {{ t('year') }}
88
+ <span class="t-main copyleft">{{ t('heart') }}</span>
89
+ {{ t('name') }}, {{ t('tagline') }}
90
+ <a href="https://ozdao.dev" class="t-main" target="_blank" rel="noopener" >OZ DAO.</a>
88
91
  </p>
89
92
  </footer>
90
93
  </div>
@@ -95,11 +98,9 @@
95
98
  import { useRouter } from 'vue-router'
96
99
  import { useI18n } from 'vue-i18n'
97
100
 
98
- import * as categories from '@pf/src/modules/products/store/products';
101
+ import * as categories from '@pf/src/modules/products/store/categories';
99
102
 
100
103
  const router = useRouter()
101
-
102
- await categories.actions.fetchCategories()
103
104
  // await dispatch('pages/fetchAll')
104
105
 
105
106
  const text = {
@@ -118,7 +119,11 @@
118
119
  time: "24 / 7 Seven days a week",
119
120
  copyright: "2022 © Weeder Delivery. Proudly created with OZ DAO.",
120
121
  pages: [],
121
- categories: []
122
+ categories: [],
123
+ year: "2023",
124
+ heart: "❤",
125
+ name: "Weeder",
126
+ tagline: "Builded with love in"
122
127
  },
123
128
  ru: {
124
129
  store: 'Онлайн Каталог',
@@ -144,6 +149,13 @@
144
149
  })
145
150
  })
146
151
 
152
+ onMounted(async() => {
153
+
154
+ await categories.actions.fetchCategories()
155
+
156
+ })
157
+
158
+
147
159
  // state.pages.all.forEach( page => {
148
160
  // page.localization.forEach( localization => {
149
161
  // text.messages[localization.locale].pages.push(localization.text)
@@ -155,7 +167,4 @@
155
167
  </script>
156
168
 
157
169
  <style lang="scss">
158
- #top-footer {
159
- padding-bottom: 0;
160
- }
161
170
  </style>
@@ -1,84 +1,94 @@
1
1
  <template>
2
- <header id="header" class="pd-b-zero pd-thin btm-header">
2
+ <header id="header" class="
3
+ pos-relative
4
+ pd-thin
5
+ z-index-2
6
+ gap-thin
7
+ flex-center
8
+ flex-nowrap
9
+ flex
10
+ h-4r
11
+ ">
12
+ <!-- MENU -->
13
+ <button
14
+ @click.stop="() => store.globals.state.isOpenSidebar = !store.globals.state.isOpenSidebar"
15
+ class="menu-btn mobile-only"
16
+ :class="{
17
+ 'menu-btn_active': store.globals.state.isOpenSidebar
18
+ }"
19
+ >
20
+ <span></span>
21
+ </button>
22
+
23
+ <!-- LOGO -->
24
+ <Logotype
25
+ @click="router.push({ path: '/' })"
26
+ class="
27
+ h-2r
28
+ w-auto
29
+ mn-l-thin
30
+ cursor-pointer
31
+ "
32
+ />
33
+
34
+ <button
35
+ class="
36
+ cursor-pointer
37
+ br-solid br-2px br-black
38
+ bg-transp
39
+ pd-l-micro pd-r-micro pd-t-nano pd-b-nano
40
+ radius-extra
41
+ uppercase
42
+ t-semi
43
+ mn-r-thin
44
+ "
45
+ @click="openLocationPopup()"
46
+ >
47
+ {{store.globals.state.position?.country ? store.globals.state.position.country : '🌎 World'}}
48
+ </button>
49
+
50
+ <!-- NAGIVATION -->
51
+ <Navigation class="desktop-only"/>
52
+
53
+ <Checkbox
54
+ :label="'Darkmode'"
55
+ :radio="store.globals.state.theme.darkmode"
56
+ @update:radio="event => store.globals.actions.toggleTheme()"
57
+ name="prices"
58
+ class="desktop-only t-semi pd-micro br-2px br-solid radius-extra br-black-transp-5"
59
+ />
60
+ <Button
61
+ :submit="a => store.shopcart.actions.toggleShopcart()"
62
+ :counter="store.shopcart.getters.cartTotalAmount"
63
+ class="pd-zero mn-l-auto"
64
+ >
65
+ <IconShopcart class="i-semi"/>
66
+
67
+ </Button>
68
+
69
+ <Button
70
+ class="pd-zero bg-transp"
71
+ :submit="
72
+ store.auth.state.access.status === false
73
+ ?
74
+ a => router.push({name: 'Sign In'})
75
+ :
76
+ a => router.push({ name: 'User Profile', params: { _id: store.auth.state.user._id }})
77
+ "
78
+ :showSucces="false"
79
+ :showLoader="false"
80
+ >
81
+ <IconProfile class="i-semi"/>
82
+ </Button>
83
+
84
+
85
+ <Select
86
+ v-model:select="$i18n.locale"
87
+ :options="[{name: '🌎&nbsp;En', value: 'en'}, {name: '🇷🇺&nbsp;Ru', value: 'ru'}]"
88
+ :property="'value'"
89
+ class="pos-relative uppercase pd-micro t-semi bg-grey radius-thin"
90
+ />
3
91
 
4
- <!-- CONTENT -->
5
- <div class="br-solid br-1px br-grey bg-white radius-big bottom-header pd-medium z-index-2">
6
- <!-- LOGO AND NAVIGATION -->
7
- <div class="mn-r-auto flex-nowrap flex-center flex">
8
-
9
- <!-- Menu -->
10
- <div class="mobile-only mn-r-medium menu">
11
- <img @click="stateSidebar = !stateSidebar" src="@/assets/images/icons/menu.svg">
12
- </div>
13
-
14
- <!-- LOGO -->
15
- <div class="flex-nowrap flex-center flex mn-r-small logo-link col">
16
- <img @click="router.push({ path: '/' } )" src="@/assets/images/logotype.svg">
17
-
18
- <a
19
- class="location-button br-inset-2px-black bg-transp pd-thin radius-thin uppercase t-semi"
20
- @click="openLocationPopup()"
21
- >
22
- {{store.globals.state.position.country ? store.globals.state.position.country : 'World'}}
23
- </a>
24
-
25
- <Popup
26
- @close-popup="closeLocationPopup"
27
- :isPopupOpen="store.globals.state.isLocationPopupOpen"
28
- class="t-white bg-black pd-big w-m-33r radius-big"
29
- >
30
- <LocationSelection />
31
- </Popup>
32
- </div>
33
-
34
- <!-- NAGIVATION -->
35
- <Navigation class="desktop-only"/>
36
-
37
- </div>
38
-
39
- <!-- ACTIONS -->
40
- <ul class="actions flex-nowrap flex-v-center flex">
41
-
42
- <!-- Search -->
43
- <!-- <label class="desktop-only search">
44
- <img src="@/assets/images/icons/search.svg">
45
- <input
46
- :value="search.current"
47
- type="text"
48
- >
49
- </label> -->
50
-
51
- <ButtonIcon
52
- :action="
53
- store.auth.state.access.status === false
54
- ?
55
- a => router.push({name: 'Sign In'})
56
- :
57
- a => router.push({ name: 'User Profile', params: { _id: store.auth.state.user._id }})
58
- "
59
- class="mn-r-small"
60
- :class="{'bg-main radius-small':route.name === 'Profile'}"
61
- >
62
- <img src="@/assets/images/icons/profile.svg">
63
- </ButtonIcon>
64
- <ButtonIcon
65
- :action="
66
- a => store.shopcart.actions.toggleShopcart()"
67
- :counter="store.shopcart.getters.cartTotalAmount"
68
- class=""
69
- >
70
- <img src="@/assets/images/icons/cart.svg">
71
- </ButtonIcon>
72
-
73
- <Select
74
- :options="[{name: '🌎&nbsp;En', value: 'en'}, {name: '🇷🇺&nbsp;Ru', value: 'ru'} ]"
75
- :prop="$i18n"
76
- content="locale"
77
- size="small"
78
- class="mn-l-medium uppercase t-semi bg-grey radius-thin"
79
- />
80
- </ul>
81
- </div>
82
92
 
83
93
  </header>
84
94
  </template>
@@ -95,13 +105,15 @@
95
105
  // i18n
96
106
  import { useI18n } from 'vue-i18n'
97
107
  // Weeder Component
98
- import Popup from '@pf/src/components/Popup/Popup.vue'
99
-
100
108
  import Navigation from '@pf/src/components/Navigation/Navigation.vue'
101
- import LocationSelection from '@pf/src/components/LocationSelection/LocationSelection.vue'
102
109
  // Prometheus Component
103
- import ButtonIcon from '@/components/elements/ButtonIcon.vue'
104
- import Select from '@/components/elements/Select.vue'
110
+ import Button from '@pf/src/components/Button/Button.vue'
111
+ import Select from '@pf/src/components/Select/Select.vue'
112
+ import Checkbox from '@pf/src/components/Checkbox/Checkbox.vue'
113
+ // Icons module
114
+ import Logotype from '@pf/src/modules/icons/logos/Logotype.vue'
115
+ import IconShopcart from '@pf/src/modules/icons/entities/IconShopcart.vue'
116
+ import IconProfile from '@pf/src/modules/icons/entities/IconProfile.vue'
105
117
  /////////////////////////////
106
118
  // CREATED
107
119
  /////////////////////////////
@@ -114,23 +126,7 @@
114
126
  // POPUS
115
127
  /////////////////////////////
116
128
  function openLocationPopup() {
117
- store.globals.state.isLocationPopupOpen = true;
118
- }
119
-
120
- function closeLocationPopup() {
121
- store.globals.state.isLocationPopupOpen = false;
122
- }
123
- /////////////////////////////
124
- // SIDEBAR
125
- /////////////////////////////
126
- const stateSidebar = inject('stateSidebar')
127
-
128
- function openSidebar() {
129
- stateSidebar.value = true;
130
- }
131
-
132
- function closeSiderbar() {
133
- stateSidebar.value = false;
129
+ store.globals.state.isOpenLocationPopup = true;
134
130
  }
135
131
  /////////////////////////////
136
132
  // LOCALIZATION
@@ -158,80 +154,79 @@
158
154
  });
159
155
  </script>
160
156
 
161
- <style lang="scss" scoped>
162
- .router-link-exact-active, .router-link-exact-active:visited {
163
- color: rgb(var(--main));
164
- }
165
-
157
+ <style lang="scss">
166
158
  .location-button {
167
159
  &:hover {
168
160
  box-shadow: inset 0 0 0 2px rgb(var(--main));
169
161
  }
170
162
  }
171
163
 
172
- .search {
173
- display: block;
174
- position: relative;
175
- input {
176
- border: 0;
177
- outline: 0;
178
- padding: 0.5rem;
179
- padding-left: 2rem;
180
- border-radius: 0.5rem;
181
- color: black;
182
- background: #f7f7f7;
183
- }
184
-
185
- img {
186
- position: absolute;
187
-
188
- left: 0.35rem;
189
- top: 0.35rem;
190
-
191
- z-index: 10
192
- }
164
+ .menu-btn {
165
+ display: block;
166
+ width: 2rem;
167
+ height: 2rem;
168
+ border-radius: 50%;
169
+ position: relative;
170
+ }
171
+ .menu-btn span,
172
+ .menu-btn span::before,
173
+ .menu-btn span::after {
174
+ position: absolute;
175
+ top: 50%; margin-top: -1px;
176
+ left: 50%; margin-left: -10px;
177
+ width: 20px;
178
+ height: 2px;
179
+ background-color: rgb(var(--black));
180
+ }
181
+ .menu-btn span::before,
182
+ .menu-btn span::after {
183
+ content: '';
184
+ display: block;
185
+ transition: 0.2s;
186
+ }
187
+ .menu-btn span::before {
188
+ transform: translateY(-5px);
189
+ }
190
+ .menu-btn span::after {
191
+ transform: translateY(5px);
193
192
  }
194
193
 
195
-
196
- .btm-header {
197
- top: 0;
198
- position: sticky;
199
- width: 100%;
200
- // background: white;
201
- z-index: 15;
202
-
203
- display: flex;
204
- flex-direction: column;
205
- flex-wrap: nowrap;
206
- // border-bottom: 1px solid rgba(0,0,0,0.1);
207
-
208
- .bottom-header {
209
- display: flex;
210
- position: sticky;
211
- // justify-content: space-between;
212
- align-items: center;
213
-
214
-
215
- height: 4rem;
216
-
217
- .logo-link {
218
- height: 3.5rem;
219
- text-align: center;
220
-
221
- img { height: 60%; position: relative; }
222
-
223
- &:hover {
224
- cursor: pointer;
225
- }
226
- }
227
-
228
- .button-icon {
229
- width: 1.5rem;
230
- height: 1.5rem;
231
- }
232
- }
233
-
194
+ .menu-btn_active span:before {
195
+ transform: rotate(-35deg);
196
+ width: 10px;
197
+ transform-origin: left bottom;
198
+ }
199
+ .menu-btn_active span:after {
200
+ transform: rotate(35deg);
201
+ width: 10px;
202
+ transform-origin: left top;
234
203
  }
235
204
 
205
+ .menu-block {
206
+ display: flex;
207
+ justify-content: center;
208
+ align-items: center;
209
+ }
210
+ .menu-nav {
211
+ background-color: #fff;
212
+ height: 50px;
213
+
214
+ }
215
+ .menu-nav__link {
216
+ display: inline-block;
217
+ text-decoration: none;
218
+ color: #fff;
219
+ margin-right: 20px;
220
+ }
221
+ .menu-nav__link {
222
+ transition: 0.5s;
223
+ transform-origin: right center;
224
+ transform: translateX(50%);
225
+ opacity: 0;
226
+ }
227
+ .menu-nav__link_active {
228
+ transform: translateX(0%);
229
+ opacity: 1;
230
+ }
236
231
 
237
232
  </style>
@@ -1,7 +1,9 @@
1
1
  <template>
2
2
  <div class="circular-loader">
3
3
  <svg viewBox="25 25 50 50">
4
- <circle cx="50" cy="50" r="20" fill="none" stroke-width="4" stroke-miterlimit="10" />
4
+ <circle class="circular-loader-fill" cx="50" cy="50" r="20" fill="none" stroke-width="4" stroke-miterlimit="10" />
5
+ <circle class="circular-loader-circle" cx="50" cy="50" r="20" fill="none" stroke-width="4" stroke-miterlimit="10" />
6
+
5
7
  </svg>
6
8
  <div v-if="progress" class="progress-text">{{ progress }}</div>
7
9
  <div v-if="status" class="uppercase t-semi w-m-10r status-text">{{ status }}</div>
@@ -38,7 +40,7 @@ export default {
38
40
  animation: rotate 2s linear infinite;
39
41
  }
40
42
 
41
- .circular-loader circle {
43
+ .circular-loader-circle {
42
44
  stroke-dasharray: 1, 200;
43
45
  stroke-dashoffset: 0;
44
46
  stroke-linecap: round;
@@ -46,6 +48,11 @@ export default {
46
48
  animation: dash 1.5s ease-in-out infinite;
47
49
  }
48
50
 
51
+ .circular-loader-fill {
52
+ stroke-linecap: round;
53
+ stroke: rgba(var(--black),0.2);
54
+ }
55
+
49
56
  .progress-text {
50
57
  position: absolute;
51
58
  top: 50%;
@@ -1,10 +1,20 @@
1
1
  <template>
2
- <div class="pos-relative map-container">
2
+ <div class="pos-relative">
3
3
  <div ref="mapContainer" class="w-100 h-100"></div>
4
- <button class="pos-absolute pos-t-regular pos-r-regular i-semi bg-second radius-extra" @click="setUserLocation">
5
- <svg class="i-medium" width="98" height="98" viewBox="0 0 98 98" fill="none" xmlns="http://www.w3.org/2000/svg">
6
- <path d="M50.0004 31.4995C39.7996 31.4995 31.5 39.7991 31.5 49.9999C31.5 60.2007 39.7996 68.5003 50.0004 68.5003C60.2012 68.5003 68.5008 60.2007 68.5008 49.9999C68.5008 39.7991 60.2012 31.4995 50.0004 31.4995ZM50.0004 63.7944C42.3941 63.7944 36.2059 57.6062 36.2059 49.9999C36.2059 42.3936 42.3941 36.2054 50.0004 36.2054C57.6067 36.2054 63.7949 42.3936 63.7949 49.9999C63.7949 57.6062 57.6067 63.7944 50.0004 63.7944Z" fill="white"/>
7
- <path d="M97.6471 47.6471H84.56C83.3977 30.4141 69.5859 16.6024 52.3529 15.44V2.35294C52.3529 1.05255 51.2988 0 50 0C48.6996 0 47.6471 1.05255 47.6471 2.35294V15.44C30.4141 16.6024 16.6024 30.4141 15.44 47.6471H2.35294C1.05255 47.6471 0 48.6996 0 50C0 51.2988 1.05255 52.3529 2.35294 52.3529H15.44C16.6024 69.5859 30.4141 83.3977 47.6471 84.56V97.6471C47.6471 98.9459 48.6996 100 50 100C51.2988 100 52.3529 98.9459 52.3529 97.6471V84.56C69.5859 83.3977 83.3977 69.5859 84.56 52.3529H97.6471C98.9459 52.3529 100 51.2988 100 50C100 48.6996 98.9459 47.6471 97.6471 47.6471ZM50 79.9435C33.4886 79.9435 20.0565 66.5114 20.0565 50C20.0565 33.4886 33.4886 20.0565 50 20.0565C66.5098 20.0565 79.9435 33.4886 79.9435 50C79.9435 66.5098 66.5098 79.9435 50 79.9435Z" fill="white"/> </svg>
4
+
5
+ <button class="cursor-pointer flex-center flex pos-absolute pos-t-regular pos-r-regular i-semi bg-second pd-nano radius-extra" @click="setUserLocation">
6
+
7
+ <transition name="ScaleOut" mode="out-in">
8
+
9
+
10
+
11
+ <svg v-if="!locationLoading" class="i-regular" width="98" height="98" viewBox="0 0 98 98" fill="none" xmlns="http://www.w3.org/2000/svg">
12
+ <path d="M50.0004 31.4995C39.7996 31.4995 31.5 39.7991 31.5 49.9999C31.5 60.2007 39.7996 68.5003 50.0004 68.5003C60.2012 68.5003 68.5008 60.2007 68.5008 49.9999C68.5008 39.7991 60.2012 31.4995 50.0004 31.4995ZM50.0004 63.7944C42.3941 63.7944 36.2059 57.6062 36.2059 49.9999C36.2059 42.3936 42.3941 36.2054 50.0004 36.2054C57.6067 36.2054 63.7949 42.3936 63.7949 49.9999C63.7949 57.6062 57.6067 63.7944 50.0004 63.7944Z" fill="rgb(var(--white))"/>
13
+ <path d="M97.6471 47.6471H84.56C83.3977 30.4141 69.5859 16.6024 52.3529 15.44V2.35294C52.3529 1.05255 51.2988 0 50 0C48.6996 0 47.6471 1.05255 47.6471 2.35294V15.44C30.4141 16.6024 16.6024 30.4141 15.44 47.6471H2.35294C1.05255 47.6471 0 48.6996 0 50C0 51.2988 1.05255 52.3529 2.35294 52.3529H15.44C16.6024 69.5859 30.4141 83.3977 47.6471 84.56V97.6471C47.6471 98.9459 48.6996 100 50 100C51.2988 100 52.3529 98.9459 52.3529 97.6471V84.56C69.5859 83.3977 83.3977 69.5859 84.56 52.3529H97.6471C98.9459 52.3529 100 51.2988 100 50C100 48.6996 98.9459 47.6471 97.6471 47.6471ZM50 79.9435C33.4886 79.9435 20.0565 66.5114 20.0565 50C20.0565 33.4886 33.4886 20.0565 50 20.0565C66.5098 20.0565 79.9435 33.4886 79.9435 50C79.9435 66.5098 66.5098 79.9435 50 79.9435Z" fill="rgb(var(--white))"/>
14
+ </svg>
15
+
16
+ <Loader v-else class="pos-t-0 pos-l-0 i-small"/>
17
+ </transition>
8
18
 
9
19
  </button>
10
20
  </div>
@@ -13,17 +23,17 @@
13
23
  <script setup>
14
24
  import { ref, onMounted, watchEffect } from 'vue';
15
25
 
16
- import Button from '@pf/src/components/Button/Button.vue'
26
+ import Loader from '@pf/src/components/Loader/Loader.vue'
17
27
 
18
28
  // Добавим новый проп для ключа API
19
29
  const props = defineProps({
20
30
  location: {
21
31
  type: Object,
22
- default: { lat: 48.6900735, lng: 41.16202390 }
32
+ default: () => ({ lat: 15.8700, lng: 100.9925 })
23
33
  },
24
34
  address: {
25
35
  type: String,
26
- default: ""
36
+ default: null
27
37
  },
28
38
  apiKey: String,
29
39
  })
@@ -31,15 +41,18 @@ const props = defineProps({
31
41
  const emit = defineEmits(['update:location', 'update:address', 'update:country', 'update:state', 'update:city']);
32
42
 
33
43
  const mapContainer = ref(null);
44
+ const locationLoading = ref(false);
34
45
 
35
46
  let map, marker;
36
47
 
37
48
  onMounted(() => {
49
+ console.log(props.location)
38
50
  map = new google.maps.Map(mapContainer.value, {
39
51
  center: props.location,
40
52
  zoom: 15,
41
53
  mapTypeControl: false,
42
54
  fullscreenControl: false,
55
+ disableDefaultUI: true
43
56
  });
44
57
 
45
58
  marker = new google.maps.Marker({
@@ -50,7 +63,9 @@ onMounted(() => {
50
63
 
51
64
  marker.addListener("dragend", (e) => {
52
65
  const newLocation = { lat: e.latLng.lat(), lng: e.latLng.lng() };
66
+
53
67
  emit('update:location', newLocation);
68
+
54
69
  getAddressFromLocation(newLocation);
55
70
  });
56
71
  });
@@ -64,12 +79,16 @@ watchEffect(() => {
64
79
  watchEffect(() => {
65
80
  if (props.location && map) {
66
81
  const newCenter = new google.maps.LatLng(props.location.lat, props.location.lng);
82
+
67
83
  map.setCenter(newCenter);
84
+ map.setZoom(15);
68
85
  }
69
86
  });
70
87
 
71
88
  function getAddressFromLocation(location) {
89
+
72
90
  const geocoder = new google.maps.Geocoder;
91
+
73
92
  geocoder.geocode({ 'location': location }, (results, status) => {
74
93
  if (status === 'OK') {
75
94
  if (results[0]) {
@@ -103,30 +122,37 @@ function getAddressFromLocation(location) {
103
122
 
104
123
  // Функция для установки местоположения пользователя
105
124
  async function setUserLocation() {
125
+ locationLoading.value = true
126
+
106
127
  if (navigator.geolocation) {
107
128
  navigator.geolocation.getCurrentPosition((position) => {
108
129
  const newLocation = { lat: position.coords.latitude, lng: position.coords.longitude };
109
130
  emit('update:location', newLocation);
110
131
  getAddressFromLocation(newLocation);
132
+ locationLoading.value = false
111
133
  }, () => {
112
134
  console.error('Error getting location');
135
+ locationLoading.value = false
113
136
  });
114
137
  } else {
115
138
  console.error('Geolocation is not supported by this browser.');
139
+ locationLoading.value = false
116
140
  }
141
+
142
+
117
143
  }
118
144
  </script>
119
145
 
120
146
 
121
147
  <style scoped>
122
- .map-container {
123
- /* height: 400px;*/
124
- width: 100%;
125
- }
126
148
  .my-location-button {
127
149
  position: absolute;
128
150
  right: 10px;
129
151
  top: 10px;
130
152
  z-index: 99;
131
153
  }
154
+
155
+ .gm-style-cc { display:none; }
156
+
157
+
132
158
  </style>