@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.
- package/dist/addMembersQuantity-3505b6f3.mjs +98 -0
- package/dist/addMembersQuantity-fb552ca0.js +97 -0
- package/dist/auth.server.js +6 -9
- package/dist/auth.server.mjs +6 -9
- package/dist/community.server.js +28 -21
- package/dist/community.server.mjs +28 -21
- package/dist/events.server.js +1 -1
- package/dist/events.server.mjs +1 -1
- package/dist/files.server.js +114 -111
- package/dist/files.server.mjs +114 -111
- package/dist/gallery.server.js +3 -3
- package/dist/gallery.server.mjs +3 -3
- package/dist/globals.server.js +1 -1
- package/dist/globals.server.mjs +1 -1
- package/dist/index-a8dffc0c.js +213 -0
- package/dist/index-d769324d.mjs +214 -0
- package/dist/mailing-37c2ba41.mjs +68 -0
- package/dist/mailing-fe16a26a.js +67 -0
- package/dist/main.css +1 -1
- package/dist/middlewares.server.js +1 -1
- package/dist/middlewares.server.mjs +1 -1
- package/dist/organizations.server.js +125 -25
- package/dist/organizations.server.mjs +125 -25
- package/dist/prometheus-framework/src/components/Dropdown/Dropdown.vue.cjs +1 -1
- package/dist/prometheus-framework/src/components/Dropdown/Dropdown.vue.js +49 -2
- package/dist/prometheus-framework/src/components/Dropdown/Dropdown.vue2.cjs +1 -1
- package/dist/prometheus-framework/src/components/Dropdown/Dropdown.vue2.js +2 -49
- package/dist/prometheus-framework/src/components/Select/Select.vue.cjs +1 -1
- package/dist/prometheus-framework/src/components/Select/Select.vue.js +78 -2
- package/dist/prometheus-framework/src/components/Select/Select.vue2.cjs +1 -1
- package/dist/prometheus-framework/src/components/Select/Select.vue2.js +2 -78
- package/dist/prometheus-framework/src/modules/backoffice/components/pages/Dashboard.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/backoffice/components/pages/Dashboard.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/community/components/layouts/Community.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/community/components/layouts/Community.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/community/components/pages/CreateBlogPost.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/constructor/components/elements/Textarea.vue.cjs +4 -1
- package/dist/prometheus-framework/src/modules/constructor/components/elements/Textarea.vue.js +62 -2
- package/dist/prometheus-framework/src/modules/constructor/components/elements/Textarea.vue2.cjs +1 -4
- package/dist/prometheus-framework/src/modules/constructor/components/elements/Textarea.vue2.js +2 -62
- package/dist/prometheus-framework/src/modules/constructor/components/sections/Constructor.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/constructor/components/sections/Constructor.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/events/components/layouts/layoutEvents.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/events/components/layouts/layoutEvents.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/events/components/pages/EditEvent.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/events/components/pages/EditEvent.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/events/components/pages/Events.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/events/components/pages/Events.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/gallery/components/sections/BackofficeGallery.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/gallery/components/sections/GalleryWithCategories.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/gallery/components/sections/GalleryWithCategories.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/globals/components/blocks/CardHeader.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/globals/components/blocks/CardHeader.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/legal/components/pages/Legal.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/legal/components/pages/Legal.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/mobile/components/Menu/Menu.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/mobile/components/Menu/Menu.vue.js +11 -2
- package/dist/prometheus-framework/src/modules/mobile/components/Menu/Menu.vue2.cjs +1 -1
- package/dist/prometheus-framework/src/modules/mobile/components/Menu/Menu.vue2.js +2 -11
- package/dist/prometheus-framework/src/modules/organizations/components/blocks/DepartmentMemberModify.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/blocks/DepartmentMemberModify.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/DepartmentEdit.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Organization.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Organization.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationEdit.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/sections/DetailsTab.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/sections/DetailsTab.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/sections/MembersAdd.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/sections/MembersAdd.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/sections/Organizations.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/sections/Organizations.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/reports/components/sections/FormReport.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/reports/components/sections/FormReport.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/users/components/pages/Profile.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/users/components/pages/Profile.vue.js +2 -2
- package/dist/prometheus-framework.cjs.js +30 -29
- package/dist/prometheus-framework.es.js +2478 -2282
- package/dist/reports.server.js +1 -1
- package/dist/reports.server.mjs +1 -1
- package/dist/style.css +1 -1
- package/dist/users.server.js +1 -1
- package/dist/users.server.mjs +1 -1
- package/package.json +4 -2
- package/src/assets/images/logo.svg +7 -7
- package/src/components/Block/Block.vue +77 -0
- package/src/components/Breadcrumbs/Breadcrumbs.vue +2 -2
- package/src/components/Button/Button.vue +32 -227
- package/src/components/Checkbox/Checkbox.vue +1 -1
- package/src/components/Chips/Chips.vue +8 -8
- package/src/components/DatePicker/DatePicker.vue +3 -4
- package/src/components/EditImages/EditImages.vue +32 -14
- package/src/{modules/globals/components/sections → components/Feed}/Feed.vue +60 -45
- package/src/components/FieldBig/FieldBig.vue +16 -5
- package/src/components/FieldPhone/FieldPhone.vue +2 -1
- package/src/components/Footer/Footer.vue +36 -27
- package/src/components/Header/Header.vue +161 -166
- package/src/components/Loader/Loader.vue +9 -2
- package/src/components/LocationMarker/LocationMarker.vue +38 -12
- package/src/components/LocationSelection/LocationSelection.vue +67 -75
- package/src/components/Magnifier/Magnifier.vue +3 -3
- package/src/components/Navigation/Navigation.vue +16 -16
- package/src/components/Popup/Popup.vue +8 -6
- package/src/components/Select/Select.vue +35 -6
- package/src/components/SelectMulti/SelectMulti.vue +5 -13
- package/src/components/Shader/Shader.vue +128 -0
- package/src/components/Sidebar/Sidebar.vue +71 -35
- package/src/components/Spoiler/Spoiler.vue +1 -1
- package/src/components/Tab/Tab.vue +1 -1
- package/src/components/Tooltip/Tooltip.vue +1 -1
- package/src/components/UploadImage/UploadImage.vue +4 -4
- package/src/components/UploadImageMultiple/UploadImageMultiple.vue +54 -10
- package/src/modules/applications/controllers/applications.controller.js +0 -1
- package/src/modules/auth/components/pages/EnterCode.vue +1 -1
- package/src/modules/auth/components/pages/EnterPassword.vue +3 -3
- package/src/modules/auth/components/pages/ResetPassword.vue +1 -2
- package/src/modules/auth/components/pages/SignIn.vue +26 -10
- package/src/modules/auth/components/pages/SignUp.vue +1 -2
- package/src/modules/auth/controllers/twofa.controller.js +4 -4
- package/src/modules/auth/localization/EnterCode.json +2 -2
- package/src/modules/auth/localization/EnterPassword.json +2 -2
- package/src/modules/auth/localization/ResetPassword.json +2 -2
- package/src/modules/auth/localization/SignIn.json +3 -3
- package/src/modules/auth/localization/SignUp.json +3 -3
- package/src/modules/auth/utils/server/verifyAppleIdToken.js +0 -1
- package/src/modules/backoffice/components/layouts/Backoffice.vue +1 -1
- package/src/modules/backoffice/components/pages/Dashboard.vue +171 -120
- package/src/modules/backoffice/router/backoffice.js +119 -129
- package/src/modules/chats/components/blocks/ChatMessage.vue +25 -0
- package/src/modules/chats/components/pages/ChatPage.vue +50 -0
- package/src/modules/chats/components/sections/ChatWindow.vue +38 -0
- package/src/modules/chats/controllers/chats.controller.js +32 -0
- package/src/modules/chats/models/chat.model.js +26 -0
- package/src/modules/chats/routes/chats.routes.js +53 -0
- package/src/modules/chats/store/chat.store.js +61 -0
- package/src/modules/community/components/blocks/CardBlogpost.vue +19 -4
- package/src/modules/community/components/layouts/Community.vue +96 -39
- package/src/modules/community/components/pages/Blog.vue +4 -3
- package/src/modules/community/components/pages/BlogPost.vue +10 -1
- package/src/modules/community/components/pages/CreateBlogPost.vue +36 -17
- package/src/modules/community/components/sections/HotPosts.vue +3 -3
- package/src/modules/community/components/sections/JoinUs.vue +19 -13
- package/src/modules/community/controllers/blog.controller.js +3 -4
- package/src/modules/community/controllers/utils/queryProcessor.js +16 -17
- package/src/modules/community/models/blogpost.model.js +6 -3
- package/src/modules/community/store/blogposts.js +1 -0
- package/src/modules/constructor/components/elements/Embed.vue +12 -1
- package/src/modules/constructor/components/elements/ImageUpload.vue +2 -2
- package/src/modules/constructor/components/elements/Textarea.vue +6 -1
- package/src/modules/constructor/components/elements/Video.vue +79 -0
- package/src/modules/constructor/components/elements/VideoPlayer.vue +59 -0
- package/src/modules/constructor/components/elements/Youtube.vue +52 -0
- package/src/modules/constructor/components/sections/Constructor.vue +27 -3
- package/src/modules/events/components/layouts/layoutEvents.vue +7 -28
- package/src/modules/files/controllers/files.controller.js +9 -22
- package/src/modules/files/middlewares/server/index.js +2 -2
- package/src/modules/files/middlewares/server/middlewareBusboy.js +137 -0
- package/src/modules/files/routes/files.routes.js +9 -9
- package/src/modules/globals/localization/vue-i18n.js +8 -1
- package/src/modules/globals/mixins/mixins.js +23 -13
- package/src/modules/globals/router/routerGuards.js +2 -2
- package/src/modules/globals/store/globals.js +86 -9
- package/src/modules/globals/utils/mailing.js +24 -3
- package/src/modules/icons/entities/IconCommunity.vue +4 -4
- package/src/modules/icons/entities/IconEvents.vue +1 -1
- package/src/modules/icons/entities/IconGroups.vue +1 -1
- package/src/modules/icons/entities/IconPrice.vue +5 -0
- package/src/modules/icons/entities/IconProfile.vue +5 -0
- package/src/modules/icons/entities/IconShopcart.vue +5 -0
- package/src/modules/icons/entities/IconTime.vue +5 -0
- package/src/modules/icons/icons.client.js +4 -0
- package/src/modules/icons/labels/LabelAppStore.vue +24 -24
- package/src/modules/icons/labels/LabelGooglePlay.vue +9 -9
- package/src/modules/icons/logos/Logotype.vue +20 -0
- package/src/modules/icons/navigation/IconAdd.vue +17 -0
- package/src/modules/icons/navigation/IconChevronBottom.vue +18 -0
- package/src/modules/icons/navigation/IconChevronRight.vue +3 -3
- package/src/modules/icons/navigation/IconDelete.vue +19 -0
- package/src/modules/icons/navigation/IconMinus.vue +15 -0
- package/src/modules/icons/navigation/IconSearch.vue +17 -0
- package/src/modules/icons/navigation/IconUpload.vue +16 -0
- package/src/modules/icons/placeholders/PlaceholderImage.vue +5 -0
- package/src/modules/icons/placeholders/PlaceholderOrganizationPic.vue +20 -0
- package/src/modules/icons/placeholders/PlaceholderUserpic.vue +4 -18
- package/src/modules/icons/socials/instagram.vue +1 -1
- package/src/modules/icons/socials/line.vue +1 -1
- package/src/modules/icons/socials/reddit.vue +1 -1
- package/src/modules/icons/socials/telegram.vue +1 -1
- package/src/modules/icons/socials/twitter.vue +1 -1
- package/src/modules/icons/socials/youtube.vue +1 -1
- package/src/modules/landing/components/sections/Guide.vue +92 -0
- package/src/modules/landing/components/sections/MobileApp.vue +23 -12
- package/src/modules/marketplace/components/layouts/Marketplace.vue +76 -188
- package/src/modules/marketplace/components/pages/Catalog.vue +65 -119
- package/src/modules/marketplace/components/sections/Filters.vue +195 -0
- package/src/modules/marketplace/store/marketplace.js +2 -2
- package/src/modules/middlewares/client/auth.validation.js +0 -6
- package/src/modules/middlewares/client/states.validation.js +2 -8
- package/src/modules/middlewares/server/authJwt.js +1 -1
- package/src/modules/mobile/components/Menu/MenuItem.vue +3 -6
- package/src/modules/openai/controllers/openai.controller.js +0 -1
- package/src/modules/orders/components/blocks/CardOrder.vue +166 -0
- package/src/modules/orders/components/blocks/CardOrderItem.vue +59 -66
- package/src/modules/orders/components/blocks/Positions.vue +4 -4
- package/src/modules/orders/components/pages/EditOrder.vue +78 -142
- package/src/modules/orders/components/pages/FormOrder.vue +192 -0
- package/src/modules/orders/components/pages/Order.vue +326 -120
- package/src/modules/orders/components/pages/Orders.vue +13 -9
- package/src/modules/orders/components/pages/{ViewOrder.vue → Orders_refact.vue} +13 -10
- package/src/modules/orders/components/partials/ShopCart.vue +22 -13
- package/src/modules/orders/components/sections/EmptyState.vue +1 -1
- package/src/modules/orders/components/sections/{Form.vue → FormOrderDetails.vue} +38 -106
- package/src/modules/orders/controllers/orders.controller.js +37 -28
- package/src/modules/orders/models/order.model.js +39 -9
- package/src/modules/orders/router/orders.router.js +23 -2
- package/src/modules/orders/routes/orders.routes.js +14 -17
- package/src/modules/orders/store/orders.js +24 -9
- package/src/modules/orders/store/shopcart.js +20 -19
- package/src/modules/organizations/components/blocks/CardDepartment.vue +1 -1
- package/src/modules/organizations/components/blocks/CardOrganization.vue +98 -46
- package/src/modules/organizations/components/blocks/Rating.vue +1 -1
- package/src/modules/organizations/components/blocks/Socials.vue +11 -3
- package/src/modules/organizations/components/elements/ButtonToggleMembership.vue +1 -1
- package/src/modules/organizations/components/pages/Department.vue +1 -1
- package/src/modules/organizations/components/pages/DepartmentEdit.vue +4 -4
- package/src/modules/organizations/components/pages/Members.vue +6 -4
- package/src/modules/organizations/components/pages/Organization.vue +120 -49
- package/src/modules/organizations/components/pages/OrganizationEdit.vue +8 -1
- package/src/modules/organizations/components/pages/Organizations.vue +27 -6
- package/src/modules/organizations/components/sections/DetailsTab.vue +11 -9
- package/src/modules/organizations/components/sections/Feed.vue +0 -3
- package/src/modules/organizations/components/sections/FeedDepartments.vue +2 -2
- package/src/modules/organizations/controllers/organizations.controller.js +126 -15
- package/src/modules/organizations/controllers/utils/addMembersQuantity.js +19 -9
- package/src/modules/organizations/models/organization.model.js +5 -2
- package/src/modules/organizations/router/members.router.js +1 -3
- package/src/modules/organizations/router/organizations.js +8 -6
- package/src/modules/organizations/router/products.router.js +36 -2
- package/src/modules/organizations/store/organizations.js +38 -84
- package/src/modules/pages/controllers/pages.controller.js +0 -4
- package/src/modules/payments/controller/payments.controller.js +1 -1
- package/src/modules/products/components/blocks/CardLeftover.vue +17 -22
- package/src/modules/products/components/blocks/CardPosition.vue +96 -49
- package/src/modules/products/components/blocks/CardProduct.vue +24 -53
- package/src/modules/products/components/blocks/Images360.vue +4 -4
- package/src/modules/products/components/blocks/ImagesThumbnails.vue +2 -7
- package/src/modules/products/components/blocks/ListPositions.vue +74 -0
- package/src/modules/products/components/elements/Price.vue +11 -5
- package/src/modules/products/components/elements/THC.vue +6 -6
- package/src/modules/products/components/pages/{LeftoverAdd.vue → EditLeftover.vue} +93 -79
- package/src/modules/products/components/pages/Leftovers.vue +74 -70
- package/src/modules/products/components/pages/Product.vue +4 -7
- package/src/modules/products/components/pages/ProductEdit.vue +230 -88
- package/src/modules/products/components/pages/ProductRecommmendation.vue +1 -1
- package/src/modules/products/components/pages/Products.vue +6 -3
- package/src/modules/products/components/pages/ProductsBackoffice.vue +3 -5
- package/src/modules/products/components/sections/EditModifications.vue +3 -3
- package/src/modules/products/components/sections/EditProductInfo.vue +40 -50
- package/src/modules/products/components/sections/FilterProducts.vue +57 -18
- package/src/modules/products/components/sections/HeroRecommendation.vue +233 -99
- package/src/modules/products/components/sections/MenuSection.vue +127 -0
- package/src/modules/products/components/sections/PopularProducts.vue +81 -37
- package/src/modules/products/components/sections/SectionProduct.vue +21 -23
- package/src/modules/products/controllers/leftovers.controller.js +11 -1
- package/src/modules/products/controllers/products.controller.js +100 -97
- package/src/modules/products/models/leftover.model.js +6 -4
- package/src/modules/products/models/product.model.js +13 -1
- package/src/modules/products/routes/products.routes.js +4 -4
- package/src/modules/products/store/leftovers.js +4 -24
- package/src/modules/products/store/products.js +44 -30
- package/src/modules/spots/components/blocks/CardSpot.vue +43 -72
- package/src/modules/spots/components/layouts/Spots.vue +9 -91
- package/src/modules/spots/components/pages/Map.vue +171 -62
- package/src/modules/spots/components/pages/Spot.vue +1 -1
- package/src/modules/spots/components/pages/SpotEdit.vue +131 -174
- package/src/modules/spots/controllers/spots.controller.js +1 -0
- package/src/modules/spots/models/spot.model.js +6 -3
- package/src/modules/spots/store/spots.js +42 -48
- package/src/modules/users/components/pages/Profile.vue +6 -28
- package/src/modules/users/components/pages/ProfileBlogposts.vue +1 -1
- package/src/modules/users/components/pages/ProfileEdit.vue +1 -1
- package/src/modules/users/components/pages/ProfileEvents.vue +1 -1
- package/src/modules/users/components/pages/ProfileOrganizations.vue +1 -1
- package/src/modules/users/router/users.js +1 -1
- package/src/modules/wallet/components/pages/Wallet.vue +105 -109
- package/src/modules/wallet/controllers/crypto.controller.js +129 -0
- package/src/modules/wallet/models/reward.model.js +53 -0
- package/src/modules/wallet/routes/crypto.routes.js +36 -0
- package/src/modules/wallet/store/wallet.js +52 -49
- package/src/styles/base/all.scss +144 -12
- package/src/styles/base/backgrounds.scss +2 -34
- package/src/styles/base/borders.scss +18 -23
- package/src/styles/base/scrolling.scss +97 -29
- package/src/styles/base/{shadows.scss → shadow_transitions_hover_refactor.scss} +55 -2
- package/src/styles/config.scss +69 -17
- package/src/styles/layout.scss +12 -182
- package/src/styles/reset.scss +20 -21
- package/src/styles/responsive.scss +4 -67
- package/src/styles/theme.scss +3 -4
- package/src/styles/typography.scss +15 -17
- package/src/assets/fonts/AvenirNext-Bold.woff2 +0 -0
- package/src/assets/fonts/AvenirNext-DemiBold.woff2 +0 -0
- package/src/assets/fonts/AvenirNext-Heavy.woff2 +0 -0
- package/src/assets/fonts/AvenirNext-Medium.woff2 +0 -0
- package/src/assets/fonts/AvenirNext-Regular.woff2 +0 -0
- package/src/assets/fonts/AvenirNext-UltraLight.woff2 +0 -0
- package/src/modules/files/middlewares/server/md.js +0 -152
- package/src/modules/files/middlewares/server/middlewareMulter.js +0 -121
- package/src/modules/organizations/controllers/organizations.new.controller.js +0 -372
- package/src/modules/products/components/blocks/EditCategories.vue +0 -68
- package/src/modules/products/components/sections/EditParameters.vue +0 -58
- package/src/modules/products/components/sections/EditProductImages.vue +0 -67
- package/src/modules/spots/components/sections/Feed.vue +0 -64
- package/src/styles/base/border-radius.scss +0 -47
- package/src/styles/base/cursors.scss +0 -23
- package/src/styles/base/height.scss +0 -60
- package/src/styles/base/hovers.scss +0 -110
- package/src/styles/base/positions.scss +0 -192
- package/src/styles/base/transitions.scss +0 -137
- package/src/styles/base/width.scss +0 -2
- package/src/styles/components/block.scss +0 -18
- package/src/styles/components/breadcrumbs.scss +0 -0
- 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-
|
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
|
-
|
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
|
-
|
16
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
47
|
+
<router-link :to="getMarketplaceLink([category.url])">
|
48
48
|
<span v-html="t('categories[' + index + ']')"></span>
|
49
|
-
|
49
|
+
</router-link>
|
50
50
|
</li>
|
51
51
|
</div>
|
52
52
|
|
53
53
|
<a href="https://ozdao.dev" target="_blank">
|
54
|
-
|
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
|
-
|
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="
|
87
|
-
{{t('
|
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/
|
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="
|
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: '🌎 En', value: 'en'}, {name: '🇷🇺 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: '🌎 En', value: 'en'}, {name: '🇷🇺 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
|
104
|
-
import Select from '
|
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.
|
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"
|
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
|
-
.
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
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
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
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
|
-
|
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
|
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
|
2
|
+
<div class="pos-relative">
|
3
3
|
<div ref="mapContainer" class="w-100 h-100"></div>
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
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
|
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:
|
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>
|