@ozdao/prometheus-framework 0.2.323 → 0.2.324

Sign up to get free protection for your applications and to get access to all the features.
Files changed (305) hide show
  1. package/dist/Media-BjSScxrV.js +1 -0
  2. package/dist/Media-CCVndMgQ.mjs +111 -0
  3. package/dist/main-BBmjvE8i.js +92 -0
  4. package/dist/main-BCskq3d2.mjs +13068 -0
  5. package/dist/main.css +1 -1
  6. package/dist/prometheus-framework/src/components/Button/Button.vue.cjs +9 -11
  7. package/dist/prometheus-framework/src/components/Button/Button.vue.cjs.map +1 -1
  8. package/dist/prometheus-framework/src/components/Button/Button.vue.js +10 -12
  9. package/dist/prometheus-framework/src/components/Button/Button.vue.js.map +1 -1
  10. package/dist/prometheus-framework/src/components/DatePicker/Calendar.vue2.cjs +37 -9
  11. package/dist/prometheus-framework/src/components/DatePicker/Calendar.vue2.cjs.map +1 -1
  12. package/dist/prometheus-framework/src/components/DatePicker/Calendar.vue2.js +37 -9
  13. package/dist/prometheus-framework/src/components/DatePicker/Calendar.vue2.js.map +1 -1
  14. package/dist/prometheus-framework/src/components/DatePicker/DatePicker.vue.cjs +27 -18
  15. package/dist/prometheus-framework/src/components/DatePicker/DatePicker.vue.cjs.map +1 -1
  16. package/dist/prometheus-framework/src/components/DatePicker/DatePicker.vue.js +27 -18
  17. package/dist/prometheus-framework/src/components/DatePicker/DatePicker.vue.js.map +1 -1
  18. package/dist/prometheus-framework/src/components/EmptyState/EmptyState.vue.cjs +2 -2
  19. package/dist/prometheus-framework/src/components/EmptyState/EmptyState.vue.js +2 -2
  20. package/dist/prometheus-framework/src/components/Feed/Feed.vue.cjs +6 -2
  21. package/dist/prometheus-framework/src/components/Feed/Feed.vue.cjs.map +1 -1
  22. package/dist/prometheus-framework/src/components/Feed/Feed.vue.js +6 -2
  23. package/dist/prometheus-framework/src/components/Feed/Feed.vue.js.map +1 -1
  24. package/dist/prometheus-framework/src/components/Media/Media.vue.cjs +154 -0
  25. package/dist/prometheus-framework/src/components/Media/Media.vue.cjs.map +1 -0
  26. package/dist/prometheus-framework/src/components/Media/Media.vue.js +154 -0
  27. package/dist/prometheus-framework/src/components/Media/Media.vue.js.map +1 -0
  28. package/dist/prometheus-framework/src/components/Popup/Popup.vue.cjs +1 -4
  29. package/dist/prometheus-framework/src/components/Popup/Popup.vue.cjs.map +1 -1
  30. package/dist/prometheus-framework/src/components/Popup/Popup.vue.js +1 -4
  31. package/dist/prometheus-framework/src/components/Popup/Popup.vue.js.map +1 -1
  32. package/dist/prometheus-framework/src/components/Slider/Slider.vue.cjs +68 -37
  33. package/dist/prometheus-framework/src/components/Slider/Slider.vue.cjs.map +1 -1
  34. package/dist/prometheus-framework/src/components/Slider/Slider.vue.js +69 -38
  35. package/dist/prometheus-framework/src/components/Slider/Slider.vue.js.map +1 -1
  36. package/dist/prometheus-framework/src/modules/auth/views/components/pages/Profile.vue.cjs +2 -1
  37. package/dist/prometheus-framework/src/modules/auth/views/components/pages/Profile.vue.cjs.map +1 -1
  38. package/dist/prometheus-framework/src/modules/auth/views/components/pages/Profile.vue.js +2 -1
  39. package/dist/prometheus-framework/src/modules/auth/views/components/pages/Profile.vue.js.map +1 -1
  40. package/dist/prometheus-framework/src/modules/backoffice/backoffice.client.cjs +0 -2
  41. package/dist/prometheus-framework/src/modules/backoffice/backoffice.client.cjs.map +1 -1
  42. package/dist/prometheus-framework/src/modules/backoffice/backoffice.client.js +4 -6
  43. package/dist/prometheus-framework/src/modules/backoffice/backoffice.client.js.map +1 -1
  44. package/dist/prometheus-framework/src/modules/backoffice/components/pages/Dashboard.vue.cjs +119 -4
  45. package/dist/prometheus-framework/src/modules/backoffice/components/pages/Dashboard.vue.cjs.map +1 -1
  46. package/dist/prometheus-framework/src/modules/backoffice/components/pages/Dashboard.vue.js +120 -5
  47. package/dist/prometheus-framework/src/modules/backoffice/components/pages/Dashboard.vue.js.map +1 -1
  48. package/dist/prometheus-framework/src/modules/backoffice/components/partials/Sidebar.vue.cjs +113 -164
  49. package/dist/prometheus-framework/src/modules/backoffice/components/partials/Sidebar.vue.cjs.map +1 -1
  50. package/dist/prometheus-framework/src/modules/backoffice/components/partials/Sidebar.vue.js +120 -171
  51. package/dist/prometheus-framework/src/modules/backoffice/components/partials/Sidebar.vue.js.map +1 -1
  52. package/dist/prometheus-framework/src/modules/backoffice/router/backoffice.cjs +0 -17
  53. package/dist/prometheus-framework/src/modules/backoffice/router/backoffice.cjs.map +1 -1
  54. package/dist/prometheus-framework/src/modules/backoffice/router/backoffice.js +2 -19
  55. package/dist/prometheus-framework/src/modules/backoffice/router/backoffice.js.map +1 -1
  56. package/dist/prometheus-framework/src/modules/community/components/blocks/CardBlogpost.vue.cjs +1 -1
  57. package/dist/prometheus-framework/src/modules/community/components/blocks/CardBlogpost.vue.js +1 -1
  58. package/dist/prometheus-framework/src/modules/community/components/layouts/Community.vue.cjs +17 -77
  59. package/dist/prometheus-framework/src/modules/community/components/layouts/Community.vue.cjs.map +1 -1
  60. package/dist/prometheus-framework/src/modules/community/components/layouts/Community.vue.js +22 -82
  61. package/dist/prometheus-framework/src/modules/community/components/layouts/Community.vue.js.map +1 -1
  62. package/dist/prometheus-framework/src/modules/community/components/pages/BlogPost.vue.cjs +1 -1
  63. package/dist/prometheus-framework/src/modules/community/components/pages/BlogPost.vue.js +1 -1
  64. package/dist/prometheus-framework/src/modules/community/components/pages/CreateBlogPost.vue.cjs +1 -1
  65. package/dist/prometheus-framework/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
  66. package/dist/prometheus-framework/src/modules/community/components/sections/HotPosts.vue.js +4 -4
  67. package/dist/prometheus-framework/src/modules/events/components/blocks/CardEvent.vue.cjs +34 -25
  68. package/dist/prometheus-framework/src/modules/events/components/blocks/CardEvent.vue.cjs.map +1 -1
  69. package/dist/prometheus-framework/src/modules/events/components/blocks/CardEvent.vue.js +35 -26
  70. package/dist/prometheus-framework/src/modules/events/components/blocks/CardEvent.vue.js.map +1 -1
  71. package/dist/prometheus-framework/src/modules/events/components/pages/EditEvent.vue.cjs +2 -2
  72. package/dist/prometheus-framework/src/modules/events/components/pages/EditEvent.vue.js +2 -2
  73. package/dist/prometheus-framework/src/modules/events/components/pages/EditEventTickets.vue.cjs +1 -1
  74. package/dist/prometheus-framework/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
  75. package/dist/prometheus-framework/src/modules/events/components/pages/Event.vue.cjs +9 -4
  76. package/dist/prometheus-framework/src/modules/events/components/pages/Event.vue.cjs.map +1 -1
  77. package/dist/prometheus-framework/src/modules/events/components/pages/Event.vue.js +20 -15
  78. package/dist/prometheus-framework/src/modules/events/components/pages/Event.vue.js.map +1 -1
  79. package/dist/prometheus-framework/src/modules/events/components/pages/Events.vue.cjs +221 -50
  80. package/dist/prometheus-framework/src/modules/events/components/pages/Events.vue.cjs.map +1 -1
  81. package/dist/prometheus-framework/src/modules/events/components/pages/Events.vue.js +225 -54
  82. package/dist/prometheus-framework/src/modules/events/components/pages/Events.vue.js.map +1 -1
  83. package/dist/prometheus-framework/src/modules/events/components/sections/EventsHot.vue.cjs +98 -0
  84. package/dist/prometheus-framework/src/modules/events/components/sections/EventsHot.vue.cjs.map +1 -0
  85. package/dist/prometheus-framework/src/modules/events/components/sections/EventsHot.vue.js +98 -0
  86. package/dist/prometheus-framework/src/modules/events/components/sections/EventsHot.vue.js.map +1 -0
  87. package/dist/prometheus-framework/src/modules/events/components/sections/FeaturedEvents.vue.cjs +9 -9
  88. package/dist/prometheus-framework/src/modules/events/components/sections/FeaturedEvents.vue.cjs.map +1 -1
  89. package/dist/prometheus-framework/src/modules/events/components/sections/FeaturedEvents.vue.js +9 -9
  90. package/dist/prometheus-framework/src/modules/events/components/sections/FeaturedEvents.vue.js.map +1 -1
  91. package/dist/prometheus-framework/src/modules/events/components/sections/List.vue.cjs +1 -1
  92. package/dist/prometheus-framework/src/modules/events/components/sections/List.vue.cjs.map +1 -1
  93. package/dist/prometheus-framework/src/modules/events/components/sections/List.vue.js +1 -1
  94. package/dist/prometheus-framework/src/modules/events/components/sections/List.vue.js.map +1 -1
  95. package/dist/prometheus-framework/src/modules/events/events.client.cjs +1 -0
  96. package/dist/prometheus-framework/src/modules/events/events.client.cjs.map +1 -1
  97. package/dist/prometheus-framework/src/modules/events/events.client.js +1 -0
  98. package/dist/prometheus-framework/src/modules/events/events.client.js.map +1 -1
  99. package/dist/prometheus-framework/src/modules/events/router/events.cjs.map +1 -1
  100. package/dist/prometheus-framework/src/modules/events/router/events.js.map +1 -1
  101. package/dist/prometheus-framework/src/modules/events/store/events.cjs +2 -1
  102. package/dist/prometheus-framework/src/modules/events/store/events.cjs.map +1 -1
  103. package/dist/prometheus-framework/src/modules/events/store/events.js +2 -1
  104. package/dist/prometheus-framework/src/modules/events/store/events.js.map +1 -1
  105. package/dist/prometheus-framework/src/modules/gallery/components/pages/Gallery.vue.cjs +1 -1
  106. package/dist/prometheus-framework/src/modules/gallery/components/pages/Gallery.vue.js +1 -1
  107. package/dist/prometheus-framework/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +3 -3
  108. package/dist/prometheus-framework/src/modules/gallery/components/sections/BackofficeGallery.vue.js +3 -3
  109. package/dist/prometheus-framework/src/modules/globals/views/components/layouts/App.vue.cjs +4 -4
  110. package/dist/prometheus-framework/src/modules/globals/views/components/layouts/App.vue.cjs.map +1 -1
  111. package/dist/prometheus-framework/src/modules/globals/views/components/layouts/App.vue.js +4 -4
  112. package/dist/prometheus-framework/src/modules/globals/views/components/layouts/App.vue.js.map +1 -1
  113. package/dist/prometheus-framework/src/modules/globals/views/components/layouts/Client.vue.cjs +11 -5
  114. package/dist/prometheus-framework/src/modules/globals/views/components/layouts/Client.vue.cjs.map +1 -1
  115. package/dist/prometheus-framework/src/modules/globals/views/components/layouts/Client.vue.js +11 -5
  116. package/dist/prometheus-framework/src/modules/globals/views/components/layouts/Client.vue.js.map +1 -1
  117. package/dist/prometheus-framework/src/modules/globals/views/components/partials/CitySelection.vue.cjs +100 -0
  118. package/dist/prometheus-framework/src/modules/globals/views/components/partials/CitySelection.vue.cjs.map +1 -0
  119. package/dist/prometheus-framework/src/modules/globals/views/components/partials/CitySelection.vue.js +100 -0
  120. package/dist/prometheus-framework/src/modules/globals/views/components/partials/CitySelection.vue.js.map +1 -0
  121. package/dist/prometheus-framework/src/modules/globals/views/components/partials/Header.vue.cjs +5 -6
  122. package/dist/prometheus-framework/src/modules/globals/views/components/partials/Header.vue.cjs.map +1 -1
  123. package/dist/prometheus-framework/src/modules/globals/views/components/partials/Header.vue.js +5 -6
  124. package/dist/prometheus-framework/src/modules/globals/views/components/partials/Header.vue.js.map +1 -1
  125. package/dist/prometheus-framework/src/modules/globals/views/components/partials/Sidebar.vue.cjs +1 -6
  126. package/dist/prometheus-framework/src/modules/globals/views/components/partials/Sidebar.vue.cjs.map +1 -1
  127. package/dist/prometheus-framework/src/modules/globals/views/components/partials/Sidebar.vue.js +1 -6
  128. package/dist/prometheus-framework/src/modules/globals/views/components/partials/Sidebar.vue.js.map +1 -1
  129. package/dist/prometheus-framework/src/modules/globals/views/mixins/mixins.cjs +30 -14
  130. package/dist/prometheus-framework/src/modules/globals/views/mixins/mixins.cjs.map +1 -1
  131. package/dist/prometheus-framework/src/modules/globals/views/mixins/mixins.js +30 -14
  132. package/dist/prometheus-framework/src/modules/globals/views/mixins/mixins.js.map +1 -1
  133. package/dist/prometheus-framework/src/modules/icons/actions/IconShopcartAdd.vue.cjs +33 -0
  134. package/dist/prometheus-framework/src/modules/icons/actions/IconShopcartAdd.vue.cjs.map +1 -0
  135. package/dist/prometheus-framework/src/modules/icons/actions/IconShopcartAdd.vue.js +33 -0
  136. package/dist/prometheus-framework/src/modules/icons/actions/IconShopcartAdd.vue.js.map +1 -0
  137. package/dist/prometheus-framework/src/modules/icons/entities/IconCommunity.vue.cjs +4 -17
  138. package/dist/prometheus-framework/src/modules/icons/entities/IconCommunity.vue.cjs.map +1 -1
  139. package/dist/prometheus-framework/src/modules/icons/entities/IconCommunity.vue.js +4 -17
  140. package/dist/prometheus-framework/src/modules/icons/entities/IconCommunity.vue.js.map +1 -1
  141. package/dist/prometheus-framework/src/modules/icons/entities/IconPayments.vue.cjs +34 -0
  142. package/dist/prometheus-framework/src/modules/icons/entities/IconPayments.vue.cjs.map +1 -0
  143. package/dist/prometheus-framework/src/modules/icons/entities/IconPayments.vue.js +34 -0
  144. package/dist/prometheus-framework/src/modules/icons/entities/IconPayments.vue.js.map +1 -0
  145. package/dist/prometheus-framework/src/modules/icons/entities/IconPrice.vue.cjs +27 -17
  146. package/dist/prometheus-framework/src/modules/icons/entities/IconPrice.vue.cjs.map +1 -1
  147. package/dist/prometheus-framework/src/modules/icons/entities/IconPrice.vue.js +28 -18
  148. package/dist/prometheus-framework/src/modules/icons/entities/IconPrice.vue.js.map +1 -1
  149. package/dist/prometheus-framework/src/modules/icons/icons.client.cjs +2 -0
  150. package/dist/prometheus-framework/src/modules/icons/icons.client.cjs.map +1 -1
  151. package/dist/prometheus-framework/src/modules/icons/icons.client.js +50 -48
  152. package/dist/prometheus-framework/src/modules/icons/icons.client.js.map +1 -1
  153. package/dist/prometheus-framework/src/modules/orders/components/blocks/CardOrderItem.vue.cjs +1 -1
  154. package/dist/prometheus-framework/src/modules/orders/components/blocks/CardOrderItem.vue.cjs.map +1 -1
  155. package/dist/prometheus-framework/src/modules/orders/components/blocks/CardOrderItem.vue.js +1 -1
  156. package/dist/prometheus-framework/src/modules/orders/components/blocks/CardOrderItem.vue.js.map +1 -1
  157. package/dist/prometheus-framework/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +1 -1
  158. package/dist/prometheus-framework/src/modules/orders/components/pages/OrderBackoffice.vue.js +1 -1
  159. package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +2 -2
  160. package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +2 -2
  161. package/dist/prometheus-framework/src/modules/orders/store/shopcart.cjs +67 -2
  162. package/dist/prometheus-framework/src/modules/orders/store/shopcart.cjs.map +1 -1
  163. package/dist/prometheus-framework/src/modules/orders/store/shopcart.js +67 -2
  164. package/dist/prometheus-framework/src/modules/orders/store/shopcart.js.map +1 -1
  165. package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardOrganization.vue.cjs +1 -1
  166. package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardOrganization.vue.js +7 -7
  167. package/dist/prometheus-framework/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +1 -1
  168. package/dist/prometheus-framework/src/modules/organizations/components/pages/DepartmentEdit.vue.js +1 -1
  169. package/dist/prometheus-framework/src/modules/organizations/components/pages/Members.vue.cjs +1 -1
  170. package/dist/prometheus-framework/src/modules/organizations/components/pages/Members.vue.js +1 -1
  171. package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +1 -1
  172. package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
  173. package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +2 -2
  174. package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationEdit.vue.js +2 -2
  175. package/dist/prometheus-framework/src/modules/organizations/components/pages/Organizations.vue.cjs +1 -1
  176. package/dist/prometheus-framework/src/modules/organizations/components/pages/Organizations.vue.cjs.map +1 -1
  177. package/dist/prometheus-framework/src/modules/organizations/components/pages/Organizations.vue.js +1 -1
  178. package/dist/prometheus-framework/src/modules/organizations/components/pages/Organizations.vue.js.map +1 -1
  179. package/dist/prometheus-framework/src/modules/organizations/components/sections/DetailsTabSection.vue.cjs +1 -1
  180. package/dist/prometheus-framework/src/modules/organizations/components/sections/DetailsTabSection.vue.js +1 -1
  181. package/dist/prometheus-framework/src/modules/organizations/components/sections/Documents.vue.cjs +1 -1
  182. package/dist/prometheus-framework/src/modules/organizations/components/sections/Documents.vue.js +1 -1
  183. package/dist/prometheus-framework/src/modules/pages/pages.client.cjs +773 -745
  184. package/dist/prometheus-framework/src/modules/pages/pages.client.js +773 -745
  185. package/dist/prometheus-framework/src/modules/pages/views/components/partials/SidebarPages.vue.cjs +1 -1
  186. package/dist/prometheus-framework/src/modules/pages/views/components/partials/SidebarPages.vue.js +1 -1
  187. package/dist/prometheus-framework/src/modules/products/components/blocks/CardPosition.vue.cjs +1 -1
  188. package/dist/prometheus-framework/src/modules/products/components/blocks/CardPosition.vue.js +1 -1
  189. package/dist/prometheus-framework/src/modules/products/components/blocks/CardProduct.vue.cjs +4 -15
  190. package/dist/prometheus-framework/src/modules/products/components/blocks/CardProduct.vue.cjs.map +1 -1
  191. package/dist/prometheus-framework/src/modules/products/components/blocks/CardProduct.vue.js +4 -15
  192. package/dist/prometheus-framework/src/modules/products/components/blocks/CardProduct.vue.js.map +1 -1
  193. package/dist/prometheus-framework/src/modules/products/components/blocks/ImagesThumbnails.vue.cjs +4 -4
  194. package/dist/prometheus-framework/src/modules/products/components/blocks/ImagesThumbnails.vue.cjs.map +1 -1
  195. package/dist/prometheus-framework/src/modules/products/components/blocks/ImagesThumbnails.vue.js +4 -4
  196. package/dist/prometheus-framework/src/modules/products/components/blocks/ImagesThumbnails.vue.js.map +1 -1
  197. package/dist/prometheus-framework/src/modules/products/components/elements/Price.vue.cjs +24 -30
  198. package/dist/prometheus-framework/src/modules/products/components/elements/Price.vue.cjs.map +1 -1
  199. package/dist/prometheus-framework/src/modules/products/components/elements/Price.vue.js +25 -31
  200. package/dist/prometheus-framework/src/modules/products/components/elements/Price.vue.js.map +1 -1
  201. package/dist/prometheus-framework/src/modules/products/components/pages/EditLeftover.vue.cjs +2 -2
  202. package/dist/prometheus-framework/src/modules/products/components/pages/EditLeftover.vue.js +2 -2
  203. package/dist/prometheus-framework/src/modules/products/components/pages/Product.vue.cjs +236 -13
  204. package/dist/prometheus-framework/src/modules/products/components/pages/Product.vue.cjs.map +1 -1
  205. package/dist/prometheus-framework/src/modules/products/components/pages/Product.vue.js +239 -16
  206. package/dist/prometheus-framework/src/modules/products/components/pages/Product.vue.js.map +1 -1
  207. package/dist/prometheus-framework/src/modules/products/components/pages/ProductEdit.vue.cjs +1 -1
  208. package/dist/prometheus-framework/src/modules/products/components/pages/ProductEdit.vue.js +1 -1
  209. package/dist/prometheus-framework/src/modules/products/components/sections/SectionProduct.vue.cjs +60 -14
  210. package/dist/prometheus-framework/src/modules/products/components/sections/SectionProduct.vue.cjs.map +1 -1
  211. package/dist/prometheus-framework/src/modules/products/components/sections/SectionProduct.vue.js +67 -21
  212. package/dist/prometheus-framework/src/modules/products/components/sections/SectionProduct.vue.js.map +1 -1
  213. package/dist/prometheus-framework/src/modules/products/products.client.cjs +0 -3
  214. package/dist/prometheus-framework/src/modules/products/products.client.cjs.map +1 -1
  215. package/dist/prometheus-framework/src/modules/products/products.client.js +48 -51
  216. package/dist/prometheus-framework/src/modules/products/products.client.js.map +1 -1
  217. package/dist/prometheus-framework/src/modules/reports/components/sections/FormReport.vue.cjs +1 -1
  218. package/dist/prometheus-framework/src/modules/reports/components/sections/FormReport.vue.js +1 -1
  219. package/dist/prometheus-framework/src/modules/spots/components/blocks/CardSpot.vue.cjs +1 -1
  220. package/dist/prometheus-framework/src/modules/spots/components/blocks/CardSpot.vue.js +1 -1
  221. package/dist/prometheus-framework/src/modules/spots/components/pages/SpotEdit.vue.cjs +1 -1
  222. package/dist/prometheus-framework/src/modules/spots/components/pages/SpotEdit.vue.js +1 -1
  223. package/dist/prometheus-framework/src/modules/wallet/views/components/pages/Wallet.vue.cjs +2 -2
  224. package/dist/prometheus-framework/src/modules/wallet/views/components/pages/Wallet.vue.js +2 -2
  225. package/dist/prometheus-framework.cjs.js +1 -92
  226. package/dist/prometheus-framework.es.js +36 -13005
  227. package/package.json +1 -1
  228. package/src/components/Button/Button.vue +43 -40
  229. package/src/components/DatePicker/Calendar.vue +15 -7
  230. package/src/components/DatePicker/DatePicker.vue +50 -40
  231. package/src/components/EmptyState/EmptyState.vue +2 -2
  232. package/src/components/Feed/Feed.vue +6 -2
  233. package/src/components/Media/Media.vue +211 -0
  234. package/src/components/Popup/Popup.vue +19 -21
  235. package/src/components/Slider/Slider.vue +57 -21
  236. package/src/components/index.js +1 -0
  237. package/src/main.js +3 -1
  238. package/src/modules/auth/views/components/pages/Profile.vue +2 -1
  239. package/src/modules/backoffice/backoffice.client.js +0 -2
  240. package/src/modules/backoffice/components/pages/Dashboard.vue +95 -2
  241. package/src/modules/backoffice/components/partials/Sidebar.vue +115 -132
  242. package/src/modules/backoffice/router/backoffice.js +0 -14
  243. package/src/modules/community/components/layouts/Community.vue +1 -52
  244. package/src/modules/events/components/blocks/CardEvent.vue +28 -22
  245. package/src/modules/events/components/pages/Event.vue +2 -6
  246. package/src/modules/events/components/pages/Events.vue +241 -56
  247. package/src/modules/events/components/sections/EventsHot.vue +93 -0
  248. package/src/modules/events/components/sections/FeaturedEvents.vue +17 -15
  249. package/src/modules/events/components/sections/List.vue +1 -1
  250. package/src/modules/events/events.client.js +1 -0
  251. package/src/modules/events/router/events.js +0 -4
  252. package/src/modules/events/store/events.js +1 -0
  253. package/src/modules/globals/views/components/layouts/App.vue +4 -5
  254. package/src/modules/globals/views/components/layouts/Client.vue +8 -2
  255. package/src/modules/globals/views/components/partials/CitySelection.vue +88 -0
  256. package/src/modules/globals/views/components/partials/Header.vue +3 -3
  257. package/src/modules/globals/views/components/partials/Navigation.vue +75 -20
  258. package/src/modules/globals/views/components/partials/Sidebar.vue +2 -9
  259. package/src/modules/globals/views/mixins/mixins.js +56 -35
  260. package/src/modules/governance/DESCRIPTION.MD +238 -0
  261. package/src/modules/governance/controllers/factories/initiatives.controller.js +3 -1
  262. package/src/modules/governance/controllers/routes/initiatives.routes.js +1 -1
  263. package/src/modules/governance/controllers/routes/tasks.routes.js +1 -1
  264. package/src/modules/governance/controllers/routes/votes.routes.js +1 -1
  265. package/src/modules/governance/controllers/routes/votings.routes.js +1 -1
  266. package/src/modules/governance/governance.client.js +35 -35
  267. package/src/modules/governance/governance.server.js +8 -8
  268. package/src/modules/governance/models/milestone.model.js +98 -0
  269. package/src/modules/governance/models/task.model.js +39 -7
  270. package/src/modules/governance/views/components/pages/Initiative.vue +1 -1
  271. package/src/modules/governance/views/components/pages/InitiativeCreate.vue +2 -2
  272. package/src/modules/governance/views/components/pages/Initiatives.vue +3 -2
  273. package/src/modules/governance/views/components/pages/Task.vue +1 -1
  274. package/src/modules/governance/views/components/pages/TaskCreate.vue +2 -2
  275. package/src/modules/governance/views/components/pages/Tasks.vue +2 -2
  276. package/src/modules/governance/views/components/pages/Voting.vue +3 -3
  277. package/src/modules/governance/views/components/pages/VotingCreate.vue +2 -2
  278. package/src/modules/governance/views/components/pages/Votings.vue +2 -2
  279. package/src/modules/governance/views/components/sections/VoteForm.vue +1 -1
  280. package/src/modules/governance/views/router/goverance.router.js +263 -0
  281. package/src/modules/icons/actions/IconShopcartAdd.vue +15 -0
  282. package/src/modules/icons/entities/IconCommunity.vue +4 -6
  283. package/src/modules/icons/entities/IconPayments.vue +14 -0
  284. package/src/modules/icons/entities/IconPrice.vue +12 -3
  285. package/src/modules/icons/icons.client.js +5 -0
  286. package/src/modules/icons/logos/Logotype.vue +50 -17
  287. package/src/modules/orders/components/blocks/CardOrderItem.vue +2 -0
  288. package/src/modules/orders/store/shopcart.js +100 -1
  289. package/src/modules/organizations/components/pages/Organizations.vue +1 -1
  290. package/src/modules/products/components/blocks/CardProduct.vue +5 -11
  291. package/src/modules/products/components/blocks/ImagesThumbnails.vue +4 -4
  292. package/src/modules/products/components/elements/Price.vue +33 -56
  293. package/src/modules/products/components/pages/Product.vue +235 -13
  294. package/src/modules/products/components/sections/SectionProduct.vue +50 -25
  295. package/src/modules/products/products.client.js +0 -4
  296. package/src/styles/base/all.scss +15 -16
  297. package/src/styles/config.scss +2 -2
  298. package/src/modules/backoffice/components/layouts/Backoffice.vue +0 -55
  299. package/src/modules/events/components/sections/SectionLineup.vue +0 -42
  300. package/src/modules/events/components/sections/SectionMainGuest.vue +0 -95
  301. package/src/modules/events/components/sections/SectionPreviousEvents.vue +0 -117
  302. package/src/modules/events/components/sections/SectionSpecialGuests.vue +0 -46
  303. package/src/modules/governance/controllers/factories/projects.controller.js +0 -65
  304. package/src/modules/governance/controllers/routes/projects.routes.js +0 -34
  305. package/src/modules/governance/models/project.model.js +0 -26
@@ -1,4 +1,4 @@
1
- const voteFactory = require("../controllers/votes.controller");
1
+ const voteFactory = require("../factories/votes.controller");
2
2
 
3
3
  module.exports = function(app, db, origins, publicPath) {
4
4
  const controller = voteFactory(db);
@@ -1,4 +1,4 @@
1
- const votingFactory = require("../controllers/votings.controller");
1
+ const votingFactory = require("../factories/votings.controller");
2
2
 
3
3
  module.exports = function(app, db, origins, publicPath) {
4
4
  const controller = votingFactory(db);
@@ -1,21 +1,22 @@
1
- import * as storeInitiatives from './store/initiatives.js';
2
- import * as storeTasks from './store/tasks.js';
3
- import * as storeVotings from './store/votings.js';
4
- import * as storeRewards from './store/rewards.js';
1
+ import * as storeInitiatives from './views/store/initiatives.js';
2
+ import * as storeTasks from './views/store/tasks.js';
3
+ import * as storeVotings from './views/store/votings.js';
4
+ import * as storeVotes from './views/store/votes.js';
5
5
 
6
6
  // Router
7
- import routerGovernance from './router/governance.router.js';
7
+ import { createGovernanceRoutes } from './views/router/goverance.router';
8
8
 
9
9
  // Example initialization function for the Governance module
10
10
  function initializeGovernance(app, store, router, options = {}) {
11
11
  const route = options.route || 'Home';
12
-
13
- router.addRoute(route, routerGovernance);
12
+ const routesGovernance = createGovernanceRoutes('', options);
13
+
14
+ router.addRoute(route, routesGovernance);
14
15
 
15
16
  store.addStore('initiatives', storeInitiatives);
16
17
  store.addStore('tasks', storeTasks);
17
18
  store.addStore('votings', storeVotings);
18
- store.addStore('rewards', storeRewards);
19
+ store.addStore('votes', storeVotes);
19
20
  }
20
21
 
21
22
  const ModuleGovernance = {
@@ -26,36 +27,35 @@ const ModuleGovernance = {
26
27
  storeTasks,
27
28
  storeVotings,
28
29
  storeVotes,
29
- storeRewards
30
30
  },
31
31
  router: {
32
- routerGovernance
32
+ createGovernanceRoutes
33
33
  },
34
- components: {
35
- // Pages
36
- Initiatives,
37
- Initiative,
38
- InitiativeCreate,
39
- Tasks,
40
- Task,
41
- TaskCreate,
42
- Votings,
43
- Voting,
44
- VotingCreate,
45
- // Blocks
46
- CardInitiativeItem,
47
- CardTaskItem,
48
- CardVotingItem,
49
- // Sections
50
- FormInitiativeDetails,
51
- FormTaskDetails,
52
- FormVotingDetails,
53
- VoteForm,
54
- // Partials
55
- RewardDisplay,
56
- VotingResult,
57
- VoteDisplay,
58
- }
34
+ // components: {
35
+ // // Pages
36
+ // Initiatives,
37
+ // Initiative,
38
+ // InitiativeCreate,
39
+ // Tasks,
40
+ // Task,
41
+ // TaskCreate,
42
+ // Votings,
43
+ // Voting,
44
+ // VotingCreate,
45
+ // // Blocks
46
+ // CardInitiativeItem,
47
+ // CardTaskItem,
48
+ // CardVotingItem,
49
+ // // Sections
50
+ // FormInitiativeDetails,
51
+ // FormTaskDetails,
52
+ // FormVotingDetails,
53
+ // VoteForm,
54
+ // // Partials
55
+ // RewardDisplay,
56
+ // VotingResult,
57
+ // VoteDisplay,
58
+ // }
59
59
  }
60
60
  }
61
61
 
@@ -4,15 +4,15 @@ const ModelTask = require('./models/task.model.js');
4
4
  const ModelVoting = require('./models/voting.model.js');
5
5
  const ModelVote = require('./models/vote.model.js');
6
6
 
7
- const RoutesInitiative = require('./routes/initiatives.routes.js');
8
- const RoutesTask = require('./routes/tasks.routes.js');
9
- const RoutesVoting = require('./routes/votings.routes.js');
10
- const RoutesVote = require('./routes/votes.routes.js');
7
+ const RoutesInitiative = require('./controllers/routes/initiatives.routes.js');
8
+ const RoutesTask = require('./controllers/routes/tasks.routes.js');
9
+ const RoutesVoting = require('./controllers/routes/votings.routes.js');
10
+ const RoutesVote = require('./controllers/routes/votes.routes.js');
11
11
 
12
- const FactoryInitiative = require('./controllers/initiatives.controller.js');
13
- const FactoryTask = require('./controllers/tasks.controller.js');
14
- const FactoryVoting = require('./controllers/votings.controller.js');
15
- const FactoryVote = require('./controllers/votes.controller.js');
12
+ const FactoryInitiative = require('./controllers/factories/initiatives.controller.js');
13
+ const FactoryTask = require('./controllers/factories/tasks.controller.js');
14
+ const FactoryVoting = require('./controllers/factories/votings.controller.js');
15
+ const FactoryVote = require('./controllers/factories/votes.controller.js');
16
16
 
17
17
  const CRUD = require('@pf/src/modules/globals/controllers/classes/globals.crud');
18
18
 
@@ -0,0 +1,98 @@
1
+ module.exports = (db) => {
2
+ const MilestoneSchema = new db.mongoose.Schema({
3
+ name: {
4
+ type: String,
5
+ required: true
6
+ },
7
+ description: {
8
+ type: String
9
+ },
10
+ status: {
11
+ type: String,
12
+ enum: ['not_started', 'in_progress', 'completed', 'blocked', 'cancelled'],
13
+ default: 'not_started'
14
+ },
15
+ startDate: {
16
+ type: Date,
17
+ required: true
18
+ },
19
+ dueDate: {
20
+ type: Date,
21
+ required: true
22
+ },
23
+ completedDate: {
24
+ type: Date
25
+ },
26
+ progress: {
27
+ type: Number,
28
+ min: 0,
29
+ max: 100,
30
+ default: 0
31
+ },
32
+ owner: {
33
+ type: db.mongoose.Schema.Types.ObjectId,
34
+ ref: 'User',
35
+ required: true
36
+ },
37
+ contributors: [{
38
+ type: db.mongoose.Schema.Types.ObjectId,
39
+ ref: 'User'
40
+ }],
41
+ initiative: {
42
+ type: db.mongoose.Schema.Types.ObjectId,
43
+ ref: 'Initiative',
44
+ required: true
45
+ },
46
+ priority: {
47
+ type: String,
48
+ enum: ['low', 'medium', 'high', 'urgent'],
49
+ default: 'medium'
50
+ },
51
+ tags: [{
52
+ type: String
53
+ }],
54
+ dependencies: [{
55
+ milestone: {
56
+ type: db.mongoose.Schema.Types.ObjectId,
57
+ ref: 'Milestone'
58
+ },
59
+ type: {
60
+ type: String,
61
+ enum: ['blocks', 'blocked_by', 'related_to'],
62
+ required: true
63
+ }
64
+ }],
65
+ metadata: {
66
+ estimatedHours: Number,
67
+ actualHours: Number,
68
+ budget: Number,
69
+ actualCost: Number,
70
+ notes: String
71
+ }
72
+ }, {
73
+ timestamps: {
74
+ currentTime: () => Date.now()
75
+ },
76
+ toJSON: { virtuals: true },
77
+ toObject: { virtuals: true }
78
+ });
79
+
80
+ // Virtuals
81
+ MilestoneSchema.virtual('isOverdue').get(function() {
82
+ return this.dueDate && this.dueDate < new Date() && this.status !== 'completed';
83
+ });
84
+
85
+ MilestoneSchema.virtual('duration').get(function() {
86
+ return this.dueDate ? Math.ceil((this.dueDate - this.startDate) / (1000 * 60 * 60 * 24)) : null;
87
+ });
88
+
89
+ // Indexes
90
+ MilestoneSchema.index({ initiative: 1, status: 1 });
91
+ MilestoneSchema.index({ owner: 1 });
92
+ MilestoneSchema.index({ dueDate: 1 });
93
+ MilestoneSchema.index({ 'dependencies.milestone': 1 });
94
+
95
+ const Milestone = db.mongoose.model('Milestone', MilestoneSchema);
96
+
97
+ return Milestone;
98
+ };
@@ -1,21 +1,53 @@
1
1
  module.exports = (db) => {
2
2
  const TaskSchema = new db.mongoose.Schema({
3
- title: { type: String, required: true },
4
- description: { type: String },
3
+ title: {
4
+ type: String,
5
+ required: true
6
+ },
7
+ description: {
8
+ type: String
9
+ },
5
10
  status: {
6
11
  type: String,
7
- enum: ['pending', 'in_progress', 'completed'],
8
- default: 'pending'
12
+ enum: ['not_started', 'in_progress', 'completed', 'blocked', 'cancelled'],
13
+ default: 'not_started'
9
14
  },
10
15
  assignedTo: {
11
16
  type: db.mongoose.Schema.Types.ObjectId,
12
17
  ref: 'User'
13
18
  },
14
- dueDate: { type: Date },
19
+ dueDate: {
20
+ type: Date
21
+ },
22
+ // Reference to milestone
23
+ milestone: {
24
+ type: db.mongoose.Schema.Types.ObjectId,
25
+ ref: 'Milestone'
26
+ },
15
27
  initiative: {
16
28
  type: db.mongoose.Schema.Types.ObjectId,
17
29
  ref: 'Initiative'
18
- }
30
+ },
31
+ // Added priority
32
+ priority: {
33
+ type: String,
34
+ enum: ['low', 'medium', 'high', 'urgent'],
35
+ default: 'medium'
36
+ },
37
+ // Added tags
38
+ tags: [{
39
+ type: String
40
+ }]
19
41
  }, {
20
42
  timestamps: { currentTime: () => Date.now() }
21
- });
43
+ });
44
+
45
+ // Add indexes
46
+ TaskSchema.index({ milestone: 1 });
47
+ TaskSchema.index({ assignedTo: 1 });
48
+ TaskSchema.index({ status: 1 });
49
+ TaskSchema.index({ dueDate: 1 });
50
+
51
+ const Task = db.mongoose.model('Task', TaskSchema);
52
+ return Task;
53
+ };
@@ -1,7 +1,7 @@
1
1
  <script setup>
2
2
  import { onMounted, ref } from 'vue';
3
3
  import { useRoute } from 'vue-router';
4
- import { initiativesActions, initiativesState } from '../store/initiatives';
4
+ import { initiativesActions, initiativesState } from '../../store/initiatives';
5
5
 
6
6
  const route = useRoute();
7
7
  const initiative = ref(null);
@@ -1,7 +1,7 @@
1
1
  <script setup>
2
2
  import { ref } from 'vue';
3
- import { initiativesActions } from '../store/initiatives';
4
- import FormInitiativeDetails from './FormInitiativeDetails.vue';
3
+ import { initiativesActions } from '../../store/initiatives';
4
+ import FormInitiativeDetails from '../sections/FormInitiativeDetails.vue';
5
5
 
6
6
  const newInitiative = ref({
7
7
  name: '',
@@ -1,7 +1,7 @@
1
1
  <script setup>
2
2
  import { onMounted, ref } from 'vue';
3
- import { initiativesActions, initiativesState } from '../store/initiatives';
4
- import CardInitiativeItem from './CardInitiativeItem.vue';
3
+ import { initiativesActions, initiativesState } from '../../store/initiatives';
4
+ import CardInitiativeItem from '../blocks/CardInitiativeItem.vue';
5
5
 
6
6
  const initiatives = ref([]);
7
7
 
@@ -14,6 +14,7 @@ onMounted(async () => {
14
14
  <template>
15
15
  <div>
16
16
  <h1>Initiatives</h1>
17
+ <router-link :to="{name:'Create Initiative' }">Create Initiative</router-link>
17
18
  <CardInitiativeItem v-for="initiative in initiatives" :key="initiative.id" :initiative="initiative" />
18
19
  </div>
19
20
  </template>
@@ -1,7 +1,7 @@
1
1
  <script setup>
2
2
  import { onMounted, ref } from 'vue';
3
3
  import { useRoute } from 'vue-router';
4
- import { tasksActions, tasksState } from '../store/tasks';
4
+ import { tasksActions, tasksState } from '../../store/tasks';
5
5
 
6
6
  const route = useRoute();
7
7
  const task = ref(null);
@@ -1,7 +1,7 @@
1
1
  <script setup>
2
2
  import { ref } from 'vue';
3
- import { tasksActions } from '../store/tasks';
4
- import FormTaskDetails from './FormTaskDetails.vue';
3
+ import { tasksActions } from '../../store/tasks';
4
+ import FormTaskDetails from '../sections/FormTaskDetails.vue';
5
5
 
6
6
  const newTask = ref({
7
7
  name: '',
@@ -1,7 +1,7 @@
1
1
  <script setup>
2
2
  import { onMounted, ref } from 'vue';
3
- import { tasksActions, tasksState } from '../store/tasks';
4
- import CardTaskItem from './CardTaskItem.vue';
3
+ import { tasksActions, tasksState } from '../../store/tasks';
4
+ import CardTaskItem from '../blocks/CardTaskItem.vue';
5
5
 
6
6
  const tasks = ref([]);
7
7
 
@@ -1,9 +1,9 @@
1
1
  <script setup>
2
2
  import { onMounted, ref } from 'vue';
3
3
  import { useRoute } from 'vue-router';
4
- import { votingsActions, votingsState } from '../store/votings';
5
- import VoteForm from './VoteForm.vue';
6
- import VotingResult from './VotingResult.vue';
4
+ import { votingsActions, votingsState } from '../../store/votings';
5
+ import VoteForm from '../sections/VoteForm.vue';
6
+ import VotingResult from '../partials/VotingResult.vue';
7
7
 
8
8
  const route = useRoute();
9
9
  const voting = ref(null);
@@ -1,7 +1,7 @@
1
1
  <script setup>
2
2
  import { ref } from 'vue';
3
- import { votingsActions } from '../store/votings';
4
- import FormVotingDetails from './FormVotingDetails.vue';
3
+ import { votingsActions } from '../../store/votings';
4
+ import FormVotingDetails from '../sections/FormVotingDetails.vue';
5
5
 
6
6
  const newVoting = ref({
7
7
  title: '',
@@ -1,7 +1,7 @@
1
1
  <script setup>
2
2
  import { onMounted, ref } from 'vue';
3
- import { votingsActions, votingsState } from '../store/votings';
4
- import CardVotingItem from './CardVotingItem.vue';
3
+ import { votingsActions, votingsState } from '../../store/votings';
4
+ import CardVotingItem from '../blocks/CardVotingItem.vue';
5
5
 
6
6
  const votings = ref([]);
7
7
 
@@ -1,7 +1,7 @@
1
1
  <script setup>
2
2
  import { ref } from 'vue';
3
3
  import { defineProps } from 'vue';
4
- import { votesActions } from '../store/votes';
4
+ import { votesActions } from '../../store/votes';
5
5
 
6
6
  const props = defineProps({
7
7
  votingId: {
@@ -0,0 +1,263 @@
1
+ import { defineAsyncComponent } from 'vue'
2
+
3
+ import * as validationAuth from '@pf/src/modules/auth/views/middlewares/auth.validation';
4
+
5
+ export function createGovernanceRoutes(prefix = '', options = {}) {
6
+ const nameWithPrefix = (name) => prefix ? `${prefix}${name}` : name;
7
+
8
+ const routes = {
9
+ path: options.basePath || 'governance',
10
+ meta: {
11
+ title: {
12
+ en: 'Governance',
13
+ ru: 'Управление'
14
+ },
15
+ title_hide: true
16
+ },
17
+ children: [
18
+ // Initiatives routes
19
+ {
20
+ path: 'initiatives',
21
+ name: nameWithPrefix('Initiatives'),
22
+ meta: {
23
+ title: {
24
+ en: 'Initiatives',
25
+ ru: 'Инициативы'
26
+ },
27
+ title_hide: false
28
+ },
29
+ children: [
30
+ {
31
+ path: '',
32
+ name: nameWithPrefix('Initiatives'),
33
+ meta: {
34
+ title: {
35
+ en: 'Initiatives',
36
+ ru: 'Инициативы'
37
+ },
38
+ title_hide: false
39
+ },
40
+ component: () => import(/* webpackChunkName: 'Governance' */ '../components/pages/Initiatives.vue'),
41
+ },
42
+ {
43
+ path: 'create',
44
+ name: nameWithPrefix('Create Initiative'),
45
+ meta: {
46
+ title: {
47
+ en: 'Create Initiative',
48
+ ru: 'Создать Инициативу'
49
+ },
50
+ title_hide: false
51
+ },
52
+ beforeEnter: [
53
+ validationAuth.requiresAuth,
54
+ ],
55
+ component: () => import(/* webpackChunkName: 'Governance' */ '../components/pages/InitiativeCreate.vue')
56
+ },
57
+ {
58
+ path: ':id',
59
+ name: nameWithPrefix('Initiative'),
60
+ meta: {
61
+ title: {
62
+ en: 'Initiative',
63
+ ru: 'Инициатива'
64
+ },
65
+ title_hide: false
66
+ },
67
+ component: options.page_initiative || defineAsyncComponent(() =>
68
+ import(/* webpackChunkName: 'Governance' */ '../components/pages/Initiative.vue')
69
+ )
70
+ },
71
+ {
72
+ path: ':id/edit',
73
+ name: nameWithPrefix('Edit Initiative'),
74
+ meta: {
75
+ title: {
76
+ en: 'Edit Initiative',
77
+ ru: 'Редактировать Инициативу'
78
+ },
79
+ title_hide: false
80
+ },
81
+ beforeEnter: [
82
+ validationAuth.requiresAuth,
83
+ ],
84
+ component: options.page_initiative_edit || defineAsyncComponent(() =>
85
+ import(/* webpackChunkName: 'Governance' */ '../components/pages/InitiativeCreate.vue')
86
+ )
87
+ }
88
+ ]
89
+ },
90
+
91
+ // Tasks routes
92
+ {
93
+ path: 'tasks',
94
+ name: nameWithPrefix('Tasks'),
95
+ meta: {
96
+ title: {
97
+ en: 'Tasks',
98
+ ru: 'Задачи'
99
+ },
100
+ title_hide: false
101
+ },
102
+ component: () => import(/* webpackChunkName: 'Governance' */ '../components/pages/Tasks.vue'),
103
+ children: [
104
+ {
105
+ path: 'create',
106
+ name: nameWithPrefix('Create Task'),
107
+ meta: {
108
+ title: {
109
+ en: 'Create Task',
110
+ ru: 'Создать Задачу'
111
+ },
112
+ title_hide: false
113
+ },
114
+ beforeEnter: [
115
+ validationAuth.requiresAuth,
116
+ ],
117
+ component: () => import(/* webpackChunkName: 'Governance' */ '../components/pages/TaskCreate.vue')
118
+ },
119
+ {
120
+ path: ':id',
121
+ name: nameWithPrefix('Task'),
122
+ meta: {
123
+ title: {
124
+ en: 'Task',
125
+ ru: 'Задача'
126
+ },
127
+ title_hide: false
128
+ },
129
+ component: options.page_task || defineAsyncComponent(() =>
130
+ import(/* webpackChunkName: 'Governance' */ '../components/pages/Task.vue')
131
+ )
132
+ },
133
+ {
134
+ path: ':id/edit',
135
+ name: nameWithPrefix('Edit Task'),
136
+ meta: {
137
+ title: {
138
+ en: 'Edit Task',
139
+ ru: 'Редактировать Задачу'
140
+ },
141
+ title_hide: false
142
+ },
143
+ beforeEnter: [
144
+ validationAuth.requiresAuth,
145
+ ],
146
+ component: options.page_task_edit || defineAsyncComponent(() =>
147
+ import(/* webpackChunkName: 'Governance' */ '../components/pages/TaskCreate.vue')
148
+ )
149
+ }
150
+ ]
151
+ },
152
+
153
+ // Votings routes
154
+ {
155
+ path: 'votings',
156
+ name: nameWithPrefix('Votings'),
157
+ meta: {
158
+ title: {
159
+ en: 'Votings',
160
+ ru: 'Голосования'
161
+ },
162
+ title_hide: false
163
+ },
164
+ component: () => import(/* webpackChunkName: 'Governance' */ '../components/pages/Votings.vue'),
165
+ children: [
166
+ {
167
+ path: 'create',
168
+ name: nameWithPrefix('Create Voting'),
169
+ meta: {
170
+ title: {
171
+ en: 'Create Voting',
172
+ ru: 'Создать Голосование'
173
+ },
174
+ title_hide: false
175
+ },
176
+ beforeEnter: [
177
+ validationAuth.requiresAuth,
178
+ ],
179
+ component: () => import(/* webpackChunkName: 'Governance' */ '../components/pages/VotingCreate.vue')
180
+ },
181
+ {
182
+ path: ':id',
183
+ name: nameWithPrefix('Voting'),
184
+ meta: {
185
+ title: {
186
+ en: 'Voting',
187
+ ru: 'Голосование'
188
+ },
189
+ title_hide: false
190
+ },
191
+ component: options.page_voting || defineAsyncComponent(() =>
192
+ import(/* webpackChunkName: 'Governance' */ '../components/pages/Voting.vue')
193
+ )
194
+ },
195
+ {
196
+ path: ':id/edit',
197
+ name: nameWithPrefix('Edit Voting'),
198
+ meta: {
199
+ title: {
200
+ en: 'Edit Voting',
201
+ ru: 'Редактировать Голосование'
202
+ },
203
+ title_hide: false
204
+ },
205
+ beforeEnter: [
206
+ validationAuth.requiresAuth,
207
+ ],
208
+ component: options.page_voting_edit || defineAsyncComponent(() =>
209
+ import(/* webpackChunkName: 'Governance' */ '../components/pages/VotingCreate.vue')
210
+ )
211
+ },
212
+ ]
213
+ }
214
+ ]
215
+ };
216
+
217
+ return routes;
218
+ }
219
+
220
+ // Navigation guards
221
+ export function setupGovernanceNavigationGuards(router) {
222
+ // Check voting status before allowing votes or edits
223
+ router.beforeEach(async (to, from, next) => {
224
+ if (to.name?.includes('Voting') && to.params.id) {
225
+ try {
226
+ const response = await fetch(`/api/votings/${to.params.id}`);
227
+ const voting = await response.json();
228
+
229
+ // Prevent voting on closed votings
230
+ if (voting.status === 'closed' && to.name?.includes('Edit')) {
231
+ next({ name: 'Votings' });
232
+ return;
233
+ }
234
+ } catch (error) {
235
+ console.error('Error checking voting status:', error);
236
+ }
237
+ }
238
+ next();
239
+ });
240
+
241
+ // Check initiative status before allowing edits
242
+ router.beforeEach(async (to, from, next) => {
243
+ if (to.name?.includes('Initiative') && to.params.id && to.name?.includes('Edit')) {
244
+ try {
245
+ const response = await fetch(`/api/initiatives/${to.params.id}`);
246
+ const initiative = await response.json();
247
+
248
+ // Only allow editing draft initiatives
249
+ if (initiative.status !== 'draft') {
250
+ next({ name: 'Initiatives' });
251
+ return;
252
+ }
253
+ } catch (error) {
254
+ console.error('Error checking initiative status:', error);
255
+ }
256
+ }
257
+ next();
258
+ });
259
+ }
260
+
261
+ // Example usage:
262
+ // const governanceRoutes = createGovernanceRoutes('Admin', { basePath: 'admin/governance' });
263
+ // export { governanceRoutes, setupGovernanceNavigationGuards };