@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,14 +1,30 @@
1
1
  <template>
2
- <div id="map" class="h-100vh radius-big o-hidden"></div>
2
+ <div class="h-100 w-100 pos-relative">
3
+ <div class="pos-absolute z-index-1 w-100 pd-thin">
4
+ <Button
5
+ :submit="searchInCurrentLocation"
6
+ class="pos-l-5 pos-r-5 bg-black t-white w-100 button"
7
+ >
8
+ Search in This Location
9
+ </Button>
10
+ </div>
11
+
12
+
13
+ <div id="map" class="h-100 w-100 pos-relative radius-big o-hidden">
14
+ </div>
15
+ </div>
3
16
  </template>
4
17
 
5
18
  <script setup>
6
19
  import { onMounted, watch, ref } from 'vue';
7
20
  import { useRoute, useRouter } from 'vue-router'
8
21
 
22
+ import Button from '@pf/src/components/Button/Button.vue'
23
+
9
24
  import { state, actions } from '@pf/src/modules/organizations/store/organizations'
10
25
 
11
26
  import * as globals from '@pf/src/modules/globals/store/globals';
27
+ import * as marketplace from '@pf/src/modules/marketplace/store/marketplace';
12
28
 
13
29
  let map = ref(null);
14
30
  let markers = ref([]);
@@ -23,27 +39,86 @@ const props = defineProps({
23
39
  localPosition: Object
24
40
  });
25
41
 
42
+ let currentMapCenter = ref({lat: 0, lng: 0});
43
+
44
+ async function getCountry() {
45
+ try {
46
+ const response = await fetch('https://ip2c.org/s');
47
+ const result = await response.text();
48
+
49
+ if (!result || result[0] !== '1') {
50
+ throw new Error('Unable to fetch the country');
51
+ }
52
+
53
+ // Разделение строки и извлечение кода страны
54
+ const parts = result.split(';');
55
+ if (parts.length < 4) {
56
+ throw new Error('Invalid response format');
57
+ }
58
+
59
+ console.log(parts[3])
60
+
61
+ return parts[3]; // Возвращает двухбуквенный код страны
62
+ } catch (error) {
63
+ console.error(error);
64
+ throw error;
65
+ }
66
+ }
67
+
68
+
26
69
  onMounted(async () => {
27
- let lat = parseFloat(route.query.lat || globals.state.position.location.lat || '0');
28
- let lng = parseFloat(route.query.lng || globals.state.position.location.lng || '0');
70
+ let lat = parseFloat(route.query.lat || globals.state.position?.location?.lat);
71
+ let lng = parseFloat(route.query.lng || globals.state.position?.location?.lng);
29
72
 
30
73
  let zoomLevel;
31
74
 
32
- if (route.params.location || globals.state.position.location) {
33
- zoomLevel = 13; // Уровень детализации для координат
34
- } else if (route.params.country || globals.state.position.country) {
35
- zoomLevel = 10; // Уровень детализации для города
36
- } else if (route.params.state || globals.state.position.state) {
37
- zoomLevel = 8; // Уровень детализации для штата
38
- } else if (route.params.city || globals.state.position.city) {
39
- zoomLevel = 5; // Уровень детализации для страны
40
- } else {
41
- zoomLevel = 2; // Дефолтный уровень зума
75
+ // Определите уровень зума в зависимости от доступной информации
76
+ if (route.params.location || globals.state.position?.location) {
77
+ zoomLevel = 12;
78
+ } else if (route.params.country || globals.state.position?.country) {
79
+ zoomLevel = 9;
80
+ } else if (route.params.state || globals.state.position?.state) {
81
+ zoomLevel = 6;
82
+ } else if (route.params.city || globals.state.position?.city) {
83
+ zoomLevel = 4;
84
+ } else {
85
+ zoomLevel = 2;
86
+ }
87
+
88
+ // Если координаты не заданы, попробуйте их получить
89
+ if (!lat || !lng) {
90
+ let country
91
+
92
+ const geocoder = new google.maps.Geocoder();
93
+
94
+ try {
95
+ country = await getCountry();
96
+ } catch {
97
+ country = 'Thailand'
98
+ console.log(error)
42
99
  }
100
+
101
+ try {
102
+ const results = await geocoder.geocode({ 'address': country })
103
+
104
+ console.log(results);
105
+
106
+ if (results) {
107
+ lat = results.results[0].geometry.location.lat();
108
+ lng = results.results[0].geometry.location.lng();
109
+ zoomLevel = 6;
110
+ } else {
111
+ console.error('No results found for the country code.');
112
+ }
113
+ } catch (error) {
114
+ console.error('Error getting coordinates from country code:', error);
115
+ }
116
+ }
43
117
 
44
118
  // If there's no lat/lng in the query, try to use country/state/city to get the lat/lng
45
119
  if (!lat && !lng && (route.params.country || route.params.state || route.params.city)) {
46
120
  const geocoder = new google.maps.Geocoder();
121
+
47
122
  const address = [
48
123
  route.params.city,
49
124
  route.params.state,
@@ -52,10 +127,12 @@ onMounted(async () => {
52
127
 
53
128
  try {
54
129
  const results = await geocoder.geocode({ address });
130
+
55
131
  if (results[0]) {
56
132
  lat = results[0].geometry.location.lat();
57
133
  lng = results[0].geometry.location.lng();
58
134
  }
135
+
59
136
  } catch (error) {
60
137
  console.error('Error getting coordinates:', error);
61
138
  }
@@ -64,7 +141,8 @@ onMounted(async () => {
64
141
  map.value = new google.maps.Map(document.getElementById('map'), {
65
142
  mapTypeControl: false,
66
143
  fullscreenControl: false,
67
- styles: [{
144
+ styles: [
145
+ {
68
146
  "elementType": "geometry",
69
147
  "stylers": [
70
148
  {
@@ -342,25 +420,37 @@ onMounted(async () => {
342
420
  // categories: route.query.categories,
343
421
  // prices: route.query.prices,
344
422
  // delivery: route.query.delivery,
423
+ country: route.params.country,
424
+ state: route.params.state,
425
+ city: route.params.city,
426
+ categories: route.query.categories,
427
+ prices: route.query.prices,
428
+ delivery: route.query.delivery,
429
+ sortParam: route.query.sortParam || marketplace.state.sort.param,
430
+ sortOrder: route.query.sortOrder || marketplace.state.sort.order,
345
431
  skip: skip.value,
346
- limit: limit.value,
347
- location: {
348
- type: "Point",
349
- coordinates: [lng, lat] // note that it's longitude first, then latitude
350
- }
432
+ limit: 100,
433
+ location: {coordinates: [lng,lat] },
434
+ locationRadius: 500,
351
435
  };
352
436
 
437
+ console.log(params)
438
+
353
439
  const data = await actions.read(params);
440
+
354
441
  state.all = [...state.all, ...data];
355
442
 
356
443
  for (let marker of markers.value) {
357
444
  marker.setMap(null);
358
445
  }
359
446
 
447
+ markers.value = [];
448
+
360
449
  // Add new markers
361
450
  markers.value = data.map(org => {
362
451
  // Get the first spot's location
363
452
  let location = org.spots[0]?.location;
453
+
364
454
  if (location && location.type === 'Point') {
365
455
  let [lng, lat] = location.coordinates; // Note that coordinates are in [lng, lat] format
366
456
 
@@ -391,52 +481,71 @@ onMounted(async () => {
391
481
  return null;
392
482
  }).filter(marker => marker !== null); // Remove null markers
393
483
 
394
- // google.maps.event.addListener(map.value, 'bounds_changed', async () => {
395
- // let bounds = map.value.getBounds();
396
- // let NE = bounds.getNorthEast();
397
- // let SW = bounds.getSouthWest();
398
-
399
- // router.push({
400
- // query: {
401
- // ...route.query,
402
- // lat: map.value.getCenter().lat(),
403
- // lng: map.value.getCenter().lng(),
404
- // zoom: map.value.getZoom()
405
- // }
406
- // });
407
-
408
- // skip.value += limit.value;
409
-
410
- // const params = {
411
- // country: route.params.country,
412
- // state: route.params.state,
413
- // city: route.params.city,
414
- // categories: route.query.categories,
415
- // prices: route.query.prices,
416
- // delivery: route.query.delivery,
417
- // skip: skip.value,
418
- // limit: limit.value,
419
- // location: `${SW.lat()},${SW.lng()},${NE.lat()},${NE.lng()}`
420
- // };
421
-
422
- // // const data = await actions.read(params);
423
- // // state.all = [...state.all, ...data];
424
-
425
- // // Clear old markers
426
-
427
- // });
484
+ google.maps.event.addListener(map.value, 'center_changed', () => {
485
+ let center = map.value.getCenter();
486
+ currentMapCenter.value = {
487
+ lat: center.lat(),
488
+ lng: center.lng()
489
+ };
490
+ });
428
491
  });
429
492
 
430
- // watch(() => route.query, async (newQuery) => {
431
- // if (map.value) {
432
- // map.value.setCenter({
433
- // lat: parseFloat(newQuery.lat || '0'),
434
- // lng: parseFloat(newQuery.lng || '0')
435
- // });
493
+ const searchInCurrentLocation = async () => {
494
+ // Use currentMapCenter for the location
495
+ const params = {
496
+ country: route.params.country,
497
+ state: route.params.state,
498
+ city: route.params.city,
499
+ categories: route.query.categories,
500
+ prices: route.query.prices,
501
+ delivery: route.query.delivery,
502
+ location: {
503
+ type: "Point",
504
+ coordinates: [currentMapCenter.value.lng, currentMapCenter.value.lat]
505
+ }
506
+ };
507
+
508
+ try {
509
+ const data = await actions.read(params);
510
+ // Remove old markers
511
+ for (let marker of markers.value) {
512
+ marker.setMap(null);
513
+ }
514
+ markers.value = [];
515
+
516
+ // Add new markers
517
+ markers.value = data.map(org => {
518
+ let location = org.spots[0]?.location;
519
+ if (location && location.type === 'Point') {
520
+ let [lng, lat] = location.coordinates; // Note that coordinates are in [lng, lat] format
521
+ let markerIcon = org.products && org.products.length > 0 ? '/marker_2.png' : '/marker.png';
522
+
523
+ const marker = new google.maps.Marker({
524
+ position: { lng, lat },
525
+ map: map.value,
526
+ icon: {
527
+ url: markerIcon, // URL to the icon
528
+ scaledSize: new google.maps.Size(34, 45), // icon dimensions
529
+ origin: new google.maps.Point(0,0), // coordinate origin for this icon
530
+ anchor: new google.maps.Point(0, 0) // point on the icon that corresponds to the geographic location of the marker
531
+ }
532
+ });
533
+
534
+ // Add click listener to the marker
535
+ marker.addListener('click', () => {
536
+ router.push({ name: 'Organization', params: { _id: org._id } });
537
+ });
538
+
539
+ return marker;
540
+ }
541
+ return null;
542
+ }).filter(marker => marker !== null); // Remove null markers
543
+ } catch (error) {
544
+ console.error('Error fetching organizations:', error);
545
+ }
546
+ };
547
+
436
548
 
437
- // map.value.setZoom(parseInt(newQuery.zoom || '8'));
438
- // }
439
- // }, { deep: true });
440
549
 
441
550
  </script>
442
551
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  <div class="pd-medium w-100">
6
6
  <svg @click="$router.push(`/app/organization/${props.organization._id}/spots/${spot._id}/edit`)" class="i-regular pos-absolute pos-r-0 pos-t-0 t-transp" width="652" height="652" viewBox="0 0 652 652" fill="none" xmlns="http://www.w3.org/2000/svg">
7
- <path d="M515.693 9.52082C510.095 3.91669 502.49 0.765625 494.563 0.765625C486.635 0.765625 479.036 3.91669 473.432 9.52082L48.7255 434.307C44.8244 438.214 42.0848 443.125 40.8088 448.496L0.939444 615.069C-1.47202 625.168 1.528 635.788 8.86652 643.132C16.2103 650.47 26.8305 653.47 36.9292 651.059L203.516 611.261H203.511C208.88 609.985 213.792 607.246 217.699 603.35L642.485 178.496C648.089 172.892 651.241 165.293 651.241 157.366C651.241 149.439 648.089 141.835 642.485 136.235L515.693 9.52082ZM113.76 453.708L388.307 179.161L472.828 263.682L198.281 538.229L113.76 453.708ZM87.1041 511.5L140.416 564.812L70.3014 581.614L87.1041 511.5ZM515.091 221.793L430.195 136.897L494.184 72.9075L579.08 157.429L515.091 221.793Z" fill="black"/>
7
+ <path d="M515.693 9.52082C510.095 3.91669 502.49 0.765625 494.563 0.765625C486.635 0.765625 479.036 3.91669 473.432 9.52082L48.7255 434.307C44.8244 438.214 42.0848 443.125 40.8088 448.496L0.939444 615.069C-1.47202 625.168 1.528 635.788 8.86652 643.132C16.2103 650.47 26.8305 653.47 36.9292 651.059L203.516 611.261H203.511C208.88 609.985 213.792 607.246 217.699 603.35L642.485 178.496C648.089 172.892 651.241 165.293 651.241 157.366C651.241 149.439 648.089 141.835 642.485 136.235L515.693 9.52082ZM113.76 453.708L388.307 179.161L472.828 263.682L198.281 538.229L113.76 453.708ZM87.1041 511.5L140.416 564.812L70.3014 581.614L87.1041 511.5ZM515.091 221.793L430.195 136.897L494.184 72.9075L579.08 157.429L515.091 221.793Z" fill="rgb(var(--black))"/>
8
8
  </svg>
9
9
 
10
10
  <h3