@ozdao/martyrs 0.2.580 → 0.2.582

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 (211) hide show
  1. package/dist/_virtual/dayjs.min.js +1 -1
  2. package/dist/_virtual/weekOfYear.js +1 -1
  3. package/dist/builder.js +1 -6
  4. package/dist/loader.js +1 -6
  5. package/dist/martyrs/src/components/Block/Block.vue.js +1 -1
  6. package/dist/martyrs/src/components/Button/{Button.vue2.js → Button.vue.js} +2 -2
  7. package/dist/martyrs/src/components/Button/Button.vue.js.map +1 -0
  8. package/dist/martyrs/src/components/EditImages/{EditImages.vue2.js → EditImages.vue.js} +2 -2
  9. package/dist/martyrs/src/components/EditImages/EditImages.vue.js.map +1 -0
  10. package/dist/martyrs/src/components/Feed/Feed.vue.js +1 -1
  11. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +1 -1
  12. package/dist/martyrs/src/components/Select/{Select.vue.js → Select.vue2.js} +2 -2
  13. package/dist/martyrs/src/components/Select/Select.vue2.js.map +1 -0
  14. package/dist/martyrs/src/components/Spoiler/{Spoiler.vue2.js → Spoiler.vue.js} +2 -2
  15. package/dist/martyrs/src/components/Spoiler/Spoiler.vue.js.map +1 -0
  16. package/dist/martyrs/src/components/Tab/{Tab.vue2.js → Tab.vue.js} +2 -2
  17. package/dist/martyrs/src/components/Tab/Tab.vue.js.map +1 -0
  18. package/dist/martyrs/src/components/Tooltip/{Tooltip.vue.js → Tooltip.vue2.js} +2 -2
  19. package/dist/martyrs/src/components/Tooltip/Tooltip.vue2.js.map +1 -0
  20. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +2 -2
  21. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +2 -2
  22. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +1 -1
  23. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js +1 -1
  24. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +1 -1
  25. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js.map +1 -1
  26. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +1 -1
  27. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +1 -1
  28. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +2 -2
  29. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +5 -2
  30. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js.map +1 -1
  31. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +2 -2
  32. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +1 -1
  33. package/dist/martyrs/src/modules/auth/views/configs/navigation.user.config.js +2 -3
  34. package/dist/martyrs/src/modules/auth/views/configs/navigation.user.config.js.map +1 -1
  35. package/dist/martyrs/src/modules/auth/views/router/users.router.js +1 -2
  36. package/dist/martyrs/src/modules/auth/views/router/users.router.js.map +1 -1
  37. package/dist/martyrs/src/modules/auth/views/store/auth.js +1 -0
  38. package/dist/martyrs/src/modules/auth/views/store/auth.js.map +1 -1
  39. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +1 -1
  40. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +1 -1
  41. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
  42. package/dist/martyrs/src/modules/constructor/components/sections/Constructor.vue.js +1 -1
  43. package/dist/martyrs/src/modules/core/views/classes/ws.manager.js +16 -1
  44. package/dist/martyrs/src/modules/core/views/classes/ws.manager.js.map +1 -1
  45. package/dist/martyrs/src/modules/core/views/components/blocks/CardHeader.vue.js +2 -2
  46. package/dist/martyrs/src/modules/core/views/components/blocks/PopupAuth.vue.js +1 -1
  47. package/dist/martyrs/src/modules/core/views/components/blocks/PopupDateSelector.vue.js +1 -1
  48. package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js +1 -1
  49. package/dist/martyrs/src/modules/core/views/components/partials/Header.vue.js +2 -2
  50. package/dist/martyrs/src/modules/core/views/components/partials/Navigation.vue.js +1 -1
  51. package/dist/martyrs/src/modules/core/views/components/partials/NavigationBar.vue.js +1 -1
  52. package/dist/martyrs/src/modules/core/views/components/sections/{Filters.vue2.js → Filters.vue.js} +2 -2
  53. package/dist/martyrs/src/modules/core/views/components/sections/Filters.vue.js.map +1 -0
  54. package/dist/martyrs/src/modules/core/views/components/sections/SectionPageTitle.vue.js +1 -1
  55. package/dist/martyrs/src/modules/core/views/utils/vue-app-renderer.js +8 -1
  56. package/dist/martyrs/src/modules/core/views/utils/vue-app-renderer.js.map +1 -1
  57. package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.js +1 -1
  58. package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.js +1 -1
  59. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +2 -2
  60. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
  61. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +1 -1
  62. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js +1 -1
  63. package/dist/martyrs/src/modules/events/components/sections/EditTickets.vue.js +1 -1
  64. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +3 -3
  65. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +2 -2
  66. package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.js +1 -1
  67. package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js +1 -1
  68. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +2 -2
  69. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +2 -2
  70. package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.js +1 -1
  71. package/dist/martyrs/src/modules/marketplace/views/components/pages/Marketplace.vue.js +1 -1
  72. package/dist/martyrs/src/modules/music/components/blocks/ActionButtons.vue.js +1 -1
  73. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +1 -1
  74. package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.js +1 -1
  75. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js +1 -1
  76. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js +1 -1
  77. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +2 -2
  78. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +2 -2
  79. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +1 -1
  80. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js +1 -1
  81. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +2 -2
  82. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +1 -1
  83. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +1 -1
  84. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +1 -1
  85. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +1 -1
  86. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +1 -1
  87. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +1 -1
  88. package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.js +1 -1
  89. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js +1 -1
  90. package/dist/martyrs/src/modules/music/components/player/PlayerControls.vue.js +1 -1
  91. package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.js +1 -1
  92. package/dist/martyrs/src/modules/notifications/components/blocks/NotificationItem.vue.js +2 -2
  93. package/dist/martyrs/src/modules/notifications/components/blocks/NotificationItem.vue.js.map +1 -1
  94. package/dist/martyrs/src/modules/notifications/components/layouts/NotificationsLayout.vue.js +11 -40
  95. package/dist/martyrs/src/modules/notifications/components/layouts/NotificationsLayout.vue.js.map +1 -1
  96. package/dist/martyrs/src/modules/notifications/components/pages/Notifications.vue.js +26 -21
  97. package/dist/martyrs/src/modules/notifications/components/pages/Notifications.vue.js.map +1 -1
  98. package/dist/martyrs/src/modules/notifications/components/sections/NotificationPreferences.vue.js +54 -48
  99. package/dist/martyrs/src/modules/notifications/components/sections/NotificationPreferences.vue.js.map +1 -1
  100. package/dist/martyrs/src/modules/notifications/components/sections/NotificationsList.vue.js +37 -117
  101. package/dist/martyrs/src/modules/notifications/components/sections/NotificationsList.vue.js.map +1 -1
  102. package/dist/martyrs/src/modules/notifications/notifications.client.js +18 -15
  103. package/dist/martyrs/src/modules/notifications/notifications.client.js.map +1 -1
  104. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.js +1 -1
  105. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +2 -2
  106. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +2 -2
  107. package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js +1 -1
  108. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +3 -3
  109. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +1 -1
  110. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +2 -2
  111. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.js +1 -1
  112. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js +1 -1
  113. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js +1 -1
  114. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +1 -1
  115. package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.js +1 -1
  116. package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.js +1 -1
  117. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +1 -1
  118. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js +1 -1
  119. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js +2 -2
  120. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js +1 -1
  121. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js +1 -1
  122. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +1 -1
  123. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +3 -3
  124. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js +1 -1
  125. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +1 -1
  126. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +2 -2
  127. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +2 -2
  128. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -1
  129. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +2 -2
  130. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +1 -1
  131. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.js +1 -1
  132. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +1 -1
  133. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +3 -3
  134. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +2 -2
  135. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +4 -4
  136. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +3 -3
  137. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +1 -1
  138. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +2 -2
  139. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +3 -3
  140. package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.js +1 -1
  141. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js +1 -1
  142. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +1 -1
  143. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +2 -2
  144. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +2 -2
  145. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js +1 -1
  146. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +1 -1
  147. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +2 -2
  148. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js +1 -1
  149. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +1 -1
  150. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js +1 -1
  151. package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.js +1 -1
  152. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +3 -3
  153. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +2 -2
  154. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +1 -1
  155. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +3 -3
  156. package/dist/{martyrs → node_modules/.pnpm/@vue_server-renderer@3.5.13_vue@3.5.13_typescript@5.8.3_}/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.js +1 -1
  157. package/dist/node_modules/.pnpm/@vue_server-renderer@3.5.13_vue@3.5.13_typescript@5.8.3_/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.js.map +1 -0
  158. package/dist/node_modules/.pnpm/@vue_shared@3.5.13/node_modules/@vue/shared/dist/shared.esm-bundler.js.map +1 -0
  159. package/dist/{martyrs → node_modules/.pnpm/dayjs@1.11.13}/node_modules/dayjs/dayjs.min.js +1 -1
  160. package/dist/node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/dayjs.min.js.map +1 -0
  161. package/dist/{martyrs → node_modules/.pnpm/dayjs@1.11.13}/node_modules/dayjs/plugin/weekOfYear.js +1 -1
  162. package/dist/node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/plugin/weekOfYear.js.map +1 -0
  163. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/native.js +6 -0
  164. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/native.js.map +1 -0
  165. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/rng.js +15 -0
  166. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/rng.js.map +1 -0
  167. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/stringify.js +11 -0
  168. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/stringify.js.map +1 -0
  169. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/v4.js +20 -0
  170. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/v4.js.map +1 -0
  171. package/dist/style.css +2 -189
  172. package/package.json +1 -1
  173. package/src/jit/loader.js +1 -6
  174. package/src/jit/plugin.js +1 -5
  175. package/src/modules/auth/views/components/pages/ProfileEdit.vue +1 -1
  176. package/src/modules/auth/views/components/pages/SignIn.vue +14 -10
  177. package/src/modules/auth/views/configs/navigation.user.config.js +10 -10
  178. package/src/modules/auth/views/router/users.router.js +0 -1
  179. package/src/modules/auth/views/store/auth.js +1 -0
  180. package/src/modules/core/views/classes/ws.manager.js +20 -1
  181. package/src/modules/core/views/utils/vue-app-renderer.js +9 -3
  182. package/src/modules/notifications/components/blocks/NotificationItem.vue +1 -1
  183. package/src/modules/notifications/components/layouts/NotificationsLayout.vue +9 -53
  184. package/src/modules/notifications/components/pages/Notifications.vue +21 -22
  185. package/src/modules/notifications/components/sections/NotificationPreferences.vue +41 -180
  186. package/src/modules/notifications/components/sections/NotificationsList.vue +39 -219
  187. package/src/modules/notifications/notifications.client.js +17 -16
  188. package/dist/martyrs/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.js.map +0 -1
  189. package/dist/martyrs/node_modules/@vue/shared/dist/shared.esm-bundler.js.map +0 -1
  190. package/dist/martyrs/node_modules/dayjs/dayjs.min.js.map +0 -1
  191. package/dist/martyrs/node_modules/dayjs/plugin/weekOfYear.js.map +0 -1
  192. package/dist/martyrs/node_modules/uuid/dist/esm-browser/regex.js +0 -5
  193. package/dist/martyrs/node_modules/uuid/dist/esm-browser/regex.js.map +0 -1
  194. package/dist/martyrs/node_modules/uuid/dist/esm-browser/rng.js +0 -15
  195. package/dist/martyrs/node_modules/uuid/dist/esm-browser/rng.js.map +0 -1
  196. package/dist/martyrs/node_modules/uuid/dist/esm-browser/stringify.js +0 -17
  197. package/dist/martyrs/node_modules/uuid/dist/esm-browser/stringify.js.map +0 -1
  198. package/dist/martyrs/node_modules/uuid/dist/esm-browser/v4.js +0 -13
  199. package/dist/martyrs/node_modules/uuid/dist/esm-browser/v4.js.map +0 -1
  200. package/dist/martyrs/node_modules/uuid/dist/esm-browser/validate.js +0 -8
  201. package/dist/martyrs/node_modules/uuid/dist/esm-browser/validate.js.map +0 -1
  202. package/dist/martyrs/src/components/Button/Button.vue2.js.map +0 -1
  203. package/dist/martyrs/src/components/EditImages/EditImages.vue2.js.map +0 -1
  204. package/dist/martyrs/src/components/Select/Select.vue.js.map +0 -1
  205. package/dist/martyrs/src/components/Spoiler/Spoiler.vue2.js.map +0 -1
  206. package/dist/martyrs/src/components/Tab/Tab.vue2.js.map +0 -1
  207. package/dist/martyrs/src/components/Tooltip/Tooltip.vue.js.map +0 -1
  208. package/dist/martyrs/src/modules/auth/views/components/blocks/ProfileCard.vue.js +0 -44
  209. package/dist/martyrs/src/modules/auth/views/components/blocks/ProfileCard.vue.js.map +0 -1
  210. package/dist/martyrs/src/modules/core/views/components/sections/Filters.vue2.js.map +0 -1
  211. /package/dist/{martyrs → node_modules/.pnpm/@vue_shared@3.5.13}/node_modules/@vue/shared/dist/shared.esm-bundler.js +0 -0
@@ -1,5 +1,5 @@
1
1
  import { getDefaultExportFromCjs } from "./_commonjsHelpers.js";
2
- import { __require as requireDayjs_min } from "../martyrs/node_modules/dayjs/dayjs.min.js";
2
+ import { __require as requireDayjs_min } from "../node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/dayjs.min.js";
3
3
  var dayjs_minExports = requireDayjs_min();
4
4
  const dayjs = /* @__PURE__ */ getDefaultExportFromCjs(dayjs_minExports);
5
5
  export {
@@ -1,5 +1,5 @@
1
1
  import { getDefaultExportFromCjs } from "./_commonjsHelpers.js";
2
- import { __require as requireWeekOfYear } from "../martyrs/node_modules/dayjs/plugin/weekOfYear.js";
2
+ import { __require as requireWeekOfYear } from "../node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/plugin/weekOfYear.js";
3
3
  var weekOfYearExports = requireWeekOfYear();
4
4
  const weekOfYear = /* @__PURE__ */ getDefaultExportFromCjs(weekOfYearExports);
5
5
  export {
package/dist/builder.js CHANGED
@@ -1765,7 +1765,7 @@ class MartyrsJitPlugin {
1765
1765
  (assets) => {
1766
1766
  const startTime = performance.now();
1767
1767
  const css = this.generateCSS();
1768
- const duration = performance.now() - startTime;
1768
+ performance.now() - startTime;
1769
1769
  for (const [filename, asset] of Object.entries(assets)) {
1770
1770
  if (!filename.endsWith(".css") && !filename.endsWith(".js")) {
1771
1771
  continue;
@@ -1786,9 +1786,6 @@ class MartyrsJitPlugin {
1786
1786
  if (replaced) {
1787
1787
  const { RawSource } = compiler.webpack.sources;
1788
1788
  compilation.updateAsset(filename, new RawSource(source));
1789
- console.log(`[MartyrsJIT] Replaced in ${filename}: ${this.tokens.size} tokens in ${duration.toFixed(2)}ms`);
1790
- } else if (filename.includes("martyrs") || filename.includes("__martyrs")) {
1791
- console.log(`[MartyrsJIT] No placeholder found in ${filename}`);
1792
1789
  }
1793
1790
  }
1794
1791
  }
@@ -1803,9 +1800,7 @@ class MartyrsJitPlugin {
1803
1800
  this.jit.reset();
1804
1801
  try {
1805
1802
  this.virtualModules.writeModule(VIRTUAL_MODULE_PATH, LAYER_PLACEHOLDER + "\n/*" + Date.now() + "*/");
1806
- console.log("[MartyrsJIT] Virtual module rewritten with placeholder");
1807
1803
  } catch (e) {
1808
- console.log("[MartyrsJIT] watchRun: store not ready yet", e.message);
1809
1804
  }
1810
1805
  });
1811
1806
  }
package/dist/loader.js CHANGED
@@ -6,14 +6,9 @@ function martyrsLoader(source) {
6
6
  }
7
7
  const resourcePath = this.resourcePath;
8
8
  try {
9
- const before = plugin.tokensByFile.get(resourcePath)?.size || 0;
10
9
  plugin.extractFromFile(source, resourcePath);
11
- const after = plugin.tokensByFile.get(resourcePath)?.size || 0;
12
- if (before !== after) {
13
- console.log(`[MartyrsJIT Loader] ${resourcePath.split("/").pop()}: ${before} → ${after} tokens`);
14
- }
15
10
  } catch (error) {
16
- console.warn(`[MartyrsJIT] Error extracting tokens from ${resourcePath}:`, error.message);
11
+ console.error(`[MartyrsJIT] Error extracting tokens from ${resourcePath}:`, error.message);
17
12
  }
18
13
  return source;
19
14
  }
@@ -1,5 +1,5 @@
1
1
  import { useSlots, createElementBlock, openBlock, createCommentVNode, renderSlot, createBlock, toDisplayString, Fragment, renderList, normalizeClass, withCtx, createElementVNode, Comment } from "vue";
2
- import _sfc_main$1 from "../Tooltip/Tooltip.vue.js";
2
+ import _sfc_main$1 from "../Tooltip/Tooltip.vue2.js";
3
3
  const _hoisted_1 = { class: "bg-light pd-medium radius-medium" };
4
4
  const _hoisted_2 = {
5
5
  key: 0,
@@ -2,7 +2,7 @@ import { ref, createElementBlock, openBlock, normalizeClass, withModifiers, crea
2
2
  import Loader from "../Loader/Loader.vue.js";
3
3
  import _sfc_main$1 from "../../modules/icons/navigation/IconCheckmark.vue.js";
4
4
  import _sfc_main$2 from "../../modules/icons/navigation/IconCross.vue.js";
5
- /* empty css */
5
+ /* empty css */
6
6
  const _hoisted_1 = ["disabled"];
7
7
  const _hoisted_2 = {
8
8
  key: 0,
@@ -146,4 +146,4 @@ const _sfc_main = {
146
146
  export {
147
147
  _sfc_main as default
148
148
  };
149
- //# sourceMappingURL=Button.vue2.js.map
149
+ //# sourceMappingURL=Button.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.vue.js","sources":["../../../../../src/components/Button/Button.vue"],"sourcesContent":["<script setup>\nimport { ref } from 'vue'\n\nimport Loader from '@martyrs/src/components/Loader/Loader.vue'\n\nimport IconCheckmark from '@martyrs/src/modules/icons/navigation/IconCheckmark.vue';\nimport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue';\n\nconst props = defineProps({\n submit: {\n type: Function,\n default: async () => { console.log('Button click.') }\n },\n text: {\n type: Object,\n default: () => ({\n success: null,\n error: null\n })\n },\n counter: {\n type: Object\n },\n callback: {\n type: Function,\n default: async () => { console.log('Button callback.') }\n },\n callbackDelay: {\n type: Number,\n default: 750\n },\n showSucces: {\n type: Boolean,\n default: true\n },\n showLoader: {\n type: Boolean,\n default: true\n },\n validation: {\n type: Boolean,\n default: false\n },\n})\n\nconst emits = defineEmits(['error'])\n\nconst button = ref(null)\nconst error = ref(null)\nconst loading = ref(false)\nconst finished = ref(false)\n\nasync function Submit() {\n console.log('click')\n \n button.value.style['pointer-events'] = 'none'\n error.value = null\n loading.value = true\n\n // Функция для сброса состояния кнопки\n const resetButton = () => {\n if (button.value) {\n button.value.style.pointerEvents = 'auto'\n loading.value = false\n finished.value = false\n error.value = null\n }\n }\n\n try {\n await props.submit()\n\n button.value.classList.replace('bg-main', 'bg-second')\n loading.value = false\n\n // Используем функцию сброса состояния кнопки здесь\n if (props.showSucces) { \n finished.value = true\n setTimeout(() => {\n resetButton()\n button.value.classList.replace('bg-second', 'bg-main')\n }, 500)\n } else {\n resetButton()\n button.value.classList.replace('bg-second', 'bg-main')\n }\n\n // Если есть callback, мы также установим таймер для его вызова\n if (props.callback) setTimeout(() => props.callback(), props.callbackDelay)\n\n } catch (err) {\n console.error('=== BUTTON ERROR ===', err)\n emits('error', err)\n // Если возникла ошибка, мы изменяем стили и устанавливаем сообщение об ошибке\n button.value.classList.replace('bg-main', 'bg-fourth-nano')\n loading.value = false\n error.value = true\n \n // После задержки снова сбрасываем состояние кнопки\n setTimeout(() => {\n resetButton()\n // Так как класс кнопки был изменен, вернем его в исходное состояние\n button.value.classList.replace('bg-fourth-nano', 'bg-main')\n }, 1330)\n }\n}\n</script>\n\n<template>\n <button \n @click.stop=\"Submit\"\n :disabled=\"validation\"\n ref=\"button\"\n\t\tclass=\"button\"\n :class=\"{ 'button--disabled': loading || validation }\"\n >\n <span class=\"button-content\" :class=\"{ 'hidden': loading || error || finished }\">\n <slot></slot>\n </span>\n\n <span class=\"button-loader\" :class=\"{ 'active': loading && showLoader }\">\n <Loader class=\"\"/>\n </span>\n\n <span class=\"button-success\" :class=\"{ 'active': finished && showSucces }\">\n <template v-if=\"text.success\">{{ text.success }}</template>\n <IconCheckmark v-else class=\"i-regular\" />\n </span>\n\n <span class=\"button-error\" :class=\"{ 'active': error }\">\n <template v-if=\"text.error\">{{ text.error }}</template>\n <IconCross v-else class=\"i-regular\" />\n </span>\n \n <!-- Counter -->\n <div v-if=\"counter\" class=\"button-counter font-second flex flex-center\">\n <span>{{ counter }}</span>\n </div>\n </button>\n</template>\n\n<style lang=\"scss\">\nbutton[disabled] {\n opacity: 0.75 !important;\n pointer-events: none !important;\n cursor: default !important;\n color: rgba(var(--dark), 0.33) !important;\n background: rgba(var(--light), 1) !important;\n}\n\na.button {\n text-box: trim-both cap alphabetic;\n}\n\n.button {\n position: relative;\n display: flex;\n padding: var(--small);\n border-radius: var(--small);\n text-box: trim-both cap alphabetic;\n transform: scale(1);\n opacity: 1;\n align-items: center;\n justify-content: center;\n color: black;\n text-align: center;\n font-size: 1rem;\n letter-spacing: 5%;\n transition: all 0.33s ease;\n\n &:hover {\n cursor: pointer;\n opacity: 0.9;\n }\n\n &:active {\n transform: scale(0.95);\n }\n\n &-small {\n padding: 0.75rem;\n border-radius: 0.5rem;\n height: fit-content;\n }\n\n .button-counter {\n position: absolute;\n right: -8px;\n bottom: -8px;\n background: yellow;\n height: 16px;\n border-radius: 16px;\n width: 16px;\n font-weight: 500;\n text-align: center;\n line-height: 16px;\n font-size: 10px;\n }\n}\n\n.button-content {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n transition: opacity 0.3s ease;\n}\n\n\n.button-loader {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0;\n transition: opacity 0.3s ease;\n pointer-events: none;\n}\n\n.button-success {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0;\n transition: opacity 0.3s ease;\n pointer-events: none;\n}\n\n.button-error {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0;\n transition: opacity 0.3s ease;\n pointer-events: none;\n}\n\n.active {\n opacity: 1;\n}\n\n.hidden {\n opacity: 0;\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,UAAM,QAAQ;AAqCd,UAAM,QAAQ;AAEd,UAAM,SAAS,IAAI,IAAI;AACvB,UAAM,QAAQ,IAAI,IAAI;AACtB,UAAM,UAAU,IAAI,KAAK;AACzB,UAAM,WAAW,IAAI,KAAK;AAE1B,mBAAe,SAAS;AACtB,cAAQ,IAAI,OAAO;AAEnB,aAAO,MAAM,MAAM,gBAAgB,IAAI;AACvC,YAAM,QAAQ;AACd,cAAQ,QAAQ;AAGhB,YAAM,cAAc,MAAM;AACxB,YAAI,OAAO,OAAO;AAChB,iBAAO,MAAM,MAAM,gBAAgB;AACnC,kBAAQ,QAAQ;AAChB,mBAAS,QAAQ;AACjB,gBAAM,QAAQ;AAAA,QAChB;AAAA,MACF;AAEA,UAAI;AACF,cAAM,MAAM,OAAM;AAElB,eAAO,MAAM,UAAU,QAAQ,WAAW,WAAW;AACrD,gBAAQ,QAAQ;AAGhB,YAAI,MAAM,YAAY;AACpB,mBAAS,QAAQ;AACjB,qBAAW,MAAM;AACf,wBAAW;AACX,mBAAO,MAAM,UAAU,QAAQ,aAAa,SAAS;AAAA,UACvD,GAAG,GAAG;AAAA,QACR,OAAO;AACL,sBAAW;AACX,iBAAO,MAAM,UAAU,QAAQ,aAAa,SAAS;AAAA,QACvD;AAGA,YAAI,MAAM,SAAU,YAAW,MAAM,MAAM,SAAQ,GAAI,MAAM,aAAa;AAAA,MAE5E,SAAS,KAAK;AACZ,gBAAQ,MAAM,wBAAwB,GAAG;AACzC,cAAM,SAAS,GAAG;AAElB,eAAO,MAAM,UAAU,QAAQ,WAAW,gBAAgB;AAC1D,gBAAQ,QAAQ;AAChB,cAAM,QAAQ;AAGd,mBAAW,MAAM;AACf,sBAAW;AAEX,iBAAO,MAAM,UAAU,QAAQ,kBAAkB,SAAS;AAAA,QAC5D,GAAG,IAAI;AAAA,MACT;AAAA,IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -2,7 +2,7 @@ import { ref, watchEffect, createElementBlock, openBlock, createBlock, createCom
2
2
  import { VueDraggableNext } from "../../../../node_modules/.pnpm/vue-draggable-next@2.2.1_sortablejs@1.15.6_vue@3.5.13_typescript@5.8.3_/node_modules/vue-draggable-next/dist/vue-draggable-next.esm-bundler.js";
3
3
  import _sfc_main$2 from "../UploadImageMultiple/UploadImageMultiple.vue.js";
4
4
  import _sfc_main$1 from "../../modules/icons/navigation/IconCross.vue.js";
5
- /* empty css */
5
+ /* empty css */
6
6
  const _hoisted_1 = { class: "flex-nowrap flex gap-small" };
7
7
  const _hoisted_2 = { class: "pos-relative" };
8
8
  const _hoisted_3 = ["src"];
@@ -92,4 +92,4 @@ const _sfc_main = {
92
92
  export {
93
93
  _sfc_main as default
94
94
  };
95
- //# sourceMappingURL=EditImages.vue2.js.map
95
+ //# sourceMappingURL=EditImages.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EditImages.vue.js","sources":["../../../../../src/components/EditImages/EditImages.vue"],"sourcesContent":["<template>\n\t<div class=\"flex-nowrap flex gap-small\">\n <VueDraggableNext v-if=\"localImages.length > 0\" class=\"gap-small flex dragArea list-group w-full\" v-model=\"localImages\" @change=\"emitChanges\">\n\t\t\t<div v-for=\"(image, index) in localImages\" class=\"pos-relative\">\n\t\t\t\t<img loading=\"lazy\" class=\"i-extra object-fit-contain bg-black-transp-5 pd-nano radius-small o-hidden\" :src=\"(FILE_SERVER_URL || '') + image\" />\n\t\t\t\t\n <IconCross \n @click=\"deleteImage(index)\" \n class=\"cursor-pointer pos-absolute t-center flex-center flex radius-extra i-medium bg-red pos-t-10-negative pos-r-10-negative pd-micro\"\n />\n\t\t\t</div>\n\t\t</VueDraggableNext>\n <div\n v-if=\"localImages.length > 0\" \n class=\"i-extra uppercase flex-center flex radius-small o-hidden br-main br-2px pd-small\"\n >\n <UploadImageMultiple \n @update:images=\"onImagesUpdate\"\n text=\"Add\"\n :options=\"{\n showText: false\n }\"\n :uploadPath=\"'photos'\"\n class=\"radius-big\"\n />\n </div>\n\n\n\t\t<UploadImageMultiple \t\n v-if=\"localImages.length < 1\" \n @update:images=\"onImagesUpdate\"\n :uploadPath=\"props.uploadPath\"\n :text=\"props.text\"\n :options=\"props.options\"\n class=\"w-100 pd-medium\"\n />\n\t</div>\t\n</template>\n\n<script setup>\nimport { ref, defineProps, watchEffect } from 'vue';\nimport { VueDraggableNext } from 'vue-draggable-next'\nimport UploadImageMultiple from \"@martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue\";\nimport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue';\n\nconst props = defineProps({\n images: Array,\n text: Object,\n options: Object,\n uploadPath: {\n type: Object,\n default: 'unsorted'\n }\n});\n\nconst emit = defineEmits(['update:images'])\n\nconst localImages = ref([...props.images])\n\nwatchEffect(() => {\n localImages.value = [...props.images]; // Обновление localImages при изменении props.images\n});\n\nconst emitChanges = () => {\n emit('update:images', localImages.value)\n}\n\nconst onImagesUpdate = (newImages) => {\n localImages.value = [...localImages.value, ...newImages]\n emitChanges()\n}\n\nconst deleteImage = (index) => {\n localImages.value.splice(index, 1)\n emitChanges()\n}\n</script>\n\n<style lang=\"scss\">\n// Your styles here\n</style>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA6CA,UAAM,QAAQ;AAUd,UAAM,OAAO;AAEb,UAAM,cAAc,IAAI,CAAC,GAAG,MAAM,MAAM,CAAC;AAEzC,gBAAY,MAAM;AAChB,kBAAY,QAAQ,CAAC,GAAG,MAAM,MAAM;AAAA,IACtC,CAAC;AAED,UAAM,cAAc,MAAM;AACxB,WAAK,iBAAiB,YAAY,KAAK;AAAA,IACzC;AAEA,UAAM,iBAAiB,CAAC,cAAc;AACpC,kBAAY,QAAQ,CAAC,GAAG,YAAY,OAAO,GAAG,SAAS;AACvD,kBAAW;AAAA,IACb;AAEA,UAAM,cAAc,CAAC,UAAU;AAC7B,kBAAY,MAAM,OAAO,OAAO,CAAC;AACjC,kBAAW;AAAA,IACb;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -7,7 +7,7 @@ import _sfc_main$2 from "../Dropdown/Dropdown.vue.js";
7
7
  import Calendar from "../Calendar/Calendar.vue2.js";
8
8
  import _sfc_main$1 from "../../modules/core/views/components/blocks/BlockSearch.vue.js";
9
9
  import _sfc_main$5 from "../../modules/core/views/components/blocks/BlockSorting.vue.js";
10
- import Filters from "../../modules/core/views/components/sections/Filters.vue2.js";
10
+ import Filters from "../../modules/core/views/components/sections/Filters.vue.js";
11
11
  import _sfc_main$4 from "../../modules/core/views/components/elements/ButtonSort.vue.js";
12
12
  import _sfc_main$3 from "../../modules/core/views/components/elements/ButtonDate.vue.js";
13
13
  /* empty css */
@@ -1,6 +1,6 @@
1
1
  import { ref, onMounted, watchEffect, createBlock, openBlock, unref, isRef, withCtx, renderSlot, createVNode, createElementBlock, createCommentVNode, toDisplayString } from "vue";
2
2
  import Field from "../Field/Field.vue.js";
3
- import _sfc_main$1 from "../Button/Button.vue2.js";
3
+ import _sfc_main$1 from "../Button/Button.vue.js";
4
4
  import _sfc_main$2 from "../../modules/icons/navigation/IconArrow.vue.js";
5
5
  import { useI18n } from "vue-i18n";
6
6
  const _hoisted_1 = {
@@ -1,6 +1,6 @@
1
1
  import { ref, computed, watch, createElementBlock, openBlock, Fragment, withDirectives, createVNode, normalizeClass, withModifiers, createCommentVNode, createElementVNode, toDisplayString, Transition, withCtx, renderList, vShow, unref, nextTick } from "vue";
2
2
  import clickOutside from "../FieldPhone/click-outside.js";
3
- /* empty css */
3
+ /* empty css */
4
4
  import _export_sfc from "../../../../_virtual/_plugin-vue_export-helper.js";
5
5
  const _hoisted_1 = {
6
6
  key: 0,
@@ -131,4 +131,4 @@ const Select = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-af5
131
131
  export {
132
132
  Select as default
133
133
  };
134
- //# sourceMappingURL=Select.vue.js.map
134
+ //# sourceMappingURL=Select.vue2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Select.vue2.js","sources":["../../../../../src/components/Select/Select.vue"],"sourcesContent":["<template>\n <!-- Input Wrapper -->\n <div \n ref=\"fieldWrapper\"\n tabindex=\"0\"\n @click.stop=\"toggleMenu\" \n v-click-outside=\"clickedOutside\" \n :class=\"$attrs.class\" \n class=\"cursor-pointer field-wrapper flex-v-center flex-nowrap flex pos-relative\"\n >\n <!-- Label -->\n <span v-if=\"label\" class=\"t-transp mn-r-small\">{{label}}</span>\n \n <!-- Input -->\n <span>\n {{ optionsSelected ? (optionsSelected.name || optionsSelected[props.value] || optionsSelected) : placeholder }}\n </span>\n <!-- Dropdown menu -->\n <transition mode=\"out-in\" name=\"TransitionTranslateY\">\n <ul \n v-show=\"showMenu\" \n class=\"bs-black pos-absolute pos-t-100 pos-l-0 z-index-5 pd-small radius-small bg-white mn-t-thin w-100\"\n style=\"min-width: max-content;\"\n >\n <li @click.stop=\"selectOption(option)\" v-for=\"option in optionsListed\" class=\"radius-thin hover:bg-light pd-thin text-box-trim\">\n <span v-if=\"option\" class=\"w-100\">\n {{ option.name || option[props.value] || option }}\n </span>\n </li>\n </ul>\n </transition>\n </div>\n <!-- Validation -->\n <transition mode=\"out-in\" name=\"fade\">\n <div v-if=\"validation\" class=\"mn-t-thin invalid-feedback\">\n * {{validation.message}}\n </div>\n </transition>\n</template>\n<script setup>\nimport { ref, computed, watch, nextTick } from 'vue'\nimport clickOutside from '../FieldPhone/click-outside.js';\nlet vClickOutside = clickOutside\nconst emit = defineEmits([\n 'update:select', \n 'focus', \n 'blur'\n])\nconst props = defineProps({\n label: String,\n placeholder: { type: String, default: 'Please select an item' },\n select: [String, Object],\n property: String,\n value: String,\n options: { type: Array, default: () => [] },\n validation: Boolean,\n})\nconst showMenu = ref(false)\nconst fieldWrapper = ref(null)\nconst optionsSelected = ref(\n props.property \n ? findObjectByValue(props.select, props.property, props.options) \n : props.select\n)\nconst optionsListed = computed(() => {\n return props.select \n ? props.options.filter(option => option !== props.select) \n : props.options\n})\nwatch(() => props.select, (newSelect) => {\n optionsSelected.value = \n props.property \n ? findObjectByValue(props.select, props.property, props.options) \n : props.select;\n});\nconst toggleMenu = async () => {\n showMenu.value = !showMenu.value\n \n if (showMenu.value) {\n await nextTick()\n fieldWrapper.value?.focus()\n emit('focus')\n } else {\n emit('blur')\n }\n}\nfunction clickedOutside () {\n showMenu.value = false\n}\nconst selectOption = option => {\n optionsSelected.value = option\n \n toggleMenu()\n if (props.property) { \n emit('update:select', optionsSelected.value[props.property])\n } else {\n emit('update:select', optionsSelected.value)\n }\n}\nfunction findObjectByValue (value, property, objects) {\n for (const object of objects) {\n if (object[property] === value || object === value) {\n return object;\n }\n }\n return null;\n}\n</script>\n<style lang=\"scss\" scoped>\n li {\n list-style-type: none;\n }\n ul li {\n line-height: 2;\n }\n .field-wrapper:focus {\n outline: none;\n }\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CA,QAAI,gBAAgB;AACpB,UAAM,OAAO;AAKb,UAAM,QAAQ;AASd,UAAM,WAAW,IAAI,KAAK;AAC1B,UAAM,eAAe,IAAI,IAAI;AAC7B,UAAM,kBAAkB;AAAA,MACtB,MAAM,WACJ,kBAAkB,MAAM,QAAQ,MAAM,UAAU,MAAM,OAAO,IAC7D,MAAM;AAAA,IACV;AACA,UAAM,gBAAgB,SAAS,MAAM;AACnC,aAAO,MAAM,SACX,MAAM,QAAQ,OAAO,YAAU,WAAW,MAAM,MAAM,IACtD,MAAM;AAAA,IACV,CAAC;AACD,UAAM,MAAM,MAAM,QAAQ,CAAC,cAAc;AACvC,sBAAgB,QAChB,MAAM,WACJ,kBAAkB,MAAM,QAAQ,MAAM,UAAU,MAAM,OAAO,IAC7D,MAAM;AAAA,IACV,CAAC;AACD,UAAM,aAAa,YAAY;AAC7B,eAAS,QAAQ,CAAC,SAAS;AAE3B,UAAI,SAAS,OAAO;AAClB,cAAM,SAAQ;AACd,qBAAa,OAAO,MAAK;AACzB,aAAK,OAAO;AAAA,MACd,OAAO;AACL,aAAK,MAAM;AAAA,MACb;AAAA,IACF;AACA,aAAS,iBAAkB;AACzB,eAAS,QAAQ;AAAA,IACnB;AACA,UAAM,eAAe,YAAU;AAC7B,sBAAgB,QAAQ;AAExB,iBAAU;AACV,UAAI,MAAM,UAAU;AAClB,aAAK,iBAAiB,gBAAgB,MAAM,MAAM,QAAQ,CAAC;AAAA,MAC7D,OAAO;AACL,aAAK,iBAAiB,gBAAgB,KAAK;AAAA,MAC7C;AAAA,IACF;AACA,aAAS,kBAAmB,OAAO,UAAU,SAAS;AACpD,iBAAW,UAAU,SAAS;AAC5B,YAAI,OAAO,QAAQ,MAAM,SAAS,WAAW,OAAO;AAClD,iBAAO;AAAA,QACT;AAAA,MACF;AACA,aAAO;AAAA,IACT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { ref, onMounted, createElementBlock, openBlock, createElementVNode, createVNode, renderSlot, Transition, withCtx, withDirectives, vShow } from "vue";
2
- /* empty css */
2
+ /* empty css */
3
3
  const _sfc_main = {
4
4
  __name: "Spoiler",
5
5
  props: {
@@ -70,4 +70,4 @@ const _sfc_main = {
70
70
  export {
71
71
  _sfc_main as default
72
72
  };
73
- //# sourceMappingURL=Spoiler.vue2.js.map
73
+ //# sourceMappingURL=Spoiler.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Spoiler.vue.js","sources":["../../../../../src/components/Spoiler/Spoiler.vue"],"sourcesContent":["<template>\n <div>\n <div @click=\"toggleSpoiler\" class=\"flex-v-center flex-nowrap flex\">\n <slot name=\"header\" :isOpen=\"showSpoiler\"></slot>\n </div>\n <transition\n name=\"collapse\"\n @enter=\"onEnter\"\n @after-enter=\"onAfterEnter\"\n @leave=\"onLeave\"\n >\n <div v-show=\"showSpoiler\" class=\"spoiler\" ref=\"spoilerContent\">\n <slot name=\"content\"></slot>\n </div>\n </transition>\n </div>\n</template>\n<script setup>\nimport { ref, onMounted } from 'vue';\n\nconst props = defineProps({\n status: {\n type: Boolean,\n default: false\n }\n});\n\nconst showSpoiler = ref(false);\nconst spoilerContent = ref(null);\n\nonMounted(() => {\n if (props.status) {\n showSpoiler.value = props.status;\n }\n});\n\nconst toggleSpoiler = () => {\n showSpoiler.value = !showSpoiler.value;\n};\n\n// Анимация открытия\nconst onEnter = (el) => {\n el.style.height = '0';\n void el.offsetHeight; // force reflow\n el.style.height = el.scrollHeight + 'px';\n};\n\nconst onAfterEnter = (el) => {\n el.style.height = 'auto';\n};\n\n// Анимация закрытия\nconst onLeave = (el) => {\n el.style.height = el.scrollHeight + 'px';\n void el.offsetHeight; // force reflow\n el.style.height = '0';\n};\n\ndefineExpose({\n showSpoiler\n});\n</script>\n<style lang=\"scss\">\n.spoiler {\n overflow: hidden;\n transition: height 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;AAoBA,UAAM,QAAQ;AAOd,UAAM,cAAc,IAAI,KAAK;AAC7B,UAAM,iBAAiB,IAAI,IAAI;AAE/B,cAAU,MAAM;AACd,UAAI,MAAM,QAAQ;AAChB,oBAAY,QAAQ,MAAM;AAAA,MAC5B;AAAA,IACF,CAAC;AAED,UAAM,gBAAgB,MAAM;AAC1B,kBAAY,QAAQ,CAAC,YAAY;AAAA,IACnC;AAGA,UAAM,UAAU,CAAC,OAAO;AACtB,SAAG,MAAM,SAAS;AAClB,WAAK,GAAG;AACR,SAAG,MAAM,SAAS,GAAG,eAAe;AAAA,IACtC;AAEA,UAAM,eAAe,CAAC,OAAO;AAC3B,SAAG,MAAM,SAAS;AAAA,IACpB;AAGA,UAAM,UAAU,CAAC,OAAO;AACtB,SAAG,MAAM,SAAS,GAAG,eAAe;AACpC,WAAK,GAAG;AACR,SAAG,MAAM,SAAS;AAAA,IACpB;AAEA,aAAa;AAAA,MACX;AAAA,IACF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { ref, watch, createElementBlock, openBlock, Fragment, renderList, normalizeStyle, normalizeClass, unref, toDisplayString } from "vue";
2
2
  import { useGlobalMixins } from "../../modules/core/views/mixins/mixins.js";
3
- /* empty css */
3
+ /* empty css */
4
4
  const _hoisted_1 = { class: "flex-nowrap flex-v-center flex pos-relative" };
5
5
  const _hoisted_2 = ["onClick"];
6
6
  const _sfc_main = {
@@ -71,4 +71,4 @@ const _sfc_main = {
71
71
  export {
72
72
  _sfc_main as default
73
73
  };
74
- //# sourceMappingURL=Tab.vue2.js.map
74
+ //# sourceMappingURL=Tab.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tab.vue.js","sources":["../../../../../src/components/Tab/Tab.vue"],"sourcesContent":["<template>\n <div class=\"flex-nowrap flex-v-center flex pos-relative\">\n <button \n v-for=\"(tab, index) in tabs\" \n :key=\"index\" \n @click=\"handleTabClick(index, tab)\" \n class=\"z-index-1 t-center cursor-pointer\"\n :style=\"isSelected(index, tab) ? 'background: rgb(var(--main)) !important' : ''\"\n :class=\"[\n isSelected(index, tab) ? 'bg-main' : '',\n replaceClasses('pd-small pd-r-medium pd-l-medium w-max pd-small radius-small', classTab)\n ]\"\n >\n {{tab.name || tab.label}}\n </button>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed, watch } from 'vue'\nimport { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js';\n\nconst { replaceClasses } = useGlobalMixins();\nconst emit = defineEmits(['update:selected', 'tab-click']);\n\nconst props = defineProps({\n tabs: Array,\n classTab: String,\n selected: [String, Number],\n modelValue: [String, Number],\n callback: Function\n})\n\nconst selectedTab = ref(0)\n\n// Handle both v-model and selected prop for backward compatibility\nconst updateSelectedIndex = () => {\n if (props.modelValue !== undefined) {\n const selectedIndex = props.tabs.findIndex(tab => tab.value === props.modelValue)\n if (selectedIndex !== -1) {\n selectedTab.value = selectedIndex\n }\n } else if (props.selected !== undefined) {\n const selectedIndex = props.tabs.findIndex(tab => tab.value === props.selected)\n if (selectedIndex !== -1) {\n selectedTab.value = selectedIndex\n }\n }\n}\n\n// Initial setup\nupdateSelectedIndex()\n\n// Watch for changes in selected or modelValue props\nwatch(() => props.selected, updateSelectedIndex)\nwatch(() => props.modelValue, updateSelectedIndex)\n\n// Check if tab is selected\nconst isSelected = (index, tab) => {\n if (props.modelValue !== undefined) {\n return tab.value === props.modelValue\n } else if (props.selected !== undefined) {\n return tab.value === props.selected\n }\n return index === selectedTab.value\n}\n\n// Handle tab click\nfunction handleTabClick(index, tab) {\n selectedTab.value = index\n \n // Emit both events for flexibility\n emit('update:selected', tab.value)\n emit('tab-click', { index, tab })\n \n // For v-model support\n if (props.modelValue !== undefined) {\n emit('update:modelValue', tab.value)\n }\n \n // Call callback if provided\n if (props.callback) props.callback(tab)\n}\n</script>\n\n<style lang=\"scss\">\n.tab-selector {\n position: absolute;\n width: 50%;\n height: 100%;\n left: 0;\n top: 0;\n z-index: 0;\n transition: left 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAsBA,UAAM,EAAE,eAAc,IAAK,gBAAe;AAC1C,UAAM,OAAO;AAEb,UAAM,QAAQ;AAQd,UAAM,cAAc,IAAI,CAAC;AAGzB,UAAM,sBAAsB,MAAM;AAChC,UAAI,MAAM,eAAe,QAAW;AAClC,cAAM,gBAAgB,MAAM,KAAK,UAAU,SAAO,IAAI,UAAU,MAAM,UAAU;AAChF,YAAI,kBAAkB,IAAI;AACxB,sBAAY,QAAQ;AAAA,QACtB;AAAA,MACF,WAAW,MAAM,aAAa,QAAW;AACvC,cAAM,gBAAgB,MAAM,KAAK,UAAU,SAAO,IAAI,UAAU,MAAM,QAAQ;AAC9E,YAAI,kBAAkB,IAAI;AACxB,sBAAY,QAAQ;AAAA,QACtB;AAAA,MACF;AAAA,IACF;AAGA,wBAAmB;AAGnB,UAAM,MAAM,MAAM,UAAU,mBAAmB;AAC/C,UAAM,MAAM,MAAM,YAAY,mBAAmB;AAGjD,UAAM,aAAa,CAAC,OAAO,QAAQ;AACjC,UAAI,MAAM,eAAe,QAAW;AAClC,eAAO,IAAI,UAAU,MAAM;AAAA,MAC7B,WAAW,MAAM,aAAa,QAAW;AACvC,eAAO,IAAI,UAAU,MAAM;AAAA,MAC7B;AACA,aAAO,UAAU,YAAY;AAAA,IAC/B;AAGA,aAAS,eAAe,OAAO,KAAK;AAClC,kBAAY,QAAQ;AAGpB,WAAK,mBAAmB,IAAI,KAAK;AACjC,WAAK,aAAa,EAAE,OAAO,IAAG,CAAE;AAGhC,UAAI,MAAM,eAAe,QAAW;AAClC,aAAK,qBAAqB,IAAI,KAAK;AAAA,MACrC;AAGA,UAAI,MAAM,SAAU,OAAM,SAAS,GAAG;AAAA,IACxC;;;;;;;;;;;;;;;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { ref, reactive, createElementBlock, openBlock, renderSlot, createElementVNode, normalizeStyle, toDisplayString } from "vue";
2
- /* empty css */
2
+ /* empty css */
3
3
  const _sfc_main = {
4
4
  __name: "Tooltip",
5
5
  props: {
@@ -51,4 +51,4 @@ const _sfc_main = {
51
51
  export {
52
52
  _sfc_main as default
53
53
  };
54
- //# sourceMappingURL=Tooltip.vue.js.map
54
+ //# sourceMappingURL=Tooltip.vue2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tooltip.vue2.js","sources":["../../../../../src/components/Tooltip/Tooltip.vue"],"sourcesContent":["<template>\n <div class=\"cursor-pointer tooltip-container\" @mouseover=\"showTooltip\" @mouseleave=\"hideTooltip\">\n <slot></slot>\n <div class=\"tooltip-content\" :style=\"tooltipStyle\">\n <span>{{ text }}</span>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, reactive } from 'vue';\n\nconst props = defineProps({\n text: {\n type: String,\n required: true\n }\n});\n\nconst visible = ref(false);\n\nconst tooltipStyle = reactive({\n position: 'absolute',\n width: 'max-content',\n zIndex: 1000,\n background: '#333',\n color: '#fff',\n padding: '5px',\n borderRadius: '3px',\n fontSize: '14px',\n display: 'none',\n});\n\nfunction showTooltip(event) {\n visible.value = true;\n tooltipStyle.left = `${(event.clientX / 100) + 10 }px`;\n tooltipStyle.top = `${(event.clientY / 100) + 10 }px`;\n tooltipStyle.display = 'block';\n}\n\nfunction hideTooltip() {\n visible.value = false;\n tooltipStyle.display = 'none';\n}\n</script>\n\n<style >\n.tooltip-container {\n position: relative;\n display: inline-block;\n}\n\n.tooltip-content {\n pointer-events: none;\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;AAmBA,UAAM,UAAU,IAAI,KAAK;AAEzB,UAAM,eAAe,SAAS;AAAA,MAC5B,UAAU;AAAA,MACV,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,OAAO;AAAA,MACP,SAAS;AAAA,MACT,cAAc;AAAA,MACd,UAAU;AAAA,MACV,SAAS;AAAA,IACX,CAAC;AAED,aAAS,YAAY,OAAO;AAC1B,cAAQ,QAAQ;AAChB,mBAAa,OAAO,GAAI,MAAM,UAAU,MAAO,EAAE;AACjD,mBAAa,MAAM,GAAI,MAAM,UAAU,MAAO,EAAE;AAChD,mBAAa,UAAU;AAAA,IACzB;AAEA,aAAS,cAAc;AACrB,cAAQ,QAAQ;AAChB,mBAAa,UAAU;AAAA,IACzB;;;;;;;;;;;;;;;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { ref, createElementBlock, openBlock, createElementVNode, createCommentVNode, createVNode, toDisplayString, unref, createTextVNode, withCtx } from "vue";
2
- /* empty css */
2
+ /* empty css */
3
3
  import Field from "../../../../../components/Field/Field.vue.js";
4
- import _sfc_main$1 from "../../../../../components/Button/Button.vue2.js";
4
+ import _sfc_main$1 from "../../../../../components/Button/Button.vue.js";
5
5
  import { useRoute, useRouter } from "vue-router";
6
6
  import { useI18n } from "vue-i18n";
7
7
  import { state, actions } from "../../store/auth.js";
@@ -1,7 +1,7 @@
1
1
  import { ref, onMounted, createElementBlock, openBlock, createElementVNode, createVNode, withCtx } from "vue";
2
- /* empty css */
2
+ /* empty css */
3
3
  import Field from "../../../../../components/Field/Field.vue.js";
4
- import _sfc_main$1 from "../../../../../components/Button/Button.vue2.js";
4
+ import _sfc_main$1 from "../../../../../components/Button/Button.vue.js";
5
5
  import { useRoute, useRouter } from "vue-router";
6
6
  import { state, actions } from "../../store/auth.js";
7
7
  import invitesStore from "../../../../organizations/store/invites.store.js";
@@ -1,7 +1,7 @@
1
1
  import { ref, inject, onMounted, resolveComponent, createElementBlock, createCommentVNode, openBlock, createElementVNode, createVNode, createBlock, unref, withCtx, toDisplayString, Fragment, renderList, normalizeClass, resolveDynamicComponent } from "vue";
2
2
  /* empty css */
3
3
  /* empty css */
4
- /* empty css */
4
+ /* empty css */
5
5
  import _sfc_main$1 from "../../../../../components/Dropdown/Dropdown.vue.js";
6
6
  import _sfc_main$6 from "../../../../../components/Menu/Menu.vue.js";
7
7
  import _sfc_main$b from "../../../../../components/Menu/MenuItem.vue.js";
@@ -1,6 +1,6 @@
1
1
  import { ref, watch, createElementBlock, openBlock, createElementVNode, createBlock, createCommentVNode, createVNode, unref, withCtx, Fragment, renderList } from "vue";
2
2
  import { useRoute, useRouter } from "vue-router";
3
- import _sfc_main$1 from "../../../../../components/Tab/Tab.vue2.js";
3
+ import _sfc_main$1 from "../../../../../components/Tab/Tab.vue.js";
4
4
  import _sfc_main$2 from "../../../../../components/Feed/Feed.vue.js";
5
5
  import _sfc_main$3 from "../../../../community/components/blocks/CardBlogpost.vue.js";
6
6
  import { state } from "../../store/auth.js";
@@ -57,7 +57,7 @@ const _sfc_main = {
57
57
  }, {
58
58
  default: withCtx(() => [
59
59
  loading.value ? (openBlock(), createElementBlock("div", _hoisted_1, [
60
- createVNode(Loader)
60
+ createVNode(Loader, { centered: true })
61
61
  ])) : (openBlock(), createElementBlock("div", _hoisted_2, [
62
62
  createVNode(_sfc_main$2, { class: "w-10r mobile:w-100 flex-shrink-0" }),
63
63
  createVNode(_component_RouterView, { userData: userData.value }, null, 8, ["userData"])
@@ -1 +1 @@
1
- {"version":3,"file":"ProfileEdit.vue.js","sources":["../../../../../../../../src/modules/auth/views/components/pages/ProfileEdit.vue"],"sourcesContent":["<template>\n <Popup \n :isPopupOpen=\"isOpen\" \n @close-popup=\"closeProfileEdit()\"\n title=\"Edit Profile\"\n align=\"center center\"\n class=\"w-m-50r h-40r mobile:h-100 h-m-40r bg-white mobile:radius-zero radius-medium pd-medium\"\n >\n <div v-if=\"loading\" class=\"flex-center h-100\">\n <Loader />\n </div>\n \n <div v-else class=\"flex h-min-100 flex-row mobile:flex-column gap-regular\">\n <ProfileEditSidebar class=\"w-10r mobile:w-100 flex-shrink-0\" />\n \n <RouterView :userData=\"userData\" />\n </div>\n </Popup>\n</template>\n\n<script setup>\n import Popup from '@martyrs/src/components/Popup/Popup.vue'\n import Loader from '@martyrs/src/components/Loader/Loader.vue'\n import ProfileEditSidebar from './ProfileEditSidebar.vue'\n \n import { ref, onMounted, provide } from 'vue'\n import { useRoute, useRouter } from 'vue-router'\n \n const route = useRoute()\n const router = useRouter()\n \n import * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\n import * as users from '@martyrs/src/modules/auth/views/store/users.js'\n \n const loading = ref(true)\n const userData = ref(null)\n const isOpen = ref(false)\n\n function closeProfileEdit () {\n isOpen.value = false\n router.push({ \n name: 'User Profile', \n params: { \n _id: auth.state.user._id \n },\n query: { \n afterAuth: 'true' \n }\n })\n }\n \n onMounted(async () => {\n isOpen.value = true\n try {\n const userId = route.params._id || auth.state.user._id\n await users.actions.read({ _id: userId, user: auth.state.user._id })\n userData.value = users.state.current\n } catch (error) {\n console.error('Error loading user data:', error)\n } finally {\n loading.value = false\n }\n })\n \n // Provide user data to nested routes\n provide('userData', userData)\n</script>"],"names":["auth.state","users.actions","users.state"],"mappings":";;;;;;;;;;;;;;;;;;AA4BE,UAAM,QAAQ,SAAQ;AACtB,UAAM,SAAS,UAAS;AAKxB,UAAM,UAAU,IAAI,IAAI;AACxB,UAAM,WAAW,IAAI,IAAI;AACzB,UAAM,SAAS,IAAI,KAAK;AAExB,aAAS,mBAAoB;AAC3B,aAAO,QAAQ;AACf,aAAO,KAAK;AAAA,QACV,MAAM;AAAA,QACN,QAAQ;AAAA,UACN,KAAKA,MAAW,KAAK;AAAA,QAC7B;AAAA,QACM,OAAO;AAAA,UACL,WAAW;AAAA,QACnB;AAAA,MACA,CAAK;AAAA,IACH;AAEA,cAAU,YAAY;AACpB,aAAO,QAAQ;AACf,UAAI;AACF,cAAM,SAAS,MAAM,OAAO,OAAOA,MAAW,KAAK;AACnD,cAAMC,QAAc,KAAK,EAAE,KAAK,QAAQ,MAAMD,MAAW,KAAK,IAAG,CAAE;AACnE,iBAAS,QAAQE,QAAY;AAAA,MAC/B,SAAS,OAAO;AACd,gBAAQ,MAAM,4BAA4B,KAAK;AAAA,MACjD,UAAC;AACC,gBAAQ,QAAQ;AAAA,MAClB;AAAA,IACF,CAAC;AAGD,YAAQ,YAAY,QAAQ;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ProfileEdit.vue.js","sources":["../../../../../../../../src/modules/auth/views/components/pages/ProfileEdit.vue"],"sourcesContent":["<template>\n <Popup \n :isPopupOpen=\"isOpen\" \n @close-popup=\"closeProfileEdit()\"\n title=\"Edit Profile\"\n align=\"center center\"\n class=\"w-m-50r h-40r mobile:h-100 h-m-40r bg-white mobile:radius-zero radius-medium pd-medium\"\n >\n <div v-if=\"loading\" class=\"flex-center h-100\">\n <Loader :centered=\"true\"/>\n </div>\n \n <div v-else class=\"flex h-min-100 flex-row mobile:flex-column gap-regular\">\n <ProfileEditSidebar class=\"w-10r mobile:w-100 flex-shrink-0\" />\n \n <RouterView :userData=\"userData\" />\n </div>\n </Popup>\n</template>\n\n<script setup>\n import Popup from '@martyrs/src/components/Popup/Popup.vue'\n import Loader from '@martyrs/src/components/Loader/Loader.vue'\n import ProfileEditSidebar from './ProfileEditSidebar.vue'\n \n import { ref, onMounted, provide } from 'vue'\n import { useRoute, useRouter } from 'vue-router'\n \n const route = useRoute()\n const router = useRouter()\n \n import * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\n import * as users from '@martyrs/src/modules/auth/views/store/users.js'\n \n const loading = ref(true)\n const userData = ref(null)\n const isOpen = ref(false)\n\n function closeProfileEdit () {\n isOpen.value = false\n router.push({ \n name: 'User Profile', \n params: { \n _id: auth.state.user._id \n },\n query: { \n afterAuth: 'true' \n }\n })\n }\n \n onMounted(async () => {\n isOpen.value = true\n try {\n const userId = route.params._id || auth.state.user._id\n await users.actions.read({ _id: userId, user: auth.state.user._id })\n userData.value = users.state.current\n } catch (error) {\n console.error('Error loading user data:', error)\n } finally {\n loading.value = false\n }\n })\n \n // Provide user data to nested routes\n provide('userData', userData)\n</script>"],"names":["auth.state","users.actions","users.state"],"mappings":";;;;;;;;;;;;;;;;;;AA4BE,UAAM,QAAQ,SAAQ;AACtB,UAAM,SAAS,UAAS;AAKxB,UAAM,UAAU,IAAI,IAAI;AACxB,UAAM,WAAW,IAAI,IAAI;AACzB,UAAM,SAAS,IAAI,KAAK;AAExB,aAAS,mBAAoB;AAC3B,aAAO,QAAQ;AACf,aAAO,KAAK;AAAA,QACV,MAAM;AAAA,QACN,QAAQ;AAAA,UACN,KAAKA,MAAW,KAAK;AAAA,QAC7B;AAAA,QACM,OAAO;AAAA,UACL,WAAW;AAAA,QACnB;AAAA,MACA,CAAK;AAAA,IACH;AAEA,cAAU,YAAY;AACpB,aAAO,QAAQ;AACf,UAAI;AACF,cAAM,SAAS,MAAM,OAAO,OAAOA,MAAW,KAAK;AACnD,cAAMC,QAAc,KAAK,EAAE,KAAK,QAAQ,MAAMD,MAAW,KAAK,IAAG,CAAE;AACnE,iBAAS,QAAQE,QAAY;AAAA,MAC/B,SAAS,OAAO;AACd,gBAAQ,MAAM,4BAA4B,KAAK;AAAA,MACjD,UAAC;AACC,gBAAQ,QAAQ;AAAA,MAClB;AAAA,IACF,CAAC;AAGD,YAAQ,YAAY,QAAQ;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { createElementBlock, openBlock, createVNode, createElementVNode, unref, withCtx, createTextVNode } from "vue";
2
2
  import _sfc_main$2 from "../../../../../components/Checkbox/Checkbox.vue.js";
3
- import _sfc_main$3 from "../../../../../components/Button/Button.vue2.js";
3
+ import _sfc_main$3 from "../../../../../components/Button/Button.vue.js";
4
4
  import _sfc_main$1 from "../sections/ProfileEditCredentials.vue.js";
5
5
  import { useRouter } from "vue-router";
6
6
  import { actions as actions$1 } from "../../store/auth.js";
@@ -1,6 +1,6 @@
1
1
  import { createElementBlock, openBlock, createElementVNode, createVNode, toDisplayString, withCtx, createTextVNode } from "vue";
2
2
  import Field from "../../../../../components/Field/Field.vue.js";
3
- import _sfc_main$1 from "../../../../../components/Button/Button.vue2.js";
3
+ import _sfc_main$1 from "../../../../../components/Button/Button.vue.js";
4
4
  import UploadImage from "../../../../../components/UploadImage/UploadImage.vue.js";
5
5
  import { useRouter } from "vue-router";
6
6
  import { state, actions } from "../../store/users.js";
@@ -1,8 +1,8 @@
1
1
  import { ref, computed, createElementBlock, openBlock, createElementVNode, createCommentVNode, createVNode, toDisplayString, unref, Transition, withCtx, createTextVNode } from "vue";
2
- import _sfc_main$1 from "../../../../../components/Tab/Tab.vue2.js";
2
+ import _sfc_main$1 from "../../../../../components/Tab/Tab.vue.js";
3
3
  import Field from "../../../../../components/Field/Field.vue.js";
4
4
  import _sfc_main$2 from "../../../../../components/FieldPhone/FieldPhone.vue.js";
5
- import _sfc_main$3 from "../../../../../components/Button/Button.vue2.js";
5
+ import _sfc_main$3 from "../../../../../components/Button/Button.vue.js";
6
6
  import { useRoute, useRouter } from "vue-router";
7
7
  import { useI18n } from "vue-i18n";
8
8
  import { useStore } from "../../../../core/views/store/core.store.js";
@@ -1,8 +1,8 @@
1
1
  import { ref, computed, onMounted, resolveComponent, createElementBlock, openBlock, createElementVNode, createCommentVNode, createVNode, createTextVNode, toDisplayString, unref, withCtx, Transition, withDirectives, vShow } from "vue";
2
- import _sfc_main$1 from "../../../../../components/Tab/Tab.vue2.js";
2
+ import _sfc_main$1 from "../../../../../components/Tab/Tab.vue.js";
3
3
  import Field from "../../../../../components/Field/Field.vue.js";
4
4
  import _sfc_main$2 from "../../../../../components/FieldPhone/FieldPhone.vue.js";
5
- import _sfc_main$3 from "../../../../../components/Button/Button.vue2.js";
5
+ import _sfc_main$3 from "../../../../../components/Button/Button.vue.js";
6
6
  import { useRoute, useRouter } from "vue-router";
7
7
  import { useI18n } from "vue-i18n";
8
8
  import { useStore } from "../../../../core/views/store/core.store.js";
@@ -78,6 +78,9 @@ const _sfc_main = {
78
78
  await actions.login(userCopy, tabAuth.value);
79
79
  }
80
80
  function redirectTo() {
81
+ if (!state.user._id) {
82
+ throw new Error("AUTH_STATE_NOT_INITIALIZED");
83
+ }
81
84
  if (route.query?.returnUrl) {
82
85
  router.push({
83
86
  path: route.query?.returnUrl,
@@ -1 +1 @@
1
- {"version":3,"file":"SignIn.vue.js","sources":["../../../../../../../../src/modules/auth/views/components/pages/SignIn.vue"],"sourcesContent":["<template>\n\t<section class=\"\">\n\t\t<!-- Header -->\n\t\t<img loading=\"lazy\" :src=\"'/logo/logo.svg'\" class=\"i-extra radius-small mn-b-small\">\n\n\t\t<h3 class=\"mn-b-medium\">\n\t\t\t{{ t('auth.signIn.title') }}\n\t\t\t<br>\n\t\t\t<span class=\"fw-semi\">{{ t('auth.signIn.subtitle') }}</span>\n\t\t</h3>\n\n\t\t<p class=\"mn-b-big\">\n\t\t\t<router-link :to=\"{name: 'Sign Up', query: { returnUrl: route.query?.returnUrl}}\" class=\"underline t-grey\">{{ t('auth.signIn.signup') }}</router-link>\n\t\t</p>\n\t\t\n\t\t<!-- Select -->\n\t\t<div \n\t\t\tv-if=\"availableTabs.length > 1\" \n\t\t\tclass=\"mn-b-small p-small uppercase fw-semi bg-light radius-small o-hidden\"\n\t\t>\n\t\t\t<Tab \n\t\t\t\tv-model:selected=\"tabAuth\"\n\t\t\t\t:tabs=\"availableTabs\"\n\t\t\t\tclassTab=\"pd-small pd-r-medium pd-l-medium w-100 pd-small radius-small\"\n\t\t\t/>\n\t\t</div>\n\t\t<!-- Form -->\n\t\t<div class=\"pos-relative\">\n\t\t<!-- Phone -->\n\t\t\t<transition name=\"slide-fade\">\n\t\t\t\t<div v-show=\"tabAuth === 'phone'\" class=\"mn-b-thin radius-small\">\n\t\t\t\t\t<FieldPhone\n\t\t\t\t\t\t@change=\"(event) => auth.state.user.phone = event\" \t\n\t\t\t\t\t\t:dropdownOptions=\"{\n\t\t\t\t\t\t\tshowDialCodeInSelection: true,\n\t\t\t\t\t\t\tshowFlags: true,\n\t\t\t\t\t\t\tshowDialCodeInList: true,\n\t\t\t\t\t\t\ttabIndex: -1\n\t\t\t\t\t\t}\"\n\t\t\t\t\t\t:validCharactersOnly=\"true\"\n\t\t\t\t\t\t:validation=\"phoneValidation\" \n\t\t\t\t\t\tmode=\"national\"\n\t\t\t\t\t\t:inputOptions=\"{placeholder: t('auth.signIn.phonePlaceholder'), type: 'tel'}\"\n\t\t\t\t\t\tclass=\"bg-light h-4r pd-small radius-small mn-b-thin\" \n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t</div>\n\t\t\t</transition>\n\t\t\t<transition name=\"slide-fade\">\n\t\t\t\t<div v-show=\"tabAuth === 'email'\" class=\"mn-b-thin radius-small o-hidden\">\n\t\t\t\t\t<Field \n\t\t\t\t\t\tv-model:field=\"auth.state.user.email\" \t\n\t\t\t\t\t\t:placeholder=\"t('auth.signIn.emailPlaceholder')\" \t\n\t\t\t\t\t\t:validation=\"emailValidation\"\n\t\t\t\t\t\t:tabIndex=\"-1\"\n\t\t\t\t\t\tclass=\"bg-light h-4r pd-medium radius-small\" \n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</transition>\n\t\t</div>\n\n\t\t<!-- Password -->\n\t\t<Field \n\t\t\tv-model:field=\"auth.state.user.password\"\n\t\t\ttype=\"password\" \t\n\t\t\t:validation=\"passswordValidation\" \n\t\t\t:placeholder=\"t('auth.signIn.passwordPlaceholder')\" \n\t\t\tclass=\"\n bg-light\n pd-medium\n radius-small\n mn-b-semi\n h-4r \n \"\n\t\t/>\n\t\t<!-- Links -->\n\t\t<div class=\"w-100 mn-b-big\">\n\t\t\t<router-link\n\t\t\t\t:to=\"{name: 'Reset Password', query: { returnUrl: route.query?.returnUrl}}\"\n\t\t\t\tclass=\"underline d-block t-blue\"\n\t\t\t>\n\t\t\t\t{{ t('auth.signIn.forgotPassword') }}\n\t\t\t</router-link>\n\t\t</div>\n\t\t<!-- Button -->\n\t\t<Button \n\t\t\t:submit=\"onSubmit\" \n\t\t\t:callback=\"redirectTo\" \n\t\t\tclass=\"w-100 bg-main\"\n\t\t>\n\t\t\t{{ t('auth.signIn.signin') }}\n\t\t</Button>\n\t\t\n\t\t<!-- <Button \n\t\t\t:submit=\"onSubmitApple\" \n\t\t\t:callback=\"redirectTo\" \n\t\t\tclass=\"mn-b-thin bg-black t-white\"\n\t\t>\n\t\t\t{{ t('auth.signIn.signin_apple') }}\n\t\t</Button> -->\n\t</section> \n</template>\n\n<script setup>\n// Import components\nimport Tab from '@martyrs/src/components/Tab/Tab.vue'\nimport Field from '@martyrs/src/components/Field/Field.vue'\nimport FieldPhone from '@martyrs/src/components/FieldPhone/FieldPhone.vue'\nimport Button from '@martyrs/src/components/Button/Button.vue'\n// Import libs\nimport { computed, onMounted, ref, inject } from 'vue'\nimport { useRoute, useRouter } from 'vue-router'\nimport { useI18n } from 'vue-i18n'\n// Import store\nimport { useStore } from '@martyrs/src/modules/core/views/store/core.store.js'\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\n// Import validation\nimport * as inputsValidation from '@martyrs/src/modules/auth/views/validations/inputs.validation'\n\n// Get store\nconst store = useStore()\nconst core = store.core\n\n// Init validation\nconst phoneValidation = ref(null)\nconst passswordValidation = ref(null)\nconst emailValidation = ref(null)\n// Accessing router\nconst route = useRoute()\nconst router = useRouter()\n// Localization\nconst { t } = useI18n({\n\tuseScope: 'global'\n})\n// Accessing state\nconst availableTabs = computed(() => {\n const tabs = [\n { name: t('auth.signIn.phone'), value: 'phone' },\n { name: t('auth.signIn.email'), value: 'email' }\n ];\n const excludeMethods = core.state?.options?.auth?.authMethodsExclude || [];\n return tabs.filter(tab => !excludeMethods.includes(tab.value));\n});\n\nconst tabAuth = ref(availableTabs.value.length ? availableTabs.value[0].value : '');\n\nconst loadExternalScript = (src) => {\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.type = 'text/javascript';\n script.src = src;\n script.onload = resolve;\n script.onerror = reject;\n document.head.appendChild(script);\n });\n}\n\nonMounted(async () => {\n\tawait loadExternalScript('https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/en_US/appleid.auth.js');\n});\n// Methods\nasync function onSubmit() {\n\ttry {\n\t if (tabAuth.value === 'phone') await inputsValidation.validateInputs(\n\t\t\tphoneValidation, \n\t\t\tinputsValidation.validatePhone, \n\t\t\tauth.state.user.phone, \n\t\t\t'Некорректный телефон'\n\t\t)\n\t\tif (tabAuth.value === 'email') await inputsValidation.validateInputs(\n\t\t\temailValidation, \n\t\t\tinputsValidation.validateEmail, \n\t\t\tauth.state.user.email, \n\t\t\t'Некорректный email'\n\t\t)\n\t} catch (error) {\n\t\tconsole.log(error)\n\t\tthrow new Error\n\t}\n\n\t// COSTIL PLEASE GOD MAKE IT GOOD, FUKEN INPUT COMPONENT RETURN OBJECT NUT NUMBER\n\tconst userCopy = {...auth.state.user};\n\t// COSTIL PLEASE GOD MAKE IT GOOD, FUKEN INPUT COMPONENT RETURN OBJECT NUT NUMBER\n\n \tawait auth.actions.login(userCopy, tabAuth.value)\n}\n\nasync function onSubmitApple() {\n try {\n window.AppleID.auth.init({\n clientId: 'com.thecommune.app.signin',\n scope: 'email name',\n redirectURI: 'https://thecommunephuket.com/auth/signin',\n usePopup: true,\n });\n\n let response = await window.AppleID.auth.signIn();\n\n if (response) {\n console.log(response);\n await auth.actions.login(response, 'apple');\n }\n\n } catch (error) {\n console.error(error);\n throw new Error('Error during Apple authentication');\n }\n}\n\nfunction redirectTo () {\n\tif (route.query?.returnUrl) {\n\t\trouter.push({ \n\t\t\tpath: route.query?.returnUrl,\n\t\t\tquery: { \n\t\t\t\tafterAuth: 'true' \n\t\t\t}\n\t\t})\n\t} else { \n\t\trouter.push({ \n\t\t\tname: 'User Profile', \n\t\t\tparams: { \n\t\t\t\t_id: auth.state.user._id \n\t\t\t},\n\t\t\tquery: { \n\t\t\t\tafterAuth: 'true' \n\t\t\t}\n\t\t})\n\t}\n}\n</script>\n\n<style lang=\"scss\">\n\n\t.input-error {\n\t border: 1px solid red;\n\t box-shadow: 0 0 3px 0 red;\n\t}\n</style>"],"names":["inputsValidation.validateInputs","inputsValidation.validatePhone","auth.state","inputsValidation.validateEmail","auth.actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAwHA,UAAM,QAAQ,SAAQ;AACtB,UAAM,OAAO,MAAM;AAGnB,UAAM,kBAAkB,IAAI,IAAI;AAChC,UAAM,sBAAsB,IAAI,IAAI;AACpC,UAAM,kBAAkB,IAAI,IAAI;AAEhC,UAAM,QAAQ,SAAQ;AACtB,UAAM,SAAS,UAAS;AAExB,UAAM,EAAE,EAAC,IAAK,QAAQ;AAAA,MACrB,UAAU;AAAA,IACX,CAAC;AAED,UAAM,gBAAgB,SAAS,MAAM;AACjC,YAAM,OAAO;AAAA,QACT,EAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO,QAAO;AAAA,QAC9C,EAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO,QAAO;AAAA,MACtD;AACI,YAAM,iBAAiB,KAAK,OAAO,SAAS,MAAM,sBAAsB,CAAA;AACxE,aAAO,KAAK,OAAO,SAAO,CAAC,eAAe,SAAS,IAAI,KAAK,CAAC;AAAA,IACjE,CAAC;AAED,UAAM,UAAU,IAAI,cAAc,MAAM,SAAS,cAAc,MAAM,CAAC,EAAE,QAAQ,EAAE;AAElF,UAAM,qBAAqB,CAAC,QAAQ;AAClC,aAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,cAAM,SAAS,SAAS,cAAc,QAAQ;AAC9C,eAAO,OAAO;AACd,eAAO,MAAM;AACb,eAAO,SAAS;AAChB,eAAO,UAAU;AACjB,iBAAS,KAAK,YAAY,MAAM;AAAA,MAClC,CAAC;AAAA,IACH;AAEA,cAAU,YAAY;AACrB,YAAM,mBAAmB,sFAAsF;AAAA,IAChH,CAAC;AAED,mBAAe,WAAW;AACzB,UAAI;AACF,YAAI,QAAQ,UAAU,QAAS,OAAMA;AAAAA,UACrC;AAAA,UACAC;AAAAA,UACAC,MAAW,KAAK;AAAA,UAChB;AAAA,QACH;AACE,YAAI,QAAQ,UAAU,QAAS,OAAMF;AAAAA,UACpC;AAAA,UACAG;AAAAA,UACAD,MAAW,KAAK;AAAA,UAChB;AAAA,QACH;AAAA,MACC,SAAS,OAAO;AACf,gBAAQ,IAAI,KAAK;AACjB,cAAM,IAAI;AAAA,MACX;AAGA,YAAM,WAAW,EAAC,GAAGA,MAAW,KAAI;AAGnC,YAAME,QAAa,MAAM,UAAU,QAAQ,KAAK;AAAA,IAClD;AAwBA,aAAS,aAAc;AACtB,UAAI,MAAM,OAAO,WAAW;AAC3B,eAAO,KAAK;AAAA,UACX,MAAM,MAAM,OAAO;AAAA,UACnB,OAAO;AAAA,YACN,WAAW;AAAA,UACf;AAAA,QACA,CAAG;AAAA,MACF,OAAO;AACN,eAAO,KAAK;AAAA,UACX,MAAM;AAAA,UACN,QAAQ;AAAA,YACP,KAAKF,MAAW,KAAK;AAAA,UACzB;AAAA,UACG,OAAO;AAAA,YACN,WAAW;AAAA,UACf;AAAA,QACA,CAAG;AAAA,MACF;AAAA,IACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"SignIn.vue.js","sources":["../../../../../../../../src/modules/auth/views/components/pages/SignIn.vue"],"sourcesContent":["<template>\n\t<section class=\"\">\n\t\t<!-- Header -->\n\t\t<img loading=\"lazy\" :src=\"'/logo/logo.svg'\" class=\"i-extra radius-small mn-b-small\">\n\n\t\t<h3 class=\"mn-b-medium\">\n\t\t\t{{ t('auth.signIn.title') }}\n\t\t\t<br>\n\t\t\t<span class=\"fw-semi\">{{ t('auth.signIn.subtitle') }}</span>\n\t\t</h3>\n\n\t\t<p class=\"mn-b-big\">\n\t\t\t<router-link :to=\"{name: 'Sign Up', query: { returnUrl: route.query?.returnUrl}}\" class=\"underline t-grey\">{{ t('auth.signIn.signup') }}</router-link>\n\t\t</p>\n\t\t\n\t\t<!-- Select -->\n\t\t<div \n\t\t\tv-if=\"availableTabs.length > 1\" \n\t\t\tclass=\"mn-b-small p-small uppercase fw-semi bg-light radius-small o-hidden\"\n\t\t>\n\t\t\t<Tab \n\t\t\t\tv-model:selected=\"tabAuth\"\n\t\t\t\t:tabs=\"availableTabs\"\n\t\t\t\tclassTab=\"pd-small pd-r-medium pd-l-medium w-100 pd-small radius-small\"\n\t\t\t/>\n\t\t</div>\n\t\t<!-- Form -->\n\t\t<div class=\"pos-relative\">\n\t\t<!-- Phone -->\n\t\t\t<transition name=\"slide-fade\">\n\t\t\t\t<div v-show=\"tabAuth === 'phone'\" class=\"mn-b-thin radius-small\">\n\t\t\t\t\t<FieldPhone\n\t\t\t\t\t\t@change=\"(event) => auth.state.user.phone = event\" \t\n\t\t\t\t\t\t:dropdownOptions=\"{\n\t\t\t\t\t\t\tshowDialCodeInSelection: true,\n\t\t\t\t\t\t\tshowFlags: true,\n\t\t\t\t\t\t\tshowDialCodeInList: true,\n\t\t\t\t\t\t\ttabIndex: -1\n\t\t\t\t\t\t}\"\n\t\t\t\t\t\t:validCharactersOnly=\"true\"\n\t\t\t\t\t\t:validation=\"phoneValidation\" \n\t\t\t\t\t\tmode=\"national\"\n\t\t\t\t\t\t:inputOptions=\"{placeholder: t('auth.signIn.phonePlaceholder'), type: 'tel'}\"\n\t\t\t\t\t\tclass=\"bg-light h-4r pd-small radius-small mn-b-thin\" \n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t</div>\n\t\t\t</transition>\n\t\t\t<transition name=\"slide-fade\">\n\t\t\t\t<div v-show=\"tabAuth === 'email'\" class=\"mn-b-thin radius-small o-hidden\">\n\t\t\t\t\t<Field \n\t\t\t\t\t\tv-model:field=\"auth.state.user.email\" \t\n\t\t\t\t\t\t:placeholder=\"t('auth.signIn.emailPlaceholder')\" \t\n\t\t\t\t\t\t:validation=\"emailValidation\"\n\t\t\t\t\t\t:tabIndex=\"-1\"\n\t\t\t\t\t\tclass=\"bg-light h-4r pd-medium radius-small\" \n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</transition>\n\t\t</div>\n\n\t\t<!-- Password -->\n\t\t<Field \n\t\t\tv-model:field=\"auth.state.user.password\"\n\t\t\ttype=\"password\" \t\n\t\t\t:validation=\"passswordValidation\" \n\t\t\t:placeholder=\"t('auth.signIn.passwordPlaceholder')\" \n\t\t\tclass=\"\n bg-light\n pd-medium\n radius-small\n mn-b-semi\n h-4r \n \"\n\t\t/>\n\t\t<!-- Links -->\n\t\t<div class=\"w-100 mn-b-big\">\n\t\t\t<router-link\n\t\t\t\t:to=\"{name: 'Reset Password', query: { returnUrl: route.query?.returnUrl}}\"\n\t\t\t\tclass=\"underline d-block t-blue\"\n\t\t\t>\n\t\t\t\t{{ t('auth.signIn.forgotPassword') }}\n\t\t\t</router-link>\n\t\t</div>\n\t\t<!-- Button -->\n\t\t<Button \n\t\t\t:submit=\"onSubmit\" \n\t\t\t:callback=\"redirectTo\" \n\t\t\tclass=\"w-100 bg-main\"\n\t\t>\n\t\t\t{{ t('auth.signIn.signin') }}\n\t\t</Button>\n\t\t\n\t\t<!-- <Button \n\t\t\t:submit=\"onSubmitApple\" \n\t\t\t:callback=\"redirectTo\" \n\t\t\tclass=\"mn-b-thin bg-black t-white\"\n\t\t>\n\t\t\t{{ t('auth.signIn.signin_apple') }}\n\t\t</Button> -->\n\t</section> \n</template>\n\n<script setup>\n// Import components\nimport Tab from '@martyrs/src/components/Tab/Tab.vue'\nimport Field from '@martyrs/src/components/Field/Field.vue'\nimport FieldPhone from '@martyrs/src/components/FieldPhone/FieldPhone.vue'\nimport Button from '@martyrs/src/components/Button/Button.vue'\n// Import libs\nimport { computed, onMounted, ref, inject } from 'vue'\nimport { useRoute, useRouter } from 'vue-router'\nimport { useI18n } from 'vue-i18n'\n// Import store\nimport { useStore } from '@martyrs/src/modules/core/views/store/core.store.js'\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\n// Import validation\nimport * as inputsValidation from '@martyrs/src/modules/auth/views/validations/inputs.validation'\n\n// Get store\nconst store = useStore()\nconst core = store.core\n\n// Init validation\nconst phoneValidation = ref(null)\nconst passswordValidation = ref(null)\nconst emailValidation = ref(null)\n// Accessing router\nconst route = useRoute()\nconst router = useRouter()\n// Localization\nconst { t } = useI18n({\n\tuseScope: 'global'\n})\n// Accessing state\nconst availableTabs = computed(() => {\n const tabs = [\n { name: t('auth.signIn.phone'), value: 'phone' },\n { name: t('auth.signIn.email'), value: 'email' }\n ];\n const excludeMethods = core.state?.options?.auth?.authMethodsExclude || [];\n return tabs.filter(tab => !excludeMethods.includes(tab.value));\n});\n\nconst tabAuth = ref(availableTabs.value.length ? availableTabs.value[0].value : '');\n\nconst loadExternalScript = (src) => {\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.type = 'text/javascript';\n script.src = src;\n script.onload = resolve;\n script.onerror = reject;\n document.head.appendChild(script);\n });\n}\n\nonMounted(async () => {\n\tawait loadExternalScript('https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/en_US/appleid.auth.js');\n});\n// Methods\nasync function onSubmit() {\n\ttry {\n\t if (tabAuth.value === 'phone') await inputsValidation.validateInputs(\n\t\t\tphoneValidation, \n\t\t\tinputsValidation.validatePhone, \n\t\t\tauth.state.user.phone, \n\t\t\t'Некорректный телефон'\n\t\t)\n\t\tif (tabAuth.value === 'email') await inputsValidation.validateInputs(\n\t\t\temailValidation, \n\t\t\tinputsValidation.validateEmail, \n\t\t\tauth.state.user.email, \n\t\t\t'Некорректный email'\n\t\t)\n\t} catch (error) {\n\t\tconsole.log(error)\n\t\tthrow new Error\n\t}\n\n\t// COSTIL PLEASE GOD MAKE IT GOOD, FUKEN INPUT COMPONENT RETURN OBJECT NUT NUMBER\n\tconst userCopy = {...auth.state.user};\n\t// COSTIL PLEASE GOD MAKE IT GOOD, FUKEN INPUT COMPONENT RETURN OBJECT NUT NUMBER\n\n \tawait auth.actions.login(userCopy, tabAuth.value)\n}\n\nasync function onSubmitApple() {\n try {\n window.AppleID.auth.init({\n clientId: 'com.thecommune.app.signin',\n scope: 'email name',\n redirectURI: 'https://thecommunephuket.com/auth/signin',\n usePopup: true,\n });\n\n let response = await window.AppleID.auth.signIn();\n\n if (response) {\n console.log(response);\n await auth.actions.login(response, 'apple');\n }\n\n } catch (error) {\n console.error(error);\n throw new Error('Error during Apple authentication');\n }\n}\n\nfunction redirectTo () {\n\tif (!auth.state.user._id) {\n\t\tthrow new Error('AUTH_STATE_NOT_INITIALIZED')\n\t}\n\n\tif (route.query?.returnUrl) {\n\t\trouter.push({\n\t\t\tpath: route.query?.returnUrl,\n\t\t\tquery: {\n\t\t\t\tafterAuth: 'true'\n\t\t\t}\n\t\t})\n\t} else {\n\t\trouter.push({\n\t\t\tname: 'User Profile',\n\t\t\tparams: {\n\t\t\t\t_id: auth.state.user._id\n\t\t\t},\n\t\t\tquery: {\n\t\t\t\tafterAuth: 'true'\n\t\t\t}\n\t\t})\n\t}\n}\n</script>\n\n<style lang=\"scss\">\n\n\t.input-error {\n\t border: 1px solid red;\n\t box-shadow: 0 0 3px 0 red;\n\t}\n</style>"],"names":["inputsValidation.validateInputs","inputsValidation.validatePhone","auth.state","inputsValidation.validateEmail","auth.actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAwHA,UAAM,QAAQ,SAAQ;AACtB,UAAM,OAAO,MAAM;AAGnB,UAAM,kBAAkB,IAAI,IAAI;AAChC,UAAM,sBAAsB,IAAI,IAAI;AACpC,UAAM,kBAAkB,IAAI,IAAI;AAEhC,UAAM,QAAQ,SAAQ;AACtB,UAAM,SAAS,UAAS;AAExB,UAAM,EAAE,EAAC,IAAK,QAAQ;AAAA,MACrB,UAAU;AAAA,IACX,CAAC;AAED,UAAM,gBAAgB,SAAS,MAAM;AACjC,YAAM,OAAO;AAAA,QACT,EAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO,QAAO;AAAA,QAC9C,EAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO,QAAO;AAAA,MACtD;AACI,YAAM,iBAAiB,KAAK,OAAO,SAAS,MAAM,sBAAsB,CAAA;AACxE,aAAO,KAAK,OAAO,SAAO,CAAC,eAAe,SAAS,IAAI,KAAK,CAAC;AAAA,IACjE,CAAC;AAED,UAAM,UAAU,IAAI,cAAc,MAAM,SAAS,cAAc,MAAM,CAAC,EAAE,QAAQ,EAAE;AAElF,UAAM,qBAAqB,CAAC,QAAQ;AAClC,aAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,cAAM,SAAS,SAAS,cAAc,QAAQ;AAC9C,eAAO,OAAO;AACd,eAAO,MAAM;AACb,eAAO,SAAS;AAChB,eAAO,UAAU;AACjB,iBAAS,KAAK,YAAY,MAAM;AAAA,MAClC,CAAC;AAAA,IACH;AAEA,cAAU,YAAY;AACrB,YAAM,mBAAmB,sFAAsF;AAAA,IAChH,CAAC;AAED,mBAAe,WAAW;AACzB,UAAI;AACF,YAAI,QAAQ,UAAU,QAAS,OAAMA;AAAAA,UACrC;AAAA,UACAC;AAAAA,UACAC,MAAW,KAAK;AAAA,UAChB;AAAA,QACH;AACE,YAAI,QAAQ,UAAU,QAAS,OAAMF;AAAAA,UACpC;AAAA,UACAG;AAAAA,UACAD,MAAW,KAAK;AAAA,UAChB;AAAA,QACH;AAAA,MACC,SAAS,OAAO;AACf,gBAAQ,IAAI,KAAK;AACjB,cAAM,IAAI;AAAA,MACX;AAGA,YAAM,WAAW,EAAC,GAAGA,MAAW,KAAI;AAGnC,YAAME,QAAa,MAAM,UAAU,QAAQ,KAAK;AAAA,IAClD;AAwBA,aAAS,aAAc;AACtB,UAAI,CAACF,MAAW,KAAK,KAAK;AACzB,cAAM,IAAI,MAAM,4BAA4B;AAAA,MAC7C;AAEA,UAAI,MAAM,OAAO,WAAW;AAC3B,eAAO,KAAK;AAAA,UACX,MAAM,MAAM,OAAO;AAAA,UACnB,OAAO;AAAA,YACN,WAAW;AAAA,UACf;AAAA,QACA,CAAG;AAAA,MACF,OAAO;AACN,eAAO,KAAK;AAAA,UACX,MAAM;AAAA,UACN,QAAQ;AAAA,YACP,KAAKA,MAAW,KAAK;AAAA,UACzB;AAAA,UACG,OAAO;AAAA,YACN,WAAW;AAAA,UACf;AAAA,QACA,CAAG;AAAA,MACF;AAAA,IACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,8 +1,8 @@
1
1
  import { ref, computed, resolveComponent, createElementBlock, openBlock, createElementVNode, createCommentVNode, createVNode, toDisplayString, unref, Transition, withCtx, withDirectives, vShow, createTextVNode } from "vue";
2
- import _sfc_main$1 from "../../../../../components/Tab/Tab.vue2.js";
2
+ import _sfc_main$1 from "../../../../../components/Tab/Tab.vue.js";
3
3
  import Field from "../../../../../components/Field/Field.vue.js";
4
4
  import _sfc_main$2 from "../../../../../components/FieldPhone/FieldPhone.vue.js";
5
- import _sfc_main$3 from "../../../../../components/Button/Button.vue2.js";
5
+ import _sfc_main$3 from "../../../../../components/Button/Button.vue.js";
6
6
  import { useRoute, useRouter } from "vue-router";
7
7
  import { useI18n } from "vue-i18n";
8
8
  import { useStore } from "../../../../core/views/store/core.store.js";
@@ -1,6 +1,6 @@
1
1
  import { ref, onMounted, createElementBlock, createCommentVNode, openBlock, createElementVNode, createBlock, createVNode, withCtx, createTextVNode } from "vue";
2
2
  import Field from "../../../../../components/Field/Field.vue.js";
3
- import _sfc_main$1 from "../../../../../components/Button/Button.vue2.js";
3
+ import _sfc_main$1 from "../../../../../components/Button/Button.vue.js";
4
4
  import { useRoute, useRouter } from "vue-router";
5
5
  import { actions, state } from "../../store/users.js";
6
6
  import { sendCode, state as state$1 } from "../../store/twofa.js";
@@ -60,13 +60,12 @@ const navigationItems = [
60
60
  },
61
61
  {
62
62
  category: "Orders",
63
- visible: () => true,
63
+ visible: (auth, route) => isModuleInstalled("orders") && (auth.user && (auth.user._id === route.params._id || auth.access.roles && (auth.access.roles.includes("ROLE_MODERATOR") || auth.access.roles.includes("ROLE_ADMIN")))),
64
64
  items: [
65
65
  {
66
66
  title: "Orders",
67
67
  iconComponent: _sfc_main$6,
68
- route: (auth, route) => `/users/${route.params._id}/orders`,
69
- visible: (auth, route) => isModuleInstalled("orders") && (auth.user && (auth.user._id === route.params._id || auth.access.roles && (auth.access.roles.includes("ROLE_MODERATOR") || auth.access.roles.includes("ROLE_ADMIN"))))
68
+ route: (auth, route) => `/users/${route.params._id}/orders`
70
69
  }
71
70
  ]
72
71
  }
@@ -1 +1 @@
1
- {"version":3,"file":"navigation.user.config.js","sources":["../../../../../../../src/modules/auth/views/configs/navigation.user.config.js"],"sourcesContent":["// Import icons\nimport IconHome from '@martyrs/src/modules/icons/entities/IconHome.vue';\nimport IconEvents from '@martyrs/src/modules/icons/entities/IconEvents.vue';\nimport IconGroups from '@martyrs/src/modules/icons/entities/IconGroups.vue';\nimport IconOrders from '@martyrs/src/modules/icons/entities/IconOrders.vue';\nimport IconBell from '@martyrs/src/modules/icons/entities/IconBell.vue';\nimport IconSettings from '@martyrs/src/modules/icons/entities/IconSettings.vue';\nimport IconProfile from '@martyrs/src/modules/icons/entities/IconProfile.vue';\n\n// Import global mixins for access control\nimport { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js';\n\nconst { isModuleInstalled } = useGlobalMixins();\n\n// User profile navigation configuration\nexport const navigationItems = [\n {\n category: '',\n visible: () => true,\n items: [\n {\n title: 'Dashboard',\n iconComponent: IconHome,\n route: (auth, route) => `/users/${route.params._id}/dashboard`,\n visible: (auth, route) => auth.user && auth.user._id === route.params._id // Only owner\n },\n {\n title: 'Notifications',\n iconComponent: IconBell,\n route: (auth, route) => `/users/${route.params._id}/notifications`,\n visible: (auth, route) => auth.user && auth.user._id === route.params._id\n },\n {\n title: 'Settings',\n iconComponent: IconSettings,\n route: (auth, route) => `/users/${route.params._id}/edit/profile`,\n visible: (auth, route) => auth.user && auth.user._id === route.params._id\n },\n ]\n },\n {\n category: 'Profile',\n visible: () => true,\n items: [\n {\n title: 'Profile',\n iconComponent: IconProfile,\n route: (auth, route) => `/users/${route.params._id}`,\n visible: () => true // Public access\n },\n {\n title: 'Events',\n iconComponent: IconEvents,\n route: (auth, route) => `/users/${route.params._id}/events`,\n visible: () => isModuleInstalled('events')\n },\n {\n title: 'Groups',\n iconComponent: IconGroups,\n route: (auth, route) => `/users/${route.params._id}/organizations`,\n visible: () => isModuleInstalled('organizations')\n },\n ]\n },\n {\n category: 'Orders',\n visible: () => true,\n items: [\n {\n title: 'Orders',\n iconComponent: IconOrders,\n route: (auth, route) => `/users/${route.params._id}/orders`,\n visible: (auth, route) => isModuleInstalled('orders') && (\n auth.user && (\n auth.user._id === route.params._id ||\n (auth.access.roles &&\n (auth.access.roles.includes('ROLE_MODERATOR') ||\n auth.access.roles.includes('ROLE_ADMIN'))\n )\n )\n )\n },\n ]\n },\n];\n\nexport default navigationItems;\n"],"names":["IconHome","IconBell","IconSettings","IconProfile","IconEvents","IconGroups","IconOrders"],"mappings":";;;;;;;;AAYA,MAAM,EAAE,kBAAiB,IAAK,gBAAe;AAGjC,MAAC,kBAAkB;AAAA,EAC7B;AAAA,IACE,UAAU;AAAA,IACV,SAAS,MAAM;AAAA,IACf,OAAO;AAAA,MACL;AAAA,QACE,OAAO;AAAA,QACP,eAAeA;AAAAA,QACf,OAAO,CAAC,MAAM,UAAU,UAAU,MAAM,OAAO,GAAG;AAAA,QAClD,SAAS,CAAC,MAAM,UAAU,KAAK,QAAQ,KAAK,KAAK,QAAQ,MAAM,OAAO;AAAA;AAAA,MAC9E;AAAA,MACM;AAAA,QACE,OAAO;AAAA,QACP,eAAeC;AAAAA,QACf,OAAO,CAAC,MAAM,UAAU,UAAU,MAAM,OAAO,GAAG;AAAA,QAClD,SAAS,CAAC,MAAM,UAAU,KAAK,QAAQ,KAAK,KAAK,QAAQ,MAAM,OAAO;AAAA,MAC9E;AAAA,MACM;AAAA,QACE,OAAO;AAAA,QACP,eAAeC;AAAAA,QACf,OAAO,CAAC,MAAM,UAAU,UAAU,MAAM,OAAO,GAAG;AAAA,QAClD,SAAS,CAAC,MAAM,UAAU,KAAK,QAAQ,KAAK,KAAK,QAAQ,MAAM,OAAO;AAAA,MAC9E;AAAA,IACA;AAAA,EACA;AAAA,EACE;AAAA,IACE,UAAU;AAAA,IACV,SAAS,MAAM;AAAA,IACf,OAAO;AAAA,MACL;AAAA,QACE,OAAO;AAAA,QACP,eAAeC;AAAAA,QACf,OAAO,CAAC,MAAM,UAAU,UAAU,MAAM,OAAO,GAAG;AAAA,QAClD,SAAS,MAAM;AAAA;AAAA,MACvB;AAAA,MACM;AAAA,QACE,OAAO;AAAA,QACP,eAAeC;AAAAA,QACf,OAAO,CAAC,MAAM,UAAU,UAAU,MAAM,OAAO,GAAG;AAAA,QAClD,SAAS,MAAM,kBAAkB,QAAQ;AAAA,MACjD;AAAA,MACM;AAAA,QACE,OAAO;AAAA,QACP,eAAeC;AAAAA,QACf,OAAO,CAAC,MAAM,UAAU,UAAU,MAAM,OAAO,GAAG;AAAA,QAClD,SAAS,MAAM,kBAAkB,eAAe;AAAA,MACxD;AAAA,IACA;AAAA,EACA;AAAA,EACE;AAAA,IACE,UAAU;AAAA,IACV,SAAS,MAAM;AAAA,IACf,OAAO;AAAA,MACL;AAAA,QACE,OAAO;AAAA,QACP,eAAeC;AAAAA,QACf,OAAO,CAAC,MAAM,UAAU,UAAU,MAAM,OAAO,GAAG;AAAA,QAClD,SAAS,CAAC,MAAM,UAAU,kBAAkB,QAAQ,MAClD,KAAK,SACH,KAAK,KAAK,QAAQ,MAAM,OAAO,OAC9B,KAAK,OAAO,UACV,KAAK,OAAO,MAAM,SAAS,gBAAgB,KAC3C,KAAK,OAAO,MAAM,SAAS,YAAY;AAAA,MAItD;AAAA,IACA;AAAA,EACA;AACA;"}
1
+ {"version":3,"file":"navigation.user.config.js","sources":["../../../../../../../src/modules/auth/views/configs/navigation.user.config.js"],"sourcesContent":["// Import icons\nimport IconHome from '@martyrs/src/modules/icons/entities/IconHome.vue';\nimport IconEvents from '@martyrs/src/modules/icons/entities/IconEvents.vue';\nimport IconGroups from '@martyrs/src/modules/icons/entities/IconGroups.vue';\nimport IconOrders from '@martyrs/src/modules/icons/entities/IconOrders.vue';\nimport IconBell from '@martyrs/src/modules/icons/entities/IconBell.vue';\nimport IconSettings from '@martyrs/src/modules/icons/entities/IconSettings.vue';\nimport IconProfile from '@martyrs/src/modules/icons/entities/IconProfile.vue';\n\n// Import global mixins for access control\nimport { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js';\n\nconst { isModuleInstalled } = useGlobalMixins();\n\n// User profile navigation configuration\nexport const navigationItems = [\n {\n category: '',\n visible: () => true,\n items: [\n {\n title: 'Dashboard',\n iconComponent: IconHome,\n route: (auth, route) => `/users/${route.params._id}/dashboard`,\n visible: (auth, route) => auth.user && auth.user._id === route.params._id // Only owner\n },\n {\n title: 'Notifications',\n iconComponent: IconBell,\n route: (auth, route) => `/users/${route.params._id}/notifications`,\n visible: (auth, route) => auth.user && auth.user._id === route.params._id\n },\n {\n title: 'Settings',\n iconComponent: IconSettings,\n route: (auth, route) => `/users/${route.params._id}/edit/profile`,\n visible: (auth, route) => auth.user && auth.user._id === route.params._id\n },\n ]\n },\n {\n category: 'Profile',\n visible: () => true,\n items: [\n {\n title: 'Profile',\n iconComponent: IconProfile,\n route: (auth, route) => `/users/${route.params._id}`,\n visible: () => true // Public access\n },\n {\n title: 'Events',\n iconComponent: IconEvents,\n route: (auth, route) => `/users/${route.params._id}/events`,\n visible: () => isModuleInstalled('events')\n },\n {\n title: 'Groups',\n iconComponent: IconGroups,\n route: (auth, route) => `/users/${route.params._id}/organizations`,\n visible: () => isModuleInstalled('organizations')\n },\n ]\n },\n {\n category: 'Orders',\n visible: (auth, route) => isModuleInstalled('orders') && (\n auth.user && (\n auth.user._id === route.params._id ||\n (auth.access.roles &&\n (auth.access.roles.includes('ROLE_MODERATOR') ||\n auth.access.roles.includes('ROLE_ADMIN'))\n )\n )\n ),\n items: [\n {\n title: 'Orders',\n iconComponent: IconOrders,\n route: (auth, route) => `/users/${route.params._id}/orders`,\n \n },\n ]\n },\n];\n\nexport default navigationItems;\n"],"names":["IconHome","IconBell","IconSettings","IconProfile","IconEvents","IconGroups","IconOrders"],"mappings":";;;;;;;;AAYA,MAAM,EAAE,kBAAiB,IAAK,gBAAe;AAGjC,MAAC,kBAAkB;AAAA,EAC7B;AAAA,IACE,UAAU;AAAA,IACV,SAAS,MAAM;AAAA,IACf,OAAO;AAAA,MACL;AAAA,QACE,OAAO;AAAA,QACP,eAAeA;AAAAA,QACf,OAAO,CAAC,MAAM,UAAU,UAAU,MAAM,OAAO,GAAG;AAAA,QAClD,SAAS,CAAC,MAAM,UAAU,KAAK,QAAQ,KAAK,KAAK,QAAQ,MAAM,OAAO;AAAA;AAAA,MAC9E;AAAA,MACM;AAAA,QACE,OAAO;AAAA,QACP,eAAeC;AAAAA,QACf,OAAO,CAAC,MAAM,UAAU,UAAU,MAAM,OAAO,GAAG;AAAA,QAClD,SAAS,CAAC,MAAM,UAAU,KAAK,QAAQ,KAAK,KAAK,QAAQ,MAAM,OAAO;AAAA,MAC9E;AAAA,MACM;AAAA,QACE,OAAO;AAAA,QACP,eAAeC;AAAAA,QACf,OAAO,CAAC,MAAM,UAAU,UAAU,MAAM,OAAO,GAAG;AAAA,QAClD,SAAS,CAAC,MAAM,UAAU,KAAK,QAAQ,KAAK,KAAK,QAAQ,MAAM,OAAO;AAAA,MAC9E;AAAA,IACA;AAAA,EACA;AAAA,EACE;AAAA,IACE,UAAU;AAAA,IACV,SAAS,MAAM;AAAA,IACf,OAAO;AAAA,MACL;AAAA,QACE,OAAO;AAAA,QACP,eAAeC;AAAAA,QACf,OAAO,CAAC,MAAM,UAAU,UAAU,MAAM,OAAO,GAAG;AAAA,QAClD,SAAS,MAAM;AAAA;AAAA,MACvB;AAAA,MACM;AAAA,QACE,OAAO;AAAA,QACP,eAAeC;AAAAA,QACf,OAAO,CAAC,MAAM,UAAU,UAAU,MAAM,OAAO,GAAG;AAAA,QAClD,SAAS,MAAM,kBAAkB,QAAQ;AAAA,MACjD;AAAA,MACM;AAAA,QACE,OAAO;AAAA,QACP,eAAeC;AAAAA,QACf,OAAO,CAAC,MAAM,UAAU,UAAU,MAAM,OAAO,GAAG;AAAA,QAClD,SAAS,MAAM,kBAAkB,eAAe;AAAA,MACxD;AAAA,IACA;AAAA,EACA;AAAA,EACE;AAAA,IACE,UAAU;AAAA,IACV,SAAS,CAAC,MAAM,UAAU,kBAAkB,QAAQ,MAClD,KAAK,SACH,KAAK,KAAK,QAAQ,MAAM,OAAO,OAC9B,KAAK,OAAO,UACV,KAAK,OAAO,MAAM,SAAS,gBAAgB,KAC1C,KAAK,OAAO,MAAM,SAAS,YAAY;AAAA,IAI/C,OAAO;AAAA,MACL;AAAA,QACE,OAAO;AAAA,QACP,eAAeC;AAAAA,QACf,OAAO,CAAC,MAAM,UAAU,UAAU,MAAM,OAAO,GAAG;AAAA,MAE1D;AAAA,IACA;AAAA,EACA;AACA;"}
@@ -3,7 +3,7 @@ import { useGlobalMixins } from "../../../core/views/mixins/mixins.js";
3
3
  import { requiresAuth } from "../middlewares/auth.validation.js";
4
4
  import _sfc_main from "../../../icons/navigation/IconPlus.vue.js";
5
5
  import { navigationItems } from "../configs/navigation.user.config.js";
6
- import _sfc_main$1 from "../components/blocks/ProfileCard.vue.js";
6
+ import "vue";
7
7
  import HelpCard from "../../../core/views/components/blocks/HelpCard.vue.js";
8
8
  const { isPhone, isTablet } = useGlobalMixins();
9
9
  function getUsersRoutes(options = {}) {
@@ -29,7 +29,6 @@ function getUsersRoutes(options = {}) {
29
29
  },
30
30
  sidebar_hover: false,
31
31
  sidebar_navigation_items: navigationItems,
32
- sidebar_header_component: _sfc_main$1,
33
32
  sidebar_footer_component: HelpCard,
34
33
  sidebarOpenOnEnter: true,
35
34
  sidebarCloseOnLeave: true
@@ -1 +1 @@
1
- {"version":3,"file":"users.router.js","sources":["../../../../../../../src/modules/auth/views/router/users.router.js"],"sourcesContent":["// users.router.js - User profile routes\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\nimport { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js';\nimport { requiresAuth } from '../middlewares/auth.validation.js';\nimport IconPlus from '@martyrs/src/modules/icons/navigation/IconPlus.vue';\nimport { navigationItems } from '@martyrs/src/modules/auth/views/configs/navigation.user.config.js';\nimport ProfileCard from '@martyrs/src/modules/auth/views/components/blocks/ProfileCard.vue';\nimport HelpCard from '@martyrs/src/modules/core/views/components/blocks/HelpCard.vue';\n\nconst { isPhone, isTablet } = useGlobalMixins();\n\nexport function getUsersRoutes(options = {}) {\n const route = options.route || 'Home';\n\n return {\n parentName: route,\n config: {\n basePath: 'users',\n meta: {\n title: {\n en: 'Users',\n ru: 'Пользователи',\n },\n },\n routes: [\n {\n path: ':_id',\n name: 'User Profile Root',\n meta: {\n title: {\n en: 'Profile',\n ru: 'Профиль',\n },\n sidebar_hover: false,\n sidebar_navigation_items: navigationItems,\n sidebar_header_component: ProfileCard,\n sidebar_footer_component: HelpCard,\n sidebarOpenOnEnter: true,\n sidebarCloseOnLeave: true\n },\n children: [\n {\n path: '',\n name: 'User Profile',\n meta: {\n title: {\n en: 'Profile',\n ru: 'Профиль',\n },\n title_hide: true,\n hideNavigationBar: route => route.params._id === auth.state.user._id,\n },\n component: () => import(/* webpackChunkName: \"profile\" */ '../components/pages/Profile.vue'),\n children: [\n {\n path: 'edit',\n name: 'User Edit Profile',\n beforeEnter: [requiresAuth],\n component: () => import(/* webpackChunkName: \"profile-edit\" */ '../components/pages/ProfileEdit.vue'),\n children: [\n {\n path: 'profile',\n name: 'Profile Edit Profile',\n component: () => import(/* webpackChunkName: \"profile-edit-profile\" */ '../components/pages/ProfileEditProfile.vue')\n },\n {\n path: 'account',\n name: 'Profile Edit Account',\n component: () => import(/* webpackChunkName: \"profile-edit-account\" */ '../components/pages/ProfileEditAccount.vue')\n }\n ]\n }\n ]\n },\n {\n path: 'dashboard',\n name: 'User Dashboard',\n beforeEnter: [\n requiresAuth,\n (to) => {\n if (to.params._id !== auth.state.user._id) {\n return { name: 'User Profile', params: { _id: to.params._id } };\n }\n }\n ],\n meta: {\n title: {\n en: 'Dashboard',\n ru: 'Дашборд',\n },\n },\n component: () => import(/* webpackChunkName: \"profile-dashboard\" */ '../components/pages/UserDashboard.vue'),\n },\n {\n path: 'blogposts',\n name: 'User Posts',\n meta: {\n title: {\n en: 'Posts',\n ru: 'Посты',\n },\n },\n component: () => import(/* webpackChunkName: \"profile\" */ '../components/pages/ProfileBlogposts.vue'),\n },\n {\n path: 'events',\n name: 'User Events',\n meta: {\n title: {\n en: 'Events',\n ru: 'События',\n },\n },\n component: () => import(/* webpackChunkName: \"profile\" */ '@martyrs/src/modules/events/components/pages/EventsBackoffice.vue'),\n },\n {\n path: 'organizations',\n name: 'User Organizations',\n meta: {\n title: {\n en: 'Groups',\n ru: 'Группы',\n },\n actions: [\n {\n component: IconPlus,\n props: {\n fill: 'rgb(var(--main))',\n },\n condition: () => auth.state.user && auth.state.user._id,\n action: router => router.push({ name: 'Create Organization' }),\n },\n ],\n },\n component: () => import(/* webpackChunkName: \"profile\" */ '@martyrs/src/modules/organizations/components/pages/Organizations.vue'),\n },\n {\n path: 'wallet',\n name: 'User Wallet',\n meta: {\n title: {\n en: 'Wallet',\n ru: 'Кошелек',\n },\n },\n component: () => import(/* webpackChunkName: \"profile\" */ '@martyrs/src/modules/wallet/views/components/pages/Wallet.vue'),\n },\n ],\n },\n ],\n }\n };\n}\n"],"names":["ProfileCard","route","auth.state","IconPlus"],"mappings":"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"}
1
+ {"version":3,"file":"users.router.js","sources":["../../../../../../../src/modules/auth/views/router/users.router.js"],"sourcesContent":["// users.router.js - User profile routes\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\nimport { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js';\nimport { requiresAuth } from '../middlewares/auth.validation.js';\nimport IconPlus from '@martyrs/src/modules/icons/navigation/IconPlus.vue';\nimport { navigationItems } from '@martyrs/src/modules/auth/views/configs/navigation.user.config.js';\nimport ProfileCard from '@martyrs/src/modules/auth/views/components/blocks/ProfileCard.vue';\nimport HelpCard from '@martyrs/src/modules/core/views/components/blocks/HelpCard.vue';\n\nconst { isPhone, isTablet } = useGlobalMixins();\n\nexport function getUsersRoutes(options = {}) {\n const route = options.route || 'Home';\n\n return {\n parentName: route,\n config: {\n basePath: 'users',\n meta: {\n title: {\n en: 'Users',\n ru: 'Пользователи',\n },\n },\n routes: [\n {\n path: ':_id',\n name: 'User Profile Root',\n meta: {\n title: {\n en: 'Profile',\n ru: 'Профиль',\n },\n sidebar_hover: false,\n sidebar_navigation_items: navigationItems,\n sidebar_footer_component: HelpCard,\n sidebarOpenOnEnter: true,\n sidebarCloseOnLeave: true\n },\n children: [\n {\n path: '',\n name: 'User Profile',\n meta: {\n title: {\n en: 'Profile',\n ru: 'Профиль',\n },\n title_hide: true,\n hideNavigationBar: route => route.params._id === auth.state.user._id,\n },\n component: () => import(/* webpackChunkName: \"profile\" */ '../components/pages/Profile.vue'),\n children: [\n {\n path: 'edit',\n name: 'User Edit Profile',\n beforeEnter: [requiresAuth],\n component: () => import(/* webpackChunkName: \"profile-edit\" */ '../components/pages/ProfileEdit.vue'),\n children: [\n {\n path: 'profile',\n name: 'Profile Edit Profile',\n component: () => import(/* webpackChunkName: \"profile-edit-profile\" */ '../components/pages/ProfileEditProfile.vue')\n },\n {\n path: 'account',\n name: 'Profile Edit Account',\n component: () => import(/* webpackChunkName: \"profile-edit-account\" */ '../components/pages/ProfileEditAccount.vue')\n }\n ]\n }\n ]\n },\n {\n path: 'dashboard',\n name: 'User Dashboard',\n beforeEnter: [\n requiresAuth,\n (to) => {\n if (to.params._id !== auth.state.user._id) {\n return { name: 'User Profile', params: { _id: to.params._id } };\n }\n }\n ],\n meta: {\n title: {\n en: 'Dashboard',\n ru: 'Дашборд',\n },\n },\n component: () => import(/* webpackChunkName: \"profile-dashboard\" */ '../components/pages/UserDashboard.vue'),\n },\n {\n path: 'blogposts',\n name: 'User Posts',\n meta: {\n title: {\n en: 'Posts',\n ru: 'Посты',\n },\n },\n component: () => import(/* webpackChunkName: \"profile\" */ '../components/pages/ProfileBlogposts.vue'),\n },\n {\n path: 'events',\n name: 'User Events',\n meta: {\n title: {\n en: 'Events',\n ru: 'События',\n },\n },\n component: () => import(/* webpackChunkName: \"profile\" */ '@martyrs/src/modules/events/components/pages/EventsBackoffice.vue'),\n },\n {\n path: 'organizations',\n name: 'User Organizations',\n meta: {\n title: {\n en: 'Groups',\n ru: 'Группы',\n },\n actions: [\n {\n component: IconPlus,\n props: {\n fill: 'rgb(var(--main))',\n },\n condition: () => auth.state.user && auth.state.user._id,\n action: router => router.push({ name: 'Create Organization' }),\n },\n ],\n },\n component: () => import(/* webpackChunkName: \"profile\" */ '@martyrs/src/modules/organizations/components/pages/Organizations.vue'),\n },\n {\n path: 'wallet',\n name: 'User Wallet',\n meta: {\n title: {\n en: 'Wallet',\n ru: 'Кошелек',\n },\n },\n component: () => import(/* webpackChunkName: \"profile\" */ '@martyrs/src/modules/wallet/views/components/pages/Wallet.vue'),\n },\n ],\n },\n ],\n }\n };\n}\n"],"names":["route","auth.state","IconPlus"],"mappings":"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"}
@@ -53,6 +53,7 @@ const actions = {
53
53
  session.clear();
54
54
  this.resetState();
55
55
  setError(error);
56
+ throw error;
56
57
  }
57
58
  },
58
59
  // Helper method to reset state