@ozdao/martyrs 0.2.519 → 0.2.520

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (341) hide show
  1. package/dist/chats.server.cjs +198 -1
  2. package/dist/chats.server.js +198 -1
  3. package/dist/{main-Wr1_4rwl.cjs → main-BM3GslOO.cjs} +6 -6
  4. package/dist/{main-DgGUrhjT.js → main-Qcn7YlTx.js} +1832 -1828
  5. package/dist/martyrs/src/components/Address/{Address.vue2.cjs → Address.vue.cjs} +2 -2
  6. package/dist/martyrs/src/components/Address/{Address.vue2.js.map → Address.vue.cjs.map} +1 -1
  7. package/dist/martyrs/src/components/Address/{Address.vue2.js → Address.vue.js} +2 -2
  8. package/dist/martyrs/src/components/Address/Address.vue.js.map +1 -0
  9. package/dist/martyrs/src/components/Feed/Feed.vue.cjs +0 -1
  10. package/dist/martyrs/src/components/Feed/Feed.vue.cjs.map +1 -1
  11. package/dist/martyrs/src/components/Feed/Feed.vue.js +0 -1
  12. package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
  13. package/dist/martyrs/src/components/LocationMarker/{LocationMarker.vue2.cjs → LocationMarker.vue.cjs} +2 -2
  14. package/dist/martyrs/src/components/LocationMarker/{LocationMarker.vue2.js.map → LocationMarker.vue.cjs.map} +1 -1
  15. package/dist/martyrs/src/components/LocationMarker/{LocationMarker.vue2.js → LocationMarker.vue.js} +2 -2
  16. package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue.js.map +1 -0
  17. package/dist/martyrs/src/components/Select/{Select.vue2.cjs → Select.vue.cjs} +2 -2
  18. package/dist/martyrs/src/components/Select/{Select.vue2.js.map → Select.vue.cjs.map} +1 -1
  19. package/dist/martyrs/src/components/Select/{Select.vue2.js → Select.vue.js} +2 -2
  20. package/dist/martyrs/src/components/Select/Select.vue.js.map +1 -0
  21. package/dist/martyrs/src/modules/auth/views/components/blocks/CardUser.vue.cjs +2 -2
  22. package/dist/martyrs/src/modules/auth/views/components/blocks/CardUser.vue.js +2 -2
  23. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs +1 -1
  24. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs.map +1 -1
  25. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js +1 -1
  26. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js.map +1 -1
  27. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +2 -2
  28. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs.map +1 -1
  29. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +4 -4
  30. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js.map +1 -1
  31. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +40 -50
  32. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs.map +1 -1
  33. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +59 -69
  34. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js.map +1 -1
  35. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.cjs +11 -13
  36. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.cjs.map +1 -1
  37. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.js +11 -13
  38. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.js.map +1 -1
  39. package/dist/martyrs/src/modules/auth/views/store/auth.cjs +9 -0
  40. package/dist/martyrs/src/modules/auth/views/store/auth.cjs.map +1 -1
  41. package/dist/martyrs/src/modules/auth/views/store/auth.js +9 -0
  42. package/dist/martyrs/src/modules/auth/views/store/auth.js.map +1 -1
  43. package/dist/martyrs/src/modules/chats/components/blocks/ChatMessage.vue.cjs +27 -11
  44. package/dist/martyrs/src/modules/chats/components/blocks/ChatMessage.vue.cjs.map +1 -1
  45. package/dist/martyrs/src/modules/chats/components/blocks/ChatMessage.vue.js +28 -12
  46. package/dist/martyrs/src/modules/chats/components/blocks/ChatMessage.vue.js.map +1 -1
  47. package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.cjs +62 -0
  48. package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.cjs.map +1 -1
  49. package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.js +63 -1
  50. package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.js.map +1 -1
  51. package/dist/martyrs/src/modules/chats/store/chat.store.cjs +60 -1
  52. package/dist/martyrs/src/modules/chats/store/chat.store.cjs.map +1 -1
  53. package/dist/martyrs/src/modules/chats/store/chat.store.js +60 -1
  54. package/dist/martyrs/src/modules/chats/store/chat.store.js.map +1 -1
  55. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.cjs +3 -3
  56. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.cjs.map +1 -1
  57. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +3 -3
  58. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js.map +1 -1
  59. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs +1 -1
  60. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +1 -1
  61. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.cjs +50 -368
  62. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.cjs.map +1 -1
  63. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.js +53 -371
  64. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.js.map +1 -1
  65. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs +1 -1
  66. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs.map +1 -1
  67. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
  68. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js.map +1 -1
  69. package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +0 -1
  70. package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs.map +1 -1
  71. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +0 -1
  72. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js.map +1 -1
  73. package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs +2 -2
  74. package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs.map +1 -1
  75. package/dist/martyrs/src/modules/events/components/pages/Events.vue.js +2 -2
  76. package/dist/martyrs/src/modules/events/components/pages/Events.vue.js.map +1 -1
  77. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +1 -1
  78. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +1 -1
  79. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +1 -1
  80. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +1 -1
  81. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs +1 -1
  82. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js +1 -1
  83. package/dist/martyrs/src/modules/globals/views/components/partials/LocationSelection.vue.cjs +2 -2
  84. package/dist/martyrs/src/modules/globals/views/components/partials/LocationSelection.vue.js +2 -2
  85. package/dist/martyrs/src/modules/globals/views/components/sections/Walkthrough.vue.cjs +1 -1
  86. package/dist/martyrs/src/modules/globals/views/mixins/mixins.cjs +7 -0
  87. package/dist/martyrs/src/modules/globals/views/mixins/mixins.cjs.map +1 -1
  88. package/dist/martyrs/src/modules/globals/views/mixins/mixins.js +7 -0
  89. package/dist/martyrs/src/modules/globals/views/mixins/mixins.js.map +1 -1
  90. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.cjs +1 -1
  91. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.cjs +1 -1
  92. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +1 -1
  93. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.cjs +1 -1
  94. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +1 -1
  95. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.cjs +1 -1
  96. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +1 -1
  97. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.cjs +180 -19
  98. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.cjs.map +1 -1
  99. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.js +181 -20
  100. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.js.map +1 -1
  101. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.cjs +1 -1
  102. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +1 -1
  103. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.cjs +1 -1
  104. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +1 -1
  105. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs +1 -1
  106. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +1 -1
  107. package/dist/martyrs/src/modules/music/router/music.cjs +0 -1
  108. package/dist/martyrs/src/modules/music/router/music.cjs.map +1 -1
  109. package/dist/martyrs/src/modules/music/router/music.js +0 -1
  110. package/dist/martyrs/src/modules/music/router/music.js.map +1 -1
  111. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.cjs +2 -2
  112. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.cjs.map +1 -1
  113. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.js +2 -2
  114. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.js.map +1 -1
  115. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.cjs +1 -1
  116. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +1 -1
  117. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.cjs +1 -1
  118. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +1 -1
  119. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +1 -1
  120. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +1 -1
  121. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +2 -3
  122. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs.map +1 -1
  123. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +2 -3
  124. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js.map +1 -1
  125. package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.cjs +1 -1
  126. package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.js +1 -1
  127. package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.cjs +2 -24
  128. package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.cjs.map +1 -1
  129. package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.js +5 -27
  130. package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.js.map +1 -1
  131. package/dist/martyrs/src/modules/organizations/components/blocks/Socials.vue.cjs +4 -1
  132. package/dist/martyrs/src/modules/organizations/components/blocks/Socials.vue.cjs.map +1 -1
  133. package/dist/martyrs/src/modules/organizations/components/blocks/Socials.vue.js +4 -1
  134. package/dist/martyrs/src/modules/organizations/components/blocks/Socials.vue.js.map +1 -1
  135. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.cjs +3 -3
  136. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.cjs.map +1 -1
  137. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +3 -3
  138. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js.map +1 -1
  139. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.cjs +195 -0
  140. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.cjs.map +1 -0
  141. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js +195 -0
  142. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js.map +1 -0
  143. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.cjs +402 -0
  144. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.cjs.map +1 -0
  145. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js +402 -0
  146. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js.map +1 -0
  147. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.cjs +86 -0
  148. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.cjs.map +1 -0
  149. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js +86 -0
  150. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js.map +1 -0
  151. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.cjs +10 -10
  152. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.cjs.map +1 -1
  153. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js +11 -11
  154. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js.map +1 -1
  155. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +279 -191
  156. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs.map +1 -1
  157. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +285 -197
  158. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js.map +1 -1
  159. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +5 -5
  160. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs.map +1 -1
  161. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +5 -5
  162. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js.map +1 -1
  163. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +2 -2
  164. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs.map +1 -1
  165. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +2 -2
  166. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js.map +1 -1
  167. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.cjs +1 -1
  168. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.cjs.map +1 -1
  169. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js +1 -1
  170. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js.map +1 -1
  171. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.cjs +1 -1
  172. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +1 -1
  173. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +3 -3
  174. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs.map +1 -1
  175. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +3 -3
  176. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js.map +1 -1
  177. package/dist/martyrs/src/modules/organizations/components/sections/Publics.vue.cjs +4 -4
  178. package/dist/martyrs/src/modules/organizations/components/sections/Publics.vue.cjs.map +1 -1
  179. package/dist/martyrs/src/modules/organizations/components/sections/Publics.vue.js +4 -4
  180. package/dist/martyrs/src/modules/organizations/components/sections/Publics.vue.js.map +1 -1
  181. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.cjs +42 -41
  182. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.cjs.map +1 -1
  183. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.js +53 -52
  184. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.js.map +1 -1
  185. package/dist/martyrs/src/modules/organizations/organizations.client.cjs +23 -16
  186. package/dist/martyrs/src/modules/organizations/organizations.client.cjs.map +1 -1
  187. package/dist/martyrs/src/modules/organizations/organizations.client.js +35 -28
  188. package/dist/martyrs/src/modules/organizations/organizations.client.js.map +1 -1
  189. package/dist/martyrs/src/modules/organizations/router/departments.router.cjs +0 -18
  190. package/dist/martyrs/src/modules/organizations/router/departments.router.cjs.map +1 -1
  191. package/dist/martyrs/src/modules/organizations/router/departments.router.js +0 -18
  192. package/dist/martyrs/src/modules/organizations/router/departments.router.js.map +1 -1
  193. package/dist/martyrs/src/modules/organizations/store/departments.store.cjs +6 -0
  194. package/dist/martyrs/src/modules/organizations/store/departments.store.cjs.map +1 -0
  195. package/dist/martyrs/src/modules/organizations/store/departments.store.js +6 -0
  196. package/dist/martyrs/src/modules/organizations/store/departments.store.js.map +1 -0
  197. package/dist/martyrs/src/modules/organizations/store/invites.store.cjs +6 -0
  198. package/dist/martyrs/src/modules/organizations/store/invites.store.cjs.map +1 -0
  199. package/dist/martyrs/src/modules/organizations/store/invites.store.js +6 -0
  200. package/dist/martyrs/src/modules/organizations/store/invites.store.js.map +1 -0
  201. package/dist/martyrs/src/modules/organizations/store/memberships.store.cjs +20 -0
  202. package/dist/martyrs/src/modules/organizations/store/memberships.store.cjs.map +1 -0
  203. package/dist/martyrs/src/modules/organizations/store/memberships.store.js +20 -0
  204. package/dist/martyrs/src/modules/organizations/store/memberships.store.js.map +1 -0
  205. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +2 -3
  206. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs.map +1 -1
  207. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +2 -3
  208. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js.map +1 -1
  209. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +1 -1
  210. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +1 -1
  211. package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs +1 -1
  212. package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs.map +1 -1
  213. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +1 -1
  214. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js.map +1 -1
  215. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs +1 -1
  216. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +1 -1
  217. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs +1 -1
  218. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +1 -1
  219. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs +1 -1
  220. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +1 -1
  221. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs +2 -2
  222. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs.map +1 -1
  223. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js +2 -2
  224. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js.map +1 -1
  225. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.cjs +1 -1
  226. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js +1 -1
  227. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +3 -3
  228. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +3 -3
  229. package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.cjs +60 -272
  230. package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.cjs.map +1 -1
  231. package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.js +62 -274
  232. package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.js.map +1 -1
  233. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.cjs +1 -1
  234. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +1 -1
  235. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.cjs +1 -1
  236. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +1 -1
  237. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.cjs +2 -2
  238. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +2 -2
  239. package/dist/martyrs.cjs.js +1 -1
  240. package/dist/martyrs.css +1 -1
  241. package/dist/martyrs.es.js +1 -1
  242. package/dist/notifications.server.cjs +0 -24
  243. package/dist/notifications.server.js +0 -24
  244. package/dist/orders.server.cjs +1 -4
  245. package/dist/orders.server.js +1 -4
  246. package/dist/organizations.server.cjs +115 -39
  247. package/dist/organizations.server.js +115 -39
  248. package/dist/style.css +9 -9
  249. package/dist/{web-42I-Howt.cjs → web-B0cfxzgu.cjs} +1 -1
  250. package/dist/{web-ByhZ_fIu.js → web-DVR8m2fm.js} +1 -1
  251. package/package.json +1 -1
  252. package/src/components/Feed/Feed.old.vue +0 -1
  253. package/src/components/Feed/Feed.vue +0 -30
  254. package/src/modules/auth/FIXES.md +2 -26
  255. package/src/modules/auth/views/components/blocks/CardUser.vue +2 -2
  256. package/src/modules/auth/views/components/layouts/Auth.vue +1 -1
  257. package/src/modules/auth/views/components/pages/Invite.vue +2 -2
  258. package/src/modules/auth/views/components/pages/Profile.vue +33 -48
  259. package/src/modules/auth/views/components/sections/SliderFeatures.vue +5 -7
  260. package/src/modules/auth/views/store/auth.js +15 -0
  261. package/src/modules/chats/CLAUDE.md +137 -0
  262. package/src/modules/chats/components/blocks/ChatMessage.vue +12 -0
  263. package/src/modules/chats/components/sections/ChatWindow.vue +84 -2
  264. package/src/modules/chats/controllers/chats.controller.js +187 -0
  265. package/src/modules/chats/models/chat.model.js +21 -0
  266. package/src/modules/chats/routes/chats.routes.js +46 -0
  267. package/src/modules/chats/store/chat.store.js +67 -0
  268. package/src/modules/community/components/layouts/Community.vue +2 -2
  269. package/src/modules/community/components/pages/Posts.vue +3 -328
  270. package/src/modules/events/components/pages/EditEventTickets.vue +1 -1
  271. package/src/modules/events/components/pages/Events.vue +2 -2
  272. package/src/modules/globals/views/mixins/mixins.js +7 -0
  273. package/src/modules/marketplace/views/components/layouts/Marketplace.vue +160 -8
  274. package/src/modules/notifications/controllers/notifications.controller.js +0 -6
  275. package/src/modules/notifications/services/notification.service.js +1 -17
  276. package/src/modules/notifications/services/web-push.service.js +0 -2
  277. package/src/modules/orders/components/blocks/CardOrderBackoffice.vue +2 -2
  278. package/src/modules/orders/components/blocks/CardOrderVar1.vue +1 -1
  279. package/src/modules/orders/controllers/orders.controller.js +2 -4
  280. package/src/modules/organizations/CLAUDE.md +259 -0
  281. package/src/modules/organizations/components/blocks/CardDepartment.vue +1 -22
  282. package/src/modules/organizations/components/blocks/Socials.vue +1 -1
  283. package/src/modules/organizations/components/elements/ButtonToggleMembership.vue +3 -3
  284. package/src/modules/organizations/components/forms/AddExistingMembersForm.vue +191 -0
  285. package/src/modules/organizations/components/forms/DepartmentForm.vue +390 -0
  286. package/src/modules/organizations/components/forms/InviteForm.vue +81 -0
  287. package/src/modules/organizations/components/pages/Department.vue +10 -10
  288. package/src/modules/organizations/components/pages/DepartmentEdit.vue +8 -8
  289. package/src/modules/organizations/components/pages/Members.vue +265 -171
  290. package/src/modules/organizations/components/pages/Organization.new.vue +172 -183
  291. package/src/modules/organizations/components/pages/Organization.vue +6 -6
  292. package/src/modules/organizations/components/pages/OrganizationEdit.vue +1 -1
  293. package/src/modules/organizations/components/pages/Organizations.vue +1 -1
  294. package/src/modules/organizations/components/sections/Organizations.vue +2 -2
  295. package/src/modules/organizations/components/sections/Publics.vue +4 -4
  296. package/src/modules/organizations/configs/navigation.organization.config.js +40 -39
  297. package/src/modules/organizations/controllers/departments.controller.js +53 -34
  298. package/src/modules/organizations/controllers/invites.controller.js +44 -5
  299. package/src/modules/organizations/controllers/memberships.controller.js +43 -4
  300. package/src/modules/organizations/organizations.client.js +24 -15
  301. package/src/modules/organizations/router/departments.router.js +0 -18
  302. package/src/modules/organizations/routes/departments.routes.js +6 -8
  303. package/src/modules/organizations/routes/invites.routes.js +6 -4
  304. package/src/modules/organizations/routes/memberships.routes.js +6 -5
  305. package/src/modules/organizations/store/departments.store.js +5 -0
  306. package/src/modules/organizations/store/invites.store.js +5 -0
  307. package/src/modules/organizations/store/memberships.store.js +23 -0
  308. package/src/modules/products/components/pages/Products.vue +0 -1
  309. package/src/modules/spots/components/blocks/CardSpot.vue +1 -1
  310. package/src/modules/spots/components/pages/Spots.vue +3 -203
  311. package/src/styles/base/all.scss +0 -15
  312. package/src/styles/typography.scss +20 -5
  313. package/dist/martyrs/src/components/Address/Address.vue2.cjs.map +0 -1
  314. package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue2.cjs.map +0 -1
  315. package/dist/martyrs/src/components/Select/Select.vue2.cjs.map +0 -1
  316. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue.cjs +0 -76
  317. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue.cjs.map +0 -1
  318. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue.js +0 -76
  319. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue.js.map +0 -1
  320. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +0 -280
  321. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs.map +0 -1
  322. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +0 -280
  323. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js.map +0 -1
  324. package/dist/martyrs/src/modules/organizations/store/departments.cjs +0 -121
  325. package/dist/martyrs/src/modules/organizations/store/departments.cjs.map +0 -1
  326. package/dist/martyrs/src/modules/organizations/store/departments.js +0 -121
  327. package/dist/martyrs/src/modules/organizations/store/departments.js.map +0 -1
  328. package/dist/martyrs/src/modules/organizations/store/invites.cjs +0 -64
  329. package/dist/martyrs/src/modules/organizations/store/invites.cjs.map +0 -1
  330. package/dist/martyrs/src/modules/organizations/store/invites.js +0 -64
  331. package/dist/martyrs/src/modules/organizations/store/invites.js.map +0 -1
  332. package/dist/martyrs/src/modules/organizations/store/memberships.cjs +0 -87
  333. package/dist/martyrs/src/modules/organizations/store/memberships.cjs.map +0 -1
  334. package/dist/martyrs/src/modules/organizations/store/memberships.js +0 -87
  335. package/dist/martyrs/src/modules/organizations/store/memberships.js.map +0 -1
  336. package/src/CLAUDE.MD +0 -15
  337. package/src/modules/globals/controllers/classes/globals.websocket.ws.js +0 -102
  338. package/src/modules/globals/views/components/blocks/BlockFilter.vue +0 -60
  339. package/src/modules/organizations/store/departments.js +0 -137
  340. package/src/modules/organizations/store/invites.js +0 -76
  341. package/src/modules/organizations/store/memberships.js +0 -110
@@ -3,58 +3,80 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
3
3
  const vue = require("vue");
4
4
  const vueRouter = require("vue-router");
5
5
  const Feed = require("../../../../components/Feed/Feed.vue.cjs");
6
- ;/* empty css */
7
- ;/* empty css */
8
6
  const Popup = require("../../../../components/Popup/Popup.vue.cjs");
9
7
  const SectionPageTitle = require("../../../globals/views/components/sections/SectionPageTitle.vue.cjs");
10
- const MembersAdd = require("../sections/MembersAdd.vue.cjs");
11
- ;/* empty css */
12
- require("../../../../components/Menu/MenuItem.vue.cjs");
8
+ const InviteForm = require("../forms/InviteForm.vue.cjs");
9
+ const AddExistingMembersForm = require("../forms/AddExistingMembersForm.vue.cjs");
10
+ const DepartmentForm = require("../forms/DepartmentForm.vue.cjs");
13
11
  const CardUser = require("../../../auth/views/components/blocks/CardUser.vue.cjs");
14
12
  const CardDepartment = require("../blocks/CardDepartment.vue.cjs");
15
13
  const IconDelete = require("../../../icons/navigation/IconDelete.vue.cjs");
16
14
  const auth = require("../../../auth/views/store/auth.cjs");
17
- const globals = require("../../../globals/views/store/globals.cjs");
18
- const invites = require("../../store/invites.cjs");
19
- const memberships = require("../../store/memberships.cjs");
15
+ require("../../../globals/views/store/globals.cjs");
20
16
  const organizations = require("../../store/organizations.cjs");
21
- const departments = require("../../store/departments.cjs");
17
+ const departments_store = require("../../store/departments.store.cjs");
18
+ const memberships_store = require("../../store/memberships.store.cjs");
19
+ const invites_store = require("../../store/invites.store.cjs");
22
20
  const _hoisted_1 = { class: "pd-thin" };
23
21
  const _hoisted_2 = {
24
- key: 2,
25
- class: "cols-1 gap-thin"
22
+ key: 0,
23
+ class: "flex-center flex h-20r"
26
24
  };
27
- const _hoisted_3 = { key: 3 };
25
+ const _hoisted_3 = { key: 1 };
26
+ const _hoisted_4 = { class: "mn-b-medium" };
27
+ const _hoisted_5 = { class: "cols-1 gap-thin" };
28
+ const _hoisted_6 = { class: "mn-b-medium" };
29
+ const _hoisted_7 = ["onClick"];
28
30
  const _sfc_main = {
29
31
  __name: "Members",
30
32
  setup(__props) {
31
33
  const route = vueRouter.useRoute();
32
34
  vueRouter.useRouter();
33
35
  const organizationData = vue.ref(null);
34
- const tab = vue.ref("members");
35
- const invitesState = vue.ref([]);
36
- const isOpenMembersAddPopup = vue.ref(false);
37
- function openMembersAddPopup() {
38
- isOpenMembersAddPopup.value = true;
36
+ const membersList = vue.ref([]);
37
+ const invitesList = vue.ref([]);
38
+ const departmentsList = vue.ref([]);
39
+ const isLoaded = vue.ref(false);
40
+ const isOpenInvitePopup = vue.ref(false);
41
+ const isOpenAddUsersPopup = vue.ref(false);
42
+ const isDepartmentPopupOpen = vue.ref(false);
43
+ const editingDepartment = vue.ref(null);
44
+ function openInvitePopup() {
45
+ isOpenInvitePopup.value = true;
39
46
  }
40
- function closeMembersAddPopup() {
41
- isOpenMembersAddPopup.value = false;
47
+ function closeInvitePopup() {
48
+ isOpenInvitePopup.value = false;
49
+ }
50
+ function openAddUsersPopup() {
51
+ isOpenAddUsersPopup.value = true;
52
+ }
53
+ function closeAddUsersPopup() {
54
+ isOpenAddUsersPopup.value = false;
55
+ }
56
+ function openDepartmentPopup(department = null) {
57
+ editingDepartment.value = department;
58
+ isDepartmentPopupOpen.value = true;
59
+ }
60
+ function closeDepartmentPopup() {
61
+ isDepartmentPopupOpen.value = false;
62
+ editingDepartment.value = null;
42
63
  }
43
64
  vue.onMounted(async () => {
44
- organizationData.value = (await organizations.actions.read({ _id: route.params._id, user: auth.state.user._id }))[0];
45
- });
46
- vue.computed(() => {
47
- const departmentsState = departments.state.departments;
48
- const subdepartmentIds = departmentsState.flatMap(
49
- (department) => department.subdepartments.map((subdepartment) => subdepartment._id)
50
- );
51
- return departmentsState.filter(
52
- (department) => !subdepartmentIds.includes(department._id)
53
- );
65
+ try {
66
+ const response = await organizations.actions.read({
67
+ _id: route.params._id,
68
+ user: auth.state.user._id
69
+ });
70
+ organizationData.value = response[0];
71
+ isLoaded.value = true;
72
+ } catch (error) {
73
+ console.error("Error loading organization:", error);
74
+ isLoaded.value = true;
75
+ }
54
76
  });
55
77
  async function handleSendInvite(list, resolve, reject) {
56
78
  try {
57
- const response = await invites.actions.create({
79
+ const response = await invites_store.default.create({
58
80
  owner: {
59
81
  type: "Organization",
60
82
  target: organizationData.value._id
@@ -65,191 +87,257 @@ const _sfc_main = {
65
87
  },
66
88
  invites: list
67
89
  });
68
- for (let invite of response.createdInvites) {
69
- globals.actions.add(invitesState.value, invite);
90
+ if (response.createdInvites) {
91
+ for (let invite of response.createdInvites) {
92
+ invites_store.default.addItem(invite, invitesList.value);
93
+ }
94
+ } else if (response._id) {
95
+ invites_store.default.addItem(response, invitesList.value);
70
96
  }
71
- closeMembersAddPopup();
97
+ closeInvitePopup();
72
98
  resolve();
73
99
  } catch (error) {
74
100
  reject(error);
75
101
  }
76
102
  }
103
+ function handleUsersAdded(addedUsers) {
104
+ closeAddUsersPopup();
105
+ if (addedUsers && addedUsers.length > 0) {
106
+ addedUsers.forEach((membership) => {
107
+ memberships_store.default.addItem(membership, membersList.value);
108
+ });
109
+ }
110
+ }
111
+ function handleDepartmentSaved(department) {
112
+ closeDepartmentPopup();
113
+ console.log("handleDepartmentSaved called with:", department);
114
+ console.log("departmentsList before update:", departmentsList.value);
115
+ console.log("editingDepartment:", editingDepartment.value);
116
+ if (department) {
117
+ if (editingDepartment.value) {
118
+ departments_store.default.updateItem(department, departmentsList.value);
119
+ } else {
120
+ departments_store.default.addItem(department, departmentsList.value);
121
+ }
122
+ } else {
123
+ if (editingDepartment.value) {
124
+ departments_store.default.removeItem(editingDepartment.value, departmentsList.value);
125
+ }
126
+ }
127
+ console.log("departmentsList after update:", departmentsList.value);
128
+ }
77
129
  async function removeMember(index, member) {
78
130
  if (confirm("Confirm remove of member") == true) {
79
- memberships.state.memberships.splice(index, 1);
80
- await memberships.actions.delete(member);
131
+ await memberships_store.default.delete(member);
132
+ memberships_store.default.removeItem(member, membersList.value);
81
133
  }
82
134
  }
83
135
  async function removeInvite(index, invite) {
84
- if (confirm("Confirm remove of member") == true) {
85
- globals.actions.delete(invitesState.value, invite);
86
- await invites.actions.delete(invite._id);
136
+ if (confirm("Confirm remove of invite") == true) {
137
+ await invites_store.default.delete(invite);
138
+ invites_store.default.removeItem(invite, invitesList.value);
87
139
  }
88
140
  }
89
141
  return (_ctx, _cache) => {
90
- const _component_router_link = vue.resolveComponent("router-link");
91
142
  return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
92
- vue.createVNode(SectionPageTitle.default, {
93
- title: "Members",
94
- "onUpdate:tabs_current": _cache[0] || (_cache[0] = (update) => tab.value = update),
95
- tabs_current: tab.value,
96
- tabs: [
97
- { name: `Members (${organizations.state.current.numberOfMembers || 0})`, value: "members" },
98
- { name: "Departments", value: "departments" },
99
- { name: "Invites", value: "invites" }
100
- ],
101
- actions: [
102
- { method: openMembersAddPopup, label: "Invite members" }
103
- ],
104
- class: "mn-b-small bg-light bg-light radius-medium pd-medium"
105
- }, null, 8, ["tabs_current", "tabs", "actions"]),
106
- vue.createVNode(Popup.default, {
107
- title: "Add members",
108
- onClosePopup: closeMembersAddPopup,
109
- isPopupOpen: isOpenMembersAddPopup.value,
110
- class: "bg-white w-min-30r w-max-30r radius-big pd-medium"
111
- }, {
112
- default: vue.withCtx(() => [
113
- vue.createVNode(MembersAdd.default, {
114
- text: "Please enter your email or phone number to send an invitation link:",
115
- organization: organizationData.value,
116
- onSendInvite: handleSendInvite
117
- }, null, 8, ["organization"])
143
+ !isLoaded.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2, _cache[3] || (_cache[3] = [
144
+ vue.createElementVNode("span", { class: "t-transp" }, "Loading...", -1)
145
+ ]))) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_3, [
146
+ vue.createElementVNode("section", _hoisted_4, [
147
+ vue.createVNode(SectionPageTitle.default, {
148
+ title: `Members ${organizationData.value?.numberOfMembers ? `(${organizationData.value.numberOfMembers})` : ""}`,
149
+ actions: [
150
+ { method: openAddUsersPopup, label: "Add user to organization" }
151
+ ],
152
+ class: "mn-b-small bg-light radius-medium pd-medium"
153
+ }, null, 8, ["title", "actions"]),
154
+ vue.createElementVNode("div", _hoisted_5, [
155
+ vue.createVNode(Feed.default, {
156
+ items: membersList.value,
157
+ "onUpdate:items": _cache[0] || (_cache[0] = ($event) => membersList.value = $event),
158
+ search: true,
159
+ states: {
160
+ empty: {
161
+ title: "No Members Found",
162
+ description: "Currently, there are no members."
163
+ }
164
+ },
165
+ store: {
166
+ read: (options) => vue.unref(memberships_store.default).read(options)
167
+ },
168
+ options: {
169
+ target: vue.unref(route).params._id,
170
+ role: ["member", "owner"]
171
+ },
172
+ class: "gap-thin cols-1"
173
+ }, {
174
+ default: vue.withCtx(({
175
+ items
176
+ }) => [
177
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(items, (member, index) => {
178
+ return vue.openBlock(), vue.createBlock(CardUser.default, {
179
+ key: index,
180
+ user: member,
181
+ _id: member.user._id,
182
+ photo: member.user.profile.photo,
183
+ phone: member.user.phone,
184
+ email: member.user.email,
185
+ name: member.user.profile.name || "No name",
186
+ role: member.label || member.role,
187
+ onClick: ($event) => _ctx.$router.push({ name: "User Profile", params: { _id: member.user._id } }),
188
+ action: member.role !== "owner" ? {
189
+ label: {
190
+ is: IconDelete.default,
191
+ props: { class: "i-medium", fill: "rgb(var(--white)" }
192
+ },
193
+ method: () => removeMember(index, member)
194
+ } : null,
195
+ class: "h-4r w-100 bg-light radius-medium flex-nowrap flex pd-medium"
196
+ }, null, 8, ["user", "_id", "photo", "phone", "email", "name", "role", "onClick", "action"]);
197
+ }), 128))
198
+ ]),
199
+ _: 1
200
+ }, 8, ["items", "store", "options"])
201
+ ])
118
202
  ]),
119
- _: 1
120
- }, 8, ["isPopupOpen"]),
121
- tab.value === "departments" ? (vue.openBlock(), vue.createBlock(Feed.default, {
122
- key: 0,
123
- states: {
124
- empty: {
125
- title: "No Departments Found",
126
- description: "Currently, there are no departments available.",
127
- action: "Add department",
128
- callback: () => _ctx.$router.push(`/organizations/${vue.unref(route).params._id}/departments/create`)
129
- }
130
- },
131
- store: {
132
- read: (options) => departments.actions.read(options),
133
- state: null
134
- },
135
- options: {
136
- organization: vue.unref(route).params._id,
137
- user: auth.state.user._id
138
- }
139
- }, {
140
- default: vue.withCtx(({
141
- items
142
- }) => [
143
- (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(items, (department, index) => {
144
- return vue.openBlock(), vue.createBlock(CardDepartment.default, {
145
- key: index,
146
- department,
203
+ vue.createElementVNode("section", _hoisted_6, [
204
+ vue.createVNode(SectionPageTitle.default, {
205
+ title: "Departments",
206
+ actions: [
207
+ { method: () => openDepartmentPopup(), label: "Add department" }
208
+ ],
209
+ class: "mn-b-small bg-light bg-light radius-medium pd-medium"
210
+ }, null, 8, ["actions"]),
211
+ vue.createVNode(Feed.default, {
212
+ items: departmentsList.value,
213
+ "onUpdate:items": _cache[1] || (_cache[1] = ($event) => departmentsList.value = $event),
214
+ states: {
215
+ empty: {
216
+ title: "No Departments Found",
217
+ description: "Currently, there are no departments available."
218
+ }
219
+ },
220
+ store: vue.unref(departments_store.default),
221
+ options: {
147
222
  organization: vue.unref(route).params._id,
148
- class: "radius-semi bg-light pos-relative mn-b-thin"
149
- }, null, 8, ["department", "organization"]);
150
- }), 128))
151
- ]),
152
- _: 1
153
- }, 8, ["states", "store", "options"])) : vue.createCommentVNode("", true),
154
- tab.value === "departments" && departments.state.departments.length > 0 ? (vue.openBlock(), vue.createBlock(_component_router_link, {
155
- key: 1,
156
- to: {
157
- path: `/organizations/${vue.unref(route).params._id}/departments/create`
158
- },
159
- class: "d-block flex-center flex uppercase t-semi bg-main w-100 pd-small radius-extra"
160
- }, {
161
- default: vue.withCtx(() => _cache[2] || (_cache[2] = [
162
- vue.createTextVNode(" Add department ")
163
- ])),
164
- _: 1
165
- }, 8, ["to"])) : vue.createCommentVNode("", true),
166
- tab.value === "members" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2, [
167
- vue.createVNode(Feed.default, {
168
- search: true,
169
- states: {
170
- empty: {
171
- title: "No Members Found",
172
- description: "Currently, there are no members."
223
+ user: auth.state.user._id
173
224
  }
174
- },
175
- store: {
176
- read: (options) => memberships.actions.read(options)
177
- },
178
- options: {
179
- target: vue.unref(route).params._id,
180
- role: ["member", "owner"]
181
- },
182
- class: "gap-thin cols-1"
183
- }, {
184
- default: vue.withCtx(({
185
- items
186
- }) => [
187
- (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(items, (member, index) => {
188
- return vue.openBlock(), vue.createBlock(CardUser.default, {
189
- key: index,
190
- user: member,
191
- _id: member.user._id,
192
- photo: member.user.profile.photo,
193
- phone: member.user.phone,
194
- email: member.user.email,
195
- name: member.user.profile.name || "No name",
196
- role: member.label || member.role,
197
- onClick: ($event) => _ctx.$router.push(`/profile/${member.user._id}`),
198
- action: member.role !== "owner" ? {
199
- label: {
200
- is: IconDelete.default,
201
- props: { class: "i-medium", fill: "rgb(var(--white)" }
225
+ }, {
226
+ default: vue.withCtx(({
227
+ items
228
+ }) => [
229
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(items, (department, index) => {
230
+ return vue.openBlock(), vue.createElementBlock("div", {
231
+ key: department._id,
232
+ onClick: () => openDepartmentPopup(department),
233
+ class: "cursor-pointer hover-scale-1"
234
+ }, [
235
+ vue.createVNode(CardDepartment.default, {
236
+ department,
237
+ organization: vue.unref(route).params._id,
238
+ class: "radius-semi bg-light pos-relative mn-b-thin"
239
+ }, null, 8, ["department", "organization"])
240
+ ], 8, _hoisted_7);
241
+ }), 128))
242
+ ]),
243
+ _: 1
244
+ }, 8, ["items", "store", "options"])
245
+ ]),
246
+ vue.createElementVNode("section", null, [
247
+ vue.createVNode(SectionPageTitle.default, {
248
+ title: "Invites",
249
+ actions: [
250
+ { method: openInvitePopup, label: "Invite members" }
251
+ ],
252
+ class: "mn-b-small bg-light bg-light radius-medium pd-medium"
253
+ }, null, 8, ["actions"]),
254
+ vue.createVNode(Feed.default, {
255
+ items: invitesList.value,
256
+ "onUpdate:items": _cache[2] || (_cache[2] = ($event) => invitesList.value = $event),
257
+ states: {
258
+ empty: {
259
+ title: "No Invites Found",
260
+ description: "Currently, there are no pending invites."
261
+ }
262
+ },
263
+ store: {
264
+ read: (options) => vue.unref(invites_store.default).read(options)
265
+ },
266
+ options: {
267
+ owner: vue.unref(route).params._id
268
+ },
269
+ class: "gap-thin cols-1"
270
+ }, {
271
+ default: vue.withCtx(({
272
+ items
273
+ }) => [
274
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(items, (invite, index) => {
275
+ return vue.openBlock(), vue.createBlock(CardUser.default, {
276
+ key: invite._id,
277
+ user: { type: "invite" },
278
+ name: invite.email || invite.phone,
279
+ role: invite.status,
280
+ action: {
281
+ label: {
282
+ is: IconDelete.default,
283
+ props: { class: "i-medium", fill: "rgb(var(--white)" }
284
+ },
285
+ method: () => removeInvite(index, invite)
202
286
  },
203
- method: () => removeMember(index, member)
204
- } : null,
205
- class: "h-4r w-100 bg-light radius-medium flex-nowrap flex pd-medium"
206
- }, null, 8, ["user", "_id", "photo", "phone", "email", "name", "role", "onClick", "action"]);
207
- }), 128))
287
+ class: "h-4r w-100 bg-light radius-medium flex-nowrap flex pd-medium"
288
+ }, null, 8, ["name", "role", "action"]);
289
+ }), 128))
290
+ ]),
291
+ _: 1
292
+ }, 8, ["items", "store", "options"])
293
+ ]),
294
+ vue.createVNode(Popup.default, {
295
+ title: "Invite members",
296
+ onClosePopup: closeInvitePopup,
297
+ isPopupOpen: isOpenInvitePopup.value,
298
+ class: "bg-white w-min-30r w-max-30r radius-medium pd-medium"
299
+ }, {
300
+ default: vue.withCtx(() => [
301
+ organizationData.value ? (vue.openBlock(), vue.createBlock(InviteForm.default, {
302
+ key: 0,
303
+ organization: organizationData.value,
304
+ onSendInvite: handleSendInvite
305
+ }, null, 8, ["organization"])) : vue.createCommentVNode("", true)
208
306
  ]),
209
307
  _: 1
210
- }, 8, ["store", "options"])
211
- ])) : vue.createCommentVNode("", true),
212
- tab.value === "invites" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3, [
213
- vue.createVNode(Feed.default, {
214
- items: invitesState.value,
215
- "onUpdate:items": _cache[1] || (_cache[1] = ($event) => invitesState.value = $event),
216
- states: {
217
- empty: {
218
- title: "No Invites Found",
219
- description: "Currently, there are no members."
220
- }
221
- },
222
- store: {
223
- read: (options) => invites.actions.read(options)
224
- },
225
- options: {
226
- owner: vue.unref(route).params._id
227
- },
228
- class: "gap-thin cols-1"
308
+ }, 8, ["isPopupOpen"]),
309
+ vue.createVNode(Popup.default, {
310
+ title: "Add users to organization",
311
+ onClosePopup: closeAddUsersPopup,
312
+ isPopupOpen: isOpenAddUsersPopup.value,
313
+ class: "bg-white w-min-40r w-max-50r radius-medium pd-medium"
229
314
  }, {
230
- default: vue.withCtx(({
231
- items
232
- }) => [
233
- (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(items, (invite) => {
234
- return vue.openBlock(), vue.createBlock(CardUser.default, {
235
- key: _ctx.index,
236
- user: { type: "invite" },
237
- name: invite.email || invite.phone,
238
- role: invite.status,
239
- action: {
240
- label: {
241
- is: IconDelete.default,
242
- props: { class: "i-medium", fill: "rgb(var(--white)" }
243
- },
244
- method: () => removeInvite(_ctx.index, invite)
245
- },
246
- class: "h-4r w-100 bg-light radius-big flex-nowrap flex pd-medium"
247
- }, null, 8, ["name", "role", "action"]);
248
- }), 128))
315
+ default: vue.withCtx(() => [
316
+ vue.createVNode(AddExistingMembersForm.default, {
317
+ organizationId: vue.unref(route).params._id,
318
+ onUsersAdded: handleUsersAdded
319
+ }, null, 8, ["organizationId"])
320
+ ]),
321
+ _: 1
322
+ }, 8, ["isPopupOpen"]),
323
+ vue.createVNode(Popup.default, {
324
+ title: editingDepartment.value ? "Edit Department" : "Create Department",
325
+ onClosePopup: closeDepartmentPopup,
326
+ isPopupOpen: isDepartmentPopupOpen.value,
327
+ align: "center right",
328
+ class: "bg-white h-min-100 w-max-50r pd-medium"
329
+ }, {
330
+ default: vue.withCtx(() => [
331
+ vue.createVNode(DepartmentForm.default, {
332
+ department: editingDepartment.value,
333
+ organizationId: vue.unref(route).params._id,
334
+ onClose: closeDepartmentPopup,
335
+ onSaved: handleDepartmentSaved
336
+ }, null, 8, ["department", "organizationId"])
249
337
  ]),
250
338
  _: 1
251
- }, 8, ["items", "store", "options"])
252
- ])) : vue.createCommentVNode("", true)
339
+ }, 8, ["title", "isPopupOpen"])
340
+ ]))
253
341
  ]);
254
342
  };
255
343
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Members.vue.cjs","sources":["../../../../../../../src/modules/organizations/components/pages/Members.vue"],"sourcesContent":["<template>\n <div class=\"pd-thin\">\n <SectionPageTitle\n title=\"Members\"\n @update:tabs_current=\"(update) => tab = update\"\n :tabs_current=\"tab\"\n :tabs=\"[\n { name: `Members (${organization.state.current.numberOfMembers || 0})`, value: 'members' },\n { name: 'Departments', value: 'departments' },\n { name: 'Invites', value: 'invites' }\n ]\"\n :actions=\"[\n { method: openMembersAddPopup, label: 'Invite members' }\n ]\"\n class=\"mn-b-small bg-light bg-light radius-medium pd-medium\"\n />\n\n <Popup \n title=\"Add members\"\n @close-popup=\"closeMembersAddPopup\" \n :isPopupOpen=\"isOpenMembersAddPopup\"\n class=\"bg-white w-min-30r w-max-30r radius-big pd-medium\"\n >\n <MembersAdd \n text=\"Please enter your email or phone number to send an invitation link:\"\n :organization=\"organizationData\"\n @send-invite=\"handleSendInvite\"\n />\n </Popup> \n\n <Feed\n v-if=\"tab === 'departments'\"\n :states=\"{\n empty: {\n title: 'No Departments Found',\n description: 'Currently, there are no departments available.',\n action: 'Add department',\n callback: () => $router.push(`/organizations/${route.params._id}/departments/create`)\n }\n }\"\n :store=\"{\n read: (options) => departments.actions.read(options),\n state: null\n }\"\n :options=\"{\n organization: route.params._id,\n user: auth.state.user._id,\n }\"\n v-slot=\"{ \n items \n }\"\n >\n <CardDepartment\n v-for=\"(department, index) in items\"\n :key=\"index\"\n :department=\"department\"\n :organization=\"route.params._id\"\n class=\"radius-semi bg-light pos-relative mn-b-thin\"\n />\n\n </Feed>\n\n <router-link\n v-if=\"tab === 'departments' && departments.state.departments.length > 0\"\n :to=\"{\n path: `/organizations/${route.params._id}/departments/create`\n }\"\n class=\"d-block flex-center flex uppercase t-semi bg-main w-100 pd-small radius-extra\"\n >\n Add department\n </router-link>\n\n <!-- Members -->\n <div \n v-if=\"tab === 'members'\"\n class=\"cols-1 gap-thin\"\n >\n <Feed\n :search=\"true\"\n :states=\"{\n empty: {\n title: 'No Members Found',\n description: 'Currently, there are no members.'\n },\n }\"\n :store=\"{\n read: (options) => memberships.actions.read(options)\n }\"\n :options=\"{\n target: route.params._id,\n role: ['member','owner']\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"gap-thin cols-1\"\n >\n <CardUser \n v-for=\"(member,index) in items\" \n :key=\"index\" \n :user=\"member\"\n :_id=\"member.user._id\"\n :photo=\"member.user.profile.photo\" \n :phone=\"member.user.phone\"\n :email=\"member.user.email\"\n :name=\"member.user.profile.name || 'No name'\"\n :role=\"member.label || member.role\"\n @click=\"$router.push(`/profile/${member.user._id}`)\" \n :action=\" member.role !== 'owner' ? {\n label: {\n is: IconDelete,\n props: { class: 'i-medium', fill: 'rgb(var(--white)' }\n },\n method: () => removeMember(index, member)\n } : null\"\n class=\"h-4r w-100 bg-light radius-medium flex-nowrap flex pd-medium\"\n />\n </Feed>\n </div>\n <!-- Invites -->\n <div \n v-if=\"tab === 'invites'\"\n > \n <Feed\n v-model:items=\"invitesState\"\n :states=\"{\n empty: {\n title: 'No Invites Found',\n description: 'Currently, there are no members.'\n }\n }\"\n :store=\"{\n read: (options) => invites.actions.read(options)\n }\"\n :options=\"{\n owner: route.params._id\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"gap-thin cols-1\"\n >\n <CardUser \n v-for=\"invite in items\" \n :key=\"index\" \n :user=\"{ type: 'invite'} \"\n :name=\"invite.email || invite.phone\"\n :role=\"invite.status\"\n :action=\"{\n label: {\n is: IconDelete,\n props: { class: 'i-medium', fill: 'rgb(var(--white)' }\n },\n method: () => removeInvite(index, invite)\n }\"\n class=\"h-4r w-100 bg-light radius-big flex-nowrap flex pd-medium\"\n />\n </Feed>\n </div>\n \n </div>\n</template>\n\n<script setup>\nimport { ref, computed, onMounted } from 'vue';\nimport { useRoute, useRouter } from 'vue-router'\n\nimport Feed from '@martyrs/src/components/Feed/Feed.vue'\nimport Tab from '@martyrs/src/components/Tab/Tab.vue'\nimport Block from '@martyrs/src/components/Block/Block.vue'\nimport Popup from '@martyrs/src/components/Popup/Popup.vue';\n\nimport SectionPageTitle from '@martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue'\nimport PlaceholderUserpic from '@martyrs/src/modules/icons/placeholders/PlaceholderUserpic.vue'\n\nimport MembersAdd from '@martyrs/src/modules/organizations/components/sections/MembersAdd.vue';\n\n// Mobile Module\nimport Menu from '@martyrs/src/components/Menu/Menu.vue'\nimport MenuItem from '@martyrs/src/components/Menu/MenuItem.vue'\n\nimport CardUser from '@martyrs/src/modules/auth/views/components/blocks/CardUser.vue';\nimport CardDepartment from '@martyrs/src/modules/organizations/components/blocks/CardDepartment.vue';\n\nimport IconDelete from '@martyrs/src/modules/icons/navigation/IconDelete.vue'\n\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\nimport * as globals from '@martyrs/src/modules/globals/views/store/globals.js'\nimport * as invites from '@martyrs/src/modules/organizations/store/invites.js';\nimport * as memberships from '@martyrs/src/modules/organizations/store/memberships.js';\nimport * as organization from '@martyrs/src/modules/organizations/store/organizations.js'\nimport * as departments from '@martyrs/src/modules/organizations/store/departments.js';\n\nconst route = useRoute()\nconst router = useRouter()\nconst organizationData = ref(null)\n\n// Tab logic\nconst tab = ref('members')\n// States\nconst invitesState = ref([])\n// Popup\nconst isOpenMembersAddPopup = ref(false);\n\nfunction openMembersAddPopup() {\n isOpenMembersAddPopup.value = true;\n}\n\nfunction closeMembersAddPopup() {\n isOpenMembersAddPopup.value = false;\n}\n\nonMounted(async () => {\n organizationData.value = (await organization.actions.read({_id: route.params._id, user: auth.state.user._id}))[0]\n ;\n})\n\nconst FirstLevelDepartments = computed(() => {\n const departmentsState = departments.state.departments;\n\n const subdepartmentIds = departmentsState.flatMap(department =>\n department.subdepartments.map(subdepartment => subdepartment._id)\n );\n\n return departmentsState.filter(department =>\n !subdepartmentIds.includes(department._id)\n );\n});\n\nasync function handleSendInvite(list, resolve, reject) {\n try {\n const response = await invites.actions.create({\n owner: {\n type: 'Organization',\n target: organizationData.value._id\n },\n creator: {\n type: 'User',\n target: auth.state.user._id\n },\n invites: list,\n });\n for (let invite of response.createdInvites) {\n globals.actions.add(invitesState.value, invite)\n }\n closeMembersAddPopup();\n resolve(); // Вызываем resolve, когда все операции завершены успешно\n } catch (error) {\n reject(error); // Вызываем reject, если произошла ошибка\n }\n}\n\nasync function removeMember(index,member) {\n if (confirm(\"Confirm remove of member\") == true) {\n memberships.state.memberships.splice(index, 1);\n await memberships.actions.delete(member);\n } \n}\n\nasync function removeInvite(index,invite) {\n if (confirm(\"Confirm remove of member\") == true) {\n globals.actions.delete(invitesState.value, invite)\n await invites.actions.delete(invite._id);\n }\n}\n</script>\n\n<style scoped>\n</style>\n"],"names":["useRoute","useRouter","ref","onMounted","organization.actions","auth.state","computed","departments.state","invites.actions","globals.actions","memberships.state","memberships.actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiMA,UAAM,QAAUA,UAAAA,SAAQ;AACPC,cAAAA,UAAS;AAC1B,UAAM,mBAAmBC,IAAAA,IAAI,IAAI;AAGjC,UAAM,MAAMA,IAAAA,IAAI,SAAS;AAEzB,UAAM,eAAeA,IAAAA,IAAI,CAAA,CAAE;AAE3B,UAAM,wBAAwBA,IAAAA,IAAI,KAAK;AAEvC,aAAS,sBAAsB;AAC7B,4BAAsB,QAAQ;AAAA,IAChC;AAEA,aAAS,uBAAuB;AAC9B,4BAAsB,QAAQ;AAAA,IAChC;AAEAC,QAAAA,UAAU,YAAY;AACpB,uBAAiB,SAAS,MAAMC,cAAAA,QAAqB,KAAK,EAAC,KAAK,MAAM,OAAO,KAAK,MAAMC,KAAAA,MAAW,KAAK,IAAG,CAAC,GAAG,CAAC;AAAA,IAElH,CAAC;AAE6BC,QAAAA,SAAS,MAAM;AAC3C,YAAM,mBAAmBC,YAAAA,MAAkB;AAE3C,YAAM,mBAAmB,iBAAiB;AAAA,QAAQ,gBAChD,WAAW,eAAe,IAAI,mBAAiB,cAAc,GAAG;AAAA,MACpE;AAEE,aAAO,iBAAiB;AAAA,QAAO,gBAC7B,CAAC,iBAAiB,SAAS,WAAW,GAAG;AAAA,MAC7C;AAAA,IACA,CAAC;AAED,mBAAe,iBAAiB,MAAM,SAAS,QAAQ;AACrD,UAAI;AACF,cAAM,WAAW,MAAMC,QAAAA,QAAgB,OAAO;AAAA,UAC5C,OAAO;AAAA,YACL,MAAM;AAAA,YACN,QAAQ,iBAAiB,MAAM;AAAA,UACvC;AAAA,UACM,SAAS;AAAA,YACP,MAAM;AAAA,YACN,QAAQH,KAAAA,MAAW,KAAK;AAAA,UAChC;AAAA,UACM,SAAS;AAAA,QACf,CAAK;AACD,iBAAS,UAAU,SAAS,gBAAgB;AAC1CI,kBAAAA,QAAgB,IAAI,aAAa,OAAO,MAAM;AAAA,QAChD;AACA,6BAAoB;AACpB;MACF,SAAS,OAAO;AACd,eAAO,KAAK;AAAA,MACd;AAAA,IACF;AAEA,mBAAe,aAAa,OAAM,QAAQ;AACxC,UAAI,QAAQ,0BAA0B,KAAK,MAAM;AAC/CC,oBAAAA,MAAkB,YAAY,OAAO,OAAO,CAAC;AAC7C,cAAMC,YAAAA,QAAoB,OAAO,MAAM;AAAA,MACzC;AAAA,IACF;AAEA,mBAAe,aAAa,OAAM,QAAQ;AACxC,UAAI,QAAQ,0BAA0B,KAAK,MAAM;AAC/CF,gBAAAA,QAAgB,OAAO,aAAa,OAAO,MAAM;AACjD,cAAMD,gBAAgB,OAAO,OAAO,GAAG;AAAA,MACzC;AAAA,IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Members.vue.cjs","sources":["../../../../../../../src/modules/organizations/components/pages/Members.vue"],"sourcesContent":["<template>\n <div class=\"pd-thin\">\n <div v-if=\"!isLoaded\" class=\"flex-center flex h-20r\">\n <span class=\"t-transp\">Loading...</span>\n </div>\n <div v-else>\n <!-- Members Section -->\n <section class=\"mn-b-medium\">\n <SectionPageTitle\n :title=\"`Members ${organizationData?.numberOfMembers ? `(${organizationData.numberOfMembers})` : ''}`\"\n :actions=\"[\n { method: openAddUsersPopup, label: 'Add user to organization' }\n ]\"\n class=\"mn-b-small bg-light radius-medium pd-medium\"\n />\n\n <div class=\"cols-1 gap-thin\">\n <Feed\n v-model:items=\"membersList\"\n :search=\"true\"\n :states=\"{\n empty: {\n title: 'No Members Found',\n description: 'Currently, there are no members.'\n },\n }\"\n :store=\"{\n read: (options) => membershipsStore.read(options)\n }\"\n :options=\"{\n target: route.params._id,\n role: ['member','owner']\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"gap-thin cols-1\"\n >\n <CardUser \n v-for=\"(member,index) in items\" \n :key=\"index\" \n :user=\"member\"\n :_id=\"member.user._id\"\n :photo=\"member.user.profile.photo\" \n :phone=\"member.user.phone\"\n :email=\"member.user.email\"\n :name=\"member.user.profile.name || 'No name'\"\n :role=\"member.label || member.role\"\n @click=\"$router.push({ name: 'User Profile', params: { _id: member.user._id } })\" \n :action=\" member.role !== 'owner' ? {\n label: {\n is: IconDelete,\n props: { class: 'i-medium', fill: 'rgb(var(--white)' }\n },\n method: () => removeMember(index, member)\n } : null\"\n class=\"h-4r w-100 bg-light radius-medium flex-nowrap flex pd-medium\"\n />\n </Feed>\n </div>\n </section>\n\n <!-- Departments Section -->\n <section class=\"mn-b-medium\">\n <SectionPageTitle\n title=\"Departments\"\n :actions=\"[\n { method: () => openDepartmentPopup(), label: 'Add department' }\n ]\"\n class=\"mn-b-small bg-light bg-light radius-medium pd-medium\"\n />\n\n <Feed\n v-model:items=\"departmentsList\"\n :states=\"{\n empty: {\n title: 'No Departments Found',\n description: 'Currently, there are no departments available.'\n }\n }\"\n :store=\"departmentsStore\"\n :options=\"{\n organization: route.params._id,\n user: auth.state.user._id,\n }\"\n v-slot=\"{ \n items \n }\"\n >\n <div\n v-for=\"(department, index) in items\"\n :key=\"department._id\"\n @click=\"() => openDepartmentPopup(department)\"\n class=\"cursor-pointer hover-scale-1\"\n >\n <CardDepartment\n :department=\"department\"\n :organization=\"route.params._id\"\n class=\"radius-semi bg-light pos-relative mn-b-thin\"\n />\n </div>\n </Feed>\n </section>\n\n <!-- Invites Section -->\n <section>\n <SectionPageTitle\n title=\"Invites\"\n :actions=\"[\n { method: openInvitePopup, label: 'Invite members' }\n ]\"\n class=\"mn-b-small bg-light bg-light radius-medium pd-medium\"\n />\n\n <Feed\n v-model:items=\"invitesList\"\n :states=\"{\n empty: {\n title: 'No Invites Found',\n description: 'Currently, there are no pending invites.'\n }\n }\"\n :store=\"{\n read: (options) => invitesStore.read(options)\n }\"\n :options=\"{\n owner: route.params._id\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"gap-thin cols-1\"\n >\n <CardUser \n v-for=\"(invite, index) in items\" \n :key=\"invite._id\" \n :user=\"{ type: 'invite'} \"\n :name=\"invite.email || invite.phone\"\n :role=\"invite.status\"\n :action=\"{\n label: {\n is: IconDelete,\n props: { class: 'i-medium', fill: 'rgb(var(--white)' }\n },\n method: () => removeInvite(index, invite)\n }\"\n class=\"h-4r w-100 bg-light radius-medium flex-nowrap flex pd-medium\"\n />\n </Feed>\n </section>\n\n <!-- Invite Members Popup -->\n <Popup \n title=\"Invite members\"\n @close-popup=\"closeInvitePopup\" \n :isPopupOpen=\"isOpenInvitePopup\"\n class=\"bg-white w-min-30r w-max-30r radius-medium pd-medium\"\n >\n <InviteForm \n v-if=\"organizationData\"\n :organization=\"organizationData\"\n @send-invite=\"handleSendInvite\"\n />\n </Popup>\n\n <!-- Add Existing Users Popup -->\n <Popup \n title=\"Add users to organization\"\n @close-popup=\"closeAddUsersPopup\" \n :isPopupOpen=\"isOpenAddUsersPopup\"\n class=\"bg-white w-min-40r w-max-50r radius-medium pd-medium\"\n >\n <AddExistingMembersForm \n :organizationId=\"route.params._id\"\n @users-added=\"handleUsersAdded\"\n />\n </Popup>\n\n <!-- Department Edit Popup -->\n <Popup\n :title=\"editingDepartment ? 'Edit Department' : 'Create Department'\"\n @close-popup=\"closeDepartmentPopup\"\n :isPopupOpen=\"isDepartmentPopupOpen\"\n align=\"center right\"\n class=\"bg-white h-min-100 w-max-50r pd-medium\"\n >\n <DepartmentForm\n :department=\"editingDepartment\"\n :organizationId=\"route.params._id\"\n @close=\"closeDepartmentPopup\"\n @saved=\"handleDepartmentSaved\"\n />\n </Popup>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed, onMounted } from 'vue';\nimport { useRoute, useRouter } from 'vue-router';\n\nimport Feed from '@martyrs/src/components/Feed/Feed.vue';\nimport Popup from '@martyrs/src/components/Popup/Popup.vue';\n\nimport SectionPageTitle from '@martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue';\n\nimport InviteForm from '@martyrs/src/modules/organizations/components/forms/InviteForm.vue';\nimport AddExistingMembersForm from '@martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue';\nimport DepartmentForm from '@martyrs/src/modules/organizations/components/forms/DepartmentForm.vue';\n\nimport CardUser from '@martyrs/src/modules/auth/views/components/blocks/CardUser.vue';\nimport CardDepartment from '@martyrs/src/modules/organizations/components/blocks/CardDepartment.vue';\n\nimport IconDelete from '@martyrs/src/modules/icons/navigation/IconDelete.vue';\n\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\nimport * as globals from '@martyrs/src/modules/globals/views/store/globals.js';\nimport * as organization from '@martyrs/src/modules/organizations/store/organizations.js';\nimport departmentsStore from '@martyrs/src/modules/organizations/store/departments.store.js';\nimport membershipsStore from '@martyrs/src/modules/organizations/store/memberships.store.js';\nimport invitesStore from '@martyrs/src/modules/organizations/store/invites.store.js';\n\nconst route = useRoute();\nconst router = useRouter();\n\n// Data\nconst organizationData = ref(null);\nconst membersList = ref([]);\nconst invitesList = ref([]);\nconst departmentsList = ref([]);\nconst isLoaded = ref(false);\n\n// Popups state\nconst isOpenInvitePopup = ref(false);\nconst isOpenAddUsersPopup = ref(false);\nconst isDepartmentPopupOpen = ref(false);\nconst editingDepartment = ref(null);\n\n// Popup functions\nfunction openInvitePopup() {\n isOpenInvitePopup.value = true;\n}\n\nfunction closeInvitePopup() {\n isOpenInvitePopup.value = false;\n}\n\nfunction openAddUsersPopup() {\n isOpenAddUsersPopup.value = true;\n}\n\nfunction closeAddUsersPopup() {\n isOpenAddUsersPopup.value = false;\n}\n\nfunction openDepartmentPopup(department = null) {\n editingDepartment.value = department;\n isDepartmentPopupOpen.value = true;\n}\n\nfunction closeDepartmentPopup() {\n isDepartmentPopupOpen.value = false;\n editingDepartment.value = null;\n}\n\n// Load organization data\nonMounted(async () => {\n try {\n const response = await organization.actions.read({\n _id: route.params._id, \n user: auth.state.user._id\n });\n organizationData.value = response[0];\n isLoaded.value = true;\n } catch (error) {\n console.error('Error loading organization:', error);\n isLoaded.value = true; // Still show the page even if organization load fails\n }\n});\n\n// Handlers\nasync function handleSendInvite(list, resolve, reject) {\n try {\n const response = await invitesStore.create({\n owner: {\n type: 'Organization',\n target: organizationData.value._id\n },\n creator: {\n type: 'User',\n target: auth.state.user._id\n },\n invites: list,\n });\n \n // Assuming the API returns an array of created invites\n if (response.createdInvites) {\n for (let invite of response.createdInvites) {\n invitesStore.addItem(invite, invitesList.value);\n }\n } else if (response._id) {\n // Single invite created\n invitesStore.addItem(response, invitesList.value);\n }\n \n closeInvitePopup();\n resolve();\n } catch (error) {\n reject(error);\n }\n}\n\nfunction handleUsersAdded(addedUsers) {\n closeAddUsersPopup();\n // Add new members to the list\n if (addedUsers && addedUsers.length > 0) {\n addedUsers.forEach(membership => {\n membershipsStore.addItem(membership, membersList.value);\n });\n }\n}\n\nfunction handleDepartmentSaved(department) {\n closeDepartmentPopup();\n \n console.log('handleDepartmentSaved called with:', department);\n console.log('departmentsList before update:', departmentsList.value);\n console.log('editingDepartment:', editingDepartment.value);\n \n if (department) {\n // Update or add department in the list\n if (editingDepartment.value) {\n departmentsStore.updateItem(department, departmentsList.value);\n } else {\n departmentsStore.addItem(department, departmentsList.value);\n }\n } else {\n // Department was deleted\n if (editingDepartment.value) {\n departmentsStore.removeItem(editingDepartment.value, departmentsList.value);\n }\n }\n \n console.log('departmentsList after update:', departmentsList.value);\n}\n\nasync function removeMember(index, member) {\n if (confirm(\"Confirm remove of member\") == true) {\n await membershipsStore.delete(member);\n membershipsStore.removeItem(member, membersList.value);\n } \n}\n\nasync function removeInvite(index, invite) {\n if (confirm(\"Confirm remove of invite\") == true) {\n await invitesStore.delete(invite);\n invitesStore.removeItem(invite, invitesList.value);\n }\n}\n</script>\n\n<style scoped>\n</style>"],"names":["useRoute","useRouter","ref","onMounted","organization.actions","auth.state","invitesStore","membershipsStore","departmentsStore"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8NA,UAAM,QAAQA,UAAAA,SAAQ;AACPC,cAAAA,UAAS;AAGxB,UAAM,mBAAmBC,IAAAA,IAAI,IAAI;AACjC,UAAM,cAAcA,IAAAA,IAAI,EAAE;AAC1B,UAAM,cAAcA,IAAAA,IAAI,EAAE;AAC1B,UAAM,kBAAkBA,IAAAA,IAAI,EAAE;AAC9B,UAAM,WAAWA,IAAAA,IAAI,KAAK;AAG1B,UAAM,oBAAoBA,IAAAA,IAAI,KAAK;AACnC,UAAM,sBAAsBA,IAAAA,IAAI,KAAK;AACrC,UAAM,wBAAwBA,IAAAA,IAAI,KAAK;AACvC,UAAM,oBAAoBA,IAAAA,IAAI,IAAI;AAGlC,aAAS,kBAAkB;AACzB,wBAAkB,QAAQ;AAAA,IAC5B;AAEA,aAAS,mBAAmB;AAC1B,wBAAkB,QAAQ;AAAA,IAC5B;AAEA,aAAS,oBAAoB;AAC3B,0BAAoB,QAAQ;AAAA,IAC9B;AAEA,aAAS,qBAAqB;AAC5B,0BAAoB,QAAQ;AAAA,IAC9B;AAEA,aAAS,oBAAoB,aAAa,MAAM;AAC9C,wBAAkB,QAAQ;AAC1B,4BAAsB,QAAQ;AAAA,IAChC;AAEA,aAAS,uBAAuB;AAC9B,4BAAsB,QAAQ;AAC9B,wBAAkB,QAAQ;AAAA,IAC5B;AAGAC,QAAAA,UAAU,YAAY;AACpB,UAAI;AACF,cAAM,WAAW,MAAMC,cAAAA,QAAqB,KAAK;AAAA,UAC/C,KAAK,MAAM,OAAO;AAAA,UAClB,MAAMC,KAAAA,MAAW,KAAK;AAAA,QAC5B,CAAK;AACD,yBAAiB,QAAQ,SAAS,CAAC;AACnC,iBAAS,QAAQ;AAAA,MACnB,SAAS,OAAO;AACd,gBAAQ,MAAM,+BAA+B,KAAK;AAClD,iBAAS,QAAQ;AAAA,MACnB;AAAA,IACF,CAAC;AAGD,mBAAe,iBAAiB,MAAM,SAAS,QAAQ;AACrD,UAAI;AACF,cAAM,WAAW,MAAMC,cAAAA,QAAa,OAAO;AAAA,UACzC,OAAO;AAAA,YACL,MAAM;AAAA,YACN,QAAQ,iBAAiB,MAAM;AAAA,UACvC;AAAA,UACM,SAAS;AAAA,YACP,MAAM;AAAA,YACN,QAAQD,KAAAA,MAAW,KAAK;AAAA,UAChC;AAAA,UACM,SAAS;AAAA,QACf,CAAK;AAGD,YAAI,SAAS,gBAAgB;AAC3B,mBAAS,UAAU,SAAS,gBAAgB;AAC1CC,0BAAAA,QAAa,QAAQ,QAAQ,YAAY,KAAK;AAAA,UAChD;AAAA,QACF,WAAW,SAAS,KAAK;AAEvBA,wBAAAA,QAAa,QAAQ,UAAU,YAAY,KAAK;AAAA,QAClD;AAEA,yBAAgB;AAChB,gBAAO;AAAA,MACT,SAAS,OAAO;AACd,eAAO,KAAK;AAAA,MACd;AAAA,IACF;AAEA,aAAS,iBAAiB,YAAY;AACpC,yBAAkB;AAElB,UAAI,cAAc,WAAW,SAAS,GAAG;AACvC,mBAAW,QAAQ,gBAAc;AAC/BC,4BAAAA,QAAiB,QAAQ,YAAY,YAAY,KAAK;AAAA,QACxD,CAAC;AAAA,MACH;AAAA,IACF;AAEA,aAAS,sBAAsB,YAAY;AACzC,2BAAoB;AAEpB,cAAQ,IAAI,sCAAsC,UAAU;AAC5D,cAAQ,IAAI,kCAAkC,gBAAgB,KAAK;AACnE,cAAQ,IAAI,sBAAsB,kBAAkB,KAAK;AAEzD,UAAI,YAAY;AAEd,YAAI,kBAAkB,OAAO;AAC3BC,4BAAAA,QAAiB,WAAW,YAAY,gBAAgB,KAAK;AAAA,QAC/D,OAAO;AACLA,4BAAAA,QAAiB,QAAQ,YAAY,gBAAgB,KAAK;AAAA,QAC5D;AAAA,MACF,OAAO;AAEL,YAAI,kBAAkB,OAAO;AAC3BA,4BAAAA,QAAiB,WAAW,kBAAkB,OAAO,gBAAgB,KAAK;AAAA,QAC5E;AAAA,MACF;AAEA,cAAQ,IAAI,iCAAiC,gBAAgB,KAAK;AAAA,IACpE;AAEA,mBAAe,aAAa,OAAO,QAAQ;AACzC,UAAI,QAAQ,0BAA0B,KAAK,MAAM;AAC/C,cAAMD,kBAAAA,QAAiB,OAAO,MAAM;AACpCA,0BAAAA,QAAiB,WAAW,QAAQ,YAAY,KAAK;AAAA,MACvD;AAAA,IACF;AAEA,mBAAe,aAAa,OAAO,QAAQ;AACzC,UAAI,QAAQ,0BAA0B,KAAK,MAAM;AAC/C,cAAMD,cAAAA,QAAa,OAAO,MAAM;AAChCA,sBAAAA,QAAa,WAAW,QAAQ,YAAY,KAAK;AAAA,MACnD;AAAA,IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}