@ozdao/martyrs 0.2.518 → 0.2.520

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 (509) hide show
  1. package/dist/_virtual/index.cjs +4 -4
  2. package/dist/_virtual/index.js +4 -4
  3. package/dist/_virtual/index2.cjs +4 -4
  4. package/dist/_virtual/index2.js +4 -4
  5. package/dist/{abac-Cf_9lCSh.js → abac-CnJsrv8S.js} +3 -3
  6. package/dist/{abac-6LjoG9u-.cjs → abac-DOyUjhee.cjs} +3 -3
  7. package/dist/builder.cjs +27 -25
  8. package/dist/builder.js +27 -25
  9. package/dist/chats.server.cjs +198 -1
  10. package/dist/chats.server.js +198 -1
  11. package/dist/{crud-sE7GLPbj.js → crud-BIFl1W1i.js} +6 -6
  12. package/dist/{crud-JN_LFj01.cjs → crud-CC6k6yY5.cjs} +6 -6
  13. package/dist/{globals.logger-CZMgIMlM.cjs → globals.logger-BuW7JHMY.cjs} +63 -53
  14. package/dist/{globals.logger-Bf6rRU7j.js → globals.logger-VRHh-WUW.js} +63 -53
  15. package/dist/{globals.observer-CV2wCzzh.cjs → globals.observer-C_FYclgV.cjs} +36 -1
  16. package/dist/{globals.observer-CDqUjVU5.js → globals.observer-MZsqaE6F.js} +36 -1
  17. package/dist/globals.server.cjs +1 -1
  18. package/dist/globals.server.js +1 -1
  19. package/dist/inventory.server.cjs +276 -376
  20. package/dist/inventory.server.js +276 -376
  21. package/dist/main-BM3GslOO.cjs +11 -0
  22. package/dist/{main-wmEhGVvD.js → main-Qcn7YlTx.js} +1834 -1830
  23. package/dist/martyrs/src/components/Address/{Address.vue2.cjs → Address.vue.cjs} +2 -2
  24. package/dist/martyrs/src/components/Address/{Address.vue2.js.map → Address.vue.cjs.map} +1 -1
  25. package/dist/martyrs/src/components/Address/{Address.vue2.js → Address.vue.js} +2 -2
  26. package/dist/martyrs/src/components/Address/Address.vue.js.map +1 -0
  27. package/dist/martyrs/src/components/Button/Button.vue.cjs +1 -1
  28. package/dist/martyrs/src/components/Button/Button.vue.cjs.map +1 -1
  29. package/dist/martyrs/src/components/Button/Button.vue.js +1 -1
  30. package/dist/martyrs/src/components/Button/Button.vue.js.map +1 -1
  31. package/dist/martyrs/src/components/Chips/{Chips.vue.cjs → Chips.vue2.cjs} +2 -2
  32. package/dist/martyrs/src/components/Chips/Chips.vue2.cjs.map +1 -0
  33. package/dist/martyrs/src/components/Chips/{Chips.vue.js → Chips.vue2.js} +2 -2
  34. package/dist/martyrs/src/components/Chips/Chips.vue2.js.map +1 -0
  35. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.cjs → Dropdown.vue2.cjs} +2 -2
  36. package/dist/martyrs/src/components/Dropdown/Dropdown.vue2.cjs.map +1 -0
  37. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.js → Dropdown.vue2.js} +2 -2
  38. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.cjs.map → Dropdown.vue2.js.map} +1 -1
  39. package/dist/martyrs/src/components/EditImages/EditImages.vue.cjs +0 -93
  40. package/dist/martyrs/src/components/EditImages/EditImages.vue.cjs.map +1 -1
  41. package/dist/martyrs/src/components/EditImages/EditImages.vue.js +1 -94
  42. package/dist/martyrs/src/components/EditImages/EditImages.vue.js.map +1 -1
  43. package/dist/martyrs/src/components/EditImages/EditImages.vue2.cjs +93 -0
  44. package/dist/martyrs/src/components/EditImages/EditImages.vue2.cjs.map +1 -1
  45. package/dist/martyrs/src/components/EditImages/EditImages.vue2.js +94 -1
  46. package/dist/martyrs/src/components/EditImages/EditImages.vue2.js.map +1 -1
  47. package/dist/martyrs/src/components/Feed/Feed.vue.cjs +2 -3
  48. package/dist/martyrs/src/components/Feed/Feed.vue.cjs.map +1 -1
  49. package/dist/martyrs/src/components/Feed/Feed.vue.js +2 -3
  50. package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
  51. package/dist/martyrs/src/components/FieldTags/FieldTags.vue.cjs +1 -1
  52. package/dist/martyrs/src/components/FieldTags/FieldTags.vue.js +1 -1
  53. package/dist/martyrs/src/components/Loader/Loader.vue2.cjs +1 -1
  54. package/dist/martyrs/src/components/Loader/Loader.vue2.cjs.map +1 -1
  55. package/dist/martyrs/src/components/Loader/Loader.vue2.js +1 -1
  56. package/dist/martyrs/src/components/Loader/Loader.vue2.js.map +1 -1
  57. package/dist/martyrs/src/components/LocationMarker/{LocationMarker.vue2.cjs → LocationMarker.vue.cjs} +2 -2
  58. package/dist/martyrs/src/components/LocationMarker/{LocationMarker.vue2.js.map → LocationMarker.vue.cjs.map} +1 -1
  59. package/dist/martyrs/src/components/LocationMarker/{LocationMarker.vue2.js → LocationMarker.vue.js} +2 -2
  60. package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue.js.map +1 -0
  61. package/dist/martyrs/src/components/Select/{Select.vue2.cjs → Select.vue.cjs} +2 -2
  62. package/dist/martyrs/src/components/Select/{Select.vue2.js.map → Select.vue.cjs.map} +1 -1
  63. package/dist/martyrs/src/components/Select/{Select.vue2.js → Select.vue.js} +2 -2
  64. package/dist/martyrs/src/components/Select/Select.vue.js.map +1 -0
  65. package/dist/martyrs/src/modules/auth/views/components/blocks/CardUser.vue.cjs +2 -2
  66. package/dist/martyrs/src/modules/auth/views/components/blocks/CardUser.vue.js +2 -2
  67. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs +1 -1
  68. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs.map +1 -1
  69. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js +1 -1
  70. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js.map +1 -1
  71. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +2 -2
  72. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs.map +1 -1
  73. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +4 -4
  74. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js.map +1 -1
  75. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +41 -51
  76. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs.map +1 -1
  77. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +59 -69
  78. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js.map +1 -1
  79. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.cjs +11 -13
  80. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.cjs.map +1 -1
  81. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.js +11 -13
  82. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.js.map +1 -1
  83. package/dist/martyrs/src/modules/auth/views/store/auth.cjs +10 -1
  84. package/dist/martyrs/src/modules/auth/views/store/auth.cjs.map +1 -1
  85. package/dist/martyrs/src/modules/auth/views/store/auth.js +10 -1
  86. package/dist/martyrs/src/modules/auth/views/store/auth.js.map +1 -1
  87. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.cjs +6 -0
  88. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.cjs.map +1 -1
  89. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js +6 -0
  90. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js.map +1 -1
  91. package/dist/martyrs/src/modules/chats/components/blocks/ChatMessage.vue.cjs +27 -11
  92. package/dist/martyrs/src/modules/chats/components/blocks/ChatMessage.vue.cjs.map +1 -1
  93. package/dist/martyrs/src/modules/chats/components/blocks/ChatMessage.vue.js +28 -12
  94. package/dist/martyrs/src/modules/chats/components/blocks/ChatMessage.vue.js.map +1 -1
  95. package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.cjs +62 -0
  96. package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.cjs.map +1 -1
  97. package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.js +63 -1
  98. package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.js.map +1 -1
  99. package/dist/martyrs/src/modules/chats/store/chat.store.cjs +60 -1
  100. package/dist/martyrs/src/modules/chats/store/chat.store.cjs.map +1 -1
  101. package/dist/martyrs/src/modules/chats/store/chat.store.js +60 -1
  102. package/dist/martyrs/src/modules/chats/store/chat.store.js.map +1 -1
  103. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.cjs +1 -1
  104. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js +1 -1
  105. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.cjs +3 -3
  106. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.cjs.map +1 -1
  107. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +3 -3
  108. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js.map +1 -1
  109. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs +2 -2
  110. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +2 -2
  111. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +1 -1
  112. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
  113. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.cjs +50 -368
  114. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.cjs.map +1 -1
  115. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.js +53 -371
  116. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.js.map +1 -1
  117. package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.cjs +1 -1
  118. package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js +1 -1
  119. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +1 -1
  120. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +1 -1
  121. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs +1 -1
  122. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs.map +1 -1
  123. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
  124. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js.map +1 -1
  125. package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +2 -3
  126. package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs.map +1 -1
  127. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +2 -3
  128. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js.map +1 -1
  129. package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs +2 -2
  130. package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs.map +1 -1
  131. package/dist/martyrs/src/modules/events/components/pages/Events.vue.js +2 -2
  132. package/dist/martyrs/src/modules/events/components/pages/Events.vue.js.map +1 -1
  133. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +3 -3
  134. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +3 -3
  135. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.cjs +1 -1
  136. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.js +1 -1
  137. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +2 -2
  138. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +2 -2
  139. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs +2 -2
  140. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs.map +1 -1
  141. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js +2 -2
  142. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js.map +1 -1
  143. package/dist/martyrs/src/modules/globals/views/components/partials/LocationSelection.vue.cjs +2 -2
  144. package/dist/martyrs/src/modules/globals/views/components/partials/LocationSelection.vue.js +2 -2
  145. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs +1 -1
  146. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js +1 -1
  147. package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.cjs +16 -3
  148. package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.cjs.map +1 -1
  149. package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.js +17 -4
  150. package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.js.map +1 -1
  151. package/dist/martyrs/src/modules/globals/views/components/sections/Walkthrough.vue.cjs +1 -1
  152. package/dist/martyrs/src/modules/globals/views/mixins/mixins.cjs +7 -0
  153. package/dist/martyrs/src/modules/globals/views/mixins/mixins.cjs.map +1 -1
  154. package/dist/martyrs/src/modules/globals/views/mixins/mixins.js +7 -0
  155. package/dist/martyrs/src/modules/globals/views/mixins/mixins.js.map +1 -1
  156. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.cjs +1 -1
  157. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.cjs +67 -43
  158. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.cjs.map +1 -1
  159. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +68 -44
  160. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js.map +1 -1
  161. package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.cjs +22 -7
  162. package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.cjs.map +1 -1
  163. package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.js +23 -8
  164. package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.js.map +1 -1
  165. package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.cjs +47 -32
  166. package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.cjs.map +1 -1
  167. package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js +48 -33
  168. package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js.map +1 -1
  169. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.cjs +47 -26
  170. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.cjs.map +1 -1
  171. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +48 -27
  172. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js.map +1 -1
  173. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.cjs +42 -52
  174. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.cjs.map +1 -1
  175. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js +43 -53
  176. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js.map +1 -1
  177. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.cjs +18 -18
  178. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.cjs.map +1 -1
  179. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +3 -3
  180. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js.map +1 -1
  181. package/dist/martyrs/src/modules/inventory/store/{ inventory.store.cjs → inventory.store.cjs} +46 -2
  182. package/dist/martyrs/src/modules/inventory/store/inventory.store.cjs.map +1 -0
  183. package/dist/martyrs/src/modules/inventory/store/{ inventory.store.js → inventory.store.js} +46 -2
  184. package/dist/martyrs/src/modules/inventory/store/inventory.store.js.map +1 -0
  185. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.cjs +180 -19
  186. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.cjs.map +1 -1
  187. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.js +181 -20
  188. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.js.map +1 -1
  189. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.cjs +1 -1
  190. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +1 -1
  191. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.cjs +1 -1
  192. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +1 -1
  193. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs +1 -1
  194. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +1 -1
  195. package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs +1 -1
  196. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +1 -1
  197. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs +1 -1
  198. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +1 -1
  199. package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs +1 -1
  200. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +1 -1
  201. package/dist/martyrs/src/modules/music/router/music.cjs +1 -2
  202. package/dist/martyrs/src/modules/music/router/music.cjs.map +1 -1
  203. package/dist/martyrs/src/modules/music/router/music.js +1 -2
  204. package/dist/martyrs/src/modules/music/router/music.js.map +1 -1
  205. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.cjs +2 -2
  206. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.cjs.map +1 -1
  207. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.js +2 -2
  208. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.js.map +1 -1
  209. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.cjs +1 -1
  210. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +1 -1
  211. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.cjs +1 -1
  212. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +1 -1
  213. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +1 -1
  214. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +1 -1
  215. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +3 -4
  216. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs.map +1 -1
  217. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +3 -4
  218. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js.map +1 -1
  219. package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.cjs +1 -1
  220. package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.js +1 -1
  221. package/dist/martyrs/src/modules/orders/orders.client.cjs +2 -2
  222. package/dist/martyrs/src/modules/orders/orders.client.cjs.map +1 -1
  223. package/dist/martyrs/src/modules/orders/orders.client.js +2 -2
  224. package/dist/martyrs/src/modules/orders/orders.client.js.map +1 -1
  225. package/dist/martyrs/src/modules/orders/router/customers.router.cjs +1 -1
  226. package/dist/martyrs/src/modules/orders/router/customers.router.cjs.map +1 -1
  227. package/dist/martyrs/src/modules/orders/router/customers.router.js +1 -1
  228. package/dist/martyrs/src/modules/orders/router/customers.router.js.map +1 -1
  229. package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.cjs +2 -24
  230. package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.cjs.map +1 -1
  231. package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.js +5 -27
  232. package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.js.map +1 -1
  233. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.cjs +1 -1
  234. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +1 -1
  235. package/dist/martyrs/src/modules/organizations/components/blocks/Socials.vue.cjs +4 -1
  236. package/dist/martyrs/src/modules/organizations/components/blocks/Socials.vue.cjs.map +1 -1
  237. package/dist/martyrs/src/modules/organizations/components/blocks/Socials.vue.js +4 -1
  238. package/dist/martyrs/src/modules/organizations/components/blocks/Socials.vue.js.map +1 -1
  239. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.cjs +3 -3
  240. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.cjs.map +1 -1
  241. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +3 -3
  242. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js.map +1 -1
  243. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.cjs +195 -0
  244. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.cjs.map +1 -0
  245. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js +195 -0
  246. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js.map +1 -0
  247. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.cjs +402 -0
  248. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.cjs.map +1 -0
  249. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js +402 -0
  250. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js.map +1 -0
  251. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.cjs +86 -0
  252. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.cjs.map +1 -0
  253. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js +86 -0
  254. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js.map +1 -0
  255. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.cjs +10 -10
  256. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.cjs.map +1 -1
  257. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js +11 -11
  258. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js.map +1 -1
  259. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +279 -191
  260. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs.map +1 -1
  261. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +285 -197
  262. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js.map +1 -1
  263. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +7 -7
  264. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs.map +1 -1
  265. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +7 -7
  266. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js.map +1 -1
  267. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +2 -2
  268. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs.map +1 -1
  269. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +2 -2
  270. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js.map +1 -1
  271. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.cjs +1 -1
  272. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.cjs.map +1 -1
  273. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js +1 -1
  274. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js.map +1 -1
  275. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.cjs +1 -1
  276. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +1 -1
  277. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +3 -3
  278. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs.map +1 -1
  279. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +3 -3
  280. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js.map +1 -1
  281. package/dist/martyrs/src/modules/organizations/components/sections/Publics.vue.cjs +4 -4
  282. package/dist/martyrs/src/modules/organizations/components/sections/Publics.vue.cjs.map +1 -1
  283. package/dist/martyrs/src/modules/organizations/components/sections/Publics.vue.js +4 -4
  284. package/dist/martyrs/src/modules/organizations/components/sections/Publics.vue.js.map +1 -1
  285. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.cjs +42 -41
  286. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.cjs.map +1 -1
  287. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.js +53 -52
  288. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.js.map +1 -1
  289. package/dist/martyrs/src/modules/organizations/organizations.client.cjs +23 -16
  290. package/dist/martyrs/src/modules/organizations/organizations.client.cjs.map +1 -1
  291. package/dist/martyrs/src/modules/organizations/organizations.client.js +35 -28
  292. package/dist/martyrs/src/modules/organizations/organizations.client.js.map +1 -1
  293. package/dist/martyrs/src/modules/organizations/router/departments.router.cjs +0 -18
  294. package/dist/martyrs/src/modules/organizations/router/departments.router.cjs.map +1 -1
  295. package/dist/martyrs/src/modules/organizations/router/departments.router.js +0 -18
  296. package/dist/martyrs/src/modules/organizations/router/departments.router.js.map +1 -1
  297. package/dist/martyrs/src/modules/organizations/store/departments.store.cjs +6 -0
  298. package/dist/martyrs/src/modules/organizations/store/departments.store.cjs.map +1 -0
  299. package/dist/martyrs/src/modules/organizations/store/departments.store.js +6 -0
  300. package/dist/martyrs/src/modules/organizations/store/departments.store.js.map +1 -0
  301. package/dist/martyrs/src/modules/organizations/store/invites.store.cjs +6 -0
  302. package/dist/martyrs/src/modules/organizations/store/invites.store.cjs.map +1 -0
  303. package/dist/martyrs/src/modules/organizations/store/invites.store.js +6 -0
  304. package/dist/martyrs/src/modules/organizations/store/invites.store.js.map +1 -0
  305. package/dist/martyrs/src/modules/organizations/store/memberships.store.cjs +20 -0
  306. package/dist/martyrs/src/modules/organizations/store/memberships.store.cjs.map +1 -0
  307. package/dist/martyrs/src/modules/organizations/store/memberships.store.js +20 -0
  308. package/dist/martyrs/src/modules/organizations/store/memberships.store.js.map +1 -0
  309. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.cjs +1 -1
  310. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.js +1 -1
  311. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +3 -4
  312. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs.map +1 -1
  313. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +3 -4
  314. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js.map +1 -1
  315. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +2 -2
  316. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +2 -2
  317. package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs +1 -1
  318. package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs.map +1 -1
  319. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +1 -1
  320. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js.map +1 -1
  321. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs +1 -1
  322. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +1 -1
  323. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs +2 -2
  324. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +2 -2
  325. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.cjs +1 -1
  326. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +1 -1
  327. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs +1 -1
  328. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +1 -1
  329. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs +3 -3
  330. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs.map +1 -1
  331. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js +3 -3
  332. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js.map +1 -1
  333. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.cjs +1 -1
  334. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js +1 -1
  335. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs +1 -1
  336. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +1 -1
  337. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +3 -3
  338. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +3 -3
  339. package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.cjs +60 -272
  340. package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.cjs.map +1 -1
  341. package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.js +62 -274
  342. package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.js.map +1 -1
  343. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.cjs +1 -1
  344. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +1 -1
  345. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.cjs +1 -1
  346. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +1 -1
  347. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.cjs +4 -4
  348. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +4 -4
  349. package/dist/martyrs.cjs.js +1 -1
  350. package/dist/martyrs.css +1 -1
  351. package/dist/martyrs.es.js +1 -1
  352. package/dist/music.server.cjs +9 -9
  353. package/dist/music.server.js +9 -9
  354. package/dist/notifications.server.cjs +0 -24
  355. package/dist/notifications.server.js +0 -24
  356. package/dist/orders.server.cjs +3 -6
  357. package/dist/orders.server.js +3 -6
  358. package/dist/organizations.server.cjs +119 -43
  359. package/dist/organizations.server.js +119 -43
  360. package/dist/products.server.cjs +5 -5
  361. package/dist/products.server.js +5 -5
  362. package/dist/rents.server.cjs +3 -3
  363. package/dist/rents.server.js +3 -3
  364. package/dist/style.css +16 -17
  365. package/dist/wallet.server.cjs +2 -2
  366. package/dist/wallet.server.js +2 -2
  367. package/dist/{web-B5wZTKbK.cjs → web-B0cfxzgu.cjs} +1 -1
  368. package/dist/{web-520xCgXy.js → web-DVR8m2fm.js} +1 -1
  369. package/package.json +1 -1
  370. package/src/builder/modes/ssr.rspack.dev.js +20 -12
  371. package/src/builder/rspack/rspack.config.base.js +16 -15
  372. package/src/components/Button/Button.vue +1 -1
  373. package/src/components/Feed/Feed.old.vue +0 -1
  374. package/src/components/Feed/Feed.vue +1 -31
  375. package/src/components/Loader/Loader.vue +1 -1
  376. package/src/modules/auth/FIXES.md +61 -0
  377. package/src/modules/auth/PROMT.md +33 -0
  378. package/src/modules/auth/auth.server.js +1 -0
  379. package/src/modules/auth/views/components/blocks/CardUser.vue +2 -2
  380. package/src/modules/auth/views/components/layouts/Auth.vue +1 -1
  381. package/src/modules/auth/views/components/pages/Invite.vue +2 -2
  382. package/src/modules/auth/views/components/pages/Profile.vue +33 -48
  383. package/src/modules/auth/views/components/sections/SliderFeatures.vue +5 -7
  384. package/src/modules/auth/views/store/auth.js +16 -1
  385. package/src/modules/auth//320/220/320/240/320/245/320/230/320/242/320/225/320/232/320/242/320/243/320/240/320/220.md +445 -0
  386. package/src/modules/backoffice/components/partials/Sidebar.vue +6 -0
  387. package/src/modules/chats/CLAUDE.md +137 -0
  388. package/src/modules/chats/components/blocks/ChatMessage.vue +12 -0
  389. package/src/modules/chats/components/sections/ChatWindow.vue +84 -2
  390. package/src/modules/chats/controllers/chats.controller.js +187 -0
  391. package/src/modules/chats/models/chat.model.js +21 -0
  392. package/src/modules/chats/routes/chats.routes.js +46 -0
  393. package/src/modules/chats/store/chat.store.js +67 -0
  394. package/src/modules/community/components/layouts/Community.vue +2 -2
  395. package/src/modules/community/components/pages/Posts.vue +3 -328
  396. package/src/modules/events/components/pages/EditEventTickets.vue +1 -1
  397. package/src/modules/events/components/pages/Events.vue +2 -2
  398. package/src/modules/globals/controllers/classes/globals.cache.js +64 -55
  399. package/src/modules/globals/controllers/classes/globals.logger.js +40 -4
  400. package/src/modules/globals/controllers/classes/globals.observer.js +54 -4
  401. package/src/modules/globals/views/components/partials/Header.vue +1 -1
  402. package/src/modules/globals/views/components/partials/Sidebar.vue +17 -13
  403. package/src/modules/globals/views/mixins/mixins.js +7 -0
  404. package/src/modules/inventory/CLAUDE.md +330 -0
  405. package/src/modules/inventory/PROMT.md +25 -0
  406. package/src/modules/inventory/components/forms/AdjustmentForm.vue +53 -36
  407. package/src/modules/inventory/components/forms/ColumnSettingsMenu.vue +11 -6
  408. package/src/modules/inventory/components/forms/HistoryView.vue +21 -9
  409. package/src/modules/inventory/components/forms/StockAlertsForm.vue +33 -22
  410. package/src/modules/inventory/components/pages/Inventory.vue +40 -40
  411. package/src/modules/inventory/components/pages/InventoryEdit.vue +1 -1
  412. package/src/modules/inventory/docs/01-intro.md +126 -0
  413. package/src/modules/inventory/docs/02-architecture.md +266 -0
  414. package/src/modules/inventory/docs/03-components-and-relationships.md +338 -0
  415. package/src/modules/inventory/docs/04-business-logic-and-algorithms.md +376 -0
  416. package/src/modules/inventory/docs/05-api-specification.md +356 -0
  417. package/src/modules/inventory/docs/06-access-control.md +320 -0
  418. package/src/modules/inventory/inventory.server.js +6 -2
  419. package/src/modules/inventory/{services → middlewares}/inventory.verifier.js +5 -16
  420. package/src/modules/inventory/models/stock.availability.model.js +20 -7
  421. package/src/modules/inventory/routes/inventory.routes.js +14 -17
  422. package/src/modules/inventory/services/adjustment.service.js +137 -0
  423. package/src/modules/inventory/services/audit.service.js +160 -0
  424. package/src/modules/inventory/services/availability.service.js +323 -0
  425. package/src/modules/inventory/services/inventory.helpers.old.js +217 -0
  426. package/src/modules/inventory/store/{ inventory.store.js → inventory.store.js} +0 -14
  427. package/src/modules/inventory/workers/inventory.availability.worker.js +29 -30
  428. package/src/modules/marketplace/views/components/layouts/Marketplace.vue +160 -8
  429. package/src/modules/notifications/controllers/notifications.controller.js +0 -6
  430. package/src/modules/notifications/services/notification.service.js +1 -17
  431. package/src/modules/notifications/services/web-push.service.js +0 -2
  432. package/src/modules/orders/components/blocks/CardOrderBackoffice.vue +2 -2
  433. package/src/modules/orders/components/blocks/CardOrderVar1.vue +1 -1
  434. package/src/modules/orders/controllers/orders.controller.js +2 -4
  435. package/src/modules/orders/orders.client.js +2 -2
  436. package/src/modules/orders/router/customers.router.js +1 -1
  437. package/src/modules/organizations/CLAUDE.md +259 -0
  438. package/src/modules/organizations/components/blocks/CardDepartment.vue +1 -22
  439. package/src/modules/organizations/components/blocks/Socials.vue +1 -1
  440. package/src/modules/organizations/components/elements/ButtonToggleMembership.vue +3 -3
  441. package/src/modules/organizations/components/forms/AddExistingMembersForm.vue +191 -0
  442. package/src/modules/organizations/components/forms/DepartmentForm.vue +390 -0
  443. package/src/modules/organizations/components/forms/InviteForm.vue +81 -0
  444. package/src/modules/organizations/components/pages/Department.vue +10 -10
  445. package/src/modules/organizations/components/pages/DepartmentEdit.vue +8 -8
  446. package/src/modules/organizations/components/pages/Members.vue +265 -171
  447. package/src/modules/organizations/components/pages/Organization.new.vue +172 -183
  448. package/src/modules/organizations/components/pages/Organization.vue +6 -6
  449. package/src/modules/organizations/components/pages/OrganizationEdit.vue +1 -1
  450. package/src/modules/organizations/components/pages/Organizations.vue +1 -1
  451. package/src/modules/organizations/components/sections/Organizations.vue +2 -2
  452. package/src/modules/organizations/components/sections/Publics.vue +4 -4
  453. package/src/modules/organizations/configs/navigation.organization.config.js +40 -39
  454. package/src/modules/organizations/controllers/departments.controller.js +53 -34
  455. package/src/modules/organizations/controllers/invites.controller.js +44 -5
  456. package/src/modules/organizations/controllers/memberships.controller.js +43 -4
  457. package/src/modules/organizations/organizations.client.js +24 -15
  458. package/src/modules/organizations/router/departments.router.js +0 -18
  459. package/src/modules/organizations/routes/departments.routes.js +6 -8
  460. package/src/modules/organizations/routes/invites.routes.js +6 -4
  461. package/src/modules/organizations/routes/memberships.routes.js +6 -5
  462. package/src/modules/organizations/routes/organizations.routes.js +1 -1
  463. package/src/modules/organizations/store/departments.store.js +5 -0
  464. package/src/modules/organizations/store/invites.store.js +5 -0
  465. package/src/modules/organizations/store/memberships.store.js +23 -0
  466. package/src/modules/products/components/pages/Products.vue +0 -1
  467. package/src/modules/spots/components/blocks/CardSpot.vue +1 -1
  468. package/src/modules/spots/components/pages/Spots.vue +3 -203
  469. package/src/styles/base/all.scss +0 -15
  470. package/src/styles/responsive.scss +1 -31
  471. package/src/styles/typography.scss +20 -5
  472. package/dist/main-CSzPfQYR.cjs +0 -11
  473. package/dist/martyrs/src/components/Address/Address.vue2.cjs.map +0 -1
  474. package/dist/martyrs/src/components/Chips/Chips.vue.cjs.map +0 -1
  475. package/dist/martyrs/src/components/Chips/Chips.vue.js.map +0 -1
  476. package/dist/martyrs/src/components/Dropdown/Dropdown.vue.js.map +0 -1
  477. package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue2.cjs.map +0 -1
  478. package/dist/martyrs/src/components/Select/Select.vue2.cjs.map +0 -1
  479. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue.cjs +0 -76
  480. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue.cjs.map +0 -1
  481. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue.js +0 -76
  482. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue.js.map +0 -1
  483. package/dist/martyrs/src/modules/inventory/store/ inventory.store.cjs.map +0 -1
  484. package/dist/martyrs/src/modules/inventory/store/ inventory.store.js.map +0 -1
  485. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +0 -280
  486. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs.map +0 -1
  487. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +0 -280
  488. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js.map +0 -1
  489. package/dist/martyrs/src/modules/organizations/store/departments.cjs +0 -121
  490. package/dist/martyrs/src/modules/organizations/store/departments.cjs.map +0 -1
  491. package/dist/martyrs/src/modules/organizations/store/departments.js +0 -121
  492. package/dist/martyrs/src/modules/organizations/store/departments.js.map +0 -1
  493. package/dist/martyrs/src/modules/organizations/store/invites.cjs +0 -64
  494. package/dist/martyrs/src/modules/organizations/store/invites.cjs.map +0 -1
  495. package/dist/martyrs/src/modules/organizations/store/invites.js +0 -64
  496. package/dist/martyrs/src/modules/organizations/store/invites.js.map +0 -1
  497. package/dist/martyrs/src/modules/organizations/store/memberships.cjs +0 -87
  498. package/dist/martyrs/src/modules/organizations/store/memberships.cjs.map +0 -1
  499. package/dist/martyrs/src/modules/organizations/store/memberships.js +0 -87
  500. package/dist/martyrs/src/modules/organizations/store/memberships.js.map +0 -1
  501. package/src/modules/globals/controllers/classes/globals.websocket.ws.js +0 -102
  502. package/src/modules/globals/views/components/blocks/BlockFilter.vue +0 -60
  503. package/src/modules/inventory/docs/README.md +0 -291
  504. package/src/modules/inventory/models/stock.balance.model.js +0 -43
  505. package/src/modules/inventory/services/inventory.crud.js +0 -710
  506. package/src/modules/inventory/tests/inventory.test.js +0 -281
  507. package/src/modules/organizations/store/departments.js +0 -137
  508. package/src/modules/organizations/store/invites.js +0 -76
  509. package/src/modules/organizations/store/memberships.js +0 -110
@@ -1 +1 @@
1
- {"version":3,"file":"Header.vue.js","sources":["../../../../../../../../src/modules/globals/views/components/partials/Header.vue"],"sourcesContent":["<script setup=\"props\">\n\timport { computed, onMounted, toRefs, ref, inject } from 'vue'\n\n\timport { useRouter,useRoute } from 'vue-router'\n\timport { useI18n } from 'vue-i18n'\n\t\n\timport * as globals from '@martyrs/src/modules/globals/views/store/globals.js'\n\timport * as shopcart from '@martyrs/src/modules/orders/store/shopcart.js'\n\timport * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\n\t\n\t// Globasls Component\n\n\timport NotificationBadge from '@martyrs/src/modules/notifications/components/elements/NotificationBadge.vue';\n\t// import Navigation from '@martyrs/src/modules/globals/views/components/partials/Navigation.vue'\n\t// Martyrs Component\n\timport Button from '@martyrs/src/components/Button/Button.vue'\n\timport Select from '@martyrs/src/components/Select/Select.vue'\n\timport Checkbox from '@martyrs/src/components/Checkbox/Checkbox.vue'\n\t// Icons module\n\timport IconShopcart from '@martyrs/src/modules/icons/entities/IconShopcart.vue'\n\timport IconProfile from '@martyrs/src/modules/icons/entities/IconProfile.vue'\n\timport IconSearch from '@martyrs/src/modules/icons/navigation/IconSearch.vue';\n\t// Props\n\tconst props = defineProps({\n theme: {\n \ttype: String,\n\t default: \"light\"\n },\n logotype: {\n\t type: Object\n\t },\n\t location: {\n\t type: Boolean,\n\t\t default: true\n\t },\n\t theme_switcher: {\n\t type: Boolean,\n\t\t default: true\n\t },\n });\n\t// Accessing state\n\tconst router = useRouter()\n\tconst route = useRoute()\n\t// Localization\n\tconst { t } = useI18n()\n\t// const search = computed(() => store.products.state.search)\n\n\tfunction openLocationPopup() {\n\t globals.state.isOpenLocationPopup = true;\n\t}\n\t/////////////////////////////\n\t// MOUNTED\n\t/////////////////////////////\n\tonMounted(() => {\n shopcart.actions.setShopcart()\n });\n</script>\n\n<template>\n\t<header \n\t\tid=\"header\" \n\t\tclass=\"\n\t\t\tpd-thin \n\t\t\tgap-micro\n\t\t\tflex-justify-between\n\t\t\tflex-nowrap\n\t\t\tflex\n\t\t\th-4r\n\t\t\tw-100\n\t\t\tz-index-2 \n\t\t\tpos-relative pos-t-0\n\t\t\tbr-b\n\t\t\tbr-solid\n\t\t\"\n\t\t:class=\"{\n \t\t't-black br-light': theme === 'light',\n \t\t't-white br-dark': theme === 'dark' \n \t}\"\n\t>\n\t<div class=\"flex-nowrap flex-v-center flex-justify-start flex gap-micro \">\n\t\t<!-- MENU -->\n\t\t<button \n\t\t\taria-label=\"menu\"\n\t\t\t@click=\"() => globals.state.isOpenSidebar = !globals.state.isOpenSidebar\" \n\t\t\tclass=\"cursor-pointer menu-btn\"\n\t\t\t:class=\"{\n\t\t\t\t'menu-btn_active': globals.state.isOpenSidebar\n\t\t\t}\"\n\t\t>\n\t <span\n\t \tclass=\"no-events\"\n\t\t :class=\"{\n\t\t 'bg-black': theme === 'light',\n\t\t 'bg-white': theme === 'dark'\n\t\t }\"\n\t\t >\n\t\t <span class=\"menu-btn__before\" :class=\"{ 'bg-black': theme === 'light', 'bg-white': theme === 'dark' }\"></span>\n\t\t <span class=\"menu-btn__after\" :class=\"{ 'bg-black': theme === 'light', 'bg-white': theme === 'dark' }\"></span>\n\t\t </span>\n\t </button>\n\n\t\t<!-- LOGO -->\n\t\t<component\n\t\t\tv-if=\"logotype\"\n\t\t :is=\"logotype\"\n\t\t @click=\"router.push({ path: '/' })\" \n\t\t :theme=\"theme\"\n\t\t class=\"cursor-pointer h-2r\"\n\t\t/>\n\n\t\t<button\n\t\t\tv-if=\"location\"\n\t\t\taria-label=\"button_location\"\n \tclass=\"\n \t\tcursor-pointer\n \t\tbg-transp \n \t\tpd-l-micro pd-r-micro\n \t\tradius-extra \n \t\tuppercase \n \t\tt-semi\n \t\tbr-solid \n \t\tbr-2px \n \t\ttransition-linear\n \t\tt-nowrap\n \t\n \t\"\n \t:class=\"{\n \t\t'fill-black br-black t-black hover-bg-black hover-t-white hover-fill-white': theme === 'light',\n \t\t'fill-white br-white t-white hover-bg-white hover-t-black hover-fill-black': theme === 'dark' \n \t}\"\n \t@click=\"openLocationPopup()\"\n >\n \t<svg class=\"i-small\" :fill=\"'inherit'\" xmlns=\"http://www.w3.org/2000/svg\" width=\"50\" height=\"67\" viewBox=\"0 0 50 67\" fill=\"none\">\n\t\t\t <path d=\"M25 0C11.207 0 0 11.207 0 25C0 38.793 20.832 66.668 25 66.668C29.168 66.668 50 38.793 50 25C50 11.207 38.793 0 25 0ZM25 33.332C20.418 33.332 16.668 29.582 16.668 25C16.668 20.418 20.418 16.668 25 16.668C29.582 16.668 33.332 20.418 33.332 25C33.332 29.582 29.582 33.332 25 33.332Z\" :fill=\"'inherit'\"/>\n\t\t\t</svg>\n \t {{globals.state.position?.country ? globals.state.position.country : 'World'}}\n </button>\n </div>\n\n \t<slot></slot>\n\n\t<div class=\"flex-justify-end flex-v-center flex-nowrap flex gap-micro\">\n\t\t<Button \n\t\t\tv-if=\"router.hasRoute('Search') && route.meta.header_search\"\n\t\t\taria-label=\"search\"\n\t\t\tclass=\"pd-zero bg-transp\"\n\t\t\t:class=\"route.meta.header_search_class\"\n\t\t\t:submit=\"() => router.push({name: 'Search'})\"\n\t\t\t:showSucces=\"false\"\n\t\t\t:showLoader=\"false\"\n\t\t>\n\t\t\t<IconSearch \n\t\t\t\tclass=\"i-semi\"\n\t\t\t\t:fill=\"theme === 'light' ? 'rgb(var(--black))' : 'rgb(var(--white))'\" \n\t\t\t/>\n\t\t</Button>\n\t\n\t\t<Button\n\t\t\taria-label=\"shopcart\"\n\t\t\t:submit=\"a => shopcart.actions.toggleShopcart()\" \n\t\t\t:counter=\"shopcart.getters.cartTotalAmount\" \n\t\t\t:showSucces=\"false\"\n\t\t\t:showLoader=\"false\"\n\t\t\tclass=\"pd-zero mn-r-micro\"\n\t\t\t> \n\t\t\t<IconShopcart \n\t\t\t\tclass=\"i-semi\"\n\t\t\t\t:fill=\"theme === 'light' ? 'rgb(var(--black))' : 'rgb(var(--white))'\" \n\t\t\t/>\n\t\t\t<!-- <div class=\"w-max p-small pos-absolute pos-t-100 pos-r-0\">Product Added to Shopcart</div> -->\n\t\t</Button>\n\n\n\t\t<NotificationBadge\n\t\t\tv-if=\"auth.state.user._id\"\n\t\t\t:fill=\"theme === 'light' ? 'rgb(var(--black))' : 'rgb(var(--white))'\" \n\t\t/>\n\n\t\t<Button \n\t\t\taria-label=\"profile\"\n\t\t\tclass=\"pd-zero bg-transp\"\n\t\t\t:submit=\"\n\t\t\t\tauth.state.access.status === false \n\t\t\t\t? \n\t\t\t\ta => router.push({name: 'Sign In'}) \n\t\t\t\t: \n\t\t\t\ta => router.push({ name: 'User Profile', params: { _id: auth.state.user._id }})\n\t\t\t\"\n\t\t\t:showSucces=\"false\"\n\t\t\t:showLoader=\"false\"\n\t\t>\n\t\t\t<IconProfile \n\t\t\t\tclass=\"i-semi\"\n\t\t\t\t:fill=\"theme === 'light' ? 'rgb(var(--black))' : 'rgb(var(--white))'\" \n\t\t\t/>\n\t\t</Button>\n\n\t\t<Select \n\t\t\tv-if=\"$i18n.availableLocales.length > 1\"\n\t\t\tv-model:select=\"$i18n.locale\"\n\t\t :options=\"$i18n.availableLocales\"\n\t\t :property=\"'value'\"\n class=\"pos-relative flex flex-column gap-small uppercase pd-thin t-semi radius-thin\"\n :class=\"{\n \t\t'bg-light t-black': theme === 'light',\n \t\t'bg-dark t-white': theme === 'dark' \n \t}\"\n />\n </div>\n</header>\n \n</template>\n\n<style lang=\"scss\">\n.location-button { \n\t&:hover {\n\t\tbox-shadow: inset 0 0 0 2px rgb(var(--main));\n\t}\n}\n\n.menu-btn {\n display: block;\n width: 2rem;\n height: 2rem;\n border-radius: 50%;\n position: relative;\n}\n.menu-btn span,\n.menu-btn__before,\n.menu-btn__after {\n position: absolute;\n top: 50%;\n margin-top: -1px;\n left: 50%;\n margin-left: -10px;\n width: 20px;\n height: 2px;\n}\n.menu-btn__before,\n.menu-btn__after {\n display: block;\n transition: 0.2s;\n}\n.menu-btn__before {\n transform: translateY(-5px);\n}\n.menu-btn__after {\n transform: translateY(5px);\n}\n.menu-btn_active .menu-btn__before {\n transform: rotate(-35deg);\n width: 10px;\n transform-origin: left bottom;\n}\n.menu-btn_active .menu-btn__after {\n transform: rotate(35deg);\n width: 10px;\n transform-origin: left top;\n}\n\n.menu-btn_active span:before {\n transform: rotate(-35deg);\n width: 10px;\n transform-origin: left bottom;\n}\n.menu-btn_active span:after {\n transform: rotate(35deg);\n width: 10px;\n transform-origin: left top;\n}\n\n.menu-block {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.menu-nav {\n background-color: #fff;\n height: 50px;\n \n}\n.menu-nav__link {\n display: inline-block;\n text-decoration: none;\n color: #fff;\n margin-right: 20px;\n}\n.menu-nav__link {\n transition: 0.5s;\n transform-origin: right center;\n transform: translateX(50%);\n opacity: 0;\n}\n.menu-nav__link_active {\n transform: translateX(0%);\n opacity: 1;\n}\n\n</style>"],"names":["globals.state","shopcart.actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCC,UAAM,SAAS,UAAS;AACxB,UAAM,QAAQ,SAAQ;AAEtB,UAAM,EAAE,EAAC,IAAK,QAAO;AAGrB,aAAS,oBAAoB;AAC3BA,YAAc,sBAAsB;AAAA,IACtC;AAIA,cAAU,MAAM;AACbC,cAAiB,YAAW;AAAA,IAC9B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Header.vue.js","sources":["../../../../../../../../src/modules/globals/views/components/partials/Header.vue"],"sourcesContent":["<script setup=\"props\">\n\timport { computed, onMounted, toRefs, ref, inject } from 'vue'\n\n\timport { useRouter,useRoute } from 'vue-router'\n\timport { useI18n } from 'vue-i18n'\n\t\n\timport * as globals from '@martyrs/src/modules/globals/views/store/globals.js'\n\timport * as shopcart from '@martyrs/src/modules/orders/store/shopcart.js'\n\timport * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\n\t\n\t// Globasls Component\n\n\timport NotificationBadge from '@martyrs/src/modules/notifications/components/elements/NotificationBadge.vue';\n\t// import Navigation from '@martyrs/src/modules/globals/views/components/partials/Navigation.vue'\n\t// Martyrs Component\n\timport Button from '@martyrs/src/components/Button/Button.vue'\n\timport Select from '@martyrs/src/components/Select/Select.vue'\n\timport Checkbox from '@martyrs/src/components/Checkbox/Checkbox.vue'\n\t// Icons module\n\timport IconShopcart from '@martyrs/src/modules/icons/entities/IconShopcart.vue'\n\timport IconProfile from '@martyrs/src/modules/icons/entities/IconProfile.vue'\n\timport IconSearch from '@martyrs/src/modules/icons/navigation/IconSearch.vue';\n\t// Props\n\tconst props = defineProps({\n theme: {\n \ttype: String,\n\t default: \"light\"\n },\n logotype: {\n\t type: Object\n\t },\n\t location: {\n\t type: Boolean,\n\t\t default: true\n\t },\n\t theme_switcher: {\n\t type: Boolean,\n\t\t default: true\n\t },\n });\n\t// Accessing state\n\tconst router = useRouter()\n\tconst route = useRoute()\n\t// Localization\n\tconst { t } = useI18n()\n\t// const search = computed(() => store.products.state.search)\n\n\tfunction openLocationPopup() {\n\t globals.state.isOpenLocationPopup = true;\n\t}\n\t/////////////////////////////\n\t// MOUNTED\n\t/////////////////////////////\n\tonMounted(() => {\n shopcart.actions.setShopcart()\n });\n</script>\n\n<template>\n\t<header \n\t\tid=\"header\" \n\t\tclass=\"\n\t\t\tpd-thin \n\t\t\tgap-micro\n\t\t\tflex-justify-between\n\t\t\tflex-nowrap\n\t\t\tflex\n\t\t\th-4r\n\t\t\tw-100\n\t\t\tz-index-2 \n\t\t\tpos-relative pos-t-0\n\t\t\tbr-b\n\t\t\tbr-solid\n\t\t\"\n\t\t:class=\"{\n \t\t't-black br-light': theme === 'light',\n \t\t't-white br-dark': theme === 'dark' \n \t}\"\n\t>\n\t<div class=\"flex-nowrap flex-v-center flex-justify-start flex gap-micro \">\n\t\t<!-- MENU -->\n\t\t<button \n\t\t\taria-label=\"menu\"\n\t\t\t@click=\"() => globals.state.isOpenSidebar = !globals.state.isOpenSidebar\" \n\t\t\tclass=\"cursor-pointer mobile-only menu-btn\"\n\t\t\t:class=\"{\n\t\t\t\t'menu-btn_active': globals.state.isOpenSidebar\n\t\t\t}\"\n\t\t>\n\t <span\n\t \tclass=\"no-events\"\n\t\t :class=\"{\n\t\t 'bg-black': theme === 'light',\n\t\t 'bg-white': theme === 'dark'\n\t\t }\"\n\t\t >\n\t\t <span class=\"menu-btn__before\" :class=\"{ 'bg-black': theme === 'light', 'bg-white': theme === 'dark' }\"></span>\n\t\t <span class=\"menu-btn__after\" :class=\"{ 'bg-black': theme === 'light', 'bg-white': theme === 'dark' }\"></span>\n\t\t </span>\n\t </button>\n\n\t\t<!-- LOGO -->\n\t\t<component\n\t\t\tv-if=\"logotype\"\n\t\t :is=\"logotype\"\n\t\t @click=\"router.push({ path: '/' })\" \n\t\t :theme=\"theme\"\n\t\t class=\"cursor-pointer h-2r\"\n\t\t/>\n\n\t\t<button\n\t\t\tv-if=\"location\"\n\t\t\taria-label=\"button_location\"\n \tclass=\"\n \t\tcursor-pointer\n \t\tbg-transp \n \t\tpd-l-micro pd-r-micro\n \t\tradius-extra \n \t\tuppercase \n \t\tt-semi\n \t\tbr-solid \n \t\tbr-2px \n \t\ttransition-linear\n \t\tt-nowrap\n \t\n \t\"\n \t:class=\"{\n \t\t'fill-black br-black t-black hover-bg-black hover-t-white hover-fill-white': theme === 'light',\n \t\t'fill-white br-white t-white hover-bg-white hover-t-black hover-fill-black': theme === 'dark' \n \t}\"\n \t@click=\"openLocationPopup()\"\n >\n \t<svg class=\"i-small\" :fill=\"'inherit'\" xmlns=\"http://www.w3.org/2000/svg\" width=\"50\" height=\"67\" viewBox=\"0 0 50 67\" fill=\"none\">\n\t\t\t <path d=\"M25 0C11.207 0 0 11.207 0 25C0 38.793 20.832 66.668 25 66.668C29.168 66.668 50 38.793 50 25C50 11.207 38.793 0 25 0ZM25 33.332C20.418 33.332 16.668 29.582 16.668 25C16.668 20.418 20.418 16.668 25 16.668C29.582 16.668 33.332 20.418 33.332 25C33.332 29.582 29.582 33.332 25 33.332Z\" :fill=\"'inherit'\"/>\n\t\t\t</svg>\n \t {{globals.state.position?.country ? globals.state.position.country : 'World'}}\n </button>\n </div>\n\n \t<slot></slot>\n\n\t<div class=\"flex-justify-end flex-v-center flex-nowrap flex gap-micro\">\n\t\t<Button \n\t\t\tv-if=\"router.hasRoute('Search') && route.meta.header_search\"\n\t\t\taria-label=\"search\"\n\t\t\tclass=\"pd-zero bg-transp\"\n\t\t\t:class=\"route.meta.header_search_class\"\n\t\t\t:submit=\"() => router.push({name: 'Search'})\"\n\t\t\t:showSucces=\"false\"\n\t\t\t:showLoader=\"false\"\n\t\t>\n\t\t\t<IconSearch \n\t\t\t\tclass=\"i-semi\"\n\t\t\t\t:fill=\"theme === 'light' ? 'rgb(var(--black))' : 'rgb(var(--white))'\" \n\t\t\t/>\n\t\t</Button>\n\t\n\t\t<Button\n\t\t\taria-label=\"shopcart\"\n\t\t\t:submit=\"a => shopcart.actions.toggleShopcart()\" \n\t\t\t:counter=\"shopcart.getters.cartTotalAmount\" \n\t\t\t:showSucces=\"false\"\n\t\t\t:showLoader=\"false\"\n\t\t\tclass=\"pd-zero mn-r-micro\"\n\t\t\t> \n\t\t\t<IconShopcart \n\t\t\t\tclass=\"i-semi\"\n\t\t\t\t:fill=\"theme === 'light' ? 'rgb(var(--black))' : 'rgb(var(--white))'\" \n\t\t\t/>\n\t\t\t<!-- <div class=\"w-max p-small pos-absolute pos-t-100 pos-r-0\">Product Added to Shopcart</div> -->\n\t\t</Button>\n\n\n\t\t<NotificationBadge\n\t\t\tv-if=\"auth.state.user._id\"\n\t\t\t:fill=\"theme === 'light' ? 'rgb(var(--black))' : 'rgb(var(--white))'\" \n\t\t/>\n\n\t\t<Button \n\t\t\taria-label=\"profile\"\n\t\t\tclass=\"pd-zero bg-transp\"\n\t\t\t:submit=\"\n\t\t\t\tauth.state.access.status === false \n\t\t\t\t? \n\t\t\t\ta => router.push({name: 'Sign In'}) \n\t\t\t\t: \n\t\t\t\ta => router.push({ name: 'User Profile', params: { _id: auth.state.user._id }})\n\t\t\t\"\n\t\t\t:showSucces=\"false\"\n\t\t\t:showLoader=\"false\"\n\t\t>\n\t\t\t<IconProfile \n\t\t\t\tclass=\"i-semi\"\n\t\t\t\t:fill=\"theme === 'light' ? 'rgb(var(--black))' : 'rgb(var(--white))'\" \n\t\t\t/>\n\t\t</Button>\n\n\t\t<Select \n\t\t\tv-if=\"$i18n.availableLocales.length > 1\"\n\t\t\tv-model:select=\"$i18n.locale\"\n\t\t :options=\"$i18n.availableLocales\"\n\t\t :property=\"'value'\"\n class=\"pos-relative flex flex-column gap-small uppercase pd-thin t-semi radius-thin\"\n :class=\"{\n \t\t'bg-light t-black': theme === 'light',\n \t\t'bg-dark t-white': theme === 'dark' \n \t}\"\n />\n </div>\n</header>\n \n</template>\n\n<style lang=\"scss\">\n.location-button { \n\t&:hover {\n\t\tbox-shadow: inset 0 0 0 2px rgb(var(--main));\n\t}\n}\n\n.menu-btn {\n display: block;\n width: 2rem;\n height: 2rem;\n border-radius: 50%;\n position: relative;\n}\n.menu-btn span,\n.menu-btn__before,\n.menu-btn__after {\n position: absolute;\n top: 50%;\n margin-top: -1px;\n left: 50%;\n margin-left: -10px;\n width: 20px;\n height: 2px;\n}\n.menu-btn__before,\n.menu-btn__after {\n display: block;\n transition: 0.2s;\n}\n.menu-btn__before {\n transform: translateY(-5px);\n}\n.menu-btn__after {\n transform: translateY(5px);\n}\n.menu-btn_active .menu-btn__before {\n transform: rotate(-35deg);\n width: 10px;\n transform-origin: left bottom;\n}\n.menu-btn_active .menu-btn__after {\n transform: rotate(35deg);\n width: 10px;\n transform-origin: left top;\n}\n\n.menu-btn_active span:before {\n transform: rotate(-35deg);\n width: 10px;\n transform-origin: left bottom;\n}\n.menu-btn_active span:after {\n transform: rotate(35deg);\n width: 10px;\n transform-origin: left top;\n}\n\n.menu-block {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.menu-nav {\n background-color: #fff;\n height: 50px;\n \n}\n.menu-nav__link {\n display: inline-block;\n text-decoration: none;\n color: #fff;\n margin-right: 20px;\n}\n.menu-nav__link {\n transition: 0.5s;\n transform-origin: right center;\n transform: translateX(50%);\n opacity: 0;\n}\n.menu-nav__link_active {\n transform: translateX(0%);\n opacity: 1;\n}\n\n</style>"],"names":["globals.state","shopcart.actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCC,UAAM,SAAS,UAAS;AACxB,UAAM,QAAQ,SAAQ;AAEtB,UAAM,EAAE,EAAC,IAAK,QAAO;AAGrB,aAAS,oBAAoB;AAC3BA,YAAc,sBAAsB;AAAA,IACtC;AAIA,cAAU,MAAM;AACbC,cAAiB,YAAW;AAAA,IAC9B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
- const Address = require("../../../../../components/Address/Address.vue2.cjs");
5
- const LocationMarker = require("../../../../../components/LocationMarker/LocationMarker.vue2.cjs");
4
+ const Address = require("../../../../../components/Address/Address.vue.cjs");
5
+ const LocationMarker = require("../../../../../components/LocationMarker/LocationMarker.vue.cjs");
6
6
  const vueRouter = require("vue-router");
7
7
  const vueI18n = require("vue-i18n");
8
8
  const globals = require("../../store/globals.cjs");
@@ -1,6 +1,6 @@
1
1
  import { ref, onMounted, createElementBlock, openBlock, createElementVNode, createBlock, toDisplayString, unref } from "vue";
2
- import _sfc_main$1 from "../../../../../components/Address/Address.vue2.js";
3
- import _sfc_main$2 from "../../../../../components/LocationMarker/LocationMarker.vue2.js";
2
+ import _sfc_main$1 from "../../../../../components/Address/Address.vue.js";
3
+ import _sfc_main$2 from "../../../../../components/LocationMarker/LocationMarker.vue.js";
4
4
  import { useRoute, useRouter } from "vue-router";
5
5
  import { useI18n } from "vue-i18n";
6
6
  import { state } from "../../store/globals.js";
@@ -5,7 +5,7 @@ const vueRouter = require("vue-router");
5
5
  const IconChevronBottom = require("../../../../icons/navigation/IconChevronBottom.vue.cjs");
6
6
  const globals = require("../../store/globals.cjs");
7
7
  const auth = require("../../../../auth/views/store/auth.cjs");
8
- ;/* empty css */
8
+ ;/* empty css */
9
9
  ;/* empty css */
10
10
  ;/* empty css */
11
11
  const _pluginVue_exportHelper = require("../../../../../../../_virtual/_plugin-vue_export-helper.cjs");
@@ -3,7 +3,7 @@ import { useRouter, useRoute } from "vue-router";
3
3
  import IconChevronBottom from "../../../../icons/navigation/IconChevronBottom.vue.js";
4
4
  import { state } from "../../store/globals.js";
5
5
  import { state as state$1 } from "../../../../auth/views/store/auth.js";
6
- /* empty css */
6
+ /* empty css */
7
7
  /* empty css */
8
8
  /* empty css */
9
9
  import _export_sfc from "../../../../../../../_virtual/_plugin-vue_export-helper.js";
@@ -34,9 +34,20 @@ const _sfc_main = {
34
34
  const emits = __emit;
35
35
  const { isPhone, isTablet } = mixins.useGlobalMixins();
36
36
  const router = vueRouter.useRouter();
37
+ const route = vueRouter.useRoute();
37
38
  const toggleSidebar = () => {
38
39
  emits("closeSidebar");
39
40
  };
41
+ const handleMouseEnter = () => {
42
+ if (route.meta?.sidebar_hover && !isPhone() && !isTablet()) {
43
+ globals.state.isOpenSidebar = true;
44
+ }
45
+ };
46
+ const handleMouseLeave = () => {
47
+ if (route.meta?.sidebar_hover && !isPhone() && !isTablet()) {
48
+ globals.state.isOpenSidebar = false;
49
+ }
50
+ };
40
51
  router.beforeEach((to, from) => {
41
52
  if (isPhone() || isTablet()) {
42
53
  emits("closeSidebar");
@@ -48,7 +59,9 @@ const _sfc_main = {
48
59
  __props.stateSidebar ? `${__props.width} w-min-10 tablet:w-min-100 tablet:w-100 mobile:w-min-100 mobile:w-100` : `${__props.widthHidden} mobile:w-0`,
49
60
  //
50
61
  __props.theme === "light" ? "t-black bg-white br-light" : "t-white bg-black br-dark"
51
- ]])
62
+ ]]),
63
+ onMouseenter: handleMouseEnter,
64
+ onMouseleave: handleMouseLeave
52
65
  }, [
53
66
  vue.renderSlot(_ctx.$slots, "default", {}, void 0, true),
54
67
  _ctx.MOBILE_APP ? (vue.openBlock(), vue.createElementBlock("div", {
@@ -81,10 +94,10 @@ const _sfc_main = {
81
94
  vue.createElementVNode("span", _hoisted_1, vue.toDisplayString(globals.state.theme.darkmode ? "🌙" : "☀️"), 1)
82
95
  ], 2)
83
96
  ], 2)
84
- ], 2);
97
+ ], 34);
85
98
  };
86
99
  }
87
100
  };
88
- const Sidebar = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-f75227e1"]]);
101
+ const Sidebar = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-35fd35e3"]]);
89
102
  exports.default = Sidebar;
90
103
  //# sourceMappingURL=Sidebar.vue.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Sidebar.vue.cjs","sources":["../../../../../../../../src/modules/globals/views/components/partials/Sidebar.vue"],"sourcesContent":["<script setup>\nimport { ref, watch } from 'vue'\nimport { useRouter } from 'vue-router'\nimport { useGlobalMixins } from \"@martyrs/src/modules/globals/views/mixins/mixins.js\"\n\nimport * as globals from '@martyrs/src/modules/globals/views/store/globals.js'\n\nconst props = defineProps({\n theme: {\n type: String,\n default: \"light\"\n },\n stateSidebar: {\n type: Boolean,\n default: false\n },\n width: {\n type: String,\n default: 'w-15r'\n },\n widthHidden:{\n type: String,\n default: 'w-3r '\n },\n})\n\nconst emits = defineEmits([\n 'closeSidebar'\n])\n\nconst { isPhone, isTablet } = useGlobalMixins()\n\nconst router = useRouter()\n\nconst toggleSidebar = () => {\n emits('closeSidebar')\n}\n\nrouter.beforeEach((to, from) => {\n if (isPhone() || isTablet()) {\n emits('closeSidebar')\n }\n})\n\n</script>\n\n<template>\n <aside\n class=\"transition-quint-out w-min-0 o-hidden flex-child-default z-index-2 br-r br-solid flex flex-column h-100\"\n :class=\"[\n stateSidebar\n ? `${width} w-min-10 tablet:w-min-100 tablet:w-100 mobile:w-min-100 mobile:w-100`\n : `${widthHidden} mobile:w-0`,\n // \n theme === 'light' \n ? 't-black bg-white br-light'\n : 't-white bg-black br-dark'\n ]\"\n >\n\n <!-- Slot for navigation content -->\n <slot></slot>\n\n <div v-if=\"MOBILE_APP\" @click=\"() => toggleSidebar()\" class=\"pos-relative\">\n <div class=\"bg-light radius-medium pd-medium\">\n <p class=\"t-medium t-black-transp-60\">\n Close Menu\n </p>\n </div>\n </div>\n\n <div \n class=\"br-solid w-100 br-t\"\n :class=\"{ \n 'pd-micro': !stateSidebar, \n 'pd-small': stateSidebar,\n 'br-light': theme === 'light',\n 'br-dark': theme === 'dark'\n }\"\n >\n <button\n @click=\"() => globals.actions.toggleTheme()\"\n class=\"transition-quint-out flex w-100 flex-center radius-small cursor-pointer flex-nowrap\"\n :class=\"[\n stateSidebar ? 'pd-thin justify-between' : 'w-100 justify-center',\n theme === 'light' ? 'hover-bg-light' : 'hover-bg-dark'\n ]\"\n >\n <span \n class=\"w-100 t-nowrap transition-quint-out t-left t-medium mn-r-thin\"\n :class=\"{ 'hidden': !stateSidebar, 'visible': stateSidebar }\"\n >\n Dark Mode\n </span>\n <span class=\"aspect-1x1 flex-child-default w-max-big w-100 flex flex-center \">\n {{ globals.state.theme.darkmode ? '🌙' : '☀️' }}\n </span>\n </button>\n </div>\n </aside>\n</template>\n\n<style scoped>\n.hidden {\n opacity: 0;\n width: 0;\n display: none;\n}\n\n.visible {\n opacity: 1;\n display: block;\n}\n\n/* Scrollbar styles */\n::-webkit-scrollbar {\n width: 6px;\n}\n\n::-webkit-scrollbar-track {\n background: transparent;\n}\n\n::-webkit-scrollbar-thumb {\n background-color: var(--grey-micro);\n border-radius: 3px;\n}\n\n::-webkit-scrollbar-thumb:hover {\n background-color: var(--grey-small);\n}\n</style> "],"names":["useGlobalMixins","useRouter"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,UAAM,QAAQ;AAId,UAAM,EAAE,SAAS,SAAQ,IAAKA,OAAAA,gBAAe;AAE7C,UAAM,SAASC,UAAAA,UAAS;AAExB,UAAM,gBAAgB,MAAM;AAC1B,YAAM,cAAc;AAAA,IACtB;AAEA,WAAO,WAAW,CAAC,IAAI,SAAS;AAC7B,UAAI,QAAO,KAAM,YAAY;AAC5B,cAAM,cAAc;AAAA,MACtB;AAAA,IACF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Sidebar.vue.cjs","sources":["../../../../../../../../src/modules/globals/views/components/partials/Sidebar.vue"],"sourcesContent":["<script setup>\nimport { ref, watch } from 'vue'\nimport { useRouter, useRoute } from 'vue-router'\nimport { useGlobalMixins } from \"@martyrs/src/modules/globals/views/mixins/mixins.js\"\nimport * as globals from '@martyrs/src/modules/globals/views/store/globals.js'\n\nconst props = defineProps({\n theme: {\n type: String,\n default: \"light\"\n },\n stateSidebar: {\n type: Boolean,\n default: false\n },\n width: {\n type: String,\n default: 'w-15r'\n },\n widthHidden:{\n type: String,\n default: 'w-3r '\n },\n})\n\nconst emits = defineEmits([\n 'closeSidebar'\n])\n\nconst { isPhone, isTablet } = useGlobalMixins()\nconst router = useRouter()\nconst route = useRoute()\n\nconst toggleSidebar = () => {\n emits('closeSidebar')\n}\n\nconst handleMouseEnter = () => {\n if (route.meta?.sidebar_hover && !isPhone() && !isTablet()) {\n globals.state.isOpenSidebar = true\n }\n}\n\nconst handleMouseLeave = () => {\n if (route.meta?.sidebar_hover && !isPhone() && !isTablet()) {\n globals.state.isOpenSidebar = false\n }\n}\n\nrouter.beforeEach((to, from) => {\n if (isPhone() || isTablet()) {\n emits('closeSidebar')\n }\n})\n</script>\n\n<template>\n <aside\n class=\"transition-quint-out w-min-0 o-hidden flex-child-default z-index-2 br-r br-solid flex flex-column h-100\"\n :class=\"[\n stateSidebar\n ? `${width} w-min-10 tablet:w-min-100 tablet:w-100 mobile:w-min-100 mobile:w-100`\n : `${widthHidden} mobile:w-0`,\n // \n theme === 'light' \n ? 't-black bg-white br-light'\n : 't-white bg-black br-dark'\n ]\"\n @mouseenter=\"handleMouseEnter\"\n @mouseleave=\"handleMouseLeave\"\n >\n <!-- Slot for navigation content -->\n <slot></slot>\n <div v-if=\"MOBILE_APP\" @click=\"() => toggleSidebar()\" class=\"pos-relative\">\n <div class=\"bg-light radius-medium pd-medium\">\n <p class=\"t-medium t-black-transp-60\">\n Close Menu\n </p>\n </div>\n </div>\n <div \n class=\"br-solid w-100 br-t\"\n :class=\"{ \n 'pd-micro': !stateSidebar, \n 'pd-small': stateSidebar,\n 'br-light': theme === 'light',\n 'br-dark': theme === 'dark'\n }\"\n >\n <button\n @click=\"() => globals.actions.toggleTheme()\"\n class=\"transition-quint-out flex w-100 flex-center radius-small cursor-pointer flex-nowrap\"\n :class=\"[\n stateSidebar ? 'pd-thin justify-between' : 'w-100 justify-center',\n theme === 'light' ? 'hover-bg-light' : 'hover-bg-dark'\n ]\"\n >\n <span \n class=\"w-100 t-nowrap transition-quint-out t-left t-medium mn-r-thin\"\n :class=\"{ 'hidden': !stateSidebar, 'visible': stateSidebar }\"\n >\n Dark Mode\n </span>\n <span class=\"aspect-1x1 flex-child-default w-max-big w-100 flex flex-center \">\n {{ globals.state.theme.darkmode ? '🌙' : '☀️' }}\n </span>\n </button>\n </div>\n </aside>\n</template>\n\n<style scoped>\n.hidden {\n opacity: 0;\n width: 0;\n display: none;\n}\n.visible {\n opacity: 1;\n display: block;\n}\n/* Scrollbar styles */\n::-webkit-scrollbar {\n width: 6px;\n}\n::-webkit-scrollbar-track {\n background: transparent;\n}\n::-webkit-scrollbar-thumb {\n background-color: var(--grey-micro);\n border-radius: 3px;\n}\n::-webkit-scrollbar-thumb:hover {\n background-color: var(--grey-small);\n}\n</style>"],"names":["useGlobalMixins","useRouter","useRoute","globals.state"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,UAAM,QAAQ;AAId,UAAM,EAAE,SAAS,SAAQ,IAAKA,OAAAA,gBAAe;AAC7C,UAAM,SAASC,UAAAA,UAAS;AACxB,UAAM,QAAQC,UAAAA,SAAQ;AAEtB,UAAM,gBAAgB,MAAM;AAC1B,YAAM,cAAc;AAAA,IACtB;AAEA,UAAM,mBAAmB,MAAM;AAC7B,UAAI,MAAM,MAAM,iBAAiB,CAAC,QAAO,KAAM,CAAC,YAAY;AAC1DC,gBAAAA,MAAc,gBAAgB;AAAA,MAChC;AAAA,IACF;AAEA,UAAM,mBAAmB,MAAM;AAC7B,UAAI,MAAM,MAAM,iBAAiB,CAAC,QAAO,KAAM,CAAC,YAAY;AAC1DA,gBAAAA,MAAc,gBAAgB;AAAA,MAChC;AAAA,IACF;AAEA,WAAO,WAAW,CAAC,IAAI,SAAS;AAC7B,UAAI,QAAO,KAAM,YAAY;AAC5B,cAAM,cAAc;AAAA,MACtB;AAAA,IACF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { createElementBlock, openBlock, normalizeClass, renderSlot, createCommentVNode, createElementVNode, toDisplayString } from "vue";
2
- import { useRouter } from "vue-router";
2
+ import { useRouter, useRoute } from "vue-router";
3
3
  import { useGlobalMixins } from "../../mixins/mixins.js";
4
4
  import { actions, state } from "../../store/globals.js";
5
5
  /* empty css */
@@ -32,9 +32,20 @@ const _sfc_main = {
32
32
  const emits = __emit;
33
33
  const { isPhone, isTablet } = useGlobalMixins();
34
34
  const router = useRouter();
35
+ const route = useRoute();
35
36
  const toggleSidebar = () => {
36
37
  emits("closeSidebar");
37
38
  };
39
+ const handleMouseEnter = () => {
40
+ if (route.meta?.sidebar_hover && !isPhone() && !isTablet()) {
41
+ state.isOpenSidebar = true;
42
+ }
43
+ };
44
+ const handleMouseLeave = () => {
45
+ if (route.meta?.sidebar_hover && !isPhone() && !isTablet()) {
46
+ state.isOpenSidebar = false;
47
+ }
48
+ };
38
49
  router.beforeEach((to, from) => {
39
50
  if (isPhone() || isTablet()) {
40
51
  emits("closeSidebar");
@@ -46,7 +57,9 @@ const _sfc_main = {
46
57
  __props.stateSidebar ? `${__props.width} w-min-10 tablet:w-min-100 tablet:w-100 mobile:w-min-100 mobile:w-100` : `${__props.widthHidden} mobile:w-0`,
47
58
  //
48
59
  __props.theme === "light" ? "t-black bg-white br-light" : "t-white bg-black br-dark"
49
- ]])
60
+ ]]),
61
+ onMouseenter: handleMouseEnter,
62
+ onMouseleave: handleMouseLeave
50
63
  }, [
51
64
  renderSlot(_ctx.$slots, "default", {}, void 0, true),
52
65
  _ctx.MOBILE_APP ? (openBlock(), createElementBlock("div", {
@@ -79,11 +92,11 @@ const _sfc_main = {
79
92
  createElementVNode("span", _hoisted_1, toDisplayString(state.theme.darkmode ? "🌙" : "☀️"), 1)
80
93
  ], 2)
81
94
  ], 2)
82
- ], 2);
95
+ ], 34);
83
96
  };
84
97
  }
85
98
  };
86
- const Sidebar = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-f75227e1"]]);
99
+ const Sidebar = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-35fd35e3"]]);
87
100
  export {
88
101
  Sidebar as default
89
102
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Sidebar.vue.js","sources":["../../../../../../../../src/modules/globals/views/components/partials/Sidebar.vue"],"sourcesContent":["<script setup>\nimport { ref, watch } from 'vue'\nimport { useRouter } from 'vue-router'\nimport { useGlobalMixins } from \"@martyrs/src/modules/globals/views/mixins/mixins.js\"\n\nimport * as globals from '@martyrs/src/modules/globals/views/store/globals.js'\n\nconst props = defineProps({\n theme: {\n type: String,\n default: \"light\"\n },\n stateSidebar: {\n type: Boolean,\n default: false\n },\n width: {\n type: String,\n default: 'w-15r'\n },\n widthHidden:{\n type: String,\n default: 'w-3r '\n },\n})\n\nconst emits = defineEmits([\n 'closeSidebar'\n])\n\nconst { isPhone, isTablet } = useGlobalMixins()\n\nconst router = useRouter()\n\nconst toggleSidebar = () => {\n emits('closeSidebar')\n}\n\nrouter.beforeEach((to, from) => {\n if (isPhone() || isTablet()) {\n emits('closeSidebar')\n }\n})\n\n</script>\n\n<template>\n <aside\n class=\"transition-quint-out w-min-0 o-hidden flex-child-default z-index-2 br-r br-solid flex flex-column h-100\"\n :class=\"[\n stateSidebar\n ? `${width} w-min-10 tablet:w-min-100 tablet:w-100 mobile:w-min-100 mobile:w-100`\n : `${widthHidden} mobile:w-0`,\n // \n theme === 'light' \n ? 't-black bg-white br-light'\n : 't-white bg-black br-dark'\n ]\"\n >\n\n <!-- Slot for navigation content -->\n <slot></slot>\n\n <div v-if=\"MOBILE_APP\" @click=\"() => toggleSidebar()\" class=\"pos-relative\">\n <div class=\"bg-light radius-medium pd-medium\">\n <p class=\"t-medium t-black-transp-60\">\n Close Menu\n </p>\n </div>\n </div>\n\n <div \n class=\"br-solid w-100 br-t\"\n :class=\"{ \n 'pd-micro': !stateSidebar, \n 'pd-small': stateSidebar,\n 'br-light': theme === 'light',\n 'br-dark': theme === 'dark'\n }\"\n >\n <button\n @click=\"() => globals.actions.toggleTheme()\"\n class=\"transition-quint-out flex w-100 flex-center radius-small cursor-pointer flex-nowrap\"\n :class=\"[\n stateSidebar ? 'pd-thin justify-between' : 'w-100 justify-center',\n theme === 'light' ? 'hover-bg-light' : 'hover-bg-dark'\n ]\"\n >\n <span \n class=\"w-100 t-nowrap transition-quint-out t-left t-medium mn-r-thin\"\n :class=\"{ 'hidden': !stateSidebar, 'visible': stateSidebar }\"\n >\n Dark Mode\n </span>\n <span class=\"aspect-1x1 flex-child-default w-max-big w-100 flex flex-center \">\n {{ globals.state.theme.darkmode ? '🌙' : '☀️' }}\n </span>\n </button>\n </div>\n </aside>\n</template>\n\n<style scoped>\n.hidden {\n opacity: 0;\n width: 0;\n display: none;\n}\n\n.visible {\n opacity: 1;\n display: block;\n}\n\n/* Scrollbar styles */\n::-webkit-scrollbar {\n width: 6px;\n}\n\n::-webkit-scrollbar-track {\n background: transparent;\n}\n\n::-webkit-scrollbar-thumb {\n background-color: var(--grey-micro);\n border-radius: 3px;\n}\n\n::-webkit-scrollbar-thumb:hover {\n background-color: var(--grey-small);\n}\n</style> "],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,UAAM,QAAQ;AAId,UAAM,EAAE,SAAS,SAAQ,IAAK,gBAAe;AAE7C,UAAM,SAAS,UAAS;AAExB,UAAM,gBAAgB,MAAM;AAC1B,YAAM,cAAc;AAAA,IACtB;AAEA,WAAO,WAAW,CAAC,IAAI,SAAS;AAC7B,UAAI,QAAO,KAAM,YAAY;AAC5B,cAAM,cAAc;AAAA,MACtB;AAAA,IACF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Sidebar.vue.js","sources":["../../../../../../../../src/modules/globals/views/components/partials/Sidebar.vue"],"sourcesContent":["<script setup>\nimport { ref, watch } from 'vue'\nimport { useRouter, useRoute } from 'vue-router'\nimport { useGlobalMixins } from \"@martyrs/src/modules/globals/views/mixins/mixins.js\"\nimport * as globals from '@martyrs/src/modules/globals/views/store/globals.js'\n\nconst props = defineProps({\n theme: {\n type: String,\n default: \"light\"\n },\n stateSidebar: {\n type: Boolean,\n default: false\n },\n width: {\n type: String,\n default: 'w-15r'\n },\n widthHidden:{\n type: String,\n default: 'w-3r '\n },\n})\n\nconst emits = defineEmits([\n 'closeSidebar'\n])\n\nconst { isPhone, isTablet } = useGlobalMixins()\nconst router = useRouter()\nconst route = useRoute()\n\nconst toggleSidebar = () => {\n emits('closeSidebar')\n}\n\nconst handleMouseEnter = () => {\n if (route.meta?.sidebar_hover && !isPhone() && !isTablet()) {\n globals.state.isOpenSidebar = true\n }\n}\n\nconst handleMouseLeave = () => {\n if (route.meta?.sidebar_hover && !isPhone() && !isTablet()) {\n globals.state.isOpenSidebar = false\n }\n}\n\nrouter.beforeEach((to, from) => {\n if (isPhone() || isTablet()) {\n emits('closeSidebar')\n }\n})\n</script>\n\n<template>\n <aside\n class=\"transition-quint-out w-min-0 o-hidden flex-child-default z-index-2 br-r br-solid flex flex-column h-100\"\n :class=\"[\n stateSidebar\n ? `${width} w-min-10 tablet:w-min-100 tablet:w-100 mobile:w-min-100 mobile:w-100`\n : `${widthHidden} mobile:w-0`,\n // \n theme === 'light' \n ? 't-black bg-white br-light'\n : 't-white bg-black br-dark'\n ]\"\n @mouseenter=\"handleMouseEnter\"\n @mouseleave=\"handleMouseLeave\"\n >\n <!-- Slot for navigation content -->\n <slot></slot>\n <div v-if=\"MOBILE_APP\" @click=\"() => toggleSidebar()\" class=\"pos-relative\">\n <div class=\"bg-light radius-medium pd-medium\">\n <p class=\"t-medium t-black-transp-60\">\n Close Menu\n </p>\n </div>\n </div>\n <div \n class=\"br-solid w-100 br-t\"\n :class=\"{ \n 'pd-micro': !stateSidebar, \n 'pd-small': stateSidebar,\n 'br-light': theme === 'light',\n 'br-dark': theme === 'dark'\n }\"\n >\n <button\n @click=\"() => globals.actions.toggleTheme()\"\n class=\"transition-quint-out flex w-100 flex-center radius-small cursor-pointer flex-nowrap\"\n :class=\"[\n stateSidebar ? 'pd-thin justify-between' : 'w-100 justify-center',\n theme === 'light' ? 'hover-bg-light' : 'hover-bg-dark'\n ]\"\n >\n <span \n class=\"w-100 t-nowrap transition-quint-out t-left t-medium mn-r-thin\"\n :class=\"{ 'hidden': !stateSidebar, 'visible': stateSidebar }\"\n >\n Dark Mode\n </span>\n <span class=\"aspect-1x1 flex-child-default w-max-big w-100 flex flex-center \">\n {{ globals.state.theme.darkmode ? '🌙' : '☀️' }}\n </span>\n </button>\n </div>\n </aside>\n</template>\n\n<style scoped>\n.hidden {\n opacity: 0;\n width: 0;\n display: none;\n}\n.visible {\n opacity: 1;\n display: block;\n}\n/* Scrollbar styles */\n::-webkit-scrollbar {\n width: 6px;\n}\n::-webkit-scrollbar-track {\n background: transparent;\n}\n::-webkit-scrollbar-thumb {\n background-color: var(--grey-micro);\n border-radius: 3px;\n}\n::-webkit-scrollbar-thumb:hover {\n background-color: var(--grey-small);\n}\n</style>"],"names":["globals.state"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,UAAM,QAAQ;AAId,UAAM,EAAE,SAAS,SAAQ,IAAK,gBAAe;AAC7C,UAAM,SAAS,UAAS;AACxB,UAAM,QAAQ,SAAQ;AAEtB,UAAM,gBAAgB,MAAM;AAC1B,YAAM,cAAc;AAAA,IACtB;AAEA,UAAM,mBAAmB,MAAM;AAC7B,UAAI,MAAM,MAAM,iBAAiB,CAAC,QAAO,KAAM,CAAC,YAAY;AAC1DA,cAAc,gBAAgB;AAAA,MAChC;AAAA,IACF;AAEA,UAAM,mBAAmB,MAAM;AAC7B,UAAI,MAAM,MAAM,iBAAiB,CAAC,QAAO,KAAM,CAAC,YAAY;AAC1DA,cAAc,gBAAgB;AAAA,MAChC;AAAA,IACF;AAEA,WAAO,WAAW,CAAC,IAAI,SAAS;AAC7B,UAAI,QAAO,KAAM,YAAY;AAC5B,cAAM,cAAc;AAAA,MACtB;AAAA,IACF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -4,7 +4,7 @@ const vue = require("vue");
4
4
  const vueRouter = require("vue-router");
5
5
  const emblaCarouselVue_esm = require("../../../../../../../node_modules/.pnpm/embla-carousel-vue@8.6.0_vue@3.5.13_typescript@5.8.3_/node_modules/embla-carousel-vue/esm/embla-carousel-vue.esm.cjs");
6
6
  const IconBell = require("../../../../icons/entities/IconBell.vue.cjs");
7
- const IconAddress = ;/* empty css */
7
+ const IconAddress = require("../../../../icons/entities/IconAddress.vue.cjs");
8
8
  const index = require("../../../../../../../node_modules/.pnpm/capacitor-plugin-app-tracking-transparency@2.0.5_@capacitor_core@7.2.0/node_modules/capacitor-plugin-app-tracking-transparency/dist/esm/index.cjs");
9
9
  ;/* empty css */
10
10
  ;/* empty css */
@@ -1,7 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const globals = require("../store/globals.cjs");
4
+ const vue = require("vue");
4
5
  function useGlobalMixins() {
6
+ const isModuleInstalled = (moduleName) => {
7
+ const store = vue.inject("store");
8
+ if (!store || !store.modules) return false;
9
+ return store.modules.includes(moduleName);
10
+ };
5
11
  const isAdmin = (roles) => {
6
12
  if (roles) {
7
13
  const isAdmin2 = roles.includes("ROLE_ADMIN") ? roles.includes("ROLE_ADMIN") : false;
@@ -218,6 +224,7 @@ function useGlobalMixins() {
218
224
  };
219
225
  const isXXLDesktop = () => isMediaMin("--xxl-desktop-min");
220
226
  return {
227
+ isModuleInstalled,
221
228
  isAdmin,
222
229
  hasAccess,
223
230
  returnCurrency,
@@ -1 +1 @@
1
- {"version":3,"file":"mixins.cjs","sources":["../../../../../../../src/modules/globals/views/mixins/mixins.js"],"sourcesContent":["import * as globals from '@martyrs/src/modules/globals/views/store/globals.js';\n\n// useGlobalMixins.js\nexport function useGlobalMixins() {\n const isAdmin = roles => {\n if (roles) {\n const isAdmin = roles.includes('ROLE_ADMIN') ? roles.includes('ROLE_ADMIN') : false;\n\n if (isAdmin !== true) {\n return false;\n }\n\n return true;\n } else {\n return false;\n }\n };\n\n const hasAccess = (organizationId, rightCategory = null, rightType = null, accesses, roles) => {\n // Если пользователь админ, то сразу даем доступ\n if (isAdmin(roles)) {\n return true;\n }\n\n const accessArray = accesses;\n\n // Проверяем существование записи для организации\n const organizationAccess = accessArray.find(access => access.organization === organizationId);\n\n // Если переданы только organizationId и accesses - проверяем только членство\n if (rightCategory === null && rightType === null) {\n return Boolean(organizationAccess); // если организация найдена - значит член\n }\n\n // Для проверки прав сначала проверяем существование организации\n if (!organizationAccess) {\n return false;\n }\n\n const categoryAccess = organizationAccess.rights[rightCategory];\n if (!categoryAccess) {\n return false;\n }\n return categoryAccess[rightType] === true;\n };\n\n const returnCurrency = () => {\n const currency = globals.state.options.currency || '$';\n return currency;\n };\n\n const formatPrice = number => {\n try {\n if (number == null) {\n throw new TypeError('formatPrice: ожидается число, но получено null или undefined');\n }\n\n const currency = returnCurrency();\n const absNumber = Math.abs(number)\n .toFixed(2)\n .replace('.', ',')\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ' ');\n\n const sign = number < 0 ? '-' : '';\n return `${sign} ${currency}${absNumber}`;\n } catch (err) {\n console.error(err);\n return 'null';\n }\n };\n \n const replaceClasses = (original = '', map = null) => {\n if (map == null && typeof original !== 'string') return '';\n if (typeof map === 'string') {\n const orig = typeof original === 'string' ? original.trim().split(/\\s+/) : [];\n const next = map.trim().split(/\\s+/);\n const replaceSet = new Set(next);\n const replaced = orig.map(cls => (replaceSet.has(cls) ? next.find(c => c !== cls) || cls : cls));\n const extra = next.filter(c => !orig.includes(c));\n return [...new Set([...replaced, ...extra])].join(' ');\n }\n\n if (typeof map === 'object' && map !== null) {\n const orig = typeof original === 'string' ? original.trim().split(/\\s+/) : [];\n return orig.map(cls => map[cls] ?? cls).join(' ');\n }\n\n return typeof original === 'string' ? original.trim() : '';\n };\n \n\n const formatDate = (d, options = {}) => {\n var fixedDate = new Date(d);\n\n // Определяем параметры локализации\n const formatOptions = {\n year: 'numeric',\n month: 'long', // название месяца\n day: '2-digit', // день с ведущим нулем\n hour: '2-digit', // часы с ведущим нулем\n minute: '2-digit', // минуты с ведущим нулем\n hour12: false, // 24-часовой формат времени\n ...options, // дополнительные настройки\n };\n\n // Язык, по умолчанию \"ru\" (русский)\n const locale = options.language || 'ru';\n\n // Используем Intl.DateTimeFormat для локализации\n const dateFormatter = new Intl.DateTimeFormat(locale, formatOptions);\n\n var format = {\n dateOnly: options.dateOnly || false,\n timeOnly: options.timeOnly || false,\n dayMonth: options.dayMonth || false,\n dayTime: options.dayTime || false,\n monthYear: options.monthYear || false,\n yearOnly: options.yearOnly || false,\n custom: options.custom || '',\n monthName: options.monthName || false, // Новый параметр для вывода названия месяца\n language: options.language || 'ru', // Язык, по умолчанию русский\n };\n\n if (format.dateOnly) {\n return dateFormatter.format(fixedDate).split(',')[0]; // Выводим только дату\n } else if (format.timeOnly) {\n return new Intl.DateTimeFormat(locale, {\n hour: '2-digit',\n minute: '2-digit',\n hour12: false,\n }).format(fixedDate); // Выводим только время\n } else if (format.dayMonth) {\n return new Intl.DateTimeFormat(locale, { day: '2-digit', month: 'short' }).format(fixedDate); // день и месяц\n } else if (format.dayTime) {\n return new Intl.DateTimeFormat(locale, {\n day: '2-digit',\n month: 'short',\n hour: '2-digit',\n minute: '2-digit',\n hour12: false,\n }).format(fixedDate); // день и время\n } else if (format.monthYear) {\n return new Intl.DateTimeFormat(locale, { month: 'long', year: 'numeric' }).format(fixedDate); // месяц и год\n } else if (format.yearOnly) {\n return new Intl.DateTimeFormat(locale, { year: 'numeric' }).format(fixedDate); // только год\n } else if (format.custom) {\n // Для пользовательского формата с подстановкой\n return format.custom\n .replace('yyyy', fixedDate.getFullYear())\n .replace('mm', ('0' + (fixedDate.getMonth() + 1)).slice(-2)) // добавление ведущего нуля\n .replace('dd', ('0' + fixedDate.getDate()).slice(-2)) // добавление ведущего нуля\n .replace('hh', ('0' + fixedDate.getHours()).slice(-2)) // добавление ведущего нуля\n .replace('min', ('0' + fixedDate.getMinutes()).slice(-2)); // добавление ведущего нуля\n }\n\n // Вернуть полную дату в стандартном формате\n return dateFormatter.format(fixedDate);\n };\n\n const formateText = (text, maxLength = 16) => {\n // Return empty string if text is undefined or null\n if (!text) return '';\n\n // If text is shorter than or equal to maxLength, return it as is\n if (text.length <= maxLength) {\n return text;\n }\n\n // Otherwise truncate and add ellipsis\n return text.substring(0, maxLength) + '...';\n };\n\n const normalizeUrlParam = param => {\n if (!param) param = '';\n\n return param\n .toLowerCase()\n .replace(/ /g, '-')\n .replace(/[^a-z0-9-]/g, '');\n };\n\n const joinArrayToUrl = arr => {\n return arr.join('/');\n };\n\n function generateFilters(selectedFilters) {\n const filters = [];\n\n // Process all selected filters\n for (const [key, values] of Object.entries(selectedFilters)) {\n if (values && values.length > 0) {\n // Skip special filters (these are handled separately)\n if (key !== 'prices' && key !== 'delivery' && key !== 'categories') {\n filters.push({\n parameter: key,\n caseSensitive: false,\n values: Array.isArray(values) ? values : [values],\n });\n }\n }\n }\n\n return filters.length > 0 ? JSON.stringify(filters) : undefined;\n }\n\n const getMarketplaceLink = (categories, country, state, city) => {\n let country_normalized = country ? normalizeUrlParam(country) : '';\n let state_normalized = state ? normalizeUrlParam(state) : '';\n let city_normalized = city ? normalizeUrlParam(city) : '';\n\n let base = '/marketplace';\n base += country_normalized ? `/${country_normalized}` : '';\n base += country_normalized && state_normalized ? `/${state_normalized}` : '';\n base += country_normalized && state_normalized && city_normalized ? `/${city_normalized}` : '';\n\n if (categories && categories.length) {\n base += `?categories=${categories.join(',')}`;\n }\n\n return base;\n };\n\n const getSpotsLink = (country, state, city) => {\n let country_normalized = country ? normalizeUrlParam(country) : '';\n let state_normalized = state ? normalizeUrlParam(state) : '';\n let city_normalized = city ? normalizeUrlParam(city) : '';\n\n let base = '/spots';\n base += country_normalized ? `/${country_normalized}` : '';\n base += country_normalized && state_normalized ? `/${state_normalized}` : '';\n base += country_normalized && state_normalized && city_normalized ? `/${city_normalized}` : '';\n\n return base;\n };\n\n const isClientSide = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n const getCssVar = name => {\n if (!isClientSide) return ''; // SSR fallback\n return getComputedStyle(document.documentElement).getPropertyValue(name).trim();\n };\n\n const matchMediaSafe = query => {\n if (!isClientSide) return { matches: false };\n return window.matchMedia(query);\n };\n\n const isMediaMax = varName => {\n const maxWidth = getCssVar(varName);\n return matchMediaSafe(`(max-width: ${maxWidth})`).matches;\n };\n\n const isMediaMin = varName => {\n const minWidth = getCssVar(varName);\n return matchMediaSafe(`(min-width: ${minWidth})`).matches;\n };\n\n const isFlipPhone = () => isMediaMax('--flip-phone-max');\n const isPhone = () => isMediaMax('--phone-landscape-max');\n\n const isTabletPortrait = () => {\n const min = getCssVar('--tablet-portrait-min');\n const max = getCssVar('--tablet-portrait-max');\n return matchMediaSafe(`(min-width: ${min}) and (max-width: ${max})`).matches;\n };\n\n const isTabletLandscape = () => {\n const min = getCssVar('--tablet-landscape-min');\n const max = getCssVar('--tablet-landscape-max');\n return matchMediaSafe(`(min-width: ${min}) and (max-width: ${max})`).matches;\n };\n\n const isTablet = () => isTabletPortrait() || isTabletLandscape();\n\n const isDesktop = () => {\n const min = getCssVar('--desktop-min');\n const max = getCssVar('--desktop-max');\n return matchMediaSafe(`(min-width: ${min}) and (max-width: ${max})`).matches;\n };\n\n const isXLDesktop = () => {\n const min = getCssVar('--xl-desktop-min');\n const max = getCssVar('--xl-desktop-max');\n return matchMediaSafe(`(min-width: ${min}) and (max-width: ${max})`).matches;\n };\n\n const isXXLDesktop = () => isMediaMin('--xxl-desktop-min');\n\n return {\n isAdmin,\n hasAccess,\n returnCurrency,\n formatPrice,\n formatDate,\n formateText,\n replaceClasses,\n normalizeUrlParam,\n joinArrayToUrl,\n getMarketplaceLink,\n getSpotsLink,\n generateFilters,\n // Брейкпоинты\n getCssVar,\n isMediaMax,\n isMediaMin,\n isFlipPhone,\n isPhone,\n isTabletPortrait,\n isTabletLandscape,\n isTablet,\n isDesktop,\n isXLDesktop,\n isXXLDesktop,\n };\n}\n\n// Экспорт для глобальной регистрации\nexport const globalMixins = {\n methods: useGlobalMixins(),\n};\n"],"names":["isAdmin","globals.state"],"mappings":"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"}
1
+ {"version":3,"file":"mixins.cjs","sources":["../../../../../../../src/modules/globals/views/mixins/mixins.js"],"sourcesContent":["import * as globals from '@martyrs/src/modules/globals/views/store/globals.js';\nimport { inject } from 'vue';\n\n// useGlobalMixins.js\nexport function useGlobalMixins() {\n const isModuleInstalled = (moduleName) => {\n const store = inject('store');\n if (!store || !store.modules) return false;\n return store.modules.includes(moduleName);\n };\n const isAdmin = roles => {\n if (roles) {\n const isAdmin = roles.includes('ROLE_ADMIN') ? roles.includes('ROLE_ADMIN') : false;\n\n if (isAdmin !== true) {\n return false;\n }\n\n return true;\n } else {\n return false;\n }\n };\n\n const hasAccess = (organizationId, rightCategory = null, rightType = null, accesses, roles) => {\n // Если пользователь админ, то сразу даем доступ\n if (isAdmin(roles)) {\n return true;\n }\n\n const accessArray = accesses;\n\n // Проверяем существование записи для организации\n const organizationAccess = accessArray.find(access => access.organization === organizationId);\n\n // Если переданы только organizationId и accesses - проверяем только членство\n if (rightCategory === null && rightType === null) {\n return Boolean(organizationAccess); // если организация найдена - значит член\n }\n\n // Для проверки прав сначала проверяем существование организации\n if (!organizationAccess) {\n return false;\n }\n\n const categoryAccess = organizationAccess.rights[rightCategory];\n if (!categoryAccess) {\n return false;\n }\n return categoryAccess[rightType] === true;\n };\n\n const returnCurrency = () => {\n const currency = globals.state.options.currency || '$';\n return currency;\n };\n\n const formatPrice = number => {\n try {\n if (number == null) {\n throw new TypeError('formatPrice: ожидается число, но получено null или undefined');\n }\n\n const currency = returnCurrency();\n const absNumber = Math.abs(number)\n .toFixed(2)\n .replace('.', ',')\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ' ');\n\n const sign = number < 0 ? '-' : '';\n return `${sign} ${currency}${absNumber}`;\n } catch (err) {\n console.error(err);\n return 'null';\n }\n };\n \n const replaceClasses = (original = '', map = null) => {\n if (map == null && typeof original !== 'string') return '';\n if (typeof map === 'string') {\n const orig = typeof original === 'string' ? original.trim().split(/\\s+/) : [];\n const next = map.trim().split(/\\s+/);\n const replaceSet = new Set(next);\n const replaced = orig.map(cls => (replaceSet.has(cls) ? next.find(c => c !== cls) || cls : cls));\n const extra = next.filter(c => !orig.includes(c));\n return [...new Set([...replaced, ...extra])].join(' ');\n }\n\n if (typeof map === 'object' && map !== null) {\n const orig = typeof original === 'string' ? original.trim().split(/\\s+/) : [];\n return orig.map(cls => map[cls] ?? cls).join(' ');\n }\n\n return typeof original === 'string' ? original.trim() : '';\n };\n \n\n const formatDate = (d, options = {}) => {\n var fixedDate = new Date(d);\n\n // Определяем параметры локализации\n const formatOptions = {\n year: 'numeric',\n month: 'long', // название месяца\n day: '2-digit', // день с ведущим нулем\n hour: '2-digit', // часы с ведущим нулем\n minute: '2-digit', // минуты с ведущим нулем\n hour12: false, // 24-часовой формат времени\n ...options, // дополнительные настройки\n };\n\n // Язык, по умолчанию \"ru\" (русский)\n const locale = options.language || 'ru';\n\n // Используем Intl.DateTimeFormat для локализации\n const dateFormatter = new Intl.DateTimeFormat(locale, formatOptions);\n\n var format = {\n dateOnly: options.dateOnly || false,\n timeOnly: options.timeOnly || false,\n dayMonth: options.dayMonth || false,\n dayTime: options.dayTime || false,\n monthYear: options.monthYear || false,\n yearOnly: options.yearOnly || false,\n custom: options.custom || '',\n monthName: options.monthName || false, // Новый параметр для вывода названия месяца\n language: options.language || 'ru', // Язык, по умолчанию русский\n };\n\n if (format.dateOnly) {\n return dateFormatter.format(fixedDate).split(',')[0]; // Выводим только дату\n } else if (format.timeOnly) {\n return new Intl.DateTimeFormat(locale, {\n hour: '2-digit',\n minute: '2-digit',\n hour12: false,\n }).format(fixedDate); // Выводим только время\n } else if (format.dayMonth) {\n return new Intl.DateTimeFormat(locale, { day: '2-digit', month: 'short' }).format(fixedDate); // день и месяц\n } else if (format.dayTime) {\n return new Intl.DateTimeFormat(locale, {\n day: '2-digit',\n month: 'short',\n hour: '2-digit',\n minute: '2-digit',\n hour12: false,\n }).format(fixedDate); // день и время\n } else if (format.monthYear) {\n return new Intl.DateTimeFormat(locale, { month: 'long', year: 'numeric' }).format(fixedDate); // месяц и год\n } else if (format.yearOnly) {\n return new Intl.DateTimeFormat(locale, { year: 'numeric' }).format(fixedDate); // только год\n } else if (format.custom) {\n // Для пользовательского формата с подстановкой\n return format.custom\n .replace('yyyy', fixedDate.getFullYear())\n .replace('mm', ('0' + (fixedDate.getMonth() + 1)).slice(-2)) // добавление ведущего нуля\n .replace('dd', ('0' + fixedDate.getDate()).slice(-2)) // добавление ведущего нуля\n .replace('hh', ('0' + fixedDate.getHours()).slice(-2)) // добавление ведущего нуля\n .replace('min', ('0' + fixedDate.getMinutes()).slice(-2)); // добавление ведущего нуля\n }\n\n // Вернуть полную дату в стандартном формате\n return dateFormatter.format(fixedDate);\n };\n\n const formateText = (text, maxLength = 16) => {\n // Return empty string if text is undefined or null\n if (!text) return '';\n\n // If text is shorter than or equal to maxLength, return it as is\n if (text.length <= maxLength) {\n return text;\n }\n\n // Otherwise truncate and add ellipsis\n return text.substring(0, maxLength) + '...';\n };\n\n const normalizeUrlParam = param => {\n if (!param) param = '';\n\n return param\n .toLowerCase()\n .replace(/ /g, '-')\n .replace(/[^a-z0-9-]/g, '');\n };\n\n const joinArrayToUrl = arr => {\n return arr.join('/');\n };\n\n function generateFilters(selectedFilters) {\n const filters = [];\n\n // Process all selected filters\n for (const [key, values] of Object.entries(selectedFilters)) {\n if (values && values.length > 0) {\n // Skip special filters (these are handled separately)\n if (key !== 'prices' && key !== 'delivery' && key !== 'categories') {\n filters.push({\n parameter: key,\n caseSensitive: false,\n values: Array.isArray(values) ? values : [values],\n });\n }\n }\n }\n\n return filters.length > 0 ? JSON.stringify(filters) : undefined;\n }\n\n const getMarketplaceLink = (categories, country, state, city) => {\n let country_normalized = country ? normalizeUrlParam(country) : '';\n let state_normalized = state ? normalizeUrlParam(state) : '';\n let city_normalized = city ? normalizeUrlParam(city) : '';\n\n let base = '/marketplace';\n base += country_normalized ? `/${country_normalized}` : '';\n base += country_normalized && state_normalized ? `/${state_normalized}` : '';\n base += country_normalized && state_normalized && city_normalized ? `/${city_normalized}` : '';\n\n if (categories && categories.length) {\n base += `?categories=${categories.join(',')}`;\n }\n\n return base;\n };\n\n const getSpotsLink = (country, state, city) => {\n let country_normalized = country ? normalizeUrlParam(country) : '';\n let state_normalized = state ? normalizeUrlParam(state) : '';\n let city_normalized = city ? normalizeUrlParam(city) : '';\n\n let base = '/spots';\n base += country_normalized ? `/${country_normalized}` : '';\n base += country_normalized && state_normalized ? `/${state_normalized}` : '';\n base += country_normalized && state_normalized && city_normalized ? `/${city_normalized}` : '';\n\n return base;\n };\n\n const isClientSide = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n const getCssVar = name => {\n if (!isClientSide) return ''; // SSR fallback\n return getComputedStyle(document.documentElement).getPropertyValue(name).trim();\n };\n\n const matchMediaSafe = query => {\n if (!isClientSide) return { matches: false };\n return window.matchMedia(query);\n };\n\n const isMediaMax = varName => {\n const maxWidth = getCssVar(varName);\n return matchMediaSafe(`(max-width: ${maxWidth})`).matches;\n };\n\n const isMediaMin = varName => {\n const minWidth = getCssVar(varName);\n return matchMediaSafe(`(min-width: ${minWidth})`).matches;\n };\n\n const isFlipPhone = () => isMediaMax('--flip-phone-max');\n const isPhone = () => isMediaMax('--phone-landscape-max');\n\n const isTabletPortrait = () => {\n const min = getCssVar('--tablet-portrait-min');\n const max = getCssVar('--tablet-portrait-max');\n return matchMediaSafe(`(min-width: ${min}) and (max-width: ${max})`).matches;\n };\n\n const isTabletLandscape = () => {\n const min = getCssVar('--tablet-landscape-min');\n const max = getCssVar('--tablet-landscape-max');\n return matchMediaSafe(`(min-width: ${min}) and (max-width: ${max})`).matches;\n };\n\n const isTablet = () => isTabletPortrait() || isTabletLandscape();\n\n const isDesktop = () => {\n const min = getCssVar('--desktop-min');\n const max = getCssVar('--desktop-max');\n return matchMediaSafe(`(min-width: ${min}) and (max-width: ${max})`).matches;\n };\n\n const isXLDesktop = () => {\n const min = getCssVar('--xl-desktop-min');\n const max = getCssVar('--xl-desktop-max');\n return matchMediaSafe(`(min-width: ${min}) and (max-width: ${max})`).matches;\n };\n\n const isXXLDesktop = () => isMediaMin('--xxl-desktop-min');\n\n return {\n isModuleInstalled,\n isAdmin,\n hasAccess,\n returnCurrency,\n formatPrice,\n formatDate,\n formateText,\n replaceClasses,\n normalizeUrlParam,\n joinArrayToUrl,\n getMarketplaceLink,\n getSpotsLink,\n generateFilters,\n // Брейкпоинты\n getCssVar,\n isMediaMax,\n isMediaMin,\n isFlipPhone,\n isPhone,\n isTabletPortrait,\n isTabletLandscape,\n isTablet,\n isDesktop,\n isXLDesktop,\n isXXLDesktop,\n };\n}\n\n// Экспорт для глобальной регистрации\nexport const globalMixins = {\n methods: useGlobalMixins(),\n};\n"],"names":["inject","isAdmin","globals.state"],"mappings":"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"}
@@ -1,5 +1,11 @@
1
1
  import { state } from "../store/globals.js";
2
+ import { inject } from "vue";
2
3
  function useGlobalMixins() {
4
+ const isModuleInstalled = (moduleName) => {
5
+ const store = inject("store");
6
+ if (!store || !store.modules) return false;
7
+ return store.modules.includes(moduleName);
8
+ };
3
9
  const isAdmin = (roles) => {
4
10
  if (roles) {
5
11
  const isAdmin2 = roles.includes("ROLE_ADMIN") ? roles.includes("ROLE_ADMIN") : false;
@@ -216,6 +222,7 @@ function useGlobalMixins() {
216
222
  };
217
223
  const isXXLDesktop = () => isMediaMin("--xxl-desktop-min");
218
224
  return {
225
+ isModuleInstalled,
219
226
  isAdmin,
220
227
  hasAccess,
221
228
  returnCurrency,
@@ -1 +1 @@
1
- {"version":3,"file":"mixins.js","sources":["../../../../../../../src/modules/globals/views/mixins/mixins.js"],"sourcesContent":["import * as globals from '@martyrs/src/modules/globals/views/store/globals.js';\n\n// useGlobalMixins.js\nexport function useGlobalMixins() {\n const isAdmin = roles => {\n if (roles) {\n const isAdmin = roles.includes('ROLE_ADMIN') ? roles.includes('ROLE_ADMIN') : false;\n\n if (isAdmin !== true) {\n return false;\n }\n\n return true;\n } else {\n return false;\n }\n };\n\n const hasAccess = (organizationId, rightCategory = null, rightType = null, accesses, roles) => {\n // Если пользователь админ, то сразу даем доступ\n if (isAdmin(roles)) {\n return true;\n }\n\n const accessArray = accesses;\n\n // Проверяем существование записи для организации\n const organizationAccess = accessArray.find(access => access.organization === organizationId);\n\n // Если переданы только organizationId и accesses - проверяем только членство\n if (rightCategory === null && rightType === null) {\n return Boolean(organizationAccess); // если организация найдена - значит член\n }\n\n // Для проверки прав сначала проверяем существование организации\n if (!organizationAccess) {\n return false;\n }\n\n const categoryAccess = organizationAccess.rights[rightCategory];\n if (!categoryAccess) {\n return false;\n }\n return categoryAccess[rightType] === true;\n };\n\n const returnCurrency = () => {\n const currency = globals.state.options.currency || '$';\n return currency;\n };\n\n const formatPrice = number => {\n try {\n if (number == null) {\n throw new TypeError('formatPrice: ожидается число, но получено null или undefined');\n }\n\n const currency = returnCurrency();\n const absNumber = Math.abs(number)\n .toFixed(2)\n .replace('.', ',')\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ' ');\n\n const sign = number < 0 ? '-' : '';\n return `${sign} ${currency}${absNumber}`;\n } catch (err) {\n console.error(err);\n return 'null';\n }\n };\n \n const replaceClasses = (original = '', map = null) => {\n if (map == null && typeof original !== 'string') return '';\n if (typeof map === 'string') {\n const orig = typeof original === 'string' ? original.trim().split(/\\s+/) : [];\n const next = map.trim().split(/\\s+/);\n const replaceSet = new Set(next);\n const replaced = orig.map(cls => (replaceSet.has(cls) ? next.find(c => c !== cls) || cls : cls));\n const extra = next.filter(c => !orig.includes(c));\n return [...new Set([...replaced, ...extra])].join(' ');\n }\n\n if (typeof map === 'object' && map !== null) {\n const orig = typeof original === 'string' ? original.trim().split(/\\s+/) : [];\n return orig.map(cls => map[cls] ?? cls).join(' ');\n }\n\n return typeof original === 'string' ? original.trim() : '';\n };\n \n\n const formatDate = (d, options = {}) => {\n var fixedDate = new Date(d);\n\n // Определяем параметры локализации\n const formatOptions = {\n year: 'numeric',\n month: 'long', // название месяца\n day: '2-digit', // день с ведущим нулем\n hour: '2-digit', // часы с ведущим нулем\n minute: '2-digit', // минуты с ведущим нулем\n hour12: false, // 24-часовой формат времени\n ...options, // дополнительные настройки\n };\n\n // Язык, по умолчанию \"ru\" (русский)\n const locale = options.language || 'ru';\n\n // Используем Intl.DateTimeFormat для локализации\n const dateFormatter = new Intl.DateTimeFormat(locale, formatOptions);\n\n var format = {\n dateOnly: options.dateOnly || false,\n timeOnly: options.timeOnly || false,\n dayMonth: options.dayMonth || false,\n dayTime: options.dayTime || false,\n monthYear: options.monthYear || false,\n yearOnly: options.yearOnly || false,\n custom: options.custom || '',\n monthName: options.monthName || false, // Новый параметр для вывода названия месяца\n language: options.language || 'ru', // Язык, по умолчанию русский\n };\n\n if (format.dateOnly) {\n return dateFormatter.format(fixedDate).split(',')[0]; // Выводим только дату\n } else if (format.timeOnly) {\n return new Intl.DateTimeFormat(locale, {\n hour: '2-digit',\n minute: '2-digit',\n hour12: false,\n }).format(fixedDate); // Выводим только время\n } else if (format.dayMonth) {\n return new Intl.DateTimeFormat(locale, { day: '2-digit', month: 'short' }).format(fixedDate); // день и месяц\n } else if (format.dayTime) {\n return new Intl.DateTimeFormat(locale, {\n day: '2-digit',\n month: 'short',\n hour: '2-digit',\n minute: '2-digit',\n hour12: false,\n }).format(fixedDate); // день и время\n } else if (format.monthYear) {\n return new Intl.DateTimeFormat(locale, { month: 'long', year: 'numeric' }).format(fixedDate); // месяц и год\n } else if (format.yearOnly) {\n return new Intl.DateTimeFormat(locale, { year: 'numeric' }).format(fixedDate); // только год\n } else if (format.custom) {\n // Для пользовательского формата с подстановкой\n return format.custom\n .replace('yyyy', fixedDate.getFullYear())\n .replace('mm', ('0' + (fixedDate.getMonth() + 1)).slice(-2)) // добавление ведущего нуля\n .replace('dd', ('0' + fixedDate.getDate()).slice(-2)) // добавление ведущего нуля\n .replace('hh', ('0' + fixedDate.getHours()).slice(-2)) // добавление ведущего нуля\n .replace('min', ('0' + fixedDate.getMinutes()).slice(-2)); // добавление ведущего нуля\n }\n\n // Вернуть полную дату в стандартном формате\n return dateFormatter.format(fixedDate);\n };\n\n const formateText = (text, maxLength = 16) => {\n // Return empty string if text is undefined or null\n if (!text) return '';\n\n // If text is shorter than or equal to maxLength, return it as is\n if (text.length <= maxLength) {\n return text;\n }\n\n // Otherwise truncate and add ellipsis\n return text.substring(0, maxLength) + '...';\n };\n\n const normalizeUrlParam = param => {\n if (!param) param = '';\n\n return param\n .toLowerCase()\n .replace(/ /g, '-')\n .replace(/[^a-z0-9-]/g, '');\n };\n\n const joinArrayToUrl = arr => {\n return arr.join('/');\n };\n\n function generateFilters(selectedFilters) {\n const filters = [];\n\n // Process all selected filters\n for (const [key, values] of Object.entries(selectedFilters)) {\n if (values && values.length > 0) {\n // Skip special filters (these are handled separately)\n if (key !== 'prices' && key !== 'delivery' && key !== 'categories') {\n filters.push({\n parameter: key,\n caseSensitive: false,\n values: Array.isArray(values) ? values : [values],\n });\n }\n }\n }\n\n return filters.length > 0 ? JSON.stringify(filters) : undefined;\n }\n\n const getMarketplaceLink = (categories, country, state, city) => {\n let country_normalized = country ? normalizeUrlParam(country) : '';\n let state_normalized = state ? normalizeUrlParam(state) : '';\n let city_normalized = city ? normalizeUrlParam(city) : '';\n\n let base = '/marketplace';\n base += country_normalized ? `/${country_normalized}` : '';\n base += country_normalized && state_normalized ? `/${state_normalized}` : '';\n base += country_normalized && state_normalized && city_normalized ? `/${city_normalized}` : '';\n\n if (categories && categories.length) {\n base += `?categories=${categories.join(',')}`;\n }\n\n return base;\n };\n\n const getSpotsLink = (country, state, city) => {\n let country_normalized = country ? normalizeUrlParam(country) : '';\n let state_normalized = state ? normalizeUrlParam(state) : '';\n let city_normalized = city ? normalizeUrlParam(city) : '';\n\n let base = '/spots';\n base += country_normalized ? `/${country_normalized}` : '';\n base += country_normalized && state_normalized ? `/${state_normalized}` : '';\n base += country_normalized && state_normalized && city_normalized ? `/${city_normalized}` : '';\n\n return base;\n };\n\n const isClientSide = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n const getCssVar = name => {\n if (!isClientSide) return ''; // SSR fallback\n return getComputedStyle(document.documentElement).getPropertyValue(name).trim();\n };\n\n const matchMediaSafe = query => {\n if (!isClientSide) return { matches: false };\n return window.matchMedia(query);\n };\n\n const isMediaMax = varName => {\n const maxWidth = getCssVar(varName);\n return matchMediaSafe(`(max-width: ${maxWidth})`).matches;\n };\n\n const isMediaMin = varName => {\n const minWidth = getCssVar(varName);\n return matchMediaSafe(`(min-width: ${minWidth})`).matches;\n };\n\n const isFlipPhone = () => isMediaMax('--flip-phone-max');\n const isPhone = () => isMediaMax('--phone-landscape-max');\n\n const isTabletPortrait = () => {\n const min = getCssVar('--tablet-portrait-min');\n const max = getCssVar('--tablet-portrait-max');\n return matchMediaSafe(`(min-width: ${min}) and (max-width: ${max})`).matches;\n };\n\n const isTabletLandscape = () => {\n const min = getCssVar('--tablet-landscape-min');\n const max = getCssVar('--tablet-landscape-max');\n return matchMediaSafe(`(min-width: ${min}) and (max-width: ${max})`).matches;\n };\n\n const isTablet = () => isTabletPortrait() || isTabletLandscape();\n\n const isDesktop = () => {\n const min = getCssVar('--desktop-min');\n const max = getCssVar('--desktop-max');\n return matchMediaSafe(`(min-width: ${min}) and (max-width: ${max})`).matches;\n };\n\n const isXLDesktop = () => {\n const min = getCssVar('--xl-desktop-min');\n const max = getCssVar('--xl-desktop-max');\n return matchMediaSafe(`(min-width: ${min}) and (max-width: ${max})`).matches;\n };\n\n const isXXLDesktop = () => isMediaMin('--xxl-desktop-min');\n\n return {\n isAdmin,\n hasAccess,\n returnCurrency,\n formatPrice,\n formatDate,\n formateText,\n replaceClasses,\n normalizeUrlParam,\n joinArrayToUrl,\n getMarketplaceLink,\n getSpotsLink,\n generateFilters,\n // Брейкпоинты\n getCssVar,\n isMediaMax,\n isMediaMin,\n isFlipPhone,\n isPhone,\n isTabletPortrait,\n isTabletLandscape,\n isTablet,\n isDesktop,\n isXLDesktop,\n isXXLDesktop,\n };\n}\n\n// Экспорт для глобальной регистрации\nexport const globalMixins = {\n methods: useGlobalMixins(),\n};\n"],"names":["isAdmin","globals.state","state"],"mappings":"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"}
1
+ {"version":3,"file":"mixins.js","sources":["../../../../../../../src/modules/globals/views/mixins/mixins.js"],"sourcesContent":["import * as globals from '@martyrs/src/modules/globals/views/store/globals.js';\nimport { inject } from 'vue';\n\n// useGlobalMixins.js\nexport function useGlobalMixins() {\n const isModuleInstalled = (moduleName) => {\n const store = inject('store');\n if (!store || !store.modules) return false;\n return store.modules.includes(moduleName);\n };\n const isAdmin = roles => {\n if (roles) {\n const isAdmin = roles.includes('ROLE_ADMIN') ? roles.includes('ROLE_ADMIN') : false;\n\n if (isAdmin !== true) {\n return false;\n }\n\n return true;\n } else {\n return false;\n }\n };\n\n const hasAccess = (organizationId, rightCategory = null, rightType = null, accesses, roles) => {\n // Если пользователь админ, то сразу даем доступ\n if (isAdmin(roles)) {\n return true;\n }\n\n const accessArray = accesses;\n\n // Проверяем существование записи для организации\n const organizationAccess = accessArray.find(access => access.organization === organizationId);\n\n // Если переданы только organizationId и accesses - проверяем только членство\n if (rightCategory === null && rightType === null) {\n return Boolean(organizationAccess); // если организация найдена - значит член\n }\n\n // Для проверки прав сначала проверяем существование организации\n if (!organizationAccess) {\n return false;\n }\n\n const categoryAccess = organizationAccess.rights[rightCategory];\n if (!categoryAccess) {\n return false;\n }\n return categoryAccess[rightType] === true;\n };\n\n const returnCurrency = () => {\n const currency = globals.state.options.currency || '$';\n return currency;\n };\n\n const formatPrice = number => {\n try {\n if (number == null) {\n throw new TypeError('formatPrice: ожидается число, но получено null или undefined');\n }\n\n const currency = returnCurrency();\n const absNumber = Math.abs(number)\n .toFixed(2)\n .replace('.', ',')\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ' ');\n\n const sign = number < 0 ? '-' : '';\n return `${sign} ${currency}${absNumber}`;\n } catch (err) {\n console.error(err);\n return 'null';\n }\n };\n \n const replaceClasses = (original = '', map = null) => {\n if (map == null && typeof original !== 'string') return '';\n if (typeof map === 'string') {\n const orig = typeof original === 'string' ? original.trim().split(/\\s+/) : [];\n const next = map.trim().split(/\\s+/);\n const replaceSet = new Set(next);\n const replaced = orig.map(cls => (replaceSet.has(cls) ? next.find(c => c !== cls) || cls : cls));\n const extra = next.filter(c => !orig.includes(c));\n return [...new Set([...replaced, ...extra])].join(' ');\n }\n\n if (typeof map === 'object' && map !== null) {\n const orig = typeof original === 'string' ? original.trim().split(/\\s+/) : [];\n return orig.map(cls => map[cls] ?? cls).join(' ');\n }\n\n return typeof original === 'string' ? original.trim() : '';\n };\n \n\n const formatDate = (d, options = {}) => {\n var fixedDate = new Date(d);\n\n // Определяем параметры локализации\n const formatOptions = {\n year: 'numeric',\n month: 'long', // название месяца\n day: '2-digit', // день с ведущим нулем\n hour: '2-digit', // часы с ведущим нулем\n minute: '2-digit', // минуты с ведущим нулем\n hour12: false, // 24-часовой формат времени\n ...options, // дополнительные настройки\n };\n\n // Язык, по умолчанию \"ru\" (русский)\n const locale = options.language || 'ru';\n\n // Используем Intl.DateTimeFormat для локализации\n const dateFormatter = new Intl.DateTimeFormat(locale, formatOptions);\n\n var format = {\n dateOnly: options.dateOnly || false,\n timeOnly: options.timeOnly || false,\n dayMonth: options.dayMonth || false,\n dayTime: options.dayTime || false,\n monthYear: options.monthYear || false,\n yearOnly: options.yearOnly || false,\n custom: options.custom || '',\n monthName: options.monthName || false, // Новый параметр для вывода названия месяца\n language: options.language || 'ru', // Язык, по умолчанию русский\n };\n\n if (format.dateOnly) {\n return dateFormatter.format(fixedDate).split(',')[0]; // Выводим только дату\n } else if (format.timeOnly) {\n return new Intl.DateTimeFormat(locale, {\n hour: '2-digit',\n minute: '2-digit',\n hour12: false,\n }).format(fixedDate); // Выводим только время\n } else if (format.dayMonth) {\n return new Intl.DateTimeFormat(locale, { day: '2-digit', month: 'short' }).format(fixedDate); // день и месяц\n } else if (format.dayTime) {\n return new Intl.DateTimeFormat(locale, {\n day: '2-digit',\n month: 'short',\n hour: '2-digit',\n minute: '2-digit',\n hour12: false,\n }).format(fixedDate); // день и время\n } else if (format.monthYear) {\n return new Intl.DateTimeFormat(locale, { month: 'long', year: 'numeric' }).format(fixedDate); // месяц и год\n } else if (format.yearOnly) {\n return new Intl.DateTimeFormat(locale, { year: 'numeric' }).format(fixedDate); // только год\n } else if (format.custom) {\n // Для пользовательского формата с подстановкой\n return format.custom\n .replace('yyyy', fixedDate.getFullYear())\n .replace('mm', ('0' + (fixedDate.getMonth() + 1)).slice(-2)) // добавление ведущего нуля\n .replace('dd', ('0' + fixedDate.getDate()).slice(-2)) // добавление ведущего нуля\n .replace('hh', ('0' + fixedDate.getHours()).slice(-2)) // добавление ведущего нуля\n .replace('min', ('0' + fixedDate.getMinutes()).slice(-2)); // добавление ведущего нуля\n }\n\n // Вернуть полную дату в стандартном формате\n return dateFormatter.format(fixedDate);\n };\n\n const formateText = (text, maxLength = 16) => {\n // Return empty string if text is undefined or null\n if (!text) return '';\n\n // If text is shorter than or equal to maxLength, return it as is\n if (text.length <= maxLength) {\n return text;\n }\n\n // Otherwise truncate and add ellipsis\n return text.substring(0, maxLength) + '...';\n };\n\n const normalizeUrlParam = param => {\n if (!param) param = '';\n\n return param\n .toLowerCase()\n .replace(/ /g, '-')\n .replace(/[^a-z0-9-]/g, '');\n };\n\n const joinArrayToUrl = arr => {\n return arr.join('/');\n };\n\n function generateFilters(selectedFilters) {\n const filters = [];\n\n // Process all selected filters\n for (const [key, values] of Object.entries(selectedFilters)) {\n if (values && values.length > 0) {\n // Skip special filters (these are handled separately)\n if (key !== 'prices' && key !== 'delivery' && key !== 'categories') {\n filters.push({\n parameter: key,\n caseSensitive: false,\n values: Array.isArray(values) ? values : [values],\n });\n }\n }\n }\n\n return filters.length > 0 ? JSON.stringify(filters) : undefined;\n }\n\n const getMarketplaceLink = (categories, country, state, city) => {\n let country_normalized = country ? normalizeUrlParam(country) : '';\n let state_normalized = state ? normalizeUrlParam(state) : '';\n let city_normalized = city ? normalizeUrlParam(city) : '';\n\n let base = '/marketplace';\n base += country_normalized ? `/${country_normalized}` : '';\n base += country_normalized && state_normalized ? `/${state_normalized}` : '';\n base += country_normalized && state_normalized && city_normalized ? `/${city_normalized}` : '';\n\n if (categories && categories.length) {\n base += `?categories=${categories.join(',')}`;\n }\n\n return base;\n };\n\n const getSpotsLink = (country, state, city) => {\n let country_normalized = country ? normalizeUrlParam(country) : '';\n let state_normalized = state ? normalizeUrlParam(state) : '';\n let city_normalized = city ? normalizeUrlParam(city) : '';\n\n let base = '/spots';\n base += country_normalized ? `/${country_normalized}` : '';\n base += country_normalized && state_normalized ? `/${state_normalized}` : '';\n base += country_normalized && state_normalized && city_normalized ? `/${city_normalized}` : '';\n\n return base;\n };\n\n const isClientSide = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n const getCssVar = name => {\n if (!isClientSide) return ''; // SSR fallback\n return getComputedStyle(document.documentElement).getPropertyValue(name).trim();\n };\n\n const matchMediaSafe = query => {\n if (!isClientSide) return { matches: false };\n return window.matchMedia(query);\n };\n\n const isMediaMax = varName => {\n const maxWidth = getCssVar(varName);\n return matchMediaSafe(`(max-width: ${maxWidth})`).matches;\n };\n\n const isMediaMin = varName => {\n const minWidth = getCssVar(varName);\n return matchMediaSafe(`(min-width: ${minWidth})`).matches;\n };\n\n const isFlipPhone = () => isMediaMax('--flip-phone-max');\n const isPhone = () => isMediaMax('--phone-landscape-max');\n\n const isTabletPortrait = () => {\n const min = getCssVar('--tablet-portrait-min');\n const max = getCssVar('--tablet-portrait-max');\n return matchMediaSafe(`(min-width: ${min}) and (max-width: ${max})`).matches;\n };\n\n const isTabletLandscape = () => {\n const min = getCssVar('--tablet-landscape-min');\n const max = getCssVar('--tablet-landscape-max');\n return matchMediaSafe(`(min-width: ${min}) and (max-width: ${max})`).matches;\n };\n\n const isTablet = () => isTabletPortrait() || isTabletLandscape();\n\n const isDesktop = () => {\n const min = getCssVar('--desktop-min');\n const max = getCssVar('--desktop-max');\n return matchMediaSafe(`(min-width: ${min}) and (max-width: ${max})`).matches;\n };\n\n const isXLDesktop = () => {\n const min = getCssVar('--xl-desktop-min');\n const max = getCssVar('--xl-desktop-max');\n return matchMediaSafe(`(min-width: ${min}) and (max-width: ${max})`).matches;\n };\n\n const isXXLDesktop = () => isMediaMin('--xxl-desktop-min');\n\n return {\n isModuleInstalled,\n isAdmin,\n hasAccess,\n returnCurrency,\n formatPrice,\n formatDate,\n formateText,\n replaceClasses,\n normalizeUrlParam,\n joinArrayToUrl,\n getMarketplaceLink,\n getSpotsLink,\n generateFilters,\n // Брейкпоинты\n getCssVar,\n isMediaMax,\n isMediaMin,\n isFlipPhone,\n isPhone,\n isTabletPortrait,\n isTabletLandscape,\n isTablet,\n isDesktop,\n isXLDesktop,\n isXXLDesktop,\n };\n}\n\n// Экспорт для глобальной регистрации\nexport const globalMixins = {\n methods: useGlobalMixins(),\n};\n"],"names":["isAdmin","globals.state","state"],"mappings":";;AAIO,SAAS,kBAAkB;AAChC,QAAM,oBAAoB,CAAC,eAAe;AACxC,UAAM,QAAQ,OAAO,OAAO;AAC5B,QAAI,CAAC,SAAS,CAAC,MAAM,QAAS,QAAO;AACrC,WAAO,MAAM,QAAQ,SAAS,UAAU;AAAA,EAC1C;AACA,QAAM,UAAU,WAAS;AACvB,QAAI,OAAO;AACT,YAAMA,WAAU,MAAM,SAAS,YAAY,IAAI,MAAM,SAAS,YAAY,IAAI;AAE9E,UAAIA,aAAY,MAAM;AACpB,eAAO;AAAA,MACT;AAEA,aAAO;AAAA,IACT,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF;AAEA,QAAM,YAAY,CAAC,gBAAgB,gBAAgB,MAAM,YAAY,MAAM,UAAU,UAAU;AAE7F,QAAI,QAAQ,KAAK,GAAG;AAClB,aAAO;AAAA,IACT;AAEA,UAAM,cAAc;AAGpB,UAAM,qBAAqB,YAAY,KAAK,YAAU,OAAO,iBAAiB,cAAc;AAG5F,QAAI,kBAAkB,QAAQ,cAAc,MAAM;AAChD,aAAO,QAAQ,kBAAkB;AAAA,IACnC;AAGA,QAAI,CAAC,oBAAoB;AACvB,aAAO;AAAA,IACT;AAEA,UAAM,iBAAiB,mBAAmB,OAAO,aAAa;AAC9D,QAAI,CAAC,gBAAgB;AACnB,aAAO;AAAA,IACT;AACA,WAAO,eAAe,SAAS,MAAM;AAAA,EACvC;AAEA,QAAM,iBAAiB,MAAM;AAC3B,UAAM,WAAWC,MAAc,QAAQ,YAAY;AACnD,WAAO;AAAA,EACT;AAEA,QAAM,cAAc,YAAU;AAC5B,QAAI;AACF,UAAI,UAAU,MAAM;AAClB,cAAM,IAAI,UAAU,8DAA8D;AAAA,MACpF;AAEA,YAAM,WAAW,eAAc;AAC/B,YAAM,YAAY,KAAK,IAAI,MAAM,EAC9B,QAAQ,CAAC,EACT,QAAQ,KAAK,GAAG,EAChB,QAAQ,yBAAyB,GAAG;AAEvC,YAAM,OAAO,SAAS,IAAI,MAAM;AAChC,aAAO,GAAG,IAAI,IAAI,QAAQ,GAAG,SAAS;AAAA,IACxC,SAAS,KAAK;AACZ,cAAQ,MAAM,GAAG;AACjB,aAAO;AAAA,IACT;AAAA,EACF;AAEA,QAAM,iBAAiB,CAAC,WAAW,IAAI,MAAM,SAAS;AACpD,QAAI,OAAO,QAAQ,OAAO,aAAa,SAAU,QAAO;AACxD,QAAI,OAAO,QAAQ,UAAU;AAC3B,YAAM,OAAO,OAAO,aAAa,WAAW,SAAS,OAAO,MAAM,KAAK,IAAI,CAAA;AAC3E,YAAM,OAAO,IAAI,KAAI,EAAG,MAAM,KAAK;AACnC,YAAM,aAAa,IAAI,IAAI,IAAI;AAC/B,YAAM,WAAW,KAAK,IAAI,SAAQ,WAAW,IAAI,GAAG,IAAI,KAAK,KAAK,OAAK,MAAM,GAAG,KAAK,MAAM,GAAI;AAC/F,YAAM,QAAQ,KAAK,OAAO,OAAK,CAAC,KAAK,SAAS,CAAC,CAAC;AAChD,aAAO,CAAC,GAAG,oBAAI,IAAI,CAAC,GAAG,UAAU,GAAG,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG;AAAA,IACvD;AAEA,QAAI,OAAO,QAAQ,YAAY,QAAQ,MAAM;AAC3C,YAAM,OAAO,OAAO,aAAa,WAAW,SAAS,OAAO,MAAM,KAAK,IAAI,CAAA;AAC3E,aAAO,KAAK,IAAI,SAAO,IAAI,GAAG,KAAK,GAAG,EAAE,KAAK,GAAG;AAAA,IAClD;AAEA,WAAO,OAAO,aAAa,WAAW,SAAS,KAAI,IAAK;AAAA,EAC1D;AAGA,QAAM,aAAa,CAAC,GAAG,UAAU,CAAA,MAAO;AACtC,QAAI,YAAY,IAAI,KAAK,CAAC;AAG1B,UAAM,gBAAgB;AAAA,MACpB,MAAM;AAAA,MACN,OAAO;AAAA;AAAA,MACP,KAAK;AAAA;AAAA,MACL,MAAM;AAAA;AAAA,MACN,QAAQ;AAAA;AAAA,MACR,QAAQ;AAAA;AAAA,MACR,GAAG;AAAA;AAAA,IACT;AAGI,UAAM,SAAS,QAAQ,YAAY;AAGnC,UAAM,gBAAgB,IAAI,KAAK,eAAe,QAAQ,aAAa;AAEnE,QAAI,SAAS;AAAA,MACX,UAAU,QAAQ,YAAY;AAAA,MAC9B,UAAU,QAAQ,YAAY;AAAA,MAC9B,UAAU,QAAQ,YAAY;AAAA,MAC9B,SAAS,QAAQ,WAAW;AAAA,MAC5B,WAAW,QAAQ,aAAa;AAAA,MAChC,UAAU,QAAQ,YAAY;AAAA,MAC9B,QAAQ,QAAQ,UAAU;AAAA,MAC1B,WAAW,QAAQ,aAAa;AAAA;AAAA,MAChC,UAAU,QAAQ,YAAY;AAAA;AAAA,IACpC;AAEI,QAAI,OAAO,UAAU;AACnB,aAAO,cAAc,OAAO,SAAS,EAAE,MAAM,GAAG,EAAE,CAAC;AAAA,IACrD,WAAW,OAAO,UAAU;AAC1B,aAAO,IAAI,KAAK,eAAe,QAAQ;AAAA,QACrC,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,QAAQ;AAAA,MAChB,CAAO,EAAE,OAAO,SAAS;AAAA,IACrB,WAAW,OAAO,UAAU;AAC1B,aAAO,IAAI,KAAK,eAAe,QAAQ,EAAE,KAAK,WAAW,OAAO,QAAO,CAAE,EAAE,OAAO,SAAS;AAAA,IAC7F,WAAW,OAAO,SAAS;AACzB,aAAO,IAAI,KAAK,eAAe,QAAQ;AAAA,QACrC,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,QAAQ;AAAA,MAChB,CAAO,EAAE,OAAO,SAAS;AAAA,IACrB,WAAW,OAAO,WAAW;AAC3B,aAAO,IAAI,KAAK,eAAe,QAAQ,EAAE,OAAO,QAAQ,MAAM,UAAS,CAAE,EAAE,OAAO,SAAS;AAAA,IAC7F,WAAW,OAAO,UAAU;AAC1B,aAAO,IAAI,KAAK,eAAe,QAAQ,EAAE,MAAM,WAAW,EAAE,OAAO,SAAS;AAAA,IAC9E,WAAW,OAAO,QAAQ;AAExB,aAAO,OAAO,OACX,QAAQ,QAAQ,UAAU,YAAW,CAAE,EACvC,QAAQ,OAAO,OAAO,UAAU,SAAQ,IAAK,IAAI,MAAM,EAAE,CAAC,EAC1D,QAAQ,OAAO,MAAM,UAAU,WAAW,MAAM,EAAE,CAAC,EACnD,QAAQ,OAAO,MAAM,UAAU,YAAY,MAAM,EAAE,CAAC,EACpD,QAAQ,QAAQ,MAAM,UAAU,cAAc,MAAM,EAAE,CAAC;AAAA,IAC5D;AAGA,WAAO,cAAc,OAAO,SAAS;AAAA,EACvC;AAEA,QAAM,cAAc,CAAC,MAAM,YAAY,OAAO;AAE5C,QAAI,CAAC,KAAM,QAAO;AAGlB,QAAI,KAAK,UAAU,WAAW;AAC5B,aAAO;AAAA,IACT;AAGA,WAAO,KAAK,UAAU,GAAG,SAAS,IAAI;AAAA,EACxC;AAEA,QAAM,oBAAoB,WAAS;AACjC,QAAI,CAAC,MAAO,SAAQ;AAEpB,WAAO,MACJ,YAAW,EACX,QAAQ,MAAM,GAAG,EACjB,QAAQ,eAAe,EAAE;AAAA,EAC9B;AAEA,QAAM,iBAAiB,SAAO;AAC5B,WAAO,IAAI,KAAK,GAAG;AAAA,EACrB;AAEA,WAAS,gBAAgB,iBAAiB;AACxC,UAAM,UAAU,CAAA;AAGhB,eAAW,CAAC,KAAK,MAAM,KAAK,OAAO,QAAQ,eAAe,GAAG;AAC3D,UAAI,UAAU,OAAO,SAAS,GAAG;AAE/B,YAAI,QAAQ,YAAY,QAAQ,cAAc,QAAQ,cAAc;AAClE,kBAAQ,KAAK;AAAA,YACX,WAAW;AAAA,YACX,eAAe;AAAA,YACf,QAAQ,MAAM,QAAQ,MAAM,IAAI,SAAS,CAAC,MAAM;AAAA,UAC5D,CAAW;AAAA,QACH;AAAA,MACF;AAAA,IACF;AAEA,WAAO,QAAQ,SAAS,IAAI,KAAK,UAAU,OAAO,IAAI;AAAA,EACxD;AAEA,QAAM,qBAAqB,CAAC,YAAY,SAASC,QAAO,SAAS;AAC/D,QAAI,qBAAqB,UAAU,kBAAkB,OAAO,IAAI;AAChE,QAAI,mBAAmBA,SAAQ,kBAAkBA,MAAK,IAAI;AAC1D,QAAI,kBAAkB,OAAO,kBAAkB,IAAI,IAAI;AAEvD,QAAI,OAAO;AACX,YAAQ,qBAAqB,IAAI,kBAAkB,KAAK;AACxD,YAAQ,sBAAsB,mBAAmB,IAAI,gBAAgB,KAAK;AAC1E,YAAQ,sBAAsB,oBAAoB,kBAAkB,IAAI,eAAe,KAAK;AAE5F,QAAI,cAAc,WAAW,QAAQ;AACnC,cAAQ,eAAe,WAAW,KAAK,GAAG,CAAC;AAAA,IAC7C;AAEA,WAAO;AAAA,EACT;AAEA,QAAM,eAAe,CAAC,SAASA,QAAO,SAAS;AAC7C,QAAI,qBAAqB,UAAU,kBAAkB,OAAO,IAAI;AAChE,QAAI,mBAAmBA,SAAQ,kBAAkBA,MAAK,IAAI;AAC1D,QAAI,kBAAkB,OAAO,kBAAkB,IAAI,IAAI;AAEvD,QAAI,OAAO;AACX,YAAQ,qBAAqB,IAAI,kBAAkB,KAAK;AACxD,YAAQ,sBAAsB,mBAAmB,IAAI,gBAAgB,KAAK;AAC1E,YAAQ,sBAAsB,oBAAoB,kBAAkB,IAAI,eAAe,KAAK;AAE5F,WAAO;AAAA,EACT;AAEA,QAAM,eAAe,OAAO,WAAW,eAAe,OAAO,aAAa;AAE1E,QAAM,YAAY,UAAQ;AACxB,QAAI,CAAC,aAAc,QAAO;AAC1B,WAAO,iBAAiB,SAAS,eAAe,EAAE,iBAAiB,IAAI,EAAE,KAAI;AAAA,EAC/E;AAEA,QAAM,iBAAiB,WAAS;AAC9B,QAAI,CAAC,aAAc,QAAO,EAAE,SAAS,MAAK;AAC1C,WAAO,OAAO,WAAW,KAAK;AAAA,EAChC;AAEA,QAAM,aAAa,aAAW;AAC5B,UAAM,WAAW,UAAU,OAAO;AAClC,WAAO,eAAe,eAAe,QAAQ,GAAG,EAAE;AAAA,EACpD;AAEA,QAAM,aAAa,aAAW;AAC5B,UAAM,WAAW,UAAU,OAAO;AAClC,WAAO,eAAe,eAAe,QAAQ,GAAG,EAAE;AAAA,EACpD;AAEA,QAAM,cAAc,MAAM,WAAW,kBAAkB;AACvD,QAAM,UAAU,MAAM,WAAW,uBAAuB;AAExD,QAAM,mBAAmB,MAAM;AAC7B,UAAM,MAAM,UAAU,uBAAuB;AAC7C,UAAM,MAAM,UAAU,uBAAuB;AAC7C,WAAO,eAAe,eAAe,GAAG,qBAAqB,GAAG,GAAG,EAAE;AAAA,EACvE;AAEA,QAAM,oBAAoB,MAAM;AAC9B,UAAM,MAAM,UAAU,wBAAwB;AAC9C,UAAM,MAAM,UAAU,wBAAwB;AAC9C,WAAO,eAAe,eAAe,GAAG,qBAAqB,GAAG,GAAG,EAAE;AAAA,EACvE;AAEA,QAAM,WAAW,MAAM,iBAAgB,KAAM,kBAAiB;AAE9D,QAAM,YAAY,MAAM;AACtB,UAAM,MAAM,UAAU,eAAe;AACrC,UAAM,MAAM,UAAU,eAAe;AACrC,WAAO,eAAe,eAAe,GAAG,qBAAqB,GAAG,GAAG,EAAE;AAAA,EACvE;AAEA,QAAM,cAAc,MAAM;AACxB,UAAM,MAAM,UAAU,kBAAkB;AACxC,UAAM,MAAM,UAAU,kBAAkB;AACxC,WAAO,eAAe,eAAe,GAAG,qBAAqB,GAAG,GAAG,EAAE;AAAA,EACvE;AAEA,QAAM,eAAe,MAAM,WAAW,mBAAmB;AAEzD,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACA;AAGY,MAAC,eAAe;AAAA,EAC1B,SAAS,gBAAe;AAC1B;"}
@@ -60,7 +60,7 @@ const IconOrders = require("../entities/IconOrders.vue.cjs");
60
60
  const IconMusic = require("../entities/IconMusic.vue.cjs");
61
61
  const IconPhone = require("../entities/IconPhone.vue.cjs");
62
62
  const IconEmail = require("../entities/IconEmail.vue.cjs");
63
- const IconAddress = ;/* empty css */
63
+ const IconAddress = require("../entities/IconAddress.vue.cjs");
64
64
  const IconProfile = require("../entities/IconProfile.vue.cjs");
65
65
  const IconGroups = require("../entities/IconGroups.vue.cjs");
66
66
  const IconLock = require("../entities/IconLock.vue.cjs");