@ozdao/martyrs 0.2.583 → 0.2.585

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 (233) hide show
  1. package/dist/builder.js +2 -0
  2. package/dist/{main-vq1_XpmQ.js → main-xL-jtBkT.js} +12 -11
  3. package/dist/martyrs/dist/{main-vq1_XpmQ.js → main-xL-jtBkT.js} +3 -2
  4. package/dist/martyrs/dist/main-xL-jtBkT.js.map +1 -0
  5. package/dist/martyrs/dist/{web-BNJDRie_.js → web-BA6h6Z8P.js} +2 -2
  6. package/dist/martyrs/dist/{web-BNJDRie_.js.map → web-BA6h6Z8P.js.map} +1 -1
  7. package/dist/martyrs/src/components/Button/{Button.vue.js → Button.vue2.js} +3 -3
  8. package/dist/martyrs/src/components/Button/Button.vue2.js.map +1 -0
  9. package/dist/martyrs/src/components/Calendar/Calendar.vue2.js +5 -5
  10. package/dist/martyrs/src/components/Calendar/Calendar.vue2.js.map +1 -1
  11. package/dist/martyrs/src/components/Feed/Carousel.vue.js +1 -1
  12. package/dist/martyrs/src/components/Feed/Feed.vue.js +1 -1
  13. package/dist/martyrs/src/components/Field/Field.vue.js +2 -2
  14. package/dist/martyrs/src/components/Field/Field.vue.js.map +1 -1
  15. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +2 -2
  16. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js.map +1 -1
  17. package/dist/martyrs/src/components/FieldDate/FieldDate.vue.js +2 -2
  18. package/dist/martyrs/src/components/FieldDate/FieldDate.vue.js.map +1 -1
  19. package/dist/martyrs/src/components/Loader/{Loader.vue2.js → Loader.vue.js} +2 -2
  20. package/dist/martyrs/src/components/Loader/Loader.vue.js.map +1 -0
  21. package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue.js +1 -1
  22. package/dist/martyrs/src/components/Media/Media.vue.js +1 -1
  23. package/dist/martyrs/src/components/Menu/{Menu.vue2.js → Menu.vue.js} +2 -2
  24. package/dist/martyrs/src/components/Menu/Menu.vue.js.map +1 -0
  25. package/dist/martyrs/src/components/Select/{Select.vue2.js → Select.vue.js} +2 -2
  26. package/dist/martyrs/src/components/Select/Select.vue.js.map +1 -0
  27. package/dist/martyrs/src/components/UploadImage/UploadImage.vue.js +1 -1
  28. package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.js +1 -1
  29. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +1 -1
  30. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +1 -1
  31. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +61 -42
  32. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js.map +1 -1
  33. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +1 -1
  34. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +1 -1
  35. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +1 -1
  36. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +1 -1
  37. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +1 -1
  38. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +1 -1
  39. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +1 -1
  40. package/dist/martyrs/src/modules/backoffice/backoffice.client.js +3 -15
  41. package/dist/martyrs/src/modules/backoffice/backoffice.client.js.map +1 -1
  42. package/dist/martyrs/src/modules/backoffice/configs/navigation.backoffice.config.js +99 -0
  43. package/dist/martyrs/src/modules/backoffice/configs/navigation.backoffice.config.js.map +1 -0
  44. package/dist/martyrs/src/modules/backoffice/{backoffice.router.js → router/backoffice.router.js} +9 -7
  45. package/dist/martyrs/src/modules/backoffice/router/backoffice.router.js.map +1 -0
  46. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +3 -3
  47. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js.map +1 -1
  48. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +8 -2
  49. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js.map +1 -1
  50. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
  51. package/dist/martyrs/src/modules/core/core.client.js.map +1 -1
  52. package/dist/martyrs/src/modules/core/views/classes/core.app.js +5 -1
  53. package/dist/martyrs/src/modules/core/views/classes/core.app.js.map +1 -1
  54. package/dist/martyrs/src/modules/core/views/components/blocks/CardHeader.vue.js +2 -2
  55. package/dist/martyrs/src/modules/core/views/components/blocks/CardHeader.vue.js.map +1 -1
  56. package/dist/martyrs/src/modules/core/views/components/blocks/PopupAuth.vue.js +1 -1
  57. package/dist/martyrs/src/modules/core/views/components/blocks/PopupDateSelector.vue.js +2 -2
  58. package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js +22 -28
  59. package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js.map +1 -1
  60. package/dist/martyrs/src/modules/core/views/components/pages/404.vue.js +76 -7
  61. package/dist/martyrs/src/modules/core/views/components/pages/404.vue.js.map +1 -1
  62. package/dist/martyrs/src/modules/core/views/components/partials/Header.vue.js +3 -3
  63. package/dist/martyrs/src/modules/core/views/components/partials/Header.vue.js.map +1 -1
  64. package/dist/martyrs/src/modules/core/views/components/partials/NavigationBar.vue.js +1 -1
  65. package/dist/martyrs/src/modules/core/views/components/partials/Sidebar.vue.js +2 -2
  66. package/dist/martyrs/src/modules/core/views/components/partials/Sidebar.vue.js.map +1 -1
  67. package/dist/martyrs/src/modules/core/views/components/sections/Filters.vue2.js +3 -3
  68. package/dist/martyrs/src/modules/core/views/components/sections/Filters.vue2.js.map +1 -1
  69. package/dist/martyrs/src/modules/core/views/components/sections/SectionPageTitle.vue.js +1 -1
  70. package/dist/martyrs/src/modules/core/views/components/sections/SectionPageTitle.vue.js.map +1 -1
  71. package/dist/martyrs/src/modules/core/views/store/core.store.js +1 -0
  72. package/dist/martyrs/src/modules/core/views/store/core.store.js.map +1 -1
  73. package/dist/martyrs/src/modules/core/views/utils/vue-app-renderer.js +2 -1
  74. package/dist/martyrs/src/modules/core/views/utils/vue-app-renderer.js.map +1 -1
  75. package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.js +1 -1
  76. package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.js +1 -1
  77. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +2 -2
  78. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +3 -3
  79. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js.map +1 -1
  80. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +2 -1
  81. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js.map +1 -1
  82. package/dist/martyrs/src/modules/events/components/sections/EditTickets.vue.js +1 -1
  83. package/dist/martyrs/src/modules/events/components/sections/Feed.vue.js +1 -1
  84. package/dist/martyrs/src/modules/events/components/sections/List.vue.js +1 -1
  85. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +3 -3
  86. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js.map +1 -1
  87. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +2 -2
  88. package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.js +1 -1
  89. package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js +1 -1
  90. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +2 -2
  91. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js +4 -4
  92. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js.map +1 -1
  93. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +2 -2
  94. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js.map +1 -1
  95. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js +1 -1
  96. package/dist/martyrs/src/modules/music/components/blocks/ActionButtons.vue.js +1 -1
  97. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +1 -1
  98. package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.js +1 -1
  99. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js +1 -1
  100. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js +1 -1
  101. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +2 -2
  102. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +3 -3
  103. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +1 -1
  104. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js +1 -1
  105. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +2 -2
  106. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +2 -2
  107. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +2 -2
  108. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +1 -1
  109. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +7 -7
  110. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js.map +1 -1
  111. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +2 -2
  112. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +2 -2
  113. package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.js +1 -1
  114. package/dist/martyrs/src/modules/music/components/player/FullscreenPlayer.vue.js +1 -1
  115. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js +1 -1
  116. package/dist/martyrs/src/modules/music/components/player/PlayerControls.vue.js +1 -1
  117. package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.js +1 -1
  118. package/dist/martyrs/src/modules/notifications/components/sections/NotificationPreferences.vue.js +2 -2
  119. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +2 -2
  120. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +2 -2
  121. package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js +2 -2
  122. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +2 -2
  123. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +1 -1
  124. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +1 -1
  125. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js +1 -1
  126. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js +1 -1
  127. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +1 -1
  128. package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.js +1 -1
  129. package/dist/martyrs/src/modules/orders/router/orders.router.js +23 -0
  130. package/dist/martyrs/src/modules/orders/router/orders.router.js.map +1 -1
  131. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +1 -1
  132. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js.map +1 -1
  133. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +1 -1
  134. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js +1 -1
  135. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js +1 -1
  136. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js +1 -1
  137. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +1 -1
  138. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
  139. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +4 -3
  140. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js.map +1 -1
  141. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +2 -2
  142. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +2 -2
  143. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +2 -2
  144. package/dist/martyrs/src/modules/pages/pages.router.js +7 -5
  145. package/dist/martyrs/src/modules/pages/pages.router.js.map +1 -1
  146. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -1
  147. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +3 -3
  148. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js.map +1 -1
  149. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +2 -2
  150. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js.map +1 -1
  151. package/dist/martyrs/src/modules/products/components/elements/Image360.vue.js +1 -1
  152. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +1 -1
  153. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +3 -3
  154. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +1 -1
  155. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +2 -2
  156. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +1 -1
  157. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js.map +1 -1
  158. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +1 -1
  159. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +3 -3
  160. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js.map +1 -1
  161. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +2 -2
  162. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js +2 -2
  163. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js.map +1 -1
  164. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +1 -1
  165. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +1 -1
  166. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +1 -1
  167. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +1 -1
  168. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +2 -2
  169. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js +1 -1
  170. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js +1 -1
  171. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +2 -2
  172. package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.js +1 -1
  173. package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.js.map +1 -1
  174. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +2 -2
  175. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +2 -2
  176. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js.map +1 -1
  177. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +3 -3
  178. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js.map +1 -1
  179. package/dist/martyrs.css +1 -1
  180. package/dist/martyrs.es.js +1 -1
  181. package/dist/style.css +38 -33
  182. package/dist/{web-BNJDRie_.js → web-BA6h6Z8P.js} +1 -1
  183. package/package.json +1 -1
  184. package/src/builder/modes/ssr.rspack.dev.js +2 -0
  185. package/src/components/Calendar/Calendar.vue +4 -4
  186. package/src/components/Completion/Completion.vue +3 -3
  187. package/src/components/Field/Field.vue +1 -1
  188. package/src/components/FieldBig/FieldBig.vue +1 -1
  189. package/src/components/FieldDate/FieldDate.vue +1 -1
  190. package/src/modules/auth/views/components/pages/Profile.vue +33 -5
  191. package/src/modules/backoffice/backoffice.client.js +1 -25
  192. package/src/modules/backoffice/configs/navigation.backoffice.config.js +99 -0
  193. package/src/modules/backoffice/router/backoffice.router.js +8 -7
  194. package/src/modules/community/components/layouts/Community.vue +2 -2
  195. package/src/modules/community/components/pages/BlogPost.vue +9 -1
  196. package/src/modules/core/core.client.js +1 -0
  197. package/src/modules/core/views/classes/core.app.js +8 -3
  198. package/src/modules/core/views/components/blocks/CardHeader.vue +1 -1
  199. package/src/modules/core/views/components/layouts/Client.vue +41 -42
  200. package/src/modules/core/views/components/pages/404.vue +55 -3
  201. package/src/modules/core/views/components/partials/Header.vue +1 -1
  202. package/src/modules/core/views/components/partials/Sidebar.vue +1 -1
  203. package/src/modules/core/views/components/sections/Filters.vue +2 -2
  204. package/src/modules/core/views/components/sections/SectionPageTitle.vue +1 -1
  205. package/src/modules/core/views/store/core.store.js +1 -0
  206. package/src/modules/core/views/utils/vue-app-renderer.js +9 -1
  207. package/src/modules/events/components/pages/EditEventTickets.vue +2 -2
  208. package/src/modules/gallery/components/sections/BackofficeGallery.vue +1 -1
  209. package/src/modules/inventory/components/pages/Inventory.vue +4 -4
  210. package/src/modules/inventory/components/pages/InventoryEdit.vue +1 -1
  211. package/src/modules/music/components/pages/Playlist.vue +5 -5
  212. package/src/modules/orders/router/orders.router.js +33 -0
  213. package/src/modules/organizations/components/blocks/CardOrganization.vue +1 -1
  214. package/src/modules/pages/pages.router.js +4 -2
  215. package/src/modules/pages/views/components/pages/PageEdit.vue +2 -2
  216. package/src/modules/pages/views/components/partials/SidebarPages.vue +1 -1
  217. package/src/modules/pages/views/router/pages.backoffice.router.js +4 -3
  218. package/src/modules/products/components/pages/Products.vue +1 -1
  219. package/src/modules/products/components/sections/EditDiscounts.vue +1 -1
  220. package/src/modules/products/components/sections/ProductConfigurator.vue +1 -1
  221. package/src/modules/spots/components/pages/Spots.vue +1 -1
  222. package/src/modules/wallet/views/components/blocks/CryptoDeposit.vue +1 -1
  223. package/src/modules/wallet/views/components/pages/Wallet.vue +1 -1
  224. package/dist/martyrs/dist/main-vq1_XpmQ.js.map +0 -1
  225. package/dist/martyrs/src/components/Button/Button.vue.js.map +0 -1
  226. package/dist/martyrs/src/components/Loader/Loader.vue2.js.map +0 -1
  227. package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +0 -1
  228. package/dist/martyrs/src/components/Select/Select.vue2.js.map +0 -1
  229. package/dist/martyrs/src/modules/backoffice/backoffice.router.js.map +0 -1
  230. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js +0 -150
  231. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js.map +0 -1
  232. package/src/modules/backoffice/backoffice.router.js +0 -69
  233. package/src/modules/backoffice/components/partials/Sidebar.vue +0 -165
@@ -13,7 +13,7 @@
13
13
  }"
14
14
  >
15
15
  <transition name="moveFromTop" appear>
16
- <Loader v-if="!page || store.core.state.loading" :centered="true" class="pos-fixed"/>
16
+ <Loader v-if="!page || store.core.state.loading" :centered="true" class="pos-fixed z-index-10"/>
17
17
  </transition>
18
18
 
19
19
  <transition
@@ -129,21 +129,22 @@
129
129
  </component>
130
130
  <!-- rows-[minmax(0,1fr)] z-index-1 pos-relative w-100 h-100 -->
131
131
  <div class="rows-[minmax(0,1fr)] z-index-1 pos-relative w-100 h-100">
132
- <div id="scrollview" ref="scrollview" @scroll="handleScroll" class="o-y-scroll o-x-hidden h-100">
132
+
133
+ <div id="scrollview" ref="scrollview" @scroll="handleScroll" class="o-y-scroll o-x-hidden h-100">
133
134
  <Status
134
135
  v-if="store.core.state.error.show"
135
- :data="store.core.state.error"
136
- @close="store.core.state.error.show = false"
137
- class="z-index-7"
138
- />
139
- <Snack
140
- v-if="store.core.state.snack.show"
141
- :type="store.core.state.snack.type"
142
- :message="store.core.state.snack.message"
143
- :show="store.core.state.snack.show"
144
- @close="store.core.state.snack.show = false"
145
- class="z-index-7"
146
- />
136
+ :data="store.core.state.error"
137
+ @close="store.core.state.error.show = false"
138
+ class="z-index-7"
139
+ />
140
+ <Snack
141
+ v-if="store.core.state.snack.show"
142
+ :type="store.core.state.snack.type"
143
+ :message="store.core.state.snack.message"
144
+ :show="store.core.state.snack.show"
145
+ @close="store.core.state.snack.show = false"
146
+ class="z-index-7"
147
+ />
147
148
  <div class="h-min-100 pos-relative w-100">
148
149
  <!-- <section v-if="!route.meta?.breadcrumbs?.hide" class="pd-thin pd-b-zero">
149
150
  <Breadcrumbs
@@ -152,41 +153,38 @@
152
153
  />
153
154
  </section> -->
154
155
 
155
- <Suspense @resolve="onSuspenseResolved">
156
- <router-view
156
+ <Suspense @resolve="onSuspenseResolved">
157
+ <router-view
157
158
  id="view"
158
- v-slot="{ Component, route }"
159
+ v-slot="{ Component, route }"
159
160
  :class="{
160
161
  'scroll-hide': MOBILE_APP,
161
162
  }"
162
163
  class="h-min-100 pos-relative w-100"
163
164
  >
164
165
  <transition @before-enter="scrollTop" name="scaleTransition" mode="out-in" appear>
165
- <component
166
- ref="page"
167
- :is="Component"
168
- class="w-100 h-min-100"
169
- @page-loading="handlePageLoading"
170
- @page-loaded="handlePageLoaded"
171
- :key="componentKey"
172
- />
173
- <!-- Key пока выключил непонятно какие проблемы это вызовет -->
174
- <!-- :key="route.path" -->
175
- </transition>
176
- </router-view>
166
+
167
+ <div :key="componentKey" class="w-100 h-min-100">
168
+ <component
169
+ ref="page"
170
+ :is="Component"
171
+ class="w-100 h-min-100"
172
+ @page-loading="handlePageLoading"
173
+ @page-loaded="handlePageLoaded"
174
+ />
175
+ <component
176
+ v-if="!MOBILE_APP && route.meta.footer && !route.meta.hideFooter"
177
+ ref="footer"
178
+ :is="route.meta.footer"
179
+ :theme="route.meta.footer_theme || 'light'"
180
+ :logotype="route.meta.logotype"
181
+ :location="route.meta.location"
182
+ />
183
+ </div>
184
+ </transition>
185
+ </router-view>
177
186
  </Suspense>
178
187
  </div>
179
-
180
- <transition @before-enter="scrollTop" name="scaleTransition" mode="out-in" appear>
181
- <component
182
- v-if="!MOBILE_APP && route.meta.footer && !route.meta.hideFooter && page && !store.core.state.loading"
183
- ref="footer"
184
- :is="route.meta.footer"
185
- :theme="route.meta.footer_theme || 'light'"
186
- :logotype="route.meta.logotype"
187
- :location="route.meta.location"
188
- />
189
- </transition>
190
188
 
191
189
  <component
192
190
  v-if="route.meta.player"
@@ -221,7 +219,7 @@
221
219
 
222
220
 
223
221
  <script setup>
224
- import { computed, ref, onMounted } from 'vue';
222
+ import { computed, ref, onMounted } from 'vue';
225
223
  // Router
226
224
  import { useRoute } from 'vue-router';
227
225
  // Store
@@ -233,7 +231,7 @@
233
231
  import Popup from '@martyrs/src/components/Popup/Popup.vue';
234
232
  import Breadcrumbs from '@martyrs/src/components/Breadcrumbs/Breadcrumbs.vue'
235
233
  import Loader from '@martyrs/src/components/Loader/Loader.vue';
236
-
234
+
237
235
  import NavigationBar from '@martyrs/src/modules/core/views/components/partials/NavigationBar.vue';
238
236
  import LocationSelection from '@martyrs/src/modules/core/views/components/partials/LocationSelection.vue';
239
237
 
@@ -256,6 +254,7 @@
256
254
 
257
255
  const store = useStore()
258
256
 
257
+
259
258
  /////////////////////////////
260
259
  // LOADING
261
260
  /////////////////////////////
@@ -1,5 +1,57 @@
1
+ <script setup>
2
+ import { useRouter } from 'vue-router'
3
+ import IconHome from '@martyrs/src/modules/icons/entities/IconHome.vue'
4
+ import IconArrow from '@martyrs/src/modules/icons/navigation/IconArrow.vue'
5
+ import IconSearch from '@martyrs/src/modules/icons/navigation/IconSearch.vue'
6
+ import IconInfo from '@martyrs/src/modules/icons/entities/IconInfo.vue'
7
+
8
+ const router = useRouter()
9
+ const goBack = () => window.history.length > 1 ? router.back() : router.push('/')
10
+ </script>
11
+
1
12
  <template>
2
- <div class="">
3
- 404 Not Found
13
+ <div class="pd-thin flex flex-v-center w-100 h-100 ">
14
+ <div class="bg-light w-100 h-100 flex flex-h-center flex-column radius-big pd-medium">
15
+
16
+ <div class="flex flex-v-center gap-thin pd-thin radius-big bg-main w-fit mn-b-medium">
17
+ <span class="i-medium radius-big bg-grey"></span>
18
+ <span class="p-small">Error 404</span>
19
+ </div>
20
+
21
+ <h1 class="mn-b-semi">Page not found</h1>
22
+
23
+ <p class="p-medium t-transp w-max-35r mn-b-big" style="line-height: 1.6;">
24
+ The page you are looking for doesn't exist or has been moved. Please check the URL or navigate back to the home page.
25
+ </p>
26
+
27
+ <div class="flex gap-small mn-b-extra">
28
+ <router-link to="/" class="button bg-black t-white pd-regular radius-small flex flex-v-center gap-thin">
29
+ <IconHome class="i-regular" :fill="'rgb(var(--white))'" />
30
+ <span>Go home</span>
31
+ </router-link>
32
+ <button @click="goBack" class="button bg-white t-black pd-regular radius-small flex flex-v-center gap-thin">
33
+ <IconArrow class="i-regular rotate-180" />
34
+ <span>Go back</span>
35
+ </button>
36
+ </div>
37
+
38
+ <div class="pd-t-medium w-max-25r">
39
+ <span class="p-micro t-transp t-upper t-500 ls-wide d-block mn-b-small">Search Documentation</span>
40
+ <div class="field-wrapper bg-white flex flex-v-center radius-small pd-small gap-small">
41
+ <IconSearch class="i-small t-transp" />
42
+ <input type="text" placeholder="e.g. Installation guide..." class="w-100 bd-none" />
43
+ </div>
44
+ <div class="flex gap-medium mn-t-small">
45
+ <a href="#" class="flex flex-v-center gap-micro p-small t-transp"><IconInfo class="i-small" /> Help Center</a>
46
+ <a href="#" class="p-small t-transp">API Status</a>
47
+ </div>
48
+ </div>
49
+
50
+ </div>
4
51
  </div>
5
- </template>
52
+ </template>
53
+
54
+ <style scoped>
55
+ input { border: none; outline: none; }
56
+ input::placeholder { color: rgba(var(--dark), 0.4); }
57
+ </style>
@@ -122,7 +122,7 @@
122
122
 
123
123
  br-2px
124
124
  ease-linear
125
- t-nowrap
125
+ ws-nowrap
126
126
 
127
127
  "
128
128
  :class="{
@@ -139,7 +139,7 @@ router.beforeEach((to, from) => {
139
139
  ]"
140
140
  >
141
141
  <span
142
- class="w-100 t-nowrap ease-quint-out t-left fw-medium mn-r-thin"
142
+ class="w-100 ws-nowrap ease-quint-out t-left fw-medium mn-r-thin"
143
143
  :class="{ 'hidden': !stateSidebar, 'visible': stateSidebar }"
144
144
  >
145
145
  Dark Mode
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="flex o-x-scroll scroll-hide t-nowrap gap-thin">
2
+ <div class="flex o-x-scroll scroll-hide ws-nowrap gap-thin">
3
3
  <!-- All Filters Button -->
4
4
  <button
5
5
  @click="showAllFilters = true"
@@ -20,7 +20,7 @@
20
20
  :class="{ 'selected bg-main': isFilterActive(filter) }"
21
21
  >
22
22
  <IconCalendar v-if="filter.type === 'date'" class="mn-r-micro i-regular" />
23
- <span class="t-nowrap">{{ filter.type === 'date' && getFilterValue(filter) ? formatFilterValue(filter) : filter.title }}</span>
23
+ <span class="ws-nowrap">{{ filter.type === 'date' && getFilterValue(filter) ? formatFilterValue(filter) : filter.title }}</span>
24
24
  <span v-if="getFilterValue(filter) && filter.type !== 'date'" class="mn-l-micro">
25
25
  {{ formatFilterValue(filter) }}
26
26
  </span>
@@ -31,7 +31,7 @@
31
31
  :selected="tabs_current"
32
32
  @update:selected="updateTabsCurrent"
33
33
  :tabs="tabs"
34
- class="mn-t-small pd-thin bg-light radius-small w-max t-nowrap o-scroll p-regular"
34
+ class="mn-t-small pd-thin bg-light radius-small w-max ws-nowrap o-scroll p-regular"
35
35
  />
36
36
  </div>
37
37
  </template>
@@ -115,6 +115,7 @@ export function createStore() {
115
115
  // State создается для каждого store instance (изоляция SSR)
116
116
  const state = reactive({
117
117
  loading: false,
118
+ notFound: false,
118
119
 
119
120
  isOpenLocationPopup: false,
120
121
  isOpenSidebar: false,
@@ -269,11 +269,19 @@ export async function render({ url, cookies, headers, ssrContext, createApp }) {
269
269
  const measure26Total = performance.getEntriesByName('loading-26-total')[0];
270
270
  console.log(`[LOADING 26] Total SSR render completed in ${measure26Total?.duration?.toFixed(2)}ms`);
271
271
 
272
+ // Определяем HTTP статус код:
273
+ // 1. Если store.core.state.notFound === true - 404
274
+ // 2. Если роут называется 'notfound' - 404
275
+ // 3. Иначе - 200
276
+ const statusCode = store.core.state.notFound
277
+ ? 404
278
+ : (router.currentRoute?.value?.name?.toLowerCase() === 'notfound' ? 404 : 200);
279
+
272
280
  return {
273
281
  html,
274
282
  meta: payload,
275
283
  state: initialState,
276
- statusCode: router.currentRoute?.value?.name?.toLowerCase() === 'notfound' ? 404 : 200,
284
+ statusCode,
277
285
  usedModules: Array.from(ctx.modules || new Set()), // Return used modules
278
286
  };
279
287
  }
@@ -69,7 +69,7 @@
69
69
  v-else
70
70
  class="bg-light radius-micro w-2r h-thin"
71
71
  ></div>
72
- <p class="p-nano fw-medium t-nowrap">{{ slot.time }}</p>
72
+ <p class="p-nano fw-medium ws-nowrap">{{ slot.time }}</p>
73
73
  </div>
74
74
  </div>
75
75
  </div>
@@ -195,7 +195,7 @@
195
195
  <section class="bg-black flex-column flex gap-thin pd-thin radius-small">
196
196
  <button
197
197
  @click="sendTicketEmail(ticket._id)"
198
- class="w-100 t-nowrap bg-black br-1px br-white-transp-20 t-white button-small button"
198
+ class="w-100 ws-nowrap bg-black br-1px br-white-transp-20 t-white button-small button"
199
199
  >
200
200
  Send Email
201
201
  </button>
@@ -128,7 +128,7 @@
128
128
  <Button
129
129
  :submit="() => createPhoto('draft')"
130
130
  :callback="closePhotoPopup"
131
- class="t-nowrap bg-second w-100"
131
+ class="ws-nowrap bg-second w-100"
132
132
  >
133
133
  To drafts
134
134
  </Button>
@@ -51,7 +51,7 @@
51
51
  class="w-3r h-3r radius-small bg-light object-fit-cover"
52
52
  />
53
53
  <PlaceholderImage v-else class="w-3r h-3r radius-small" />
54
- <p class="truncate t-nowrap">{{ row.name || 'Unknown Product' }}</p>
54
+ <p class="truncate ws-nowrap">{{ row.name || 'Unknown Product' }}</p>
55
55
  </div>
56
56
  </template>
57
57
 
@@ -127,13 +127,13 @@
127
127
  align="right"
128
128
  >
129
129
  <div class="bg-white radius-small">
130
- <button @click="openStockAudit(row)" class="cursor-pointer t-left t-nowrap w-100 pd-small">
130
+ <button @click="openStockAudit(row)" class="cursor-pointer t-left ws-nowrap w-100 pd-small">
131
131
  Audit Stock
132
132
  </button>
133
- <button @click="openStockHistory(row)" class="cursor-pointer t-left t-nowrap w-100 pd-small">
133
+ <button @click="openStockHistory(row)" class="cursor-pointer t-left ws-nowrap w-100 pd-small">
134
134
  Stock History
135
135
  </button>
136
- <button @click="openReorderSettings(row)" class="cursor-pointer t-left t-nowrap w-100 pd-small">
136
+ <button @click="openReorderSettings(row)" class="cursor-pointer t-left ws-nowrap w-100 pd-small">
137
137
  Set Alerts
138
138
  </button>
139
139
  </div>
@@ -175,7 +175,7 @@
175
175
  align="right"
176
176
  >
177
177
  <div class="bg-white radius-small">
178
- <button @click="leftovers.state.current.positions.splice(index, 1)" class="cursor-pointer t-left t-nowrap w-100 pd-small">
178
+ <button @click="leftovers.state.current.positions.splice(index, 1)" class="cursor-pointer t-left ws-nowrap w-100 pd-small">
179
179
  Delete
180
180
  </button>
181
181
  </div>
@@ -374,8 +374,8 @@ const actionButtons = computed(() => {
374
374
  {
375
375
  type: 'dropdown',
376
376
  items: [
377
- { text: 'Add to Queue', action: addToQueue, class: 't-nowrap' },
378
- { text: 'Copy Link', action: copyLink, class: 't-nowrap' }
377
+ { text: 'Add to Queue', action: addToQueue, class: 'ws-nowrap' },
378
+ { text: 'Copy Link', action: copyLink, class: 'ws-nowrap' }
379
379
  ]
380
380
  }
381
381
  ];
@@ -383,19 +383,19 @@ const actionButtons = computed(() => {
383
383
  if (isOwner.value || isCollaborator.value) {
384
384
  const items = buttons[3].items;
385
385
  items.push({ separator: true });
386
- items.push({ text: 'Edit Playlist', action: editPlaylist, class: 't-nowrap' });
386
+ items.push({ text: 'Edit Playlist', action: editPlaylist, class: 'ws-nowrap' });
387
387
 
388
388
  if (isOwner.value) {
389
389
  items.push({
390
390
  text: playlist.value?.isCollaborative ? 'Make Private' : 'Make Collaborative',
391
391
  action: toggleCollaborative,
392
- class: 't-nowrap'
392
+ class: 'ws-nowrap'
393
393
  });
394
394
  items.push({
395
395
  text: 'Delete Playlist',
396
396
  action: deletePlaylist,
397
397
  color: 'danger',
398
- class: 't-nowrap'
398
+ class: 'ws-nowrap'
399
399
  });
400
400
  }
401
401
  }
@@ -1,9 +1,41 @@
1
1
  // Use dynamic imports for better code splitting
2
+ import { requiresAuth } from '@martyrs/src/modules/auth/views/middlewares/auth.validation.js';
3
+ import * as auth from '@martyrs/src/modules/auth/views/store/auth.js';
4
+ import { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js';
5
+
6
+ const { isAdmin } = useGlobalMixins();
7
+
8
+ // Проверка доступа к заказам пользователя
9
+ const checkOrdersAccess = (to) => {
10
+ const context = to.matched[0]?.meta?.context;
11
+
12
+ // User контекст: владелец, модератор или админ
13
+ if (context === 'user') {
14
+ const isOwner = to.params._id === auth.state.user?._id;
15
+ const roles = auth.state.access?.roles || [];
16
+ const isAdminOrMod = isAdmin(roles) || roles.includes('ROLE_MODERATOR');
17
+ if (!isOwner && !isAdminOrMod) {
18
+ return '/401';
19
+ }
20
+ }
21
+
22
+ // Backoffice контекст: только админы
23
+ if (context === 'backoffice') {
24
+ const roles = auth.state.access?.roles || [];
25
+ if (!isAdmin(roles)) {
26
+ return '/401';
27
+ }
28
+ }
29
+
30
+ // Organization контекст - пока пропускаем (там ABAC на бэкенде)
31
+ // Root контекст - публичный
32
+ };
2
33
 
3
34
  const ordersRoutes = [
4
35
  {
5
36
  path: '',
6
37
  name: 'OrdersList',
38
+ beforeEnter: [requiresAuth, checkOrdersAccess],
7
39
  component: () => import(/* webpackChunkName: "orders" */ '@martyrs/src/modules/orders/components/pages/Orders.vue'),
8
40
  meta: {
9
41
  title: {
@@ -37,6 +69,7 @@ const ordersRoutes = [
37
69
  {
38
70
  path: ':order',
39
71
  name: 'Order',
72
+ beforeEnter: [requiresAuth, checkOrdersAccess],
40
73
  component: () => import(/* webpackChunkName: "orders" */ '@martyrs/src/modules/orders/components/pages/OrderBackoffice.vue'),
41
74
  props: route => ({
42
75
  mode: route.matched[0].meta.context === 'backoffice' ? 'edit' : 'view',
@@ -69,7 +69,7 @@
69
69
 
70
70
  <div
71
71
  v-if="showProducts && organization.products"
72
- class="mn-b-small t-nowrap mn-t-small w-100 flex-nowrap flex flex-v-center pd-small bg-white radius-medium"
72
+ class="mn-b-small ws-nowrap mn-t-small w-100 flex-nowrap flex flex-v-center pd-small bg-white radius-medium"
73
73
  >
74
74
  <IconTime class="i-medium t-transp mn-r-micro"/>
75
75
  <span class="mn-r-micro">
@@ -1,5 +1,6 @@
1
1
  import layoutEmpty from '@martyrs/src/modules/core/views/components/layouts/Empty.vue';
2
- import Sidebar from '@martyrs/src/modules/backoffice/components/partials/Sidebar.vue';
2
+ import Navigation from '@martyrs/src/modules/core/views/components/partials/Navigation.vue';
3
+ import { navigationItems } from '@martyrs/src/modules/backoffice/configs/navigation.backoffice.config.js';
3
4
  import SidebarPages from './views/components/partials/SidebarPages.vue';
4
5
 
5
6
  function createPublicRoutes(options = {}) {
@@ -92,7 +93,8 @@ export function getRoutes(options = {}) {
92
93
  title: {
93
94
  en: 'Pages',
94
95
  },
95
- sidebar: Sidebar,
96
+ sidebar_navigation: Navigation,
97
+ sidebar_navigation_items: navigationItems,
96
98
  },
97
99
  routes: createBackofficeRoutes(options),
98
100
  },
@@ -15,14 +15,14 @@
15
15
  v-if="route.params.url"
16
16
  :submit="() => onDelete()"
17
17
  :callback="() => deletePageCallback()"
18
- class="t-nowrap bg-second w-max"
18
+ class="ws-nowrap bg-second w-max"
19
19
  >
20
20
  Delete
21
21
  </Button>
22
22
 
23
23
  <Button
24
24
  :submit="() => onSubmit()"
25
- class="mn-l-auto t-nowrap t-white bg-black w-max"
25
+ class="mn-l-auto ws-nowrap t-white bg-black w-max"
26
26
  >
27
27
  Save
28
28
  </Button>
@@ -25,7 +25,7 @@
25
25
  </div>
26
26
  <Button
27
27
  :submit="() => onSubmit()"
28
- class="mn-l-auto t-nowrap t-white bg-black w-max"
28
+ class="mn-l-auto ws-nowrap t-white bg-black w-max"
29
29
  >
30
30
  Save
31
31
  </Button>
@@ -1,5 +1,5 @@
1
- import Sidebar from '@martyrs/src/modules/backoffice/components/partials/Sidebar.vue';
2
-
1
+ import Navigation from '@martyrs/src/modules/core/views/components/partials/Navigation.vue';
2
+ import { navigationItems } from '@martyrs/src/modules/backoffice/configs/navigation.backoffice.config.js';
3
3
  import SidebarPages from '../components/partials/SidebarPages.vue';
4
4
 
5
5
  const pages = {
@@ -8,7 +8,8 @@ const pages = {
8
8
  title: {
9
9
  en: 'Pages',
10
10
  },
11
- sidebar: Sidebar,
11
+ sidebar_navigation: Navigation,
12
+ sidebar_navigation_items: navigationItems,
12
13
  },
13
14
  children: [
14
15
  {
@@ -151,7 +151,7 @@
151
151
  v-for="category in currentCategories"
152
152
  :key="category._id"
153
153
  @click="selectCategory(category)"
154
- class=" flex-child-default bg-light flex t-nowrap pd-medium radius-medium cursor-pointer hover:bg-light ease"
154
+ class=" flex-child-default bg-light flex ws-nowrap pd-medium radius-medium cursor-pointer hover:bg-light ease"
155
155
  >
156
156
  {{ category.name }}
157
157
  </div>
@@ -81,7 +81,7 @@
81
81
  { value: 'discount', label: 'Discount (%)' },
82
82
  { value: 'special_price', label: 'Special Price' },
83
83
  ]"
84
- class="pos-relative t-nowrap bg-white gap-small flex flex-column pd-thin radius-thin"
84
+ class="pos-relative ws-nowrap bg-white gap-small flex flex-column pd-thin radius-thin"
85
85
  />
86
86
  </Field>
87
87
 
@@ -61,7 +61,7 @@
61
61
  >
62
62
  <div v-if="isVariantAvailable" class="gap-micro flex flex-center flex-nowrap">
63
63
  <IconShopcartAdd class="i-medium"/>
64
- <span class="t-nowrap">{{ t('addtoorder') }}</span>
64
+ <span class="ws-nowrap">{{ t('addtoorder') }}</span>
65
65
  </div>
66
66
  <template v-else>
67
67
  <span v-if="!selectedVariant && productVariants.length > 1">Select variant</span>
@@ -24,7 +24,7 @@
24
24
  v-for="category in currentCategories"
25
25
  :key="category._id"
26
26
  @click="selectCategory(category)"
27
- class="flex-child-default bg-light flex t-nowrap pd-medium radius-medium cursor-pointer hover:bg-light ease"
27
+ class="flex-child-default bg-light flex ws-nowrap pd-medium radius-medium cursor-pointer hover:bg-light ease"
28
28
  >
29
29
  {{ category.name }}
30
30
  </div>
@@ -10,7 +10,7 @@
10
10
  <Select
11
11
  :options="depositOptions"
12
12
  v-model:select="state.chosenNetwork"
13
- class="bg-light t-nowrap pd-r-thin pd-l-thin pd-t-nano pd-b-nano radius-thin"
13
+ class="bg-light ws-nowrap pd-r-thin pd-l-thin pd-t-nano pd-b-nano radius-thin"
14
14
  />
15
15
  </Field>
16
16
 
@@ -16,7 +16,7 @@
16
16
  <h2>{{state.tokenBalance}} {{ t('wallet.token') }}</h2>
17
17
  </div>
18
18
 
19
- <button @click="openGetMorePopup" class="t-nowrap w-max bg-main fw-medium button">Get More</button>
19
+ <button @click="openGetMorePopup" class="ws-nowrap w-max bg-main fw-medium button">Get More</button>
20
20
 
21
21
 
22
22
  <Button