@ozdao/prometheus-framework 0.2.30 → 0.2.31

Sign up to get free protection for your applications and to get access to all the features.
Files changed (269) 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.cjs.js +30 -29
  25. package/dist/prometheus-framework.es.js +2478 -2282
  26. package/dist/reports.server.js +1 -1
  27. package/dist/reports.server.mjs +1 -1
  28. package/dist/users.server.js +1 -1
  29. package/dist/users.server.mjs +1 -1
  30. package/package.json +4 -2
  31. package/src/assets/images/logo.svg +7 -7
  32. package/src/components/Block/Block.vue +77 -0
  33. package/src/components/Breadcrumbs/Breadcrumbs.vue +2 -2
  34. package/src/components/Button/Button.vue +32 -227
  35. package/src/components/Checkbox/Checkbox.vue +1 -1
  36. package/src/components/Chips/Chips.vue +8 -8
  37. package/src/components/DatePicker/DatePicker.vue +3 -4
  38. package/src/components/EditImages/EditImages.vue +32 -14
  39. package/src/{modules/globals/components/sections → components/Feed}/Feed.vue +60 -45
  40. package/src/components/FieldBig/FieldBig.vue +16 -5
  41. package/src/components/FieldPhone/FieldPhone.vue +2 -1
  42. package/src/components/Footer/Footer.vue +36 -27
  43. package/src/components/Header/Header.vue +161 -166
  44. package/src/components/Loader/Loader.vue +9 -2
  45. package/src/components/LocationMarker/LocationMarker.vue +38 -12
  46. package/src/components/LocationSelection/LocationSelection.vue +67 -75
  47. package/src/components/Magnifier/Magnifier.vue +3 -3
  48. package/src/components/Navigation/Navigation.vue +16 -16
  49. package/src/components/Popup/Popup.vue +8 -6
  50. package/src/components/Select/Select.vue +35 -6
  51. package/src/components/SelectMulti/SelectMulti.vue +5 -13
  52. package/src/components/Shader/Shader.vue +128 -0
  53. package/src/components/Sidebar/Sidebar.vue +71 -35
  54. package/src/components/Spoiler/Spoiler.vue +1 -1
  55. package/src/components/Tab/Tab.vue +1 -1
  56. package/src/components/Tooltip/Tooltip.vue +1 -1
  57. package/src/components/UploadImage/UploadImage.vue +4 -4
  58. package/src/components/UploadImageMultiple/UploadImageMultiple.vue +54 -10
  59. package/src/modules/applications/controllers/applications.controller.js +0 -1
  60. package/src/modules/auth/components/pages/EnterCode.vue +1 -1
  61. package/src/modules/auth/components/pages/EnterPassword.vue +3 -3
  62. package/src/modules/auth/components/pages/ResetPassword.vue +1 -2
  63. package/src/modules/auth/components/pages/SignIn.vue +26 -10
  64. package/src/modules/auth/components/pages/SignUp.vue +1 -2
  65. package/src/modules/auth/controllers/twofa.controller.js +4 -4
  66. package/src/modules/auth/localization/EnterCode.json +2 -2
  67. package/src/modules/auth/localization/EnterPassword.json +2 -2
  68. package/src/modules/auth/localization/ResetPassword.json +2 -2
  69. package/src/modules/auth/localization/SignIn.json +3 -3
  70. package/src/modules/auth/localization/SignUp.json +3 -3
  71. package/src/modules/auth/utils/server/verifyAppleIdToken.js +0 -1
  72. package/src/modules/backoffice/components/layouts/Backoffice.vue +1 -1
  73. package/src/modules/backoffice/components/pages/Dashboard.vue +171 -120
  74. package/src/modules/backoffice/router/backoffice.js +119 -129
  75. package/src/modules/chats/components/blocks/ChatMessage.vue +25 -0
  76. package/src/modules/chats/components/pages/ChatPage.vue +50 -0
  77. package/src/modules/chats/components/sections/ChatWindow.vue +38 -0
  78. package/src/modules/chats/controllers/chats.controller.js +32 -0
  79. package/src/modules/chats/models/chat.model.js +26 -0
  80. package/src/modules/chats/routes/chats.routes.js +53 -0
  81. package/src/modules/chats/store/chat.store.js +61 -0
  82. package/src/modules/community/components/blocks/CardBlogpost.vue +19 -4
  83. package/src/modules/community/components/layouts/Community.vue +96 -39
  84. package/src/modules/community/components/pages/Blog.vue +4 -3
  85. package/src/modules/community/components/pages/BlogPost.vue +10 -1
  86. package/src/modules/community/components/pages/CreateBlogPost.vue +36 -17
  87. package/src/modules/community/components/sections/HotPosts.vue +3 -3
  88. package/src/modules/community/components/sections/JoinUs.vue +19 -13
  89. package/src/modules/community/controllers/blog.controller.js +3 -4
  90. package/src/modules/community/controllers/utils/queryProcessor.js +16 -17
  91. package/src/modules/community/models/blogpost.model.js +6 -3
  92. package/src/modules/community/store/blogposts.js +1 -0
  93. package/src/modules/constructor/components/elements/Embed.vue +12 -1
  94. package/src/modules/constructor/components/elements/ImageUpload.vue +2 -2
  95. package/src/modules/constructor/components/elements/Textarea.vue +6 -1
  96. package/src/modules/constructor/components/elements/Video.vue +79 -0
  97. package/src/modules/constructor/components/elements/VideoPlayer.vue +59 -0
  98. package/src/modules/constructor/components/elements/Youtube.vue +52 -0
  99. package/src/modules/constructor/components/sections/Constructor.vue +27 -3
  100. package/src/modules/events/components/layouts/layoutEvents.vue +7 -28
  101. package/src/modules/files/controllers/files.controller.js +9 -22
  102. package/src/modules/files/middlewares/server/index.js +2 -2
  103. package/src/modules/files/middlewares/server/middlewareBusboy.js +137 -0
  104. package/src/modules/files/routes/files.routes.js +9 -9
  105. package/src/modules/globals/localization/vue-i18n.js +8 -1
  106. package/src/modules/globals/mixins/mixins.js +23 -13
  107. package/src/modules/globals/router/routerGuards.js +2 -2
  108. package/src/modules/globals/store/globals.js +86 -9
  109. package/src/modules/globals/utils/mailing.js +24 -3
  110. package/src/modules/icons/entities/IconCommunity.vue +4 -4
  111. package/src/modules/icons/entities/IconEvents.vue +1 -1
  112. package/src/modules/icons/entities/IconGroups.vue +1 -1
  113. package/src/modules/icons/entities/IconPrice.vue +5 -0
  114. package/src/modules/icons/entities/IconProfile.vue +5 -0
  115. package/src/modules/icons/entities/IconShopcart.vue +5 -0
  116. package/src/modules/icons/entities/IconTime.vue +5 -0
  117. package/src/modules/icons/icons.client.js +4 -0
  118. package/src/modules/icons/labels/LabelAppStore.vue +24 -24
  119. package/src/modules/icons/labels/LabelGooglePlay.vue +9 -9
  120. package/src/modules/icons/logos/Logotype.vue +20 -0
  121. package/src/modules/icons/navigation/IconAdd.vue +17 -0
  122. package/src/modules/icons/navigation/IconChevronBottom.vue +18 -0
  123. package/src/modules/icons/navigation/IconChevronRight.vue +3 -3
  124. package/src/modules/icons/navigation/IconDelete.vue +19 -0
  125. package/src/modules/icons/navigation/IconMinus.vue +15 -0
  126. package/src/modules/icons/navigation/IconSearch.vue +17 -0
  127. package/src/modules/icons/navigation/IconUpload.vue +16 -0
  128. package/src/modules/icons/placeholders/PlaceholderImage.vue +5 -0
  129. package/src/modules/icons/placeholders/PlaceholderOrganizationPic.vue +20 -0
  130. package/src/modules/icons/placeholders/PlaceholderUserpic.vue +4 -18
  131. package/src/modules/icons/socials/instagram.vue +1 -1
  132. package/src/modules/icons/socials/line.vue +1 -1
  133. package/src/modules/icons/socials/reddit.vue +1 -1
  134. package/src/modules/icons/socials/telegram.vue +1 -1
  135. package/src/modules/icons/socials/twitter.vue +1 -1
  136. package/src/modules/icons/socials/youtube.vue +1 -1
  137. package/src/modules/landing/components/sections/Guide.vue +92 -0
  138. package/src/modules/landing/components/sections/MobileApp.vue +23 -12
  139. package/src/modules/marketplace/components/layouts/Marketplace.vue +76 -188
  140. package/src/modules/marketplace/components/pages/Catalog.vue +65 -119
  141. package/src/modules/marketplace/components/sections/Filters.vue +195 -0
  142. package/src/modules/marketplace/store/marketplace.js +2 -2
  143. package/src/modules/middlewares/client/auth.validation.js +0 -6
  144. package/src/modules/middlewares/client/states.validation.js +2 -8
  145. package/src/modules/middlewares/server/authJwt.js +1 -1
  146. package/src/modules/mobile/components/Menu/MenuItem.vue +3 -6
  147. package/src/modules/openai/controllers/openai.controller.js +0 -1
  148. package/src/modules/orders/components/blocks/CardOrder.vue +166 -0
  149. package/src/modules/orders/components/blocks/CardOrderItem.vue +59 -66
  150. package/src/modules/orders/components/blocks/Positions.vue +4 -4
  151. package/src/modules/orders/components/pages/EditOrder.vue +78 -142
  152. package/src/modules/orders/components/pages/FormOrder.vue +192 -0
  153. package/src/modules/orders/components/pages/Order.vue +326 -120
  154. package/src/modules/orders/components/pages/Orders.vue +13 -9
  155. package/src/modules/orders/components/pages/{ViewOrder.vue → Orders_refact.vue} +13 -10
  156. package/src/modules/orders/components/partials/ShopCart.vue +22 -13
  157. package/src/modules/orders/components/sections/EmptyState.vue +1 -1
  158. package/src/modules/orders/components/sections/{Form.vue → FormOrderDetails.vue} +38 -106
  159. package/src/modules/orders/controllers/orders.controller.js +37 -28
  160. package/src/modules/orders/models/order.model.js +39 -9
  161. package/src/modules/orders/router/orders.router.js +23 -2
  162. package/src/modules/orders/routes/orders.routes.js +14 -17
  163. package/src/modules/orders/store/orders.js +24 -9
  164. package/src/modules/orders/store/shopcart.js +20 -19
  165. package/src/modules/organizations/components/blocks/CardDepartment.vue +1 -1
  166. package/src/modules/organizations/components/blocks/CardOrganization.vue +98 -46
  167. package/src/modules/organizations/components/blocks/Rating.vue +1 -1
  168. package/src/modules/organizations/components/blocks/Socials.vue +11 -3
  169. package/src/modules/organizations/components/elements/ButtonToggleMembership.vue +1 -1
  170. package/src/modules/organizations/components/pages/Department.vue +1 -1
  171. package/src/modules/organizations/components/pages/DepartmentEdit.vue +4 -4
  172. package/src/modules/organizations/components/pages/Members.vue +6 -4
  173. package/src/modules/organizations/components/pages/Organization.vue +120 -49
  174. package/src/modules/organizations/components/pages/OrganizationEdit.vue +8 -1
  175. package/src/modules/organizations/components/pages/Organizations.vue +27 -6
  176. package/src/modules/organizations/components/sections/DetailsTab.vue +11 -9
  177. package/src/modules/organizations/components/sections/Feed.vue +0 -3
  178. package/src/modules/organizations/components/sections/FeedDepartments.vue +2 -2
  179. package/src/modules/organizations/controllers/organizations.controller.js +126 -15
  180. package/src/modules/organizations/controllers/utils/addMembersQuantity.js +19 -9
  181. package/src/modules/organizations/models/organization.model.js +5 -2
  182. package/src/modules/organizations/router/members.router.js +1 -3
  183. package/src/modules/organizations/router/organizations.js +8 -6
  184. package/src/modules/organizations/router/products.router.js +36 -2
  185. package/src/modules/organizations/store/organizations.js +38 -84
  186. package/src/modules/pages/controllers/pages.controller.js +0 -4
  187. package/src/modules/payments/controller/payments.controller.js +1 -1
  188. package/src/modules/products/components/blocks/CardLeftover.vue +17 -22
  189. package/src/modules/products/components/blocks/CardPosition.vue +96 -49
  190. package/src/modules/products/components/blocks/CardProduct.vue +24 -53
  191. package/src/modules/products/components/blocks/Images360.vue +4 -4
  192. package/src/modules/products/components/blocks/ImagesThumbnails.vue +2 -7
  193. package/src/modules/products/components/blocks/ListPositions.vue +74 -0
  194. package/src/modules/products/components/elements/Price.vue +11 -5
  195. package/src/modules/products/components/elements/THC.vue +6 -6
  196. package/src/modules/products/components/pages/{LeftoverAdd.vue → EditLeftover.vue} +93 -79
  197. package/src/modules/products/components/pages/Leftovers.vue +74 -70
  198. package/src/modules/products/components/pages/Product.vue +4 -7
  199. package/src/modules/products/components/pages/ProductEdit.vue +230 -88
  200. package/src/modules/products/components/pages/ProductRecommmendation.vue +1 -1
  201. package/src/modules/products/components/pages/Products.vue +6 -3
  202. package/src/modules/products/components/pages/ProductsBackoffice.vue +3 -5
  203. package/src/modules/products/components/sections/EditModifications.vue +3 -3
  204. package/src/modules/products/components/sections/EditProductInfo.vue +40 -50
  205. package/src/modules/products/components/sections/FilterProducts.vue +57 -18
  206. package/src/modules/products/components/sections/HeroRecommendation.vue +233 -99
  207. package/src/modules/products/components/sections/MenuSection.vue +127 -0
  208. package/src/modules/products/components/sections/PopularProducts.vue +81 -37
  209. package/src/modules/products/components/sections/SectionProduct.vue +21 -23
  210. package/src/modules/products/controllers/leftovers.controller.js +11 -1
  211. package/src/modules/products/controllers/products.controller.js +100 -97
  212. package/src/modules/products/models/leftover.model.js +6 -4
  213. package/src/modules/products/models/product.model.js +13 -1
  214. package/src/modules/products/routes/products.routes.js +4 -4
  215. package/src/modules/products/store/leftovers.js +4 -24
  216. package/src/modules/products/store/products.js +44 -30
  217. package/src/modules/spots/components/blocks/CardSpot.vue +43 -72
  218. package/src/modules/spots/components/layouts/Spots.vue +9 -91
  219. package/src/modules/spots/components/pages/Map.vue +171 -62
  220. package/src/modules/spots/components/pages/Spot.vue +1 -1
  221. package/src/modules/spots/components/pages/SpotEdit.vue +131 -174
  222. package/src/modules/spots/controllers/spots.controller.js +1 -0
  223. package/src/modules/spots/models/spot.model.js +6 -3
  224. package/src/modules/spots/store/spots.js +42 -48
  225. package/src/modules/users/components/pages/Profile.vue +6 -28
  226. package/src/modules/users/components/pages/ProfileBlogposts.vue +1 -1
  227. package/src/modules/users/components/pages/ProfileEdit.vue +1 -1
  228. package/src/modules/users/components/pages/ProfileEvents.vue +1 -1
  229. package/src/modules/users/components/pages/ProfileOrganizations.vue +1 -1
  230. package/src/modules/users/router/users.js +1 -1
  231. package/src/modules/wallet/components/pages/Wallet.vue +105 -109
  232. package/src/modules/wallet/controllers/crypto.controller.js +129 -0
  233. package/src/modules/wallet/models/reward.model.js +53 -0
  234. package/src/modules/wallet/routes/crypto.routes.js +36 -0
  235. package/src/modules/wallet/store/wallet.js +52 -49
  236. package/src/styles/base/all.scss +143 -11
  237. package/src/styles/base/backgrounds.scss +2 -34
  238. package/src/styles/base/borders.scss +18 -23
  239. package/src/styles/base/scrolling.scss +97 -29
  240. package/src/styles/base/{shadows.scss → shadow_transitions_hover_refactor.scss} +55 -2
  241. package/src/styles/config.scss +69 -17
  242. package/src/styles/layout.scss +12 -182
  243. package/src/styles/reset.scss +20 -21
  244. package/src/styles/responsive.scss +4 -67
  245. package/src/styles/theme.scss +3 -4
  246. package/src/styles/typography.scss +15 -17
  247. package/src/assets/fonts/AvenirNext-Bold.woff2 +0 -0
  248. package/src/assets/fonts/AvenirNext-DemiBold.woff2 +0 -0
  249. package/src/assets/fonts/AvenirNext-Heavy.woff2 +0 -0
  250. package/src/assets/fonts/AvenirNext-Medium.woff2 +0 -0
  251. package/src/assets/fonts/AvenirNext-Regular.woff2 +0 -0
  252. package/src/assets/fonts/AvenirNext-UltraLight.woff2 +0 -0
  253. package/src/modules/files/middlewares/server/md.js +0 -152
  254. package/src/modules/files/middlewares/server/middlewareMulter.js +0 -121
  255. package/src/modules/organizations/controllers/organizations.new.controller.js +0 -372
  256. package/src/modules/products/components/blocks/EditCategories.vue +0 -68
  257. package/src/modules/products/components/sections/EditParameters.vue +0 -58
  258. package/src/modules/products/components/sections/EditProductImages.vue +0 -67
  259. package/src/modules/spots/components/sections/Feed.vue +0 -64
  260. package/src/styles/base/border-radius.scss +0 -47
  261. package/src/styles/base/cursors.scss +0 -23
  262. package/src/styles/base/height.scss +0 -60
  263. package/src/styles/base/hovers.scss +0 -110
  264. package/src/styles/base/positions.scss +0 -192
  265. package/src/styles/base/transitions.scss +0 -137
  266. package/src/styles/base/width.scss +0 -2
  267. package/src/styles/components/block.scss +0 -18
  268. package/src/styles/components/breadcrumbs.scss +0 -0
  269. package/src/styles/components/input.scss +0 -319
@@ -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>