@ozdao/martyrs 0.2.536 → 0.2.538

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 (296) hide show
  1. package/dist/_virtual/index.cjs +4 -4
  2. package/dist/_virtual/index.js +4 -4
  3. package/dist/_virtual/index2.cjs +4 -4
  4. package/dist/_virtual/index2.js +4 -4
  5. package/dist/martyrs/src/components/Button/{Button.vue2.cjs → Button.vue.cjs} +3 -3
  6. package/dist/martyrs/src/components/Button/{Button.vue2.js.map → Button.vue.cjs.map} +1 -1
  7. package/dist/martyrs/src/components/Button/{Button.vue2.js → Button.vue.js} +3 -3
  8. package/dist/martyrs/src/components/Button/Button.vue.js.map +1 -0
  9. package/dist/martyrs/src/components/Feed/Carousel.vue.cjs +1 -1
  10. package/dist/martyrs/src/components/Feed/Carousel.vue.js +1 -1
  11. package/dist/martyrs/src/components/Feed/Feed.vue.cjs +2 -2
  12. package/dist/martyrs/src/components/Feed/Feed.vue.js +2 -2
  13. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.cjs +1 -1
  14. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +1 -1
  15. package/dist/martyrs/src/components/FieldTags/FieldTags.vue.cjs +1 -1
  16. package/dist/martyrs/src/components/FieldTags/FieldTags.vue.js +1 -1
  17. package/dist/martyrs/src/components/Loader/{Loader.vue2.cjs → Loader.vue.cjs} +2 -2
  18. package/dist/martyrs/src/components/Loader/{Loader.vue2.js.map → Loader.vue.cjs.map} +1 -1
  19. package/dist/martyrs/src/components/Loader/{Loader.vue2.js → Loader.vue.js} +2 -2
  20. package/dist/martyrs/src/components/Loader/Loader.vue.js.map +1 -0
  21. package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue.cjs +1 -1
  22. package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue.js +1 -1
  23. package/dist/martyrs/src/components/Spoiler/{Spoiler.vue2.cjs → Spoiler.vue.cjs} +2 -2
  24. package/dist/martyrs/src/components/Spoiler/{Spoiler.vue2.js.map → Spoiler.vue.cjs.map} +1 -1
  25. package/dist/martyrs/src/components/Spoiler/{Spoiler.vue2.js → Spoiler.vue.js} +2 -2
  26. package/dist/martyrs/src/components/Spoiler/Spoiler.vue.js.map +1 -0
  27. package/dist/martyrs/src/components/Tab/{Tab.vue2.cjs → Tab.vue.cjs} +2 -2
  28. package/dist/martyrs/src/components/Tab/{Tab.vue2.js.map → Tab.vue.cjs.map} +1 -1
  29. package/dist/martyrs/src/components/Tab/{Tab.vue2.js → Tab.vue.js} +2 -2
  30. package/dist/martyrs/src/components/Tab/Tab.vue.js.map +1 -0
  31. package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.cjs +1 -1
  32. package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.js +1 -1
  33. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs +2 -2
  34. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +2 -2
  35. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +2 -2
  36. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +2 -2
  37. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +2 -2
  38. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +2 -2
  39. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.cjs +1 -1
  40. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js +1 -1
  41. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.cjs +1 -1
  42. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +1 -1
  43. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.cjs +1 -1
  44. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +1 -1
  45. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.cjs +1 -1
  46. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +1 -1
  47. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.cjs +2 -2
  48. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +2 -2
  49. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs +4 -4
  50. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs.map +1 -1
  51. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +4 -4
  52. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js.map +1 -1
  53. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs +2 -2
  54. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +2 -2
  55. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.cjs +1 -1
  56. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +1 -1
  57. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs +2 -2
  58. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +2 -2
  59. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +2 -2
  60. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +2 -2
  61. package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.cjs +1 -1
  62. package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.js +1 -1
  63. package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.cjs +1 -1
  64. package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.js +1 -1
  65. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +2 -2
  66. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +2 -2
  67. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs +1 -1
  68. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
  69. package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +2 -2
  70. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +2 -2
  71. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.cjs +1 -1
  72. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js +1 -1
  73. package/dist/martyrs/src/modules/events/components/sections/Feed.vue.cjs +1 -1
  74. package/dist/martyrs/src/modules/events/components/sections/Feed.vue.js +1 -1
  75. package/dist/martyrs/src/modules/events/components/sections/List.vue.cjs +1 -1
  76. package/dist/martyrs/src/modules/events/components/sections/List.vue.js +1 -1
  77. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +1 -1
  78. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +1 -1
  79. package/dist/martyrs/src/modules/globals/globals.client.cjs +3 -0
  80. package/dist/martyrs/src/modules/globals/globals.client.cjs.map +1 -1
  81. package/dist/martyrs/src/modules/globals/globals.client.js +3 -0
  82. package/dist/martyrs/src/modules/globals/globals.client.js.map +1 -1
  83. package/dist/martyrs/src/modules/globals/views/classes/globals.app.cjs +12 -7
  84. package/dist/martyrs/src/modules/globals/views/classes/globals.app.cjs.map +1 -1
  85. package/dist/martyrs/src/modules/globals/views/classes/globals.app.js +12 -7
  86. package/dist/martyrs/src/modules/globals/views/classes/globals.app.js.map +1 -1
  87. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.cjs +1 -1
  88. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.js +1 -1
  89. package/dist/martyrs/src/modules/globals/views/classes/module-registry.cjs +4 -1
  90. package/dist/martyrs/src/modules/globals/views/classes/module-registry.cjs.map +1 -1
  91. package/dist/martyrs/src/modules/globals/views/classes/module-registry.js +4 -1
  92. package/dist/martyrs/src/modules/globals/views/classes/module-registry.js.map +1 -1
  93. package/dist/martyrs/src/modules/globals/views/classes/store.cjs +9 -0
  94. package/dist/martyrs/src/modules/globals/views/classes/store.cjs.map +1 -1
  95. package/dist/martyrs/src/modules/globals/views/classes/store.js +9 -0
  96. package/dist/martyrs/src/modules/globals/views/classes/store.js.map +1 -1
  97. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +2 -2
  98. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +2 -2
  99. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupAuth.vue.cjs +1 -1
  100. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupAuth.vue.js +1 -1
  101. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs +2 -2
  102. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js +2 -2
  103. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +2 -2
  104. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +2 -2
  105. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs +1 -1
  106. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js +1 -1
  107. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs +1 -1
  108. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js +1 -1
  109. package/dist/martyrs/src/modules/globals/views/components/partials/NavigationBar.vue.cjs +1 -1
  110. package/dist/martyrs/src/modules/globals/views/components/partials/NavigationBar.vue.js +1 -1
  111. package/dist/martyrs/src/modules/globals/views/components/sections/{Filters.vue2.cjs → Filters.vue.cjs} +2 -2
  112. package/dist/martyrs/src/modules/globals/views/components/sections/{Filters.vue2.js.map → Filters.vue.cjs.map} +1 -1
  113. package/dist/martyrs/src/modules/globals/views/components/sections/{Filters.vue2.js → Filters.vue.js} +2 -2
  114. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue.js.map +1 -0
  115. package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.cjs +1 -1
  116. package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.js +1 -1
  117. package/dist/martyrs/src/modules/globals/views/components/sections/Walkthrough.vue.cjs +1 -1
  118. package/dist/martyrs/src/modules/globals/views/components/sections/Walkthrough.vue.js +1 -1
  119. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.cjs +1 -1
  120. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +1 -1
  121. package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.cjs +1 -1
  122. package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.js +1 -1
  123. package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.cjs +1 -1
  124. package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js +1 -1
  125. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.cjs +1 -1
  126. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +1 -1
  127. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.cjs +1 -1
  128. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +1 -1
  129. package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.cjs +1 -1
  130. package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.js +1 -1
  131. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.cjs +1 -1
  132. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.js +1 -1
  133. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.cjs +1 -1
  134. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js +1 -1
  135. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.cjs +1 -1
  136. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +1 -1
  137. package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.cjs +1 -1
  138. package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.js +1 -1
  139. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.cjs +1 -1
  140. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js +1 -1
  141. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.cjs +1 -1
  142. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js +1 -1
  143. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.cjs +1 -1
  144. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +1 -1
  145. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.cjs +2 -2
  146. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +2 -2
  147. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.cjs +1 -1
  148. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +1 -1
  149. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.cjs +1 -1
  150. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js +1 -1
  151. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs +1 -1
  152. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +1 -1
  153. package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs +2 -2
  154. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +2 -2
  155. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.cjs +2 -2
  156. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +2 -2
  157. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.cjs +1 -1
  158. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +1 -1
  159. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs +2 -2
  160. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +2 -2
  161. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.cjs +2 -2
  162. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +2 -2
  163. package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs +2 -2
  164. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +2 -2
  165. package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.cjs +2 -2
  166. package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.js +2 -2
  167. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.cjs +1 -1
  168. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js +1 -1
  169. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.cjs +11 -2
  170. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.cjs.map +1 -1
  171. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js +11 -2
  172. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js.map +1 -1
  173. package/dist/martyrs/src/modules/notifications/components/pages/Notifications.vue.cjs +1 -1
  174. package/dist/martyrs/src/modules/notifications/components/pages/Notifications.vue.js +1 -1
  175. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.cjs +1 -1
  176. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +1 -1
  177. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.cjs +1 -1
  178. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +1 -1
  179. package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.cjs +2 -2
  180. package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js +2 -2
  181. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +1 -1
  182. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +1 -1
  183. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs +1 -1
  184. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +1 -1
  185. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +2 -2
  186. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +2 -2
  187. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.cjs +1 -1
  188. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.js +1 -1
  189. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.cjs +1 -1
  190. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js +1 -1
  191. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.cjs +1 -1
  192. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js +1 -1
  193. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +2 -2
  194. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +2 -2
  195. package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.cjs +7 -7
  196. package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.js +7 -7
  197. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.cjs +1 -1
  198. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +1 -1
  199. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.cjs +1 -1
  200. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js +1 -1
  201. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.cjs +2 -2
  202. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js +2 -2
  203. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.cjs +1 -1
  204. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js +1 -1
  205. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.cjs +7 -7
  206. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js +7 -7
  207. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +7 -7
  208. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +7 -7
  209. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +6 -6
  210. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +6 -6
  211. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +2 -2
  212. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +2 -2
  213. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.cjs +1 -1
  214. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js +1 -1
  215. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs +2 -2
  216. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +2 -2
  217. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.cjs +1 -1
  218. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +1 -1
  219. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +3 -3
  220. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +3 -3
  221. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.cjs +2 -2
  222. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +2 -2
  223. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.cjs +1 -1
  224. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -1
  225. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.cjs +1 -1
  226. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +1 -1
  227. package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.cjs +1 -1
  228. package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.js +1 -1
  229. package/dist/martyrs/src/modules/products/components/elements/Image360.vue.cjs +1 -1
  230. package/dist/martyrs/src/modules/products/components/elements/Image360.vue.js +1 -1
  231. package/dist/martyrs/src/modules/products/components/elements/{THC.vue2.cjs → THC.vue.cjs} +2 -2
  232. package/dist/martyrs/src/modules/products/components/elements/THC.vue.cjs.map +1 -0
  233. package/dist/martyrs/src/modules/products/components/elements/{THC.vue2.js → THC.vue.js} +2 -2
  234. package/dist/martyrs/src/modules/products/components/elements/THC.vue.js.map +1 -0
  235. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs +2 -2
  236. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +2 -2
  237. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +3 -3
  238. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +3 -3
  239. package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +3 -3
  240. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +3 -3
  241. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +2 -2
  242. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +2 -2
  243. package/dist/martyrs/src/modules/products/components/pages/ProductRecommmendation.vue.cjs +1 -1
  244. package/dist/martyrs/src/modules/products/components/pages/ProductRecommmendation.vue.js +1 -1
  245. package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs +3 -3
  246. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +3 -3
  247. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.cjs +1 -1
  248. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +1 -1
  249. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs +1 -1
  250. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +1 -1
  251. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs +1 -1
  252. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +1 -1
  253. package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.cjs +1 -1
  254. package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.js +1 -1
  255. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.cjs +1 -1
  256. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js +1 -1
  257. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.cjs +1 -1
  258. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +1 -1
  259. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.cjs +3 -3
  260. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +3 -3
  261. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.cjs +2 -2
  262. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +2 -2
  263. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.cjs +1 -1
  264. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js +1 -1
  265. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs +1 -1
  266. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +1 -1
  267. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs +1 -1
  268. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +1 -1
  269. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.cjs +1 -1
  270. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js +1 -1
  271. package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.cjs +1 -1
  272. package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.js +1 -1
  273. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +2 -2
  274. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +2 -2
  275. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.cjs +1 -1
  276. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +1 -1
  277. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.cjs +1 -1
  278. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +1 -1
  279. package/dist/notifications.server.cjs +20 -0
  280. package/dist/notifications.server.js +20 -0
  281. package/dist/style.css +6 -6
  282. package/package.json +1 -1
  283. package/src/modules/auth/views/components/pages/SignIn.vue +2 -2
  284. package/src/modules/globals/globals.client.js +3 -0
  285. package/src/modules/globals/views/classes/globals.app.js +30 -8
  286. package/src/modules/globals/views/classes/module-registry.js +5 -2
  287. package/src/modules/globals/views/classes/store.js +13 -1
  288. package/src/modules/notifications/components/elements/NotificationBadge.vue +12 -1
  289. package/src/modules/notifications/controllers/notifications.controller.js +31 -0
  290. package/dist/martyrs/src/components/Button/Button.vue2.cjs.map +0 -1
  291. package/dist/martyrs/src/components/Loader/Loader.vue2.cjs.map +0 -1
  292. package/dist/martyrs/src/components/Spoiler/Spoiler.vue2.cjs.map +0 -1
  293. package/dist/martyrs/src/components/Tab/Tab.vue2.cjs.map +0 -1
  294. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.cjs.map +0 -1
  295. package/dist/martyrs/src/modules/products/components/elements/THC.vue2.cjs.map +0 -1
  296. package/dist/martyrs/src/modules/products/components/elements/THC.vue2.js.map +0 -1
@@ -3,7 +3,7 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
3
3
  const vue = require("vue");
4
4
  const vueI18n = require("vue-i18n");
5
5
  const IconShopcartAdd = require("../../../icons/actions/IconShopcartAdd.vue.cjs");
6
- const Button = require("../../../../components/Button/Button.vue2.cjs");
6
+ const Button = require("../../../../components/Button/Button.vue.cjs");
7
7
  const ProductVariants = require("../blocks/ProductVariants.vue.cjs");
8
8
  const ProductDiscounts = require("../blocks/ProductDiscounts.vue.cjs");
9
9
  const QuantitySelector = require("../elements/QuantitySelector.vue.cjs");
@@ -1,7 +1,7 @@
1
1
  import { ref, computed, createElementBlock, createCommentVNode, openBlock, createVNode, createElementVNode, toDisplayString, withCtx, unref, Fragment } from "vue";
2
2
  import { useI18n } from "vue-i18n";
3
3
  import _sfc_main$5 from "../../../icons/actions/IconShopcartAdd.vue.js";
4
- import _sfc_main$4 from "../../../../components/Button/Button.vue2.js";
4
+ import _sfc_main$4 from "../../../../components/Button/Button.vue.js";
5
5
  import _sfc_main$1 from "../blocks/ProductVariants.vue.js";
6
6
  import ProductDiscounts from "../blocks/ProductDiscounts.vue.js";
7
7
  import _sfc_main$3 from "../elements/QuantitySelector.vue.js";
@@ -2,7 +2,7 @@
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
4
  const vueRouter = require("vue-router");
5
- const Button = require("../../../../components/Button/Button.vue2.cjs");
5
+ const Button = require("../../../../components/Button/Button.vue.cjs");
6
6
  const Checkbox = require("../../../../components/Checkbox/Checkbox.vue.cjs");
7
7
  const CardProduct = require("../blocks/CardProduct.vue.cjs");
8
8
  const IconProducts = require("../../../icons/entities/IconProducts.vue.cjs");
@@ -1,6 +1,6 @@
1
1
  import { getCurrentInstance, ref, computed, createElementBlock, openBlock, createElementVNode, Fragment, renderList, createBlock, withCtx, createVNode, withModifiers, toDisplayString } from "vue";
2
2
  import { useRouter } from "vue-router";
3
- import _sfc_main$4 from "../../../../components/Button/Button.vue2.js";
3
+ import _sfc_main$4 from "../../../../components/Button/Button.vue.js";
4
4
  import _sfc_main$2 from "../../../../components/Checkbox/Checkbox.vue.js";
5
5
  import _sfc_main$1 from "../blocks/CardProduct.vue.js";
6
6
  import _sfc_main$3 from "../../../icons/entities/IconProducts.vue.js";
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
- const Button = require("../../../../components/Button/Button.vue2.cjs");
5
- const Tab = require("../../../../components/Tab/Tab.vue2.cjs");
4
+ const Button = require("../../../../components/Button/Button.vue.cjs");
5
+ const Tab = require("../../../../components/Tab/Tab.vue.cjs");
6
6
  const IconEdit = require("../../../icons/navigation/IconEdit.vue.cjs");
7
7
  const PlaceholderImage = require("../../../icons/placeholders/PlaceholderImage.vue.cjs");
8
8
  const Image360 = require("../elements/Image360.vue.cjs");
9
9
  const ProductImages = require("../blocks/ProductImages.vue.cjs");
10
- ;/* empty css */
10
+ ;/* empty css */
11
11
  const Price = require("../elements/Price.vue.cjs");
12
12
  const vueRouter = require("vue-router");
13
13
  const vueI18n = require("vue-i18n");
@@ -1,11 +1,11 @@
1
1
  import { computed, ref, createElementBlock, openBlock, createElementVNode, createBlock, createCommentVNode, createVNode, unref, toDisplayString, Transition, withCtx, Fragment, renderList, createTextVNode } from "vue";
2
- import _sfc_main$4 from "../../../../components/Button/Button.vue2.js";
3
- import _sfc_main$3 from "../../../../components/Tab/Tab.vue2.js";
2
+ import _sfc_main$4 from "../../../../components/Button/Button.vue.js";
3
+ import _sfc_main$3 from "../../../../components/Tab/Tab.vue.js";
4
4
  import _sfc_main$1 from "../../../icons/navigation/IconEdit.vue.js";
5
5
  import PlaceholderImage from "../../../icons/placeholders/PlaceholderImage.vue.js";
6
6
  import Image360 from "../elements/Image360.vue.js";
7
7
  import ProductImages from "../blocks/ProductImages.vue.js";
8
- /* empty css */
8
+ /* empty css */
9
9
  import _sfc_main$2 from "../elements/Price.vue.js";
10
10
  import { useRoute, useRouter } from "vue-router";
11
11
  import { useI18n } from "vue-i18n";
@@ -2,8 +2,8 @@
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
4
  const dayjs_min = require("../../../../../../../../_virtual/dayjs.min.cjs");
5
- const Tab = require("../../../../../../components/Tab/Tab.vue2.cjs");
6
- const Button = require("../../../../../../components/Button/Button.vue2.cjs");
5
+ const Tab = require("../../../../../../components/Tab/Tab.vue.cjs");
6
+ const Button = require("../../../../../../components/Button/Button.vue.cjs");
7
7
  const Dropdown = require("../../../../../../components/Dropdown/Dropdown.vue2.cjs");
8
8
  const Calendar = require("../../../../../../components/Calendar/Calendar.vue2.cjs");
9
9
  const DateLabel = require("./DateLabel.vue.cjs");
@@ -1,7 +1,7 @@
1
1
  import { computed, ref, watch, createElementBlock, openBlock, createElementVNode, createVNode, withCtx, createTextVNode } from "vue";
2
2
  import dayjs from "../../../../../../../../_virtual/dayjs.min.js";
3
- import _sfc_main$2 from "../../../../../../components/Tab/Tab.vue2.js";
4
- import _sfc_main$3 from "../../../../../../components/Button/Button.vue2.js";
3
+ import _sfc_main$2 from "../../../../../../components/Tab/Tab.vue.js";
4
+ import _sfc_main$3 from "../../../../../../components/Button/Button.vue.js";
5
5
  import _sfc_main$4 from "../../../../../../components/Dropdown/Dropdown.vue2.js";
6
6
  import Calendar from "../../../../../../components/Calendar/Calendar.vue2.js";
7
7
  import _sfc_main$1 from "./DateLabel.vue.js";
@@ -2,7 +2,7 @@
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
4
  const dayjs_min = require("../../../../../../../_virtual/dayjs.min.cjs");
5
- ;/* empty css */
5
+ ;/* empty css */
6
6
  const Feed = require("../../../../../components/Feed/Feed.vue.cjs");
7
7
  ;/* empty css */
8
8
  const GanttChart = require("./Gant/GanttChart.vue.cjs");
@@ -1,6 +1,6 @@
1
1
  import { ref, computed, createElementBlock, openBlock, createElementVNode, createVNode, unref, toDisplayString, withCtx } from "vue";
2
2
  import dayjs from "../../../../../../../_virtual/dayjs.min.js";
3
- /* empty css */
3
+ /* empty css */
4
4
  import _sfc_main$1 from "../../../../../components/Feed/Feed.vue.js";
5
5
  /* empty css */
6
6
  import _sfc_main$2 from "./Gant/GanttChart.vue.js";
@@ -2,7 +2,7 @@
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
4
  const Popup = require("../../../../components/Popup/Popup.vue.cjs");
5
- const Button = require("../../../../components/Button/Button.vue2.cjs");
5
+ const Button = require("../../../../components/Button/Button.vue.cjs");
6
6
  const Select = require("../../../../components/Select/Select.vue.cjs");
7
7
  const reports = require("../../store/reports.cjs");
8
8
  const _sfc_main = {
@@ -1,6 +1,6 @@
1
1
  import { reactive, ref, createElementBlock, openBlock, renderSlot, createVNode, withCtx, createElementVNode, createTextVNode } from "vue";
2
2
  import _sfc_main$1 from "../../../../components/Popup/Popup.vue.js";
3
- import _sfc_main$2 from "../../../../components/Button/Button.vue2.js";
3
+ import _sfc_main$2 from "../../../../components/Button/Button.vue.js";
4
4
  import Select from "../../../../components/Select/Select.vue.js";
5
5
  import { actions } from "../../store/reports.js";
6
6
  const _sfc_main = {
@@ -3,7 +3,7 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
3
3
  const vue = require("vue");
4
4
  const vueRouter = require("vue-router");
5
5
  const vueI18n = require("vue-i18n");
6
- ;/* empty css */
6
+ ;/* empty css */
7
7
  ;/* empty css */
8
8
  ;/* empty css */
9
9
  ;/* empty css */
@@ -1,7 +1,7 @@
1
1
  import { ref, onMounted, watch, resolveComponent, createElementBlock, openBlock, createElementVNode, createVNode, createCommentVNode, toDisplayString, withCtx, Transition, createBlock, resolveDynamicComponent } from "vue";
2
2
  import { useRoute, useRouter } from "vue-router";
3
3
  import { useI18n } from "vue-i18n";
4
- /* empty css */
4
+ /* empty css */
5
5
  /* empty css */
6
6
  /* empty css */
7
7
  /* empty css */
@@ -3,7 +3,7 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
3
3
  const vue = require("vue");
4
4
  const vueRouter = require("vue-router");
5
5
  const index = require("../../../../../../node_modules/.pnpm/@googlemaps_js-api-loader@1.16.10/node_modules/@googlemaps/js-api-loader/dist/index.cjs");
6
- const Button = require("../../../../components/Button/Button.vue2.cjs");
6
+ const Button = require("../../../../components/Button/Button.vue.cjs");
7
7
  const organizations = require("../../../organizations/store/organizations.cjs");
8
8
  const globals = require("../../../globals/views/store/globals.cjs");
9
9
  const marketplace = require("../../../marketplace/views/store/marketplace.cjs");
@@ -1,7 +1,7 @@
1
1
  import { ref, onMounted, createElementBlock, openBlock, createElementVNode, createVNode, withCtx, createTextVNode } from "vue";
2
2
  import { useRouter, useRoute } from "vue-router";
3
3
  import { Loader } from "../../../../../../node_modules/.pnpm/@googlemaps_js-api-loader@1.16.10/node_modules/@googlemaps/js-api-loader/dist/index.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 { actions, state as state$2 } from "../../../organizations/store/organizations.js";
6
6
  import { state } from "../../../globals/views/store/globals.js";
7
7
  import { state as state$1 } from "../../../marketplace/views/store/marketplace.js";
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
- const Spoiler = require("../../../../components/Spoiler/Spoiler.vue2.cjs");
4
+ const Spoiler = require("../../../../components/Spoiler/Spoiler.vue.cjs");
5
5
  const Map = require("../../../../components/Map/Map.vue.cjs");
6
6
  const SpotSub = require("../blocks/SpotSub.vue.cjs");
7
7
  const CardUser = require("../../../auth/views/components/blocks/CardUser.vue.cjs");
@@ -1,5 +1,5 @@
1
1
  import { createElementBlock, openBlock, createVNode, createElementVNode, withCtx, createCommentVNode, Fragment, renderList, createBlock, toDisplayString } from "vue";
2
- import _sfc_main$1 from "../../../../components/Spoiler/Spoiler.vue2.js";
2
+ import _sfc_main$1 from "../../../../components/Spoiler/Spoiler.vue.js";
3
3
  import Map from "../../../../components/Map/Map.vue.js";
4
4
  import SpotSub from "../blocks/SpotSub.vue.js";
5
5
  import _sfc_main$2 from "../../../auth/views/components/blocks/CardUser.vue.js";
@@ -4,13 +4,13 @@ const vue = require("vue");
4
4
  const vueRouter = require("vue-router");
5
5
  const Block = require("../../../../components/Block/Block.vue.cjs");
6
6
  const UploadImage = require("../../../../components/UploadImage/UploadImage.vue.cjs");
7
- ;/* empty css */
7
+ ;/* empty css */
8
8
  const Field = require("../../../../components/Field/Field.vue.cjs");
9
9
  const Select = require("../../../../components/Select/Select.vue.cjs");
10
10
  const Checkbox = require("../../../../components/Checkbox/Checkbox.vue.cjs");
11
11
  const Address = require("../../../../components/Address/Address.vue.cjs");
12
12
  const LocationMarker = require("../../../../components/LocationMarker/LocationMarker.vue.cjs");
13
- const Button = require("../../../../components/Button/Button.vue2.cjs");
13
+ const Button = require("../../../../components/Button/Button.vue.cjs");
14
14
  ;/* empty css */
15
15
  const WorktimeEdit = require("../sections/WorktimeEdit.vue.cjs");
16
16
  const spots = require("../../store/spots.cjs");
@@ -2,13 +2,13 @@ import { ref, onMounted, createElementBlock, openBlock, createVNode, createEleme
2
2
  import { useRouter, useRoute } from "vue-router";
3
3
  import _sfc_main$1 from "../../../../components/Block/Block.vue.js";
4
4
  import _sfc_main$3 from "../../../../components/UploadImage/UploadImage.vue.js";
5
- /* empty css */
5
+ /* empty css */
6
6
  import Field from "../../../../components/Field/Field.vue.js";
7
7
  import Select from "../../../../components/Select/Select.vue.js";
8
8
  import _sfc_main$4 from "../../../../components/Checkbox/Checkbox.vue.js";
9
9
  import _sfc_main$5 from "../../../../components/Address/Address.vue.js";
10
10
  import _sfc_main$6 from "../../../../components/LocationMarker/LocationMarker.vue.js";
11
- import _sfc_main$2 from "../../../../components/Button/Button.vue2.js";
11
+ import _sfc_main$2 from "../../../../components/Button/Button.vue.js";
12
12
  /* empty css */
13
13
  import WorktimeEdit from "../sections/WorktimeEdit.vue.js";
14
14
  import { actions, state } from "../../store/spots.js";
@@ -2,7 +2,7 @@
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
4
  const vueI18n = require("vue-i18n");
5
- const Button = require("../../../../components/Button/Button.vue2.cjs");
5
+ const Button = require("../../../../components/Button/Button.vue.cjs");
6
6
  const Field = require("../../../../components/Field/Field.vue.cjs");
7
7
  const Select = require("../../../../components/Select/Select.vue.cjs");
8
8
  const Checkbox = require("../../../../components/Checkbox/Checkbox.vue.cjs");
@@ -1,6 +1,6 @@
1
1
  import { mergeModels, useModel, ref, computed, onMounted, createElementBlock, openBlock, createElementVNode, createVNode, toDisplayString, unref, withCtx, createTextVNode, Fragment, renderList, normalizeClass, createCommentVNode, createBlock } from "vue";
2
2
  import { useI18n } from "vue-i18n";
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 Field from "../../../../components/Field/Field.vue.js";
5
5
  import Select from "../../../../components/Select/Select.vue.js";
6
6
  import _sfc_main$3 from "../../../../components/Checkbox/Checkbox.vue.js";
@@ -6,7 +6,7 @@ const Web3 = require("web3");
6
6
  const wallet_store = require("../../store/wallet.store.cjs");
7
7
  const wallet = require("../../localization/wallet.json.cjs");
8
8
  const Popup = require("../../../../../components/Popup/Popup.vue.cjs");
9
- const Button = require("../../../../../components/Button/Button.vue2.cjs");
9
+ const Button = require("../../../../../components/Button/Button.vue.cjs");
10
10
  require("vue-router");
11
11
  ;/* empty css */
12
12
  ;/* empty css */
@@ -4,7 +4,7 @@ import Web3 from "web3";
4
4
  import { state, actions } from "../../store/wallet.store.js";
5
5
  import text from "../../localization/wallet.json.js";
6
6
  import _sfc_main$3 from "../../../../../components/Popup/Popup.vue.js";
7
- import _sfc_main$1 from "../../../../../components/Button/Button.vue2.js";
7
+ import _sfc_main$1 from "../../../../../components/Button/Button.vue.js";
8
8
  import "vue-router";
9
9
  /* empty css */
10
10
  /* empty css */
@@ -116,6 +116,26 @@ const NotificationsController = (db, wss, notificationService) => {
116
116
  if (!userId && !anonymousId) {
117
117
  return res.status(400).json({ message: "Either userId or anonymousId is required" });
118
118
  }
119
+ let existingDevice = await db.userDevice.findOne({ deviceToken });
120
+ if (existingDevice) {
121
+ console.log("[RegisterDevice] Found existing device by token, updating...");
122
+ if (userId) {
123
+ existingDevice.userId = userId;
124
+ existingDevice.anonymousId = void 0;
125
+ existingDevice.isAnonymous = false;
126
+ } else {
127
+ existingDevice.anonymousId = anonymousId;
128
+ existingDevice.userId = void 0;
129
+ existingDevice.isAnonymous = true;
130
+ }
131
+ existingDevice.deviceId = deviceId;
132
+ existingDevice.deviceType = deviceType;
133
+ existingDevice.lastActive = Date.now();
134
+ existingDevice.isActive = true;
135
+ await existingDevice.save();
136
+ console.log("[RegisterDevice] Device updated:", existingDevice._id);
137
+ return res.status(200).json(existingDevice);
138
+ }
119
139
  let filter;
120
140
  if (userId) {
121
141
  filter = { userId, deviceId };
@@ -114,6 +114,26 @@ const NotificationsController = (db, wss, notificationService) => {
114
114
  if (!userId && !anonymousId) {
115
115
  return res.status(400).json({ message: "Either userId or anonymousId is required" });
116
116
  }
117
+ let existingDevice = await db.userDevice.findOne({ deviceToken });
118
+ if (existingDevice) {
119
+ console.log("[RegisterDevice] Found existing device by token, updating...");
120
+ if (userId) {
121
+ existingDevice.userId = userId;
122
+ existingDevice.anonymousId = void 0;
123
+ existingDevice.isAnonymous = false;
124
+ } else {
125
+ existingDevice.anonymousId = anonymousId;
126
+ existingDevice.userId = void 0;
127
+ existingDevice.isAnonymous = true;
128
+ }
129
+ existingDevice.deviceId = deviceId;
130
+ existingDevice.deviceType = deviceType;
131
+ existingDevice.lastActive = Date.now();
132
+ existingDevice.isActive = true;
133
+ await existingDevice.save();
134
+ console.log("[RegisterDevice] Device updated:", existingDevice._id);
135
+ return res.status(200).json(existingDevice);
136
+ }
117
137
  let filter;
118
138
  if (userId) {
119
139
  filter = { userId, deviceId };
package/dist/style.css CHANGED
@@ -1398,21 +1398,21 @@ to {
1398
1398
  margin-left: 0.5rem;
1399
1399
  }
1400
1400
 
1401
- .notification-badge-container[data-v-c9d03610] {
1401
+ .notification-badge-container[data-v-f08c11b0] {
1402
1402
  position: relative;
1403
1403
  display: inline-block;
1404
1404
  }
1405
- .notification-button[data-v-c9d03610] {
1405
+ .notification-button[data-v-f08c11b0] {
1406
1406
  background: none;
1407
1407
  border: none;
1408
1408
  cursor: pointer;
1409
1409
  position: relative;
1410
1410
  font-size: 1.2rem;
1411
1411
  }
1412
- .notification-icon[data-v-c9d03610] {
1412
+ .notification-icon[data-v-f08c11b0] {
1413
1413
  font-size: 1.4rem;
1414
1414
  }
1415
- .button-counter[data-v-c9d03610] {
1415
+ .button-counter[data-v-f08c11b0] {
1416
1416
  position: absolute;
1417
1417
  right: -8px;
1418
1418
  bottom: -8px;
@@ -1426,8 +1426,8 @@ to {
1426
1426
  line-height: 16px;
1427
1427
  font-size: 10px;
1428
1428
  }
1429
- .notifications-loading[data-v-c9d03610],
1430
- .notifications-empty[data-v-c9d03610] {
1429
+ .notifications-loading[data-v-f08c11b0],
1430
+ .notifications-empty[data-v-f08c11b0] {
1431
1431
  padding: 24px;
1432
1432
  text-align: center;
1433
1433
  color: rgb(var(--text-light));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ozdao/martyrs",
3
- "version": "0.2.536",
3
+ "version": "0.2.538",
4
4
  "description": "Fullstack framework focused on user experience and ease of development.",
5
5
  "author": "OZ DAO <hello@ozdao.dev>",
6
6
  "license": "GPL-3.0-or-later",
@@ -118,8 +118,8 @@ import * as inputsValidation from '@martyrs/src/modules/auth/views/validations/i
118
118
 
119
119
  // Get store
120
120
  const store = useStore()
121
- const auth = store.auth || { state: {}, actions: {} }
122
- const globals = store.globals || { state: {}, actions: {} }
121
+ const auth = store.auth
122
+ const globals = store.globals
123
123
 
124
124
  // Init validation
125
125
  const phoneValidation = ref(null)
@@ -71,7 +71,10 @@ function initializeGlobals(app, store, router, config, options = {}) {
71
71
 
72
72
  if (config && config.modules) storeGlobals.state.options = config.modules;
73
73
 
74
+ console.log('[DEBUG] initializeGlobals called with store:', !!store);
75
+ console.log('[DEBUG] Adding globals to store...');
74
76
  store.addStore('globals', storeGlobals);
77
+ console.log('[DEBUG] globals added to store:', !!store.globals);
75
78
 
76
79
  router.addRoute(route, {
77
80
  path: '404',
@@ -50,8 +50,15 @@ export function createUniversalApp({
50
50
  });
51
51
 
52
52
  // Основная функция создания приложения
53
- function createApp() {
53
+ async function createApp() {
54
54
  const store = getStore();
55
+ console.log('[DEBUG createApp] store created:', !!store);
56
+
57
+ // Установить SSR store для useStore
58
+ if (typeof window === 'undefined') {
59
+ const { setSSRStore } = await import('./store.js');
60
+ setSSRStore(store);
61
+ }
55
62
  const app = process.env.MOBILE_APP
56
63
  ? createVueApp(layoutApp, config)
57
64
  : createVueSSRApp(layoutApp, config);
@@ -77,8 +84,10 @@ export function createUniversalApp({
77
84
 
78
85
  for (const moduleName of criticalModules) {
79
86
  try {
87
+ console.log(`[DEBUG] Loading module ${moduleName}, context.store:`, !!context.store);
80
88
  await moduleRegistry.load(moduleName, context);
81
89
  await moduleRegistry.initialize(moduleName, context);
90
+ console.log(`[DEBUG] Module ${moduleName} initialized, store.${moduleName}:`, !!context.store[moduleName]);
82
91
  } catch (error) {
83
92
  console.error(`Failed to load critical module ${moduleName}:`, error);
84
93
  }
@@ -193,20 +202,32 @@ export function createUniversalApp({
193
202
  // FOR SSR / SERVER ENTRY
194
203
  async function renderApp({ url, cookies, languages, ssrContext }) {
195
204
  const { app, router, store, i18n, meta, moduleRegistry } = await createApp();
205
+ console.log('[DEBUG SSR] After createApp - store.globals:', !!store.globals);
196
206
 
197
207
  // ВАЖНО: Очищаем состояние moduleRegistry на сервере перед каждым запросом
198
208
  // чтобы избежать загрязнения между запросами
199
209
  if (typeof window === 'undefined') {
200
- moduleRegistry.initialized.clear();
201
- moduleRegistry.modules.clear();
202
- moduleRegistry.loadingPromises.clear();
210
+ // Сброс SSR store для нового запроса
211
+ const { setSSRStore } = await import('./store.js');
212
+ setSSRStore(null);
203
213
 
204
- // На сервере загружаем auth для SSR рендеринга (vue-app-renderer требует его)
205
- const context = { app, store, router, config };
206
- await moduleRegistry.load('auth', context);
207
- await moduleRegistry.initialize('auth', context);
214
+ // Устанавливаем новый store для этого запроса
215
+ setSSRStore(store);
208
216
  }
209
217
 
218
+ // if (typeof window === 'undefined') {
219
+ // moduleRegistry.initialized.clear();
220
+ // moduleRegistry.modules.clear();
221
+ // moduleRegistry.loadingPromises.clear();
222
+
223
+ // // На сервере загружаем auth для SSR рендеринга (vue-app-renderer требует его)
224
+ // const context = { app, store, router, config };
225
+ // await moduleRegistry.load('globals', context);
226
+ // await moduleRegistry.initialize('globals', context);
227
+ // await moduleRegistry.load('auth', context);
228
+ // await moduleRegistry.initialize('auth', context);
229
+ // }
230
+
210
231
  const context = {
211
232
  app,
212
233
  store,
@@ -244,6 +265,7 @@ export function createUniversalApp({
244
265
  }
245
266
 
246
267
  // Передаем только модули текущего роута + критические модули
268
+ // Это не реальные модули а метаданные для дегидратации
247
269
  const criticalModules = ['globals', 'auth', 'organizations', 'backoffice'];
248
270
  const allModulesForRoute = [...new Set([...criticalModules, ...currentRouteModules])];
249
271
 
@@ -97,8 +97,11 @@ export class ModuleRegistry {
97
97
  // Инициализируем модуль
98
98
  // Поддерживаем оба варианта: module.initialize и module.default.initialize для обратной совместимости
99
99
  const initFunc = module.initialize || (module.default && module.default.initialize);
100
+ console.log(`[DEBUG registry] Module ${name} initFunc found:`, !!initFunc);
100
101
  if (initFunc) {
102
+ console.log(`[DEBUG registry] Calling initialize for ${name}`);
101
103
  await initFunc(app, store, router, config);
104
+ console.log(`[DEBUG registry] Module ${name} initialize completed`);
102
105
  }
103
106
 
104
107
  this.initialized.set(name, true);
@@ -114,9 +117,9 @@ export class ModuleRegistry {
114
117
  for (const [name, config] of this.loaders) {
115
118
  if (config.routes.some(route => {
116
119
  if (typeof route === 'string') {
117
- // Для корневого роута проверяем точное совпадение
120
+ // Для корневого роута матчим все пути
118
121
  if (route === '/') {
119
- return normalizedPath === '/';
122
+ return true;
120
123
  }
121
124
  // Для остальных роутов проверяем начало пути
122
125
  // но учитываем границы сегментов (не /events должен матчить /event)
@@ -67,9 +67,21 @@ export function createStore() {
67
67
  // Синглтон для клиента
68
68
  let clientStore = null;
69
69
 
70
+ // Store для SSR должен создаваться в createApp и передаваться сюда
71
+ let ssrStore = null;
72
+
73
+ export function setSSRStore(store) {
74
+ ssrStore = store;
75
+ }
76
+
70
77
  export function useStore() {
71
78
  if (typeof window === 'undefined') {
72
- // SSR: новый store каждый раз
79
+ // SSR: используем переданный store
80
+ if (ssrStore) {
81
+ return ssrStore;
82
+ }
83
+ // Fallback для обратной совместимости
84
+ console.warn('[WARN] SSR store not set, creating new store instance');
73
85
  return createStore();
74
86
  }
75
87
  // Client: синглтон
@@ -82,7 +82,18 @@ const props = defineProps({
82
82
 
83
83
  // Get router and notification functionality
84
84
  const router = useRouter();
85
- const { notifications, unreadCount, loading, markAllAsRead, getNotifications } = inject('useNotifications')();
85
+
86
+ // Check if notifications module is loaded
87
+ const useNotifications = inject('useNotifications');
88
+
89
+ // Provide fallback values if module is not loaded
90
+ const { notifications, unreadCount, loading, markAllAsRead, getNotifications } = useNotifications ? useNotifications() : {
91
+ notifications: ref([]),
92
+ unreadCount: ref(0),
93
+ loading: ref(false),
94
+ markAllAsRead: () => {},
95
+ getNotifications: () => {}
96
+ };
86
97
 
87
98
  // Local state
88
99
  const isOpen = ref(false);
@@ -129,6 +129,37 @@ const NotificationsController = (db, wss, notificationService) => {
129
129
  return res.status(400).json({ message: 'Either userId or anonymousId is required' });
130
130
  }
131
131
 
132
+ // First, try to find existing device by deviceToken
133
+ let existingDevice = await db.userDevice.findOne({ deviceToken });
134
+
135
+ if (existingDevice) {
136
+ // Device with this token already exists, update it
137
+ console.log('[RegisterDevice] Found existing device by token, updating...');
138
+
139
+ if (userId) {
140
+ // Transfer device from anonymous to authenticated user
141
+ existingDevice.userId = userId;
142
+ existingDevice.anonymousId = undefined;
143
+ existingDevice.isAnonymous = false;
144
+ } else {
145
+ // Update anonymous device
146
+ existingDevice.anonymousId = anonymousId;
147
+ existingDevice.userId = undefined;
148
+ existingDevice.isAnonymous = true;
149
+ }
150
+
151
+ // Update common fields
152
+ existingDevice.deviceId = deviceId;
153
+ existingDevice.deviceType = deviceType;
154
+ existingDevice.lastActive = Date.now();
155
+ existingDevice.isActive = true;
156
+
157
+ await existingDevice.save();
158
+ console.log('[RegisterDevice] Device updated:', existingDevice._id);
159
+ return res.status(200).json(existingDevice);
160
+ }
161
+
162
+ // No existing device with this token, proceed with original logic
132
163
  // Build the filter based on whether user is authenticated or anonymous
133
164
  let filter;
134
165
  if (userId) {
@@ -1 +0,0 @@
1
- {"version":3,"file":"Button.vue2.cjs","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 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 <Transition name=\"content\" mode=\"out-in\">\n <!-- Default slot content -->\n <span v-if=\"!loading && !error && !finished || !showLoader\" class=\"button-content\">\n <slot></slot>\n </span>\n <!-- Loading state -->\n <Loader v-else-if=\"loading && !error && showLoader\" class=\"icon button-content pos-relative pos-t-0 pos-l-0 loading\"/>\n <!-- Success state -->\n <span v-else-if=\"finished && showSucces\" class=\"button-content t-semi t-center w-100 loading t-black\">\n <template v-if=\"text.success\">\n {{ text.success }}\n </template>\n <IconCheckmark v-else class=\"icon\" />\n </span>\n <!-- Error state -->\n <span v-else-if=\"error\" class=\"button-content t-center w-100 error\">\n <template v-if=\"text.error\">\n {{ text.error }}\n </template>\n <IconCross v-else class=\"icon\" />\n </span>\n </Transition>\n \n <!-- Counter -->\n <div v-if=\"counter\" class=\"button-counter 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 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 text-transform: uppercase;\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}\n\n.icon {\n width: 1rem;\n height: 1rem;\n}\n\n/* Vue Transitions */\n.content-enter-active,\n.content-leave-active {\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n.content-enter-from {\n opacity: 0;\n transform: translateY(8px) scale(0.95);\n}\n\n.content-leave-to {\n opacity: 0;\n transform: translateY(-8px) scale(0.95);\n}\n\n.content-enter-to,\n.content-leave-from {\n opacity: 1;\n transform: translateY(0) scale(1);\n}\n</style>"],"names":["ref"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,UAAM,QAAQ;AAqCd,UAAM,QAAQ;AAEd,UAAM,SAASA,IAAAA,IAAI,IAAI;AACvB,UAAM,QAAQA,IAAAA,IAAI,IAAI;AACtB,UAAM,UAAUA,IAAAA,IAAI,KAAK;AACzB,UAAM,WAAWA,IAAAA,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,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Loader.vue2.cjs","sources":["../../../../../src/components/Loader/Loader.vue"],"sourcesContent":["<template>\n <div class=\"circular-loader pos-relative z-index-1 w-100 h-100 w-max-2r h-max-2r\" :class=\"{ 'circular-loader-centered': centered }\">\n <svg viewBox=\"25 25 50 50\">\n <circle class=\"circular-loader-fill\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" stroke-width=\"4\" stroke-miterlimit=\"10\" />\n <circle class=\"circular-loader-circle\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" stroke-width=\"4\" stroke-miterlimit=\"10\" />\n </svg>\n <div v-if=\"progress\" class=\"progress-text\">{{ progress }}</div>\n <div v-if=\"status\" class=\"uppercase t-semi w-m-10r status-text\">{{ status }}</div>\n </div>\n</template>\n\n<script>\nexport default {\n props: {\n progress: {\n type: Number,\n default: null,\n },\n status: {\n type: String,\n default: null,\n },\n centered: {\n type: Boolean,\n default: true, // По умолчанию лоадер центрирован (для обратной совместимости)\n },\n },\n};\n</script>\n\n<style>\n.circular-loader-centered {\n top: calc(50% - 1rem);\n left: calc(50% - 1rem);\n}\n\n.circular-loader svg {\n animation: rotate 2s linear infinite;\n}\n\n.circular-loader-circle {\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n stroke-linecap: round;\n stroke: rgb(var(--main));\n animation: dash 1.5s ease-in-out infinite;\n}\n\n.circular-loader-fill {\n stroke-linecap: round;\n stroke: rgba(var(--black),0.2);\n}\n\n.progress-text {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-size: 0.8rem;\n color: rgb(var(--main));;\n}\n\n.status-text {\n position: absolute;\n top: 120%;\n left: calc(50% - 5rem);\n font-size: 0.8rem;\n width: 10rem !important;\n text-align: center;\n}\n\n@keyframes rotate {\n 100% {\n transform: rotate(360deg);\n }\n}\n\n@keyframes dash {\n 0% {\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 89, 200;\n stroke-dashoffset: -35;\n }\n 100% {\n stroke-dasharray: 1, 200;\n stroke-dashoffset: -124;\n }\n}\n</style>"],"names":["_createElementBlock","_normalizeClass","_createElementVNode","_toDisplayString","_createCommentVNode"],"mappings":";;;;;AAYA,MAAK,YAAU;AAAA,EACb,OAAO;AAAA,IACL,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA;IAEX,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA;IAEX,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA;AAAA;;AAGf;;EA3BA,KAAA;AAAA,EAMyB,OAAM;;;EAN/B,KAAA;AAAA,EAOuB,OAAM;;;0BAN3BA,IAAAA,mBAOM,OAAA;AAAA,IAPD,OADPC,IAAAA,eAAA,CACa,wEAAsE,EAAA,4BAAuC,OAAA,UAAQ,CAAA;AAAA;8BAC9HC,IAAAA,mBAGM,OAAA,EAHD,SAAQ,iBAAa;AAAA,MACxBA,IAAAA,mBAAkH,UAAA;AAAA,QAA1G,OAAM;AAAA,QAAuB,IAAG;AAAA,QAAK,IAAG;AAAA,QAAK,GAAE;AAAA,QAAK,MAAK;AAAA,QAAO,gBAAa;AAAA,QAAI,qBAAkB;AAAA;MAC3GA,IAAAA,mBAAoH,UAAA;AAAA,QAA5G,OAAM;AAAA,QAAyB,IAAG;AAAA,QAAK,IAAG;AAAA,QAAK,GAAE;AAAA,QAAK,MAAK;AAAA,QAAO,gBAAa;AAAA,QAAI,qBAAkB;AAAA;;IAEpG,OAAA,6BAAXF,IAAAA,mBAA+D,OAA/D,YAA+DG,IAAAA,gBAAjB,OAAA,QAAQ,GAAA,CAAA,KAN1DC,IAAAA,mBAAA,IAAA,IAAA;AAAA,IAOe,OAAA,2BAAXJ,IAAAA,mBAAkF,OAAlF,YAAkFG,IAAAA,gBAAf,OAAA,MAAM,GAAA,CAAA,KAP7EC,IAAAA,mBAAA,IAAA,IAAA;AAAA;;;;"}