@ozdao/martyrs 0.2.477 → 0.2.479

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 (1711) hide show
  1. package/README.md +17 -10
  2. package/dist/Media-B1ZP3D7B.cjs +1 -0
  3. package/dist/{Media-CecrG6g6.mjs → Media-CKk33U4A.js} +1 -1
  4. package/dist/abac-BuL5pUZ4.js +949 -0
  5. package/dist/abac-XF1JVCLI.cjs +948 -0
  6. package/dist/addUserStatusFields-B8g3DAuZ.js +88 -0
  7. package/dist/addUserStatusFields-DP_0f12s.cjs +104 -0
  8. package/dist/auth.server.cjs +600 -0
  9. package/dist/auth.server.js +546 -709
  10. package/dist/authJwt-DBB51Iql.cjs +73 -0
  11. package/dist/authJwt-DcYNNwcr.js +74 -0
  12. package/dist/builder.cjs +1356 -0
  13. package/dist/builder.js +1193 -1377
  14. package/dist/chats.server.cjs +106 -0
  15. package/dist/chats.server.js +99 -129
  16. package/dist/common.schema-Bw1O5_2Q.js +13 -0
  17. package/dist/common.schema-BzFEVNn3.cjs +12 -0
  18. package/dist/community.server.cjs +840 -0
  19. package/dist/community.server.js +722 -949
  20. package/dist/credentials.schema-C9FB2EyY.js +10 -0
  21. package/dist/credentials.schema-DwhGdrwC.cjs +9 -0
  22. package/dist/engagement.schema-Dh1adRsn.js +24 -0
  23. package/dist/engagement.schema-JADHu8pj.cjs +23 -0
  24. package/dist/events.server.cjs +856 -0
  25. package/dist/events.server.js +713 -916
  26. package/dist/files.server.cjs +275 -0
  27. package/dist/files.server.js +233 -315
  28. package/dist/gallery.server.cjs +270 -0
  29. package/dist/gallery.server.js +245 -311
  30. package/dist/globals.abac-Cm9e8Jdk.cjs +297 -0
  31. package/dist/globals.abac-DBV_kaOq.js +298 -0
  32. package/dist/globals.logger-Bf6rRU7j.js +156 -0
  33. package/dist/globals.logger-CZMgIMlM.cjs +155 -0
  34. package/dist/globals.observer-CDqUjVU5.js +44 -0
  35. package/dist/globals.observer-CV2wCzzh.cjs +43 -0
  36. package/dist/globals.server.cjs +446 -0
  37. package/dist/globals.server.js +376 -399
  38. package/dist/globals.verifier-CWFz5Gh2.js +614 -0
  39. package/dist/globals.verifier-D68mHEBl.cjs +613 -0
  40. package/dist/index-CsJwdsBW.js +170 -0
  41. package/dist/index-YNOkL1mu.cjs +186 -0
  42. package/dist/mailing-C11EYWm-.js +85 -0
  43. package/dist/mailing-q7sR8gCV.cjs +101 -0
  44. package/dist/{main-DmznvhMM.mjs → main-BhAiwmnI.js} +4270 -4674
  45. package/dist/main-C75EcBpE.cjs +11 -0
  46. package/dist/martyrs/src/components/Block/Block.vue.cjs +1 -1
  47. package/dist/martyrs/src/components/Block/Block.vue.js +1 -1
  48. package/dist/martyrs/src/components/Button/Button.vue2.cjs +0 -1
  49. package/dist/martyrs/src/components/Button/Button.vue2.cjs.map +1 -1
  50. package/dist/martyrs/src/components/Button/Button.vue2.js +0 -1
  51. package/dist/martyrs/src/components/Button/Button.vue2.js.map +1 -1
  52. package/dist/martyrs/src/components/Chips/{Chips.vue.cjs → Chips.vue2.cjs} +3 -3
  53. package/dist/martyrs/src/components/Chips/Chips.vue2.cjs.map +1 -0
  54. package/dist/martyrs/src/components/Chips/{Chips.vue.js → Chips.vue2.js} +3 -3
  55. package/dist/martyrs/src/components/Chips/Chips.vue2.js.map +1 -0
  56. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.cjs → Dropdown.vue2.cjs} +2 -2
  57. package/dist/martyrs/src/components/Dropdown/Dropdown.vue2.cjs.map +1 -0
  58. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.js → Dropdown.vue2.js} +2 -2
  59. package/dist/martyrs/src/components/Dropdown/Dropdown.vue2.js.map +1 -0
  60. package/dist/martyrs/src/components/Feed/Feed.vue.cjs +127 -74
  61. package/dist/martyrs/src/components/Feed/Feed.vue.cjs.map +1 -1
  62. package/dist/martyrs/src/components/Feed/Feed.vue.js +136 -83
  63. package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
  64. package/dist/martyrs/src/components/Field/Field.vue.cjs +20 -22
  65. package/dist/martyrs/src/components/Field/Field.vue.cjs.map +1 -1
  66. package/dist/martyrs/src/components/Field/Field.vue.js +21 -23
  67. package/dist/martyrs/src/components/Field/Field.vue.js.map +1 -1
  68. package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.cjs.map +1 -1
  69. package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.js.map +1 -1
  70. package/dist/martyrs/src/components/FieldPhone/all-countries.cjs +245 -1
  71. package/dist/martyrs/src/components/FieldPhone/all-countries.cjs.map +1 -1
  72. package/dist/martyrs/src/components/FieldPhone/all-countries.js +245 -1
  73. package/dist/martyrs/src/components/FieldPhone/all-countries.js.map +1 -1
  74. package/dist/martyrs/src/components/FieldPhone/click-outside.cjs.map +1 -1
  75. package/dist/martyrs/src/components/FieldPhone/click-outside.js.map +1 -1
  76. package/dist/martyrs/src/components/FieldTags/BlockTags.vue.js +2 -2
  77. package/dist/martyrs/src/components/FieldTags/FieldTags.vue.cjs +451 -176
  78. package/dist/martyrs/src/components/FieldTags/FieldTags.vue.cjs.map +1 -1
  79. package/dist/martyrs/src/components/FieldTags/FieldTags.vue.js +451 -176
  80. package/dist/martyrs/src/components/FieldTags/FieldTags.vue.js.map +1 -1
  81. package/dist/martyrs/src/components/FieldTags/create-tags.cjs.map +1 -1
  82. package/dist/martyrs/src/components/FieldTags/create-tags.js.map +1 -1
  83. package/dist/martyrs/src/components/FieldTags/vue-tags-input.props.cjs +1 -4
  84. package/dist/martyrs/src/components/FieldTags/vue-tags-input.props.cjs.map +1 -1
  85. package/dist/martyrs/src/components/FieldTags/vue-tags-input.props.js +1 -4
  86. package/dist/martyrs/src/components/FieldTags/vue-tags-input.props.js.map +1 -1
  87. package/dist/martyrs/src/components/Menu/{Menu.vue.cjs → Menu.vue2.cjs} +2 -2
  88. package/dist/martyrs/src/components/Menu/Menu.vue2.cjs.map +1 -0
  89. package/dist/martyrs/src/components/Menu/{Menu.vue.js → Menu.vue2.js} +2 -2
  90. package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +1 -0
  91. package/dist/martyrs/src/components/Popup/Popup.vue2.cjs +27 -5
  92. package/dist/martyrs/src/components/Popup/Popup.vue2.cjs.map +1 -1
  93. package/dist/martyrs/src/components/Popup/Popup.vue2.js +28 -6
  94. package/dist/martyrs/src/components/Popup/Popup.vue2.js.map +1 -1
  95. package/dist/martyrs/src/components/Select/Select.vue.cjs +2 -4
  96. package/dist/martyrs/src/components/Select/Select.vue.cjs.map +1 -1
  97. package/dist/martyrs/src/components/Select/Select.vue.js +2 -4
  98. package/dist/martyrs/src/components/Select/Select.vue.js.map +1 -1
  99. package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue2.cjs +639 -0
  100. package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue2.cjs.map +1 -0
  101. package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue2.js +639 -0
  102. package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue2.js.map +1 -0
  103. package/dist/martyrs/src/components/Table/Table.vue.cjs +23 -38
  104. package/dist/martyrs/src/components/Table/Table.vue.cjs.map +1 -1
  105. package/dist/martyrs/src/components/Table/Table.vue.js +24 -39
  106. package/dist/martyrs/src/components/Table/Table.vue.js.map +1 -1
  107. package/dist/martyrs/src/components/Tooltip/{Tooltip.vue.cjs → Tooltip.vue2.cjs} +2 -2
  108. package/dist/martyrs/src/components/Tooltip/Tooltip.vue2.cjs.map +1 -0
  109. package/dist/martyrs/src/components/Tooltip/{Tooltip.vue.js → Tooltip.vue2.js} +2 -2
  110. package/dist/martyrs/src/components/Tooltip/{Tooltip.vue.cjs.map → Tooltip.vue2.js.map} +1 -1
  111. package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.cjs +4 -4
  112. package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.cjs.map +1 -1
  113. package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.js +4 -4
  114. package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.js.map +1 -1
  115. package/dist/martyrs/src/modules/auth/auth.client.cjs +5 -5
  116. package/dist/martyrs/src/modules/auth/auth.client.cjs.map +1 -1
  117. package/dist/martyrs/src/modules/auth/auth.client.js +5 -5
  118. package/dist/martyrs/src/modules/auth/auth.client.js.map +1 -1
  119. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs.map +1 -1
  120. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js.map +1 -1
  121. package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.cjs.map +1 -1
  122. package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.js.map +1 -1
  123. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs.map +1 -1
  124. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js.map +1 -1
  125. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs.map +1 -1
  126. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js.map +1 -1
  127. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +2 -2
  128. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs.map +1 -1
  129. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +2 -2
  130. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js.map +1 -1
  131. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.cjs +2 -2
  132. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.cjs.map +1 -1
  133. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js +2 -2
  134. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js.map +1 -1
  135. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.cjs.map +1 -1
  136. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js.map +1 -1
  137. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.cjs.map +1 -1
  138. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js.map +1 -1
  139. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs.map +1 -1
  140. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js.map +1 -1
  141. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs.map +1 -1
  142. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js.map +1 -1
  143. package/dist/martyrs/src/modules/auth/views/components/sections/FeaturedUsers.vue.cjs.map +1 -1
  144. package/dist/martyrs/src/modules/auth/views/components/sections/FeaturedUsers.vue.js.map +1 -1
  145. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.cjs.map +1 -1
  146. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js.map +1 -1
  147. package/dist/martyrs/src/modules/auth/views/middlewares/auth.validation.cjs.map +1 -1
  148. package/dist/martyrs/src/modules/auth/views/middlewares/auth.validation.js.map +1 -1
  149. package/dist/martyrs/src/modules/auth/views/middlewares/ownership.validation.cjs.map +1 -1
  150. package/dist/martyrs/src/modules/auth/views/middlewares/ownership.validation.js.map +1 -1
  151. package/dist/martyrs/src/modules/auth/views/router/auth.cjs +87 -98
  152. package/dist/martyrs/src/modules/auth/views/router/auth.cjs.map +1 -1
  153. package/dist/martyrs/src/modules/auth/views/router/auth.js +87 -98
  154. package/dist/martyrs/src/modules/auth/views/router/auth.js.map +1 -1
  155. package/dist/martyrs/src/modules/auth/views/router/users.cjs +105 -106
  156. package/dist/martyrs/src/modules/auth/views/router/users.cjs.map +1 -1
  157. package/dist/martyrs/src/modules/auth/views/router/users.js +105 -106
  158. package/dist/martyrs/src/modules/auth/views/router/users.js.map +1 -1
  159. package/dist/martyrs/src/modules/auth/views/store/auth.cjs +7 -1
  160. package/dist/martyrs/src/modules/auth/views/store/auth.cjs.map +1 -1
  161. package/dist/martyrs/src/modules/auth/views/store/auth.js +7 -1
  162. package/dist/martyrs/src/modules/auth/views/store/auth.js.map +1 -1
  163. package/dist/martyrs/src/modules/auth/views/store/twofa.cjs.map +1 -1
  164. package/dist/martyrs/src/modules/auth/views/store/twofa.js.map +1 -1
  165. package/dist/martyrs/src/modules/auth/views/store/users.cjs +1 -1
  166. package/dist/martyrs/src/modules/auth/views/store/users.cjs.map +1 -1
  167. package/dist/martyrs/src/modules/auth/views/store/users.js +1 -1
  168. package/dist/martyrs/src/modules/auth/views/store/users.js.map +1 -1
  169. package/dist/martyrs/src/modules/auth/views/validations/inputs.validation.cjs.map +1 -1
  170. package/dist/martyrs/src/modules/auth/views/validations/inputs.validation.js.map +1 -1
  171. package/dist/martyrs/src/modules/backoffice/backoffice.client.cjs.map +1 -1
  172. package/dist/martyrs/src/modules/backoffice/backoffice.client.js.map +1 -1
  173. package/dist/martyrs/src/modules/backoffice/components/pages/Dashboard.vue.cjs.map +1 -1
  174. package/dist/martyrs/src/modules/backoffice/components/pages/Dashboard.vue.js.map +1 -1
  175. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.cjs +1 -1
  176. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.cjs.map +1 -1
  177. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js +1 -1
  178. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js.map +1 -1
  179. package/dist/martyrs/src/modules/backoffice/router/backoffice.cjs +1 -4
  180. package/dist/martyrs/src/modules/backoffice/router/backoffice.cjs.map +1 -1
  181. package/dist/martyrs/src/modules/backoffice/router/backoffice.js +1 -4
  182. package/dist/martyrs/src/modules/backoffice/router/backoffice.js.map +1 -1
  183. package/dist/martyrs/src/modules/chats/chats.client.cjs.map +1 -1
  184. package/dist/martyrs/src/modules/chats/chats.client.js.map +1 -1
  185. package/dist/martyrs/src/modules/chats/store/chat.store.cjs +10 -6
  186. package/dist/martyrs/src/modules/chats/store/chat.store.cjs.map +1 -1
  187. package/dist/martyrs/src/modules/chats/store/chat.store.js +10 -6
  188. package/dist/martyrs/src/modules/chats/store/chat.store.js.map +1 -1
  189. package/dist/martyrs/src/modules/community/community.client.cjs +14 -14
  190. package/dist/martyrs/src/modules/community/community.client.cjs.map +1 -1
  191. package/dist/martyrs/src/modules/community/community.client.js +3 -3
  192. package/dist/martyrs/src/modules/community/community.client.js.map +1 -1
  193. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.cjs +1 -1
  194. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js +1 -1
  195. package/dist/martyrs/src/modules/community/components/blocks/FooterBlogpost.vue.cjs.map +1 -1
  196. package/dist/martyrs/src/modules/community/components/blocks/FooterBlogpost.vue.js.map +1 -1
  197. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.cjs.map +1 -1
  198. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js.map +1 -1
  199. package/dist/martyrs/src/modules/community/components/pages/Blog.vue.cjs.map +1 -1
  200. package/dist/martyrs/src/modules/community/components/pages/Blog.vue.js.map +1 -1
  201. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs +1 -1
  202. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs.map +1 -1
  203. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +1 -1
  204. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js.map +1 -1
  205. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +16 -10
  206. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs.map +1 -1
  207. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +16 -10
  208. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js.map +1 -1
  209. package/dist/martyrs/src/modules/community/components/sections/Comment.vue.cjs +2 -2
  210. package/dist/martyrs/src/modules/community/components/sections/Comment.vue.cjs.map +1 -1
  211. package/dist/martyrs/src/modules/community/components/sections/Comment.vue.js +2 -2
  212. package/dist/martyrs/src/modules/community/components/sections/Comment.vue.js.map +1 -1
  213. package/dist/martyrs/src/modules/community/components/sections/HotPosts.vue.cjs +1 -1
  214. package/dist/martyrs/src/modules/community/components/sections/HotPosts.vue.js +1 -1
  215. package/dist/martyrs/src/modules/community/router/blogposts.cjs +61 -59
  216. package/dist/martyrs/src/modules/community/router/blogposts.cjs.map +1 -1
  217. package/dist/martyrs/src/modules/community/router/blogposts.js +61 -59
  218. package/dist/martyrs/src/modules/community/router/blogposts.js.map +1 -1
  219. package/dist/martyrs/src/modules/community/store/blogposts.cjs +14 -10
  220. package/dist/martyrs/src/modules/community/store/blogposts.cjs.map +1 -1
  221. package/dist/martyrs/src/modules/community/store/blogposts.js +14 -10
  222. package/dist/martyrs/src/modules/community/store/blogposts.js.map +1 -1
  223. package/dist/martyrs/src/modules/community/store/reactions.cjs.map +1 -1
  224. package/dist/martyrs/src/modules/community/store/reactions.js.map +1 -1
  225. package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.cjs +5 -3
  226. package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.cjs.map +1 -1
  227. package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.js +5 -3
  228. package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.js.map +1 -1
  229. package/dist/martyrs/src/modules/constructor/components/elements/ImageUpload.vue.cjs.map +1 -1
  230. package/dist/martyrs/src/modules/constructor/components/elements/ImageUpload.vue.js.map +1 -1
  231. package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.cjs +1 -1
  232. package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js +1 -1
  233. package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.cjs.map +1 -1
  234. package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.js.map +1 -1
  235. package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.cjs +1 -1
  236. package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.cjs.map +1 -1
  237. package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.js +1 -1
  238. package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.js.map +1 -1
  239. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +12 -6
  240. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs.map +1 -1
  241. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +12 -6
  242. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js.map +1 -1
  243. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs.map +1 -1
  244. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js.map +1 -1
  245. package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +3 -4
  246. package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs.map +1 -1
  247. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +3 -4
  248. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js.map +1 -1
  249. package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs.map +1 -1
  250. package/dist/martyrs/src/modules/events/components/pages/Events.vue.js.map +1 -1
  251. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.cjs.map +1 -1
  252. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js.map +1 -1
  253. package/dist/martyrs/src/modules/events/components/pages/EventsSearch.vue.cjs.map +1 -1
  254. package/dist/martyrs/src/modules/events/components/pages/EventsSearch.vue.js.map +1 -1
  255. package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.cjs +1 -1
  256. package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.js +1 -1
  257. package/dist/martyrs/src/modules/events/components/sections/FeaturedEvents.vue.cjs +1 -1
  258. package/dist/martyrs/src/modules/events/components/sections/FeaturedEvents.vue.cjs.map +1 -1
  259. package/dist/martyrs/src/modules/events/components/sections/FeaturedEvents.vue.js +1 -1
  260. package/dist/martyrs/src/modules/events/components/sections/FeaturedEvents.vue.js.map +1 -1
  261. package/dist/martyrs/src/modules/events/events.client.cjs +17 -17
  262. package/dist/martyrs/src/modules/events/events.client.cjs.map +1 -1
  263. package/dist/martyrs/src/modules/events/events.client.js +4 -4
  264. package/dist/martyrs/src/modules/events/events.client.js.map +1 -1
  265. package/dist/martyrs/src/modules/events/router/events.cjs +11 -21
  266. package/dist/martyrs/src/modules/events/router/events.cjs.map +1 -1
  267. package/dist/martyrs/src/modules/events/router/events.js +11 -21
  268. package/dist/martyrs/src/modules/events/router/events.js.map +1 -1
  269. package/dist/martyrs/src/modules/events/store/events.cjs.map +1 -1
  270. package/dist/martyrs/src/modules/events/store/events.js.map +1 -1
  271. package/dist/martyrs/src/modules/events/store/tickets.cjs +3 -1
  272. package/dist/martyrs/src/modules/events/store/tickets.cjs.map +1 -1
  273. package/dist/martyrs/src/modules/events/store/tickets.js +3 -1
  274. package/dist/martyrs/src/modules/events/store/tickets.js.map +1 -1
  275. package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.cjs.map +1 -1
  276. package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.js.map +1 -1
  277. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +2 -2
  278. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs.map +1 -1
  279. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +2 -2
  280. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js.map +1 -1
  281. package/dist/martyrs/src/modules/gallery/gallery.client.cjs.map +1 -1
  282. package/dist/martyrs/src/modules/gallery/gallery.client.js.map +1 -1
  283. package/dist/martyrs/src/modules/gallery/router/gallery.backoffice.router.cjs +17 -17
  284. package/dist/martyrs/src/modules/gallery/router/gallery.backoffice.router.cjs.map +1 -1
  285. package/dist/martyrs/src/modules/gallery/router/gallery.backoffice.router.js +17 -17
  286. package/dist/martyrs/src/modules/gallery/router/gallery.backoffice.router.js.map +1 -1
  287. package/dist/martyrs/src/modules/gallery/router/gallery.router.cjs.map +1 -1
  288. package/dist/martyrs/src/modules/gallery/router/gallery.router.js.map +1 -1
  289. package/dist/martyrs/src/modules/gallery/store/gallery.cjs.map +1 -1
  290. package/dist/martyrs/src/modules/gallery/store/gallery.js.map +1 -1
  291. package/dist/martyrs/src/modules/globals/globals.client.cjs +24 -8
  292. package/dist/martyrs/src/modules/globals/globals.client.cjs.map +1 -1
  293. package/dist/martyrs/src/modules/globals/globals.client.js +22 -6
  294. package/dist/martyrs/src/modules/globals/globals.client.js.map +1 -1
  295. package/dist/martyrs/src/modules/globals/views/classes/globals.store.cjs +9 -7
  296. package/dist/martyrs/src/modules/globals/views/classes/globals.store.cjs.map +1 -1
  297. package/dist/martyrs/src/modules/globals/views/classes/globals.store.js +9 -7
  298. package/dist/martyrs/src/modules/globals/views/classes/globals.store.js.map +1 -1
  299. package/dist/martyrs/src/modules/globals/views/classes/globals.websocket.cjs.map +1 -1
  300. package/dist/martyrs/src/modules/globals/views/classes/globals.websocket.js.map +1 -1
  301. package/dist/martyrs/src/modules/globals/views/classes/store.cjs +2 -2
  302. package/dist/martyrs/src/modules/globals/views/classes/store.cjs.map +1 -1
  303. package/dist/martyrs/src/modules/globals/views/classes/store.js +2 -2
  304. package/dist/martyrs/src/modules/globals/views/classes/store.js.map +1 -1
  305. package/dist/martyrs/src/modules/globals/views/{plugins → components/blocks}/AlertDialog.vue.cjs +1 -1
  306. package/dist/martyrs/src/modules/globals/views/components/blocks/AlertDialog.vue.cjs.map +1 -0
  307. package/dist/martyrs/src/modules/globals/views/{plugins → components/blocks}/AlertDialog.vue.js +1 -1
  308. package/dist/martyrs/src/modules/globals/views/components/blocks/AlertDialog.vue.js.map +1 -0
  309. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockMultiselect.vue.cjs +308 -0
  310. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockMultiselect.vue.cjs.map +1 -0
  311. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockMultiselect.vue.js +308 -0
  312. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockMultiselect.vue.js.map +1 -0
  313. package/dist/martyrs/src/modules/globals/views/components/blocks/Card.vue.cjs +61 -49
  314. package/dist/martyrs/src/modules/globals/views/components/blocks/Card.vue.cjs.map +1 -1
  315. package/dist/martyrs/src/modules/globals/views/components/blocks/Card.vue.js +62 -50
  316. package/dist/martyrs/src/modules/globals/views/components/blocks/Card.vue.js.map +1 -1
  317. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +2 -2
  318. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs.map +1 -1
  319. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +2 -2
  320. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js.map +1 -1
  321. package/dist/martyrs/src/modules/globals/views/components/elements/ButtonDate.vue.cjs +2 -2
  322. package/dist/martyrs/src/modules/globals/views/components/elements/ButtonDate.vue.cjs.map +1 -1
  323. package/dist/martyrs/src/modules/globals/views/components/elements/ButtonDate.vue.js +2 -2
  324. package/dist/martyrs/src/modules/globals/views/components/elements/ButtonDate.vue.js.map +1 -1
  325. package/dist/martyrs/src/modules/globals/views/components/layouts/App.vue.cjs.map +1 -1
  326. package/dist/martyrs/src/modules/globals/views/components/layouts/App.vue.js.map +1 -1
  327. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +1 -1
  328. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs.map +1 -1
  329. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +1 -1
  330. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js.map +1 -1
  331. package/dist/martyrs/src/modules/globals/views/components/partials/BottomNavigationBar.vue.cjs.map +1 -1
  332. package/dist/martyrs/src/modules/globals/views/components/partials/BottomNavigationBar.vue.js.map +1 -1
  333. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs.map +1 -1
  334. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js.map +1 -1
  335. package/dist/martyrs/src/modules/globals/views/components/partials/LocationSelection.vue.cjs.map +1 -1
  336. package/dist/martyrs/src/modules/globals/views/components/partials/LocationSelection.vue.js.map +1 -1
  337. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs +9 -10
  338. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs.map +1 -1
  339. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js +9 -10
  340. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js.map +1 -1
  341. package/dist/martyrs/src/modules/globals/views/components/partials/NavigationBar.vue.cjs.map +1 -1
  342. package/dist/martyrs/src/modules/globals/views/components/partials/NavigationBar.vue.js.map +1 -1
  343. package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.cjs +1 -1
  344. package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.cjs.map +1 -1
  345. package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.js +1 -1
  346. package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.js.map +1 -1
  347. package/dist/martyrs/src/modules/globals/views/localization/get-browser-locale.cjs.map +1 -1
  348. package/dist/martyrs/src/modules/globals/views/localization/get-browser-locale.js.map +1 -1
  349. package/dist/martyrs/src/modules/globals/views/mixins/mixins.cjs +24 -5
  350. package/dist/martyrs/src/modules/globals/views/mixins/mixins.cjs.map +1 -1
  351. package/dist/martyrs/src/modules/globals/views/mixins/mixins.js +24 -5
  352. package/dist/martyrs/src/modules/globals/views/mixins/mixins.js.map +1 -1
  353. package/dist/martyrs/src/modules/globals/views/plugins/alert.plugin.cjs +1 -1
  354. package/dist/martyrs/src/modules/globals/views/plugins/alert.plugin.cjs.map +1 -1
  355. package/dist/martyrs/src/modules/globals/views/plugins/alert.plugin.js +1 -1
  356. package/dist/martyrs/src/modules/globals/views/plugins/alert.plugin.js.map +1 -1
  357. package/dist/martyrs/src/modules/globals/views/plugins/date-picker.plugin.cjs +74 -0
  358. package/dist/martyrs/src/modules/globals/views/plugins/date-picker.plugin.cjs.map +1 -0
  359. package/dist/martyrs/src/modules/globals/views/plugins/date-picker.plugin.js +74 -0
  360. package/dist/martyrs/src/modules/globals/views/plugins/date-picker.plugin.js.map +1 -0
  361. package/dist/martyrs/src/modules/globals/views/plugins/store-debugger/StoreDebugger.vue.cjs +200 -0
  362. package/dist/martyrs/src/modules/globals/views/plugins/store-debugger/StoreDebugger.vue.cjs.map +1 -0
  363. package/dist/martyrs/src/modules/globals/views/plugins/store-debugger/StoreDebugger.vue.js +200 -0
  364. package/dist/martyrs/src/modules/globals/views/plugins/store-debugger/StoreDebugger.vue.js.map +1 -0
  365. package/dist/martyrs/src/modules/globals/views/plugins/store-debugger/store-debugger.plugin.cjs +21 -0
  366. package/dist/martyrs/src/modules/globals/views/plugins/store-debugger/store-debugger.plugin.cjs.map +1 -0
  367. package/dist/martyrs/src/modules/globals/views/plugins/store-debugger/store-debugger.plugin.js +21 -0
  368. package/dist/martyrs/src/modules/globals/views/plugins/store-debugger/store-debugger.plugin.js.map +1 -0
  369. package/dist/martyrs/src/modules/globals/views/router/addRoutes.cjs +1 -4
  370. package/dist/martyrs/src/modules/globals/views/router/addRoutes.cjs.map +1 -1
  371. package/dist/martyrs/src/modules/globals/views/router/addRoutes.js +1 -4
  372. package/dist/martyrs/src/modules/globals/views/router/addRoutes.js.map +1 -1
  373. package/dist/martyrs/src/modules/globals/views/router/scrollBehavior.cjs.map +1 -1
  374. package/dist/martyrs/src/modules/globals/views/router/scrollBehavior.js.map +1 -1
  375. package/dist/martyrs/src/modules/globals/views/store/globals.cjs +4 -14
  376. package/dist/martyrs/src/modules/globals/views/store/globals.cjs.map +1 -1
  377. package/dist/martyrs/src/modules/globals/views/store/globals.js +4 -14
  378. package/dist/martyrs/src/modules/globals/views/store/globals.js.map +1 -1
  379. package/dist/martyrs/src/modules/globals/views/utils/axios-instance.cjs.map +1 -1
  380. package/dist/martyrs/src/modules/globals/views/utils/axios-instance.js.map +1 -1
  381. package/dist/martyrs/src/modules/globals/views/utils/vue-app-renderer.cjs +2 -2
  382. package/dist/martyrs/src/modules/globals/views/utils/vue-app-renderer.cjs.map +1 -1
  383. package/dist/martyrs/src/modules/globals/views/utils/vue-app-renderer.js +2 -2
  384. package/dist/martyrs/src/modules/globals/views/utils/vue-app-renderer.js.map +1 -1
  385. package/dist/martyrs/src/modules/icons/actions/IconDuplicate.vue.cjs +39 -0
  386. package/dist/martyrs/src/modules/icons/actions/IconDuplicate.vue.cjs.map +1 -0
  387. package/dist/martyrs/src/modules/icons/actions/IconDuplicate.vue.js +39 -0
  388. package/dist/martyrs/src/modules/icons/actions/IconDuplicate.vue.js.map +1 -0
  389. package/dist/martyrs/src/modules/icons/entities/IconDiscount.vue.cjs +57 -0
  390. package/dist/martyrs/src/modules/icons/entities/IconDiscount.vue.cjs.map +1 -0
  391. package/dist/martyrs/src/modules/icons/entities/IconDiscount.vue.js +57 -0
  392. package/dist/martyrs/src/modules/icons/entities/IconDiscount.vue.js.map +1 -0
  393. package/dist/martyrs/src/modules/icons/entities/IconFile.vue.cjs +33 -0
  394. package/dist/martyrs/src/modules/icons/entities/IconFile.vue.cjs.map +1 -0
  395. package/dist/martyrs/src/modules/icons/entities/IconFile.vue.js +33 -0
  396. package/dist/martyrs/src/modules/icons/entities/IconFile.vue.js.map +1 -0
  397. package/dist/martyrs/src/modules/icons/entities/IconMusic.vue.cjs +33 -0
  398. package/dist/martyrs/src/modules/icons/entities/IconMusic.vue.cjs.map +1 -0
  399. package/dist/martyrs/src/modules/icons/entities/IconMusic.vue.js +33 -0
  400. package/dist/martyrs/src/modules/icons/entities/IconMusic.vue.js.map +1 -0
  401. package/dist/martyrs/src/modules/icons/entities/IconSettings.vue.cjs +35 -0
  402. package/dist/martyrs/src/modules/icons/entities/IconSettings.vue.cjs.map +1 -0
  403. package/dist/martyrs/src/modules/icons/entities/IconSettings.vue.js +35 -0
  404. package/dist/martyrs/src/modules/icons/entities/IconSettings.vue.js.map +1 -0
  405. package/dist/martyrs/src/modules/icons/icons.client.cjs +97 -79
  406. package/dist/martyrs/src/modules/icons/icons.client.cjs.map +1 -1
  407. package/dist/martyrs/src/modules/icons/icons.client.js +140 -122
  408. package/dist/martyrs/src/modules/icons/icons.client.js.map +1 -1
  409. package/dist/martyrs/src/modules/icons/logos/Logotype.vue.cjs +25 -0
  410. package/dist/martyrs/src/modules/icons/logos/Logotype.vue.cjs.map +1 -0
  411. package/dist/martyrs/src/modules/icons/logos/Logotype.vue.js +25 -0
  412. package/dist/martyrs/src/modules/icons/logos/Logotype.vue.js.map +1 -0
  413. package/dist/martyrs/src/modules/icons/navigation/IconAttach.vue.cjs +35 -0
  414. package/dist/martyrs/src/modules/icons/navigation/IconAttach.vue.cjs.map +1 -0
  415. package/dist/martyrs/src/modules/icons/navigation/IconAttach.vue.js +35 -0
  416. package/dist/martyrs/src/modules/icons/navigation/IconAttach.vue.js.map +1 -0
  417. package/dist/martyrs/src/modules/icons/navigation/IconCheck.vue.cjs +39 -0
  418. package/dist/martyrs/src/modules/icons/navigation/IconCheck.vue.cjs.map +1 -0
  419. package/dist/martyrs/src/modules/icons/navigation/IconCheck.vue.js +39 -0
  420. package/dist/martyrs/src/modules/icons/navigation/IconCheck.vue.js.map +1 -0
  421. package/dist/martyrs/src/modules/icons/navigation/IconDoubleCheck.vue.cjs +39 -0
  422. package/dist/martyrs/src/modules/icons/navigation/IconDoubleCheck.vue.cjs.map +1 -0
  423. package/dist/martyrs/src/modules/icons/navigation/IconDoubleCheck.vue.js +39 -0
  424. package/dist/martyrs/src/modules/icons/navigation/IconDoubleCheck.vue.js.map +1 -0
  425. package/dist/martyrs/src/modules/icons/navigation/IconHeart.vue.cjs +34 -0
  426. package/dist/martyrs/src/modules/icons/navigation/IconHeart.vue.cjs.map +1 -0
  427. package/dist/martyrs/src/modules/icons/navigation/IconHeart.vue.js +34 -0
  428. package/dist/martyrs/src/modules/icons/navigation/IconHeart.vue.js.map +1 -0
  429. package/dist/martyrs/src/modules/icons/navigation/IconPause.vue.cjs +39 -0
  430. package/dist/martyrs/src/modules/icons/navigation/IconPause.vue.cjs.map +1 -0
  431. package/dist/martyrs/src/modules/icons/navigation/IconPause.vue.js +39 -0
  432. package/dist/martyrs/src/modules/icons/navigation/IconPause.vue.js.map +1 -0
  433. package/dist/martyrs/src/modules/icons/navigation/IconPlay.vue.cjs +31 -0
  434. package/dist/martyrs/src/modules/icons/navigation/IconPlay.vue.cjs.map +1 -0
  435. package/dist/martyrs/src/modules/icons/navigation/IconPlay.vue.js +31 -0
  436. package/dist/martyrs/src/modules/icons/navigation/IconPlay.vue.js.map +1 -0
  437. package/dist/martyrs/src/modules/icons/navigation/IconRefresh.vue.cjs +39 -0
  438. package/dist/martyrs/src/modules/icons/navigation/IconRefresh.vue.cjs.map +1 -0
  439. package/dist/martyrs/src/modules/icons/navigation/IconRefresh.vue.js +39 -0
  440. package/dist/martyrs/src/modules/icons/navigation/IconRefresh.vue.js.map +1 -0
  441. package/dist/martyrs/src/modules/icons/navigation/IconSend.vue.cjs +31 -0
  442. package/dist/martyrs/src/modules/icons/navigation/IconSend.vue.cjs.map +1 -0
  443. package/dist/martyrs/src/modules/icons/navigation/IconSend.vue.js +31 -0
  444. package/dist/martyrs/src/modules/icons/navigation/IconSend.vue.js.map +1 -0
  445. package/dist/martyrs/src/modules/icons/navigation/IconShuffle.vue.cjs +39 -0
  446. package/dist/martyrs/src/modules/icons/navigation/IconShuffle.vue.cjs.map +1 -0
  447. package/dist/martyrs/src/modules/icons/navigation/IconShuffle.vue.js +39 -0
  448. package/dist/martyrs/src/modules/icons/navigation/IconShuffle.vue.js.map +1 -0
  449. package/dist/martyrs/src/modules/icons/navigation/IconVolume.vue.cjs +39 -0
  450. package/dist/martyrs/src/modules/icons/navigation/IconVolume.vue.cjs.map +1 -0
  451. package/dist/martyrs/src/modules/icons/navigation/IconVolume.vue.js +39 -0
  452. package/dist/martyrs/src/modules/icons/navigation/IconVolume.vue.js.map +1 -0
  453. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.cjs +278 -0
  454. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.cjs.map +1 -0
  455. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js +278 -0
  456. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js.map +1 -0
  457. package/dist/martyrs/src/modules/icons/router/icons.router.cjs +33 -0
  458. package/dist/martyrs/src/modules/icons/router/icons.router.cjs.map +1 -0
  459. package/dist/martyrs/src/modules/icons/router/icons.router.js +33 -0
  460. package/dist/martyrs/src/modules/icons/router/icons.router.js.map +1 -0
  461. package/dist/martyrs/src/modules/icons/socials/dribbble.vue.cjs +2 -2
  462. package/dist/martyrs/src/modules/icons/socials/dribbble.vue.js +2 -2
  463. package/dist/martyrs/src/modules/icons/socials/facebook.vue.cjs +2 -2
  464. package/dist/martyrs/src/modules/icons/socials/facebook.vue.js +2 -2
  465. package/dist/martyrs/src/modules/icons/socials/instagram.vue.cjs +2 -2
  466. package/dist/martyrs/src/modules/icons/socials/instagram.vue.js +2 -2
  467. package/dist/martyrs/src/modules/icons/socials/line.vue.cjs +2 -2
  468. package/dist/martyrs/src/modules/icons/socials/line.vue.js +2 -2
  469. package/dist/martyrs/src/modules/icons/socials/linkedin.vue.cjs +2 -2
  470. package/dist/martyrs/src/modules/icons/socials/linkedin.vue.js +2 -2
  471. package/dist/martyrs/src/modules/icons/socials/reddit.vue.cjs +2 -2
  472. package/dist/martyrs/src/modules/icons/socials/reddit.vue.js +2 -2
  473. package/dist/martyrs/src/modules/icons/socials/telegram.vue.cjs +2 -2
  474. package/dist/martyrs/src/modules/icons/socials/telegram.vue.js +2 -2
  475. package/dist/martyrs/src/modules/icons/socials/twitter.vue.cjs +2 -2
  476. package/dist/martyrs/src/modules/icons/socials/twitter.vue.js +2 -2
  477. package/dist/martyrs/src/modules/icons/socials/vk.vue.cjs +2 -2
  478. package/dist/martyrs/src/modules/icons/socials/vk.vue.js +2 -2
  479. package/dist/martyrs/src/modules/icons/socials/youtube.vue.cjs +2 -2
  480. package/dist/martyrs/src/modules/icons/socials/youtube.vue.js +2 -2
  481. package/dist/martyrs/src/modules/landing/landing.client.cjs +12 -12
  482. package/dist/martyrs/src/modules/landing/landing.client.js +22 -22
  483. package/dist/martyrs/src/modules/marketplace/marketplace.client.cjs.map +1 -1
  484. package/dist/martyrs/src/modules/marketplace/marketplace.client.js.map +1 -1
  485. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.cjs.map +1 -1
  486. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.js.map +1 -1
  487. package/dist/martyrs/src/modules/marketplace/views/components/pages/Catalog.vue.cjs.map +1 -1
  488. package/dist/martyrs/src/modules/marketplace/views/components/pages/Catalog.vue.js.map +1 -1
  489. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.cjs.map +1 -1
  490. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js.map +1 -1
  491. package/dist/martyrs/src/modules/marketplace/views/router/marketplace.router.cjs +0 -1
  492. package/dist/martyrs/src/modules/marketplace/views/router/marketplace.router.cjs.map +1 -1
  493. package/dist/martyrs/src/modules/marketplace/views/router/marketplace.router.js +0 -1
  494. package/dist/martyrs/src/modules/marketplace/views/router/marketplace.router.js.map +1 -1
  495. package/dist/martyrs/src/modules/marketplace/views/store/marketplace.cjs +25 -19
  496. package/dist/martyrs/src/modules/marketplace/views/store/marketplace.cjs.map +1 -1
  497. package/dist/martyrs/src/modules/marketplace/views/store/marketplace.js +25 -19
  498. package/dist/martyrs/src/modules/marketplace/views/store/marketplace.js.map +1 -1
  499. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.cjs +1 -1
  500. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.cjs.map +1 -1
  501. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js +1 -1
  502. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js.map +1 -1
  503. package/dist/martyrs/src/modules/notifications/components/sections/NotificationsList.vue.cjs +1 -1
  504. package/dist/martyrs/src/modules/notifications/components/sections/NotificationsList.vue.cjs.map +1 -1
  505. package/dist/martyrs/src/modules/notifications/components/sections/NotificationsList.vue.js +1 -1
  506. package/dist/martyrs/src/modules/notifications/components/sections/NotificationsList.vue.js.map +1 -1
  507. package/dist/martyrs/src/modules/notifications/notifications.client.cjs +18 -27
  508. package/dist/martyrs/src/modules/notifications/notifications.client.cjs.map +1 -1
  509. package/dist/martyrs/src/modules/notifications/notifications.client.js +16 -25
  510. package/dist/martyrs/src/modules/notifications/notifications.client.js.map +1 -1
  511. package/dist/martyrs/src/modules/notifications/router/notifications.router.cjs +1 -1
  512. package/dist/martyrs/src/modules/notifications/router/notifications.router.cjs.map +1 -1
  513. package/dist/martyrs/src/modules/notifications/router/notifications.router.js +1 -1
  514. package/dist/martyrs/src/modules/notifications/router/notifications.router.js.map +1 -1
  515. package/dist/martyrs/src/modules/notifications/store/notifications.store.cjs.map +1 -1
  516. package/dist/martyrs/src/modules/notifications/store/notifications.store.js.map +1 -1
  517. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.cjs +1 -1
  518. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.js +1 -1
  519. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +2 -2
  520. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs.map +1 -1
  521. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +2 -2
  522. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js.map +1 -1
  523. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs.map +1 -1
  524. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js.map +1 -1
  525. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +1 -3
  526. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs.map +1 -1
  527. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +1 -3
  528. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js.map +1 -1
  529. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.cjs.map +1 -1
  530. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.js.map +1 -1
  531. package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.cjs.map +1 -1
  532. package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.js.map +1 -1
  533. package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.cjs.map +1 -1
  534. package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.js.map +1 -1
  535. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +1 -1
  536. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs.map +1 -1
  537. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +1 -1
  538. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js.map +1 -1
  539. package/dist/martyrs/src/modules/orders/orders.client.cjs +5 -5
  540. package/dist/martyrs/src/modules/orders/orders.client.cjs.map +1 -1
  541. package/dist/martyrs/src/modules/orders/orders.client.js +5 -5
  542. package/dist/martyrs/src/modules/orders/orders.client.js.map +1 -1
  543. package/dist/martyrs/src/modules/orders/router/orders.router.cjs +2 -3
  544. package/dist/martyrs/src/modules/orders/router/orders.router.cjs.map +1 -1
  545. package/dist/martyrs/src/modules/orders/router/orders.router.js +2 -3
  546. package/dist/martyrs/src/modules/orders/router/orders.router.js.map +1 -1
  547. package/dist/martyrs/src/modules/orders/store/applications.cjs.map +1 -1
  548. package/dist/martyrs/src/modules/orders/store/applications.js.map +1 -1
  549. package/dist/martyrs/src/modules/orders/store/customers.store.cjs.map +1 -1
  550. package/dist/martyrs/src/modules/orders/store/customers.store.js.map +1 -1
  551. package/dist/martyrs/src/modules/orders/store/models/customer.cjs.map +1 -1
  552. package/dist/martyrs/src/modules/orders/store/models/customer.js.map +1 -1
  553. package/dist/martyrs/src/modules/orders/store/models/order.cjs.map +1 -1
  554. package/dist/martyrs/src/modules/orders/store/models/order.js.map +1 -1
  555. package/dist/martyrs/src/modules/orders/store/orders.cjs +23 -26
  556. package/dist/martyrs/src/modules/orders/store/orders.cjs.map +1 -1
  557. package/dist/martyrs/src/modules/orders/store/orders.js +23 -26
  558. package/dist/martyrs/src/modules/orders/store/orders.js.map +1 -1
  559. package/dist/martyrs/src/modules/orders/store/shopcart.cjs +94 -47
  560. package/dist/martyrs/src/modules/orders/store/shopcart.cjs.map +1 -1
  561. package/dist/martyrs/src/modules/orders/store/shopcart.js +94 -47
  562. package/dist/martyrs/src/modules/orders/store/shopcart.js.map +1 -1
  563. package/dist/martyrs/src/modules/orders/store/testimonials.cjs.map +1 -1
  564. package/dist/martyrs/src/modules/orders/store/testimonials.js.map +1 -1
  565. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.cjs +1 -1
  566. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +1 -1
  567. package/dist/martyrs/src/modules/organizations/components/blocks/Socials.vue.js +16 -16
  568. package/dist/martyrs/src/modules/organizations/components/blocks/Socials.vue.js.map +1 -1
  569. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.cjs.map +1 -1
  570. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js.map +1 -1
  571. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.cjs.map +1 -1
  572. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js.map +1 -1
  573. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs.map +1 -1
  574. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js.map +1 -1
  575. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +2 -2
  576. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs.map +1 -1
  577. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +2 -2
  578. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js.map +1 -1
  579. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +5 -5
  580. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs.map +1 -1
  581. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +5 -5
  582. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js.map +1 -1
  583. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +2 -2
  584. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs.map +1 -1
  585. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +2 -2
  586. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js.map +1 -1
  587. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +1 -1
  588. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs.map +1 -1
  589. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +8 -8
  590. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js.map +1 -1
  591. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.cjs.map +1 -1
  592. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js.map +1 -1
  593. package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.cjs +2 -2
  594. package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.cjs.map +1 -1
  595. package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.js +2 -2
  596. package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.js.map +1 -1
  597. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.cjs.map +1 -1
  598. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js.map +1 -1
  599. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +5 -5
  600. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs.map +1 -1
  601. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js.map +1 -1
  602. package/dist/martyrs/src/modules/organizations/components/sections/Publics.vue.cjs.map +1 -1
  603. package/dist/martyrs/src/modules/organizations/components/sections/Publics.vue.js.map +1 -1
  604. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.cjs +225 -0
  605. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.cjs.map +1 -0
  606. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.js +225 -0
  607. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.js.map +1 -0
  608. package/dist/martyrs/src/modules/organizations/organizations.client.cjs +28 -28
  609. package/dist/martyrs/src/modules/organizations/organizations.client.cjs.map +1 -1
  610. package/dist/martyrs/src/modules/organizations/organizations.client.js +10 -10
  611. package/dist/martyrs/src/modules/organizations/organizations.client.js.map +1 -1
  612. package/dist/martyrs/src/modules/organizations/router/backoffice.router.cjs +26 -23
  613. package/dist/martyrs/src/modules/organizations/router/backoffice.router.cjs.map +1 -1
  614. package/dist/martyrs/src/modules/organizations/router/backoffice.router.js +26 -23
  615. package/dist/martyrs/src/modules/organizations/router/backoffice.router.js.map +1 -1
  616. package/dist/martyrs/src/modules/organizations/router/departments.router.cjs +27 -23
  617. package/dist/martyrs/src/modules/organizations/router/departments.router.cjs.map +1 -1
  618. package/dist/martyrs/src/modules/organizations/router/departments.router.js +27 -23
  619. package/dist/martyrs/src/modules/organizations/router/departments.router.js.map +1 -1
  620. package/dist/martyrs/src/modules/organizations/router/members.router.cjs +17 -15
  621. package/dist/martyrs/src/modules/organizations/router/members.router.cjs.map +1 -1
  622. package/dist/martyrs/src/modules/organizations/router/members.router.js +17 -15
  623. package/dist/martyrs/src/modules/organizations/router/members.router.js.map +1 -1
  624. package/dist/martyrs/src/modules/organizations/router/organizations.cjs +73 -60
  625. package/dist/martyrs/src/modules/organizations/router/organizations.cjs.map +1 -1
  626. package/dist/martyrs/src/modules/organizations/router/organizations.js +73 -60
  627. package/dist/martyrs/src/modules/organizations/router/organizations.js.map +1 -1
  628. package/dist/martyrs/src/modules/organizations/store/departments.cjs +3 -1
  629. package/dist/martyrs/src/modules/organizations/store/departments.cjs.map +1 -1
  630. package/dist/martyrs/src/modules/organizations/store/departments.js +3 -1
  631. package/dist/martyrs/src/modules/organizations/store/departments.js.map +1 -1
  632. package/dist/martyrs/src/modules/organizations/store/invites.cjs.map +1 -1
  633. package/dist/martyrs/src/modules/organizations/store/invites.js.map +1 -1
  634. package/dist/martyrs/src/modules/organizations/store/memberships.cjs.map +1 -1
  635. package/dist/martyrs/src/modules/organizations/store/memberships.js.map +1 -1
  636. package/dist/martyrs/src/modules/organizations/store/organizations.cjs.map +1 -1
  637. package/dist/martyrs/src/modules/organizations/store/organizations.js.map +1 -1
  638. package/dist/martyrs/src/modules/pages/pages.client.cjs +2 -2
  639. package/dist/martyrs/src/modules/pages/pages.client.cjs.map +1 -1
  640. package/dist/martyrs/src/modules/pages/pages.client.js +2 -2
  641. package/dist/martyrs/src/modules/pages/pages.client.js.map +1 -1
  642. package/dist/martyrs/src/modules/pages/views/components/pages/Page.vue.cjs.map +1 -1
  643. package/dist/martyrs/src/modules/pages/views/components/pages/Page.vue.js.map +1 -1
  644. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.cjs +1 -1
  645. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -1
  646. package/dist/martyrs/src/modules/pages/views/components/pages/Pages.vue.cjs.map +1 -1
  647. package/dist/martyrs/src/modules/pages/views/components/pages/Pages.vue.js.map +1 -1
  648. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.cjs.map +1 -1
  649. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js.map +1 -1
  650. package/dist/martyrs/src/modules/pages/views/router/pages.backoffice.router.cjs +35 -31
  651. package/dist/martyrs/src/modules/pages/views/router/pages.backoffice.router.cjs.map +1 -1
  652. package/dist/martyrs/src/modules/pages/views/router/pages.backoffice.router.js +35 -31
  653. package/dist/martyrs/src/modules/pages/views/router/pages.backoffice.router.js.map +1 -1
  654. package/dist/martyrs/src/modules/pages/views/router/pages.router.cjs +16 -14
  655. package/dist/martyrs/src/modules/pages/views/router/pages.router.cjs.map +1 -1
  656. package/dist/martyrs/src/modules/pages/views/router/pages.router.js +16 -14
  657. package/dist/martyrs/src/modules/pages/views/router/pages.router.js.map +1 -1
  658. package/dist/martyrs/src/modules/pages/views/store/pages.cjs +5 -2
  659. package/dist/martyrs/src/modules/pages/views/store/pages.cjs.map +1 -1
  660. package/dist/martyrs/src/modules/pages/views/store/pages.js +5 -2
  661. package/dist/martyrs/src/modules/pages/views/store/pages.js.map +1 -1
  662. package/dist/martyrs/src/modules/products/components/blocks/CardLeftover.vue.cjs +2 -2
  663. package/dist/martyrs/src/modules/products/components/blocks/CardLeftover.vue.cjs.map +1 -1
  664. package/dist/martyrs/src/modules/products/components/blocks/CardLeftover.vue.js +2 -2
  665. package/dist/martyrs/src/modules/products/components/blocks/CardLeftover.vue.js.map +1 -1
  666. package/dist/martyrs/src/modules/products/components/blocks/CardPosition.vue.cjs +76 -135
  667. package/dist/martyrs/src/modules/products/components/blocks/CardPosition.vue.cjs.map +1 -1
  668. package/dist/martyrs/src/modules/products/components/blocks/CardPosition.vue.js +77 -136
  669. package/dist/martyrs/src/modules/products/components/blocks/CardPosition.vue.js.map +1 -1
  670. package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.cjs +4 -4
  671. package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.cjs.map +1 -1
  672. package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.js +4 -4
  673. package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.js.map +1 -1
  674. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.cjs +128 -0
  675. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.cjs.map +1 -0
  676. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.js +128 -0
  677. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.js.map +1 -0
  678. package/dist/martyrs/src/modules/products/components/blocks/{ImagesThumbnails.vue.cjs → ProductImages.vue.cjs} +7 -7
  679. package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.cjs.map +1 -0
  680. package/dist/martyrs/src/modules/products/components/blocks/{ImagesThumbnails.vue.js → ProductImages.vue.js} +7 -7
  681. package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.js.map +1 -0
  682. package/dist/martyrs/src/modules/products/components/blocks/ProductVariants.vue.cjs +141 -0
  683. package/dist/martyrs/src/modules/products/components/blocks/ProductVariants.vue.cjs.map +1 -0
  684. package/dist/martyrs/src/modules/products/components/blocks/ProductVariants.vue.js +141 -0
  685. package/dist/martyrs/src/modules/products/components/blocks/ProductVariants.vue.js.map +1 -0
  686. package/dist/martyrs/src/modules/products/components/{blocks/Images360.vue.cjs → elements/Image360.vue.cjs} +5 -5
  687. package/dist/martyrs/src/modules/products/components/{blocks/Images360.vue.cjs.map → elements/Image360.vue.cjs.map} +1 -1
  688. package/dist/martyrs/src/modules/products/components/{blocks/Images360.vue.js → elements/Image360.vue.js} +5 -5
  689. package/dist/martyrs/src/modules/products/components/{blocks/Images360.vue.js.map → elements/Image360.vue.js.map} +1 -1
  690. package/dist/martyrs/src/modules/products/components/elements/Price.vue.cjs +19 -20
  691. package/dist/martyrs/src/modules/products/components/elements/Price.vue.cjs.map +1 -1
  692. package/dist/martyrs/src/modules/products/components/elements/Price.vue.js +20 -21
  693. package/dist/martyrs/src/modules/products/components/elements/Price.vue.js.map +1 -1
  694. package/dist/martyrs/src/modules/products/components/elements/QuantitySelector.vue.cjs +71 -0
  695. package/dist/martyrs/src/modules/products/components/elements/QuantitySelector.vue.cjs.map +1 -0
  696. package/dist/martyrs/src/modules/products/components/elements/QuantitySelector.vue.js +71 -0
  697. package/dist/martyrs/src/modules/products/components/elements/QuantitySelector.vue.js.map +1 -0
  698. package/dist/martyrs/src/modules/products/components/elements/THC.vue.cjs +6 -6
  699. package/dist/martyrs/src/modules/products/components/elements/THC.vue.js +6 -6
  700. package/dist/martyrs/src/modules/products/components/forms/ColumnSettingsMenu.vue.cjs +73 -0
  701. package/dist/martyrs/src/modules/products/components/forms/ColumnSettingsMenu.vue.cjs.map +1 -0
  702. package/dist/martyrs/src/modules/products/components/forms/ColumnSettingsMenu.vue.js +73 -0
  703. package/dist/martyrs/src/modules/products/components/forms/ColumnSettingsMenu.vue.js.map +1 -0
  704. package/dist/martyrs/src/modules/products/components/forms/ReorderSettingsForm.vue.cjs +101 -0
  705. package/dist/martyrs/src/modules/products/components/forms/ReorderSettingsForm.vue.cjs.map +1 -0
  706. package/dist/martyrs/src/modules/products/components/forms/ReorderSettingsForm.vue.js +101 -0
  707. package/dist/martyrs/src/modules/products/components/forms/ReorderSettingsForm.vue.js.map +1 -0
  708. package/dist/martyrs/src/modules/products/components/forms/StockAuditForm.vue.cjs +135 -0
  709. package/dist/martyrs/src/modules/products/components/forms/StockAuditForm.vue.cjs.map +1 -0
  710. package/dist/martyrs/src/modules/products/components/forms/StockAuditForm.vue.js +135 -0
  711. package/dist/martyrs/src/modules/products/components/forms/StockAuditForm.vue.js.map +1 -0
  712. package/dist/martyrs/src/modules/products/components/forms/StockHistoryView.vue.cjs +148 -0
  713. package/dist/martyrs/src/modules/products/components/forms/StockHistoryView.vue.cjs.map +1 -0
  714. package/dist/martyrs/src/modules/products/components/forms/StockHistoryView.vue.js +148 -0
  715. package/dist/martyrs/src/modules/products/components/forms/StockHistoryView.vue.js.map +1 -0
  716. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs +2 -2
  717. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs.map +1 -1
  718. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +2 -2
  719. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js.map +1 -1
  720. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +6 -6
  721. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs.map +1 -1
  722. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +6 -6
  723. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js.map +1 -1
  724. package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.cjs +345 -0
  725. package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.cjs.map +1 -0
  726. package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.js +345 -0
  727. package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.js.map +1 -0
  728. package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.cjs +279 -55
  729. package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.cjs.map +1 -1
  730. package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.js +282 -58
  731. package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.js.map +1 -1
  732. package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +107 -116
  733. package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs.map +1 -1
  734. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +116 -125
  735. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js.map +1 -1
  736. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +257 -312
  737. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs.map +1 -1
  738. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +262 -317
  739. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js.map +1 -1
  740. package/dist/martyrs/src/modules/products/components/pages/ProductRecommmendation.vue.cjs +2 -2
  741. package/dist/martyrs/src/modules/products/components/pages/ProductRecommmendation.vue.cjs.map +1 -1
  742. package/dist/martyrs/src/modules/products/components/pages/ProductRecommmendation.vue.js +2 -2
  743. package/dist/martyrs/src/modules/products/components/pages/ProductRecommmendation.vue.js.map +1 -1
  744. package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs +2 -2
  745. package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs.map +1 -1
  746. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +2 -2
  747. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js.map +1 -1
  748. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.cjs +168 -0
  749. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.cjs.map +1 -0
  750. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +168 -0
  751. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js.map +1 -0
  752. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs +319 -0
  753. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs.map +1 -0
  754. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +319 -0
  755. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js.map +1 -0
  756. package/dist/martyrs/src/modules/products/components/sections/EditIngredients.vue.cjs +140 -0
  757. package/dist/martyrs/src/modules/products/components/sections/EditIngredients.vue.cjs.map +1 -0
  758. package/dist/martyrs/src/modules/products/components/sections/EditIngredients.vue.js +140 -0
  759. package/dist/martyrs/src/modules/products/components/sections/EditIngredients.vue.js.map +1 -0
  760. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs +468 -0
  761. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs.map +1 -0
  762. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +468 -0
  763. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js.map +1 -0
  764. package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.cjs +2 -2
  765. package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.cjs.map +1 -1
  766. package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.js +2 -2
  767. package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.js.map +1 -1
  768. package/dist/martyrs/src/modules/products/components/sections/HeroRecommendation.vue.cjs.map +1 -1
  769. package/dist/martyrs/src/modules/products/components/sections/HeroRecommendation.vue.js.map +1 -1
  770. package/dist/martyrs/src/modules/products/components/sections/PopularProducts.vue.cjs +1 -1
  771. package/dist/martyrs/src/modules/products/components/sections/PopularProducts.vue.cjs.map +1 -1
  772. package/dist/martyrs/src/modules/products/components/sections/PopularProducts.vue.js +1 -1
  773. package/dist/martyrs/src/modules/products/components/sections/PopularProducts.vue.js.map +1 -1
  774. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.cjs +134 -0
  775. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.cjs.map +1 -0
  776. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js +134 -0
  777. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js.map +1 -0
  778. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.cjs +13 -13
  779. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.cjs.map +1 -1
  780. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +13 -13
  781. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js.map +1 -1
  782. package/dist/martyrs/src/modules/products/products.client.cjs +20 -29
  783. package/dist/martyrs/src/modules/products/products.client.cjs.map +1 -1
  784. package/dist/martyrs/src/modules/products/products.client.js +37 -46
  785. package/dist/martyrs/src/modules/products/products.client.js.map +1 -1
  786. package/dist/martyrs/src/modules/products/router/categories.router.cjs +34 -30
  787. package/dist/martyrs/src/modules/products/router/categories.router.cjs.map +1 -1
  788. package/dist/martyrs/src/modules/products/router/categories.router.js +34 -30
  789. package/dist/martyrs/src/modules/products/router/categories.router.js.map +1 -1
  790. package/dist/martyrs/src/modules/products/router/leftovers.router.cjs +42 -39
  791. package/dist/martyrs/src/modules/products/router/leftovers.router.cjs.map +1 -1
  792. package/dist/martyrs/src/modules/products/router/leftovers.router.js +42 -39
  793. package/dist/martyrs/src/modules/products/router/leftovers.router.js.map +1 -1
  794. package/dist/martyrs/src/modules/products/router/products.router.cjs +0 -1
  795. package/dist/martyrs/src/modules/products/router/products.router.cjs.map +1 -1
  796. package/dist/martyrs/src/modules/products/router/products.router.js +0 -1
  797. package/dist/martyrs/src/modules/products/router/products.router.js.map +1 -1
  798. package/dist/martyrs/src/modules/products/store/categories.cjs +7 -3
  799. package/dist/martyrs/src/modules/products/store/categories.cjs.map +1 -1
  800. package/dist/martyrs/src/modules/products/store/categories.js +7 -3
  801. package/dist/martyrs/src/modules/products/store/categories.js.map +1 -1
  802. package/dist/martyrs/src/modules/products/store/leftovers.cjs +42 -3
  803. package/dist/martyrs/src/modules/products/store/leftovers.cjs.map +1 -1
  804. package/dist/martyrs/src/modules/products/store/leftovers.js +42 -3
  805. package/dist/martyrs/src/modules/products/store/leftovers.js.map +1 -1
  806. package/dist/martyrs/src/modules/products/store/products.cjs +32 -60
  807. package/dist/martyrs/src/modules/products/store/products.cjs.map +1 -1
  808. package/dist/martyrs/src/modules/products/store/products.js +32 -60
  809. package/dist/martyrs/src/modules/products/store/products.js.map +1 -1
  810. package/dist/martyrs/src/modules/products/store/variants.store.cjs +6 -0
  811. package/dist/martyrs/src/modules/products/store/variants.store.cjs.map +1 -0
  812. package/dist/martyrs/src/modules/products/store/variants.store.js +6 -0
  813. package/dist/martyrs/src/modules/products/store/variants.store.js.map +1 -0
  814. package/dist/martyrs/src/modules/rents/rents.client.cjs.map +1 -1
  815. package/dist/martyrs/src/modules/rents/rents.client.js.map +1 -1
  816. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.cjs +1 -2
  817. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.cjs.map +1 -1
  818. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +1 -2
  819. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js.map +1 -1
  820. package/dist/martyrs/src/modules/rents/views/router/rents.router.cjs +3 -11
  821. package/dist/martyrs/src/modules/rents/views/router/rents.router.cjs.map +1 -1
  822. package/dist/martyrs/src/modules/rents/views/router/rents.router.js +3 -11
  823. package/dist/martyrs/src/modules/rents/views/router/rents.router.js.map +1 -1
  824. package/dist/martyrs/src/modules/rents/views/store/rents.store.cjs.map +1 -1
  825. package/dist/martyrs/src/modules/rents/views/store/rents.store.js.map +1 -1
  826. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs.map +1 -1
  827. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js.map +1 -1
  828. package/dist/martyrs/src/modules/reports/reports.client.cjs.map +1 -1
  829. package/dist/martyrs/src/modules/reports/reports.client.js.map +1 -1
  830. package/dist/martyrs/src/modules/reports/store/reports.cjs +1 -1
  831. package/dist/martyrs/src/modules/reports/store/reports.cjs.map +1 -1
  832. package/dist/martyrs/src/modules/reports/store/reports.js +1 -1
  833. package/dist/martyrs/src/modules/reports/store/reports.js.map +1 -1
  834. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs +74 -51
  835. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs.map +1 -1
  836. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js +75 -52
  837. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js.map +1 -1
  838. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs +1 -1
  839. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs.map +1 -1
  840. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +1 -1
  841. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js.map +1 -1
  842. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.cjs +1 -1
  843. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.cjs.map +1 -1
  844. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js +1 -1
  845. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js.map +1 -1
  846. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs.map +1 -1
  847. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js.map +1 -1
  848. package/dist/martyrs/src/modules/spots/router/spots.cjs +3 -9
  849. package/dist/martyrs/src/modules/spots/router/spots.cjs.map +1 -1
  850. package/dist/martyrs/src/modules/spots/router/spots.js +3 -9
  851. package/dist/martyrs/src/modules/spots/router/spots.js.map +1 -1
  852. package/dist/martyrs/src/modules/spots/spots.client.cjs +1 -1
  853. package/dist/martyrs/src/modules/spots/spots.client.cjs.map +1 -1
  854. package/dist/martyrs/src/modules/spots/spots.client.js +1 -1
  855. package/dist/martyrs/src/modules/spots/spots.client.js.map +1 -1
  856. package/dist/martyrs/src/modules/spots/store/spots.cjs.map +1 -1
  857. package/dist/martyrs/src/modules/spots/store/spots.js.map +1 -1
  858. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.cjs +3 -3
  859. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +3 -3
  860. package/dist/martyrs/src/modules/wallet/views/router/payments.router.cjs +26 -23
  861. package/dist/martyrs/src/modules/wallet/views/router/payments.router.cjs.map +1 -1
  862. package/dist/martyrs/src/modules/wallet/views/router/payments.router.js +26 -23
  863. package/dist/martyrs/src/modules/wallet/views/router/payments.router.js.map +1 -1
  864. package/dist/martyrs/src/modules/wallet/views/store/payments.store.cjs +2 -2
  865. package/dist/martyrs/src/modules/wallet/views/store/payments.store.cjs.map +1 -1
  866. package/dist/martyrs/src/modules/wallet/views/store/payments.store.js +2 -2
  867. package/dist/martyrs/src/modules/wallet/views/store/payments.store.js.map +1 -1
  868. package/dist/martyrs/src/modules/wallet/views/store/wallet.store.cjs +11 -12
  869. package/dist/martyrs/src/modules/wallet/views/store/wallet.store.cjs.map +1 -1
  870. package/dist/martyrs/src/modules/wallet/views/store/wallet.store.js +11 -12
  871. package/dist/martyrs/src/modules/wallet/views/store/wallet.store.js.map +1 -1
  872. package/dist/martyrs.cjs.js +1 -1
  873. package/dist/martyrs.css +1 -1
  874. package/dist/martyrs.es.js +1 -1
  875. package/dist/metadata.schema-CWmcDJN7.js +268 -0
  876. package/dist/metadata.schema-RlxNv46L.cjs +267 -0
  877. package/dist/node_modules/date-fns/_lib/addLeadingZeros.cjs +9 -0
  878. package/dist/node_modules/date-fns/_lib/addLeadingZeros.cjs.map +1 -0
  879. package/dist/node_modules/date-fns/_lib/addLeadingZeros.js +9 -0
  880. package/dist/node_modules/date-fns/_lib/addLeadingZeros.js.map +1 -0
  881. package/dist/node_modules/date-fns/_lib/defaultOptions.cjs +8 -0
  882. package/dist/node_modules/date-fns/_lib/defaultOptions.cjs.map +1 -0
  883. package/dist/node_modules/date-fns/_lib/defaultOptions.js +8 -0
  884. package/dist/node_modules/date-fns/_lib/defaultOptions.js.map +1 -0
  885. package/dist/node_modules/date-fns/_lib/format/formatters.cjs +653 -0
  886. package/dist/node_modules/date-fns/_lib/format/formatters.cjs.map +1 -0
  887. package/dist/node_modules/date-fns/_lib/format/formatters.js +653 -0
  888. package/dist/node_modules/date-fns/_lib/format/formatters.js.map +1 -0
  889. package/dist/node_modules/date-fns/_lib/format/lightFormatters.cjs +63 -0
  890. package/dist/node_modules/date-fns/_lib/format/lightFormatters.cjs.map +1 -0
  891. package/dist/node_modules/date-fns/_lib/format/lightFormatters.js +63 -0
  892. package/dist/node_modules/date-fns/_lib/format/lightFormatters.js.map +1 -0
  893. package/dist/node_modules/date-fns/_lib/format/longFormatters.cjs +59 -0
  894. package/dist/node_modules/date-fns/_lib/format/longFormatters.cjs.map +1 -0
  895. package/dist/node_modules/date-fns/_lib/format/longFormatters.js +59 -0
  896. package/dist/node_modules/date-fns/_lib/format/longFormatters.js.map +1 -0
  897. package/dist/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.cjs +21 -0
  898. package/dist/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.cjs.map +1 -0
  899. package/dist/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js +21 -0
  900. package/dist/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js.map +1 -0
  901. package/dist/node_modules/date-fns/_lib/normalizeDates.cjs +12 -0
  902. package/dist/node_modules/date-fns/_lib/normalizeDates.cjs.map +1 -0
  903. package/dist/node_modules/date-fns/_lib/normalizeDates.js +12 -0
  904. package/dist/node_modules/date-fns/_lib/normalizeDates.js.map +1 -0
  905. package/dist/node_modules/date-fns/_lib/protectedTokens.cjs +24 -0
  906. package/dist/node_modules/date-fns/_lib/protectedTokens.cjs.map +1 -0
  907. package/dist/node_modules/date-fns/_lib/protectedTokens.js +24 -0
  908. package/dist/node_modules/date-fns/_lib/protectedTokens.js.map +1 -0
  909. package/dist/node_modules/date-fns/constants.cjs +9 -0
  910. package/dist/node_modules/date-fns/constants.cjs.map +1 -0
  911. package/dist/node_modules/date-fns/constants.js +9 -0
  912. package/dist/node_modules/date-fns/constants.js.map +1 -0
  913. package/dist/node_modules/date-fns/constructFrom.cjs +13 -0
  914. package/dist/node_modules/date-fns/constructFrom.cjs.map +1 -0
  915. package/dist/node_modules/date-fns/constructFrom.js +13 -0
  916. package/dist/node_modules/date-fns/constructFrom.js.map +1 -0
  917. package/dist/node_modules/date-fns/differenceInCalendarDays.cjs +21 -0
  918. package/dist/node_modules/date-fns/differenceInCalendarDays.cjs.map +1 -0
  919. package/dist/node_modules/date-fns/differenceInCalendarDays.js +21 -0
  920. package/dist/node_modules/date-fns/differenceInCalendarDays.js.map +1 -0
  921. package/dist/node_modules/date-fns/format.cjs +80 -0
  922. package/dist/node_modules/date-fns/format.cjs.map +1 -0
  923. package/dist/node_modules/date-fns/format.js +80 -0
  924. package/dist/node_modules/date-fns/format.js.map +1 -0
  925. package/dist/node_modules/date-fns/getDayOfYear.cjs +14 -0
  926. package/dist/node_modules/date-fns/getDayOfYear.cjs.map +1 -0
  927. package/dist/node_modules/date-fns/getDayOfYear.js +14 -0
  928. package/dist/node_modules/date-fns/getDayOfYear.js.map +1 -0
  929. package/dist/node_modules/date-fns/getISOWeek.cjs +14 -0
  930. package/dist/node_modules/date-fns/getISOWeek.cjs.map +1 -0
  931. package/dist/node_modules/date-fns/getISOWeek.js +14 -0
  932. package/dist/node_modules/date-fns/getISOWeek.js.map +1 -0
  933. package/dist/node_modules/date-fns/getISOWeekYear.cjs +27 -0
  934. package/dist/node_modules/date-fns/getISOWeekYear.cjs.map +1 -0
  935. package/dist/node_modules/date-fns/getISOWeekYear.js +27 -0
  936. package/dist/node_modules/date-fns/getISOWeekYear.js.map +1 -0
  937. package/dist/node_modules/date-fns/getWeek.cjs +14 -0
  938. package/dist/node_modules/date-fns/getWeek.cjs.map +1 -0
  939. package/dist/node_modules/date-fns/getWeek.js +14 -0
  940. package/dist/node_modules/date-fns/getWeek.js.map +1 -0
  941. package/dist/node_modules/date-fns/getWeekYear.cjs +31 -0
  942. package/dist/node_modules/date-fns/getWeekYear.cjs.map +1 -0
  943. package/dist/node_modules/date-fns/getWeekYear.js +31 -0
  944. package/dist/node_modules/date-fns/getWeekYear.js.map +1 -0
  945. package/dist/node_modules/date-fns/isDate.cjs +8 -0
  946. package/dist/node_modules/date-fns/isDate.cjs.map +1 -0
  947. package/dist/node_modules/date-fns/isDate.js +8 -0
  948. package/dist/node_modules/date-fns/isDate.js.map +1 -0
  949. package/dist/node_modules/date-fns/isValid.cjs +10 -0
  950. package/dist/node_modules/date-fns/isValid.cjs.map +1 -0
  951. package/dist/node_modules/date-fns/isValid.js +10 -0
  952. package/dist/node_modules/date-fns/isValid.js.map +1 -0
  953. package/dist/node_modules/date-fns/locale/_lib/buildFormatLongFn.cjs +11 -0
  954. package/dist/node_modules/date-fns/locale/_lib/buildFormatLongFn.cjs.map +1 -0
  955. package/dist/node_modules/date-fns/locale/_lib/buildFormatLongFn.js +11 -0
  956. package/dist/node_modules/date-fns/locale/_lib/buildFormatLongFn.js.map +1 -0
  957. package/dist/node_modules/date-fns/locale/_lib/buildLocalizeFn.cjs +21 -0
  958. package/dist/node_modules/date-fns/locale/_lib/buildLocalizeFn.cjs.map +1 -0
  959. package/dist/node_modules/date-fns/locale/_lib/buildLocalizeFn.js +21 -0
  960. package/dist/node_modules/date-fns/locale/_lib/buildLocalizeFn.js.map +1 -0
  961. package/dist/node_modules/date-fns/locale/_lib/buildMatchFn.cjs +44 -0
  962. package/dist/node_modules/date-fns/locale/_lib/buildMatchFn.cjs.map +1 -0
  963. package/dist/node_modules/date-fns/locale/_lib/buildMatchFn.js +44 -0
  964. package/dist/node_modules/date-fns/locale/_lib/buildMatchFn.js.map +1 -0
  965. package/dist/node_modules/date-fns/locale/_lib/buildMatchPatternFn.cjs +17 -0
  966. package/dist/node_modules/date-fns/locale/_lib/buildMatchPatternFn.cjs.map +1 -0
  967. package/dist/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js +17 -0
  968. package/dist/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js.map +1 -0
  969. package/dist/node_modules/date-fns/locale/en-US/_lib/formatDistance.cjs +86 -0
  970. package/dist/node_modules/date-fns/locale/en-US/_lib/formatDistance.cjs.map +1 -0
  971. package/dist/node_modules/date-fns/locale/en-US/_lib/formatDistance.js +86 -0
  972. package/dist/node_modules/date-fns/locale/en-US/_lib/formatDistance.js.map +1 -0
  973. package/dist/node_modules/date-fns/locale/en-US/_lib/formatLong.cjs +37 -0
  974. package/dist/node_modules/date-fns/locale/en-US/_lib/formatLong.cjs.map +1 -0
  975. package/dist/node_modules/date-fns/locale/en-US/_lib/formatLong.js +37 -0
  976. package/dist/node_modules/date-fns/locale/en-US/_lib/formatLong.js.map +1 -0
  977. package/dist/node_modules/date-fns/locale/en-US/_lib/formatRelative.cjs +13 -0
  978. package/dist/node_modules/date-fns/locale/en-US/_lib/formatRelative.cjs.map +1 -0
  979. package/dist/node_modules/date-fns/locale/en-US/_lib/formatRelative.js +13 -0
  980. package/dist/node_modules/date-fns/locale/en-US/_lib/formatRelative.js.map +1 -0
  981. package/dist/node_modules/date-fns/locale/en-US/_lib/localize.cjs +165 -0
  982. package/dist/node_modules/date-fns/locale/en-US/_lib/localize.cjs.map +1 -0
  983. package/dist/node_modules/date-fns/locale/en-US/_lib/localize.js +165 -0
  984. package/dist/node_modules/date-fns/locale/en-US/_lib/localize.js.map +1 -0
  985. package/dist/node_modules/date-fns/locale/en-US/_lib/match.cjs +123 -0
  986. package/dist/node_modules/date-fns/locale/en-US/_lib/match.cjs.map +1 -0
  987. package/dist/node_modules/date-fns/locale/en-US/_lib/match.js +123 -0
  988. package/dist/node_modules/date-fns/locale/en-US/_lib/match.js.map +1 -0
  989. package/dist/node_modules/date-fns/locale/en-US.cjs +22 -0
  990. package/dist/node_modules/date-fns/locale/en-US.cjs.map +1 -0
  991. package/dist/node_modules/date-fns/locale/en-US.js +22 -0
  992. package/dist/node_modules/date-fns/locale/en-US.js.map +1 -0
  993. package/dist/node_modules/date-fns/startOfDay.cjs +11 -0
  994. package/dist/node_modules/date-fns/startOfDay.cjs.map +1 -0
  995. package/dist/node_modules/date-fns/startOfDay.js +11 -0
  996. package/dist/node_modules/date-fns/startOfDay.js.map +1 -0
  997. package/dist/node_modules/date-fns/startOfISOWeek.cjs +9 -0
  998. package/dist/node_modules/date-fns/startOfISOWeek.cjs.map +1 -0
  999. package/dist/node_modules/date-fns/startOfISOWeek.js +9 -0
  1000. package/dist/node_modules/date-fns/startOfISOWeek.js.map +1 -0
  1001. package/dist/node_modules/date-fns/startOfISOWeekYear.cjs +15 -0
  1002. package/dist/node_modules/date-fns/startOfISOWeekYear.cjs.map +1 -0
  1003. package/dist/node_modules/date-fns/startOfISOWeekYear.js +15 -0
  1004. package/dist/node_modules/date-fns/startOfISOWeekYear.js.map +1 -0
  1005. package/dist/node_modules/date-fns/startOfWeek.cjs +18 -0
  1006. package/dist/node_modules/date-fns/startOfWeek.cjs.map +1 -0
  1007. package/dist/node_modules/date-fns/startOfWeek.js +18 -0
  1008. package/dist/node_modules/date-fns/startOfWeek.js.map +1 -0
  1009. package/dist/node_modules/date-fns/startOfWeekYear.cjs +20 -0
  1010. package/dist/node_modules/date-fns/startOfWeekYear.cjs.map +1 -0
  1011. package/dist/node_modules/date-fns/startOfWeekYear.js +20 -0
  1012. package/dist/node_modules/date-fns/startOfWeekYear.js.map +1 -0
  1013. package/dist/node_modules/date-fns/startOfYear.cjs +12 -0
  1014. package/dist/node_modules/date-fns/startOfYear.cjs.map +1 -0
  1015. package/dist/node_modules/date-fns/startOfYear.js +12 -0
  1016. package/dist/node_modules/date-fns/startOfYear.js.map +1 -0
  1017. package/dist/node_modules/date-fns/toDate.cjs +9 -0
  1018. package/dist/node_modules/date-fns/toDate.cjs.map +1 -0
  1019. package/dist/node_modules/date-fns/toDate.js +9 -0
  1020. package/dist/node_modules/date-fns/toDate.js.map +1 -0
  1021. package/dist/notifications.server.cjs +552 -0
  1022. package/dist/notifications.server.js +511 -621
  1023. package/dist/orders.server.cjs +820 -0
  1024. package/dist/orders.server.js +733 -838
  1025. package/dist/organizations.server.cjs +1493 -0
  1026. package/dist/organizations.server.js +1301 -1414
  1027. package/dist/ownership.schema-CCZX5vfw.js +43 -0
  1028. package/dist/ownership.schema-DCosqOc1.cjs +42 -0
  1029. package/dist/pages.server.cjs +142 -0
  1030. package/dist/pages.server.js +125 -160
  1031. package/dist/products.server.cjs +2635 -0
  1032. package/dist/products.server.js +2528 -1273
  1033. package/dist/profile.schema-DchVS-Jr.js +21 -0
  1034. package/dist/profile.schema-yQuIzngl.cjs +20 -0
  1035. package/dist/queryProcessor-B_X680wC.cjs +332 -0
  1036. package/dist/queryProcessor-CVcLPEnv.js +333 -0
  1037. package/dist/rents.server.cjs +487 -0
  1038. package/dist/rents.server.js +462 -480
  1039. package/dist/reports.server.cjs +133 -0
  1040. package/dist/reports.server.js +97 -150
  1041. package/dist/spots.server.cjs +331 -0
  1042. package/dist/spots.server.js +301 -349
  1043. package/dist/style.css +854 -724
  1044. package/dist/{tickets.controller-zEHIAe_B.js → tickets.controller-D0V0gJCA.cjs} +239 -263
  1045. package/dist/{tickets.controller-BIhfgjNb.mjs → tickets.controller-DQQcjyui.js} +222 -263
  1046. package/dist/wallet.server.cjs +528 -0
  1047. package/dist/wallet.server.js +473 -666
  1048. package/package.json +7 -6
  1049. package/src/builder/builder.js +19 -14
  1050. package/src/builder/modes/spa.dev.js +16 -39
  1051. package/src/builder/modes/spa.prod.js +15 -26
  1052. package/src/builder/modes/ssr.dev.js +123 -107
  1053. package/src/builder/modes/ssr.prod.js +19 -38
  1054. package/src/builder/modes/ssr.rspack.dev.js +70 -66
  1055. package/src/builder/modes/ssr.vite.dev.js +45 -71
  1056. package/src/builder/rspack/index.js +10 -8
  1057. package/src/builder/rspack/rspack.config.api.js +59 -0
  1058. package/src/builder/rspack/rspack.config.base.js +28 -11
  1059. package/src/builder/rspack/{rspack.config.spa.js → rspack.config.spa.client.js} +21 -26
  1060. package/src/builder/rspack/{rspack.config.client.js → rspack.config.ssr.client.js} +9 -13
  1061. package/src/builder/rspack/{rspack.config.ssr.js → rspack.config.ssr.server.js} +22 -10
  1062. package/src/builder/ssr/ssr-render-html.js +13 -12
  1063. package/src/builder/ssr/ssr-transform-webpack-stats.js +37 -25
  1064. package/src/builder/ssr/utils.js +7 -14
  1065. package/src/builder/templates/page.js +2 -2
  1066. package/src/builder/templates/screen.js +2 -2
  1067. package/src/builder/utils/hot-reload.js +1 -1
  1068. package/src/builder/vite/index.js +8 -8
  1069. package/src/builder/vite/vite.config.base.js +37 -47
  1070. package/src/builder/vite/vite.config.client.js +42 -64
  1071. package/src/builder/vite/vite.config.server.js +14 -24
  1072. package/src/builder/vite/vite.config.spa.js +37 -46
  1073. package/src/builder/vite/vite.config.ssr.js +44 -60
  1074. package/src/builder/webpack/index.js +7 -7
  1075. package/src/builder/webpack/webpack.config.base.js +54 -39
  1076. package/src/builder/webpack/webpack.config.client.js +36 -47
  1077. package/src/builder/webpack/webpack.config.server.js +23 -17
  1078. package/src/builder/webpack/webpack.config.spa.js +22 -28
  1079. package/src/builder/webpack/webpack.config.ssr.js +33 -30
  1080. package/src/components/Button/Button.vue +8 -3
  1081. package/src/components/Chips/Chips.vue +1 -1
  1082. package/src/components/Dropdown/Dropdown.vue +1 -1
  1083. package/src/components/Feed/Feed.vue +156 -63
  1084. package/src/components/Field/Field.vue +82 -75
  1085. package/src/components/FieldPhone/FieldPhone.vue +2 -2
  1086. package/src/components/FieldPhone/all-countries.js +247 -3
  1087. package/src/components/FieldPhone/click-outside.js +1 -1
  1088. package/src/components/FieldPhone/utils.js +263 -262
  1089. package/src/components/FieldTags/FieldTags.vue +375 -25
  1090. package/src/components/FieldTags/create-tags.js +15 -15
  1091. package/src/components/FieldTags/vue-tags-input.props.js +2 -9
  1092. package/src/components/Map/LoaderGMaps.js +4 -4
  1093. package/src/components/Popup/Popup.vue +142 -89
  1094. package/src/components/Select/Select.vue +2 -4
  1095. package/src/components/SelectMulti/SelectMulti.vue +911 -656
  1096. package/src/components/Table/Table.vue +21 -64
  1097. package/src/components/UploadImageMultiple/UploadImageMultiple.vue +4 -4
  1098. package/src/components/index.js +10 -10
  1099. package/src/configurator/router/configurator.router.js +10 -8
  1100. package/src/main.js +79 -80
  1101. package/src/modules/auth/auth.client.js +17 -18
  1102. package/src/modules/auth/auth.server.js +32 -42
  1103. package/src/modules/auth/controllers/middlewares/authJwt.js +16 -34
  1104. package/src/modules/auth/controllers/middlewares/authSecret.js +2 -8
  1105. package/src/modules/auth/controllers/middlewares/index.js +15 -10
  1106. package/src/modules/auth/controllers/middlewares/verifyInvites.js +13 -21
  1107. package/src/modules/auth/controllers/middlewares/verifySignUp.js +7 -16
  1108. package/src/modules/auth/controllers/middlewares/verifyUser.js +20 -31
  1109. package/src/modules/auth/controllers/middlewares/visitor.logger.js +10 -23
  1110. package/src/modules/auth/controllers/routes/auth.routes.js +9 -29
  1111. package/src/modules/auth/controllers/routes/twofa.routes.js +6 -23
  1112. package/src/modules/auth/controllers/routes/users.routes.js +8 -39
  1113. package/src/modules/auth/controllers/services/auth.service.js +49 -82
  1114. package/src/modules/auth/controllers/services/twofa.service.js +6 -13
  1115. package/src/modules/auth/controllers/services/users.service.js +31 -70
  1116. package/src/modules/auth/controllers/utils/verifyAppleIdToken.js +47 -54
  1117. package/src/modules/auth/models/request.model.js +5 -9
  1118. package/src/modules/auth/models/role.model.js +3 -7
  1119. package/src/modules/auth/models/user.model.js +39 -41
  1120. package/src/modules/auth/models/visitor.model.js +3 -6
  1121. package/src/modules/auth/views/components/layouts/Auth.vue +1 -1
  1122. package/src/modules/auth/views/components/pages/EnterCode.vue +3 -3
  1123. package/src/modules/auth/views/components/pages/EnterPassword.vue +1 -1
  1124. package/src/modules/auth/views/components/pages/Invite.vue +2 -2
  1125. package/src/modules/auth/views/components/pages/Profile.vue +3 -3
  1126. package/src/modules/auth/views/components/pages/ProfileBlogposts.vue +3 -3
  1127. package/src/modules/auth/views/components/pages/ProfileEdit.vue +3 -3
  1128. package/src/modules/auth/views/components/pages/ResetPassword.vue +3 -3
  1129. package/src/modules/auth/views/components/pages/SignIn.vue +2 -2
  1130. package/src/modules/auth/views/components/pages/SignUp.vue +3 -3
  1131. package/src/modules/auth/views/components/sections/FeaturedUsers.vue +1 -1
  1132. package/src/modules/auth/views/components/sections/ProfileEditCredentials.vue +2 -2
  1133. package/src/modules/auth/views/localization/EnterCode.json +1 -1
  1134. package/src/modules/auth/views/localization/EnterPassword.json +1 -1
  1135. package/src/modules/auth/views/localization/ResetPassword.json +1 -1
  1136. package/src/modules/auth/views/localization/SignUp.json +1 -1
  1137. package/src/modules/auth/views/middlewares/auth.validation.js +16 -29
  1138. package/src/modules/auth/views/middlewares/ownership.validation.js +9 -14
  1139. package/src/modules/auth/views/router/auth.js +66 -77
  1140. package/src/modules/auth/views/router/users.js +87 -89
  1141. package/src/modules/auth/views/store/auth.js +41 -39
  1142. package/src/modules/auth/views/store/twofa.js +44 -42
  1143. package/src/modules/auth/views/store/users.js +22 -26
  1144. package/src/modules/auth/views/validations/inputs.validation.js +53 -59
  1145. package/src/modules/backoffice/backoffice.client.js +8 -8
  1146. package/src/modules/backoffice/components/pages/Dashboard.vue +3 -3
  1147. package/src/modules/backoffice/components/partials/Sidebar.vue +2 -2
  1148. package/src/modules/backoffice/router/backoffice.js +49 -49
  1149. package/src/modules/chats/chats.client.js +9 -9
  1150. package/src/modules/chats/chats.server.js +18 -23
  1151. package/src/modules/chats/controllers/chats.controller.js +8 -15
  1152. package/src/modules/chats/models/chat.model.js +6 -9
  1153. package/src/modules/chats/routes/chats.routes.js +12 -20
  1154. package/src/modules/chats/store/chat.store.js +14 -11
  1155. package/src/modules/community/community.client.js +13 -26
  1156. package/src/modules/community/community.server.js +30 -35
  1157. package/src/modules/community/components/blocks/FooterBlogpost.vue +1 -1
  1158. package/src/modules/community/components/layouts/Community.vue +6 -4
  1159. package/src/modules/community/components/pages/Blog.vue +1 -1
  1160. package/src/modules/community/components/pages/BlogPost.vue +1 -1
  1161. package/src/modules/community/components/pages/CreateBlogPost.vue +5 -5
  1162. package/src/modules/community/components/sections/Comment.vue +2 -2
  1163. package/src/modules/community/components/sections/HotPosts.vue +1 -1
  1164. package/src/modules/community/controllers/blog.controller.js +103 -139
  1165. package/src/modules/community/controllers/comments.controller.js +79 -124
  1166. package/src/modules/community/controllers/reactions.controller.js +32 -59
  1167. package/src/modules/community/controllers/utils/queryProcessor.js +13 -17
  1168. package/src/modules/community/controllers/utils/queryProcessorReactions.js +28 -34
  1169. package/src/modules/community/middlewares/server/index.js +7 -5
  1170. package/src/modules/community/middlewares/server/verifyBlogpost.js +9 -14
  1171. package/src/modules/community/models/blogpost.model.js +33 -34
  1172. package/src/modules/community/models/comment.model.js +48 -50
  1173. package/src/modules/community/models/reaction.model.js +48 -46
  1174. package/src/modules/community/router/blogposts.js +52 -50
  1175. package/src/modules/community/routes/blog.routes.js +15 -49
  1176. package/src/modules/community/routes/comments.routes.js +14 -44
  1177. package/src/modules/community/routes/reactions.routes.js +10 -43
  1178. package/src/modules/community/store/blogposts.js +54 -59
  1179. package/src/modules/community/store/reactions.js +9 -13
  1180. package/src/modules/constructor/components/elements/Embed.vue +3 -3
  1181. package/src/modules/constructor/components/elements/ImageUpload.vue +3 -3
  1182. package/src/modules/core/classes/event.js +48 -0
  1183. package/src/modules/core/classes/memory-tracker.js +1063 -0
  1184. package/src/modules/{globals/views/core → core/classes}/module-manager.js +43 -46
  1185. package/src/modules/{globals/views/core → core/classes}/module.js +52 -53
  1186. package/src/modules/core/model/Adapter.js +17 -0
  1187. package/src/modules/core/model/Adapter.mogodb.js +65 -0
  1188. package/src/modules/core/model/Adapter.postgre.js +127 -0
  1189. package/src/modules/core/model/Model.js +99 -0
  1190. package/src/modules/core/model/Schema.js +70 -0
  1191. package/src/modules/core/model/Validation.js +97 -0
  1192. package/src/modules/events/components/elements/ButtonCheck.vue +1 -1
  1193. package/src/modules/events/components/elements/ButtonJoin.vue +2 -2
  1194. package/src/modules/events/components/pages/EditEvent.vue +5 -5
  1195. package/src/modules/events/components/pages/EditEventTickets.vue +3 -3
  1196. package/src/modules/events/components/pages/Event.vue +1 -2
  1197. package/src/modules/events/components/pages/Events.vue +3 -3
  1198. package/src/modules/events/components/pages/EventsBackoffice.vue +1 -1
  1199. package/src/modules/events/components/pages/EventsSearch.vue +1 -1
  1200. package/src/modules/events/components/sections/EventsHot.vue +1 -1
  1201. package/src/modules/events/components/sections/FeaturedEvents.vue +1 -1
  1202. package/src/modules/events/controllers/events.controller.js +90 -155
  1203. package/src/modules/events/controllers/tickets.controller.js +157 -220
  1204. package/src/modules/events/controllers/utils/queryProcessor.js +117 -123
  1205. package/src/modules/events/controllers/utils/templateEmail.js +6 -7
  1206. package/src/modules/events/controllers/utils/templateTicket.js +6 -7
  1207. package/src/modules/events/events.client.js +22 -28
  1208. package/src/modules/events/events.server.js +25 -32
  1209. package/src/modules/events/middlewares/server/index.js +6 -5
  1210. package/src/modules/events/middlewares/server/verifyEvent.js +29 -31
  1211. package/src/modules/events/models/event.model.js +68 -70
  1212. package/src/modules/events/models/ticket.model.js +55 -55
  1213. package/src/modules/events/router/events.js +28 -38
  1214. package/src/modules/events/routes/events.routes.js +15 -49
  1215. package/src/modules/events/routes/tickets.routes.js +7 -21
  1216. package/src/modules/events/store/events.js +41 -50
  1217. package/src/modules/events/store/tickets.js +11 -14
  1218. package/src/modules/files/controllers/files.controller.js +5 -17
  1219. package/src/modules/files/files.server.js +13 -16
  1220. package/src/modules/files/middlewares/server/index.js +7 -5
  1221. package/src/modules/files/middlewares/server/middlewareBusboy.js +62 -123
  1222. package/src/modules/files/routes/files.routes.js +11 -40
  1223. package/src/modules/gallery/components/pages/Gallery.vue +1 -1
  1224. package/src/modules/gallery/components/sections/BackofficeGallery.vue +3 -3
  1225. package/src/modules/gallery/controllers/gallery.controller.js +27 -58
  1226. package/src/modules/gallery/gallery.client.js +11 -11
  1227. package/src/modules/gallery/gallery.server.js +18 -23
  1228. package/src/modules/gallery/models/photo.model.js +27 -29
  1229. package/src/modules/gallery/router/gallery.backoffice.router.js +14 -14
  1230. package/src/modules/gallery/router/gallery.router.js +2 -2
  1231. package/src/modules/gallery/routes/gallery.routes.js +12 -44
  1232. package/src/modules/gallery/store/gallery.js +3 -3
  1233. package/src/modules/globals/controllers/classes/abac/abac.adapter.express.js +194 -0
  1234. package/src/modules/globals/controllers/classes/abac/abac.adapter.ws.js +84 -0
  1235. package/src/modules/globals/controllers/classes/abac/abac.core.js +220 -0
  1236. package/src/modules/globals/controllers/classes/abac/abac.fields.js +376 -0
  1237. package/src/modules/globals/controllers/classes/abac/abac.js +104 -0
  1238. package/src/modules/globals/controllers/classes/abac/abac.policies.js +226 -0
  1239. package/src/modules/globals/controllers/classes/crud/crud.controller.js +314 -0
  1240. package/src/modules/globals/controllers/classes/crud/crud.core.js +230 -0
  1241. package/src/modules/globals/controllers/classes/crud/crud.events.js +209 -0
  1242. package/src/modules/globals/controllers/classes/crud/crud.js +169 -0
  1243. package/src/modules/globals/controllers/classes/crud/crud.policies.js +256 -0
  1244. package/src/modules/globals/controllers/classes/crud/crud.service.js +285 -0
  1245. package/src/modules/globals/controllers/classes/globals.abac.js +69 -120
  1246. package/src/modules/globals/controllers/classes/globals.cache.js +2 -15
  1247. package/src/modules/globals/controllers/classes/globals.crud.js +15 -43
  1248. package/src/modules/globals/controllers/classes/globals.logger.js +2 -6
  1249. package/src/modules/globals/controllers/classes/globals.observer.js +36 -43
  1250. package/src/modules/globals/controllers/classes/globals.validator.js +62 -88
  1251. package/src/modules/globals/controllers/classes/globals.verifier.js +144 -128
  1252. package/src/modules/globals/controllers/classes/globals.webhook.js +1 -3
  1253. package/src/modules/globals/controllers/classes/globals.websocket.js +29 -89
  1254. package/src/modules/globals/controllers/classes/globals.websocket.ws.js +6 -28
  1255. package/src/modules/globals/controllers/policies/globals.policies.js +33 -50
  1256. package/src/modules/globals/controllers/utils/mailing.js +26 -34
  1257. package/src/modules/globals/controllers/utils/parseCookie.js +2 -5
  1258. package/src/modules/globals/controllers/utils/queryProcessor.js +188 -127
  1259. package/src/modules/globals/controllers/utils/seo-friendly-url.js +195 -48
  1260. package/src/modules/globals/controllers/utils/sitemap.js +14 -20
  1261. package/src/modules/globals/globals.client.js +55 -53
  1262. package/src/modules/globals/globals.server.js +22 -14
  1263. package/src/modules/globals/models/schemas/common.schema.js +4 -4
  1264. package/src/modules/globals/models/schemas/credentials.schema.js +3 -3
  1265. package/src/modules/globals/models/schemas/engagement.schema.js +6 -16
  1266. package/src/modules/globals/models/schemas/metadata.schema.js +16 -20
  1267. package/src/modules/globals/models/schemas/ownership.schema.js +16 -13
  1268. package/src/modules/globals/models/schemas/profile.schema.js +6 -7
  1269. package/src/modules/globals/models/schemas/socials.schema.js +9 -9
  1270. package/src/modules/globals/views/classes/globals.store.js +25 -22
  1271. package/src/modules/globals/views/classes/globals.websocket.js +16 -16
  1272. package/src/modules/globals/views/classes/globals.websocket.ws.js +1 -1
  1273. package/src/modules/globals/views/classes/store.js +18 -19
  1274. package/src/modules/globals/views/components/blocks/BlockMultiselect.vue +364 -0
  1275. package/src/modules/globals/views/components/blocks/Card.vue +75 -46
  1276. package/src/modules/globals/views/components/blocks/CardFooter.vue +1 -1
  1277. package/src/modules/globals/views/components/blocks/CardHeader.vue +0 -1
  1278. package/src/modules/globals/views/components/elements/ButtonDate.vue +2 -2
  1279. package/src/modules/globals/views/components/layouts/App.vue +2 -2
  1280. package/src/modules/globals/views/components/layouts/Client.vue +2 -2
  1281. package/src/modules/globals/views/components/partials/BottomNavigationBar.vue +1 -1
  1282. package/src/modules/globals/views/components/partials/Footer.vue +1 -1
  1283. package/src/modules/globals/views/components/partials/Header.vue +3 -3
  1284. package/src/modules/globals/views/components/partials/LocationSelection.vue +1 -1
  1285. package/src/modules/globals/views/components/partials/Navigation.vue +11 -19
  1286. package/src/modules/globals/views/components/partials/NavigationBar.vue +3 -3
  1287. package/src/modules/globals/views/components/partials/Sidebar.vue +1 -1
  1288. package/src/modules/globals/views/localization/get-browser-locale.js +7 -12
  1289. package/src/modules/globals/views/middlewares/localization.js +3 -6
  1290. package/src/modules/globals/views/mixins/mixins.js +152 -134
  1291. package/src/modules/globals/views/plugins/alert.plugin.js +28 -28
  1292. package/src/modules/globals/views/plugins/date-picker.plugin.js +85 -0
  1293. package/src/modules/globals/views/plugins/store-debugger/StoreDebugger.vue +284 -0
  1294. package/src/modules/globals/views/plugins/store-debugger/store-debugger.plugin.js +24 -0
  1295. package/src/modules/globals/views/router/addRoutes.js +15 -17
  1296. package/src/modules/globals/views/router/scrollBehavior.js +17 -13
  1297. package/src/modules/globals/views/store/globals.js +64 -78
  1298. package/src/modules/globals/views/utils/axios-instance.js +1 -1
  1299. package/src/modules/globals/views/utils/vue-app-renderer.js +23 -26
  1300. package/src/modules/governance/controllers/factories/initiatives.controller.js +23 -29
  1301. package/src/modules/governance/controllers/factories/tasks.controller.js +21 -27
  1302. package/src/modules/governance/controllers/factories/votes.controller.js +17 -21
  1303. package/src/modules/governance/controllers/factories/votings.controller.js +25 -32
  1304. package/src/modules/governance/controllers/routes/initiatives.routes.js +10 -12
  1305. package/src/modules/governance/controllers/routes/tasks.routes.js +10 -12
  1306. package/src/modules/governance/controllers/routes/votes.routes.js +8 -10
  1307. package/src/modules/governance/controllers/routes/votings.routes.js +11 -13
  1308. package/src/modules/governance/governance.client.js +7 -7
  1309. package/src/modules/governance/governance.server.js +36 -39
  1310. package/src/modules/governance/models/initiative.model.js +26 -22
  1311. package/src/modules/governance/models/milestone.model.js +86 -82
  1312. package/src/modules/governance/models/task.model.js +48 -45
  1313. package/src/modules/governance/models/vote.model.js +18 -16
  1314. package/src/modules/governance/models/voting.model.js +23 -19
  1315. package/src/modules/governance/views/router/goverance.router.js +56 -80
  1316. package/src/modules/governance/views/store/initiatives.js +8 -11
  1317. package/src/modules/governance/views/store/projects.js +57 -66
  1318. package/src/modules/governance/views/store/tasks.js +9 -14
  1319. package/src/modules/governance/views/store/votes.js +8 -13
  1320. package/src/modules/governance/views/store/votings.js +7 -11
  1321. package/src/modules/icons/actions/IconDuplicate.vue +17 -0
  1322. package/src/modules/icons/entities/IconDiscount.vue +23 -0
  1323. package/src/modules/icons/entities/IconSettings.vue +32 -0
  1324. package/src/modules/icons/icons.client.js +118 -96
  1325. package/src/modules/icons/pages/IconsPage.vue +300 -0
  1326. package/src/modules/icons/router/icons.router.js +34 -0
  1327. package/src/modules/integrations/integrations.service.js +34 -91
  1328. package/src/modules/integrations/openai/openai.globals.js +116 -0
  1329. package/src/modules/integrations/paypal/controllers/webhooks/paypal.webhook.js +15 -19
  1330. package/src/modules/integrations/stripe/controllers/services/stripe.service.js +241 -285
  1331. package/src/modules/integrations/stripe/controllers/webhooks/stripe.webhook.js +8 -17
  1332. package/src/modules/integrations/tinkoff/controllers/services/tinkoff.service.js +111 -119
  1333. package/src/modules/integrations/tinkoff/models/tinkoff.payment.model.js +12 -13
  1334. package/src/modules/inventory/inventory.server.js +23 -0
  1335. package/src/modules/inventory/models/stock.adjustment.model.js +63 -0
  1336. package/src/modules/inventory/models/stock.availability.model.js +56 -0
  1337. package/src/modules/inventory/models/stock.balance.model.js +43 -0
  1338. package/src/modules/inventory/models/stock.inventory.model.js +38 -0
  1339. package/src/modules/inventory/policies/inventory.policies.js +47 -0
  1340. package/src/modules/inventory/routes/inventory.routes.js +61 -0
  1341. package/src/modules/inventory/services/inventory.crud.js +527 -0
  1342. package/src/modules/inventory/services/inventory.verifier.js +81 -0
  1343. package/src/modules/inventory/store/ inventory.store.js +131 -0
  1344. package/src/modules/inventory/workers/inventory.availability.worker.js +300 -0
  1345. package/src/modules/landing/landing.client.js +16 -16
  1346. package/src/modules/marketplace/marketplace.client.js +12 -13
  1347. package/src/modules/marketplace/views/components/layouts/Marketplace.vue +2 -2
  1348. package/src/modules/marketplace/views/components/pages/Catalog.vue +2 -2
  1349. package/src/modules/marketplace/views/components/sections/SectionMenu.vue +2 -2
  1350. package/src/modules/marketplace/views/router/marketplace.router.js +9 -11
  1351. package/src/modules/marketplace/views/store/marketplace.js +33 -29
  1352. package/src/modules/music/components/cards/ArtistCard.vue +62 -15
  1353. package/src/modules/music/components/lists/ArtistList.vue +267 -12
  1354. package/src/modules/music/components/pages/ArtistDetail.vue +375 -189
  1355. package/src/modules/music/components/pages/ArtistForm.vue +426 -0
  1356. package/src/modules/music/components/pages/ArtistManager.vue +277 -0
  1357. package/src/modules/music/components/pages/MusicLibrary.vue +5 -8
  1358. package/src/modules/music/controllers/album.controller.js +15 -31
  1359. package/src/modules/music/controllers/artist.controller.js +29 -41
  1360. package/src/modules/music/controllers/genre.controller.js +23 -31
  1361. package/src/modules/music/controllers/music.controller.js +28 -57
  1362. package/src/modules/music/controllers/playlist.controller.js +20 -56
  1363. package/src/modules/music/controllers/search.controller.js +37 -62
  1364. package/src/modules/music/controllers/stream.controller.js +16 -32
  1365. package/src/modules/music/models/album.model.js +54 -51
  1366. package/src/modules/music/models/artist.model.js +50 -52
  1367. package/src/modules/music/models/genre.model.js +27 -31
  1368. package/src/modules/music/models/play-history.model.js +41 -42
  1369. package/src/modules/music/models/playlist.model.js +54 -54
  1370. package/src/modules/music/models/track.model.js +65 -69
  1371. package/src/modules/music/music.client.js +55 -52
  1372. package/src/modules/music/music.server.js +62 -77
  1373. package/src/modules/music/policies/music.policies.js +9 -29
  1374. package/src/modules/music/router/music.js +38 -19
  1375. package/src/modules/music/routes/album.routes.js +21 -55
  1376. package/src/modules/music/routes/artist.routes.js +22 -59
  1377. package/src/modules/music/routes/genre.routes.js +21 -53
  1378. package/src/modules/music/routes/music.routes.js +74 -113
  1379. package/src/modules/music/routes/playlist.routes.js +36 -88
  1380. package/src/modules/music/routes/search.routes.js +5 -9
  1381. package/src/modules/music/routes/stream.routes.js +23 -34
  1382. package/src/modules/music/store/albums.js +34 -34
  1383. package/src/modules/music/store/artists.js +31 -28
  1384. package/src/modules/music/store/player.js +71 -73
  1385. package/src/modules/music/store/playlists.js +37 -37
  1386. package/src/modules/music/store/search.js +25 -25
  1387. package/src/modules/music/store/tracks.js +40 -45
  1388. package/src/modules/music/websocket/streaming.handler.js +58 -76
  1389. package/src/modules/notifications/components/elements/NotificationBadge.vue +1 -1
  1390. package/src/modules/notifications/components/sections/NotificationsList.vue +1 -1
  1391. package/src/modules/notifications/controllers/notifications.controller.js +32 -62
  1392. package/src/modules/notifications/middlewares/notifications.abac.js +1 -5
  1393. package/src/modules/notifications/models/notification-log.model.js +8 -5
  1394. package/src/modules/notifications/models/notification-preference.model.js +8 -6
  1395. package/src/modules/notifications/models/notification.model.js +2 -3
  1396. package/src/modules/notifications/models/user-device.model.js +3 -5
  1397. package/src/modules/notifications/notifications.client.js +65 -75
  1398. package/src/modules/notifications/notifications.server.js +31 -44
  1399. package/src/modules/notifications/router/notifications.router.js +8 -8
  1400. package/src/modules/notifications/routes/notifications.routes.js +4 -11
  1401. package/src/modules/notifications/services/apns.service.js +4 -13
  1402. package/src/modules/notifications/services/email.service.js +4 -8
  1403. package/src/modules/notifications/services/fcm.service.js +4 -11
  1404. package/src/modules/notifications/services/notification.service.js +49 -84
  1405. package/src/modules/notifications/services/sms.service.js +4 -7
  1406. package/src/modules/notifications/services/telegram.service.js +4 -7
  1407. package/src/modules/notifications/services/web-push.service.js +14 -23
  1408. package/src/modules/notifications/services/whatsapp.service.js +4 -11
  1409. package/src/modules/notifications/store/notifications.store.js +50 -55
  1410. package/src/modules/orders/components/pages/OrderBackoffice.vue +5 -5
  1411. package/src/modules/orders/components/pages/OrderCreate.vue +6 -6
  1412. package/src/modules/orders/components/pages/OrderCreateBackoffice.vue +5 -5
  1413. package/src/modules/orders/components/pages/Orders.vue +2 -2
  1414. package/src/modules/orders/components/partials/ShopCart.vue +3 -3
  1415. package/src/modules/orders/components/sections/FormAddCustomer.vue +5 -5
  1416. package/src/modules/orders/components/sections/FormDelivery.vue +2 -2
  1417. package/src/modules/orders/controllers/applications.controller.js +37 -67
  1418. package/src/modules/orders/controllers/orders.controller.js +96 -155
  1419. package/src/modules/orders/controllers/testimonials.controller.js +22 -31
  1420. package/src/modules/orders/models/application.model.js +25 -24
  1421. package/src/modules/orders/models/customer.model.js +61 -55
  1422. package/src/modules/orders/models/order.model.js +80 -81
  1423. package/src/modules/orders/models/testimonial.model.js +7 -9
  1424. package/src/modules/orders/orders.client.js +24 -26
  1425. package/src/modules/orders/orders.server.js +27 -32
  1426. package/src/modules/orders/router/orders.router.js +21 -22
  1427. package/src/modules/orders/routes/applications.routes.js +10 -40
  1428. package/src/modules/orders/routes/orders.routes.js +8 -19
  1429. package/src/modules/orders/routes/testimonials.routes.js +9 -29
  1430. package/src/modules/orders/store/applications.js +34 -39
  1431. package/src/modules/orders/store/customers.store.js +3 -3
  1432. package/src/modules/orders/store/models/customer.js +5 -5
  1433. package/src/modules/orders/store/models/order.js +4 -4
  1434. package/src/modules/orders/store/orders.js +61 -76
  1435. package/src/modules/orders/store/shopcart.js +150 -98
  1436. package/src/modules/orders/store/testimonials.js +7 -10
  1437. package/src/modules/organizations/components/elements/ButtonToggleMembership.vue +2 -2
  1438. package/src/modules/organizations/components/pages/Department.vue +1 -1
  1439. package/src/modules/organizations/components/pages/DepartmentEdit.vue +3 -3
  1440. package/src/modules/organizations/components/pages/Members.vue +6 -6
  1441. package/src/modules/organizations/components/pages/Organization.vue +9 -9
  1442. package/src/modules/organizations/components/pages/OrganizationBackoffice.vue +2 -2
  1443. package/src/modules/organizations/components/pages/OrganizationCreate.vue +2 -2
  1444. package/src/modules/organizations/components/pages/OrganizationDetails.vue +2 -2
  1445. package/src/modules/organizations/components/pages/OrganizationEdit.vue +3 -3
  1446. package/src/modules/organizations/components/pages/OrganizationPeople.vue +1 -1
  1447. package/src/modules/organizations/components/pages/Organizations.vue +2 -2
  1448. package/src/modules/organizations/components/sections/DetailsTabSection.vue +2 -2
  1449. package/src/modules/organizations/components/sections/MembersAdd.vue +1 -1
  1450. package/src/modules/organizations/components/sections/Organizations.vue +3 -3
  1451. package/src/modules/organizations/components/sections/Publics.vue +3 -3
  1452. package/src/modules/organizations/configs/navigation.organization.config.js +227 -0
  1453. package/src/modules/organizations/controllers/departments.controller.js +11 -22
  1454. package/src/modules/organizations/controllers/invites.controller.js +14 -30
  1455. package/src/modules/organizations/controllers/memberships.controller.js +21 -54
  1456. package/src/modules/organizations/controllers/organizations.controller.js +32 -83
  1457. package/src/modules/organizations/controllers/utils/addMembersQuantity.js +11 -12
  1458. package/src/modules/organizations/controllers/utils/addUserStatusFields.js +31 -41
  1459. package/src/modules/organizations/controllers/utils/lookupConfigs.js +31 -31
  1460. package/src/modules/organizations/controllers/utils/queryProcessor.js +40 -51
  1461. package/src/modules/organizations/controllers/utils/queryProcessorOrganizations.js +124 -147
  1462. package/src/modules/organizations/middlewares/verifyAccesses.js +7 -25
  1463. package/src/modules/organizations/middlewares/verifyAccessesRefactored.js +26 -51
  1464. package/src/modules/organizations/models/department.model.js +58 -59
  1465. package/src/modules/organizations/models/invite.model.js +45 -42
  1466. package/src/modules/organizations/models/membership.model.js +35 -35
  1467. package/src/modules/organizations/models/organization.model.js +65 -80
  1468. package/src/modules/organizations/models/schemas/accesses.schema.js +1 -2
  1469. package/src/modules/organizations/organizations.client.js +45 -46
  1470. package/src/modules/organizations/organizations.server.js +40 -41
  1471. package/src/modules/organizations/policies/organizations.policies.js +193 -85
  1472. package/src/modules/organizations/router/backoffice.router.js +22 -20
  1473. package/src/modules/organizations/router/departments.router.js +27 -23
  1474. package/src/modules/organizations/router/members.router.js +18 -18
  1475. package/src/modules/organizations/router/organizations.js +74 -66
  1476. package/src/modules/organizations/routes/departments.routes.js +9 -20
  1477. package/src/modules/organizations/routes/invites.routes.js +9 -31
  1478. package/src/modules/organizations/routes/memberships.routes.js +7 -23
  1479. package/src/modules/organizations/routes/organizations.routes.js +15 -40
  1480. package/src/modules/organizations/store/departments.js +13 -14
  1481. package/src/modules/organizations/store/invites.js +38 -41
  1482. package/src/modules/organizations/store/memberships.js +21 -26
  1483. package/src/modules/organizations/store/organizations.js +40 -46
  1484. package/src/modules/pages/controllers/factories/pages.factory.js +6 -27
  1485. package/src/modules/pages/controllers/routes/pages.routes.js +7 -23
  1486. package/src/modules/pages/models/page.model.js +22 -20
  1487. package/src/modules/pages/pages.client.js +12 -12
  1488. package/src/modules/pages/pages.server.js +18 -21
  1489. package/src/modules/pages/views/components/pages/Page.vue +1 -1
  1490. package/src/modules/pages/views/components/pages/Pages.vue +1 -1
  1491. package/src/modules/pages/views/components/partials/SidebarPages.vue +1 -1
  1492. package/src/modules/pages/views/router/pages.backoffice.router.js +29 -29
  1493. package/src/modules/pages/views/router/pages.router.js +16 -14
  1494. package/src/modules/pages/views/store/pages.js +12 -11
  1495. package/src/modules/pages/views/store/pages.store.js +3 -3
  1496. package/src/modules/products/components/blocks/CardLeftover.vue +1 -1
  1497. package/src/modules/products/components/blocks/CardPosition.vue +94 -157
  1498. package/src/modules/products/components/blocks/CardProduct.vue +5 -5
  1499. package/src/modules/products/components/blocks/ProductDiscounts.vue +141 -0
  1500. package/src/modules/products/components/blocks/{ImagesThumbnails.vue → ProductImages.vue} +3 -4
  1501. package/src/modules/products/components/blocks/ProductVariants.vue +125 -0
  1502. package/src/modules/products/components/elements/Price.vue +34 -37
  1503. package/src/modules/products/components/elements/QuantitySelector.vue +52 -0
  1504. package/src/modules/products/components/elements/THC.vue +6 -6
  1505. package/src/modules/products/components/forms/ColumnSettingsMenu.vue +80 -0
  1506. package/src/modules/products/components/forms/ReorderSettingsForm.vue +107 -0
  1507. package/src/modules/products/components/forms/StockAuditForm.vue +154 -0
  1508. package/src/modules/products/components/forms/StockHistoryView.vue +134 -0
  1509. package/src/modules/products/components/pages/Categories.vue +5 -5
  1510. package/src/modules/products/components/pages/CategoryEdit.vue +8 -44
  1511. package/src/modules/products/components/pages/LeftoverEdit.vue +360 -0
  1512. package/src/modules/products/components/pages/Leftovers.vue +288 -131
  1513. package/src/modules/products/components/pages/Product.vue +171 -100
  1514. package/src/modules/products/components/pages/ProductEdit.vue +329 -461
  1515. package/src/modules/products/components/pages/ProductRecommmendation.vue +2 -2
  1516. package/src/modules/products/components/pages/Products.vue +7 -7
  1517. package/src/modules/products/components/sections/EditAttributes.vue +154 -0
  1518. package/src/modules/products/components/sections/EditCategories.vue +149 -0
  1519. package/src/modules/products/components/sections/EditDiscounts.vue +308 -0
  1520. package/src/modules/products/components/sections/EditIngredients.vue +130 -0
  1521. package/src/modules/products/components/sections/EditVariants.vue +453 -0
  1522. package/src/modules/products/components/sections/FilterProducts.vue +4 -4
  1523. package/src/modules/products/components/sections/HeroRecommendation.vue +1 -1
  1524. package/src/modules/products/components/sections/PopularProducts.vue +2 -2
  1525. package/src/modules/products/components/sections/ProductConfigurator.vue +131 -0
  1526. package/src/modules/products/components/sections/SectionProduct.vue +17 -17
  1527. package/src/modules/products/controllers/categories.controller.js +45 -143
  1528. package/src/modules/products/controllers/configs/products.lookup.config.js +135 -0
  1529. package/src/modules/products/controllers/leftovers.controller.js +38 -62
  1530. package/src/modules/products/controllers/products.controller.js +103 -364
  1531. package/src/modules/products/controllers/queries/products.queries.js +112 -0
  1532. package/src/modules/products/middlewares/categories.verifier.js +94 -72
  1533. package/src/modules/products/middlewares/variants.verifier.js +226 -0
  1534. package/src/modules/products/models/category.model.js +26 -22
  1535. package/src/modules/products/models/leftover.model.js +61 -44
  1536. package/src/modules/products/models/product.model.js +54 -119
  1537. package/src/modules/products/models/schemas/discount.schema.js +33 -0
  1538. package/src/modules/products/models/schemas/ingredient.schema.js +46 -0
  1539. package/src/modules/products/models/variant.model.js +66 -0
  1540. package/src/modules/products/products.client.js +31 -41
  1541. package/src/modules/products/products.server.js +34 -35
  1542. package/src/modules/products/router/categories.router.js +34 -30
  1543. package/src/modules/products/router/leftovers.router.js +32 -30
  1544. package/src/modules/products/router/products.router.js +18 -21
  1545. package/src/modules/products/routes/categories.routes.js +13 -52
  1546. package/src/modules/products/routes/leftovers.routes.js +9 -27
  1547. package/src/modules/products/routes/products.routes.js +8 -27
  1548. package/src/modules/products/routes/variants.routes.js +102 -0
  1549. package/src/modules/products/store/categories.js +24 -23
  1550. package/src/modules/products/store/leftovers.js +53 -17
  1551. package/src/modules/products/store/products.js +73 -125
  1552. package/src/modules/products/store/variants.store.js +5 -0
  1553. package/src/modules/rents/controllers/routes/rents.routes.js +12 -21
  1554. package/src/modules/rents/controllers/services/rents.services.js +183 -239
  1555. package/src/modules/rents/models/rent.model.js +27 -17
  1556. package/src/modules/rents/rents.client.js +5 -10
  1557. package/src/modules/rents/rents.server.js +15 -21
  1558. package/src/modules/rents/views/components/pages/RentsEdit.vue +2 -2
  1559. package/src/modules/rents/views/router/rents.router.js +11 -20
  1560. package/src/modules/rents/views/store/rents.store.js +33 -33
  1561. package/src/modules/reports/components/sections/FormReport.vue +1 -1
  1562. package/src/modules/reports/controllers/reports.controller.js +17 -26
  1563. package/src/modules/reports/models/report.model.js +39 -56
  1564. package/src/modules/reports/reports.client.js +8 -8
  1565. package/src/modules/reports/reports.server.js +17 -22
  1566. package/src/modules/reports/routes/reports.routes.js +7 -28
  1567. package/src/modules/reports/store/reports.js +15 -17
  1568. package/src/modules/spots/components/blocks/CardSpot.vue +73 -58
  1569. package/src/modules/spots/components/layouts/Spots.vue +3 -3
  1570. package/src/modules/spots/components/pages/Map.vue +3 -3
  1571. package/src/modules/spots/components/pages/SpotEdit.vue +1 -1
  1572. package/src/modules/spots/controllers/queries/getIsOpenNowStage.js +49 -65
  1573. package/src/modules/spots/controllers/spots.controller.js +25 -43
  1574. package/src/modules/spots/models/spot.model.js +45 -52
  1575. package/src/modules/spots/router/spots.js +22 -26
  1576. package/src/modules/spots/routes/spots.routes.js +8 -16
  1577. package/src/modules/spots/spots.client.js +6 -6
  1578. package/src/modules/spots/spots.server.js +17 -20
  1579. package/src/modules/spots/store/spots.js +11 -14
  1580. package/src/modules/wallet/controllers/factories/payments.factory.js +15 -42
  1581. package/src/modules/wallet/controllers/factories/rewards.factory.js +56 -134
  1582. package/src/modules/wallet/controllers/routes/payments.routes.js +45 -80
  1583. package/src/modules/wallet/controllers/routes/rewards.routes.js +10 -50
  1584. package/src/modules/wallet/models/payment.model.js +26 -27
  1585. package/src/modules/wallet/models/reward.model.js +3 -4
  1586. package/src/modules/wallet/models/wallet.model.js +10 -9
  1587. package/src/modules/wallet/views/router/payments.router.js +24 -23
  1588. package/src/modules/wallet/views/store/payments.store.js +6 -6
  1589. package/src/modules/wallet/views/store/wallet.store.js +28 -35
  1590. package/src/modules/wallet/wallet.server.js +25 -27
  1591. package/src/styles/typography.scss +24 -0
  1592. package/dist/Media-DmnrxIEI.js +0 -1
  1593. package/dist/_commonjsHelpers-CUmg6egw.mjs +0 -6
  1594. package/dist/_commonjsHelpers-DHfMLFPC.js +0 -5
  1595. package/dist/addMembersQuantity-DBfuUEx_.mjs +0 -113
  1596. package/dist/addMembersQuantity-DxWjHK1K.js +0 -112
  1597. package/dist/auth.server.mjs +0 -764
  1598. package/dist/authJwt-CELQKF2s.js +0 -82
  1599. package/dist/authJwt-DnXu3BFq.mjs +0 -83
  1600. package/dist/builder.mjs +0 -1502
  1601. package/dist/chats.server.mjs +0 -137
  1602. package/dist/common.schema-C2m3O1XY.mjs +0 -20
  1603. package/dist/common.schema-O0w_rDyC.js +0 -19
  1604. package/dist/community.server.mjs +0 -1068
  1605. package/dist/credentials.schema-BmOPv6FD.js +0 -16
  1606. package/dist/credentials.schema-oOC8B5KL.mjs +0 -17
  1607. package/dist/engagement.schema-DAiXsvh1.js +0 -33
  1608. package/dist/engagement.schema-DnDD7Bn3.mjs +0 -34
  1609. package/dist/events.server.mjs +0 -1060
  1610. package/dist/files.server.mjs +0 -339
  1611. package/dist/gallery.server.mjs +0 -337
  1612. package/dist/globals.abac-Bn-4tbX8.js +0 -303
  1613. package/dist/globals.abac-DZpTRxKR.mjs +0 -304
  1614. package/dist/globals.cache-BT6q3vOf.mjs +0 -140
  1615. package/dist/globals.cache-CwWvNGFQ.js +0 -139
  1616. package/dist/globals.logger-BdjooLaD.js +0 -34
  1617. package/dist/globals.logger-DusiFsxN.mjs +0 -35
  1618. package/dist/globals.server.mjs +0 -453
  1619. package/dist/globals.verifier-BdJxc8-8.mjs +0 -609
  1620. package/dist/globals.verifier-CKYpYfQl.js +0 -608
  1621. package/dist/index-BOmxJQ5W.js +0 -205
  1622. package/dist/index-C_Fw0Umg.mjs +0 -206
  1623. package/dist/mailing-D4kWlk3_.js +0 -93
  1624. package/dist/mailing-DvCT5ijo.mjs +0 -94
  1625. package/dist/main-DxWqDgs1.js +0 -11
  1626. package/dist/martyrs/src/components/Chips/Chips.vue.cjs.map +0 -1
  1627. package/dist/martyrs/src/components/Chips/Chips.vue.js.map +0 -1
  1628. package/dist/martyrs/src/components/Dropdown/Dropdown.vue.cjs.map +0 -1
  1629. package/dist/martyrs/src/components/Dropdown/Dropdown.vue.js.map +0 -1
  1630. package/dist/martyrs/src/components/FieldTags/vue-tags-input.cjs +0 -292
  1631. package/dist/martyrs/src/components/FieldTags/vue-tags-input.cjs.map +0 -1
  1632. package/dist/martyrs/src/components/FieldTags/vue-tags-input.js +0 -292
  1633. package/dist/martyrs/src/components/FieldTags/vue-tags-input.js.map +0 -1
  1634. package/dist/martyrs/src/components/Menu/Menu.vue.cjs.map +0 -1
  1635. package/dist/martyrs/src/components/Menu/Menu.vue.js.map +0 -1
  1636. package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue.cjs +0 -450
  1637. package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue.cjs.map +0 -1
  1638. package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue.js +0 -450
  1639. package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue.js.map +0 -1
  1640. package/dist/martyrs/src/components/SelectMulti/multiselectMixin.cjs +0 -633
  1641. package/dist/martyrs/src/components/SelectMulti/multiselectMixin.cjs.map +0 -1
  1642. package/dist/martyrs/src/components/SelectMulti/multiselectMixin.js +0 -633
  1643. package/dist/martyrs/src/components/SelectMulti/multiselectMixin.js.map +0 -1
  1644. package/dist/martyrs/src/components/SelectMulti/pointerMixin.cjs +0 -117
  1645. package/dist/martyrs/src/components/SelectMulti/pointerMixin.cjs.map +0 -1
  1646. package/dist/martyrs/src/components/SelectMulti/pointerMixin.js +0 -117
  1647. package/dist/martyrs/src/components/SelectMulti/pointerMixin.js.map +0 -1
  1648. package/dist/martyrs/src/components/Table/TableCell.vue.cjs +0 -59
  1649. package/dist/martyrs/src/components/Table/TableCell.vue.cjs.map +0 -1
  1650. package/dist/martyrs/src/components/Table/TableCell.vue.js +0 -59
  1651. package/dist/martyrs/src/components/Table/TableCell.vue.js.map +0 -1
  1652. package/dist/martyrs/src/components/Tooltip/Tooltip.vue.js.map +0 -1
  1653. package/dist/martyrs/src/modules/globals/views/plugins/AlertDialog.vue.cjs.map +0 -1
  1654. package/dist/martyrs/src/modules/globals/views/plugins/AlertDialog.vue.js.map +0 -1
  1655. package/dist/martyrs/src/modules/products/components/blocks/ImagesThumbnails.vue.cjs.map +0 -1
  1656. package/dist/martyrs/src/modules/products/components/blocks/ImagesThumbnails.vue.js.map +0 -1
  1657. package/dist/martyrs/src/modules/products/components/blocks/LeftoverPositions.vue.cjs +0 -65
  1658. package/dist/martyrs/src/modules/products/components/blocks/LeftoverPositions.vue.cjs.map +0 -1
  1659. package/dist/martyrs/src/modules/products/components/blocks/LeftoverPositions.vue.js +0 -65
  1660. package/dist/martyrs/src/modules/products/components/blocks/LeftoverPositions.vue.js.map +0 -1
  1661. package/dist/martyrs/src/modules/products/components/blocks/ListPositions.vue.cjs +0 -49
  1662. package/dist/martyrs/src/modules/products/components/blocks/ListPositions.vue.cjs.map +0 -1
  1663. package/dist/martyrs/src/modules/products/components/blocks/ListPositions.vue.js +0 -49
  1664. package/dist/martyrs/src/modules/products/components/blocks/ListPositions.vue.js.map +0 -1
  1665. package/dist/martyrs/src/modules/products/components/pages/EditLeftover.vue.cjs +0 -237
  1666. package/dist/martyrs/src/modules/products/components/pages/EditLeftover.vue.cjs.map +0 -1
  1667. package/dist/martyrs/src/modules/products/components/pages/EditLeftover.vue.js +0 -237
  1668. package/dist/martyrs/src/modules/products/components/pages/EditLeftover.vue.js.map +0 -1
  1669. package/dist/martyrs/src/modules/products/components/sections/EditModifications.vue.cjs +0 -152
  1670. package/dist/martyrs/src/modules/products/components/sections/EditModifications.vue.cjs.map +0 -1
  1671. package/dist/martyrs/src/modules/products/components/sections/EditModifications.vue.js +0 -152
  1672. package/dist/martyrs/src/modules/products/components/sections/EditModifications.vue.js.map +0 -1
  1673. package/dist/martyrs/src/modules/products/components/sections/EditProductInfo.vue.cjs +0 -120
  1674. package/dist/martyrs/src/modules/products/components/sections/EditProductInfo.vue.cjs.map +0 -1
  1675. package/dist/martyrs/src/modules/products/components/sections/EditProductInfo.vue.js +0 -120
  1676. package/dist/martyrs/src/modules/products/components/sections/EditProductInfo.vue.js.map +0 -1
  1677. package/dist/metadata.schema--tle-GU8.mjs +0 -282
  1678. package/dist/metadata.schema-CUkLXZ2f.js +0 -281
  1679. package/dist/notifications.server.mjs +0 -663
  1680. package/dist/orders.server.mjs +0 -926
  1681. package/dist/organizations.server.mjs +0 -1590
  1682. package/dist/ownership.schema-CNCotD3D.mjs +0 -50
  1683. package/dist/ownership.schema-MxfJlPtq.js +0 -49
  1684. package/dist/pages.server.mjs +0 -178
  1685. package/dist/products.server.mjs +0 -1381
  1686. package/dist/profile.schema-BLSuV_VC.js +0 -27
  1687. package/dist/profile.schema-BRuvQ7QV.mjs +0 -28
  1688. package/dist/queryProcessor-CVKI651_.mjs +0 -314
  1689. package/dist/queryProcessor-DSUqSk3I.js +0 -313
  1690. package/dist/rents.server.mjs +0 -506
  1691. package/dist/reports.server.mjs +0 -187
  1692. package/dist/spots.server.mjs +0 -380
  1693. package/dist/wallet.server.mjs +0 -705
  1694. package/src/builder/rspack/rspack.config.server.js +0 -30
  1695. package/src/components/FieldTags/vue-tags-input.js +0 -424
  1696. package/src/components/SelectMulti/index.js +0 -7
  1697. package/src/components/SelectMulti/multiselectMixin.js +0 -725
  1698. package/src/components/SelectMulti/pointerMixin.js +0 -143
  1699. package/src/modules/globals/views/core/event.js +0 -48
  1700. package/src/modules/icons/logos/LogotypeNunito.vue +0 -12
  1701. package/src/modules/integrations/openai/controllers/openai.controller.js +0 -89
  1702. package/src/modules/products/components/blocks/EditFilters.vue +0 -56
  1703. package/src/modules/products/components/blocks/LeftoverPositions.vue +0 -99
  1704. package/src/modules/products/components/blocks/ListPositions.vue +0 -74
  1705. package/src/modules/products/components/pages/EditLeftover.vue +0 -288
  1706. package/src/modules/products/components/pages/Product.old.vue +0 -201
  1707. package/src/modules/products/components/sections/EditModifications.vue +0 -92
  1708. package/src/modules/products/components/sections/EditProductInfo.vue +0 -106
  1709. package/src/modules/products/controllers/modifications.controller.js +0 -66
  1710. /package/src/modules/globals/views/{plugins → components/blocks}/AlertDialog.vue +0 -0
  1711. /package/src/modules/products/components/{blocks/Images360.vue → elements/Image360.vue} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"notifications.client.cjs","sources":["../../../../../src/modules/notifications/notifications.client.js"],"sourcesContent":["import { watch, toRefs } from \"vue\";\n// Router import \nimport routerNotifications from './router/notifications.router.js'; \n// Store \nimport * as storeNotifications from './store/notifications.store.js'; \n// Auth store import\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth';\n// Global WebSocket import\nimport globalWebSocket from '@martyrs/src/modules/globals/views/classes/globals.websocket.js';\n// Layouts \nimport NotificationsLayout from './components/layouts/NotificationsLayout.vue'; \n// Sections \nimport NotificationsList from './components/sections/NotificationsList.vue'; \nimport NotificationPreferences from './components/sections/NotificationPreferences.vue'; \n// Pages \nimport Notifications from './components/pages/Notifications.vue'; \n// Components \nimport NotificationBadge from './components/elements/NotificationBadge.vue'; \nimport NotificationItem from './components/blocks/NotificationItem.vue'; \n\n/**\n * Capacitor Push Notification handler\n */\nclass CapacitorPushHandler {\n constructor(store) {\n this.store = store;\n this.pushNotifications = null;\n this.device = null;\n this.isInitialized = false;\n }\n\n /**\n * Initialize Capacitor plugins\n */\n async initialize() {\n // Skip if running in SSR\n if (typeof window === 'undefined') {\n return false;\n }\n\n try {\n // Dynamic imports to prevent errors in web environment\n const { Capacitor } = await import('@capacitor/core');\n const { PushNotifications } = await import('@capacitor/push-notifications');\n const { Device } = await import('@capacitor/device');\n \n this.capacitor = Capacitor;\n this.pushNotifications = PushNotifications;\n this.device = Device;\n \n // Only proceed if running on a native platform\n if (!this.capacitor.isNativePlatform()) {\n return false;\n }\n \n this.isInitialized = true;\n return true;\n } catch (error) {\n console.error('Error importing Capacitor plugins:', error);\n return false;\n }\n }\n\n /**\n * Request permission and register for push notifications\n */\n async requestPermissions() {\n // Skip if running in SSR\n if (typeof window === 'undefined') {\n return false;\n }\n\n if (!this.isInitialized) {\n const initialized = await this.initialize();\n if (!initialized) return false;\n }\n\n try {\n // Request permission\n const permissionResult = await this.pushNotifications.requestPermissions();\n if (permissionResult.receive !== 'granted') {\n console.log('Push notification permission denied');\n return false;\n }\n \n // Set up event listeners\n this._setupListeners();\n \n // Register with Apple/Google\n await this.pushNotifications.register();\n return true;\n } catch (error) {\n console.error('Error requesting push notification permissions:', error);\n return false;\n }\n }\n\n /**\n * Setup push notification event listeners\n */\n _setupListeners() {\n // Registration event\n this.pushNotifications.addListener('registration', \n this._handleRegistration.bind(this)\n );\n \n // Notification received event\n this.pushNotifications.addListener('pushNotificationReceived',\n this._handleNotificationReceived.bind(this)\n );\n \n // Notification action performed event\n this.pushNotifications.addListener('pushNotificationActionPerformed',\n this._handleNotificationAction.bind(this)\n );\n }\n\n /**\n * Handle registration token received\n */\n async _handleRegistration(token) {\n try {\n // Get device info\n const deviceInfo = await this.device.getInfo();\n const deviceId = await this.device.getId();\n \n // Prepare device data\n const deviceData = {\n deviceId: deviceId.uuid,\n deviceType: deviceInfo.platform.toLowerCase(),\n deviceToken: token.value\n };\n \n // Register device with backend\n await this.store.notifications.actions.registerDevice(deviceData);\n } catch (error) {\n console.error('Error handling push registration:', error);\n }\n }\n\n /**\n * Handle received notification\n */\n _handleNotificationReceived(notification) {\n // Add notification to store\n this.store.notifications.actions.addLocalNotification({\n title: notification.title,\n body: notification.body,\n data: notification.data || {}\n });\n }\n\n /**\n * Handle notification action (when user taps on notification)\n */\n _handleNotificationAction(actionData) {\n if (actionData.notification && actionData.notification.data) {\n this.store.notifications.actions.handleNotificationAction(\n actionData.notification.data\n );\n }\n }\n\n /**\n * Remove push notification listeners\n */\n removeListeners() {\n if (typeof window === 'undefined') {\n return;\n }\n \n if (this.pushNotifications) {\n this.pushNotifications.removeAllListeners();\n }\n }\n}\n\n/**\n * Notification Manager for coordinating WebSocket and Push notifications\n */\n\nclass NotificationManager {\n constructor(store, options = {}) {\n this.store = store;\n this.options = options;\n this.pushHandler = new CapacitorPushHandler(store);\n this.initialized = false;\n this.isServer = typeof window === 'undefined';\n }\n\n async registerWebPush(store) {\n if (!('Notification' in window) || !('serviceWorker' in navigator) || !('PushManager' in window)) {\n console.warn('Web Push не поддерживается в браузере');\n return;\n }\n\n const permission = await Notification.requestPermission();\n if (permission !== 'granted') {\n console.warn('Разрешение на уведомления не получено');\n return;\n }\n\n const registration = await navigator.serviceWorker.register('/sw.js');\n const subscription = await registration.pushManager.subscribe({\n userVisibleOnly: true,\n applicationServerKey: 'BJtNnRrx05VQS0abnkHC-8gHJWpnmoqC_iQveENCmZOZIs-adWzqAiqFCdGVVd7CbiaLW-Q5iuIBDRgM9G-VnKg'\n });\n\n console.log('New subscription:', JSON.stringify(subscription));\n\n // Отправь подписку на сервер\n await store.notifications.actions.registerDevice({\n deviceToken: JSON.stringify(subscription),\n deviceType: 'web'\n });\n }\n\n async initialize() {\n if (this.initialized || this.isServer) return;\n\n const userId = this.store.auth.state.user?._id;\n if (!userId) {\n console.warn('Cannot initialize notifications: No user ID found in auth store');\n return;\n }\n\n console.log('Connecting to websockets via notifications')\n await globalWebSocket.connect(userId);\n\n globalWebSocket.removeModuleListeners('notification');\n\n await globalWebSocket.subscribeModule('notification');\n\n globalWebSocket.addEventListener(\n 'notification',\n (data) => {\n this.store.notifications.actions.addLocalNotification(data.data);\n },\n { module: 'notification' }\n );\n\n\n\n // 🎯 Опционально включаем push\n if (this.options.enablePush !== false) {\n await this.pushHandler.requestPermissions();\n await this.registerWebPush(this.store)\n }\n\n this.initialized = true;\n\n // ✅ Загружаем список уведомлений из API\n await this.store.notifications.actions.getNotifications(userId);\n }\n\n disconnect() {\n if (this.isServer) return;\n\n globalWebSocket.removeModuleListeners('notification');\n this.pushHandler.removeListeners();\n this.initialized = false;\n }\n}\n\n\n\n/**\n * Server-side utility for pre-fetching notification data\n */\nconst SSRUtils = {\n /**\n * Pre-fetch notifications for SSR\n * @param {Object} store - Store instance\n * @param {Object} context - SSR context\n */\n async prefetchNotifications(store, context) {\n try {\n const userId = store.auth.state.user?._id;\n if (userId) {\n // Fetch notifications without WebSocket or push setup\n await store.notifications.actions.getNotifications(userId);\n }\n } catch (error) {\n console.error('Error pre-fetching notifications for SSR:', error);\n }\n }\n};\n\n/**\n * Function to initialize the notifications module\n * @param {Object} app - Vue app instance\n * @param {Object} store - Vuex/Pinia store\n * @param {Object} router - Vue Router instance\n * @param {Object} options - Configuration options\n */\nfunction initializeNotifications(app, store, router, options = {}) {\n // Add routes and store\n const route = options.route || 'User Profile Root';\n router.addRoute(route, routerNotifications);\n store.addStore('notifications', storeNotifications);\n \n // Initialize global WebSocket if needed\n if (options.wsUrl) {\n globalWebSocket.initialize({ wsUrl: options.wsUrl });\n }\n \n // Create notification manager\n const notificationManager = new NotificationManager(store, {\n enablePush: options.enablePush !== false,\n maxReconnectAttempts: options.maxReconnectAttempts || 5,\n reconnectDelay: options.reconnectDelay || 3000,\n pingInterval: options.pingInterval || 30000\n });\n \n // Attach notification manager to store for access in components\n store.notificationManager = notificationManager;\n \n // Don't auto-initialize on server\n const isServer = typeof window === 'undefined';\n const autoInit = !isServer && options.autoInit !== false;\n \n if (autoInit) {\n // Initialize after auth is confirmed\n const isAuthenticated = store.auth.state.access.status;\n const userId = store.auth.state.user?._id;\n \n if (isAuthenticated && userId) {\n notificationManager.initialize();\n }\n \n // Watch for user login/logout using auth store\n watch(() => store.auth.state.access.status, (isAuthenticated) => {\n if (isAuthenticated) {\n notificationManager.initialize();\n } else {\n notificationManager.disconnect();\n store.notifications.mutations.resetNotifications();\n }\n });\n }\n \n // Provide composable for components to access notification functionality\n app.provide('useNotifications', () => {\n return {\n ...toRefs(store.notifications.state),\n ...store.notifications.actions,\n ...store.notifications.mutations,\n init: notificationManager.initialize.bind(notificationManager),\n disconnect: notificationManager.disconnect.bind(notificationManager),\n isServer\n };\n });\n \n return notificationManager;\n}\n\n// Module export\nconst ModuleNotifications = {\n initialize: initializeNotifications,\n SSR: SSRUtils, // Export SSR utilities\n views: {\n store: {\n storeNotifications,\n },\n router: {\n routerNotifications\n },\n components: {\n // Elements\n NotificationBadge,\n // Blocks\n NotificationItem,\n // Sections\n NotificationsList,\n NotificationPreferences,\n // Pages\n Notifications,\n // Layouts\n NotificationsLayout\n }\n }\n};\n\n// Component exports\nexport {\n // Elements\n NotificationBadge,\n // Blocks\n NotificationItem,\n // Sections\n NotificationsList,\n NotificationPreferences,\n // Pages\n Notifications,\n // Layouts\n NotificationsLayout,\n // SSR Utilities\n SSRUtils\n};\n\nexport default ModuleNotifications;\n"],"names":["globalWebSocket","routerNotifications","storeNotifications","watch","isAuthenticated","toRefs","NotificationBadge","NotificationItem","NotificationsList","NotificationPreferences","Notifications","NotificationsLayout"],"mappings":"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"}
1
+ {"version":3,"file":"notifications.client.cjs","sources":["../../../../../src/modules/notifications/notifications.client.js"],"sourcesContent":["import { toRefs, watch } from 'vue';\n// Router import\nimport routerNotifications from './router/notifications.router.js';\n// Store\nimport * as storeNotifications from './store/notifications.store.js';\n// Auth store import\n// Global WebSocket import\nimport globalWebSocket from '@martyrs/src/modules/globals/views/classes/globals.websocket.js';\n// Layouts\nimport NotificationsLayout from './components/layouts/NotificationsLayout.vue';\n// Sections\nimport NotificationPreferences from './components/sections/NotificationPreferences.vue';\nimport NotificationsList from './components/sections/NotificationsList.vue';\n// Pages\nimport Notifications from './components/pages/Notifications.vue';\n// Components\nimport NotificationItem from './components/blocks/NotificationItem.vue';\nimport NotificationBadge from './components/elements/NotificationBadge.vue';\n\n/**\n * Capacitor Push Notification handler\n */\nclass CapacitorPushHandler {\n constructor(store) {\n this.store = store;\n this.pushNotifications = null;\n this.device = null;\n this.isInitialized = false;\n }\n\n /**\n * Initialize Capacitor plugins\n */\n async initialize() {\n // Skip if running in SSR\n if (typeof window === 'undefined') {\n return false;\n }\n\n try {\n // Dynamic imports to prevent errors in web environment\n const { Capacitor } = await import('@capacitor/core');\n const { PushNotifications } = await import('@capacitor/push-notifications');\n const { Device } = await import('@capacitor/device');\n\n this.capacitor = Capacitor;\n this.pushNotifications = PushNotifications;\n this.device = Device;\n\n // Only proceed if running on a native platform\n if (!this.capacitor.isNativePlatform()) {\n return false;\n }\n\n this.isInitialized = true;\n return true;\n } catch (error) {\n console.error('Error importing Capacitor plugins:', error);\n return false;\n }\n }\n\n /**\n * Request permission and register for push notifications\n */\n async requestPermissions() {\n // Skip if running in SSR\n if (typeof window === 'undefined') {\n return false;\n }\n\n if (!this.isInitialized) {\n const initialized = await this.initialize();\n if (!initialized) return false;\n }\n\n try {\n // Request permission\n const permissionResult = await this.pushNotifications.requestPermissions();\n if (permissionResult.receive !== 'granted') {\n console.log('Push notification permission denied');\n return false;\n }\n\n // Set up event listeners\n this._setupListeners();\n\n // Register with Apple/Google\n await this.pushNotifications.register();\n return true;\n } catch (error) {\n console.error('Error requesting push notification permissions:', error);\n return false;\n }\n }\n\n /**\n * Setup push notification event listeners\n */\n _setupListeners() {\n // Registration event\n this.pushNotifications.addListener('registration', this._handleRegistration.bind(this));\n\n // Notification received event\n this.pushNotifications.addListener('pushNotificationReceived', this._handleNotificationReceived.bind(this));\n\n // Notification action performed event\n this.pushNotifications.addListener('pushNotificationActionPerformed', this._handleNotificationAction.bind(this));\n }\n\n /**\n * Handle registration token received\n */\n async _handleRegistration(token) {\n try {\n // Get device info\n const deviceInfo = await this.device.getInfo();\n const deviceId = await this.device.getId();\n\n // Prepare device data\n const deviceData = {\n deviceId: deviceId.uuid,\n deviceType: deviceInfo.platform.toLowerCase(),\n deviceToken: token.value,\n };\n\n // Register device with backend\n await this.store.notifications.actions.registerDevice(deviceData);\n } catch (error) {\n console.error('Error handling push registration:', error);\n }\n }\n\n /**\n * Handle received notification\n */\n _handleNotificationReceived(notification) {\n // Add notification to store\n this.store.notifications.actions.addLocalNotification({\n title: notification.title,\n body: notification.body,\n data: notification.data || {},\n });\n }\n\n /**\n * Handle notification action (when user taps on notification)\n */\n _handleNotificationAction(actionData) {\n if (actionData.notification && actionData.notification.data) {\n this.store.notifications.actions.handleNotificationAction(actionData.notification.data);\n }\n }\n\n /**\n * Remove push notification listeners\n */\n removeListeners() {\n if (typeof window === 'undefined') {\n return;\n }\n\n if (this.pushNotifications) {\n this.pushNotifications.removeAllListeners();\n }\n }\n}\n\n/**\n * Notification Manager for coordinating WebSocket and Push notifications\n */\n\nclass NotificationManager {\n constructor(store, options = {}) {\n this.store = store;\n this.options = options;\n this.pushHandler = new CapacitorPushHandler(store);\n this.initialized = false;\n this.isServer = typeof window === 'undefined';\n }\n\n async registerWebPush(store) {\n if (!('Notification' in window) || !('serviceWorker' in navigator) || !('PushManager' in window)) {\n console.warn('Web Push не поддерживается в браузере');\n return;\n }\n\n const permission = await Notification.requestPermission();\n if (permission !== 'granted') {\n console.warn('Разрешение на уведомления не получено');\n return;\n }\n\n const registration = await navigator.serviceWorker.register('/sw.js');\n const subscription = await registration.pushManager.subscribe({\n userVisibleOnly: true,\n applicationServerKey: 'BJtNnRrx05VQS0abnkHC-8gHJWpnmoqC_iQveENCmZOZIs-adWzqAiqFCdGVVd7CbiaLW-Q5iuIBDRgM9G-VnKg',\n });\n\n console.log('New subscription:', JSON.stringify(subscription));\n\n // Отправь подписку на сервер\n await store.notifications.actions.registerDevice({\n deviceToken: JSON.stringify(subscription),\n deviceType: 'web',\n });\n }\n\n async initialize() {\n if (this.initialized || this.isServer) return;\n\n const userId = this.store.auth.state.user?._id;\n if (!userId) {\n console.warn('Cannot initialize notifications: No user ID found in auth store');\n return;\n }\n\n console.log('Connecting to websockets via notifications');\n await globalWebSocket.connect(userId);\n\n globalWebSocket.removeModuleListeners('notification');\n\n await globalWebSocket.subscribeModule('notification');\n\n globalWebSocket.addEventListener(\n 'notification',\n data => {\n this.store.notifications.actions.addLocalNotification(data.data);\n },\n { module: 'notification' }\n );\n\n // 🎯 Опционально включаем push\n if (this.options.enablePush !== false) {\n await this.pushHandler.requestPermissions();\n await this.registerWebPush(this.store);\n }\n\n this.initialized = true;\n\n // ✅ Загружаем список уведомлений из API\n await this.store.notifications.actions.getNotifications(userId);\n }\n\n disconnect() {\n if (this.isServer) return;\n\n globalWebSocket.removeModuleListeners('notification');\n this.pushHandler.removeListeners();\n this.initialized = false;\n }\n}\n\n/**\n * Server-side utility for pre-fetching notification data\n */\nconst SSRUtils = {\n /**\n * Pre-fetch notifications for SSR\n * @param {Object} store - Store instance\n * @param {Object} context - SSR context\n */\n async prefetchNotifications(store, context) {\n try {\n const userId = store.auth.state.user?._id;\n if (userId) {\n // Fetch notifications without WebSocket or push setup\n await store.notifications.actions.getNotifications(userId);\n }\n } catch (error) {\n console.error('Error pre-fetching notifications for SSR:', error);\n }\n },\n};\n\n/**\n * Function to initialize the notifications module\n * @param {Object} app - Vue app instance\n * @param {Object} store - Vuex/Pinia store\n * @param {Object} router - Vue Router instance\n * @param {Object} options - Configuration options\n */\nfunction initializeNotifications(app, store, router, options = {}) {\n // Add routes and store\n const route = options.route || 'User Profile Root';\n router.addRoute(route, routerNotifications);\n store.addStore('notifications', storeNotifications);\n\n // Initialize global WebSocket if needed\n if (options.wsUrl) {\n globalWebSocket.initialize({ wsUrl: options.wsUrl });\n }\n\n // Create notification manager\n const notificationManager = new NotificationManager(store, {\n enablePush: options.enablePush !== false,\n maxReconnectAttempts: options.maxReconnectAttempts || 5,\n reconnectDelay: options.reconnectDelay || 3000,\n pingInterval: options.pingInterval || 30000,\n });\n\n // Attach notification manager to store for access in components\n store.notificationManager = notificationManager;\n\n // Don't auto-initialize on server\n const isServer = typeof window === 'undefined';\n const autoInit = !isServer && options.autoInit !== false;\n\n if (autoInit) {\n // Initialize after auth is confirmed\n const isAuthenticated = store.auth.state.access.status;\n const userId = store.auth.state.user?._id;\n\n if (isAuthenticated && userId) {\n notificationManager.initialize();\n }\n\n // Watch for user login/logout using auth store\n watch(\n () => store.auth.state.access.status,\n isAuthenticated => {\n if (isAuthenticated) {\n notificationManager.initialize();\n } else {\n notificationManager.disconnect();\n store.notifications.mutations.resetNotifications();\n }\n }\n );\n }\n\n // Provide composable for components to access notification functionality\n app.provide('useNotifications', () => {\n return {\n ...toRefs(store.notifications.state),\n ...store.notifications.actions,\n ...store.notifications.mutations,\n init: notificationManager.initialize.bind(notificationManager),\n disconnect: notificationManager.disconnect.bind(notificationManager),\n isServer,\n };\n });\n\n return notificationManager;\n}\n\n// Module export\nconst ModuleNotifications = {\n initialize: initializeNotifications,\n SSR: SSRUtils, // Export SSR utilities\n views: {\n store: {\n storeNotifications,\n },\n router: {\n routerNotifications,\n },\n components: {\n // Elements\n NotificationBadge,\n // Blocks\n NotificationItem,\n // Sections\n NotificationsList,\n NotificationPreferences,\n // Pages\n Notifications,\n // Layouts\n NotificationsLayout,\n },\n },\n};\n\n// Component exports\nexport {\n // Elements\n NotificationBadge,\n // Blocks\n NotificationItem,\n NotificationPreferences,\n // Pages\n Notifications,\n // Layouts\n NotificationsLayout,\n // Sections\n NotificationsList,\n // SSR Utilities\n SSRUtils,\n};\n\nexport default ModuleNotifications;\n"],"names":["globalWebSocket","routerNotifications","storeNotifications","watch","isAuthenticated","toRefs","NotificationBadge","NotificationItem","NotificationsList","NotificationPreferences","Notifications","NotificationsLayout"],"mappings":"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"}
@@ -1,14 +1,13 @@
1
1
  import { watch, toRefs } from "vue";
2
2
  import nofitications from "./router/notifications.router.js";
3
3
  import * as notifications_store from "./store/notifications.store.js";
4
- import "../auth/views/store/auth.js";
5
4
  import globalWebSocket from "../globals/views/classes/globals.websocket.js";
6
5
  import NotificationsLayout from "./components/layouts/NotificationsLayout.vue.js";
7
- import NotificationsList from "./components/sections/NotificationsList.vue.js";
8
6
  import NotificationPreferences from "./components/sections/NotificationPreferences.vue.js";
7
+ import NotificationsList from "./components/sections/NotificationsList.vue.js";
9
8
  import Notifications from "./components/pages/Notifications.vue.js";
10
- import NotificationBadge from "./components/elements/NotificationBadge.vue.js";
11
9
  import NotificationItem from "./components/blocks/NotificationItem.vue.js";
10
+ import NotificationBadge from "./components/elements/NotificationBadge.vue.js";
12
11
  class CapacitorPushHandler {
13
12
  constructor(store) {
14
13
  this.store = store;
@@ -69,18 +68,9 @@ class CapacitorPushHandler {
69
68
  * Setup push notification event listeners
70
69
  */
71
70
  _setupListeners() {
72
- this.pushNotifications.addListener(
73
- "registration",
74
- this._handleRegistration.bind(this)
75
- );
76
- this.pushNotifications.addListener(
77
- "pushNotificationReceived",
78
- this._handleNotificationReceived.bind(this)
79
- );
80
- this.pushNotifications.addListener(
81
- "pushNotificationActionPerformed",
82
- this._handleNotificationAction.bind(this)
83
- );
71
+ this.pushNotifications.addListener("registration", this._handleRegistration.bind(this));
72
+ this.pushNotifications.addListener("pushNotificationReceived", this._handleNotificationReceived.bind(this));
73
+ this.pushNotifications.addListener("pushNotificationActionPerformed", this._handleNotificationAction.bind(this));
84
74
  }
85
75
  /**
86
76
  * Handle registration token received
@@ -114,9 +104,7 @@ class CapacitorPushHandler {
114
104
  */
115
105
  _handleNotificationAction(actionData) {
116
106
  if (actionData.notification && actionData.notification.data) {
117
- this.store.notifications.actions.handleNotificationAction(
118
- actionData.notification.data
119
- );
107
+ this.store.notifications.actions.handleNotificationAction(actionData.notification.data);
120
108
  }
121
109
  }
122
110
  /**
@@ -234,14 +222,17 @@ function initializeNotifications(app, store, router, options = {}) {
234
222
  if (isAuthenticated && userId) {
235
223
  notificationManager.initialize();
236
224
  }
237
- watch(() => store.auth.state.access.status, (isAuthenticated2) => {
238
- if (isAuthenticated2) {
239
- notificationManager.initialize();
240
- } else {
241
- notificationManager.disconnect();
242
- store.notifications.mutations.resetNotifications();
225
+ watch(
226
+ () => store.auth.state.access.status,
227
+ (isAuthenticated2) => {
228
+ if (isAuthenticated2) {
229
+ notificationManager.initialize();
230
+ } else {
231
+ notificationManager.disconnect();
232
+ store.notifications.mutations.resetNotifications();
233
+ }
243
234
  }
244
- });
235
+ );
245
236
  }
246
237
  app.provide("useNotifications", () => {
247
238
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"notifications.client.js","sources":["../../../../../src/modules/notifications/notifications.client.js"],"sourcesContent":["import { watch, toRefs } from \"vue\";\n// Router import \nimport routerNotifications from './router/notifications.router.js'; \n// Store \nimport * as storeNotifications from './store/notifications.store.js'; \n// Auth store import\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth';\n// Global WebSocket import\nimport globalWebSocket from '@martyrs/src/modules/globals/views/classes/globals.websocket.js';\n// Layouts \nimport NotificationsLayout from './components/layouts/NotificationsLayout.vue'; \n// Sections \nimport NotificationsList from './components/sections/NotificationsList.vue'; \nimport NotificationPreferences from './components/sections/NotificationPreferences.vue'; \n// Pages \nimport Notifications from './components/pages/Notifications.vue'; \n// Components \nimport NotificationBadge from './components/elements/NotificationBadge.vue'; \nimport NotificationItem from './components/blocks/NotificationItem.vue'; \n\n/**\n * Capacitor Push Notification handler\n */\nclass CapacitorPushHandler {\n constructor(store) {\n this.store = store;\n this.pushNotifications = null;\n this.device = null;\n this.isInitialized = false;\n }\n\n /**\n * Initialize Capacitor plugins\n */\n async initialize() {\n // Skip if running in SSR\n if (typeof window === 'undefined') {\n return false;\n }\n\n try {\n // Dynamic imports to prevent errors in web environment\n const { Capacitor } = await import('@capacitor/core');\n const { PushNotifications } = await import('@capacitor/push-notifications');\n const { Device } = await import('@capacitor/device');\n \n this.capacitor = Capacitor;\n this.pushNotifications = PushNotifications;\n this.device = Device;\n \n // Only proceed if running on a native platform\n if (!this.capacitor.isNativePlatform()) {\n return false;\n }\n \n this.isInitialized = true;\n return true;\n } catch (error) {\n console.error('Error importing Capacitor plugins:', error);\n return false;\n }\n }\n\n /**\n * Request permission and register for push notifications\n */\n async requestPermissions() {\n // Skip if running in SSR\n if (typeof window === 'undefined') {\n return false;\n }\n\n if (!this.isInitialized) {\n const initialized = await this.initialize();\n if (!initialized) return false;\n }\n\n try {\n // Request permission\n const permissionResult = await this.pushNotifications.requestPermissions();\n if (permissionResult.receive !== 'granted') {\n console.log('Push notification permission denied');\n return false;\n }\n \n // Set up event listeners\n this._setupListeners();\n \n // Register with Apple/Google\n await this.pushNotifications.register();\n return true;\n } catch (error) {\n console.error('Error requesting push notification permissions:', error);\n return false;\n }\n }\n\n /**\n * Setup push notification event listeners\n */\n _setupListeners() {\n // Registration event\n this.pushNotifications.addListener('registration', \n this._handleRegistration.bind(this)\n );\n \n // Notification received event\n this.pushNotifications.addListener('pushNotificationReceived',\n this._handleNotificationReceived.bind(this)\n );\n \n // Notification action performed event\n this.pushNotifications.addListener('pushNotificationActionPerformed',\n this._handleNotificationAction.bind(this)\n );\n }\n\n /**\n * Handle registration token received\n */\n async _handleRegistration(token) {\n try {\n // Get device info\n const deviceInfo = await this.device.getInfo();\n const deviceId = await this.device.getId();\n \n // Prepare device data\n const deviceData = {\n deviceId: deviceId.uuid,\n deviceType: deviceInfo.platform.toLowerCase(),\n deviceToken: token.value\n };\n \n // Register device with backend\n await this.store.notifications.actions.registerDevice(deviceData);\n } catch (error) {\n console.error('Error handling push registration:', error);\n }\n }\n\n /**\n * Handle received notification\n */\n _handleNotificationReceived(notification) {\n // Add notification to store\n this.store.notifications.actions.addLocalNotification({\n title: notification.title,\n body: notification.body,\n data: notification.data || {}\n });\n }\n\n /**\n * Handle notification action (when user taps on notification)\n */\n _handleNotificationAction(actionData) {\n if (actionData.notification && actionData.notification.data) {\n this.store.notifications.actions.handleNotificationAction(\n actionData.notification.data\n );\n }\n }\n\n /**\n * Remove push notification listeners\n */\n removeListeners() {\n if (typeof window === 'undefined') {\n return;\n }\n \n if (this.pushNotifications) {\n this.pushNotifications.removeAllListeners();\n }\n }\n}\n\n/**\n * Notification Manager for coordinating WebSocket and Push notifications\n */\n\nclass NotificationManager {\n constructor(store, options = {}) {\n this.store = store;\n this.options = options;\n this.pushHandler = new CapacitorPushHandler(store);\n this.initialized = false;\n this.isServer = typeof window === 'undefined';\n }\n\n async registerWebPush(store) {\n if (!('Notification' in window) || !('serviceWorker' in navigator) || !('PushManager' in window)) {\n console.warn('Web Push не поддерживается в браузере');\n return;\n }\n\n const permission = await Notification.requestPermission();\n if (permission !== 'granted') {\n console.warn('Разрешение на уведомления не получено');\n return;\n }\n\n const registration = await navigator.serviceWorker.register('/sw.js');\n const subscription = await registration.pushManager.subscribe({\n userVisibleOnly: true,\n applicationServerKey: 'BJtNnRrx05VQS0abnkHC-8gHJWpnmoqC_iQveENCmZOZIs-adWzqAiqFCdGVVd7CbiaLW-Q5iuIBDRgM9G-VnKg'\n });\n\n console.log('New subscription:', JSON.stringify(subscription));\n\n // Отправь подписку на сервер\n await store.notifications.actions.registerDevice({\n deviceToken: JSON.stringify(subscription),\n deviceType: 'web'\n });\n }\n\n async initialize() {\n if (this.initialized || this.isServer) return;\n\n const userId = this.store.auth.state.user?._id;\n if (!userId) {\n console.warn('Cannot initialize notifications: No user ID found in auth store');\n return;\n }\n\n console.log('Connecting to websockets via notifications')\n await globalWebSocket.connect(userId);\n\n globalWebSocket.removeModuleListeners('notification');\n\n await globalWebSocket.subscribeModule('notification');\n\n globalWebSocket.addEventListener(\n 'notification',\n (data) => {\n this.store.notifications.actions.addLocalNotification(data.data);\n },\n { module: 'notification' }\n );\n\n\n\n // 🎯 Опционально включаем push\n if (this.options.enablePush !== false) {\n await this.pushHandler.requestPermissions();\n await this.registerWebPush(this.store)\n }\n\n this.initialized = true;\n\n // ✅ Загружаем список уведомлений из API\n await this.store.notifications.actions.getNotifications(userId);\n }\n\n disconnect() {\n if (this.isServer) return;\n\n globalWebSocket.removeModuleListeners('notification');\n this.pushHandler.removeListeners();\n this.initialized = false;\n }\n}\n\n\n\n/**\n * Server-side utility for pre-fetching notification data\n */\nconst SSRUtils = {\n /**\n * Pre-fetch notifications for SSR\n * @param {Object} store - Store instance\n * @param {Object} context - SSR context\n */\n async prefetchNotifications(store, context) {\n try {\n const userId = store.auth.state.user?._id;\n if (userId) {\n // Fetch notifications without WebSocket or push setup\n await store.notifications.actions.getNotifications(userId);\n }\n } catch (error) {\n console.error('Error pre-fetching notifications for SSR:', error);\n }\n }\n};\n\n/**\n * Function to initialize the notifications module\n * @param {Object} app - Vue app instance\n * @param {Object} store - Vuex/Pinia store\n * @param {Object} router - Vue Router instance\n * @param {Object} options - Configuration options\n */\nfunction initializeNotifications(app, store, router, options = {}) {\n // Add routes and store\n const route = options.route || 'User Profile Root';\n router.addRoute(route, routerNotifications);\n store.addStore('notifications', storeNotifications);\n \n // Initialize global WebSocket if needed\n if (options.wsUrl) {\n globalWebSocket.initialize({ wsUrl: options.wsUrl });\n }\n \n // Create notification manager\n const notificationManager = new NotificationManager(store, {\n enablePush: options.enablePush !== false,\n maxReconnectAttempts: options.maxReconnectAttempts || 5,\n reconnectDelay: options.reconnectDelay || 3000,\n pingInterval: options.pingInterval || 30000\n });\n \n // Attach notification manager to store for access in components\n store.notificationManager = notificationManager;\n \n // Don't auto-initialize on server\n const isServer = typeof window === 'undefined';\n const autoInit = !isServer && options.autoInit !== false;\n \n if (autoInit) {\n // Initialize after auth is confirmed\n const isAuthenticated = store.auth.state.access.status;\n const userId = store.auth.state.user?._id;\n \n if (isAuthenticated && userId) {\n notificationManager.initialize();\n }\n \n // Watch for user login/logout using auth store\n watch(() => store.auth.state.access.status, (isAuthenticated) => {\n if (isAuthenticated) {\n notificationManager.initialize();\n } else {\n notificationManager.disconnect();\n store.notifications.mutations.resetNotifications();\n }\n });\n }\n \n // Provide composable for components to access notification functionality\n app.provide('useNotifications', () => {\n return {\n ...toRefs(store.notifications.state),\n ...store.notifications.actions,\n ...store.notifications.mutations,\n init: notificationManager.initialize.bind(notificationManager),\n disconnect: notificationManager.disconnect.bind(notificationManager),\n isServer\n };\n });\n \n return notificationManager;\n}\n\n// Module export\nconst ModuleNotifications = {\n initialize: initializeNotifications,\n SSR: SSRUtils, // Export SSR utilities\n views: {\n store: {\n storeNotifications,\n },\n router: {\n routerNotifications\n },\n components: {\n // Elements\n NotificationBadge,\n // Blocks\n NotificationItem,\n // Sections\n NotificationsList,\n NotificationPreferences,\n // Pages\n Notifications,\n // Layouts\n NotificationsLayout\n }\n }\n};\n\n// Component exports\nexport {\n // Elements\n NotificationBadge,\n // Blocks\n NotificationItem,\n // Sections\n NotificationsList,\n NotificationPreferences,\n // Pages\n Notifications,\n // Layouts\n NotificationsLayout,\n // SSR Utilities\n SSRUtils\n};\n\nexport default ModuleNotifications;\n"],"names":["routerNotifications","storeNotifications","isAuthenticated"],"mappings":"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"}
1
+ {"version":3,"file":"notifications.client.js","sources":["../../../../../src/modules/notifications/notifications.client.js"],"sourcesContent":["import { toRefs, watch } from 'vue';\n// Router import\nimport routerNotifications from './router/notifications.router.js';\n// Store\nimport * as storeNotifications from './store/notifications.store.js';\n// Auth store import\n// Global WebSocket import\nimport globalWebSocket from '@martyrs/src/modules/globals/views/classes/globals.websocket.js';\n// Layouts\nimport NotificationsLayout from './components/layouts/NotificationsLayout.vue';\n// Sections\nimport NotificationPreferences from './components/sections/NotificationPreferences.vue';\nimport NotificationsList from './components/sections/NotificationsList.vue';\n// Pages\nimport Notifications from './components/pages/Notifications.vue';\n// Components\nimport NotificationItem from './components/blocks/NotificationItem.vue';\nimport NotificationBadge from './components/elements/NotificationBadge.vue';\n\n/**\n * Capacitor Push Notification handler\n */\nclass CapacitorPushHandler {\n constructor(store) {\n this.store = store;\n this.pushNotifications = null;\n this.device = null;\n this.isInitialized = false;\n }\n\n /**\n * Initialize Capacitor plugins\n */\n async initialize() {\n // Skip if running in SSR\n if (typeof window === 'undefined') {\n return false;\n }\n\n try {\n // Dynamic imports to prevent errors in web environment\n const { Capacitor } = await import('@capacitor/core');\n const { PushNotifications } = await import('@capacitor/push-notifications');\n const { Device } = await import('@capacitor/device');\n\n this.capacitor = Capacitor;\n this.pushNotifications = PushNotifications;\n this.device = Device;\n\n // Only proceed if running on a native platform\n if (!this.capacitor.isNativePlatform()) {\n return false;\n }\n\n this.isInitialized = true;\n return true;\n } catch (error) {\n console.error('Error importing Capacitor plugins:', error);\n return false;\n }\n }\n\n /**\n * Request permission and register for push notifications\n */\n async requestPermissions() {\n // Skip if running in SSR\n if (typeof window === 'undefined') {\n return false;\n }\n\n if (!this.isInitialized) {\n const initialized = await this.initialize();\n if (!initialized) return false;\n }\n\n try {\n // Request permission\n const permissionResult = await this.pushNotifications.requestPermissions();\n if (permissionResult.receive !== 'granted') {\n console.log('Push notification permission denied');\n return false;\n }\n\n // Set up event listeners\n this._setupListeners();\n\n // Register with Apple/Google\n await this.pushNotifications.register();\n return true;\n } catch (error) {\n console.error('Error requesting push notification permissions:', error);\n return false;\n }\n }\n\n /**\n * Setup push notification event listeners\n */\n _setupListeners() {\n // Registration event\n this.pushNotifications.addListener('registration', this._handleRegistration.bind(this));\n\n // Notification received event\n this.pushNotifications.addListener('pushNotificationReceived', this._handleNotificationReceived.bind(this));\n\n // Notification action performed event\n this.pushNotifications.addListener('pushNotificationActionPerformed', this._handleNotificationAction.bind(this));\n }\n\n /**\n * Handle registration token received\n */\n async _handleRegistration(token) {\n try {\n // Get device info\n const deviceInfo = await this.device.getInfo();\n const deviceId = await this.device.getId();\n\n // Prepare device data\n const deviceData = {\n deviceId: deviceId.uuid,\n deviceType: deviceInfo.platform.toLowerCase(),\n deviceToken: token.value,\n };\n\n // Register device with backend\n await this.store.notifications.actions.registerDevice(deviceData);\n } catch (error) {\n console.error('Error handling push registration:', error);\n }\n }\n\n /**\n * Handle received notification\n */\n _handleNotificationReceived(notification) {\n // Add notification to store\n this.store.notifications.actions.addLocalNotification({\n title: notification.title,\n body: notification.body,\n data: notification.data || {},\n });\n }\n\n /**\n * Handle notification action (when user taps on notification)\n */\n _handleNotificationAction(actionData) {\n if (actionData.notification && actionData.notification.data) {\n this.store.notifications.actions.handleNotificationAction(actionData.notification.data);\n }\n }\n\n /**\n * Remove push notification listeners\n */\n removeListeners() {\n if (typeof window === 'undefined') {\n return;\n }\n\n if (this.pushNotifications) {\n this.pushNotifications.removeAllListeners();\n }\n }\n}\n\n/**\n * Notification Manager for coordinating WebSocket and Push notifications\n */\n\nclass NotificationManager {\n constructor(store, options = {}) {\n this.store = store;\n this.options = options;\n this.pushHandler = new CapacitorPushHandler(store);\n this.initialized = false;\n this.isServer = typeof window === 'undefined';\n }\n\n async registerWebPush(store) {\n if (!('Notification' in window) || !('serviceWorker' in navigator) || !('PushManager' in window)) {\n console.warn('Web Push не поддерживается в браузере');\n return;\n }\n\n const permission = await Notification.requestPermission();\n if (permission !== 'granted') {\n console.warn('Разрешение на уведомления не получено');\n return;\n }\n\n const registration = await navigator.serviceWorker.register('/sw.js');\n const subscription = await registration.pushManager.subscribe({\n userVisibleOnly: true,\n applicationServerKey: 'BJtNnRrx05VQS0abnkHC-8gHJWpnmoqC_iQveENCmZOZIs-adWzqAiqFCdGVVd7CbiaLW-Q5iuIBDRgM9G-VnKg',\n });\n\n console.log('New subscription:', JSON.stringify(subscription));\n\n // Отправь подписку на сервер\n await store.notifications.actions.registerDevice({\n deviceToken: JSON.stringify(subscription),\n deviceType: 'web',\n });\n }\n\n async initialize() {\n if (this.initialized || this.isServer) return;\n\n const userId = this.store.auth.state.user?._id;\n if (!userId) {\n console.warn('Cannot initialize notifications: No user ID found in auth store');\n return;\n }\n\n console.log('Connecting to websockets via notifications');\n await globalWebSocket.connect(userId);\n\n globalWebSocket.removeModuleListeners('notification');\n\n await globalWebSocket.subscribeModule('notification');\n\n globalWebSocket.addEventListener(\n 'notification',\n data => {\n this.store.notifications.actions.addLocalNotification(data.data);\n },\n { module: 'notification' }\n );\n\n // 🎯 Опционально включаем push\n if (this.options.enablePush !== false) {\n await this.pushHandler.requestPermissions();\n await this.registerWebPush(this.store);\n }\n\n this.initialized = true;\n\n // ✅ Загружаем список уведомлений из API\n await this.store.notifications.actions.getNotifications(userId);\n }\n\n disconnect() {\n if (this.isServer) return;\n\n globalWebSocket.removeModuleListeners('notification');\n this.pushHandler.removeListeners();\n this.initialized = false;\n }\n}\n\n/**\n * Server-side utility for pre-fetching notification data\n */\nconst SSRUtils = {\n /**\n * Pre-fetch notifications for SSR\n * @param {Object} store - Store instance\n * @param {Object} context - SSR context\n */\n async prefetchNotifications(store, context) {\n try {\n const userId = store.auth.state.user?._id;\n if (userId) {\n // Fetch notifications without WebSocket or push setup\n await store.notifications.actions.getNotifications(userId);\n }\n } catch (error) {\n console.error('Error pre-fetching notifications for SSR:', error);\n }\n },\n};\n\n/**\n * Function to initialize the notifications module\n * @param {Object} app - Vue app instance\n * @param {Object} store - Vuex/Pinia store\n * @param {Object} router - Vue Router instance\n * @param {Object} options - Configuration options\n */\nfunction initializeNotifications(app, store, router, options = {}) {\n // Add routes and store\n const route = options.route || 'User Profile Root';\n router.addRoute(route, routerNotifications);\n store.addStore('notifications', storeNotifications);\n\n // Initialize global WebSocket if needed\n if (options.wsUrl) {\n globalWebSocket.initialize({ wsUrl: options.wsUrl });\n }\n\n // Create notification manager\n const notificationManager = new NotificationManager(store, {\n enablePush: options.enablePush !== false,\n maxReconnectAttempts: options.maxReconnectAttempts || 5,\n reconnectDelay: options.reconnectDelay || 3000,\n pingInterval: options.pingInterval || 30000,\n });\n\n // Attach notification manager to store for access in components\n store.notificationManager = notificationManager;\n\n // Don't auto-initialize on server\n const isServer = typeof window === 'undefined';\n const autoInit = !isServer && options.autoInit !== false;\n\n if (autoInit) {\n // Initialize after auth is confirmed\n const isAuthenticated = store.auth.state.access.status;\n const userId = store.auth.state.user?._id;\n\n if (isAuthenticated && userId) {\n notificationManager.initialize();\n }\n\n // Watch for user login/logout using auth store\n watch(\n () => store.auth.state.access.status,\n isAuthenticated => {\n if (isAuthenticated) {\n notificationManager.initialize();\n } else {\n notificationManager.disconnect();\n store.notifications.mutations.resetNotifications();\n }\n }\n );\n }\n\n // Provide composable for components to access notification functionality\n app.provide('useNotifications', () => {\n return {\n ...toRefs(store.notifications.state),\n ...store.notifications.actions,\n ...store.notifications.mutations,\n init: notificationManager.initialize.bind(notificationManager),\n disconnect: notificationManager.disconnect.bind(notificationManager),\n isServer,\n };\n });\n\n return notificationManager;\n}\n\n// Module export\nconst ModuleNotifications = {\n initialize: initializeNotifications,\n SSR: SSRUtils, // Export SSR utilities\n views: {\n store: {\n storeNotifications,\n },\n router: {\n routerNotifications,\n },\n components: {\n // Elements\n NotificationBadge,\n // Blocks\n NotificationItem,\n // Sections\n NotificationsList,\n NotificationPreferences,\n // Pages\n Notifications,\n // Layouts\n NotificationsLayout,\n },\n },\n};\n\n// Component exports\nexport {\n // Elements\n NotificationBadge,\n // Blocks\n NotificationItem,\n NotificationPreferences,\n // Pages\n Notifications,\n // Layouts\n NotificationsLayout,\n // Sections\n NotificationsList,\n // SSR Utilities\n SSRUtils,\n};\n\nexport default ModuleNotifications;\n"],"names":["routerNotifications","storeNotifications","isAuthenticated"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const NotificationsLayout = require("../components/layouts/NotificationsLayout.vue.cjs");
3
4
  const Notifications = require("../components/pages/Notifications.vue.cjs");
4
5
  const NotificationPreferences = require("../components/sections/NotificationPreferences.vue.cjs");
5
- const NotificationsLayout = require("../components/layouts/NotificationsLayout.vue.cjs");
6
6
  const nofitications = {
7
7
  path: "/notifications",
8
8
  component: NotificationsLayout.default,
@@ -1 +1 @@
1
- {"version":3,"file":"notifications.router.cjs","sources":["../../../../../../src/modules/notifications/router/notifications.router.js"],"sourcesContent":["import Notifications from '../components/pages/Notifications.vue';\nimport NotificationPreferences from '../components/sections/NotificationPreferences.vue';\nimport NotificationsLayout from '../components/layouts/NotificationsLayout.vue';\n\nconst nofitications = {\n path: '/notifications',\n component: NotificationsLayout,\n children: [\n {\n path: '',\n name: 'Notifications',\n component: Notifications,\n meta: {\n // requiresAuth: true,\n title: 'Notifications'\n }\n },\n {\n path: 'preferences',\n name: 'NotificationPreferences',\n component: NotificationPreferences,\n meta: {\n // requiresAuth: true,\n title: 'Notification Preferences'\n }\n }\n ]\n};\n\nexport default nofitications;"],"names":["NotificationsLayout","Notifications","NotificationPreferences"],"mappings":";;;;;AAIK,MAAC,gBAAgB;AAAA,EACpB,MAAM;AAAA,EACN,WAAWA,oBAAmB;AAAA,EAC9B,UAAU;AAAA,IACR;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAWC,cAAa;AAAA,MACxB,MAAM;AAAA;AAAA,QAEJ,OAAO;AAAA,MACf;AAAA,IACK;AAAA,IACD;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAWC,wBAAuB;AAAA,MAClC,MAAM;AAAA;AAAA,QAEJ,OAAO;AAAA,MACf;AAAA,IACA;AAAA,EACA;AACA;;"}
1
+ {"version":3,"file":"notifications.router.cjs","sources":["../../../../../../src/modules/notifications/router/notifications.router.js"],"sourcesContent":["import NotificationsLayout from '../components/layouts/NotificationsLayout.vue';\nimport Notifications from '../components/pages/Notifications.vue';\nimport NotificationPreferences from '../components/sections/NotificationPreferences.vue';\n\nconst nofitications = {\n path: '/notifications',\n component: NotificationsLayout,\n children: [\n {\n path: '',\n name: 'Notifications',\n component: Notifications,\n meta: {\n // requiresAuth: true,\n title: 'Notifications',\n },\n },\n {\n path: 'preferences',\n name: 'NotificationPreferences',\n component: NotificationPreferences,\n meta: {\n // requiresAuth: true,\n title: 'Notification Preferences',\n },\n },\n ],\n};\n\nexport default nofitications;\n"],"names":["NotificationsLayout","Notifications","NotificationPreferences"],"mappings":";;;;;AAIK,MAAC,gBAAgB;AAAA,EACpB,MAAM;AAAA,EACN,WAAWA,oBAAmB;AAAA,EAC9B,UAAU;AAAA,IACR;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAWC,cAAa;AAAA,MACxB,MAAM;AAAA;AAAA,QAEJ,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAWC,wBAAuB;AAAA,MAClC,MAAM;AAAA;AAAA,QAEJ,OAAO;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACH;;"}
@@ -1,6 +1,6 @@
1
+ import NotificationsLayout from "../components/layouts/NotificationsLayout.vue.js";
1
2
  import Notifications from "../components/pages/Notifications.vue.js";
2
3
  import NotificationPreferences from "../components/sections/NotificationPreferences.vue.js";
3
- import NotificationsLayout from "../components/layouts/NotificationsLayout.vue.js";
4
4
  const nofitications = {
5
5
  path: "/notifications",
6
6
  component: NotificationsLayout,
@@ -1 +1 @@
1
- {"version":3,"file":"notifications.router.js","sources":["../../../../../../src/modules/notifications/router/notifications.router.js"],"sourcesContent":["import Notifications from '../components/pages/Notifications.vue';\nimport NotificationPreferences from '../components/sections/NotificationPreferences.vue';\nimport NotificationsLayout from '../components/layouts/NotificationsLayout.vue';\n\nconst nofitications = {\n path: '/notifications',\n component: NotificationsLayout,\n children: [\n {\n path: '',\n name: 'Notifications',\n component: Notifications,\n meta: {\n // requiresAuth: true,\n title: 'Notifications'\n }\n },\n {\n path: 'preferences',\n name: 'NotificationPreferences',\n component: NotificationPreferences,\n meta: {\n // requiresAuth: true,\n title: 'Notification Preferences'\n }\n }\n ]\n};\n\nexport default nofitications;"],"names":[],"mappings":";;;AAIK,MAAC,gBAAgB;AAAA,EACpB,MAAM;AAAA,EACN,WAAW;AAAA,EACX,UAAU;AAAA,IACR;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,MACX,MAAM;AAAA;AAAA,QAEJ,OAAO;AAAA,MACf;AAAA,IACK;AAAA,IACD;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,MACX,MAAM;AAAA;AAAA,QAEJ,OAAO;AAAA,MACf;AAAA,IACA;AAAA,EACA;AACA;"}
1
+ {"version":3,"file":"notifications.router.js","sources":["../../../../../../src/modules/notifications/router/notifications.router.js"],"sourcesContent":["import NotificationsLayout from '../components/layouts/NotificationsLayout.vue';\nimport Notifications from '../components/pages/Notifications.vue';\nimport NotificationPreferences from '../components/sections/NotificationPreferences.vue';\n\nconst nofitications = {\n path: '/notifications',\n component: NotificationsLayout,\n children: [\n {\n path: '',\n name: 'Notifications',\n component: Notifications,\n meta: {\n // requiresAuth: true,\n title: 'Notifications',\n },\n },\n {\n path: 'preferences',\n name: 'NotificationPreferences',\n component: NotificationPreferences,\n meta: {\n // requiresAuth: true,\n title: 'Notification Preferences',\n },\n },\n ],\n};\n\nexport default nofitications;\n"],"names":[],"mappings":";;;AAIK,MAAC,gBAAgB;AAAA,EACpB,MAAM;AAAA,EACN,WAAW;AAAA,EACX,UAAU;AAAA,IACR;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,MACX,MAAM;AAAA;AAAA,QAEJ,OAAO;AAAA,MACR;AAAA,IACF;AAAA,IACD;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,MACX,MAAM;AAAA;AAAA,QAEJ,OAAO;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACH;"}
@@ -1 +1 @@
1
- {"version":3,"file":"notifications.store.cjs","sources":["../../../../../../src/modules/notifications/store/notifications.store.js"],"sourcesContent":["// Dependencies\nimport { reactive, ref, computed, toRefs, watch } from \"vue\";\n// Setup Axios\nimport $axios from '@martyrs/src/modules/globals/views/utils/axios-instance.js';\n// Globals\nimport { setError } from '@martyrs/src/modules/globals/views/store/globals';\n// Auth\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth';\n\n// Initial state for a notification\nconst notificationInitState = {\n _id: null,\n title: '',\n body: '',\n type: 'info',\n metadata: {},\n userId: null,\n status: 'pending',\n createdAt: null,\n updatedAt: null\n};\n\n// Initial state for notification preferences\nconst preferencesInitState = {\n web: true,\n push: true,\n email: true,\n sms: true,\n telegram: false,\n whatsapp: false\n};\n\n// State declaration\nconst state = reactive({\n notifications: [],\n unreadCount: 0,\n current: {...notificationInitState},\n preferences: {...preferencesInitState},\n deviceRegistered: false,\n loading: false,\n lastSync: null\n});\n\nconst actions = {\n /**\n * Get user notifications from server\n */\n async getNotifications(userId = null) {\n try {\n // Use provided userId or get from auth store\n const userIdToUse = userId || auth.state.user._id;\n \n if (!userIdToUse) {\n console.warn('Cannot get notifications: No user ID found');\n return [];\n }\n \n state.loading = true;\n const response = await $axios.get(`/api/notifications/user/${userIdToUse}`);\n state.notifications = response.data;\n state.lastSync = new Date().toISOString();\n updateUnreadCount();\n state.loading = false;\n return response.data;\n } catch (error) {\n state.loading = false;\n setError(error);\n throw error;\n }\n },\n\n /**\n * Mark a notification as read\n */\n async markAsRead(notificationId) {\n try {\n const response = await $axios.put(`/api/notifications/${notificationId}/read`);\n \n // Update the notification in the local state\n const index = state.notifications.findIndex(n => n._id === notificationId);\n if (index !== -1) {\n state.notifications[index] = response.data;\n updateUnreadCount();\n }\n \n return response.data;\n } catch (error) {\n setError(error);\n throw error;\n }\n },\n\n /**\n * Synchronize notification status without API call\n * (For use with WebSocket updates)\n */\n syncNotificationStatus(notificationId, status) {\n const index = state.notifications.findIndex(n => n._id === notificationId);\n if (index !== -1) {\n state.notifications[index].status = status;\n state.notifications[index].updatedAt = new Date().toISOString();\n updateUnreadCount();\n }\n },\n\n /**\n * Register a device for push notifications\n */\n async registerDevice(deviceData) {\n try {\n // Add the current user ID to the device data\n const userId = auth.state.user._id;\n if (!userId) {\n console.warn('Cannot register device: No user ID found');\n return;\n }\n \n deviceData.userId = userId;\n \n const response = await $axios.post('/api/notifications/devices/register', deviceData);\n state.deviceRegistered = true;\n return response.data;\n } catch (error) {\n setError(error);\n throw error;\n }\n },\n\n /**\n * Update notification preferences\n */\n async updatePreferences(preferences) {\n try {\n const userId = auth.state.user._id;\n if (!userId) {\n console.warn('Cannot update preferences: No user ID found');\n return;\n }\n \n // Transform preferences object to array format expected by the API\n const preferencesArray = Object.entries(preferences).map(([channelType, isEnabled]) => {\n return {\n channelType,\n notificationType: 'all', // Default type, can be made more specific\n isEnabled\n };\n });\n \n const response = await $axios.put('/api/notifications/preferences', {\n userId,\n preferences: preferencesArray\n });\n \n // Update state with new preferences\n const newPreferences = {};\n response.data.forEach(pref => {\n newPreferences[pref.channelType] = pref.isEnabled;\n });\n \n state.preferences = {...preferencesInitState, ...newPreferences};\n return response.data;\n } catch (error) {\n setError(error);\n throw error;\n }\n },\n\n /**\n * Get notification preferences\n */\n async getPreferences() {\n try {\n const userId = auth.state.user._id;\n if (!userId) {\n console.warn('Cannot get preferences: No user ID found');\n return;\n }\n \n // Assuming an endpoint exists to fetch preferences\n const response = await $axios.get(`/api/notifications/preferences/${userId}`);\n \n // Transform API response to our state format\n const newPreferences = {};\n response.data.forEach(pref => {\n newPreferences[pref.channelType] = pref.isEnabled;\n });\n \n state.preferences = {...preferencesInitState, ...newPreferences};\n return response.data;\n } catch (error) {\n setError(error);\n // If API fails, use default preferences\n state.preferences = {...preferencesInitState};\n throw error;\n }\n },\n\n /**\n * Add a local notification (for handling push notifications or WebSocket notifications)\n */\n addLocalNotification(notification) {\n // Check if notification already exists by ID to prevent duplicates\n if (notification._id) {\n const existingIndex = state.notifications.findIndex(n => n._id === notification._id);\n if (existingIndex !== -1) {\n // Update existing notification\n state.notifications[existingIndex] = {\n ...state.notifications[existingIndex],\n ...notification,\n updatedAt: new Date().toISOString()\n };\n updateUnreadCount();\n return;\n }\n }\n \n // Create a notification object that matches our expected format\n const newNotification = {\n _id: notification._id || Date.now().toString(), // Use provided ID or generate temporary one\n title: notification.title,\n body: notification.body,\n type: notification.type || notification.data?.type || 'info',\n metadata: notification.data || notification.metadata || {},\n status: notification.status || 'unread',\n createdAt: notification.createdAt || new Date().toISOString(),\n updatedAt: notification.updatedAt || new Date().toISOString()\n };\n \n // Add to local state\n state.notifications.unshift(newNotification);\n updateUnreadCount();\n },\n\n /**\n * Handle notification action (e.g., when user taps on push notification)\n */\n handleNotificationAction(data) {\n // Mark notification as read if ID is provided\n if (data.notificationId) {\n this.markAsRead(data.notificationId);\n }\n \n // Navigate based on notification type and metadata\n if (data.route) {\n // router.push(data.route);\n alert('1')\n } else if (data.type === 'order') {\n // router.push(`/orders/${data.orderId}`);\n alert('2')\n } else if (data.type === 'message') {\n // router.push('/messages');\n alert('3')\n } else {\n // Default to notifications page\n // router.push('/notifications');\n alert('4')\n }\n },\n \n /**\n * Mark all notifications as read\n */\n async markAllAsRead() {\n try {\n const userId = auth.state.user._id;\n if (!userId) {\n console.warn('Cannot mark all as read: No user ID found');\n return;\n }\n \n const response = await $axios.put(`/api/notifications/user/${userId}/read-all`);\n \n // Update all notifications in local state\n state.notifications.forEach(notification => {\n notification.status = 'read';\n notification.updatedAt = new Date().toISOString();\n });\n \n updateUnreadCount();\n return response.data;\n } catch (error) {\n setError(error);\n throw error;\n }\n }\n};\n\nconst mutations = {\n resetNotifications() {\n state.notifications = [];\n state.unreadCount = 0;\n state.lastSync = null;\n },\n \n resetCurrent() {\n state.current = {...notificationInitState};\n },\n \n resetPreferences() {\n state.preferences = {...preferencesInitState};\n }\n};\n\n// Helper functions\nfunction updateUnreadCount() {\n state.unreadCount = state.notifications.filter(n => n.status !== 'read').length;\n}\n\n// Track state changes\nconst history = [];\nhistory.push(state);\n\nwatch(state, (newState) => {\n history.push(newState);\n});\n\n// Computed properties\nconst getters = {\n unreadNotifications: computed(() => {\n return state.notifications.filter(n => n.status !== 'read');\n }),\n \n readNotifications: computed(() => {\n return state.notifications.filter(n => n.status === 'read');\n }),\n \n notificationsByType: computed(() => {\n const result = {};\n state.notifications.forEach(notification => {\n if (!result[notification.type]) {\n result[notification.type] = [];\n }\n result[notification.type].push(notification);\n });\n return result;\n })\n};\n\nexport {\n state,\n actions,\n mutations,\n getters\n};"],"names":["reactive","auth.state","$axios","setError","watch","computed"],"mappings":"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"}
1
+ {"version":3,"file":"notifications.store.cjs","sources":["../../../../../../src/modules/notifications/store/notifications.store.js"],"sourcesContent":["// Dependencies\nimport { computed, reactive, watch } from 'vue';\n// Setup Axios\nimport $axios from '@martyrs/src/modules/globals/views/utils/axios-instance.js';\n// Globals\nimport { setError } from '@martyrs/src/modules/globals/views/store/globals.js';\n// Auth\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\n\n// Initial state for a notification\nconst notificationInitState = {\n _id: null,\n title: '',\n body: '',\n type: 'info',\n metadata: {},\n userId: null,\n status: 'pending',\n createdAt: null,\n updatedAt: null,\n};\n\n// Initial state for notification preferences\nconst preferencesInitState = {\n web: true,\n push: true,\n email: true,\n sms: true,\n telegram: false,\n whatsapp: false,\n};\n\n// State declaration\nconst state = reactive({\n notifications: [],\n unreadCount: 0,\n current: { ...notificationInitState },\n preferences: { ...preferencesInitState },\n deviceRegistered: false,\n loading: false,\n lastSync: null,\n});\n\nconst actions = {\n /**\n * Get user notifications from server\n */\n async getNotifications(userId = null) {\n try {\n // Use provided userId or get from auth store\n const userIdToUse = userId || auth.state.user._id;\n\n if (!userIdToUse) {\n console.warn('Cannot get notifications: No user ID found');\n return [];\n }\n\n state.loading = true;\n const response = await $axios.get(`/api/notifications/user/${userIdToUse}`);\n state.notifications = response.data;\n state.lastSync = new Date().toISOString();\n updateUnreadCount();\n state.loading = false;\n return response.data;\n } catch (error) {\n state.loading = false;\n setError(error);\n throw error;\n }\n },\n\n /**\n * Mark a notification as read\n */\n async markAsRead(notificationId) {\n try {\n const response = await $axios.put(`/api/notifications/${notificationId}/read`);\n\n // Update the notification in the local state\n const index = state.notifications.findIndex(n => n._id === notificationId);\n if (index !== -1) {\n state.notifications[index] = response.data;\n updateUnreadCount();\n }\n\n return response.data;\n } catch (error) {\n setError(error);\n throw error;\n }\n },\n\n /**\n * Synchronize notification status without API call\n * (For use with WebSocket updates)\n */\n syncNotificationStatus(notificationId, status) {\n const index = state.notifications.findIndex(n => n._id === notificationId);\n if (index !== -1) {\n state.notifications[index].status = status;\n state.notifications[index].updatedAt = new Date().toISOString();\n updateUnreadCount();\n }\n },\n\n /**\n * Register a device for push notifications\n */\n async registerDevice(deviceData) {\n try {\n // Add the current user ID to the device data\n const userId = auth.state.user._id;\n if (!userId) {\n console.warn('Cannot register device: No user ID found');\n return;\n }\n\n deviceData.userId = userId;\n\n const response = await $axios.post('/api/notifications/devices/register', deviceData);\n state.deviceRegistered = true;\n return response.data;\n } catch (error) {\n setError(error);\n throw error;\n }\n },\n\n /**\n * Update notification preferences\n */\n async updatePreferences(preferences) {\n try {\n const userId = auth.state.user._id;\n if (!userId) {\n console.warn('Cannot update preferences: No user ID found');\n return;\n }\n\n // Transform preferences object to array format expected by the API\n const preferencesArray = Object.entries(preferences).map(([channelType, isEnabled]) => {\n return {\n channelType,\n notificationType: 'all', // Default type, can be made more specific\n isEnabled,\n };\n });\n\n const response = await $axios.put('/api/notifications/preferences', {\n userId,\n preferences: preferencesArray,\n });\n\n // Update state with new preferences\n const newPreferences = {};\n response.data.forEach(pref => {\n newPreferences[pref.channelType] = pref.isEnabled;\n });\n\n state.preferences = { ...preferencesInitState, ...newPreferences };\n return response.data;\n } catch (error) {\n setError(error);\n throw error;\n }\n },\n\n /**\n * Get notification preferences\n */\n async getPreferences() {\n try {\n const userId = auth.state.user._id;\n if (!userId) {\n console.warn('Cannot get preferences: No user ID found');\n return;\n }\n\n // Assuming an endpoint exists to fetch preferences\n const response = await $axios.get(`/api/notifications/preferences/${userId}`);\n\n // Transform API response to our state format\n const newPreferences = {};\n response.data.forEach(pref => {\n newPreferences[pref.channelType] = pref.isEnabled;\n });\n\n state.preferences = { ...preferencesInitState, ...newPreferences };\n return response.data;\n } catch (error) {\n setError(error);\n // If API fails, use default preferences\n state.preferences = { ...preferencesInitState };\n throw error;\n }\n },\n\n /**\n * Add a local notification (for handling push notifications or WebSocket notifications)\n */\n addLocalNotification(notification) {\n // Check if notification already exists by ID to prevent duplicates\n if (notification._id) {\n const existingIndex = state.notifications.findIndex(n => n._id === notification._id);\n if (existingIndex !== -1) {\n // Update existing notification\n state.notifications[existingIndex] = {\n ...state.notifications[existingIndex],\n ...notification,\n updatedAt: new Date().toISOString(),\n };\n updateUnreadCount();\n return;\n }\n }\n\n // Create a notification object that matches our expected format\n const newNotification = {\n _id: notification._id || Date.now().toString(), // Use provided ID or generate temporary one\n title: notification.title,\n body: notification.body,\n type: notification.type || notification.data?.type || 'info',\n metadata: notification.data || notification.metadata || {},\n status: notification.status || 'unread',\n createdAt: notification.createdAt || new Date().toISOString(),\n updatedAt: notification.updatedAt || new Date().toISOString(),\n };\n\n // Add to local state\n state.notifications.unshift(newNotification);\n updateUnreadCount();\n },\n\n /**\n * Handle notification action (e.g., when user taps on push notification)\n */\n handleNotificationAction(data) {\n // Mark notification as read if ID is provided\n if (data.notificationId) {\n this.markAsRead(data.notificationId);\n }\n\n // Navigate based on notification type and metadata\n if (data.route) {\n // router.push(data.route);\n alert('1');\n } else if (data.type === 'order') {\n // router.push(`/orders/${data.orderId}`);\n alert('2');\n } else if (data.type === 'message') {\n // router.push('/messages');\n alert('3');\n } else {\n // Default to notifications page\n // router.push('/notifications');\n alert('4');\n }\n },\n\n /**\n * Mark all notifications as read\n */\n async markAllAsRead() {\n try {\n const userId = auth.state.user._id;\n if (!userId) {\n console.warn('Cannot mark all as read: No user ID found');\n return;\n }\n\n const response = await $axios.put(`/api/notifications/user/${userId}/read-all`);\n\n // Update all notifications in local state\n state.notifications.forEach(notification => {\n notification.status = 'read';\n notification.updatedAt = new Date().toISOString();\n });\n\n updateUnreadCount();\n return response.data;\n } catch (error) {\n setError(error);\n throw error;\n }\n },\n};\n\nconst mutations = {\n resetNotifications() {\n state.notifications = [];\n state.unreadCount = 0;\n state.lastSync = null;\n },\n\n resetCurrent() {\n state.current = { ...notificationInitState };\n },\n\n resetPreferences() {\n state.preferences = { ...preferencesInitState };\n },\n};\n\n// Helper functions\nfunction updateUnreadCount() {\n state.unreadCount = state.notifications.filter(n => n.status !== 'read').length;\n}\n\n// Track state changes\nconst history = [];\nhistory.push(state);\n\nwatch(state, newState => {\n history.push(newState);\n});\n\n// Computed properties\nconst getters = {\n unreadNotifications: computed(() => {\n return state.notifications.filter(n => n.status !== 'read');\n }),\n\n readNotifications: computed(() => {\n return state.notifications.filter(n => n.status === 'read');\n }),\n\n notificationsByType: computed(() => {\n const result = {};\n state.notifications.forEach(notification => {\n if (!result[notification.type]) {\n result[notification.type] = [];\n }\n result[notification.type].push(notification);\n });\n return result;\n }),\n};\n\nexport { actions, getters, mutations, state };\n"],"names":["reactive","auth.state","$axios","setError","watch","computed"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"notifications.store.js","sources":["../../../../../../src/modules/notifications/store/notifications.store.js"],"sourcesContent":["// Dependencies\nimport { reactive, ref, computed, toRefs, watch } from \"vue\";\n// Setup Axios\nimport $axios from '@martyrs/src/modules/globals/views/utils/axios-instance.js';\n// Globals\nimport { setError } from '@martyrs/src/modules/globals/views/store/globals';\n// Auth\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth';\n\n// Initial state for a notification\nconst notificationInitState = {\n _id: null,\n title: '',\n body: '',\n type: 'info',\n metadata: {},\n userId: null,\n status: 'pending',\n createdAt: null,\n updatedAt: null\n};\n\n// Initial state for notification preferences\nconst preferencesInitState = {\n web: true,\n push: true,\n email: true,\n sms: true,\n telegram: false,\n whatsapp: false\n};\n\n// State declaration\nconst state = reactive({\n notifications: [],\n unreadCount: 0,\n current: {...notificationInitState},\n preferences: {...preferencesInitState},\n deviceRegistered: false,\n loading: false,\n lastSync: null\n});\n\nconst actions = {\n /**\n * Get user notifications from server\n */\n async getNotifications(userId = null) {\n try {\n // Use provided userId or get from auth store\n const userIdToUse = userId || auth.state.user._id;\n \n if (!userIdToUse) {\n console.warn('Cannot get notifications: No user ID found');\n return [];\n }\n \n state.loading = true;\n const response = await $axios.get(`/api/notifications/user/${userIdToUse}`);\n state.notifications = response.data;\n state.lastSync = new Date().toISOString();\n updateUnreadCount();\n state.loading = false;\n return response.data;\n } catch (error) {\n state.loading = false;\n setError(error);\n throw error;\n }\n },\n\n /**\n * Mark a notification as read\n */\n async markAsRead(notificationId) {\n try {\n const response = await $axios.put(`/api/notifications/${notificationId}/read`);\n \n // Update the notification in the local state\n const index = state.notifications.findIndex(n => n._id === notificationId);\n if (index !== -1) {\n state.notifications[index] = response.data;\n updateUnreadCount();\n }\n \n return response.data;\n } catch (error) {\n setError(error);\n throw error;\n }\n },\n\n /**\n * Synchronize notification status without API call\n * (For use with WebSocket updates)\n */\n syncNotificationStatus(notificationId, status) {\n const index = state.notifications.findIndex(n => n._id === notificationId);\n if (index !== -1) {\n state.notifications[index].status = status;\n state.notifications[index].updatedAt = new Date().toISOString();\n updateUnreadCount();\n }\n },\n\n /**\n * Register a device for push notifications\n */\n async registerDevice(deviceData) {\n try {\n // Add the current user ID to the device data\n const userId = auth.state.user._id;\n if (!userId) {\n console.warn('Cannot register device: No user ID found');\n return;\n }\n \n deviceData.userId = userId;\n \n const response = await $axios.post('/api/notifications/devices/register', deviceData);\n state.deviceRegistered = true;\n return response.data;\n } catch (error) {\n setError(error);\n throw error;\n }\n },\n\n /**\n * Update notification preferences\n */\n async updatePreferences(preferences) {\n try {\n const userId = auth.state.user._id;\n if (!userId) {\n console.warn('Cannot update preferences: No user ID found');\n return;\n }\n \n // Transform preferences object to array format expected by the API\n const preferencesArray = Object.entries(preferences).map(([channelType, isEnabled]) => {\n return {\n channelType,\n notificationType: 'all', // Default type, can be made more specific\n isEnabled\n };\n });\n \n const response = await $axios.put('/api/notifications/preferences', {\n userId,\n preferences: preferencesArray\n });\n \n // Update state with new preferences\n const newPreferences = {};\n response.data.forEach(pref => {\n newPreferences[pref.channelType] = pref.isEnabled;\n });\n \n state.preferences = {...preferencesInitState, ...newPreferences};\n return response.data;\n } catch (error) {\n setError(error);\n throw error;\n }\n },\n\n /**\n * Get notification preferences\n */\n async getPreferences() {\n try {\n const userId = auth.state.user._id;\n if (!userId) {\n console.warn('Cannot get preferences: No user ID found');\n return;\n }\n \n // Assuming an endpoint exists to fetch preferences\n const response = await $axios.get(`/api/notifications/preferences/${userId}`);\n \n // Transform API response to our state format\n const newPreferences = {};\n response.data.forEach(pref => {\n newPreferences[pref.channelType] = pref.isEnabled;\n });\n \n state.preferences = {...preferencesInitState, ...newPreferences};\n return response.data;\n } catch (error) {\n setError(error);\n // If API fails, use default preferences\n state.preferences = {...preferencesInitState};\n throw error;\n }\n },\n\n /**\n * Add a local notification (for handling push notifications or WebSocket notifications)\n */\n addLocalNotification(notification) {\n // Check if notification already exists by ID to prevent duplicates\n if (notification._id) {\n const existingIndex = state.notifications.findIndex(n => n._id === notification._id);\n if (existingIndex !== -1) {\n // Update existing notification\n state.notifications[existingIndex] = {\n ...state.notifications[existingIndex],\n ...notification,\n updatedAt: new Date().toISOString()\n };\n updateUnreadCount();\n return;\n }\n }\n \n // Create a notification object that matches our expected format\n const newNotification = {\n _id: notification._id || Date.now().toString(), // Use provided ID or generate temporary one\n title: notification.title,\n body: notification.body,\n type: notification.type || notification.data?.type || 'info',\n metadata: notification.data || notification.metadata || {},\n status: notification.status || 'unread',\n createdAt: notification.createdAt || new Date().toISOString(),\n updatedAt: notification.updatedAt || new Date().toISOString()\n };\n \n // Add to local state\n state.notifications.unshift(newNotification);\n updateUnreadCount();\n },\n\n /**\n * Handle notification action (e.g., when user taps on push notification)\n */\n handleNotificationAction(data) {\n // Mark notification as read if ID is provided\n if (data.notificationId) {\n this.markAsRead(data.notificationId);\n }\n \n // Navigate based on notification type and metadata\n if (data.route) {\n // router.push(data.route);\n alert('1')\n } else if (data.type === 'order') {\n // router.push(`/orders/${data.orderId}`);\n alert('2')\n } else if (data.type === 'message') {\n // router.push('/messages');\n alert('3')\n } else {\n // Default to notifications page\n // router.push('/notifications');\n alert('4')\n }\n },\n \n /**\n * Mark all notifications as read\n */\n async markAllAsRead() {\n try {\n const userId = auth.state.user._id;\n if (!userId) {\n console.warn('Cannot mark all as read: No user ID found');\n return;\n }\n \n const response = await $axios.put(`/api/notifications/user/${userId}/read-all`);\n \n // Update all notifications in local state\n state.notifications.forEach(notification => {\n notification.status = 'read';\n notification.updatedAt = new Date().toISOString();\n });\n \n updateUnreadCount();\n return response.data;\n } catch (error) {\n setError(error);\n throw error;\n }\n }\n};\n\nconst mutations = {\n resetNotifications() {\n state.notifications = [];\n state.unreadCount = 0;\n state.lastSync = null;\n },\n \n resetCurrent() {\n state.current = {...notificationInitState};\n },\n \n resetPreferences() {\n state.preferences = {...preferencesInitState};\n }\n};\n\n// Helper functions\nfunction updateUnreadCount() {\n state.unreadCount = state.notifications.filter(n => n.status !== 'read').length;\n}\n\n// Track state changes\nconst history = [];\nhistory.push(state);\n\nwatch(state, (newState) => {\n history.push(newState);\n});\n\n// Computed properties\nconst getters = {\n unreadNotifications: computed(() => {\n return state.notifications.filter(n => n.status !== 'read');\n }),\n \n readNotifications: computed(() => {\n return state.notifications.filter(n => n.status === 'read');\n }),\n \n notificationsByType: computed(() => {\n const result = {};\n state.notifications.forEach(notification => {\n if (!result[notification.type]) {\n result[notification.type] = [];\n }\n result[notification.type].push(notification);\n });\n return result;\n })\n};\n\nexport {\n state,\n actions,\n mutations,\n getters\n};"],"names":["auth.state"],"mappings":"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"}
1
+ {"version":3,"file":"notifications.store.js","sources":["../../../../../../src/modules/notifications/store/notifications.store.js"],"sourcesContent":["// Dependencies\nimport { computed, reactive, watch } from 'vue';\n// Setup Axios\nimport $axios from '@martyrs/src/modules/globals/views/utils/axios-instance.js';\n// Globals\nimport { setError } from '@martyrs/src/modules/globals/views/store/globals.js';\n// Auth\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\n\n// Initial state for a notification\nconst notificationInitState = {\n _id: null,\n title: '',\n body: '',\n type: 'info',\n metadata: {},\n userId: null,\n status: 'pending',\n createdAt: null,\n updatedAt: null,\n};\n\n// Initial state for notification preferences\nconst preferencesInitState = {\n web: true,\n push: true,\n email: true,\n sms: true,\n telegram: false,\n whatsapp: false,\n};\n\n// State declaration\nconst state = reactive({\n notifications: [],\n unreadCount: 0,\n current: { ...notificationInitState },\n preferences: { ...preferencesInitState },\n deviceRegistered: false,\n loading: false,\n lastSync: null,\n});\n\nconst actions = {\n /**\n * Get user notifications from server\n */\n async getNotifications(userId = null) {\n try {\n // Use provided userId or get from auth store\n const userIdToUse = userId || auth.state.user._id;\n\n if (!userIdToUse) {\n console.warn('Cannot get notifications: No user ID found');\n return [];\n }\n\n state.loading = true;\n const response = await $axios.get(`/api/notifications/user/${userIdToUse}`);\n state.notifications = response.data;\n state.lastSync = new Date().toISOString();\n updateUnreadCount();\n state.loading = false;\n return response.data;\n } catch (error) {\n state.loading = false;\n setError(error);\n throw error;\n }\n },\n\n /**\n * Mark a notification as read\n */\n async markAsRead(notificationId) {\n try {\n const response = await $axios.put(`/api/notifications/${notificationId}/read`);\n\n // Update the notification in the local state\n const index = state.notifications.findIndex(n => n._id === notificationId);\n if (index !== -1) {\n state.notifications[index] = response.data;\n updateUnreadCount();\n }\n\n return response.data;\n } catch (error) {\n setError(error);\n throw error;\n }\n },\n\n /**\n * Synchronize notification status without API call\n * (For use with WebSocket updates)\n */\n syncNotificationStatus(notificationId, status) {\n const index = state.notifications.findIndex(n => n._id === notificationId);\n if (index !== -1) {\n state.notifications[index].status = status;\n state.notifications[index].updatedAt = new Date().toISOString();\n updateUnreadCount();\n }\n },\n\n /**\n * Register a device for push notifications\n */\n async registerDevice(deviceData) {\n try {\n // Add the current user ID to the device data\n const userId = auth.state.user._id;\n if (!userId) {\n console.warn('Cannot register device: No user ID found');\n return;\n }\n\n deviceData.userId = userId;\n\n const response = await $axios.post('/api/notifications/devices/register', deviceData);\n state.deviceRegistered = true;\n return response.data;\n } catch (error) {\n setError(error);\n throw error;\n }\n },\n\n /**\n * Update notification preferences\n */\n async updatePreferences(preferences) {\n try {\n const userId = auth.state.user._id;\n if (!userId) {\n console.warn('Cannot update preferences: No user ID found');\n return;\n }\n\n // Transform preferences object to array format expected by the API\n const preferencesArray = Object.entries(preferences).map(([channelType, isEnabled]) => {\n return {\n channelType,\n notificationType: 'all', // Default type, can be made more specific\n isEnabled,\n };\n });\n\n const response = await $axios.put('/api/notifications/preferences', {\n userId,\n preferences: preferencesArray,\n });\n\n // Update state with new preferences\n const newPreferences = {};\n response.data.forEach(pref => {\n newPreferences[pref.channelType] = pref.isEnabled;\n });\n\n state.preferences = { ...preferencesInitState, ...newPreferences };\n return response.data;\n } catch (error) {\n setError(error);\n throw error;\n }\n },\n\n /**\n * Get notification preferences\n */\n async getPreferences() {\n try {\n const userId = auth.state.user._id;\n if (!userId) {\n console.warn('Cannot get preferences: No user ID found');\n return;\n }\n\n // Assuming an endpoint exists to fetch preferences\n const response = await $axios.get(`/api/notifications/preferences/${userId}`);\n\n // Transform API response to our state format\n const newPreferences = {};\n response.data.forEach(pref => {\n newPreferences[pref.channelType] = pref.isEnabled;\n });\n\n state.preferences = { ...preferencesInitState, ...newPreferences };\n return response.data;\n } catch (error) {\n setError(error);\n // If API fails, use default preferences\n state.preferences = { ...preferencesInitState };\n throw error;\n }\n },\n\n /**\n * Add a local notification (for handling push notifications or WebSocket notifications)\n */\n addLocalNotification(notification) {\n // Check if notification already exists by ID to prevent duplicates\n if (notification._id) {\n const existingIndex = state.notifications.findIndex(n => n._id === notification._id);\n if (existingIndex !== -1) {\n // Update existing notification\n state.notifications[existingIndex] = {\n ...state.notifications[existingIndex],\n ...notification,\n updatedAt: new Date().toISOString(),\n };\n updateUnreadCount();\n return;\n }\n }\n\n // Create a notification object that matches our expected format\n const newNotification = {\n _id: notification._id || Date.now().toString(), // Use provided ID or generate temporary one\n title: notification.title,\n body: notification.body,\n type: notification.type || notification.data?.type || 'info',\n metadata: notification.data || notification.metadata || {},\n status: notification.status || 'unread',\n createdAt: notification.createdAt || new Date().toISOString(),\n updatedAt: notification.updatedAt || new Date().toISOString(),\n };\n\n // Add to local state\n state.notifications.unshift(newNotification);\n updateUnreadCount();\n },\n\n /**\n * Handle notification action (e.g., when user taps on push notification)\n */\n handleNotificationAction(data) {\n // Mark notification as read if ID is provided\n if (data.notificationId) {\n this.markAsRead(data.notificationId);\n }\n\n // Navigate based on notification type and metadata\n if (data.route) {\n // router.push(data.route);\n alert('1');\n } else if (data.type === 'order') {\n // router.push(`/orders/${data.orderId}`);\n alert('2');\n } else if (data.type === 'message') {\n // router.push('/messages');\n alert('3');\n } else {\n // Default to notifications page\n // router.push('/notifications');\n alert('4');\n }\n },\n\n /**\n * Mark all notifications as read\n */\n async markAllAsRead() {\n try {\n const userId = auth.state.user._id;\n if (!userId) {\n console.warn('Cannot mark all as read: No user ID found');\n return;\n }\n\n const response = await $axios.put(`/api/notifications/user/${userId}/read-all`);\n\n // Update all notifications in local state\n state.notifications.forEach(notification => {\n notification.status = 'read';\n notification.updatedAt = new Date().toISOString();\n });\n\n updateUnreadCount();\n return response.data;\n } catch (error) {\n setError(error);\n throw error;\n }\n },\n};\n\nconst mutations = {\n resetNotifications() {\n state.notifications = [];\n state.unreadCount = 0;\n state.lastSync = null;\n },\n\n resetCurrent() {\n state.current = { ...notificationInitState };\n },\n\n resetPreferences() {\n state.preferences = { ...preferencesInitState };\n },\n};\n\n// Helper functions\nfunction updateUnreadCount() {\n state.unreadCount = state.notifications.filter(n => n.status !== 'read').length;\n}\n\n// Track state changes\nconst history = [];\nhistory.push(state);\n\nwatch(state, newState => {\n history.push(newState);\n});\n\n// Computed properties\nconst getters = {\n unreadNotifications: computed(() => {\n return state.notifications.filter(n => n.status !== 'read');\n }),\n\n readNotifications: computed(() => {\n return state.notifications.filter(n => n.status === 'read');\n }),\n\n notificationsByType: computed(() => {\n const result = {};\n state.notifications.forEach(notification => {\n if (!result[notification.type]) {\n result[notification.type] = [];\n }\n result[notification.type].push(notification);\n });\n return result;\n }),\n};\n\nexport { actions, getters, mutations, state };\n"],"names":["auth.state"],"mappings":"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"}
@@ -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 Tooltip = require("../../../../components/Tooltip/Tooltip.vue.cjs");
4
+ const Tooltip = require("../../../../components/Tooltip/Tooltip.vue2.cjs");
5
5
  const IconStatusCreated = require("../icons/IconStatusCreated.vue.cjs");
6
6
  const IconStatusConfirmed = require("../icons/IconStatusConfirmed.vue.cjs");
7
7
  const IconStatusInUse = require("../icons/IconStatusInUse.vue.cjs");
@@ -1,5 +1,5 @@
1
1
  import { computed, createElementBlock, openBlock, createElementVNode, createCommentVNode, normalizeClass, Fragment, renderList, toDisplayString, createVNode, withCtx, createBlock, resolveDynamicComponent } from "vue";
2
- import _sfc_main$7 from "../../../../components/Tooltip/Tooltip.vue.js";
2
+ import _sfc_main$7 from "../../../../components/Tooltip/Tooltip.vue2.js";
3
3
  import _sfc_main$6 from "../icons/IconStatusCreated.vue.js";
4
4
  import _sfc_main$5 from "../icons/IconStatusConfirmed.vue.js";
5
5
  import _sfc_main$2 from "../icons/IconStatusInUse.vue.js";
@@ -10,7 +10,7 @@ const CardOrderItem = require("../blocks/CardOrderItem.vue.cjs");
10
10
  const CardOrganization = require("../../../organizations/components/blocks/CardOrganization.vue.cjs");
11
11
  const ChatPage = require("../../../chats/components/pages/ChatPage.vue.cjs");
12
12
  const PriceTotal = require("../elements/PriceTotal.vue.cjs");
13
- ;/* empty css */
13
+ ;/* empty css */
14
14
  const globals = require("../../../globals/views/store/globals.cjs");
15
15
  const auth = require("../../../auth/views/store/auth.cjs");
16
16
  const orders = require("../../store/orders.cjs");
@@ -385,6 +385,6 @@ const _sfc_main = {
385
385
  };
386
386
  }
387
387
  };
388
- const OrderBackoffice = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-529cceb6"]]);
388
+ const OrderBackoffice = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-3da4557c"]]);
389
389
  exports.default = OrderBackoffice;
390
390
  //# sourceMappingURL=OrderBackoffice.vue.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"OrderBackoffice.vue.cjs","sources":["../../../../../../../src/modules/orders/components/pages/OrderBackoffice.vue"],"sourcesContent":["<template>\n\t<div v-if=\"order && orderOrganization\" class=\"pd-thin bg-white\"> \n\n\t <div v-if=\"order\" class=\"mn-b-thin pos-relative w-100 bg-main radius-medium pd-medium\">\n\t \t<div class=\"mn-b-small flex-nowrap flex\">\n\t\t \t<p class=\"t-medium p-medium\">\n\t\t \tOrder No: <span class=\"p-small t-transp\">#{{order._id}}</span>\n\t\t </p>\n\t\t\t</div>\n\n \t<div class=\"flex-nowrap flex gap-thin pos-relative \">\n\t <div v-for=\"(status, index) in globals.state.options.orders.statuses\" :key=\"index\" class=\"w-20\">\n\t <div\n\t \tclass=\"bg-white br-anim br-glow radius-extra h-1r w-100\"\n\t :class=\"\n\t\t\t\t { 'br-glow-anim': isActiveStatus(index) },\n\t\t\t\t { 't-transp': !isActiveStatus(index) },\n\t\t\t\t { 'blink': order.status === status.value && getNextStatus(order.status) }\n\t\t\t\t \"\n\t />\n\t <div \n\t \t:class=\"{ 't-transp': !isActiveStatus(index) }\"\n\t\t\t\t class=\"mn-t-thin p-small t-medium uppercase\">{{ status.value }}</div>\n\t \t</div>\n\t\t </div>\n\t </div>\n\n \t <Popup \n title=\"Change payment\" \n @close-popup=\"closePaymentPopup\" \n :isPopupOpen=\"isOpenPaymentPopup\"\n class=\"bg-light w-min-25r w-max-25r radius-medium pd-big\"\n >\n \t<Select \n v-model:select=\"selectedPayments.type\"\n :property=\"'value'\"\n label=\"Type\"\n :options=\"[\n {name: 'Cash', value: 'cash'}, \n {name: 'Card', value: 'card'}, \n {name: 'Bank Transfer', value: 'bank'},\n ]\"\n placeholder=\"Select type of payment\" \n size=\"small\"\n class=\"bg-white mn-b-thin pd-regular radius-small w-100\"\n />\n\n <Select \n v-model:select=\"selectedPayments.status\"\n :property=\"'value'\"\n label=\"Status\"\n :options=\"[\n {name: 'Unpaid', value: 'unpaid'}, \n {name: 'Paid', value: 'paid'}, \n {name: 'Refunded', value: 'refunded'},\n ]\"\n placeholder=\"Select status of payment\" \n size=\"small\"\n class=\"bg-white mn-b-small pd-regular radius-small w-100\"\n />\n\n\n <Button :submit=\"changePaymentStatus\" class=\"t-white w-100 bg-second\">\n\t\t\t\t<span>Change Status</span>\n\t\t\t</Button>\n\t \t</Popup>\n\n\t <Popup \n title=\"Change order status\" \n @close-popup=\"closeStatusPopup\" \n :isPopupOpen=\"isOpeStatusPopup\"\n class=\"bg-light w-min-30r w-max-30r radius-medium pd-big\"\n >\n\n\t\t\t<!-- Добавить выбор примерного времени -->\n\n \t<ul class=\"flex gap-thin flex-column mn-b-thin\">\n \t\t\t<CardOrderItem\n \t\t\t\tv-for=\"(product, index) in order.positions\" :key=\"product._id\"\n \t\t\t\t:editable=\"true\" \n \t\t\t\t:product=\"product\" \n \t\t\t\t:increase=\"product => orders.mutations.incrementItemQuantity(order, product._id)\"\n\t :decrease=\"product => orders.mutations.decrementItemQuantity(order, product._id)\"\n\t :remove=\"product => orders.mutations.removeProduct(order, product._id)\"\n\t @updateRentDates=\"(product, dates) => shopcart.actions.updateRentDates({ positions: order.positions, productId: product._id, dates })\"\n \t\t\t\tclass=\"bg-white radius-small pd-small\"\n \t\t\t/>\n </ul>\n \n <PriceTotal \n :totalPrice=\"cartTotalPrice\"\n :currency=\"returnCurrency()\"\n :showFees=\"globals.state.options?.orders?.showFees\"\n :feesRate=\"globals.state.options?.orders?.feesRate || 0\"\n :showVat=\"globals.state.options?.orders?.showVat\"\n :vatRate=\"globals.state.options?.orders?.vatRate || 0\"\n />\n\n \t<Button :submit=\"setNextStatus\" class=\"t-white w-100 bg-second\">\n\t\t\t\t<span>{{'Confirm Changing to ' + (getNextStatus(order.status)).label}}</span>\n\t\t\t</Button>\n\t \t</Popup>\n\n\n\t \n\t <div v-if=\"order\" class=\"gap-thin cols-2\">\n\n\t <div class=\"w-100\">\n\n\n\t\t <CardOrganization \n\t\t \tv-if=\"orderOrganization[0]\"\n\t\t :organization=\"orderOrganization[0]\"\n\t\t :showRating=\"true\"\n\t\t :showFollowers=\"false\"\n\t\t :showProducts=\"false\"\n\t\t class=\"bg-light mn-b-thin w-100 o-hidden radius-medium pd-small \"\n\t\t />\n\n\n\t\t <div \n\t\t \tclass=\"mn-b-thin bg-light w-100 o-hidden radius-medium \"\n\t\t >\n\t\t \t<div class=\"pd-small flex-nowrap flex\">\n\t\t\t \t<div class=\"mn-r-auto\">\n\t\t\t\t \t<span class=\"d-block t-medium p-medium\">Order is</span>\n\t\t\t\t\t <span class=\" t-lh-075 h2 d-block mn-b-small\">{{order.status}}</span>\n\t\t\t\t\t <p class=\"pd-t-nano pd-b-nano pd-r-thin pd-l-thin radius-extra bg-black t-white w-max\">{{formatDate(order.updatedAt, {language: locale })}}</p>\n\t\t\t\t\t </div>\n\t\t\t\t\t <!-- <div class=\"t-right\">\n\t\t\t\t\t \tCancel order<br>\n\t\t\t\t\t \tExchange item\n\t\t\t\t\t \t<hr class=\"mn-b-thin mn-t-thin\">\n\t\t\t\t\t \tFor Delivery Queries Contact Us\n\t\t\t\t\t \t\n\t\t\t\t\t </div> -->\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div v-if=\"order.customer.target?.number\" class=\"pd-small flex flex-nowrap flex-v-center br-t br-black-transp-10 br-solid\">\n\t\t\t \t<p class=\"w-100 t-medium p-medium\">\n\t\t\t \tPhone\n\t\t\t </p>\n\n\t\t\t <p class=\"w-100 t-right \">\n\t\t\t \t{{order.customer.target?.number || 'Not specified'}}\n\t\t\t </p>\n\t\t\t </div>\n\n\t\t\t <div class=\"pd-small flex flex-nowrap flex-v-center br-t br-black-transp-10 br-solid\">\n\t\t\t \t<p class=\"t-medium p-medium\">\n\t\t\t \tAddress\n\t\t\t </p>\n\n\t\t\t <p class=\"w-100 t-right\">\n\t\t\t {{order.delivery.address || (order.delivery.spot[0].profile.name + ', ' + order.delivery.spot[0].address) || 'Not specified'}} \n\t\t\t </p>\n\t\t\t </div>\n\n\t\t\t <div class=\"pd-small flex flex-nowrap flex-v-center br-t br-black-transp-10 br-solid\">\n\t\t\t \t<p class=\"t-medium p-medium\">\n\t\t\t \tDelivery\n\t\t\t </p>\n\n\t\t\t <p class=\"w-100 t-right \">\n\t\t\t {{order.delivery.type ? order.delivery.type : 'Not specified'}} \n\t\t\t </p>\n\t\t\t </div>\n\n\t\t\t <div class=\"pd-small flex flex-nowrap flex-v-center br-t br-black-transp-10 br-solid\">\n\t\t\t \t<p class=\"mn-r-auto t-medium p-medium\">\n\t\t\t \tPayment\n\t\t\t </p>\n\n\n\t\t\t <p class=\"w-max t-right\">\n\t\t\t {{order.payment.type ? order.payment.type : 'Not specified'}} \n\t\t\t </p>\n\n\t\t\t <p @click=\"route.meta.context !== 'user' && route.meta.context !== 'root' ? openPaymentPopup : console.log('hello')\" class=\"w-max pd-thin radius-small bg-second t-white mn-l-thin cursor-pointer hover-bg-black t-right\">\n\t\t\t {{order.payment.status ? order.payment.status : 'Unpaid'}} \n\t\t\t </p>\n\t\t\t </div>\n\n\n\t\t\t\t</div>\n\n\t\t\t\t<div v-if=\"route.meta.context !== 'user' && route.meta.context !== 'root'\" class=\"o-y-scroll bg-light pd-thin mn-b-thin pd-thin radius-medium flex-nowrap flex\">\n\t\t \t\t<div class=\"flex-child-default mn-r-small w-max flex-v-center gap-thin flex-nowrap flex pd-thin radius-small bg-light-transp-20\">\n\t\t \t\t\t<IconTime class=\"i-semi t-transp\" fill=\"rgb(var(--black)\" />\n\t\t <p class=\"t-medium mn-r-auto\"><span class=\"p-small t-transp\">Estimated Reaction</span><br>{{formatDate(order.deadline, { language: locale })}}</p>\n\t\t\t \t</div>\n\t\t\t \t<button v-if=\"getNextStatus(order.status)\" @click=\"openStatusPopup\" class=\"flex-child-default mn-l-auto bg-black t-white button\"> \n\t\t\t\t Mark as {{ (getNextStatus(order.status)).label }} \n\t\t\t\t </button>\n\t\t \t</div>\n\n\t\t\t<div class=\"bg-light radius-medium pd-medium mn-r-bold w-100\">\n\t\t <h3 class=\"mn-b-small\">Chat With Us</h3>\n\n\t\t <ChatPage\n\t\t \t:username=\"['Order', 'UserOrder'].includes(route.name) ? (order.user?.name || 'User') : 'Support'\"\n\t\t \t:user=\"auth.state.user._id\"\n\t\t \t:chatID=\"route.params.order\"\n\t\t \tclass=\"radius-semi bs-black bg-light o-hidden\"\n\t\t />\n\n\t </div>\n\t \t<!-- <StatusHistory \n\t \t\tv-if=\"orders.state.current.status_history\"\n\t \t\t:statuses=\"statuses\"\n\t \t\t:statusHistory=\"orders.state.current.status_history\"\n\t \t\t:statusCurrent=\"orders.state.current.status\"\n\t \t\t:edit=\"route.name === 'Order Edit'\"\n\t \t/> -->\n\n\t <!-- \t<button \n\t \t@click=\"requestPayment(order)\"\n\t \tv-if=\"\n\t \t\torder.status === 'Подтвержден' \n\t \t\t&& order.payment.type === 'Online'\n\t \t\t&& payment.Status !== 'CONFIRMED'\n\t \t\t&& payment.Status !== 'REFUNDED'\n\t \t\" \n\t \tclass='w-100 button'>Оплатить заказ</button> -->\n\t \t<span class=\"t-transp\" v-if=\"payment && payment.Status === 'CONFIRMED'\">Paid</span> \n\t </div> \n\n\t <div class=\"bg-light radius-medium pd-medium w-100\">\n\t \t\t<h3 class=\"mn-b-small\">Order Summary</h3>\n\n\t \t\t<ul class=\"flex gap-thin flex-column mn-b-thin\">\n\t \t\t\t<CardOrderItem\n\t \t\t\t\tv-for=\"(product, index) in order.positions\" :key=\"product._id\"\n\t \t\t\t\t:editable=\"false\" \n\t \t\t\t\t:product=\"product\" \n\t \t\t\t\tclass=\"bg-white radius-small pd-small\"\n\t \t\t\t/>\n\t </ul>\n\t \n\t <PriceTotal \n :totalPrice=\"cartTotalPrice\"\n :deliveryRate=\"deliveryCost\"\n :currency=\"returnCurrency()\"\n :showFees=\"globals.state.options?.orders?.showFees\"\n :feesRate=\"globals.state.options?.orders?.feesRate || 0\"\n :showVat=\"globals.state.options?.orders?.showVat\"\n :vatRate=\"globals.state.options?.orders?.vatRate || 0\"\n\t\t\t\t :showDeliveryFee=\"globals.state.options?.orders.showDeliveryFee\"\n\n />\n \t</div>\n\n\t \n\t </div>\n\t</div>\t\t\n\n</template>\n\n\n<script setup=\"props\">\n\timport { computed, ref, onMounted } from 'vue'\n\timport { useRouter, useRoute } from 'vue-router'\n\n\timport Button from '@martyrs/src/components/Button/Button.vue'\n\timport Select from '@martyrs/src/components/Select/Select.vue'\n\timport Popup from \"@martyrs/src/components/Popup/Popup.vue\";\n\n\timport IconTime from '@martyrs/src/modules/icons/entities/IconTime.vue'\n\n\t// Block\n\timport CardOrderItem from '@martyrs/src/modules/orders/components/blocks/CardOrderItem.vue'\n\timport CardOrganization from '@martyrs/src/modules/organizations/components/blocks/CardOrganization.vue'\n\n\timport ChatPage from '@martyrs/src/modules/chats/components/pages/ChatPage.vue';\n\n\timport StatusHistory from '@martyrs/src/modules/orders/components/blocks/StatusHistory.vue'\n\timport PriceTotal from '@martyrs/src/modules/orders/components/elements/PriceTotal.vue';\n\timport FormPayment from '@martyrs/src/modules/orders/components/sections/FormPayment.vue'\n\n\timport * as globals \tfrom '@martyrs/src/modules/globals/views/store/globals'\n\timport * as auth from '@martyrs/src/modules/auth/views/store/auth'\n\timport * as orders \tfrom '@martyrs/src/modules/orders/store/orders'\n\timport * as products \tfrom '@martyrs/src/modules/products/store/products'\n\timport * as organizations \tfrom '@martyrs/src/modules/organizations/store/organizations'\n\n\timport { useI18n } from 'vue-i18n';\n\t\n\tconst { locale } = useI18n();\n\n\tconst router = useRouter()\n\tconst route = useRoute()\n\n\tconst order = ref(null)\n\tconst productsOrganization = ref(null)\n\tconst orderOrganization = ref(null)\n\n\tconst statuses = globals.state.options.orders.statuses\n\tconst statusLabels = ['Created', 'Confirmed', 'Preparing', 'In use', 'Finished'];\n\n if (route.meta.context === 'user' && \n auth.state.user && \n route.params._id !== auth.state.user?._id && \n !auth.state.access?.roles?.includes('ROLE_MODERATOR') && \n !auth.state.access?.roles?.includes('ROLE_ADMIN')) {\n router.push('/401');\n }\n\n\tconst isOpeStatusPopup = ref(false);\n\tconst selectedMember = ref(null);\n\n\tfunction openStatusPopup(member) {\n\t isOpeStatusPopup.value = true;\n\t if (typeof member === \"number\") selectedMember.value = member;\n\t}\n\n\tfunction closeStatusPopup() {\n\t isOpeStatusPopup.value = false;\n\t selectedMember.value = null;\n\t}\n\n\tconst isOpenPaymentPopup = ref(false);\n\n\tconst selectedPayments = ref({\n\t\ttype: null,\n\t\tstatus: null\n\t});\n\n\tfunction openPaymentPopup() {\n\t selectedPayments.value.type = order.value.payment.type\n\t selectedPayments.value.status = order.value.payment.status\n\n\t isOpenPaymentPopup.value = true;\n\t}\n\n\tfunction closePaymentPopup() {\n\t isOpenPaymentPopup.value = false;\n\t}\n\n\tonMounted(async()=>{\n\t\torder.value = await orders.actions.read({_id: route.params.order})\n\t\torder.value = order.value[0]\n\n\t orderOrganization.value = await organizations.actions.read({\n\t _id: order.value?.owner.target._id,\n\t location: globals.state.position?.location,\n\t lookup: ['spots']\n\t });\n\n\t})\n\n\nconst deliveryCost = computed(() => {\n const type = orders.state.current.delivery.type\n const distance = orderOrganization.value[0]?.distance || 0\n const config = globals.state.options?.orders?.delivery_formula || {}\n\n return orders.getters.getDeliveryPrice(type, distance, config)\n})\n\n\tlet cartTotalPrice = computed(() => {\n return Number(order.value?.positions.reduce((total, product) => {\n // Проверяем тип листинга\n if (product.listing === 'rent') {\n const start = new Date(product.date.start)\n const end = new Date(product.date.end)\n const diffTime = Math.abs(end - start)\n return total + product.price * (Math.ceil(diffTime / (1000 * 60 * 60 * 24)) + 1);\n } else {\n // Для обычных товаров умножаем на количество\n return total + product.price * (product.quantity || 1);\n }\n }, 0));\n })\n\n\n let cartTotalAmount = computed(() => {\n return Number(order.value?.positions.reduce((total, product) => {\n return total + product.quantity;\n }, 0));\n })\n\n // Функция установки нового статуса\n\tasync function setStatus (newStatus) {\n\t orders.state.current.status = newStatus\n\n\t await orders.actions.update(orders.state.current)\n\t} \n\n\n\tfunction getNextStatus(currentStatus) {\n\t const currentIndex = globals.state.options.orders.statuses.findIndex(status => status.value === currentStatus);\n\n\t if (currentIndex !== -1 && currentIndex + 1 < statuses.length) {\n\t return globals.state.options.orders.statuses[currentIndex + 1];\n\t }\n\t return null; // If next status doesn't exist\n\t}\n\n\tconst isActiveStatus = (index) => {\n\t return globals.state.options.orders.statuses.slice(index).some(status => status.value === order.value.status);\n\t};\n\n async function changePaymentStatus() {\n if (selectedPayments.value.status && selectedPayments.value.type) {\n orders.state.current.payment = selectedPayments.value;\n\n await orders.actions.update(orders.state.current)\n } else {\n console.error('Payment status is void. Must handle somehow.');\n }\n\n\t\tclosePaymentPopup()\n }\n\n async function setNextStatus() {\n const nextStatus = getNextStatus(orders.state.current.status);\n\n if (nextStatus) {\n orders.state.current.status = nextStatus.value;\n\n await orders.actions.update(orders.state.current)\n } else {\n console.error('Next status is void. Must handle somehow.');\n }\n\n\t\tcloseStatusPopup()\n }\n\n async function cancelOrder() {\n \talert()\n\n orders.state.current.status = 'canceled';\n\n await orders.actions.update(orders.state.current)\n}\n\n\n async function confirmOrder() {\n \talert()\n\n orders.state.current.status = 'confirmed';\n\n await orders.actions.update(orders.state.current)\n\t}\n\n\tfunction calculateDeliveryTime(distance, date) {\n\t if (!distance) {\n\t return null;\n\t }\n\n\t const basePreparationTime = 10 * 60 * 1000; // Convert to milliseconds\n\t const travelTime = Math.ceil((15 + 5 + 3 * distance) / 5) * 5 * 60 * 1000;\n\n\t // Преобразование даты начала в миллисекунды и добавление времени подготовки и доставки\n\t const startTime = new Date(date).getTime();\n\t const estimatedDeliveryTime = new Date(startTime + basePreparationTime + travelTime);\n\n\t return estimatedDeliveryTime;\n\t}\n\n\n</script>\n\n<style lang=\"scss\" scoped>\n\t.blink {\n\t animation: blink-animation 1s ease infinite;\n\t}\n\n\t@keyframes blink-animation {\n\t 0%, 100% {\n\t opacity: 1;\n\t }\n\t 50% {\n\t opacity: 0.8;\n\t }\n\t}\n</style>"],"names":["useI18n","useRouter","useRoute","ref","globals.state","auth.state","onMounted","orders.actions","organizations.actions","_a","computed","orders.state","orders.getters"],"mappings":"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"}
1
+ {"version":3,"file":"OrderBackoffice.vue.cjs","sources":["../../../../../../../src/modules/orders/components/pages/OrderBackoffice.vue"],"sourcesContent":["<template>\n\t<div v-if=\"order && orderOrganization\" class=\"pd-thin bg-white\"> \n\n\t <div v-if=\"order\" class=\"mn-b-thin pos-relative w-100 bg-main radius-medium pd-medium\">\n\t \t<div class=\"mn-b-small flex-nowrap flex\">\n\t\t \t<p class=\"t-medium p-medium\">\n\t\t \tOrder No: <span class=\"p-small t-transp\">#{{order._id}}</span>\n\t\t </p>\n\t\t\t</div>\n\n \t<div class=\"flex-nowrap flex gap-thin pos-relative \">\n\t <div v-for=\"(status, index) in globals.state.options.orders.statuses\" :key=\"index\" class=\"w-20\">\n\t <div\n\t \tclass=\"bg-white br-anim br-glow radius-extra h-1r w-100\"\n\t :class=\"\n\t\t\t\t { 'br-glow-anim': isActiveStatus(index) },\n\t\t\t\t { 't-transp': !isActiveStatus(index) },\n\t\t\t\t { 'blink': order.status === status.value && getNextStatus(order.status) }\n\t\t\t\t \"\n\t />\n\t <div \n\t \t:class=\"{ 't-transp': !isActiveStatus(index) }\"\n\t\t\t\t class=\"mn-t-thin p-small t-medium uppercase\">{{ status.value }}</div>\n\t \t</div>\n\t\t </div>\n\t </div>\n\n \t <Popup \n title=\"Change payment\" \n @close-popup=\"closePaymentPopup\" \n :isPopupOpen=\"isOpenPaymentPopup\"\n class=\"bg-light w-min-25r w-max-25r radius-medium pd-big\"\n >\n \t<Select \n v-model:select=\"selectedPayments.type\"\n :property=\"'value'\"\n label=\"Type\"\n :options=\"[\n {name: 'Cash', value: 'cash'}, \n {name: 'Card', value: 'card'}, \n {name: 'Bank Transfer', value: 'bank'},\n ]\"\n placeholder=\"Select type of payment\" \n size=\"small\"\n class=\"bg-white mn-b-thin pd-regular radius-small w-100\"\n />\n\n <Select \n v-model:select=\"selectedPayments.status\"\n :property=\"'value'\"\n label=\"Status\"\n :options=\"[\n {name: 'Unpaid', value: 'unpaid'}, \n {name: 'Paid', value: 'paid'}, \n {name: 'Refunded', value: 'refunded'},\n ]\"\n placeholder=\"Select status of payment\" \n size=\"small\"\n class=\"bg-white mn-b-small pd-regular radius-small w-100\"\n />\n\n\n <Button :submit=\"changePaymentStatus\" class=\"t-white w-100 bg-second\">\n\t\t\t\t<span>Change Status</span>\n\t\t\t</Button>\n\t \t</Popup>\n\n\t <Popup \n title=\"Change order status\" \n @close-popup=\"closeStatusPopup\" \n :isPopupOpen=\"isOpeStatusPopup\"\n class=\"bg-light w-min-30r w-max-30r radius-medium pd-big\"\n >\n\n\t\t\t<!-- Добавить выбор примерного времени -->\n\n \t<ul class=\"flex gap-thin flex-column mn-b-thin\">\n \t\t\t<CardOrderItem\n \t\t\t\tv-for=\"(product, index) in order.positions\" :key=\"product._id\"\n \t\t\t\t:editable=\"true\" \n \t\t\t\t:product=\"product\" \n \t\t\t\t:increase=\"product => orders.mutations.incrementItemQuantity(order, product._id)\"\n\t :decrease=\"product => orders.mutations.decrementItemQuantity(order, product._id)\"\n\t :remove=\"product => orders.mutations.removeProduct(order, product._id)\"\n\t @updateRentDates=\"(product, dates) => shopcart.actions.updateRentDates({ positions: order.positions, productId: product._id, dates })\"\n \t\t\t\tclass=\"bg-white radius-small pd-small\"\n \t\t\t/>\n </ul>\n \n <PriceTotal \n :totalPrice=\"cartTotalPrice\"\n :currency=\"returnCurrency()\"\n :showFees=\"globals.state.options?.orders?.showFees\"\n :feesRate=\"globals.state.options?.orders?.feesRate || 0\"\n :showVat=\"globals.state.options?.orders?.showVat\"\n :vatRate=\"globals.state.options?.orders?.vatRate || 0\"\n />\n\n \t<Button :submit=\"setNextStatus\" class=\"t-white w-100 bg-second\">\n\t\t\t\t<span>{{'Confirm Changing to ' + (getNextStatus(order.status)).label}}</span>\n\t\t\t</Button>\n\t \t</Popup>\n\n\n\t \n\t <div v-if=\"order\" class=\"gap-thin cols-2\">\n\n\t <div class=\"w-100\">\n\n\n\t\t <CardOrganization \n\t\t \tv-if=\"orderOrganization[0]\"\n\t\t :organization=\"orderOrganization[0]\"\n\t\t :showRating=\"true\"\n\t\t :showFollowers=\"false\"\n\t\t :showProducts=\"false\"\n\t\t class=\"bg-light mn-b-thin w-100 o-hidden radius-medium pd-small \"\n\t\t />\n\n\n\t\t <div \n\t\t \tclass=\"mn-b-thin bg-light w-100 o-hidden radius-medium \"\n\t\t >\n\t\t \t<div class=\"pd-small flex-nowrap flex\">\n\t\t\t \t<div class=\"mn-r-auto\">\n\t\t\t\t \t<span class=\"d-block t-medium p-medium\">Order is</span>\n\t\t\t\t\t <span class=\" t-lh-075 h2 d-block mn-b-small\">{{order.status}}</span>\n\t\t\t\t\t <p class=\"pd-t-nano pd-b-nano pd-r-thin pd-l-thin radius-extra bg-black t-white w-max\">{{formatDate(order.updatedAt, {language: locale })}}</p>\n\t\t\t\t\t </div>\n\t\t\t\t\t <!-- <div class=\"t-right\">\n\t\t\t\t\t \tCancel order<br>\n\t\t\t\t\t \tExchange item\n\t\t\t\t\t \t<hr class=\"mn-b-thin mn-t-thin\">\n\t\t\t\t\t \tFor Delivery Queries Contact Us\n\t\t\t\t\t \t\n\t\t\t\t\t </div> -->\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div v-if=\"order.customer.target?.number\" class=\"pd-small flex flex-nowrap flex-v-center br-t br-black-transp-10 br-solid\">\n\t\t\t \t<p class=\"w-100 t-medium p-medium\">\n\t\t\t \tPhone\n\t\t\t </p>\n\n\t\t\t <p class=\"w-100 t-right \">\n\t\t\t \t{{order.customer.target?.number || 'Not specified'}}\n\t\t\t </p>\n\t\t\t </div>\n\n\t\t\t <div class=\"pd-small flex flex-nowrap flex-v-center br-t br-black-transp-10 br-solid\">\n\t\t\t \t<p class=\"t-medium p-medium\">\n\t\t\t \tAddress\n\t\t\t </p>\n\n\t\t\t <p class=\"w-100 t-right\">\n\t\t\t {{order.delivery.address || (order.delivery.spot[0].profile.name + ', ' + order.delivery.spot[0].address) || 'Not specified'}} \n\t\t\t </p>\n\t\t\t </div>\n\n\t\t\t <div class=\"pd-small flex flex-nowrap flex-v-center br-t br-black-transp-10 br-solid\">\n\t\t\t \t<p class=\"t-medium p-medium\">\n\t\t\t \tDelivery\n\t\t\t </p>\n\n\t\t\t <p class=\"w-100 t-right \">\n\t\t\t {{order.delivery.type ? order.delivery.type : 'Not specified'}} \n\t\t\t </p>\n\t\t\t </div>\n\n\t\t\t <div class=\"pd-small flex flex-nowrap flex-v-center br-t br-black-transp-10 br-solid\">\n\t\t\t \t<p class=\"mn-r-auto t-medium p-medium\">\n\t\t\t \tPayment\n\t\t\t </p>\n\n\n\t\t\t <p class=\"w-max t-right\">\n\t\t\t {{order.payment.type ? order.payment.type : 'Not specified'}} \n\t\t\t </p>\n\n\t\t\t <p @click=\"route.meta.context !== 'user' && route.meta.context !== 'root' ? openPaymentPopup : console.log('hello')\" class=\"w-max pd-thin radius-small bg-second t-white mn-l-thin cursor-pointer hover-bg-black t-right\">\n\t\t\t {{order.payment.status ? order.payment.status : 'Unpaid'}} \n\t\t\t </p>\n\t\t\t </div>\n\n\n\t\t\t\t</div>\n\n\t\t\t\t<div v-if=\"route.meta.context !== 'user' && route.meta.context !== 'root'\" class=\"o-y-scroll bg-light pd-thin mn-b-thin pd-thin radius-medium flex-nowrap flex\">\n\t\t \t\t<div class=\"flex-child-default mn-r-small w-max flex-v-center gap-thin flex-nowrap flex pd-thin radius-small bg-light-transp-20\">\n\t\t \t\t\t<IconTime class=\"i-semi t-transp\" fill=\"rgb(var(--black)\" />\n\t\t <p class=\"t-medium mn-r-auto\"><span class=\"p-small t-transp\">Estimated Reaction</span><br>{{formatDate(order.deadline, { language: locale })}}</p>\n\t\t\t \t</div>\n\t\t\t \t<button v-if=\"getNextStatus(order.status)\" @click=\"openStatusPopup\" class=\"flex-child-default mn-l-auto bg-black t-white button\"> \n\t\t\t\t Mark as {{ (getNextStatus(order.status)).label }} \n\t\t\t\t </button>\n\t\t \t</div>\n\n\t\t\t<div class=\"bg-light radius-medium pd-medium mn-r-bold w-100\">\n\t\t <h3 class=\"mn-b-small\">Chat With Us</h3>\n\n\t\t <ChatPage\n\t\t \t:username=\"['Order', 'UserOrder'].includes(route.name) ? (order.user?.name || 'User') : 'Support'\"\n\t\t \t:user=\"auth.state.user._id\"\n\t\t \t:chatID=\"route.params.order\"\n\t\t \tclass=\"radius-semi bs-black bg-light o-hidden\"\n\t\t />\n\n\t </div>\n\t \t<!-- <StatusHistory \n\t \t\tv-if=\"orders.state.current.status_history\"\n\t \t\t:statuses=\"statuses\"\n\t \t\t:statusHistory=\"orders.state.current.status_history\"\n\t \t\t:statusCurrent=\"orders.state.current.status\"\n\t \t\t:edit=\"route.name === 'Order Edit'\"\n\t \t/> -->\n\n\t <!-- \t<button \n\t \t@click=\"requestPayment(order)\"\n\t \tv-if=\"\n\t \t\torder.status === 'Подтвержден' \n\t \t\t&& order.payment.type === 'Online'\n\t \t\t&& payment.Status !== 'CONFIRMED'\n\t \t\t&& payment.Status !== 'REFUNDED'\n\t \t\" \n\t \tclass='w-100 button'>Оплатить заказ</button> -->\n\t \t<span class=\"t-transp\" v-if=\"payment && payment.Status === 'CONFIRMED'\">Paid</span> \n\t </div> \n\n\t <div class=\"bg-light radius-medium pd-medium w-100\">\n\t \t\t<h3 class=\"mn-b-small\">Order Summary</h3>\n\n\t \t\t<ul class=\"flex gap-thin flex-column mn-b-thin\">\n\t \t\t\t<CardOrderItem\n\t \t\t\t\tv-for=\"(product, index) in order.positions\" :key=\"product._id\"\n\t \t\t\t\t:editable=\"false\" \n\t \t\t\t\t:product=\"product\" \n\t \t\t\t\tclass=\"bg-white radius-small pd-small\"\n\t \t\t\t/>\n\t </ul>\n\t \n\t <PriceTotal \n :totalPrice=\"cartTotalPrice\"\n :deliveryRate=\"deliveryCost\"\n :currency=\"returnCurrency()\"\n :showFees=\"globals.state.options?.orders?.showFees\"\n :feesRate=\"globals.state.options?.orders?.feesRate || 0\"\n :showVat=\"globals.state.options?.orders?.showVat\"\n :vatRate=\"globals.state.options?.orders?.vatRate || 0\"\n\t\t\t\t :showDeliveryFee=\"globals.state.options?.orders.showDeliveryFee\"\n\n />\n \t</div>\n\n\t \n\t </div>\n\t</div>\t\t\n\n</template>\n\n\n<script setup=\"props\">\n\timport { computed, ref, onMounted } from 'vue'\n\timport { useRouter, useRoute } from 'vue-router'\n\n\timport Button from '@martyrs/src/components/Button/Button.vue'\n\timport Select from '@martyrs/src/components/Select/Select.vue'\n\timport Popup from \"@martyrs/src/components/Popup/Popup.vue\";\n\n\timport IconTime from '@martyrs/src/modules/icons/entities/IconTime.vue'\n\n\t// Block\n\timport CardOrderItem from '@martyrs/src/modules/orders/components/blocks/CardOrderItem.vue'\n\timport CardOrganization from '@martyrs/src/modules/organizations/components/blocks/CardOrganization.vue'\n\n\timport ChatPage from '@martyrs/src/modules/chats/components/pages/ChatPage.vue';\n\n\timport StatusHistory from '@martyrs/src/modules/orders/components/blocks/StatusHistory.vue'\n\timport PriceTotal from '@martyrs/src/modules/orders/components/elements/PriceTotal.vue';\n\timport FormPayment from '@martyrs/src/modules/orders/components/sections/FormPayment.vue'\n\n\timport * as globals \tfrom '@martyrs/src/modules/globals/views/store/globals.js'\n\timport * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\n\timport * as orders \tfrom '@martyrs/src/modules/orders/store/orders.js'\n\timport * as products \tfrom '@martyrs/src/modules/products/store/products.js'\n\timport * as organizations \tfrom '@martyrs/src/modules/organizations/store/organizations.js'\n\n\timport { useI18n } from 'vue-i18n';\n\t\n\tconst { locale } = useI18n();\n\n\tconst router = useRouter()\n\tconst route = useRoute()\n\n\tconst order = ref(null)\n\tconst productsOrganization = ref(null)\n\tconst orderOrganization = ref(null)\n\n\tconst statuses = globals.state.options.orders.statuses\n\tconst statusLabels = ['Created', 'Confirmed', 'Preparing', 'In use', 'Finished'];\n\n if (route.meta.context === 'user' && \n auth.state.user && \n route.params._id !== auth.state.user?._id && \n !auth.state.access?.roles?.includes('ROLE_MODERATOR') && \n !auth.state.access?.roles?.includes('ROLE_ADMIN')) {\n router.push('/401');\n }\n\n\tconst isOpeStatusPopup = ref(false);\n\tconst selectedMember = ref(null);\n\n\tfunction openStatusPopup(member) {\n\t isOpeStatusPopup.value = true;\n\t if (typeof member === \"number\") selectedMember.value = member;\n\t}\n\n\tfunction closeStatusPopup() {\n\t isOpeStatusPopup.value = false;\n\t selectedMember.value = null;\n\t}\n\n\tconst isOpenPaymentPopup = ref(false);\n\n\tconst selectedPayments = ref({\n\t\ttype: null,\n\t\tstatus: null\n\t});\n\n\tfunction openPaymentPopup() {\n\t selectedPayments.value.type = order.value.payment.type\n\t selectedPayments.value.status = order.value.payment.status\n\n\t isOpenPaymentPopup.value = true;\n\t}\n\n\tfunction closePaymentPopup() {\n\t isOpenPaymentPopup.value = false;\n\t}\n\n\tonMounted(async()=>{\n\t\torder.value = await orders.actions.read({_id: route.params.order})\n\t\torder.value = order.value[0]\n\n\t orderOrganization.value = await organizations.actions.read({\n\t _id: order.value?.owner.target._id,\n\t location: globals.state.position?.location,\n\t lookup: ['spots']\n\t });\n\n\t})\n\n\nconst deliveryCost = computed(() => {\n const type = orders.state.current.delivery.type\n const distance = orderOrganization.value[0]?.distance || 0\n const config = globals.state.options?.orders?.delivery_formula || {}\n\n return orders.getters.getDeliveryPrice(type, distance, config)\n})\n\n\tlet cartTotalPrice = computed(() => {\n return Number(order.value?.positions.reduce((total, product) => {\n // Проверяем тип листинга\n if (product.listing === 'rent') {\n const start = new Date(product.date.start)\n const end = new Date(product.date.end)\n const diffTime = Math.abs(end - start)\n return total + product.price * (Math.ceil(diffTime / (1000 * 60 * 60 * 24)) + 1);\n } else {\n // Для обычных товаров умножаем на количество\n return total + product.price * (product.quantity || 1);\n }\n }, 0));\n })\n\n\n let cartTotalAmount = computed(() => {\n return Number(order.value?.positions.reduce((total, product) => {\n return total + product.quantity;\n }, 0));\n })\n\n // Функция установки нового статуса\n\tasync function setStatus (newStatus) {\n\t orders.state.current.status = newStatus\n\n\t await orders.actions.update(orders.state.current)\n\t} \n\n\n\tfunction getNextStatus(currentStatus) {\n\t const currentIndex = globals.state.options.orders.statuses.findIndex(status => status.value === currentStatus);\n\n\t if (currentIndex !== -1 && currentIndex + 1 < statuses.length) {\n\t return globals.state.options.orders.statuses[currentIndex + 1];\n\t }\n\t return null; // If next status doesn't exist\n\t}\n\n\tconst isActiveStatus = (index) => {\n\t return globals.state.options.orders.statuses.slice(index).some(status => status.value === order.value.status);\n\t};\n\n async function changePaymentStatus() {\n if (selectedPayments.value.status && selectedPayments.value.type) {\n orders.state.current.payment = selectedPayments.value;\n\n await orders.actions.update(orders.state.current)\n } else {\n console.error('Payment status is void. Must handle somehow.');\n }\n\n\t\tclosePaymentPopup()\n }\n\n async function setNextStatus() {\n const nextStatus = getNextStatus(orders.state.current.status);\n\n if (nextStatus) {\n orders.state.current.status = nextStatus.value;\n\n await orders.actions.update(orders.state.current)\n } else {\n console.error('Next status is void. Must handle somehow.');\n }\n\n\t\tcloseStatusPopup()\n }\n\n async function cancelOrder() {\n \talert()\n\n orders.state.current.status = 'canceled';\n\n await orders.actions.update(orders.state.current)\n}\n\n\n async function confirmOrder() {\n \talert()\n\n orders.state.current.status = 'confirmed';\n\n await orders.actions.update(orders.state.current)\n\t}\n\n\tfunction calculateDeliveryTime(distance, date) {\n\t if (!distance) {\n\t return null;\n\t }\n\n\t const basePreparationTime = 10 * 60 * 1000; // Convert to milliseconds\n\t const travelTime = Math.ceil((15 + 5 + 3 * distance) / 5) * 5 * 60 * 1000;\n\n\t // Преобразование даты начала в миллисекунды и добавление времени подготовки и доставки\n\t const startTime = new Date(date).getTime();\n\t const estimatedDeliveryTime = new Date(startTime + basePreparationTime + travelTime);\n\n\t return estimatedDeliveryTime;\n\t}\n\n\n</script>\n\n<style lang=\"scss\" scoped>\n\t.blink {\n\t animation: blink-animation 1s ease infinite;\n\t}\n\n\t@keyframes blink-animation {\n\t 0%, 100% {\n\t opacity: 1;\n\t }\n\t 50% {\n\t opacity: 0.8;\n\t }\n\t}\n</style>"],"names":["useI18n","useRouter","useRoute","ref","globals.state","auth.state","onMounted","orders.actions","organizations.actions","_a","computed","orders.state","orders.getters"],"mappings":"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"}