@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
@@ -11,7 +11,8 @@ import { setError } from '@pf/src/modules/globals/store/globals'
11
11
  // State
12
12
  /////////////////////////////
13
13
  const state = reactive({
14
- items: [],
14
+ organization: null,
15
+ positions: [],
15
16
  currentState: false
16
17
  });
17
18
 
@@ -26,22 +27,22 @@ const actions = {
26
27
 
27
28
  setShopcart() {
28
29
  try {
29
- if (localStorage.getItem('shopcart')) state.items = JSON.parse(localStorage.getItem('shopcart'))
30
+ if (localStorage.getItem('shopcart')) state.positions = JSON.parse(localStorage.getItem('shopcart'))
30
31
  } catch (error) {
31
32
  console.error(error);
32
33
  throw error;
33
34
  }
34
35
  },
35
36
 
36
- addProductToCart(product) {
37
- const cartItem = state.items.find(
37
+ addProductToCart(product, organization) {
38
+ const cartItem = state.positions.find(
38
39
  (item) => item._id === product._id
39
40
  );
40
41
 
41
42
  if (cartItem) {
42
43
  cartItem.quantity++;
43
44
  } else {
44
- state.items.push({
45
+ state.positions.push({
45
46
  _id: product._id,
46
47
  images: product.images,
47
48
  name: product.name,
@@ -50,53 +51,53 @@ const actions = {
50
51
  });
51
52
  }
52
53
 
53
- localStorage.setItem('shopcart', JSON.stringify(state.items));
54
+ localStorage.setItem('shopcart', JSON.stringify(state.positions));
54
55
  },
55
56
 
56
57
  removeProduct(_id) {
57
- const cartItem = state.items.find(
58
+ const cartItem = state.positions.find(
58
59
  (item) => item._id === _id
59
60
  );
60
- const cartItemIndex = state.items.indexOf(cartItem);
61
+ const cartItemIndex = state.positions.indexOf(cartItem);
61
62
 
62
63
  if (cartItemIndex > -1) {
63
- state.items.splice(cartItemIndex, 1);
64
+ state.positions.splice(cartItemIndex, 1);
64
65
 
65
- localStorage.setItem('shopcart', JSON.stringify(state.items));
66
+ localStorage.setItem('shopcart', JSON.stringify(state.positions));
66
67
  }
67
68
  },
68
69
 
69
70
  decrementItemQuantity(_id) {
70
- const cartItem = state.items.find(
71
+ const cartItem = state.positions.find(
71
72
  (item) => item._id === _id
72
73
  );
73
- const cartItemIndex = state.items.indexOf(cartItem);
74
+ const cartItemIndex = state.positions.indexOf(cartItem);
74
75
 
75
76
  if (cartItemIndex > -1) {
76
77
  cartItem.quantity--;
77
78
 
78
79
  if (cartItem.quantity < 1) {
79
- state.items.splice(cartItemIndex, 1);
80
+ state.positions.splice(cartItemIndex, 1);
80
81
  }
81
82
 
82
- localStorage.setItem('shopcart', JSON.stringify(state.items));
83
+ localStorage.setItem('shopcart', JSON.stringify(state.positions));
83
84
  }
84
85
  },
85
86
 
86
87
  incrementItemQuantity(_id) {
87
- const cartItem = state.items.find(
88
+ const cartItem = state.positions.find(
88
89
  (item) => item._id === _id
89
90
  );
90
91
 
91
92
  if (cartItem) {
92
93
  cartItem.quantity++;
93
94
 
94
- localStorage.setItem('shopcart', JSON.stringify(state.items));
95
+ localStorage.setItem('shopcart', JSON.stringify(state.positions));
95
96
  }
96
97
  },
97
98
 
98
99
  resetShopcart({ state }) {
99
- state.items = [];
100
+ state.positions = [];
100
101
 
101
102
  localStorage.removeItem('shopcart');
102
103
  },
@@ -107,13 +108,13 @@ const actions = {
107
108
  /////////////////////////////
108
109
  const getters = {
109
110
  cartTotalPrice: computed(() => {
110
- return Number(state.items.reduce((total, product) => {
111
+ return Number(state.positions.reduce((total, product) => {
111
112
  return total + product.price * product.quantity;
112
113
  }, 0));
113
114
  }),
114
115
 
115
116
  cartTotalAmount: computed(() => {
116
- return Number(state.items.reduce((total, product) => {
117
+ return Number(state.positions.reduce((total, product) => {
117
118
  return total + product.quantity;
118
119
  }, 0));
119
120
  }),
@@ -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}/departments/${department._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
@@ -1,30 +1,27 @@
1
1
  <template>
2
2
  <div
3
- class="bg-grey radius-big o-hidden"
3
+ class="o-hidden pos-relative cursor-pointer bg-grey pd-small"
4
4
  @click="$router.push({name: 'Organization', params: {_id: organization._id}})"
5
5
  >
6
- <div class="w-max pd-medium flex-v-center flex-nowrap flex">
6
+ <div class="flex pos-relative">
7
+
7
8
  <img
8
9
  v-if="organization.profile.photo && organization.profile.photo.length > 0"
9
10
  :src="(FILE_SERVER_URL || '') + organization.profile.photo"
10
11
  class="h-4r w-4r radius-extra bg-white"
11
12
  />
12
13
 
13
- <svg v-else class=" h-4r w-4r radius-extra" width="42" height="42" viewBox="0 0 42 42" fill="none" xmlns="http://www.w3.org/2000/svg">
14
- <circle fill="rgb(var(--main))" cx="21" cy="21" r="21" />
15
- <path fill="#242424" fill-opacity="0.1" fill-rule="evenodd" clip-rule="evenodd" d="M8.00233 37.4954C8.00078 37.4458 8 37.3961 8 37.3462C8 32.9066 11.5673 29.3077 15.9677 29.3077H26.0323C30.4328 29.3077 34 32.9066 34 37.3462C34 37.3961 33.9992 37.4458 33.9977 37.4954C30.4223 40.3165 25.9078 42 21 42C16.0922 42 11.5777 40.3164 8.00233 37.4954ZM21 9C16.5995 9 13.0323 12.5989 13.0323 17.0385C13.0323 21.478 16.5995 25.0769 21 25.0769C25.4005 25.0769 28.9677 21.478 28.9677 17.0385C28.9677 12.5989 25.4005 9 21 9Z" />
16
- </svg>
14
+ <PlaceholderOrganizationPic
15
+ v-else
16
+ class="h-4r w-4r"
17
+ />
17
18
 
18
- <div class="w-max flex-child-1 flex-child mn-l-small w-100">
19
- <p class="w-max h3 mn-b-thin">
20
- <Text :text="organization.profile.name ? organization.profile.name : ''" :maxLen="12" />
21
- </p>
22
-
23
- <div v-if="organization.ratingS" class="w-max star-container flex-v-center flex">
24
- <span class="mn-r-thin pd-r-thin pd-l-thin pd-micro radius-small t-semi uppercase bg-main p-small">
25
- {{organization.types[0]}}
26
- </span>
27
-
19
+ <div class="pos-relative w-100 flex-child-1 flex-child mn-l-small w-100">
20
+
21
+ <!-- <Text :text="organization.profile.name ? organization.profile.name : ''" :maxLen="18" class="h3 d-block"/> -->
22
+ <p class="h3 t-truncate">{{organization.profile.name}}</p>
23
+ <!-- RATING -->
24
+ <!-- <div v-if="showRating && organization.rating" class="w-max star-container flex-v-center flex">
28
25
  <img
29
26
  v-for="i in 5"
30
27
  class="i-small mn-r-thin"
@@ -33,48 +30,74 @@
33
30
 
34
31
  <span class="p-small t-semi mn-r-thin">{{organization.rating.median}}</span>
35
32
  <span class="p-small">({{organization.rating.amount}})</span>
36
- </div>
33
+ </div> -->
37
34
 
38
- <div>
39
- <p class="mn-b-thin ">{{organization.numberOfSubscribers}} followers</p>
40
- <ButtonToggleMembership
41
- v-if="
42
- user?._id
43
- && organization.owner !== user._id
44
- "
45
- :user="user._id"
46
- :type="'organization'"
47
- :role="'subscriber'"
48
- :target="organization._id"
49
- :status="organization.isSubscriber"
50
- :text="{create: 'Follow', remove: 'Unfollow'}"
51
- @updateMembership="event => handleMembershipUpdate(event, 'isSubscriber', 'numberOfSubscribers')"
52
- class="w-min"
53
- />
54
-
35
+ <Chips
36
+ v-if="showTags && organization.profile.tags?.length > 0"
37
+ :chips="organization.profile.tags.slice(0,3)"
38
+ class="pos-relative p-small"
39
+ />
40
+
41
+ <div v-if="showFollowers">
42
+ <p class="mn-b-thin">{{organization.numberOfSubscribers}} followers</p>
43
+
44
+ <ButtonToggleMembership
45
+ v-if="
46
+ user?._id
47
+ && organization.owner !== user._id
48
+ "
49
+ :user="user._id"
50
+ :type="'organization'"
51
+ :role="'subscriber'"
52
+ :target="organization._id"
53
+ :status="organization.isSubscriber"
54
+ :text="{create: 'Follow', remove: 'Unfollow'}"
55
+ @updateMembership="event => handleMembershipUpdate(event, 'isSubscriber', 'numberOfSubscribers')"
56
+ class="w-min"
57
+ />
55
58
  </div>
59
+
56
60
  </div>
61
+
57
62
  </div>
58
63
 
59
- <div v-if="organization.products.length > 1000" class="pd-medium">
60
- <div class="mn-b-small w-100 flex-nowrap flex flex-v-center pd-small bg-white radius-medium">
61
- <p class="t-black p-medium t-semi">
62
- {{organization.products.length}} items:
63
- </p>
64
- <span class="mn-r-small">30-60min</span>
65
- <span class="mn-r-auto">$50 min</span>
66
- </div>
67
64
 
68
- <div class="d-block o-scroll flex-nowrap flex">
65
+ <div
66
+ v-if="showProducts"
67
+ class="mn-b-small mn-t-small w-100 flex-nowrap flex flex-v-center pd-small bg-white radius-medium"
68
+ >
69
+ <IconTime class="i-medium mn-r-micro"/>
70
+ <span class="mn-r-thin">{{
71
+ organization.distance ?
72
+ Math.ceil((5 + 5 + 3 * organization.distance) / 5) * 5
73
+ + '-'
74
+ + Math.ceil((15 + 5 + 3 * organization.distance) / 5) * 5
75
+ + ' MIN' : 'Unavailable'
76
+ }}
77
+ </span>
78
+ <span v-if="organization.distance" class="t-transp mn-r-thin">|</span>
79
+ <span class="mn-r-thin">{{organization.distance ? organization.distance.toFixed(1) + ' KM' : ''}} </span>
80
+ <!-- <span class="mn-r-thin">{{organization.nearestSpotDistance}}</span> -->
81
+ <IconPrice class="i-medium mn-r-micro"/>
82
+ <span class="mn-r-thin">{{returnCurrency()}}500 </span>
83
+ <IconShopcart class="i-medium mn-r-micro"/>
84
+ <span class="mn-r-thin"> {{organization.products.length}} products</span>
85
+ </div>
86
+
87
+ <div v-if="showProducts && organization.products.length > 0" class="w-100 o-scroll">
88
+ <div class="w-max flex-nowrap flex gap-thin">
69
89
  <CardOrderItem
70
90
  @click.stop="$router.push({name: 'Product Organization', params: {_id: organization._id, product: product._id}})"
71
- v-for="product in organization.products"
91
+ v-for="product in organization.products.slice(0,10)"
72
92
  :key="product._id"
73
93
  :editable="false"
74
94
  :product="product"
75
- class="pd-thin radius-medium w-15r br-solid br-grey br-1px bg-white mn-r-thin"
95
+ class="pd-thin w-15r radius-medium bg-white"
96
+
76
97
  />
77
- <button class="flex-center flex-nowrap flex shop-cart-item pd-thin radius-medium w-15r bg-main button">View menu</button>
98
+ <button class="pd-thin w-15r radius-medium bg-main button">
99
+ View menu
100
+ </button>
78
101
  </div>
79
102
  </div>
80
103
 
@@ -87,12 +110,41 @@
87
110
  import CardOrderItem from '@pf/src/modules/orders/components/blocks/CardOrderItem.vue';
88
111
 
89
112
  import Text from '@pf/src/components/Text/Text.vue'
113
+ import Chips from '@pf/src/components/Chips/Chips.vue'
114
+
115
+ import PlaceholderOrganizationPic from '@pf/src/modules/icons/placeholders/PlaceholderOrganizationPic.vue'
116
+
117
+ import IconPrice from '@pf/src/modules/icons/entities/IconPrice.vue'
118
+ import IconShopcart from '@pf/src/modules/icons/entities/IconShopcart.vue'
119
+ import IconTime from '@pf/src/modules/icons/entities/IconTime.vue'
90
120
 
91
121
  import ButtonToggleMembership from '@pf/src/modules/organizations/components/elements/ButtonToggleMembership.vue'
92
122
 
93
123
  const props = defineProps({
124
+ // Model
94
125
  user: String,
95
126
  organization: Object,
127
+ // View
128
+ showProducts: {
129
+ type: Boolean,
130
+ default: true
131
+ },
132
+ showFollowers: {
133
+ type: Boolean,
134
+ default: true
135
+ },
136
+ showRating: {
137
+ type: Boolean,
138
+ default: false
139
+ },
140
+ showFeatured: {
141
+ type: Boolean,
142
+ default: true
143
+ },
144
+ showTags: {
145
+ type: Boolean,
146
+ default: true
147
+ },
96
148
  });
97
149
 
98
150
  const emits = defineEmits(['updateMembership'])
@@ -12,7 +12,7 @@
12
12
  fill="none"
13
13
  xmlns="http://www.w3.org/2000/svg"
14
14
  >
15
- <path fill="#00FF88" d="M62.2406 5.85971L75.413 32.6098L105.203 36.8654C110.472 37.676 112.498 44.3636 108.648 48.0113L87.1668 68.8844L92.2331 98.2689C93.2464 103.741 87.5721 107.591 82.9111 105.159L56.3637 91.3788L29.8163 105.159C25.1553 107.794 19.4811 103.741 20.4944 98.4716L25.5607 68.8844L4.07956 48.0113C0.22917 44.3636 2.25569 37.676 7.52464 36.8654L37.3145 32.6098L50.4868 5.85971C52.9186 0.996063 59.8088 0.996063 62.2406 5.85971Z" />
15
+ <path fill="rgb(var(--main))" d="M62.2406 5.85971L75.413 32.6098L105.203 36.8654C110.472 37.676 112.498 44.3636 108.648 48.0113L87.1668 68.8844L92.2331 98.2689C93.2464 103.741 87.5721 107.591 82.9111 105.159L56.3637 91.3788L29.8163 105.159C25.1553 107.794 19.4811 103.741 20.4944 98.4716L25.5607 68.8844L4.07956 48.0113C0.22917 44.3636 2.25569 37.676 7.52464 36.8654L37.3145 32.6098L50.4868 5.85971C52.9186 0.996063 59.8088 0.996063 62.2406 5.85971Z" />
16
16
  </svg>
17
17
  </div>
18
18
  <p class="">Based on {{amount}} reviews</p>
@@ -22,6 +22,8 @@ import IconTwitter from '@pf/src/modules/icons/socials/twitter.vue'
22
22
  import IconReddit from '@pf/src/modules/icons/socials/reddit.vue'
23
23
  import IconLine from '@pf/src/modules/icons/socials/line.vue'
24
24
  import IconDribble from '@pf/src/modules/icons/socials/dribbble.vue'
25
+ import IconYoutube from '@pf/src/modules/icons/socials/youtube.vue'
26
+
25
27
 
26
28
  const props = defineProps({
27
29
  telegram: {
@@ -51,6 +53,10 @@ const props = defineProps({
51
53
  dribbble: {
52
54
  type: String,
53
55
  default: ''
56
+ },
57
+ youtube: {
58
+ type: String,
59
+ default: ''
54
60
  }
55
61
  });
56
62
 
@@ -61,8 +67,9 @@ const socialLinks = computed(() => {
61
67
  {name: 'instagram', base: 'https://www.instagram.com/'},
62
68
  {name: 'twitter', base: 'https://twitter.com/'},
63
69
  {name: 'reddit', base: 'https://www.reddit.com/user/'},
64
- {name: 'line', base: ''}, // не уверен в базовом URL для Line, добавьте его, если необходимо
65
- {name: 'dribbble', base: 'https://dribbble.com/'}
70
+ {name: 'line', base: ''},
71
+ {name: 'dribbble', base: 'https://dribbble.com/'},
72
+ {name: 'youtube', base: 'https://youtube.com/@'}
66
73
  ];
67
74
 
68
75
  return networks
@@ -82,7 +89,8 @@ function resolveSocialIcon(name) {
82
89
  twitter: IconTwitter,
83
90
  reddit: IconReddit,
84
91
  line: IconLine,
85
- dribbble: IconDribble
92
+ dribbble: IconDribble,
93
+ youtube: IconYoutube
86
94
  };
87
95
 
88
96
  return icons[name] || null;
@@ -2,7 +2,7 @@
2
2
  <Button
3
3
  :submit="toggleMembership"
4
4
  :showSucces="false"
5
- class="button-small button"
5
+ class="bg-main button-small button"
6
6
  >
7
7
  {{ !status ? props.text.create : props.text.remove }}
8
8
  </Button>
@@ -7,7 +7,7 @@
7
7
  <h2 class="w-100">{{ departments.state.department.name }}</h2>
8
8
 
9
9
  <svg @click="$router.push(`/app/organization/departments/${departments.state.department._id}/edit`)" class="i-regular t-transp" width="652" height="652" viewBox="0 0 652 652" fill="none" xmlns="http://www.w3.org/2000/svg">
10
- <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"/>
10
+ <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))"/>
11
11
  </svg>
12
12
 
13
13
  </div>
@@ -17,14 +17,14 @@
17
17
  </header>
18
18
  </div>
19
19
 
20
- <div class="pd-b-zero pd-t-zero pd-thin cols-2 gap-thin">
20
+ <!-- <div class="pd-b-zero pd-t-zero pd-thin cols-2 gap-thin">
21
21
 
22
22
  <div class="flex-stretch flex-column flex">
23
23
 
24
24
  <div class="mn-b-thin bg-grey pd-medium o-hidden radius-big">
25
25
  <h3 class="mn-b-semi">Profile</h3>
26
26
 
27
- <div class="radius-small flex-nowrap flex">
27
+ <div v-if="departments.state.department.profile" class="radius-small flex-nowrap flex">
28
28
  <UploadImage
29
29
  v-model:photo="departments.state.department.profile.photo"
30
30
  :uploadPath="'organizations/' + departments.state.department.name + '/avatars'"
@@ -139,7 +139,7 @@
139
139
  />
140
140
 
141
141
  </div>
142
- </div>
142
+ </div> -->
143
143
 
144
144
  <section class="flex-nowrap flex pd-thin">
145
145
  <Button :submit="onDelete" :callback="redirectToDash" class="bg-grey">Delete Spot</Button>
@@ -255,7 +255,7 @@ async function fetchData() {
255
255
 
256
256
  fetchData();
257
257
 
258
- const members = ref(departments.state.department.members);
258
+ // const members = ref(departments.state.department.members);
259
259
 
260
260
  const isOpenAddMemberPopup = ref(false);
261
261
  const selectedMember = ref(null);
@@ -6,10 +6,10 @@
6
6
  <p class="t-transp p-big">Добавляйте новых участников организации и настраивайте права доступа.</p>
7
7
  </section>
8
8
 
9
- <MenuItem @click="router.push({name: 'User Events', params: {_id: route.params._id}})" class="cursor-pointer">
10
- <IconEvents class="i-semi" :icon="true"/>
11
- <span>Departments</span>
12
- </MenuItem>
9
+ <FeedDepartments
10
+ :organization="organization.state.current"
11
+ :memberships="members.state.memberships"
12
+ />
13
13
 
14
14
  <MembersAdd
15
15
  :organization="organizationData"
@@ -30,6 +30,8 @@
30
30
  <script setup>
31
31
  import { ref,onMounted } from 'vue';
32
32
  import { useRoute, useRouter } from 'vue-router'
33
+
34
+ import FeedDepartments from '@pf/src/modules/organizations/components/sections/FeedDepartments.vue'
33
35
  import MembersAdd from '@pf/src/modules/organizations/components/sections/MembersAdd.vue';
34
36
  import MembersList from '@pf/src/modules/organizations/components/sections/MembersList.vue';
35
37
  // Mobile Module