@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
@@ -1,15 +1,8 @@
1
- import { ref, computed, onMounted, onUnmounted, createElementBlock, openBlock, createCommentVNode, createElementVNode, createVNode, unref, Fragment, renderList, normalizeClass, toDisplayString, withCtx, createBlock } from "vue";
1
+ import { onMounted, onUnmounted, createElementBlock, openBlock, createCommentVNode, createElementVNode, unref, createVNode, withCtx, Fragment, renderList, createBlock } from "vue";
2
2
  import { useRoute, useRouter } from "vue-router";
3
- import _sfc_main$4 from "../../../../components/Feed/Feed.vue.js";
4
- import Filters from "../../../globals/views/components/sections/Filters.vue2.js";
5
- import _sfc_main$2 from "../../../../components/Spoiler/Spoiler.vue2.js";
6
- import Field from "../../../../components/Field/Field.vue.js";
7
- import _sfc_main$3 from "../../../../components/Checkbox/Checkbox.vue.js";
8
- import Calendar from "../../../../components/Calendar/Calendar.vue2.js";
9
- import _sfc_main$6 from "../../../../components/Popup/Popup.vue.js";
10
- import _sfc_main$5 from "../blocks/CardBlogpost.vue.js";
3
+ import _sfc_main$2 from "../../../../components/Feed/Feed.vue.js";
4
+ import _sfc_main$3 from "../blocks/CardBlogpost.vue.js";
11
5
  import _sfc_main$1 from "../../../icons/navigation/IconPlus.vue.js";
12
- import IconChevronBottom from "../../../icons/navigation/IconChevronBottom.vue.js";
13
6
  import { state } from "../../../auth/views/store/auth.js";
14
7
  import { state as state$1 } from "../../../globals/views/store/globals.js";
15
8
  import { state as state$2, read } from "../../store/blogposts.js";
@@ -20,27 +13,7 @@ const _hoisted_2 = {
20
13
  key: 0,
21
14
  class: "pd-medium flex-v-center flex-nowrap flex"
22
15
  };
23
- const _hoisted_3 = { class: "cols-2-1_3 br-1px br-solid br-light z-index-3 pos-relative" };
24
- const _hoisted_4 = { class: "o-y-scroll br-r br-solid br-light pd-medium z-index-2 desktop-only h-100 pos-relative" };
25
- const _hoisted_5 = { class: "w-100 o-y-scroll h-100" };
26
- const _hoisted_6 = { class: "mn-b-medium" };
27
- const _hoisted_7 = { class: "gap-micro" };
28
- const _hoisted_8 = ["onClick"];
29
- const _hoisted_9 = { class: "cursor-pointer w-100 flex-v-center flex-nowrap flex" };
30
- const _hoisted_10 = { class: "h-2r w-2r flex-child-auto aspect-1x1 flex-center flex bg-light radius-extra" };
31
- const _hoisted_11 = { class: "mn-t-small" };
32
- const _hoisted_12 = { class: "cursor-pointer w-100 flex-v-center flex-nowrap flex" };
33
- const _hoisted_13 = { class: "h-2r w-2r flex-child-auto aspect-1x1 flex-center flex bg-light radius-extra" };
34
- const _hoisted_14 = { class: "mn-t-small" };
35
- const _hoisted_15 = ["onClick"];
36
- const _hoisted_16 = { class: "cursor-pointer w-100 flex-v-center flex-nowrap flex" };
37
- const _hoisted_17 = { class: "h-2r w-2r flex-child-auto aspect-1x1 flex-center flex bg-light radius-extra" };
38
- const _hoisted_18 = { class: "mn-t-small" };
39
- const _hoisted_19 = { class: "w-100 rows-1 pd-thin pos-relative o-hidden" };
40
- const _hoisted_20 = { class: "mn-b-thin w-100 o-y-scroll scroll-hide scroll-snap-type-x-mandatory scroll-pd-regular" };
41
- const _hoisted_21 = { class: "gap-thin flex-nowrap flex" };
42
- const _hoisted_22 = ["onClick"];
43
- const _hoisted_23 = { class: "flex gap-small" };
16
+ const _hoisted_3 = { class: "w-100 rows-1 pd-thin pos-relative o-hidden" };
44
17
  const _sfc_main = {
45
18
  __name: "Posts",
46
19
  props: {
@@ -52,117 +25,7 @@ const _sfc_main = {
52
25
  setup(__props) {
53
26
  const route = useRoute();
54
27
  const router = useRouter();
55
- const { hasAccess, formatDate } = useGlobalMixins();
56
- const postCategories = ref([
57
- { label: "All Posts", value: "all" },
58
- { label: "News", value: "news" },
59
- { label: "Updates", value: "updates" },
60
- { label: "Events", value: "events" },
61
- { label: "Announcements", value: "announcements" },
62
- { label: "Stories", value: "stories" }
63
- ]);
64
- const selectedCategory = ref("all");
65
- const searchTag = ref("");
66
- const selectedTags = ref([]);
67
- const availableTags = ref(["featured", "important", "trending", "community", "official"]);
68
- const filteredTags = computed(() => {
69
- if (!searchTag.value) return availableTags.value;
70
- return availableTags.value.filter(
71
- (tag) => tag.toLowerCase().includes(searchTag.value.toLowerCase())
72
- );
73
- });
74
- const dateRangeOptions = ref([
75
- { label: "All Time", value: "all" },
76
- { label: "Today", value: "today" },
77
- { label: "This Week", value: "week" },
78
- { label: "This Month", value: "month" },
79
- { label: "This Year", value: "year" }
80
- ]);
81
- const selectedDateRange = ref("all");
82
- const showDatePickerPopup = ref(false);
83
- const selectedDates = ref(null);
84
- const tempSelectedDates = ref(null);
85
- const showMyPostsOnly = ref(false);
86
- const availableFilters = ref([
87
- {
88
- title: "Category",
89
- value: "category",
90
- type: "radio",
91
- options: postCategories.value
92
- },
93
- {
94
- title: "Status",
95
- value: "status",
96
- type: "radio",
97
- options: [
98
- { label: "Published", value: "published" },
99
- { label: "Draft", value: "draft" },
100
- { label: "Archived", value: "archived" }
101
- ]
102
- }
103
- ]);
104
- const selectedFilters = ref({
105
- category: "all",
106
- status: "published"
107
- });
108
- const selectCategory = (category) => {
109
- selectedCategory.value = category;
110
- selectedFilters.value.category = category;
111
- };
112
- const selectDateRange = (range) => {
113
- selectedDateRange.value = range;
114
- const today = /* @__PURE__ */ new Date();
115
- switch (range) {
116
- case "all":
117
- selectedDates.value = null;
118
- break;
119
- case "today":
120
- selectedDates.value = {
121
- start: today,
122
- end: today
123
- };
124
- break;
125
- case "week":
126
- const weekStart = new Date(today);
127
- weekStart.setDate(today.getDate() - today.getDay());
128
- selectedDates.value = {
129
- start: weekStart,
130
- end: today
131
- };
132
- break;
133
- case "month":
134
- const monthStart = new Date(today.getFullYear(), today.getMonth(), 1);
135
- selectedDates.value = {
136
- start: monthStart,
137
- end: today
138
- };
139
- break;
140
- case "year":
141
- const yearStart = new Date(today.getFullYear(), 0, 1);
142
- selectedDates.value = {
143
- start: yearStart,
144
- end: today
145
- };
146
- break;
147
- }
148
- };
149
- const applyDateFilter = () => {
150
- selectedDates.value = tempSelectedDates.value;
151
- selectedDateRange.value = "custom";
152
- showDatePickerPopup.value = false;
153
- };
154
- const clearFilters = () => {
155
- selectedCategory.value = "all";
156
- selectedTags.value = [];
157
- selectedDateRange.value = "all";
158
- selectedDates.value = null;
159
- showMyPostsOnly.value = false;
160
- searchTag.value = "";
161
- selectedFilters.value = {
162
- category: "all",
163
- status: "published"
164
- };
165
- };
28
+ const { hasAccess } = useGlobalMixins();
166
29
  state$1.navigation_bar.actions = [{
167
30
  component: _sfc_main$1,
168
31
  props: {
@@ -182,7 +45,7 @@ const _sfc_main = {
182
45
  return (_ctx, _cache) => {
183
46
  return openBlock(), createElementBlock("div", _hoisted_1, [
184
47
  unref(route).name !== "Organization" && !_ctx.MOBILE_APP ? (openBlock(), createElementBlock("header", _hoisted_2, [
185
- _cache[13] || (_cache[13] = createElementVNode("h2", { class: "mn-r-medium" }, "Posts", -1)),
48
+ _cache[3] || (_cache[3] = createElementVNode("h2", { class: "mn-r-medium" }, "Posts", -1)),
186
49
  unref(hasAccess)(unref(route).params._id, "posts", "create", state.accesses, state.access.roles) ? (openBlock(), createElementBlock("button", {
187
50
  key: 0,
188
51
  onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$router.push({
@@ -192,235 +55,54 @@ const _sfc_main = {
192
55
  }, " + ")) : createCommentVNode("", true)
193
56
  ])) : createCommentVNode("", true),
194
57
  createElementVNode("div", _hoisted_3, [
195
- createElementVNode("div", _hoisted_4, [
196
- createElementVNode("div", _hoisted_5, [
197
- createElementVNode("div", _hoisted_6, [
198
- _cache[14] || (_cache[14] = createElementVNode("h4", { class: "mn-b-small" }, "Categories", -1)),
199
- createElementVNode("div", _hoisted_7, [
200
- (openBlock(true), createElementBlock(Fragment, null, renderList(postCategories.value, (category) => {
201
- return openBlock(), createElementBlock("div", {
202
- key: category.value,
203
- onClick: ($event) => selectCategory(category.value),
204
- class: normalizeClass([{ "bg-light": selectedCategory.value === category.value }, "pd-small radius-small cursor-pointer hover-bg-light transition-all"])
205
- }, toDisplayString(category.label), 11, _hoisted_8);
206
- }), 128))
207
- ])
208
- ]),
209
- createVNode(_sfc_main$2, {
210
- class: "o-hidden mn-b-medium",
211
- status: true
212
- }, {
213
- header: withCtx(({ isOpen }) => [
214
- createElementVNode("div", _hoisted_9, [
215
- _cache[15] || (_cache[15] = createElementVNode("h4", { class: "w-100" }, "Tags", -1)),
216
- createElementVNode("div", _hoisted_10, [
217
- createVNode(IconChevronBottom, {
218
- class: normalizeClass([{ "rotate-180 mn-t-micro-negative": isOpen }, "i-regular"]),
219
- fill: "rgb(var(--black))"
220
- }, null, 8, ["class"])
221
- ])
222
- ])
223
- ]),
224
- content: withCtx(() => [
225
- createElementVNode("div", _hoisted_11, [
226
- createVNode(Field, {
227
- modelValue: searchTag.value,
228
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => searchTag.value = $event),
229
- placeholder: "Search tags...",
230
- type: "text",
231
- class: "w-100 bg-light pd-small radius-small mn-b-small"
232
- }, null, 8, ["modelValue"]),
233
- (openBlock(true), createElementBlock(Fragment, null, renderList(filteredTags.value, (tag) => {
234
- return openBlock(), createBlock(_sfc_main$3, {
235
- key: tag,
236
- checkbox: selectedTags.value,
237
- "onUpdate:checkbox": _cache[2] || (_cache[2] = ($event) => selectedTags.value = $event),
238
- label: tag,
239
- value: tag,
240
- mode: "checkbox",
241
- class: "mn-b-micro"
242
- }, null, 8, ["checkbox", "label", "value"]);
243
- }), 128))
244
- ])
245
- ]),
246
- _: 1
247
- }),
248
- createVNode(_sfc_main$2, {
249
- class: "o-hidden mn-b-medium",
250
- status: true
251
- }, {
252
- header: withCtx(({ isOpen }) => [
253
- createElementVNode("div", _hoisted_12, [
254
- _cache[16] || (_cache[16] = createElementVNode("h4", { class: "w-100" }, "Date Range", -1)),
255
- createElementVNode("div", _hoisted_13, [
256
- createVNode(IconChevronBottom, {
257
- class: normalizeClass([{ "rotate-180 mn-t-micro-negative": isOpen }, "i-regular"]),
258
- fill: "rgb(var(--black))"
259
- }, null, 8, ["class"])
260
- ])
261
- ])
262
- ]),
263
- content: withCtx(() => [
264
- createElementVNode("div", _hoisted_14, [
265
- (openBlock(true), createElementBlock(Fragment, null, renderList(dateRangeOptions.value, (option) => {
266
- return openBlock(), createElementBlock("div", {
267
- key: option.value,
268
- onClick: ($event) => selectDateRange(option.value),
269
- class: normalizeClass([{ "bg-light": selectedDateRange.value === option.value }, "pd-small radius-small cursor-pointer hover-bg-light transition-all mn-b-micro"])
270
- }, toDisplayString(option.label), 11, _hoisted_15);
271
- }), 128)),
272
- createElementVNode("div", {
273
- onClick: _cache[3] || (_cache[3] = () => {
274
- tempSelectedDates.value = selectedDates.value;
275
- showDatePickerPopup.value = true;
276
- }),
277
- class: normalizeClass([{ "bg-light": selectedDateRange.value === "custom" }, "pd-small radius-small cursor-pointer hover-bg-light transition-all mn-b-micro"])
278
- }, toDisplayString(selectedDates.value ? `${unref(formatDate)(selectedDates.value.start, { dayMonth: true, language: "en" })} - ${unref(formatDate)(selectedDates.value.end, { dayMonth: true, language: "en" })}` : "Select custom dates"), 3)
279
- ])
280
- ]),
281
- _: 1
282
- }),
283
- createVNode(_sfc_main$2, {
284
- class: "o-hidden mn-b-medium",
285
- status: true
286
- }, {
287
- header: withCtx(({ isOpen }) => [
288
- createElementVNode("div", _hoisted_16, [
289
- _cache[17] || (_cache[17] = createElementVNode("h4", { class: "w-100" }, "Author", -1)),
290
- createElementVNode("div", _hoisted_17, [
291
- createVNode(IconChevronBottom, {
292
- class: normalizeClass([{ "rotate-180 mn-t-micro-negative": isOpen }, "i-regular"]),
293
- fill: "rgb(var(--black))"
294
- }, null, 8, ["class"])
295
- ])
296
- ])
297
- ]),
298
- content: withCtx(() => [
299
- createElementVNode("div", _hoisted_18, [
300
- createVNode(_sfc_main$3, {
301
- label: "My Posts Only",
302
- checkbox: showMyPostsOnly.value,
303
- "onUpdate:checkbox": _cache[4] || (_cache[4] = ($event) => showMyPostsOnly.value = $event),
304
- mode: "checkbox",
305
- class: "mn-b-micro"
306
- }, null, 8, ["checkbox"])
307
- ])
308
- ]),
309
- _: 1
310
- }),
311
- createElementVNode("button", {
312
- onClick: clearFilters,
313
- class: "bg-main w-100 button mn-t-medium"
314
- }, " Clear Filters ")
315
- ])
316
- ]),
317
- createElementVNode("div", _hoisted_19, [
318
- createVNode(Filters, {
319
- filters: availableFilters.value,
320
- "onUpdate:filters": _cache[5] || (_cache[5] = ($event) => availableFilters.value = $event),
321
- selected: selectedFilters.value,
322
- "onUpdate:selected": _cache[6] || (_cache[6] = ($event) => selectedFilters.value = $event)
323
- }, null, 8, ["filters", "selected"]),
324
- createElementVNode("div", _hoisted_20, [
325
- createElementVNode("div", _hoisted_21, [
326
- (openBlock(true), createElementBlock(Fragment, null, renderList(postCategories.value, (category) => {
327
- return openBlock(), createElementBlock("div", {
328
- key: category.value,
329
- onClick: ($event) => selectCategory(category.value),
330
- class: normalizeClass([{ "bg-main t-white": selectedCategory.value === category.value }, "flex-child-default bg-light flex t-nowrap pd-medium radius-medium cursor-pointer hover-bg-light transition-all"])
331
- }, toDisplayString(category.label), 11, _hoisted_22);
332
- }), 128))
333
- ])
58
+ createVNode(_sfc_main$2, {
59
+ search: true,
60
+ filter: state$2.filter,
61
+ "onUpdate:filter": _cache[1] || (_cache[1] = ($event) => state$2.filter = $event),
62
+ sort: state$2.sort,
63
+ "onUpdate:sort": _cache[2] || (_cache[2] = ($event) => state$2.sort = $event),
64
+ showLoadMore: false,
65
+ states: {
66
+ empty: {
67
+ title: "No Blog Posts Found",
68
+ description: "Currently, there are no posts available in this blog."
69
+ }
70
+ },
71
+ store: {
72
+ read: (options) => read(options),
73
+ state: state$2
74
+ },
75
+ options: {
76
+ limit: 12,
77
+ status: "published",
78
+ user: state.user._id,
79
+ owner: unref(route).params._id || null,
80
+ search: unref(route).query.search
81
+ },
82
+ class: "cols-1 pos-relative w-100 rows-1 gap-thin"
83
+ }, {
84
+ default: withCtx(({
85
+ items
86
+ }) => [
87
+ (openBlock(true), createElementBlock(Fragment, null, renderList(items, (item) => {
88
+ return openBlock(), createBlock(_sfc_main$3, {
89
+ key: item._id,
90
+ blogpost: item,
91
+ user: state.user._id,
92
+ class: "h-max-40r bg-light radius-medium cursor-pointer hover-scale-1 transition-all",
93
+ onClick: ($event) => _ctx.$router.push({
94
+ name: unref(route).params._id ? "Organization_BlogPost" : "BlogPost",
95
+ params: {
96
+ _id: unref(route).params._id,
97
+ url: item.url
98
+ }
99
+ })
100
+ }, null, 8, ["blogpost", "user", "onClick"]);
101
+ }), 128))
334
102
  ]),
335
- createVNode(_sfc_main$4, {
336
- search: true,
337
- filter: state$2.filter,
338
- "onUpdate:filter": _cache[7] || (_cache[7] = ($event) => state$2.filter = $event),
339
- sort: state$2.sort,
340
- "onUpdate:sort": _cache[8] || (_cache[8] = ($event) => state$2.sort = $event),
341
- showLoadMore: false,
342
- states: {
343
- empty: {
344
- title: "No Blog Posts Found",
345
- description: "Currently, there are no posts available in this blog."
346
- }
347
- },
348
- store: {
349
- read: (options) => read(options),
350
- state: state$2
351
- },
352
- options: {
353
- limit: 12,
354
- status: "published",
355
- user: state.user._id,
356
- owner: unref(route).params._id || null,
357
- category: selectedCategory.value !== "all" ? selectedCategory.value : null,
358
- tags: selectedTags.value.length > 0 ? selectedTags.value : null,
359
- author: showMyPostsOnly.value ? state.user._id : null,
360
- dateStart: selectedDates.value?.start,
361
- dateEnd: selectedDates.value?.end,
362
- search: unref(route).query.search
363
- },
364
- class: "cols-3 pos-relative w-100 rows-1 gap-thin"
365
- }, {
366
- default: withCtx(({
367
- items
368
- }) => [
369
- (openBlock(true), createElementBlock(Fragment, null, renderList(items, (item) => {
370
- return openBlock(), createBlock(_sfc_main$5, {
371
- key: item._id,
372
- blogpost: item,
373
- user: state.user._id,
374
- class: "h-max-40r bg-light radius-medium cursor-pointer hover-scale-1 transition-all",
375
- onClick: ($event) => _ctx.$router.push({
376
- name: unref(route).params._id ? "Organization_BlogPost" : "BlogPost",
377
- params: {
378
- _id: unref(route).params._id,
379
- url: item.url
380
- }
381
- })
382
- }, null, 8, ["blogpost", "user", "onClick"]);
383
- }), 128))
384
- ]),
385
- _: 1
386
- }, 8, ["filter", "sort", "store", "options"]),
387
- unref(hasAccess)(unref(route).params._id, "posts", "create", state.accesses, state.access.roles) ? (openBlock(), createElementBlock("button", {
388
- key: 0,
389
- onClick: _cache[9] || (_cache[9] = ($event) => _ctx.$router.push({
390
- name: unref(route).params?._id ? "Organization_PostAdd" : "CreateBlogPost"
391
- })),
392
- class: "mn-t-medium bg-main button w-100"
393
- }, " Create New Post ")) : createCommentVNode("", true)
394
- ])
395
- ]),
396
- createVNode(_sfc_main$6, {
397
- isPopupOpen: showDatePickerPopup.value,
398
- onClosePopup: _cache[12] || (_cache[12] = ($event) => showDatePickerPopup.value = false),
399
- class: "pd-medium bg-white radius-medium",
400
- style: { "min-width": "350px" }
401
- }, {
402
- default: withCtx(() => [
403
- _cache[18] || (_cache[18] = createElementVNode("h3", { class: "mn-b-medium" }, "Select Date Range", -1)),
404
- createVNode(Calendar, {
405
- date: tempSelectedDates.value,
406
- "onUpdate:date": _cache[10] || (_cache[10] = ($event) => tempSelectedDates.value = $event),
407
- allowRange: true,
408
- disablePastDates: false,
409
- class: "mn-b-medium"
410
- }, null, 8, ["date"]),
411
- createElementVNode("div", _hoisted_23, [
412
- createElementVNode("button", {
413
- onClick: applyDateFilter,
414
- class: "bg-main button flex-child-full"
415
- }, " Apply "),
416
- createElementVNode("button", {
417
- onClick: _cache[11] || (_cache[11] = ($event) => showDatePickerPopup.value = false),
418
- class: "bg-light button flex-child-full"
419
- }, " Cancel ")
420
- ])
421
- ]),
422
- _: 1
423
- }, 8, ["isPopupOpen"])
103
+ _: 1
104
+ }, 8, ["filter", "sort", "store", "options"])
105
+ ])
424
106
  ]);
425
107
  };
426
108
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Posts.vue.js","sources":["../../../../../../../src/modules/community/components/pages/Posts.vue"],"sourcesContent":["<template>\n <div class=\"pos-relative\">\n <header \n v-if=\"route.name !== 'Organization' && !MOBILE_APP\"\n class=\"pd-medium flex-v-center flex-nowrap flex\"\n >\n <h2 class=\"mn-r-medium\">Posts</h2>\n <button \n v-if=\"hasAccess(route.params._id, 'posts', 'create', auth.state.accesses, auth.state.access.roles)\"\n @click=\"$router.push({\n name: route.params?._id ? 'Organization_PostAdd' : 'CreateBlogPost'\n })\" \n class=\"radius-100 i-big hover-scale-1 cursor-pointer t-white bg-second\">\n +\n </button>\n </header>\n\n <div class=\"cols-2-1_3 br-1px br-solid br-light z-index-3 pos-relative\">\n\n <div class=\"o-y-scroll br-r br-solid br-light pd-medium z-index-2 desktop-only h-100 pos-relative\">\n <div class=\"w-100 o-y-scroll h-100\">\n <!-- Categories -->\n <div class=\"mn-b-medium\">\n <h4 class=\"mn-b-small\">Categories</h4>\n <div class=\"gap-micro\">\n <div\n v-for=\"category in postCategories\"\n :key=\"category.value\"\n @click=\"selectCategory(category.value)\"\n :class=\"{ 'bg-light': selectedCategory === category.value }\"\n class=\"pd-small radius-small cursor-pointer hover-bg-light transition-all\"\n >\n {{ category.label }}\n </div>\n </div>\n </div>\n\n <!-- Tags Filter -->\n <Spoiler \n class=\"o-hidden mn-b-medium\"\n :status=\"true\"\n >\n <template #header=\"{ isOpen }\">\n <div class=\"cursor-pointer w-100 flex-v-center flex-nowrap flex\">\n <h4 class=\"w-100\">Tags</h4>\n <div class=\"h-2r w-2r flex-child-auto aspect-1x1 flex-center flex bg-light radius-extra\">\n <IconChevronBottom :class=\"{ 'rotate-180 mn-t-micro-negative': isOpen }\" fill=\"rgb(var(--black))\" class=\"i-regular\"/>\n </div>\n </div>\n </template>\n\n <template #content>\n <div class=\"mn-t-small\">\n <Field\n v-model=\"searchTag\"\n placeholder=\"Search tags...\"\n type=\"text\"\n class=\"w-100 bg-light pd-small radius-small mn-b-small\"\n />\n <Checkbox \n v-for=\"tag in filteredTags\"\n :key=\"tag\"\n v-model:checkbox=\"selectedTags\"\n :label=\"tag\"\n :value=\"tag\"\n mode=\"checkbox\"\n class=\"mn-b-micro\"\n />\n </div>\n </template>\n </Spoiler>\n\n <!-- Date Range Filter -->\n <Spoiler \n class=\"o-hidden mn-b-medium\"\n :status=\"true\"\n >\n <template #header=\"{ isOpen }\">\n <div class=\"cursor-pointer w-100 flex-v-center flex-nowrap flex\">\n <h4 class=\"w-100\">Date Range</h4>\n <div class=\"h-2r w-2r flex-child-auto aspect-1x1 flex-center flex bg-light radius-extra\">\n <IconChevronBottom :class=\"{ 'rotate-180 mn-t-micro-negative': isOpen }\" fill=\"rgb(var(--black))\" class=\"i-regular\"/>\n </div>\n </div>\n </template>\n\n <template #content>\n <div class=\"mn-t-small\">\n <div \n v-for=\"option in dateRangeOptions\"\n :key=\"option.value\"\n @click=\"selectDateRange(option.value)\"\n :class=\"{ 'bg-light': selectedDateRange === option.value }\"\n class=\"pd-small radius-small cursor-pointer hover-bg-light transition-all mn-b-micro\"\n >\n {{ option.label }}\n </div>\n \n <div \n @click=\"() => { tempSelectedDates = selectedDates; showDatePickerPopup = true; }\"\n :class=\"{ 'bg-light': selectedDateRange === 'custom' }\"\n class=\"pd-small radius-small cursor-pointer hover-bg-light transition-all mn-b-micro\"\n >\n {{ selectedDates ? `${formatDate(selectedDates.start, { dayMonth: true, language: 'en' })} - ${formatDate(selectedDates.end, { dayMonth: true, language: 'en' })}` : 'Select custom dates'}} \n </div>\n </div>\n </template>\n </Spoiler>\n\n <!-- Author Filter -->\n <Spoiler \n class=\"o-hidden mn-b-medium\"\n :status=\"true\"\n >\n <template #header=\"{ isOpen }\">\n <div class=\"cursor-pointer w-100 flex-v-center flex-nowrap flex\">\n <h4 class=\"w-100\">Author</h4>\n <div class=\"h-2r w-2r flex-child-auto aspect-1x1 flex-center flex bg-light radius-extra\">\n <IconChevronBottom :class=\"{ 'rotate-180 mn-t-micro-negative': isOpen }\" fill=\"rgb(var(--black))\" class=\"i-regular\"/>\n </div>\n </div>\n </template>\n\n <template #content>\n <div class=\"mn-t-small\">\n <Checkbox \n label=\"My Posts Only\"\n v-model:checkbox=\"showMyPostsOnly\"\n mode=\"checkbox\"\n class=\"mn-b-micro\"\n />\n </div>\n </template>\n </Spoiler>\n\n <!-- Clear Filters Button -->\n <button \n @click=\"clearFilters\"\n class=\"bg-main w-100 button mn-t-medium\"\n >\n Clear Filters\n </button>\n </div>\n </div>\n\n <div class=\"w-100 rows-1 pd-thin pos-relative o-hidden\">\n <Filters\n v-model:filters=\"availableFilters\"\n v-model:selected=\"selectedFilters\"\n />\n\n <div class=\"mn-b-thin w-100 o-y-scroll scroll-hide scroll-snap-type-x-mandatory scroll-pd-regular\">\n <div class=\"gap-thin flex-nowrap flex\">\n <div\n v-for=\"category in postCategories\"\n :key=\"category.value\"\n @click=\"selectCategory(category.value)\"\n :class=\"{ 'bg-main t-white': selectedCategory === category.value }\"\n class=\"flex-child-default bg-light flex t-nowrap pd-medium radius-medium cursor-pointer hover-bg-light transition-all\"\n >\n {{ category.label }}\n </div>\n </div>\n </div>\n\n <Feed\n :search=\"true\"\n v-model:filter=\"blog.state.filter\"\n v-model:sort=\"blog.state.sort\"\n :showLoadMore=\"false\"\n :states=\"{\n empty: {\n title: 'No Blog Posts Found',\n description: 'Currently, there are no posts available in this blog.'\n }\n }\"\n :store=\"{\n read: (options) => blog.read(options),\n state: blog.state\n }\"\n :options=\"{\n limit: 12,\n status: 'published',\n user: auth.state.user._id,\n owner: route.params._id || null,\n category: selectedCategory !== 'all' ? selectedCategory : null,\n tags: selectedTags.length > 0 ? selectedTags : null,\n author: showMyPostsOnly ? auth.state.user._id : null,\n dateStart: selectedDates?.start,\n dateEnd: selectedDates?.end,\n search: route.query.search\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"cols-3 pos-relative w-100 rows-1 gap-thin\"\n >\n <CardBlogpost \n v-for=\"item in items\" \n :key=\"item._id\" \n :blogpost=\"item\" \n :user=\"auth.state.user._id\" \n class=\"h-max-40r bg-light radius-medium cursor-pointer hover-scale-1 transition-all\"\n @click=\"$router.push({ \n name: route.params._id ? 'Organization_BlogPost' : 'BlogPost', \n params: { \n _id: route.params._id,\n url: item.url \n } \n })\"\n />\n </Feed>\n\n <button\n v-if=\"hasAccess(route.params._id, 'posts', 'create', auth.state.accesses, auth.state.access.roles)\"\n @click=\"$router.push({\n name: route.params?._id ? 'Organization_PostAdd' : 'CreateBlogPost'\n })\"\n class=\"mn-t-medium bg-main button w-100\"\n >\n Create New Post\n </button>\n </div>\n </div>\n \n <!-- Date Picker Popup -->\n <Popup\n :isPopupOpen=\"showDatePickerPopup\"\n @close-popup=\"showDatePickerPopup = false\"\n class=\"pd-medium bg-white radius-medium\"\n style=\"min-width: 350px;\"\n >\n <h3 class=\"mn-b-medium\">Select Date Range</h3>\n \n <Calendar\n v-model:date=\"tempSelectedDates\"\n :allowRange=\"true\"\n :disablePastDates=\"false\"\n class=\"mn-b-medium\"\n />\n \n <div class=\"flex gap-small\">\n <button \n @click=\"applyDateFilter\"\n class=\"bg-main button flex-child-full\"\n >\n Apply\n </button>\n <button \n @click=\"showDatePickerPopup = false\"\n class=\"bg-light button flex-child-full\"\n >\n Cancel\n </button>\n </div>\n </Popup>\n </div>\n</template>\n\n<script setup=\"props\">\n // Import libs\n import { ref, computed, watch, onMounted, onUnmounted } from 'vue'\n import { useRoute, useRouter } from 'vue-router'\n\n // Import components\n import Feed from '@martyrs/src/components/Feed/Feed.vue'\n import Filters from '@martyrs/src/modules/globals/views/components/sections/Filters.vue'\n import Spoiler from \"@martyrs/src/components/Spoiler/Spoiler.vue\"\n import Field from \"@martyrs/src/components/Field/Field.vue\"\n import Checkbox from \"@martyrs/src/components/Checkbox/Checkbox.vue\"\n import Calendar from \"@martyrs/src/components/Calendar/Calendar.vue\"\n import Popup from \"@martyrs/src/components/Popup/Popup.vue\"\n\n import CardBlogpost from '@martyrs/src/modules/community/components/blocks/CardBlogpost.vue'\n\n import IconPlus from '@martyrs/src/modules/icons/navigation/IconPlus.vue'\n import IconChevronBottom from '@martyrs/src/modules/icons/navigation/IconChevronBottom.vue'\n\n // Accessing router and store\n import * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\n import * as globals from '@martyrs/src/modules/globals/views/store/globals.js';\n import * as blog from '@martyrs/src/modules/community/store/blogposts.js';\n import * as organizations from '@martyrs/src/modules/organizations/store/organizations.js';\n import { useGlobalMixins } from '@martyrs/src/modules/globals/views/mixins/mixins.js';\n\n const route = useRoute()\n const router = useRouter()\n const { hasAccess, formatDate } = useGlobalMixins()\n\n // Props\n const props = defineProps({\n organization: {\n type: Object,\n default: null\n }\n })\n\n // Categories\n const postCategories = ref([\n { label: 'All Posts', value: 'all' },\n { label: 'News', value: 'news' },\n { label: 'Updates', value: 'updates' },\n { label: 'Events', value: 'events' },\n { label: 'Announcements', value: 'announcements' },\n { label: 'Stories', value: 'stories' }\n ]);\n const selectedCategory = ref('all');\n\n // Tags\n const searchTag = ref('');\n const selectedTags = ref([]);\n const availableTags = ref(['featured', 'important', 'trending', 'community', 'official']);\n const filteredTags = computed(() => {\n if (!searchTag.value) return availableTags.value;\n return availableTags.value.filter(tag => \n tag.toLowerCase().includes(searchTag.value.toLowerCase())\n );\n });\n\n // Date Range\n const dateRangeOptions = ref([\n { label: 'All Time', value: 'all' },\n { label: 'Today', value: 'today' },\n { label: 'This Week', value: 'week' },\n { label: 'This Month', value: 'month' },\n { label: 'This Year', value: 'year' }\n ]);\n const selectedDateRange = ref('all');\n const showDatePickerPopup = ref(false);\n const selectedDates = ref(null);\n const tempSelectedDates = ref(null);\n\n // Author\n const showMyPostsOnly = ref(false);\n\n const availableFilters = ref([\n {\n title: 'Category',\n value: 'category',\n type: 'radio',\n options: postCategories.value\n },\n {\n title: 'Status',\n value: 'status',\n type: 'radio',\n options: [\n { label: 'Published', value: 'published' },\n { label: 'Draft', value: 'draft' },\n { label: 'Archived', value: 'archived' }\n ]\n }\n ])\n\n const selectedFilters = ref({\n category: 'all',\n status: 'published'\n })\n\n const selectCategory = (category) => {\n selectedCategory.value = category;\n selectedFilters.value.category = category;\n };\n\n const selectDateRange = (range) => {\n selectedDateRange.value = range;\n const today = new Date();\n \n switch(range) {\n case 'all':\n selectedDates.value = null;\n break;\n case 'today':\n selectedDates.value = {\n start: today,\n end: today\n };\n break;\n case 'week':\n const weekStart = new Date(today);\n weekStart.setDate(today.getDate() - today.getDay());\n selectedDates.value = {\n start: weekStart,\n end: today\n };\n break;\n case 'month':\n const monthStart = new Date(today.getFullYear(), today.getMonth(), 1);\n selectedDates.value = {\n start: monthStart,\n end: today\n };\n break;\n case 'year':\n const yearStart = new Date(today.getFullYear(), 0, 1);\n selectedDates.value = {\n start: yearStart,\n end: today\n };\n break;\n }\n };\n\n const applyDateFilter = () => {\n selectedDates.value = tempSelectedDates.value;\n selectedDateRange.value = 'custom';\n showDatePickerPopup.value = false;\n };\n\n const clearFilters = () => {\n selectedCategory.value = 'all';\n selectedTags.value = [];\n selectedDateRange.value = 'all';\n selectedDates.value = null;\n showMyPostsOnly.value = false;\n searchTag.value = '';\n selectedFilters.value = {\n category: 'all',\n status: 'published'\n };\n };\n\n globals.state.navigation_bar.actions = [{\n component: IconPlus,\n props: {\n fill: \"rgb(var(--main))\" \n },\n condition: () => auth.state.user && auth.state.user._id,\n action: () => route.params._id ? router.push({ name: 'Organization_PostAdd', params: { _id: route.params._id} }) : router.push({ name: 'CreateBlogPost' })\n }]\n\n onMounted(async () => {\n if (route.params._id) {\n await organizations.actions.read({ _id: route.params._id });\n }\n })\n\n onUnmounted(() => {\n globals.state.navigation_bar.actions = [];\n });\n</script>\n\n<style lang=\"scss\">\n</style>"],"names":["globals.state","IconPlus","auth.state","organizations.actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6RE,UAAM,QAAQ,SAAQ;AACtB,UAAM,SAAS,UAAS;AACxB,UAAM,EAAE,WAAW,WAAU,IAAK,gBAAe;AAWjD,UAAM,iBAAiB,IAAI;AAAA,MACzB,EAAE,OAAO,aAAa,OAAO,MAAK;AAAA,MAClC,EAAE,OAAO,QAAQ,OAAO,OAAM;AAAA,MAC9B,EAAE,OAAO,WAAW,OAAO,UAAS;AAAA,MACpC,EAAE,OAAO,UAAU,OAAO,SAAQ;AAAA,MAClC,EAAE,OAAO,iBAAiB,OAAO,gBAAe;AAAA,MAChD,EAAE,OAAO,WAAW,OAAO,UAAS;AAAA,IACxC,CAAG;AACD,UAAM,mBAAmB,IAAI,KAAK;AAGlC,UAAM,YAAY,IAAI,EAAE;AACxB,UAAM,eAAe,IAAI,EAAE;AAC3B,UAAM,gBAAgB,IAAI,CAAC,YAAY,aAAa,YAAY,aAAa,UAAU,CAAC;AACxF,UAAM,eAAe,SAAS,MAAM;AAClC,UAAI,CAAC,UAAU,MAAO,QAAO,cAAc;AAC3C,aAAO,cAAc,MAAM;AAAA,QAAO,SAChC,IAAI,YAAW,EAAG,SAAS,UAAU,MAAM,YAAW,CAAE;AAAA,MAC9D;AAAA,IACE,CAAC;AAGD,UAAM,mBAAmB,IAAI;AAAA,MAC3B,EAAE,OAAO,YAAY,OAAO,MAAK;AAAA,MACjC,EAAE,OAAO,SAAS,OAAO,QAAO;AAAA,MAChC,EAAE,OAAO,aAAa,OAAO,OAAM;AAAA,MACnC,EAAE,OAAO,cAAc,OAAO,QAAO;AAAA,MACrC,EAAE,OAAO,aAAa,OAAO,OAAM;AAAA,IACvC,CAAG;AACD,UAAM,oBAAoB,IAAI,KAAK;AACnC,UAAM,sBAAsB,IAAI,KAAK;AACrC,UAAM,gBAAgB,IAAI,IAAI;AAC9B,UAAM,oBAAoB,IAAI,IAAI;AAGlC,UAAM,kBAAkB,IAAI,KAAK;AAEjC,UAAM,mBAAmB,IAAI;AAAA,MAC3B;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAM;AAAA,QACN,SAAS,eAAe;AAAA,MAC9B;AAAA,MACI;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAM;AAAA,QACN,SAAS;AAAA,UACP,EAAE,OAAO,aAAa,OAAO,YAAW;AAAA,UACxC,EAAE,OAAO,SAAS,OAAO,QAAO;AAAA,UAChC,EAAE,OAAO,YAAY,OAAO,WAAU;AAAA,QAC9C;AAAA,MACA;AAAA,IACA,CAAG;AAED,UAAM,kBAAkB,IAAI;AAAA,MAC1B,UAAU;AAAA,MACV,QAAQ;AAAA,IACZ,CAAG;AAED,UAAM,iBAAiB,CAAC,aAAa;AACnC,uBAAiB,QAAQ;AACzB,sBAAgB,MAAM,WAAW;AAAA,IACnC;AAEA,UAAM,kBAAkB,CAAC,UAAU;AACjC,wBAAkB,QAAQ;AAC1B,YAAM,QAAQ,oBAAI,KAAI;AAEtB,cAAO,OAAK;AAAA,QACV,KAAK;AACH,wBAAc,QAAQ;AACtB;AAAA,QACF,KAAK;AACH,wBAAc,QAAQ;AAAA,YACpB,OAAO;AAAA,YACP,KAAK;AAAA,UACf;AACQ;AAAA,QACF,KAAK;AACH,gBAAM,YAAY,IAAI,KAAK,KAAK;AAChC,oBAAU,QAAQ,MAAM,QAAO,IAAK,MAAM,QAAQ;AAClD,wBAAc,QAAQ;AAAA,YACpB,OAAO;AAAA,YACP,KAAK;AAAA,UACf;AACQ;AAAA,QACF,KAAK;AACH,gBAAM,aAAa,IAAI,KAAK,MAAM,YAAW,GAAI,MAAM,SAAQ,GAAI,CAAC;AACpE,wBAAc,QAAQ;AAAA,YACpB,OAAO;AAAA,YACP,KAAK;AAAA,UACf;AACQ;AAAA,QACF,KAAK;AACH,gBAAM,YAAY,IAAI,KAAK,MAAM,YAAW,GAAI,GAAG,CAAC;AACpD,wBAAc,QAAQ;AAAA,YACpB,OAAO;AAAA,YACP,KAAK;AAAA,UACf;AACQ;AAAA,MACR;AAAA,IACE;AAEA,UAAM,kBAAkB,MAAM;AAC5B,oBAAc,QAAQ,kBAAkB;AACxC,wBAAkB,QAAQ;AAC1B,0BAAoB,QAAQ;AAAA,IAC9B;AAEA,UAAM,eAAe,MAAM;AACzB,uBAAiB,QAAQ;AACzB,mBAAa,QAAQ,CAAA;AACrB,wBAAkB,QAAQ;AAC1B,oBAAc,QAAQ;AACtB,sBAAgB,QAAQ;AACxB,gBAAU,QAAQ;AAClB,sBAAgB,QAAQ;AAAA,QACtB,UAAU;AAAA,QACV,QAAQ;AAAA,MACd;AAAA,IACE;AAEAA,YAAc,eAAe,UAAU,CAAC;AAAA,MACtC,WAAWC;AAAAA,MACX,OAAO;AAAA,QACL,MAAM;AAAA,MACZ;AAAA,MACI,WAAW,MAAMC,MAAW,QAAQA,MAAW,KAAK;AAAA,MACpD,QAAQ,MAAM,MAAM,OAAO,MAAM,OAAO,KAAK,EAAE,MAAM,wBAAwB,QAAQ,EAAE,KAAK,MAAM,OAAO,IAAG,EAAC,CAAE,IAAI,OAAO,KAAK,EAAE,MAAM,iBAAgB,CAAE;AAAA,IAC7J,CAAG;AAED,cAAU,YAAY;AACpB,UAAI,MAAM,OAAO,KAAK;AACpB,cAAMC,QAAsB,KAAK,EAAE,KAAK,MAAM,OAAO,KAAK;AAAA,MAC5D;AAAA,IACF,CAAC;AAED,gBAAY,MAAM;AAChBH,cAAc,eAAe,UAAU,CAAA;AAAA,IACzC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Posts.vue.js","sources":["../../../../../../../src/modules/community/components/pages/Posts.vue"],"sourcesContent":["<template>\n <div class=\"pos-relative\">\n <header \n v-if=\"route.name !== 'Organization' && !MOBILE_APP\"\n class=\"pd-medium flex-v-center flex-nowrap flex\"\n >\n <h2 class=\"mn-r-medium\">Posts</h2>\n <button \n v-if=\"hasAccess(route.params._id, 'posts', 'create', auth.state.accesses, auth.state.access.roles)\"\n @click=\"$router.push({\n name: route.params?._id ? 'Organization_PostAdd' : 'CreateBlogPost'\n })\" \n class=\"radius-100 i-big hover-scale-1 cursor-pointer t-white bg-second\">\n +\n </button>\n </header>\n\n <div class=\"w-100 rows-1 pd-thin pos-relative o-hidden\">\n <Feed\n :search=\"true\"\n v-model:filter=\"blog.state.filter\"\n v-model:sort=\"blog.state.sort\"\n :showLoadMore=\"false\"\n :states=\"{\n empty: {\n title: 'No Blog Posts Found',\n description: 'Currently, there are no posts available in this blog.'\n }\n }\"\n :store=\"{\n read: (options) => blog.read(options),\n state: blog.state\n }\"\n :options=\"{\n limit: 12,\n status: 'published',\n user: auth.state.user._id,\n owner: route.params._id || null,\n search: route.query.search\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"cols-1 pos-relative w-100 rows-1 gap-thin\"\n >\n <CardBlogpost \n v-for=\"item in items\" \n :key=\"item._id\" \n :blogpost=\"item\" \n :user=\"auth.state.user._id\" \n class=\"h-max-40r bg-light radius-medium cursor-pointer hover-scale-1 transition-all\"\n @click=\"$router.push({ \n name: route.params._id ? 'Organization_BlogPost' : 'BlogPost', \n params: { \n _id: route.params._id,\n url: item.url \n } \n })\"\n />\n </Feed>\n\n </div>\n </div>\n</template>\n\n<script setup=\"props\">\n // Import libs\n import { ref, computed, watch, onMounted, onUnmounted } from 'vue'\n import { useRoute, useRouter } from 'vue-router'\n\n // Import components\n import Feed from '@martyrs/src/components/Feed/Feed.vue'\n\n import CardBlogpost from '@martyrs/src/modules/community/components/blocks/CardBlogpost.vue'\n\n import IconPlus from '@martyrs/src/modules/icons/navigation/IconPlus.vue'\n\n // Accessing router and store\n import * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\n import * as globals from '@martyrs/src/modules/globals/views/store/globals.js';\n import * as blog from '@martyrs/src/modules/community/store/blogposts.js';\n import * as organizations from '@martyrs/src/modules/organizations/store/organizations.js';\n import { useGlobalMixins } from '@martyrs/src/modules/globals/views/mixins/mixins.js';\n\n const route = useRoute()\n const router = useRouter()\n const { hasAccess } = useGlobalMixins()\n\n // Props\n const props = defineProps({\n organization: {\n type: Object,\n default: null\n }\n })\n\n\n globals.state.navigation_bar.actions = [{\n component: IconPlus,\n props: {\n fill: \"rgb(var(--main))\" \n },\n condition: () => auth.state.user && auth.state.user._id,\n action: () => route.params._id ? router.push({ name: 'Organization_PostAdd', params: { _id: route.params._id} }) : router.push({ name: 'CreateBlogPost' })\n }]\n\n onMounted(async () => {\n if (route.params._id) {\n await organizations.actions.read({ _id: route.params._id });\n }\n })\n\n onUnmounted(() => {\n globals.state.navigation_bar.actions = [];\n });\n</script>\n\n<style lang=\"scss\">\n</style>"],"names":["globals.state","IconPlus","auth.state","organizations.actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAoFE,UAAM,QAAQ,SAAQ;AACtB,UAAM,SAAS,UAAS;AACxB,UAAM,EAAE,UAAS,IAAK,gBAAe;AAWrCA,YAAc,eAAe,UAAU,CAAC;AAAA,MACtC,WAAWC;AAAAA,MACX,OAAO;AAAA,QACL,MAAM;AAAA,MACZ;AAAA,MACI,WAAW,MAAMC,MAAW,QAAQA,MAAW,KAAK;AAAA,MACpD,QAAQ,MAAM,MAAM,OAAO,MAAM,OAAO,KAAK,EAAE,MAAM,wBAAwB,QAAQ,EAAE,KAAK,MAAM,OAAO,IAAG,EAAC,CAAE,IAAI,OAAO,KAAK,EAAE,MAAM,iBAAgB,CAAE;AAAA,IAC7J,CAAG;AAED,cAAU,YAAY;AACpB,UAAI,MAAM,OAAO,KAAK;AACpB,cAAMC,QAAsB,KAAK,EAAE,KAAK,MAAM,OAAO,KAAK;AAAA,MAC5D;AAAA,IACF,CAAC;AAED,gBAAY,MAAM;AAChBH,cAAc,eAAe,UAAU,CAAA;AAAA,IACzC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -28,7 +28,7 @@ const _hoisted_6 = ["src"];
28
28
  const _hoisted_7 = { class: "mn-r-auto" };
29
29
  const _hoisted_8 = { class: "h4" };
30
30
  const _hoisted_9 = { class: "h5 t-transp mn-b-thin" };
31
- const _hoisted_10 = { class: "pd-r-thin pd-l-thin pd-b-nano pd-t-nano bg-second radius-extra t-white t-medium d-block w-max uppercase" };
31
+ const _hoisted_10 = { class: "pd-thin ]bg-second radius-extra t-white t-medium d-block w-max uppercase" };
32
32
  const _sfc_main = {
33
33
  __name: "EditEventTickets",
34
34
  setup(__props) {
@@ -1 +1 @@
1
- {"version":3,"file":"EditEventTickets.vue.cjs","sources":["../../../../../../../src/modules/events/components/pages/EditEventTickets.vue"],"sourcesContent":["<template>\n <article v-if=\"event\" class=\"h-100 pd-thin\">\n <header \n class=\"mn-b-medium flex-v-center flex-nowrap flex\"\n >\n <h2 class=\"mn-r-medium\">Tickets</h2>\n <button \n @click=\"openTicketsPopup()\" \n class=\"radius-extra uppercase button-small flex-child flex-child-shrink-0 hover-scale-1 cursor-pointer t-white bg-second\">\n Add Tickets\n </button>\n <ButtonCheck @qrcodecheck=\"fetchTickets = !fetchTickets \" class=\"w-100 pd-medium mn-auto\" />\n </header>\n \n <Popup \n @close-popup=\"closeTicketsPopup\" \n :isPopupOpen=\"isOpenTicketsPopup\"\n class=\"w-max-40r\"\n >\n <Block\n title=\"Add tickets\"\n placeholder=\"No parameters added yet\"\n class=\"cols-1 mn-b-thin gap-thin\"\n >\n <div \n class=\"gap-thin flex-nowrap flex\" \n v-for=\"(item, index) in newTickets\" \n :key=\"index\"\n > \n <Field\n v-model:field=\"item.name\"\n placeholder=\"Name\"\n class=\"w-50 bg-white radius-small pd-medium\"\n /> \n <Field\n v-model:field=\"item.seat\"\n placeholder=\"Seat\"\n class=\"w-50 bg-white radius-small pd-medium\"\n />\n <Field\n v-model:field=\"item.email\"\n placeholder=\"Email\"\n class=\"w-100 bg-white radius-small pd-medium\"\n />\n \n <Field\n v-model:field=\"item.quantity\"\n placeholder=\"Quantity\"\n type=\"number\"\n class=\"w-25 bg-white radius-small pd-medium\"\n />\n \n <div v-if=\"index < 1\" @click=\"() => newTickets.push({name: '', value: '', target: event._id, type: 'event', quantity: 1})\" class=\"radius-small h-100 i-big flex-center flex aspect-1x1 bg-green\">\n <IconAdd \n class=\"i-medium\"\n :fill=\"'rgb(var(--white)'\"\n />\n </div>\n <div v-else @click=\"() => newTickets.splice(index, 1)\" class=\"radius-small h-100 i-big flex-center flex aspect-1x1 bg-red\">\n <IconDelete \n class=\"i-medium\"\n :fill=\"'rgb(var(--white)'\"\n />\n </div>\n </div>\n\n <Button \n :submit=\"onSubmit\" \n :callback=\"closeTicketsPopup\" \n class=\"w-100 bg-black t-white\"\n >\n Create Tickets\n </Button>\n </Block>\n </Popup>\n\n <Feed\n :search=\"true\"\n :states=\"{\n empty: {\n title: 'No Tickets Found',\n description: 'Currently, there are no tickets.'\n }\n }\"\n :store=\"{\n read: (options) => tickets.actions.read(options),\n state: null\n }\"\n :options=\"{\n target: event._id\n }\"\n :external=\"fetchTickets\"\n v-slot=\"{ \n items \n }\"\n >\n <div\n v-for=\"(ticket, index) in items\" \n class=\"radius-big bg-light gap-small pd-medium flex-v-center flex-nowrap flex pos-relative mn-b-thin\"\n >\n <a :href=\"ticket.image\" target=\"_blank\"><img loading=\"lazy\" :src=\"ticket.qrcode\" class=\"radius-small h-5r w-5r\"></a>\n\n <div class=\"mn-r-auto \">\n <p class=\"h4\">\n {{ticket.client_refactor?.name || 'No name'}}, {{ticket.seat}}\n </p>\n <p class=\"h5 t-transp mn-b-thin\">\n {{ticket.client_refactor?.email || 'No email'}}\n </p>\n\n <span class=\"pd-r-thin pd-l-thin pd-b-nano pd-t-nano bg-second radius-extra t-white t-medium d-block w-max uppercase\">\n {{ticket.status}}\n </span>\n </div>\n\n <Button \n v-if=\"ticket.status !== 'deactivated'\"\n :submit=\"() => changeStatus(ticket, 'deactivated')\" \n :callback=\"redirectTo\" \n class=\"w-min h-min pd-small bg-black t-white\"\n >\n Deactivate\n </Button>\n\n <Button \n v-if=\"ticket.status === 'deactivated' || ticket.status === 'used' \"\n :submit=\"() => changeStatus(ticket, 'unused')\" \n :callback=\"redirectTo\" \n class=\"w-min h-min pd-small bg-green t-white\"\n >\n Activate\n </Button>\n \n </div>\n </Feed>\n \n </article>\n</template>\n\n<script setup>\nimport Feed from '@martyrs/src/components/Feed/Feed.vue';\nimport Block from '@martyrs/src/components/Block/Block.vue';\nimport Popup from \"@martyrs/src/components/Popup/Popup.vue\";\nimport Field from '@martyrs/src/components/Field/Field.vue'\nimport Button from '@martyrs/src/components/Button/Button.vue'; \n\nimport ButtonCheck from '@martyrs/src/modules/events/components/elements/ButtonCheck.vue'\n\nimport IconDelete from '@martyrs/src/modules/icons/navigation/IconDelete.vue';\nimport IconAdd from '@martyrs/src/modules/icons/navigation/IconAdd.vue';\n\nimport { ref, onMounted } from 'vue';\nimport { useRoute, useRouter } from 'vue-router';\n\nimport * as events from '@martyrs/src/modules/events/store/events.js';\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\nimport * as organizations from '@martyrs/src/modules/organizations/store/organizations.js';\n\nimport * as tickets from '@martyrs/src/modules/events/store/tickets.js';\n\nimport { useGlobalMixins } from \"@martyrs/src/modules/globals/views/mixins/mixins.js\"\n\nconst { hasAccess } = useGlobalMixins()\n\nconst route = useRoute();\nconst router = useRouter();\n\nlet event = ref(null);\n\nconst newTickets = ref([{\n name: '',\n email: '',\n target: event.value?._id, \n type: 'event',\n seat: '',\n quantity: 1,\n}])\n\nconst isOpenTicketsPopup = ref(false);\n\nfunction openTicketsPopup(department) {\n isOpenTicketsPopup.value = true;\n \n newTickets.value = [{\n name: '',\n email: '',\n target: event.value?._id, \n type: 'event',\n seat: '',\n quantity: 1,\n }]\n}\n\nfunction closeTicketsPopup() {\n isOpenTicketsPopup.value = false;\n}\n\nconst fetchTickets = ref(false)\n\n\nonMounted(async () =>{\n const data = await events.read({ user: auth.state.user._id, url: route.params.url });\n\n event.value = data.pop();\n\n if (!event.value) {\n router.push({name: 'notfound'})\n }\n\n if (event.value.owner.type === 'organization') {\n // Если пост принадлежит организации, проверяем права на редактирование через `hasAccess`\n const isAccess = hasAccess(event.value.owner.target._id, 'events', 'edit', auth.state.accesses, auth.state.access.roles);\n\n if (!isAccess) {\n router.push({name: 'unauthorized'})\n }\n } else {\n // Если пост не принадлежит организации, проверяем авторство\n if (event.value.creator.target._id !== userId) {\n router.push({name: 'unauthorized'})\n }\n }\n})\n\nasync function onSubmit() {\n try {\n const response = await tickets.actions.create(newTickets.value);\n fetchTickets.value = !fetchTickets.value\n } catch (error) {\n console.log(error);\n }\n}\n\nasync function changeStatus(ticket, status) {\n if (confirm('Are you sure you want to deactivate this event?')) {\n try {\n const response = await tickets.actions.update({ ...ticket, status: status});\n fetchTickets.value = !fetchTickets.value\n } catch (error) {\n console.error(error);\n }\n }\n}\n\n</script>\n\n<style lang=\"scss\">\n .dp__input {\n border: 0;\n padding: var(--medium);\n padding-left: 3rem;\n background: rgb(var(--grey))\n }\n</style>"],"names":["useGlobalMixins","useRoute","useRouter","ref","onMounted","events.read","auth.state","tickets.actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkKA,UAAM,EAAE,UAAS,IAAKA,OAAAA,gBAAe;AAErC,UAAM,QAAQC,UAAAA,SAAQ;AACtB,UAAM,SAASC,UAAAA,UAAS;AAExB,QAAI,QAAQC,IAAAA,IAAI,IAAI;AAEpB,UAAM,aAAaA,IAAAA,IAAI,CAAC;AAAA,MACtB,MAAM;AAAA,MACN,OAAO;AAAA,MACP,QAAQ,MAAM,OAAO;AAAA,MACrB,MAAM;AAAA,MACN,MAAM;AAAA,MACN,UAAU;AAAA,IACZ,CAAC,CAAC;AAEF,UAAM,qBAAqBA,IAAAA,IAAI,KAAK;AAEpC,aAAS,iBAAiB,YAAY;AACpC,yBAAmB,QAAQ;AAE3B,iBAAW,QAAQ,CAAC;AAAA,QAClB,MAAM;AAAA,QACN,OAAO;AAAA,QACP,QAAQ,MAAM,OAAO;AAAA,QACrB,MAAM;AAAA,QACN,MAAM;AAAA,QACN,UAAU;AAAA,MACd,CAAG;AAAA,IACH;AAEA,aAAS,oBAAoB;AAC3B,yBAAmB,QAAQ;AAAA,IAC7B;AAEA,UAAM,eAAeA,IAAAA,IAAI,KAAK;AAG9BC,QAAAA,UAAU,YAAW;AACnB,YAAM,OAAO,MAAMC,YAAY,EAAE,MAAMC,KAAAA,MAAW,KAAK,KAAK,KAAK,MAAM,OAAO,IAAG,CAAE;AAEnF,YAAM,QAAQ,KAAK,IAAG;AAEtB,UAAI,CAAC,MAAM,OAAO;AACjB,eAAO,KAAK,EAAC,MAAM,WAAU,CAAC;AAAA,MAC/B;AAEA,UAAI,MAAM,MAAM,MAAM,SAAS,gBAAgB;AAE7C,cAAM,WAAW,UAAU,MAAM,MAAM,MAAM,OAAO,KAAK,UAAU,QAAQA,KAAAA,MAAW,UAAUA,KAAAA,MAAW,OAAO,KAAK;AAEvH,YAAI,CAAC,UAAU;AACb,iBAAO,KAAK,EAAC,MAAM,eAAc,CAAC;AAAA,QACpC;AAAA,MACF,OAAO;AAEL,YAAI,MAAM,MAAM,QAAQ,OAAO,QAAQ,QAAQ;AAC7C,iBAAO,KAAK,EAAC,MAAM,eAAc,CAAC;AAAA,QACpC;AAAA,MACF;AAAA,IACF,CAAC;AAED,mBAAe,WAAW;AACxB,UAAI;AACF,cAAM,WAAW,MAAMC,QAAAA,QAAgB,OAAO,WAAW,KAAK;AAC9D,qBAAa,QAAQ,CAAC,aAAa;AAAA,MACrC,SAAS,OAAO;AACd,gBAAQ,IAAI,KAAK;AAAA,MACnB;AAAA,IACF;AAEA,mBAAe,aAAa,QAAQ,QAAQ;AAC1C,UAAI,QAAQ,iDAAiD,GAAG;AAC9D,YAAI;AACF,gBAAM,WAAW,MAAMA,QAAAA,QAAgB,OAAO,EAAE,GAAG,QAAQ,OAAc,CAAC;AAC1E,uBAAa,QAAQ,CAAC,aAAa;AAAA,QACrC,SAAS,OAAO;AACd,kBAAQ,MAAM,KAAK;AAAA,QACrB;AAAA,MACF;AAAA,IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"EditEventTickets.vue.cjs","sources":["../../../../../../../src/modules/events/components/pages/EditEventTickets.vue"],"sourcesContent":["<template>\n <article v-if=\"event\" class=\"h-100 pd-thin\">\n <header \n class=\"mn-b-medium flex-v-center flex-nowrap flex\"\n >\n <h2 class=\"mn-r-medium\">Tickets</h2>\n <button \n @click=\"openTicketsPopup()\" \n class=\"radius-extra uppercase button-small flex-child flex-child-shrink-0 hover-scale-1 cursor-pointer t-white bg-second\">\n Add Tickets\n </button>\n <ButtonCheck @qrcodecheck=\"fetchTickets = !fetchTickets \" class=\"w-100 pd-medium mn-auto\" />\n </header>\n \n <Popup \n @close-popup=\"closeTicketsPopup\" \n :isPopupOpen=\"isOpenTicketsPopup\"\n class=\"w-max-40r\"\n >\n <Block\n title=\"Add tickets\"\n placeholder=\"No parameters added yet\"\n class=\"cols-1 mn-b-thin gap-thin\"\n >\n <div \n class=\"gap-thin flex-nowrap flex\" \n v-for=\"(item, index) in newTickets\" \n :key=\"index\"\n > \n <Field\n v-model:field=\"item.name\"\n placeholder=\"Name\"\n class=\"w-50 bg-white radius-small pd-medium\"\n /> \n <Field\n v-model:field=\"item.seat\"\n placeholder=\"Seat\"\n class=\"w-50 bg-white radius-small pd-medium\"\n />\n <Field\n v-model:field=\"item.email\"\n placeholder=\"Email\"\n class=\"w-100 bg-white radius-small pd-medium\"\n />\n \n <Field\n v-model:field=\"item.quantity\"\n placeholder=\"Quantity\"\n type=\"number\"\n class=\"w-25 bg-white radius-small pd-medium\"\n />\n \n <div v-if=\"index < 1\" @click=\"() => newTickets.push({name: '', value: '', target: event._id, type: 'event', quantity: 1})\" class=\"radius-small h-100 i-big flex-center flex aspect-1x1 bg-green\">\n <IconAdd \n class=\"i-medium\"\n :fill=\"'rgb(var(--white)'\"\n />\n </div>\n <div v-else @click=\"() => newTickets.splice(index, 1)\" class=\"radius-small h-100 i-big flex-center flex aspect-1x1 bg-red\">\n <IconDelete \n class=\"i-medium\"\n :fill=\"'rgb(var(--white)'\"\n />\n </div>\n </div>\n\n <Button \n :submit=\"onSubmit\" \n :callback=\"closeTicketsPopup\" \n class=\"w-100 bg-black t-white\"\n >\n Create Tickets\n </Button>\n </Block>\n </Popup>\n\n <Feed\n :search=\"true\"\n :states=\"{\n empty: {\n title: 'No Tickets Found',\n description: 'Currently, there are no tickets.'\n }\n }\"\n :store=\"{\n read: (options) => tickets.actions.read(options),\n state: null\n }\"\n :options=\"{\n target: event._id\n }\"\n :external=\"fetchTickets\"\n v-slot=\"{ \n items \n }\"\n >\n <div\n v-for=\"(ticket, index) in items\" \n class=\"radius-big bg-light gap-small pd-medium flex-v-center flex-nowrap flex pos-relative mn-b-thin\"\n >\n <a :href=\"ticket.image\" target=\"_blank\"><img loading=\"lazy\" :src=\"ticket.qrcode\" class=\"radius-small h-5r w-5r\"></a>\n\n <div class=\"mn-r-auto \">\n <p class=\"h4\">\n {{ticket.client_refactor?.name || 'No name'}}, {{ticket.seat}}\n </p>\n <p class=\"h5 t-transp mn-b-thin\">\n {{ticket.client_refactor?.email || 'No email'}}\n </p>\n\n <span class=\"pd-thin ]bg-second radius-extra t-white t-medium d-block w-max uppercase\">\n {{ticket.status}}\n </span>\n </div>\n\n <Button \n v-if=\"ticket.status !== 'deactivated'\"\n :submit=\"() => changeStatus(ticket, 'deactivated')\" \n :callback=\"redirectTo\" \n class=\"w-min h-min pd-small bg-black t-white\"\n >\n Deactivate\n </Button>\n\n <Button \n v-if=\"ticket.status === 'deactivated' || ticket.status === 'used' \"\n :submit=\"() => changeStatus(ticket, 'unused')\" \n :callback=\"redirectTo\" \n class=\"w-min h-min pd-small bg-green t-white\"\n >\n Activate\n </Button>\n \n </div>\n </Feed>\n \n </article>\n</template>\n\n<script setup>\nimport Feed from '@martyrs/src/components/Feed/Feed.vue';\nimport Block from '@martyrs/src/components/Block/Block.vue';\nimport Popup from \"@martyrs/src/components/Popup/Popup.vue\";\nimport Field from '@martyrs/src/components/Field/Field.vue'\nimport Button from '@martyrs/src/components/Button/Button.vue'; \n\nimport ButtonCheck from '@martyrs/src/modules/events/components/elements/ButtonCheck.vue'\n\nimport IconDelete from '@martyrs/src/modules/icons/navigation/IconDelete.vue';\nimport IconAdd from '@martyrs/src/modules/icons/navigation/IconAdd.vue';\n\nimport { ref, onMounted } from 'vue';\nimport { useRoute, useRouter } from 'vue-router';\n\nimport * as events from '@martyrs/src/modules/events/store/events.js';\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\nimport * as organizations from '@martyrs/src/modules/organizations/store/organizations.js';\n\nimport * as tickets from '@martyrs/src/modules/events/store/tickets.js';\n\nimport { useGlobalMixins } from \"@martyrs/src/modules/globals/views/mixins/mixins.js\"\n\nconst { hasAccess } = useGlobalMixins()\n\nconst route = useRoute();\nconst router = useRouter();\n\nlet event = ref(null);\n\nconst newTickets = ref([{\n name: '',\n email: '',\n target: event.value?._id, \n type: 'event',\n seat: '',\n quantity: 1,\n}])\n\nconst isOpenTicketsPopup = ref(false);\n\nfunction openTicketsPopup(department) {\n isOpenTicketsPopup.value = true;\n \n newTickets.value = [{\n name: '',\n email: '',\n target: event.value?._id, \n type: 'event',\n seat: '',\n quantity: 1,\n }]\n}\n\nfunction closeTicketsPopup() {\n isOpenTicketsPopup.value = false;\n}\n\nconst fetchTickets = ref(false)\n\n\nonMounted(async () =>{\n const data = await events.read({ user: auth.state.user._id, url: route.params.url });\n\n event.value = data.pop();\n\n if (!event.value) {\n router.push({name: 'notfound'})\n }\n\n if (event.value.owner.type === 'organization') {\n // Если пост принадлежит организации, проверяем права на редактирование через `hasAccess`\n const isAccess = hasAccess(event.value.owner.target._id, 'events', 'edit', auth.state.accesses, auth.state.access.roles);\n\n if (!isAccess) {\n router.push({name: 'unauthorized'})\n }\n } else {\n // Если пост не принадлежит организации, проверяем авторство\n if (event.value.creator.target._id !== userId) {\n router.push({name: 'unauthorized'})\n }\n }\n})\n\nasync function onSubmit() {\n try {\n const response = await tickets.actions.create(newTickets.value);\n fetchTickets.value = !fetchTickets.value\n } catch (error) {\n console.log(error);\n }\n}\n\nasync function changeStatus(ticket, status) {\n if (confirm('Are you sure you want to deactivate this event?')) {\n try {\n const response = await tickets.actions.update({ ...ticket, status: status});\n fetchTickets.value = !fetchTickets.value\n } catch (error) {\n console.error(error);\n }\n }\n}\n\n</script>\n\n<style lang=\"scss\">\n .dp__input {\n border: 0;\n padding: var(--medium);\n padding-left: 3rem;\n background: rgb(var(--grey))\n }\n</style>"],"names":["useGlobalMixins","useRoute","useRouter","ref","onMounted","events.read","auth.state","tickets.actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkKA,UAAM,EAAE,UAAS,IAAKA,OAAAA,gBAAe;AAErC,UAAM,QAAQC,UAAAA,SAAQ;AACtB,UAAM,SAASC,UAAAA,UAAS;AAExB,QAAI,QAAQC,IAAAA,IAAI,IAAI;AAEpB,UAAM,aAAaA,IAAAA,IAAI,CAAC;AAAA,MACtB,MAAM;AAAA,MACN,OAAO;AAAA,MACP,QAAQ,MAAM,OAAO;AAAA,MACrB,MAAM;AAAA,MACN,MAAM;AAAA,MACN,UAAU;AAAA,IACZ,CAAC,CAAC;AAEF,UAAM,qBAAqBA,IAAAA,IAAI,KAAK;AAEpC,aAAS,iBAAiB,YAAY;AACpC,yBAAmB,QAAQ;AAE3B,iBAAW,QAAQ,CAAC;AAAA,QAClB,MAAM;AAAA,QACN,OAAO;AAAA,QACP,QAAQ,MAAM,OAAO;AAAA,QACrB,MAAM;AAAA,QACN,MAAM;AAAA,QACN,UAAU;AAAA,MACd,CAAG;AAAA,IACH;AAEA,aAAS,oBAAoB;AAC3B,yBAAmB,QAAQ;AAAA,IAC7B;AAEA,UAAM,eAAeA,IAAAA,IAAI,KAAK;AAG9BC,QAAAA,UAAU,YAAW;AACnB,YAAM,OAAO,MAAMC,YAAY,EAAE,MAAMC,KAAAA,MAAW,KAAK,KAAK,KAAK,MAAM,OAAO,IAAG,CAAE;AAEnF,YAAM,QAAQ,KAAK,IAAG;AAEtB,UAAI,CAAC,MAAM,OAAO;AACjB,eAAO,KAAK,EAAC,MAAM,WAAU,CAAC;AAAA,MAC/B;AAEA,UAAI,MAAM,MAAM,MAAM,SAAS,gBAAgB;AAE7C,cAAM,WAAW,UAAU,MAAM,MAAM,MAAM,OAAO,KAAK,UAAU,QAAQA,KAAAA,MAAW,UAAUA,KAAAA,MAAW,OAAO,KAAK;AAEvH,YAAI,CAAC,UAAU;AACb,iBAAO,KAAK,EAAC,MAAM,eAAc,CAAC;AAAA,QACpC;AAAA,MACF,OAAO;AAEL,YAAI,MAAM,MAAM,QAAQ,OAAO,QAAQ,QAAQ;AAC7C,iBAAO,KAAK,EAAC,MAAM,eAAc,CAAC;AAAA,QACpC;AAAA,MACF;AAAA,IACF,CAAC;AAED,mBAAe,WAAW;AACxB,UAAI;AACF,cAAM,WAAW,MAAMC,QAAAA,QAAgB,OAAO,WAAW,KAAK;AAC9D,qBAAa,QAAQ,CAAC,aAAa;AAAA,MACrC,SAAS,OAAO;AACd,gBAAQ,IAAI,KAAK;AAAA,MACnB;AAAA,IACF;AAEA,mBAAe,aAAa,QAAQ,QAAQ;AAC1C,UAAI,QAAQ,iDAAiD,GAAG;AAC9D,YAAI;AACF,gBAAM,WAAW,MAAMA,QAAAA,QAAgB,OAAO,EAAE,GAAG,QAAQ,OAAc,CAAC;AAC1E,uBAAa,QAAQ,CAAC,aAAa;AAAA,QACrC,SAAS,OAAO;AACd,kBAAQ,MAAM,KAAK;AAAA,QACrB;AAAA,MACF;AAAA,IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -26,7 +26,7 @@ const _hoisted_6 = ["src"];
26
26
  const _hoisted_7 = { class: "mn-r-auto" };
27
27
  const _hoisted_8 = { class: "h4" };
28
28
  const _hoisted_9 = { class: "h5 t-transp mn-b-thin" };
29
- const _hoisted_10 = { class: "pd-r-thin pd-l-thin pd-b-nano pd-t-nano bg-second radius-extra t-white t-medium d-block w-max uppercase" };
29
+ const _hoisted_10 = { class: "pd-thin ]bg-second radius-extra t-white t-medium d-block w-max uppercase" };
30
30
  const _sfc_main = {
31
31
  __name: "EditEventTickets",
32
32
  setup(__props) {