@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AddExistingMembersForm.vue.cjs","sources":["../../../../../../../src/modules/organizations/components/forms/AddExistingMembersForm.vue"],"sourcesContent":["<template>\n <div>\n <p class=\"mn-b-thin t-transp p-medium\">Select users to add to the organization:</p>\n\n <Feed\n :search=\"{\n placeholder: 'Search users...',\n class: 'bg-light mn-b-thin'\n }\"\n :states=\"{\n empty: {\n title: 'No Users Found',\n description: 'No users match your search criteria.'\n },\n loading: {\n title: 'Loading users...'\n }\n }\"\n :store=\"{\n read: (options) => fetchFilteredUsers(options),\n state: null\n }\"\n :options=\"{}\"\n v-slot=\"{ items }\"\n class=\"bg-light pd-medium radius-medium h-max-30r o-scroll mn-b-thin\"\n >\n <div\n v-for=\"user in items\"\n :key=\"user._id\"\n @click=\"() => toggleUserSelection(user)\"\n class=\"pd-thin radius-medium w-100 mn-b-thin cursor-pointer hover-scale-1\"\n :class=\"getUserCardClass(user)\"\n >\n <div class=\"flex-nowrap flex-v-center flex gap-thin\">\n <div class=\"aspect-1x1 h-3r flex-child-default radius-small o-hidden\">\n <img\n v-if=\"user.profile?.photo\"\n :src=\"user.profile.photo\"\n alt=\"User photo\"\n class=\"w-100 h-100 object-fit-cover\"\n />\n <PlaceholderUserpic v-else class=\"w-100 h-100\" />\n </div>\n \n <div class=\"w-100\">\n <p class=\"t-medium\">{{ user.profile?.name || user.phone || user.email || 'Unnamed user' }}</p>\n <p class=\"t-small t-transp\">{{ user.email || user.phone || 'No contact info' }}</p>\n </div>\n\n <div v-if=\"isUserInOrganization(user)\" class=\"pd-nano pd-h-thin radius-thin bg-grey\">\n <span class=\"t-small\">Already member</span>\n </div>\n \n <div v-else-if=\"isUserSelected(user)\" class=\"pd-nano pd-h-thin radius-thin bg-green\">\n <IconCheck class=\"i-small\" fill=\"rgb(var(--white))\" />\n </div>\n </div>\n </div>\n </Feed>\n\n <div v-if=\"selectedUsers.length > 0\" class=\"mn-b-thin\">\n <p class=\"t-small t-transp\">Selected: {{ selectedUsers.length }} user(s)</p>\n </div>\n\n <Button\n :submit=\"addSelectedUsers\"\n :disabled=\"selectedUsers.length === 0\"\n class=\"w-100 bg-main\"\n >\n Add {{ selectedUsers.length }} user(s) to organization\n </Button>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed } from 'vue';\n\nimport Button from '@martyrs/src/components/Button/Button.vue';\nimport Feed from '@martyrs/src/components/Feed/Feed.vue';\n\nimport PlaceholderUserpic from '@martyrs/src/modules/icons/placeholders/PlaceholderUserpic.vue';\nimport IconCheck from '@martyrs/src/modules/icons/navigation/IconCheck.vue';\n\nimport * as users from '@martyrs/src/modules/auth/views/store/users.js';\nimport membershipsStore from '@martyrs/src/modules/organizations/store/memberships.store.js';\nimport * as globals from '@martyrs/src/modules/globals/views/store/globals.js';\n\nconst props = defineProps({\n organizationId: {\n type: String,\n required: true\n },\n existingMembers: {\n type: Array,\n default: () => []\n }\n});\n\nconst emit = defineEmits(['users-added']);\n\n// State\nconst selectedUsers = ref([]);\nconst organizationMembers = ref([]);\n\n// Check if user is already in organization\nfunction isUserInOrganization(user) {\n return organizationMembers.value.some(member => \n member.user._id === user._id || member.user === user._id\n );\n}\n\n// Check if user is selected\nfunction isUserSelected(user) {\n return selectedUsers.value.some(selected => selected._id === user._id);\n}\n\n// Get card styling based on user status\nfunction getUserCardClass(user) {\n if (isUserInOrganization(user)) {\n return 'bg-grey opacity-60 cursor-not-allowed';\n }\n if (isUserSelected(user)) {\n return 'bg-green-light';\n }\n return 'bg-white hover-bg-light';\n}\n\n// Toggle user selection\nfunction toggleUserSelection(user) {\n if (isUserInOrganization(user)) {\n globals.actions.setError({ message: 'This user is already a member of the organization' });\n return;\n }\n\n const index = selectedUsers.value.findIndex(u => u._id === user._id);\n if (index > -1) {\n selectedUsers.value.splice(index, 1);\n } else {\n selectedUsers.value.push(user);\n }\n}\n\n// Fetch users and organization members\nasync function fetchFilteredUsers(options) {\n try {\n // Fetch organization members\n const membersResponse = await membershipsStore.read({\n target: props.organizationId,\n role: ['member', 'owner']\n });\n organizationMembers.value = membersResponse || [];\n\n // Fetch all users\n const usersResponse = await users.actions.read(options);\n return usersResponse;\n } catch (error) {\n console.error('Error fetching users:', error);\n return [];\n }\n}\n\n// Add selected users to organization\nasync function addSelectedUsers() {\n if (selectedUsers.value.length === 0) return;\n\n try {\n const promises = selectedUsers.value.map(user => \n membershipsStore.create({\n user: user._id,\n type: 'organization',\n target: props.organizationId,\n role: 'member',\n label: 'member'\n })\n );\n\n const results = await Promise.all(promises);\n \n emit('users-added', results);\n selectedUsers.value = [];\n \n globals.actions.setSuccess({ \n message: `Successfully added ${results.length} user(s) to the organization` \n });\n } catch (error) {\n console.error('Error adding users:', error);\n globals.actions.setError(error);\n throw error;\n }\n}\n</script>"],"names":["ref","globals.actions","membershipsStore","users.actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuFA,UAAM,QAAQ;AAWd,UAAM,OAAO;AAGb,UAAM,gBAAgBA,IAAAA,IAAI,EAAE;AAC5B,UAAM,sBAAsBA,IAAAA,IAAI,EAAE;AAGlC,aAAS,qBAAqB,MAAM;AAClC,aAAO,oBAAoB,MAAM;AAAA,QAAK,YACpC,OAAO,KAAK,QAAQ,KAAK,OAAO,OAAO,SAAS,KAAK;AAAA,MACzD;AAAA,IACA;AAGA,aAAS,eAAe,MAAM;AAC5B,aAAO,cAAc,MAAM,KAAK,cAAY,SAAS,QAAQ,KAAK,GAAG;AAAA,IACvE;AAGA,aAAS,iBAAiB,MAAM;AAC9B,UAAI,qBAAqB,IAAI,GAAG;AAC9B,eAAO;AAAA,MACT;AACA,UAAI,eAAe,IAAI,GAAG;AACxB,eAAO;AAAA,MACT;AACA,aAAO;AAAA,IACT;AAGA,aAAS,oBAAoB,MAAM;AACjC,UAAI,qBAAqB,IAAI,GAAG;AAC9BC,gBAAAA,QAAgB,SAAS,EAAE,SAAS,oDAAmD,CAAE;AACzF;AAAA,MACF;AAEA,YAAM,QAAQ,cAAc,MAAM,UAAU,OAAK,EAAE,QAAQ,KAAK,GAAG;AACnE,UAAI,QAAQ,IAAI;AACd,sBAAc,MAAM,OAAO,OAAO,CAAC;AAAA,MACrC,OAAO;AACL,sBAAc,MAAM,KAAK,IAAI;AAAA,MAC/B;AAAA,IACF;AAGA,mBAAe,mBAAmB,SAAS;AACzC,UAAI;AAEF,cAAM,kBAAkB,MAAMC,kBAAAA,QAAiB,KAAK;AAAA,UAClD,QAAQ,MAAM;AAAA,UACd,MAAM,CAAC,UAAU,OAAO;AAAA,QAC9B,CAAK;AACD,4BAAoB,QAAQ,mBAAmB,CAAA;AAG/C,cAAM,gBAAgB,MAAMC,cAAc,KAAK,OAAO;AACtD,eAAO;AAAA,MACT,SAAS,OAAO;AACd,gBAAQ,MAAM,yBAAyB,KAAK;AAC5C,eAAO,CAAA;AAAA,MACT;AAAA,IACF;AAGA,mBAAe,mBAAmB;AAChC,UAAI,cAAc,MAAM,WAAW,EAAG;AAEtC,UAAI;AACF,cAAM,WAAW,cAAc,MAAM;AAAA,UAAI,UACvCD,kBAAAA,QAAiB,OAAO;AAAA,YACtB,MAAM,KAAK;AAAA,YACX,MAAM;AAAA,YACN,QAAQ,MAAM;AAAA,YACd,MAAM;AAAA,YACN,OAAO;AAAA,UACf,CAAO;AAAA,QACP;AAEI,cAAM,UAAU,MAAM,QAAQ,IAAI,QAAQ;AAE1C,aAAK,eAAe,OAAO;AAC3B,sBAAc,QAAQ,CAAA;AAEtBD,gBAAAA,QAAgB,WAAW;AAAA,UACzB,SAAS,sBAAsB,QAAQ,MAAM;AAAA,QACnD,CAAK;AAAA,MACH,SAAS,OAAO;AACd,gBAAQ,MAAM,uBAAuB,KAAK;AAC1CA,gBAAAA,QAAgB,SAAS,KAAK;AAC9B,cAAM;AAAA,MACR;AAAA,IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,195 @@
1
+ import { ref, createElementBlock, openBlock, createElementVNode, createVNode, createCommentVNode, withCtx, Fragment, renderList, normalizeClass, createBlock, toDisplayString, createTextVNode } from "vue";
2
+ import _sfc_main$3 from "../../../../components/Button/Button.vue.js";
3
+ import _sfc_main$1 from "../../../../components/Feed/Feed.vue.js";
4
+ import PlaceholderUserpic from "../../../icons/placeholders/PlaceholderUserpic.vue.js";
5
+ import _sfc_main$2 from "../../../icons/navigation/IconCheck.vue.js";
6
+ import { actions } from "../../../auth/views/store/users.js";
7
+ import membershipsStore from "../../store/memberships.store.js";
8
+ import { actions as actions$1 } from "../../../globals/views/store/globals.js";
9
+ const _hoisted_1 = ["onClick"];
10
+ const _hoisted_2 = { class: "flex-nowrap flex-v-center flex gap-thin" };
11
+ const _hoisted_3 = { class: "aspect-1x1 h-3r flex-child-default radius-small o-hidden" };
12
+ const _hoisted_4 = ["src"];
13
+ const _hoisted_5 = { class: "w-100" };
14
+ const _hoisted_6 = { class: "t-medium" };
15
+ const _hoisted_7 = { class: "t-small t-transp" };
16
+ const _hoisted_8 = {
17
+ key: 0,
18
+ class: "pd-nano pd-h-thin radius-thin bg-grey"
19
+ };
20
+ const _hoisted_9 = {
21
+ key: 1,
22
+ class: "pd-nano pd-h-thin radius-thin bg-green"
23
+ };
24
+ const _hoisted_10 = {
25
+ key: 0,
26
+ class: "mn-b-thin"
27
+ };
28
+ const _hoisted_11 = { class: "t-small t-transp" };
29
+ const _sfc_main = {
30
+ __name: "AddExistingMembersForm",
31
+ props: {
32
+ organizationId: {
33
+ type: String,
34
+ required: true
35
+ },
36
+ existingMembers: {
37
+ type: Array,
38
+ default: () => []
39
+ }
40
+ },
41
+ emits: ["users-added"],
42
+ setup(__props, { emit: __emit }) {
43
+ const props = __props;
44
+ const emit = __emit;
45
+ const selectedUsers = ref([]);
46
+ const organizationMembers = ref([]);
47
+ function isUserInOrganization(user) {
48
+ return organizationMembers.value.some(
49
+ (member) => member.user._id === user._id || member.user === user._id
50
+ );
51
+ }
52
+ function isUserSelected(user) {
53
+ return selectedUsers.value.some((selected) => selected._id === user._id);
54
+ }
55
+ function getUserCardClass(user) {
56
+ if (isUserInOrganization(user)) {
57
+ return "bg-grey opacity-60 cursor-not-allowed";
58
+ }
59
+ if (isUserSelected(user)) {
60
+ return "bg-green-light";
61
+ }
62
+ return "bg-white hover-bg-light";
63
+ }
64
+ function toggleUserSelection(user) {
65
+ if (isUserInOrganization(user)) {
66
+ actions$1.setError({ message: "This user is already a member of the organization" });
67
+ return;
68
+ }
69
+ const index = selectedUsers.value.findIndex((u) => u._id === user._id);
70
+ if (index > -1) {
71
+ selectedUsers.value.splice(index, 1);
72
+ } else {
73
+ selectedUsers.value.push(user);
74
+ }
75
+ }
76
+ async function fetchFilteredUsers(options) {
77
+ try {
78
+ const membersResponse = await membershipsStore.read({
79
+ target: props.organizationId,
80
+ role: ["member", "owner"]
81
+ });
82
+ organizationMembers.value = membersResponse || [];
83
+ const usersResponse = await actions.read(options);
84
+ return usersResponse;
85
+ } catch (error) {
86
+ console.error("Error fetching users:", error);
87
+ return [];
88
+ }
89
+ }
90
+ async function addSelectedUsers() {
91
+ if (selectedUsers.value.length === 0) return;
92
+ try {
93
+ const promises = selectedUsers.value.map(
94
+ (user) => membershipsStore.create({
95
+ user: user._id,
96
+ type: "organization",
97
+ target: props.organizationId,
98
+ role: "member",
99
+ label: "member"
100
+ })
101
+ );
102
+ const results = await Promise.all(promises);
103
+ emit("users-added", results);
104
+ selectedUsers.value = [];
105
+ actions$1.setSuccess({
106
+ message: `Successfully added ${results.length} user(s) to the organization`
107
+ });
108
+ } catch (error) {
109
+ console.error("Error adding users:", error);
110
+ actions$1.setError(error);
111
+ throw error;
112
+ }
113
+ }
114
+ return (_ctx, _cache) => {
115
+ return openBlock(), createElementBlock("div", null, [
116
+ _cache[1] || (_cache[1] = createElementVNode("p", { class: "mn-b-thin t-transp p-medium" }, "Select users to add to the organization:", -1)),
117
+ createVNode(_sfc_main$1, {
118
+ search: {
119
+ placeholder: "Search users...",
120
+ class: "bg-light mn-b-thin"
121
+ },
122
+ states: {
123
+ empty: {
124
+ title: "No Users Found",
125
+ description: "No users match your search criteria."
126
+ },
127
+ loading: {
128
+ title: "Loading users..."
129
+ }
130
+ },
131
+ store: {
132
+ read: (options) => fetchFilteredUsers(options),
133
+ state: null
134
+ },
135
+ options: {},
136
+ class: "bg-light pd-medium radius-medium h-max-30r o-scroll mn-b-thin"
137
+ }, {
138
+ default: withCtx(({ items }) => [
139
+ (openBlock(true), createElementBlock(Fragment, null, renderList(items, (user) => {
140
+ return openBlock(), createElementBlock("div", {
141
+ key: user._id,
142
+ onClick: () => toggleUserSelection(user),
143
+ class: normalizeClass(["pd-thin radius-medium w-100 mn-b-thin cursor-pointer hover-scale-1", getUserCardClass(user)])
144
+ }, [
145
+ createElementVNode("div", _hoisted_2, [
146
+ createElementVNode("div", _hoisted_3, [
147
+ user.profile?.photo ? (openBlock(), createElementBlock("img", {
148
+ key: 0,
149
+ src: user.profile.photo,
150
+ alt: "User photo",
151
+ class: "w-100 h-100 object-fit-cover"
152
+ }, null, 8, _hoisted_4)) : (openBlock(), createBlock(PlaceholderUserpic, {
153
+ key: 1,
154
+ class: "w-100 h-100"
155
+ }))
156
+ ]),
157
+ createElementVNode("div", _hoisted_5, [
158
+ createElementVNode("p", _hoisted_6, toDisplayString(user.profile?.name || user.phone || user.email || "Unnamed user"), 1),
159
+ createElementVNode("p", _hoisted_7, toDisplayString(user.email || user.phone || "No contact info"), 1)
160
+ ]),
161
+ isUserInOrganization(user) ? (openBlock(), createElementBlock("div", _hoisted_8, _cache[0] || (_cache[0] = [
162
+ createElementVNode("span", { class: "t-small" }, "Already member", -1)
163
+ ]))) : isUserSelected(user) ? (openBlock(), createElementBlock("div", _hoisted_9, [
164
+ createVNode(_sfc_main$2, {
165
+ class: "i-small",
166
+ fill: "rgb(var(--white))"
167
+ })
168
+ ])) : createCommentVNode("", true)
169
+ ])
170
+ ], 10, _hoisted_1);
171
+ }), 128))
172
+ ]),
173
+ _: 1
174
+ }, 8, ["store"]),
175
+ selectedUsers.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_10, [
176
+ createElementVNode("p", _hoisted_11, "Selected: " + toDisplayString(selectedUsers.value.length) + " user(s)", 1)
177
+ ])) : createCommentVNode("", true),
178
+ createVNode(_sfc_main$3, {
179
+ submit: addSelectedUsers,
180
+ disabled: selectedUsers.value.length === 0,
181
+ class: "w-100 bg-main"
182
+ }, {
183
+ default: withCtx(() => [
184
+ createTextVNode(" Add " + toDisplayString(selectedUsers.value.length) + " user(s) to organization ", 1)
185
+ ]),
186
+ _: 1
187
+ }, 8, ["disabled"])
188
+ ]);
189
+ };
190
+ }
191
+ };
192
+ export {
193
+ _sfc_main as default
194
+ };
195
+ //# sourceMappingURL=AddExistingMembersForm.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AddExistingMembersForm.vue.js","sources":["../../../../../../../src/modules/organizations/components/forms/AddExistingMembersForm.vue"],"sourcesContent":["<template>\n <div>\n <p class=\"mn-b-thin t-transp p-medium\">Select users to add to the organization:</p>\n\n <Feed\n :search=\"{\n placeholder: 'Search users...',\n class: 'bg-light mn-b-thin'\n }\"\n :states=\"{\n empty: {\n title: 'No Users Found',\n description: 'No users match your search criteria.'\n },\n loading: {\n title: 'Loading users...'\n }\n }\"\n :store=\"{\n read: (options) => fetchFilteredUsers(options),\n state: null\n }\"\n :options=\"{}\"\n v-slot=\"{ items }\"\n class=\"bg-light pd-medium radius-medium h-max-30r o-scroll mn-b-thin\"\n >\n <div\n v-for=\"user in items\"\n :key=\"user._id\"\n @click=\"() => toggleUserSelection(user)\"\n class=\"pd-thin radius-medium w-100 mn-b-thin cursor-pointer hover-scale-1\"\n :class=\"getUserCardClass(user)\"\n >\n <div class=\"flex-nowrap flex-v-center flex gap-thin\">\n <div class=\"aspect-1x1 h-3r flex-child-default radius-small o-hidden\">\n <img\n v-if=\"user.profile?.photo\"\n :src=\"user.profile.photo\"\n alt=\"User photo\"\n class=\"w-100 h-100 object-fit-cover\"\n />\n <PlaceholderUserpic v-else class=\"w-100 h-100\" />\n </div>\n \n <div class=\"w-100\">\n <p class=\"t-medium\">{{ user.profile?.name || user.phone || user.email || 'Unnamed user' }}</p>\n <p class=\"t-small t-transp\">{{ user.email || user.phone || 'No contact info' }}</p>\n </div>\n\n <div v-if=\"isUserInOrganization(user)\" class=\"pd-nano pd-h-thin radius-thin bg-grey\">\n <span class=\"t-small\">Already member</span>\n </div>\n \n <div v-else-if=\"isUserSelected(user)\" class=\"pd-nano pd-h-thin radius-thin bg-green\">\n <IconCheck class=\"i-small\" fill=\"rgb(var(--white))\" />\n </div>\n </div>\n </div>\n </Feed>\n\n <div v-if=\"selectedUsers.length > 0\" class=\"mn-b-thin\">\n <p class=\"t-small t-transp\">Selected: {{ selectedUsers.length }} user(s)</p>\n </div>\n\n <Button\n :submit=\"addSelectedUsers\"\n :disabled=\"selectedUsers.length === 0\"\n class=\"w-100 bg-main\"\n >\n Add {{ selectedUsers.length }} user(s) to organization\n </Button>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed } from 'vue';\n\nimport Button from '@martyrs/src/components/Button/Button.vue';\nimport Feed from '@martyrs/src/components/Feed/Feed.vue';\n\nimport PlaceholderUserpic from '@martyrs/src/modules/icons/placeholders/PlaceholderUserpic.vue';\nimport IconCheck from '@martyrs/src/modules/icons/navigation/IconCheck.vue';\n\nimport * as users from '@martyrs/src/modules/auth/views/store/users.js';\nimport membershipsStore from '@martyrs/src/modules/organizations/store/memberships.store.js';\nimport * as globals from '@martyrs/src/modules/globals/views/store/globals.js';\n\nconst props = defineProps({\n organizationId: {\n type: String,\n required: true\n },\n existingMembers: {\n type: Array,\n default: () => []\n }\n});\n\nconst emit = defineEmits(['users-added']);\n\n// State\nconst selectedUsers = ref([]);\nconst organizationMembers = ref([]);\n\n// Check if user is already in organization\nfunction isUserInOrganization(user) {\n return organizationMembers.value.some(member => \n member.user._id === user._id || member.user === user._id\n );\n}\n\n// Check if user is selected\nfunction isUserSelected(user) {\n return selectedUsers.value.some(selected => selected._id === user._id);\n}\n\n// Get card styling based on user status\nfunction getUserCardClass(user) {\n if (isUserInOrganization(user)) {\n return 'bg-grey opacity-60 cursor-not-allowed';\n }\n if (isUserSelected(user)) {\n return 'bg-green-light';\n }\n return 'bg-white hover-bg-light';\n}\n\n// Toggle user selection\nfunction toggleUserSelection(user) {\n if (isUserInOrganization(user)) {\n globals.actions.setError({ message: 'This user is already a member of the organization' });\n return;\n }\n\n const index = selectedUsers.value.findIndex(u => u._id === user._id);\n if (index > -1) {\n selectedUsers.value.splice(index, 1);\n } else {\n selectedUsers.value.push(user);\n }\n}\n\n// Fetch users and organization members\nasync function fetchFilteredUsers(options) {\n try {\n // Fetch organization members\n const membersResponse = await membershipsStore.read({\n target: props.organizationId,\n role: ['member', 'owner']\n });\n organizationMembers.value = membersResponse || [];\n\n // Fetch all users\n const usersResponse = await users.actions.read(options);\n return usersResponse;\n } catch (error) {\n console.error('Error fetching users:', error);\n return [];\n }\n}\n\n// Add selected users to organization\nasync function addSelectedUsers() {\n if (selectedUsers.value.length === 0) return;\n\n try {\n const promises = selectedUsers.value.map(user => \n membershipsStore.create({\n user: user._id,\n type: 'organization',\n target: props.organizationId,\n role: 'member',\n label: 'member'\n })\n );\n\n const results = await Promise.all(promises);\n \n emit('users-added', results);\n selectedUsers.value = [];\n \n globals.actions.setSuccess({ \n message: `Successfully added ${results.length} user(s) to the organization` \n });\n } catch (error) {\n console.error('Error adding users:', error);\n globals.actions.setError(error);\n throw error;\n }\n}\n</script>"],"names":["globals.actions","users.actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuFA,UAAM,QAAQ;AAWd,UAAM,OAAO;AAGb,UAAM,gBAAgB,IAAI,EAAE;AAC5B,UAAM,sBAAsB,IAAI,EAAE;AAGlC,aAAS,qBAAqB,MAAM;AAClC,aAAO,oBAAoB,MAAM;AAAA,QAAK,YACpC,OAAO,KAAK,QAAQ,KAAK,OAAO,OAAO,SAAS,KAAK;AAAA,MACzD;AAAA,IACA;AAGA,aAAS,eAAe,MAAM;AAC5B,aAAO,cAAc,MAAM,KAAK,cAAY,SAAS,QAAQ,KAAK,GAAG;AAAA,IACvE;AAGA,aAAS,iBAAiB,MAAM;AAC9B,UAAI,qBAAqB,IAAI,GAAG;AAC9B,eAAO;AAAA,MACT;AACA,UAAI,eAAe,IAAI,GAAG;AACxB,eAAO;AAAA,MACT;AACA,aAAO;AAAA,IACT;AAGA,aAAS,oBAAoB,MAAM;AACjC,UAAI,qBAAqB,IAAI,GAAG;AAC9BA,kBAAgB,SAAS,EAAE,SAAS,oDAAmD,CAAE;AACzF;AAAA,MACF;AAEA,YAAM,QAAQ,cAAc,MAAM,UAAU,OAAK,EAAE,QAAQ,KAAK,GAAG;AACnE,UAAI,QAAQ,IAAI;AACd,sBAAc,MAAM,OAAO,OAAO,CAAC;AAAA,MACrC,OAAO;AACL,sBAAc,MAAM,KAAK,IAAI;AAAA,MAC/B;AAAA,IACF;AAGA,mBAAe,mBAAmB,SAAS;AACzC,UAAI;AAEF,cAAM,kBAAkB,MAAM,iBAAiB,KAAK;AAAA,UAClD,QAAQ,MAAM;AAAA,UACd,MAAM,CAAC,UAAU,OAAO;AAAA,QAC9B,CAAK;AACD,4BAAoB,QAAQ,mBAAmB,CAAA;AAG/C,cAAM,gBAAgB,MAAMC,QAAc,KAAK,OAAO;AACtD,eAAO;AAAA,MACT,SAAS,OAAO;AACd,gBAAQ,MAAM,yBAAyB,KAAK;AAC5C,eAAO,CAAA;AAAA,MACT;AAAA,IACF;AAGA,mBAAe,mBAAmB;AAChC,UAAI,cAAc,MAAM,WAAW,EAAG;AAEtC,UAAI;AACF,cAAM,WAAW,cAAc,MAAM;AAAA,UAAI,UACvC,iBAAiB,OAAO;AAAA,YACtB,MAAM,KAAK;AAAA,YACX,MAAM;AAAA,YACN,QAAQ,MAAM;AAAA,YACd,MAAM;AAAA,YACN,OAAO;AAAA,UACf,CAAO;AAAA,QACP;AAEI,cAAM,UAAU,MAAM,QAAQ,IAAI,QAAQ;AAE1C,aAAK,eAAe,OAAO;AAC3B,sBAAc,QAAQ,CAAA;AAEtBD,kBAAgB,WAAW;AAAA,UACzB,SAAS,sBAAsB,QAAQ,MAAM;AAAA,QACnD,CAAK;AAAA,MACH,SAAS,OAAO;AACd,gBAAQ,MAAM,uBAAuB,KAAK;AAC1CA,kBAAgB,SAAS,KAAK;AAC9B,cAAM;AAAA,MACR;AAAA,IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,402 @@
1
+ "use strict";
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const vue = require("vue");
4
+ const vueRouter = require("vue-router");
5
+ const UploadImage = require("../../../../components/UploadImage/UploadImage.vue.cjs");
6
+ const Field = require("../../../../components/Field/Field.vue.cjs");
7
+ const Checkbox = require("../../../../components/Checkbox/Checkbox.vue.cjs");
8
+ const Button = require("../../../../components/Button/Button.vue.cjs");
9
+ const Popup = require("../../../../components/Popup/Popup.vue.cjs");
10
+ const Block = require("../../../../components/Block/Block.vue.cjs");
11
+ const Feed = require("../../../../components/Feed/Feed.vue.cjs");
12
+ const Spoiler = require("../../../../components/Spoiler/Spoiler.vue2.cjs");
13
+ const CardUser = require("../../../auth/views/components/blocks/CardUser.vue.cjs");
14
+ const IconDelete = require("../../../icons/navigation/IconDelete.vue.cjs");
15
+ const globals = require("../../../globals/views/store/globals.cjs");
16
+ const memberships_store = require("../../store/memberships.store.cjs");
17
+ const departments_store = require("../../store/departments.store.cjs");
18
+ const _hoisted_1 = { class: "cols-1 gap-thin o-y-scroll" };
19
+ const _hoisted_2 = { class: "cols-2-fit-content" };
20
+ const _hoisted_3 = { class: "w-100 flex-child-grow-1 flex-child" };
21
+ const _hoisted_4 = { class: "bg-light pd-medium o-hidden radius-medium mn-b-thin" };
22
+ const _hoisted_5 = { class: "cols-1 gap-thin" };
23
+ const _hoisted_6 = { class: "bg-light pd-medium o-hidden radius-medium" };
24
+ const _hoisted_7 = { class: "cols-1 gap-thin" };
25
+ const _hoisted_8 = { class: "cursor-pointer flex-v-center flex gap-thin" };
26
+ const _hoisted_9 = { class: "t-small" };
27
+ const _hoisted_10 = { class: "cols-1 gap-thin mn-t-thin" };
28
+ const _hoisted_11 = { class: "flex gap-thin mn-t-medium" };
29
+ const _sfc_main = {
30
+ __name: "DepartmentForm",
31
+ props: {
32
+ department: Object,
33
+ organizationId: String
34
+ },
35
+ emits: ["close", "saved"],
36
+ setup(__props, { emit: __emit }) {
37
+ vueRouter.useRoute();
38
+ const props = __props;
39
+ const emit = __emit;
40
+ const editingDepartment = vue.computed(() => !!props.department?._id);
41
+ const isOpenAddMemberPopup = vue.ref(false);
42
+ const createDefaultDepartment = () => ({
43
+ organization: props.organizationId,
44
+ profile: {
45
+ photo: "",
46
+ name: "",
47
+ description: "",
48
+ categories: []
49
+ },
50
+ address: "",
51
+ location: {
52
+ lat: null,
53
+ lng: null
54
+ },
55
+ worktime: [],
56
+ delivery: [],
57
+ payment: [],
58
+ members: [],
59
+ subdepartments: [],
60
+ hidden: false,
61
+ accesses: {
62
+ categories: {
63
+ create: false,
64
+ read: false,
65
+ edit: false,
66
+ delete: false
67
+ },
68
+ rents: {
69
+ create: false,
70
+ read: false,
71
+ edit: false,
72
+ delete: false
73
+ },
74
+ spots: {
75
+ create: false,
76
+ read: false,
77
+ edit: false,
78
+ delete: false
79
+ },
80
+ members: {
81
+ read: false,
82
+ edit: false,
83
+ delete: false
84
+ },
85
+ posts: {
86
+ create: false,
87
+ read: false,
88
+ edit: false,
89
+ delete: false
90
+ },
91
+ events: {
92
+ create: false,
93
+ read: false,
94
+ edit: false,
95
+ delete: false
96
+ },
97
+ tickets: {
98
+ create: false,
99
+ read: false,
100
+ edit: false,
101
+ delete: false
102
+ },
103
+ gallery: {
104
+ read: false,
105
+ create: false,
106
+ edit: false,
107
+ delete: false
108
+ },
109
+ inventory: {
110
+ read: false,
111
+ edit: false,
112
+ delete: false
113
+ },
114
+ products: {
115
+ read: false,
116
+ edit: false,
117
+ delete: false
118
+ },
119
+ orders: {
120
+ read: false,
121
+ confirm: false,
122
+ delete: false
123
+ },
124
+ departments: {
125
+ read: false,
126
+ edit: false,
127
+ delete: false
128
+ }
129
+ }
130
+ });
131
+ const currentDepartment = vue.reactive(
132
+ props.department ? JSON.parse(JSON.stringify(props.department)) : createDefaultDepartment()
133
+ );
134
+ function openMemberPopup() {
135
+ isOpenAddMemberPopup.value = true;
136
+ }
137
+ function closeMemberPopup() {
138
+ isOpenAddMemberPopup.value = false;
139
+ }
140
+ function isDuplicateMember(userId) {
141
+ return currentDepartment.members.some(
142
+ (member) => member.user._id === userId || member._id === userId
143
+ );
144
+ }
145
+ function addMemberToDepartment(user) {
146
+ if (!isDuplicateMember(user._id)) {
147
+ currentDepartment.members.push({
148
+ _id: user._id,
149
+ user,
150
+ position: "Member"
151
+ });
152
+ closeMemberPopup();
153
+ } else {
154
+ globals.actions.setError({ message: "This user is already a member of this department" });
155
+ }
156
+ }
157
+ function removeMember(member) {
158
+ if (confirm("Are you sure you want to remove this member?")) {
159
+ const index = currentDepartment.members.findIndex(
160
+ (m) => m.user._id === member.user._id || m._id === member._id
161
+ );
162
+ if (index > -1) {
163
+ currentDepartment.members.splice(index, 1);
164
+ }
165
+ }
166
+ }
167
+ async function saveDepartment() {
168
+ try {
169
+ const departmentData = {
170
+ ...currentDepartment,
171
+ organization: props.organizationId
172
+ };
173
+ let result;
174
+ if (editingDepartment.value) {
175
+ result = await departments_store.default.update({
176
+ ...departmentData,
177
+ _id: props.department._id
178
+ });
179
+ } else {
180
+ result = await departments_store.default.create(departmentData);
181
+ }
182
+ emit("saved", result);
183
+ emit("close");
184
+ } catch (error) {
185
+ console.error("Error saving department:", error);
186
+ globals.actions.setError(error);
187
+ throw error;
188
+ }
189
+ }
190
+ async function onDelete() {
191
+ if (confirm("Are you sure you want to delete this department?")) {
192
+ try {
193
+ await departments_store.default.delete({ _id: props.department._id });
194
+ emit("saved", null);
195
+ emit("close");
196
+ } catch (error) {
197
+ console.error("Error deleting department:", error);
198
+ globals.actions.setError(error);
199
+ }
200
+ }
201
+ }
202
+ return (_ctx, _cache) => {
203
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
204
+ vue.createVNode(Block.default, {
205
+ title: "Profile",
206
+ class: "mn-b-thin"
207
+ }, {
208
+ default: vue.withCtx(() => [
209
+ vue.createElementVNode("div", _hoisted_2, [
210
+ vue.createVNode(UploadImage.default, {
211
+ photo: currentDepartment.profile.photo,
212
+ "onUpdate:photo": _cache[0] || (_cache[0] = ($event) => currentDepartment.profile.photo = $event),
213
+ uploadPath: "organizations/" + currentDepartment.profile.name + "/departments",
214
+ class: "w-8r aspect-1x1 o-hidden mn-r-small radius-extra"
215
+ }, null, 8, ["photo", "uploadPath"]),
216
+ vue.createElementVNode("div", _hoisted_3, [
217
+ vue.createVNode(Field.default, {
218
+ field: currentDepartment.profile.name,
219
+ "onUpdate:field": _cache[1] || (_cache[1] = ($event) => currentDepartment.profile.name = $event),
220
+ label: "Name",
221
+ placeholder: "Department Name",
222
+ class: "mn-b-small bg-white radius-small pd-medium"
223
+ }, null, 8, ["field"]),
224
+ vue.createVNode(Field.default, {
225
+ field: currentDepartment.profile.description,
226
+ "onUpdate:field": _cache[2] || (_cache[2] = ($event) => currentDepartment.profile.description = $event),
227
+ label: "Description",
228
+ placeholder: "Department description (max 120 symbols)",
229
+ class: "bg-white radius-small pd-medium"
230
+ }, null, 8, ["field"])
231
+ ])
232
+ ])
233
+ ]),
234
+ _: 1
235
+ }),
236
+ vue.createVNode(Block.default, {
237
+ title: "Team",
238
+ placeholder: "No members added yet",
239
+ actions: [{
240
+ label: "+",
241
+ function: () => openMemberPopup()
242
+ }],
243
+ class: "cols-1 gap-thin mn-b-thin"
244
+ }, {
245
+ default: vue.withCtx(() => [
246
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(currentDepartment.members, (member, index) => {
247
+ return vue.openBlock(), vue.createBlock(CardUser.default, {
248
+ class: "h-4r bg-white pd-thin radius-medium w-100",
249
+ key: member._id || index,
250
+ user: member.user,
251
+ photo: member.user.profile.photo,
252
+ name: member.user.profile.name || member.user.phone || member.user.email || member.user._id,
253
+ position: member.position,
254
+ action: {
255
+ label: {
256
+ is: IconDelete.default,
257
+ props: { class: "i-medium", fill: "rgb(var(--white)" }
258
+ },
259
+ method: () => removeMember(member)
260
+ }
261
+ }, null, 8, ["user", "photo", "name", "position", "action"]);
262
+ }), 128))
263
+ ]),
264
+ _: 1
265
+ }, 8, ["actions"]),
266
+ vue.createElementVNode("div", _hoisted_4, [
267
+ _cache[5] || (_cache[5] = vue.createElementVNode("h3", { class: "mn-b-semi" }, "Department Settings", -1)),
268
+ _cache[6] || (_cache[6] = vue.createElementVNode("p", { class: "p-medium mn-b-small" }, "Please settings for your department:", -1)),
269
+ vue.createElementVNode("div", _hoisted_5, [
270
+ vue.createVNode(Checkbox.default, {
271
+ label: "Hidden department",
272
+ name: "hidden",
273
+ class: "w-100 mn-r-small bg-white radius-small pd-small",
274
+ "onUpdate:radio": _cache[3] || (_cache[3] = (updated) => currentDepartment.hidden = !currentDepartment.hidden),
275
+ radio: currentDepartment.hidden
276
+ }, null, 8, ["radio"])
277
+ ])
278
+ ]),
279
+ vue.createElementVNode("div", _hoisted_6, [
280
+ _cache[7] || (_cache[7] = vue.createElementVNode("h3", { class: "mn-b-semi" }, "Accesses", -1)),
281
+ _cache[8] || (_cache[8] = vue.createElementVNode("p", { class: "p-medium mn-b-small" }, "Please select organization accesses for user in department:", -1)),
282
+ vue.createElementVNode("div", _hoisted_7, [
283
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(currentDepartment.accesses, (actions, category) => {
284
+ return vue.openBlock(), vue.createElementBlock("div", {
285
+ key: category,
286
+ class: "mn-b-small"
287
+ }, [
288
+ vue.createVNode(Spoiler.default, { status: false }, {
289
+ header: vue.withCtx(({ isOpen }) => [
290
+ vue.createElementVNode("h4", _hoisted_8, [
291
+ vue.createTextVNode(vue.toDisplayString(category.charAt(0).toUpperCase() + category.slice(1)) + " ", 1),
292
+ vue.createElementVNode("span", _hoisted_9, vue.toDisplayString(isOpen ? "▼" : "▶"), 1)
293
+ ])
294
+ ]),
295
+ content: vue.withCtx(() => [
296
+ vue.createElementVNode("div", _hoisted_10, [
297
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(actions, (value, action) => {
298
+ return vue.openBlock(), vue.createBlock(Checkbox.default, {
299
+ key: action,
300
+ label: action,
301
+ name: action,
302
+ radio: value,
303
+ "onUpdate:radio": (updated) => currentDepartment.accesses[category][action] = !value,
304
+ class: "w-100 mn-r-small bg-white radius-small pd-small"
305
+ }, null, 8, ["label", "name", "radio", "onUpdate:radio"]);
306
+ }), 128))
307
+ ])
308
+ ]),
309
+ _: 2
310
+ }, 1024)
311
+ ]);
312
+ }), 128))
313
+ ])
314
+ ]),
315
+ vue.createElementVNode("div", _hoisted_11, [
316
+ editingDepartment.value ? (vue.openBlock(), vue.createBlock(Button.default, {
317
+ key: 0,
318
+ submit: onDelete,
319
+ showSuccess: true,
320
+ showLoader: true,
321
+ class: "bg-red"
322
+ }, {
323
+ default: vue.withCtx(() => _cache[9] || (_cache[9] = [
324
+ vue.createTextVNode(" Delete ")
325
+ ])),
326
+ _: 1
327
+ })) : vue.createCommentVNode("", true),
328
+ vue.createVNode(Button.default, {
329
+ showSuccess: false,
330
+ showLoader: false,
331
+ class: "bg-grey t-white w-100",
332
+ onClick: _cache[4] || (_cache[4] = ($event) => _ctx.$emit("close"))
333
+ }, {
334
+ default: vue.withCtx(() => _cache[10] || (_cache[10] = [
335
+ vue.createTextVNode(" Cancel ")
336
+ ])),
337
+ _: 1
338
+ }),
339
+ vue.createVNode(Button.default, {
340
+ class: "bg-main w-100",
341
+ submit: saveDepartment
342
+ }, {
343
+ default: vue.withCtx(() => [
344
+ vue.createTextVNode(vue.toDisplayString(editingDepartment.value ? "Update Department" : "Create Department"), 1)
345
+ ]),
346
+ _: 1
347
+ })
348
+ ]),
349
+ vue.createVNode(Popup.default, {
350
+ title: "Add member",
351
+ onClosePopup: closeMemberPopup,
352
+ isPopupOpen: isOpenAddMemberPopup.value,
353
+ class: "bg-white w-max-30r radius-medium pd-big"
354
+ }, {
355
+ default: vue.withCtx(() => [
356
+ vue.createVNode(Feed.default, {
357
+ search: {
358
+ placeholder: "Search member...",
359
+ class: "bg-light mn-b-thin"
360
+ },
361
+ states: {
362
+ empty: {
363
+ title: "No Members Found",
364
+ description: "Currently, there are no members in organization."
365
+ }
366
+ },
367
+ store: {
368
+ read: (options) => vue.unref(memberships_store.default).read(options),
369
+ state: null
370
+ },
371
+ options: {
372
+ target: __props.organizationId,
373
+ role: ["member", "owner"]
374
+ },
375
+ class: "bg-light pd-medium w-min-20r w-max-40r radius-medium h-max-20r o-scroll"
376
+ }, {
377
+ default: vue.withCtx(({
378
+ items
379
+ }) => [
380
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(items, (user, index) => {
381
+ return vue.openBlock(), vue.createBlock(CardUser.default, {
382
+ key: user._id,
383
+ user: user.user,
384
+ photo: user.user.profile?.photo,
385
+ name: user.user.profile?.name || user.user.phone || user.user.email,
386
+ disabled: isDuplicateMember(user.user._id),
387
+ onClick: () => addMemberToDepartment(user.user),
388
+ class: vue.normalizeClass(["h-4r bg-white pd-thin radius-medium w-100 mn-b-thin", { "opacity-50 cursor-not-allowed": isDuplicateMember(user.user._id) }])
389
+ }, null, 8, ["user", "photo", "name", "disabled", "onClick", "class"]);
390
+ }), 128))
391
+ ]),
392
+ _: 1
393
+ }, 8, ["store", "options"])
394
+ ]),
395
+ _: 1
396
+ }, 8, ["isPopupOpen"])
397
+ ]);
398
+ };
399
+ }
400
+ };
401
+ exports.default = _sfc_main;
402
+ //# sourceMappingURL=DepartmentForm.vue.cjs.map