@ozdao/martyrs 0.2.535 → 0.2.536

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 (274) hide show
  1. package/dist/{main-DuXf9nQ1.cjs → main-Zhs0EqRp.cjs} +3 -3
  2. package/dist/{main-DWmJBTB8.js → main-gOfhekZG.js} +26 -26
  3. package/dist/martyrs/src/components/Button/{Button.vue.cjs → Button.vue2.cjs} +3 -3
  4. package/dist/martyrs/src/components/Button/Button.vue2.cjs.map +1 -0
  5. package/dist/martyrs/src/components/Button/{Button.vue.js → Button.vue2.js} +3 -3
  6. package/dist/martyrs/src/components/Button/{Button.vue.cjs.map → Button.vue2.js.map} +1 -1
  7. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.cjs → Dropdown.vue2.cjs} +2 -2
  8. package/dist/martyrs/src/components/Dropdown/Dropdown.vue2.cjs.map +1 -0
  9. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.js → Dropdown.vue2.js} +2 -2
  10. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.cjs.map → Dropdown.vue2.js.map} +1 -1
  11. package/dist/martyrs/src/components/Feed/Carousel.vue.cjs +1 -1
  12. package/dist/martyrs/src/components/Feed/Carousel.vue.js +1 -1
  13. package/dist/martyrs/src/components/Feed/Feed.vue.cjs +3 -3
  14. package/dist/martyrs/src/components/Feed/Feed.vue.js +3 -3
  15. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.cjs +1 -1
  16. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +1 -1
  17. package/dist/martyrs/src/components/Loader/{Loader.vue.cjs → Loader.vue2.cjs} +2 -2
  18. package/dist/martyrs/src/components/Loader/Loader.vue2.cjs.map +1 -0
  19. package/dist/martyrs/src/components/Loader/{Loader.vue.js → Loader.vue2.js} +2 -2
  20. package/dist/martyrs/src/components/Loader/{Loader.vue.cjs.map → Loader.vue2.js.map} +1 -1
  21. package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue.cjs +1 -1
  22. package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue.js +1 -1
  23. package/dist/martyrs/src/components/Spoiler/{Spoiler.vue.cjs → Spoiler.vue2.cjs} +2 -2
  24. package/dist/martyrs/src/components/Spoiler/Spoiler.vue2.cjs.map +1 -0
  25. package/dist/martyrs/src/components/Spoiler/{Spoiler.vue.js → Spoiler.vue2.js} +2 -2
  26. package/dist/martyrs/src/components/Spoiler/{Spoiler.vue.cjs.map → Spoiler.vue2.js.map} +1 -1
  27. package/dist/martyrs/src/components/Tab/{Tab.vue.cjs → Tab.vue2.cjs} +2 -2
  28. package/dist/martyrs/src/components/Tab/Tab.vue2.cjs.map +1 -0
  29. package/dist/martyrs/src/components/Tab/{Tab.vue.js → Tab.vue2.js} +2 -2
  30. package/dist/martyrs/src/components/Tab/{Tab.vue.cjs.map → Tab.vue2.js.map} +1 -1
  31. package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.cjs +1 -1
  32. package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.js +1 -1
  33. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs +2 -2
  34. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +2 -2
  35. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +2 -2
  36. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +2 -2
  37. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +3 -3
  38. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +3 -3
  39. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.cjs +1 -1
  40. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js +1 -1
  41. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.cjs +1 -1
  42. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +1 -1
  43. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.cjs +1 -1
  44. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +1 -1
  45. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.cjs +1 -1
  46. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +1 -1
  47. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.cjs +2 -2
  48. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +2 -2
  49. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs +2 -2
  50. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +2 -2
  51. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs +2 -2
  52. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +2 -2
  53. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.cjs +1 -1
  54. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +1 -1
  55. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs +2 -2
  56. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +2 -2
  57. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +1 -1
  58. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
  59. package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.cjs +1 -1
  60. package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.js +1 -1
  61. package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.cjs +1 -1
  62. package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.js +1 -1
  63. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +2 -2
  64. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +2 -2
  65. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs +1 -1
  66. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
  67. package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +3 -3
  68. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +3 -3
  69. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.cjs +1 -1
  70. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js +1 -1
  71. package/dist/martyrs/src/modules/events/components/sections/Feed.vue.cjs +1 -1
  72. package/dist/martyrs/src/modules/events/components/sections/Feed.vue.js +1 -1
  73. package/dist/martyrs/src/modules/events/components/sections/List.vue.cjs +1 -1
  74. package/dist/martyrs/src/modules/events/components/sections/List.vue.js +1 -1
  75. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +1 -1
  76. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +1 -1
  77. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +3 -3
  78. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +3 -3
  79. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupAuth.vue.cjs +1 -1
  80. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupAuth.vue.js +1 -1
  81. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs +2 -2
  82. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js +2 -2
  83. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +2 -2
  84. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +2 -2
  85. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs +1 -1
  86. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js +1 -1
  87. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs +2 -2
  88. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js +2 -2
  89. package/dist/martyrs/src/modules/globals/views/components/partials/NavigationBar.vue.cjs +1 -1
  90. package/dist/martyrs/src/modules/globals/views/components/partials/NavigationBar.vue.js +1 -1
  91. package/dist/martyrs/src/modules/globals/views/components/sections/{Filters.vue.cjs → Filters.vue2.cjs} +2 -2
  92. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.cjs.map +1 -0
  93. package/dist/martyrs/src/modules/globals/views/components/sections/{Filters.vue.js → Filters.vue2.js} +2 -2
  94. package/dist/martyrs/src/modules/globals/views/components/sections/{Filters.vue.cjs.map → Filters.vue2.js.map} +1 -1
  95. package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.cjs +1 -1
  96. package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.js +1 -1
  97. package/dist/martyrs/src/modules/globals/views/components/sections/Walkthrough.vue.cjs +1 -1
  98. package/dist/martyrs/src/modules/globals/views/components/sections/Walkthrough.vue.js +1 -1
  99. package/dist/martyrs/src/modules/globals/views/store/globals.cjs +14 -4
  100. package/dist/martyrs/src/modules/globals/views/store/globals.cjs.map +1 -1
  101. package/dist/martyrs/src/modules/globals/views/store/globals.js +14 -4
  102. package/dist/martyrs/src/modules/globals/views/store/globals.js.map +1 -1
  103. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.cjs +1 -1
  104. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +1 -1
  105. package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.cjs +1 -1
  106. package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.js +1 -1
  107. package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.cjs +1 -1
  108. package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js +1 -1
  109. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.cjs +1 -1
  110. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +1 -1
  111. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.cjs +1 -1
  112. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js +1 -1
  113. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.cjs +2 -2
  114. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +2 -2
  115. package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.cjs +1 -1
  116. package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.js +1 -1
  117. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.cjs +1 -1
  118. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.js +1 -1
  119. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.cjs +1 -1
  120. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js +1 -1
  121. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.cjs +1 -1
  122. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +1 -1
  123. package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.cjs +1 -1
  124. package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.js +1 -1
  125. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.cjs +1 -1
  126. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js +1 -1
  127. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.cjs +1 -1
  128. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js +1 -1
  129. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.cjs +1 -1
  130. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +1 -1
  131. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.cjs +2 -2
  132. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +2 -2
  133. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.cjs +1 -1
  134. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +1 -1
  135. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.cjs +1 -1
  136. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js +1 -1
  137. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs +1 -1
  138. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +1 -1
  139. package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs +3 -3
  140. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +3 -3
  141. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.cjs +2 -2
  142. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +2 -2
  143. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.cjs +1 -1
  144. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +1 -1
  145. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs +3 -3
  146. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +3 -3
  147. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.cjs +2 -2
  148. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +2 -2
  149. package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs +3 -3
  150. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +3 -3
  151. package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.cjs +2 -2
  152. package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.js +2 -2
  153. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.cjs +1 -1
  154. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js +1 -1
  155. package/dist/martyrs/src/modules/notifications/components/pages/Notifications.vue.cjs +1 -1
  156. package/dist/martyrs/src/modules/notifications/components/pages/Notifications.vue.js +1 -1
  157. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.cjs +1 -1
  158. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +1 -1
  159. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.cjs +1 -1
  160. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +1 -1
  161. package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.cjs +2 -2
  162. package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js +2 -2
  163. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +1 -1
  164. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +1 -1
  165. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs +1 -1
  166. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +1 -1
  167. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +2 -2
  168. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +2 -2
  169. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.cjs +1 -1
  170. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.js +1 -1
  171. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.cjs +1 -1
  172. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js +1 -1
  173. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.cjs +1 -1
  174. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js +1 -1
  175. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +3 -3
  176. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +3 -3
  177. package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.cjs +7 -7
  178. package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.js +7 -7
  179. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.cjs +1 -1
  180. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +1 -1
  181. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.cjs +1 -1
  182. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js +1 -1
  183. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.cjs +2 -2
  184. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js +2 -2
  185. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.cjs +1 -1
  186. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js +1 -1
  187. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.cjs +7 -7
  188. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js +7 -7
  189. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +7 -7
  190. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +7 -7
  191. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +6 -6
  192. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +6 -6
  193. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +2 -2
  194. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +2 -2
  195. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.cjs +1 -1
  196. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js +1 -1
  197. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs +2 -2
  198. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +2 -2
  199. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.cjs +1 -1
  200. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +1 -1
  201. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +3 -3
  202. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +3 -3
  203. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.cjs +2 -2
  204. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +2 -2
  205. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.cjs +1 -1
  206. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -1
  207. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.cjs +1 -1
  208. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +1 -1
  209. package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.cjs +1 -1
  210. package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.js +1 -1
  211. package/dist/martyrs/src/modules/products/components/elements/Image360.vue.cjs +1 -1
  212. package/dist/martyrs/src/modules/products/components/elements/Image360.vue.js +1 -1
  213. package/dist/martyrs/src/modules/products/components/elements/{THC.vue.cjs → THC.vue2.cjs} +2 -2
  214. package/dist/martyrs/src/modules/products/components/elements/THC.vue2.cjs.map +1 -0
  215. package/dist/martyrs/src/modules/products/components/elements/{THC.vue.js → THC.vue2.js} +2 -2
  216. package/dist/martyrs/src/modules/products/components/elements/THC.vue2.js.map +1 -0
  217. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs +2 -2
  218. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +2 -2
  219. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +4 -4
  220. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +4 -4
  221. package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +3 -3
  222. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +3 -3
  223. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +2 -2
  224. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +2 -2
  225. package/dist/martyrs/src/modules/products/components/pages/ProductRecommmendation.vue.cjs +1 -1
  226. package/dist/martyrs/src/modules/products/components/pages/ProductRecommmendation.vue.js +1 -1
  227. package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs +3 -3
  228. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +3 -3
  229. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.cjs +1 -1
  230. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +1 -1
  231. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs +1 -1
  232. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +1 -1
  233. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs +1 -1
  234. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +1 -1
  235. package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.cjs +1 -1
  236. package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.js +1 -1
  237. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.cjs +1 -1
  238. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js +1 -1
  239. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.cjs +1 -1
  240. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +1 -1
  241. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.cjs +3 -3
  242. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +3 -3
  243. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.cjs +3 -3
  244. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +3 -3
  245. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.cjs +1 -1
  246. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js +1 -1
  247. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs +1 -1
  248. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +1 -1
  249. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs +2 -2
  250. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +2 -2
  251. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.cjs +1 -1
  252. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js +1 -1
  253. package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.cjs +1 -1
  254. package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.js +1 -1
  255. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +2 -2
  256. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +2 -2
  257. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.cjs +1 -1
  258. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +1 -1
  259. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.cjs +2 -2
  260. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +2 -2
  261. package/dist/martyrs.cjs.js +1 -1
  262. package/dist/martyrs.es.js +1 -1
  263. package/dist/{web-BYEJ8fyd.js → web-DxxU2bwy.js} +1 -1
  264. package/dist/{web-MS1kPdbl.cjs → web-bMa0DMyG.cjs} +1 -1
  265. package/package.json +1 -1
  266. package/src/modules/globals/views/store/globals.js +12 -4
  267. package/dist/martyrs/src/components/Button/Button.vue.js.map +0 -1
  268. package/dist/martyrs/src/components/Dropdown/Dropdown.vue.js.map +0 -1
  269. package/dist/martyrs/src/components/Loader/Loader.vue.js.map +0 -1
  270. package/dist/martyrs/src/components/Spoiler/Spoiler.vue.js.map +0 -1
  271. package/dist/martyrs/src/components/Tab/Tab.vue.js.map +0 -1
  272. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue.js.map +0 -1
  273. package/dist/martyrs/src/modules/products/components/elements/THC.vue.cjs.map +0 -1
  274. package/dist/martyrs/src/modules/products/components/elements/THC.vue.js.map +0 -1
@@ -3,7 +3,7 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
3
3
  const vue = require("vue");
4
4
  const vueRouter = require("vue-router");
5
5
  const Popup = require("../../../../../components/Popup/Popup.vue.cjs");
6
- const Button = require("../../../../../components/Button/Button.vue.cjs");
6
+ const Button = require("../../../../../components/Button/Button.vue2.cjs");
7
7
  const _hoisted_1 = { class: "t-center" };
8
8
  const _hoisted_2 = { class: "mn-b-medium" };
9
9
  const _hoisted_3 = { class: "mn-b-semi t-transp" };
@@ -1,7 +1,7 @@
1
1
  import { createBlock, openBlock, withCtx, createElementVNode, toDisplayString, createVNode, createTextVNode } from "vue";
2
2
  import { useRouter, useRoute } from "vue-router";
3
3
  import _sfc_main$1 from "../../../../../components/Popup/Popup.vue.js";
4
- import _sfc_main$2 from "../../../../../components/Button/Button.vue.js";
4
+ import _sfc_main$2 from "../../../../../components/Button/Button.vue2.js";
5
5
  const _hoisted_1 = { class: "t-center" };
6
6
  const _hoisted_2 = { class: "mn-b-medium" };
7
7
  const _hoisted_3 = { class: "mn-b-semi t-transp" };
@@ -3,9 +3,9 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
3
3
  const vue = require("vue");
4
4
  const vueI18n = require("vue-i18n");
5
5
  const Popup = require("../../../../../components/Popup/Popup.vue.cjs");
6
- const Loader = require("../../../../../components/Loader/Loader.vue.cjs");
6
+ const Loader = require("../../../../../components/Loader/Loader.vue2.cjs");
7
7
  const Calendar = require("../../../../../components/Calendar/Calendar.vue2.cjs");
8
- const Button = require("../../../../../components/Button/Button.vue.cjs");
8
+ const Button = require("../../../../../components/Button/Button.vue2.cjs");
9
9
  const IconShopcartAdd = require("../../../../icons/actions/IconShopcartAdd.vue.cjs");
10
10
  const PriceTotal = require("../../../../orders/components/elements/PriceTotal.vue.cjs");
11
11
  const rents_store = require("../../../../rents/views/store/rents.store.cjs");
@@ -1,9 +1,9 @@
1
1
  import { ref, computed, watch, onMounted, createBlock, openBlock, withCtx, createElementVNode, createVNode, createElementBlock, createCommentVNode, toDisplayString, unref } from "vue";
2
2
  import { useI18n } from "vue-i18n";
3
3
  import _sfc_main$1 from "../../../../../components/Popup/Popup.vue.js";
4
- import Loader from "../../../../../components/Loader/Loader.vue.js";
4
+ import Loader from "../../../../../components/Loader/Loader.vue2.js";
5
5
  import Calendar from "../../../../../components/Calendar/Calendar.vue2.js";
6
- import _sfc_main$3 from "../../../../../components/Button/Button.vue.js";
6
+ import _sfc_main$3 from "../../../../../components/Button/Button.vue2.js";
7
7
  import _sfc_main$4 from "../../../../icons/actions/IconShopcartAdd.vue.js";
8
8
  import _sfc_main$2 from "../../../../orders/components/elements/PriceTotal.vue.js";
9
9
  import { loadAvailability } from "../../../../rents/views/store/rents.store.js";
@@ -8,8 +8,8 @@ const Snack = require("../../../../../components/Status/Snack.vue.cjs");
8
8
  const Popup = require("../../../../../components/Popup/Popup.vue.cjs");
9
9
  require("vue-i18n");
10
10
  ;/* empty css */
11
- const Loader = require("../../../../../components/Loader/Loader.vue.cjs");
12
- ;/* empty css */
11
+ const Loader = require("../../../../../components/Loader/Loader.vue2.cjs");
12
+ ;/* empty css */
13
13
  ;/* empty css */
14
14
  const LocationSelection = require("../partials/LocationSelection.vue.cjs");
15
15
  const ShopCart = require("../../../../orders/components/partials/ShopCart.vue.cjs");
@@ -6,8 +6,8 @@ import _sfc_main$5 from "../../../../../components/Status/Snack.vue.js";
6
6
  import _sfc_main$1 from "../../../../../components/Popup/Popup.vue.js";
7
7
  import "vue-i18n";
8
8
  /* empty css */
9
- import Loader from "../../../../../components/Loader/Loader.vue.js";
10
- /* empty css */
9
+ import Loader from "../../../../../components/Loader/Loader.vue2.js";
10
+ /* empty css */
11
11
  /* empty css */
12
12
  import _sfc_main$2 from "../partials/LocationSelection.vue.js";
13
13
  import _sfc_main$3 from "../../../../orders/components/partials/ShopCart.vue.js";
@@ -7,7 +7,7 @@ const globals = require("../../store/globals.cjs");
7
7
  const shopcart = require("../../../../orders/store/shopcart.cjs");
8
8
  const auth = require("../../../../auth/views/store/auth.cjs");
9
9
  const NotificationBadge = require("../../../../notifications/components/elements/NotificationBadge.vue.cjs");
10
- const Button = require("../../../../../components/Button/Button.vue.cjs");
10
+ const Button = require("../../../../../components/Button/Button.vue2.cjs");
11
11
  const Select = require("../../../../../components/Select/Select.vue.cjs");
12
12
  const IconShopcart = require("../../../../icons/entities/IconShopcart.vue.cjs");
13
13
  const IconProfile = require("../../../../icons/entities/IconProfile.vue.cjs");
@@ -5,7 +5,7 @@ import { state } from "../../store/globals.js";
5
5
  import { actions, getters } from "../../../../orders/store/shopcart.js";
6
6
  import { state as state$1 } from "../../../../auth/views/store/auth.js";
7
7
  import NotificationBadge from "../../../../notifications/components/elements/NotificationBadge.vue.js";
8
- import _sfc_main$1 from "../../../../../components/Button/Button.vue.js";
8
+ import _sfc_main$1 from "../../../../../components/Button/Button.vue2.js";
9
9
  import Select from "../../../../../components/Select/Select.vue.js";
10
10
  import _sfc_main$3 from "../../../../icons/entities/IconShopcart.vue.js";
11
11
  import _sfc_main$4 from "../../../../icons/entities/IconProfile.vue.js";
@@ -5,8 +5,8 @@ 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 */
9
- ;/* empty css */
8
+ ;/* empty css */
9
+ ;/* empty css */
10
10
  ;/* empty css */
11
11
  const _pluginVue_exportHelper = require("../../../../../../../_virtual/_plugin-vue_export-helper.cjs");
12
12
  const _hoisted_1 = ["onClick"];
@@ -3,8 +3,8 @@ 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 */
7
- /* empty css */
6
+ /* empty css */
7
+ /* empty css */
8
8
  /* empty css */
9
9
  import _export_sfc from "../../../../../../../_virtual/_plugin-vue_export-helper.js";
10
10
  const _hoisted_1 = ["onClick"];
@@ -5,7 +5,7 @@ const vueRouter = require("vue-router");
5
5
  const vueI18n = require("vue-i18n");
6
6
  const IconShopcart = require("../../../../icons/entities/IconShopcart.vue.cjs");
7
7
  const IconProfile = require("../../../../icons/entities/IconProfile.vue.cjs");
8
- const Button = require("../../../../../components/Button/Button.vue.cjs");
8
+ const Button = require("../../../../../components/Button/Button.vue2.cjs");
9
9
  const globals = require("../../store/globals.cjs");
10
10
  const shopcart = require("../../../../orders/store/shopcart.cjs");
11
11
  const auth = require("../../../../auth/views/store/auth.cjs");
@@ -3,7 +3,7 @@ import { useRouter, useRoute } from "vue-router";
3
3
  import { useI18n } from "vue-i18n";
4
4
  import _sfc_main$2 from "../../../../icons/entities/IconShopcart.vue.js";
5
5
  import _sfc_main$3 from "../../../../icons/entities/IconProfile.vue.js";
6
- import _sfc_main$1 from "../../../../../components/Button/Button.vue.js";
6
+ import _sfc_main$1 from "../../../../../components/Button/Button.vue2.js";
7
7
  import { state } from "../../store/globals.js";
8
8
  import { getters, actions } from "../../../../orders/store/shopcart.js";
9
9
  import { state as state$1 } from "../../../../auth/views/store/auth.js";
@@ -8,7 +8,7 @@ const Field = require("../../../../../components/Field/Field.vue.cjs");
8
8
  const Calendar = require("../../../../../components/Calendar/Calendar.vue2.cjs");
9
9
  const IconFilter = require("../../../../icons/navigation/IconFilter.vue.cjs");
10
10
  const IconCalendar = ;/* empty css */
11
- ;/* empty css */
11
+ ;/* empty css */
12
12
  const _pluginVue_exportHelper = require("../../../../../../../_virtual/_plugin-vue_export-helper.cjs");
13
13
  const _hoisted_1 = { class: "flex t-nowrap gap-thin" };
14
14
  const _hoisted_2 = { key: 0 };
@@ -382,4 +382,4 @@ const _sfc_main = {
382
382
  };
383
383
  const Filters = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-c337ccbe"]]);
384
384
  exports.default = Filters;
385
- //# sourceMappingURL=Filters.vue.cjs.map
385
+ //# sourceMappingURL=Filters.vue2.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Filters.vue2.cjs","sources":["../../../../../../../../src/modules/globals/views/components/sections/Filters.vue"],"sourcesContent":["<template>\n <div class=\"flex t-nowrap gap-thin\">\n <!-- All Filters Button -->\n <button\n @click=\"showAllFilters = true\"\n class=\"pd-small radius-medium bg-light flex-v-center flex gap-micro cursor-pointer\"\n :class=\"{ 'bg-main': activeFiltersCount > 0 }\"\n >\n <IconFilter class=\"i-medium\" />\n <span class=\"h-1r\"></span>\n <span v-if=\"activeFiltersCount\">{{ activeFiltersCount }}</span>\n </button>\n\n <!-- Individual Filter Buttons -->\n <button\n v-for=\"filter in filters\"\n :key=\"filter.value\"\n @click=\"openFilter(filter.value)\"\n class=\"pd-small radius-medium bg-light cursor-pointer flex-v-center flex gap-micro\"\n :class=\"{ 'selected bg-main': isFilterActive(filter) }\"\n >\n <IconCalendar v-if=\"filter.type === 'date'\" class=\"mn-r-micro i-medium\" />\n <span class=\"t-nowrap\">{{ filter.type === 'date' && getFilterValue(filter) ? formatFilterValue(filter) : filter.title }}</span>\n <span v-if=\"getFilterValue(filter) && filter.type !== 'date'\" class=\"mn-l-micro\">\n {{ formatFilterValue(filter) }}\n </span>\n </button>\n\n <!-- All Filters Popup -->\n <Popup\n :isPopupOpen=\"showAllFilters\"\n @close-popup=\"showAllFilters = false\"\n :align=\"isPhone() ? 'bottom center' : 'center center'\"\n class=\"w-min-20r bg-white radius-medium mobile:radius-zero mobile:radius-tr-medium mobile:radius-tl-medium mobile:w-100 pd-medium\"\n >\n <div class=\"flex-v-center flex-nowrap flex mn-b-medium\">\n <h3 class=\"flex-child-full\">Filters</h3>\n </div>\n\n <div class=\"filters-content\">\n <div \n v-for=\"filter in filters\" \n :key=\"filter.value\"\n class=\"mn-b-medium\"\n >\n <h4 class=\"mn-b-small\">{{ filter.title }}</h4>\n \n <!-- Checkbox Filter -->\n <div v-if=\"filter.type === 'checkbox'\">\n <Checkbox\n v-for=\"option in filter.options\"\n :key=\"option.value\"\n :label=\"option.label\"\n :value=\"option.value\"\n v-model:radio=\"tempSelected[filter.value]\"\n mode=\"checkbox\"\n class=\"mn-b-micro\"\n />\n </div>\n\n <!-- Radio Filter -->\n <div v-else-if=\"filter.type === 'radio'\">\n <div\n v-for=\"option in filter.options\"\n :key=\"option.value\"\n @click=\"tempSelected[filter.value] = option.value\"\n class=\"pd-small radius-small cursor-pointer mn-b-micro\"\n :class=\"{ \n 'bg-main': tempSelected[filter.value] === option.value,\n 'bg-light': tempSelected[filter.value] !== option.value\n }\"\n >\n {{ option.label }}\n </div>\n </div>\n\n <!-- Range Filter -->\n <div v-else-if=\"filter.type === 'range'\" class=\"flex gap-thin\">\n <Field\n v-model:field=\"tempSelected[filter.value].min\"\n :placeholder=\"filter.minPlaceholder || 'Min'\"\n type=\"number\"\n :label=\"returnCurrency()\"\n class=\"w-50 bg-light pd-small radius-small\"\n />\n <Field\n v-model:field=\"tempSelected[filter.value].max\"\n :placeholder=\"filter.maxPlaceholder || 'Max'\"\n type=\"number\"\n :label=\"returnCurrency()\"\n class=\"w-50 bg-light pd-small radius-small\"\n />\n </div>\n\n <!-- Date Filter -->\n <div v-else-if=\"filter.type === 'date'\">\n <Calendar\n v-model:date=\"tempSelected[filter.value]\"\n :allowRange=\"true\"\n :disablePastDates=\"true\"\n class=\"bg-light radius-small\"\n />\n </div>\n </div>\n </div>\n\n <div class=\"flex gap-thin mn-t-medium\">\n <button \n @click=\"applyAllFilters\" \n class=\"button bg-main flex-child-full\"\n >\n Apply\n </button>\n <button \n @click=\"resetFilters\" \n class=\"button bg-light\"\n >\n Reset Filters\n </button>\n </div>\n </Popup>\n\n <!-- Individual Filter Popups -->\n <Popup\n v-for=\"filter in filters\"\n :key=\"`popup-${filter.value}`\"\n :isPopupOpen=\"individualPopups[filter.value]\"\n @close-popup=\"individualPopups[filter.value] = false\"\n :align=\"isPhone() ? 'bottom center' : 'center center'\"\n class=\"bg-white radius-medium mobile:radius-zero mobile:radius-tr-medium mobile:radius-tl-medium mobile:w-100 pd-medium\"\n >\n <h4 class=\"mn-b-medium\">{{ filter.title }}</h4>\n \n <!-- Checkbox Filter -->\n <div v-if=\"filter.type === 'checkbox'\">\n <Checkbox\n v-for=\"option in filter.options\"\n :key=\"option.value\"\n :label=\"option.label\"\n :value=\"option.value\"\n v-model:radio=\"tempSelected[filter.value]\"\n mode=\"checkbox\"\n class=\"mn-b-micro\"\n />\n </div>\n\n <!-- Radio Filter -->\n <div v-else-if=\"filter.type === 'radio'\">\n <div\n v-for=\"option in filter.options\"\n :key=\"option.value\"\n @click=\"tempSelected[filter.value] = option.value\"\n class=\"pd-small radius-small cursor-pointer mn-b-micro\"\n :class=\"{ \n 'bg-main': tempSelected[filter.value] === option.value,\n 'bg-light': tempSelected[filter.value] !== option.value\n }\"\n >\n {{ option.label }}\n </div>\n </div>\n\n <!-- Range Filter -->\n <div v-else-if=\"filter.type === 'range'\" class=\"flex gap-thin\">\n <Field\n v-model:field=\"tempSelected[filter.value].min\"\n :placeholder=\"filter.minPlaceholder || 'Min'\"\n type=\"number\"\n :label=\"returnCurrency()\"\n class=\"w-50 bg-light pd-small radius-small\"\n />\n <Field\n v-model:field=\"tempSelected[filter.value].max\"\n :placeholder=\"filter.maxPlaceholder || 'Max'\"\n type=\"number\"\n :label=\"returnCurrency()\"\n class=\"w-50 bg-light pd-small radius-small\"\n />\n </div>\n\n <!-- Date Filter -->\n <div v-else-if=\"filter.type === 'date'\">\n <div class=\"mn-t-small\">\n <Calendar\n v-model:date=\"tempSelected[filter.value]\"\n :allowRange=\"true\"\n :disablePastDates=\"true\"\n class=\"bg-light radius-small\"\n />\n </div>\n </div>\n\n <div class=\"flex gap-thin mn-t-medium\">\n <button \n @click=\"cancelFilter(filter.value)\" \n class=\"bg-light button flex-child-full\"\n >\n Cancel\n </button>\n <button \n @click=\"applyFilter(filter.value)\" \n class=\"bg-main w-100 button flex-child-full\"\n >\n Apply\n </button>\n \n \n </div>\n </Popup>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed, reactive, watch } from 'vue'\nimport { useGlobalMixins } from '@martyrs/src/modules/globals/views/mixins/mixins.js'\nimport Popup from '@martyrs/src/components/Popup/Popup.vue'\nimport Checkbox from '@martyrs/src/components/Checkbox/Checkbox.vue'\nimport Field from '@martyrs/src/components/Field/Field.vue'\nimport Calendar from '@martyrs/src/components/Calendar/Calendar.vue'\nimport IconFilter from '@martyrs/src/modules/icons/navigation/IconFilter.vue'\nimport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue'\nimport IconCalendar from '@martyrs/src/modules/icons/entities/IconCalendar.vue'\n\nconst filters = defineModel('filters', {\n type: Array,\n required: true\n})\n\nconst selected = defineModel('selected', {\n type: Object,\n default: () => ({})\n})\n\nconst emit = defineEmits(['select'])\n\nconst { formatDate } = useGlobalMixins()\n\n// State\nconst showAllFilters = ref(false)\nconst individualPopups = reactive({})\nconst tempSelected = reactive({})\nconst tempDateRange = ref(null)\n\n// Initialize popups and temp values\nwatch(filters, (newFilters) => {\n newFilters.forEach(filter => {\n individualPopups[filter.value] = false\n \n if (!tempSelected[filter.value]) {\n if (filter.type === 'checkbox') {\n tempSelected[filter.value] = [...(selected.value[filter.value] || [])]\n } else if (filter.type === 'range') {\n tempSelected[filter.value] = { ...(selected.value[filter.value] || { min: '', max: '' }) }\n } else if (filter.type === 'date') {\n tempSelected[filter.value] = selected.value[filter.value] || null\n } else {\n tempSelected[filter.value] = selected.value[filter.value] || null\n }\n }\n })\n}, { immediate: true, deep: true })\n\n// Sync selected to tempSelected\nwatch(selected, (newSelected) => {\n Object.keys(newSelected).forEach(key => {\n const filter = filters.value.find(f => f.value === key)\n if (filter) {\n if (filter.type === 'checkbox') {\n tempSelected[key] = [...(newSelected[key] || [])]\n } else if (filter.type === 'range') {\n tempSelected[key] = { ...(newSelected[key] || { min: '', max: '' }) }\n } else {\n tempSelected[key] = newSelected[key]\n }\n }\n })\n}, { deep: true })\n\n// Computed\nconst activeFiltersCount = computed(() => {\n return Object.entries(selected.value).filter(([key, value]) => {\n if (Array.isArray(value)) return value.length > 0\n if (typeof value === 'object' && value !== null) {\n return value.min || value.max\n }\n return value !== null && value !== undefined\n }).length\n})\n\n// Methods\nconst openFilter = (filterValue) => {\n individualPopups[filterValue] = true\n}\n\nconst isFilterActive = (filter) => {\n const value = selected.value[filter.value]\n if (!value) return false\n if (Array.isArray(value)) return value.length > 0\n if (filter.type === 'range') return value.min || value.max\n return true\n}\n\nconst getFilterValue = (filter) => {\n const value = selected.value[filter.value]\n if (!value) return false\n \n if (filter.type === 'range') {\n return value.min || value.max\n }\n \n if (filter.type === 'date') {\n return value && value.start && value.end\n }\n \n if (Array.isArray(value)) {\n return value.length > 0\n }\n \n return value\n}\n\nconst formatFilterValue = (filter) => {\n const value = selected.value[filter.value]\n if (!value) return ''\n \n if (Array.isArray(value)) {\n return `(${value.length})`\n }\n \n if (filter.type === 'range') {\n if (!value.min && !value.max) return ''\n return `${value.min || '0'}-${value.max || '∞'}`\n }\n \n if (filter.type === 'date') {\n if (!value || !value.start || !value.end) return ''\n return `${formatDate(value.start, { dayMonth: true, language: 'en' })} - ${formatDate(value.end, { dayMonth: true, language: 'en' })}`\n }\n \n if (filter.type === 'radio') {\n const option = filter.options.find(o => o.value === value)\n return option ? `(${option.label})` : ''\n }\n \n return ''\n}\n\nconst applyFilter = (filterValue) => {\n selected.value[filterValue] = tempSelected[filterValue]\n individualPopups[filterValue] = false\n emit('select', { filter: filterValue, value: tempSelected[filterValue] })\n}\n\nconst cancelFilter = (filterValue) => {\n const filter = filters.value.find(f => f.value === filterValue)\n if (filter) {\n if (filter.type === 'checkbox') {\n tempSelected[filterValue] = [...(selected.value[filterValue] || [])]\n } else if (filter.type === 'range') {\n tempSelected[filterValue] = { ...(selected.value[filterValue] || { min: '', max: '' }) }\n } else if (filter.type === 'date') {\n tempSelected[filterValue] = selected.value[filterValue] || null\n } else {\n tempSelected[filterValue] = selected.value[filterValue] || null\n }\n }\n individualPopups[filterValue] = false\n}\n\nconst applyAllFilters = () => {\n Object.entries(tempSelected).forEach(([key, value]) => {\n if (selected.value[key] !== value) {\n selected.value[key] = value\n emit('select', { filter: key, value })\n }\n })\n showAllFilters.value = false\n}\n\nconst resetFilters = () => {\n filters.value.forEach(filter => {\n if (filter.type === 'checkbox') {\n tempSelected[filter.value] = []\n selected.value[filter.value] = []\n } else if (filter.type === 'range') {\n tempSelected[filter.value] = { min: '', max: '' }\n selected.value[filter.value] = { min: '', max: '' }\n } else if (filter.type === 'date') {\n tempSelected[filter.value] = null\n selected.value[filter.value] = null\n } else {\n tempSelected[filter.value] = null\n selected.value[filter.value] = null\n }\n emit('select', { filter: filter.value, value: null })\n })\n}\n</script>\n\n<style scoped>\n.filters-content {\n max-height: 60vh;\n overflow-y: auto;\n}\n</style>"],"names":["_useModel","useGlobalMixins","ref","reactive","watch","computed"],"mappings":"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"}
@@ -6,7 +6,7 @@ import Field from "../../../../../components/Field/Field.vue.js";
6
6
  import Calendar from "../../../../../components/Calendar/Calendar.vue2.js";
7
7
  import _sfc_main$1 from "../../../../icons/navigation/IconFilter.vue.js";
8
8
  import _sfc_main$2 from "../../../../icons/entities/IconCalendar.vue.js";
9
- /* empty css */
9
+ /* empty css */
10
10
  import _export_sfc from "../../../../../../../_virtual/_plugin-vue_export-helper.js";
11
11
  const _hoisted_1 = { class: "flex t-nowrap gap-thin" };
12
12
  const _hoisted_2 = { key: 0 };
@@ -382,4 +382,4 @@ const Filters = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-c3
382
382
  export {
383
383
  Filters as default
384
384
  };
385
- //# sourceMappingURL=Filters.vue.js.map
385
+ //# sourceMappingURL=Filters.vue2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Filters.vue.cjs","sources":["../../../../../../../../src/modules/globals/views/components/sections/Filters.vue"],"sourcesContent":["<template>\n <div class=\"flex t-nowrap gap-thin\">\n <!-- All Filters Button -->\n <button\n @click=\"showAllFilters = true\"\n class=\"pd-small radius-medium bg-light flex-v-center flex gap-micro cursor-pointer\"\n :class=\"{ 'bg-main': activeFiltersCount > 0 }\"\n >\n <IconFilter class=\"i-medium\" />\n <span class=\"h-1r\"></span>\n <span v-if=\"activeFiltersCount\">{{ activeFiltersCount }}</span>\n </button>\n\n <!-- Individual Filter Buttons -->\n <button\n v-for=\"filter in filters\"\n :key=\"filter.value\"\n @click=\"openFilter(filter.value)\"\n class=\"pd-small radius-medium bg-light cursor-pointer flex-v-center flex gap-micro\"\n :class=\"{ 'selected bg-main': isFilterActive(filter) }\"\n >\n <IconCalendar v-if=\"filter.type === 'date'\" class=\"mn-r-micro i-medium\" />\n <span class=\"t-nowrap\">{{ filter.type === 'date' && getFilterValue(filter) ? formatFilterValue(filter) : filter.title }}</span>\n <span v-if=\"getFilterValue(filter) && filter.type !== 'date'\" class=\"mn-l-micro\">\n {{ formatFilterValue(filter) }}\n </span>\n </button>\n\n <!-- All Filters Popup -->\n <Popup\n :isPopupOpen=\"showAllFilters\"\n @close-popup=\"showAllFilters = false\"\n :align=\"isPhone() ? 'bottom center' : 'center center'\"\n class=\"w-min-20r bg-white radius-medium mobile:radius-zero mobile:radius-tr-medium mobile:radius-tl-medium mobile:w-100 pd-medium\"\n >\n <div class=\"flex-v-center flex-nowrap flex mn-b-medium\">\n <h3 class=\"flex-child-full\">Filters</h3>\n </div>\n\n <div class=\"filters-content\">\n <div \n v-for=\"filter in filters\" \n :key=\"filter.value\"\n class=\"mn-b-medium\"\n >\n <h4 class=\"mn-b-small\">{{ filter.title }}</h4>\n \n <!-- Checkbox Filter -->\n <div v-if=\"filter.type === 'checkbox'\">\n <Checkbox\n v-for=\"option in filter.options\"\n :key=\"option.value\"\n :label=\"option.label\"\n :value=\"option.value\"\n v-model:radio=\"tempSelected[filter.value]\"\n mode=\"checkbox\"\n class=\"mn-b-micro\"\n />\n </div>\n\n <!-- Radio Filter -->\n <div v-else-if=\"filter.type === 'radio'\">\n <div\n v-for=\"option in filter.options\"\n :key=\"option.value\"\n @click=\"tempSelected[filter.value] = option.value\"\n class=\"pd-small radius-small cursor-pointer mn-b-micro\"\n :class=\"{ \n 'bg-main': tempSelected[filter.value] === option.value,\n 'bg-light': tempSelected[filter.value] !== option.value\n }\"\n >\n {{ option.label }}\n </div>\n </div>\n\n <!-- Range Filter -->\n <div v-else-if=\"filter.type === 'range'\" class=\"flex gap-thin\">\n <Field\n v-model:field=\"tempSelected[filter.value].min\"\n :placeholder=\"filter.minPlaceholder || 'Min'\"\n type=\"number\"\n :label=\"returnCurrency()\"\n class=\"w-50 bg-light pd-small radius-small\"\n />\n <Field\n v-model:field=\"tempSelected[filter.value].max\"\n :placeholder=\"filter.maxPlaceholder || 'Max'\"\n type=\"number\"\n :label=\"returnCurrency()\"\n class=\"w-50 bg-light pd-small radius-small\"\n />\n </div>\n\n <!-- Date Filter -->\n <div v-else-if=\"filter.type === 'date'\">\n <Calendar\n v-model:date=\"tempSelected[filter.value]\"\n :allowRange=\"true\"\n :disablePastDates=\"true\"\n class=\"bg-light radius-small\"\n />\n </div>\n </div>\n </div>\n\n <div class=\"flex gap-thin mn-t-medium\">\n <button \n @click=\"applyAllFilters\" \n class=\"button bg-main flex-child-full\"\n >\n Apply\n </button>\n <button \n @click=\"resetFilters\" \n class=\"button bg-light\"\n >\n Reset Filters\n </button>\n </div>\n </Popup>\n\n <!-- Individual Filter Popups -->\n <Popup\n v-for=\"filter in filters\"\n :key=\"`popup-${filter.value}`\"\n :isPopupOpen=\"individualPopups[filter.value]\"\n @close-popup=\"individualPopups[filter.value] = false\"\n :align=\"isPhone() ? 'bottom center' : 'center center'\"\n class=\"bg-white radius-medium mobile:radius-zero mobile:radius-tr-medium mobile:radius-tl-medium mobile:w-100 pd-medium\"\n >\n <h4 class=\"mn-b-medium\">{{ filter.title }}</h4>\n \n <!-- Checkbox Filter -->\n <div v-if=\"filter.type === 'checkbox'\">\n <Checkbox\n v-for=\"option in filter.options\"\n :key=\"option.value\"\n :label=\"option.label\"\n :value=\"option.value\"\n v-model:radio=\"tempSelected[filter.value]\"\n mode=\"checkbox\"\n class=\"mn-b-micro\"\n />\n </div>\n\n <!-- Radio Filter -->\n <div v-else-if=\"filter.type === 'radio'\">\n <div\n v-for=\"option in filter.options\"\n :key=\"option.value\"\n @click=\"tempSelected[filter.value] = option.value\"\n class=\"pd-small radius-small cursor-pointer mn-b-micro\"\n :class=\"{ \n 'bg-main': tempSelected[filter.value] === option.value,\n 'bg-light': tempSelected[filter.value] !== option.value\n }\"\n >\n {{ option.label }}\n </div>\n </div>\n\n <!-- Range Filter -->\n <div v-else-if=\"filter.type === 'range'\" class=\"flex gap-thin\">\n <Field\n v-model:field=\"tempSelected[filter.value].min\"\n :placeholder=\"filter.minPlaceholder || 'Min'\"\n type=\"number\"\n :label=\"returnCurrency()\"\n class=\"w-50 bg-light pd-small radius-small\"\n />\n <Field\n v-model:field=\"tempSelected[filter.value].max\"\n :placeholder=\"filter.maxPlaceholder || 'Max'\"\n type=\"number\"\n :label=\"returnCurrency()\"\n class=\"w-50 bg-light pd-small radius-small\"\n />\n </div>\n\n <!-- Date Filter -->\n <div v-else-if=\"filter.type === 'date'\">\n <div class=\"mn-t-small\">\n <Calendar\n v-model:date=\"tempSelected[filter.value]\"\n :allowRange=\"true\"\n :disablePastDates=\"true\"\n class=\"bg-light radius-small\"\n />\n </div>\n </div>\n\n <div class=\"flex gap-thin mn-t-medium\">\n <button \n @click=\"cancelFilter(filter.value)\" \n class=\"bg-light button flex-child-full\"\n >\n Cancel\n </button>\n <button \n @click=\"applyFilter(filter.value)\" \n class=\"bg-main w-100 button flex-child-full\"\n >\n Apply\n </button>\n \n \n </div>\n </Popup>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed, reactive, watch } from 'vue'\nimport { useGlobalMixins } from '@martyrs/src/modules/globals/views/mixins/mixins.js'\nimport Popup from '@martyrs/src/components/Popup/Popup.vue'\nimport Checkbox from '@martyrs/src/components/Checkbox/Checkbox.vue'\nimport Field from '@martyrs/src/components/Field/Field.vue'\nimport Calendar from '@martyrs/src/components/Calendar/Calendar.vue'\nimport IconFilter from '@martyrs/src/modules/icons/navigation/IconFilter.vue'\nimport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue'\nimport IconCalendar from '@martyrs/src/modules/icons/entities/IconCalendar.vue'\n\nconst filters = defineModel('filters', {\n type: Array,\n required: true\n})\n\nconst selected = defineModel('selected', {\n type: Object,\n default: () => ({})\n})\n\nconst emit = defineEmits(['select'])\n\nconst { formatDate } = useGlobalMixins()\n\n// State\nconst showAllFilters = ref(false)\nconst individualPopups = reactive({})\nconst tempSelected = reactive({})\nconst tempDateRange = ref(null)\n\n// Initialize popups and temp values\nwatch(filters, (newFilters) => {\n newFilters.forEach(filter => {\n individualPopups[filter.value] = false\n \n if (!tempSelected[filter.value]) {\n if (filter.type === 'checkbox') {\n tempSelected[filter.value] = [...(selected.value[filter.value] || [])]\n } else if (filter.type === 'range') {\n tempSelected[filter.value] = { ...(selected.value[filter.value] || { min: '', max: '' }) }\n } else if (filter.type === 'date') {\n tempSelected[filter.value] = selected.value[filter.value] || null\n } else {\n tempSelected[filter.value] = selected.value[filter.value] || null\n }\n }\n })\n}, { immediate: true, deep: true })\n\n// Sync selected to tempSelected\nwatch(selected, (newSelected) => {\n Object.keys(newSelected).forEach(key => {\n const filter = filters.value.find(f => f.value === key)\n if (filter) {\n if (filter.type === 'checkbox') {\n tempSelected[key] = [...(newSelected[key] || [])]\n } else if (filter.type === 'range') {\n tempSelected[key] = { ...(newSelected[key] || { min: '', max: '' }) }\n } else {\n tempSelected[key] = newSelected[key]\n }\n }\n })\n}, { deep: true })\n\n// Computed\nconst activeFiltersCount = computed(() => {\n return Object.entries(selected.value).filter(([key, value]) => {\n if (Array.isArray(value)) return value.length > 0\n if (typeof value === 'object' && value !== null) {\n return value.min || value.max\n }\n return value !== null && value !== undefined\n }).length\n})\n\n// Methods\nconst openFilter = (filterValue) => {\n individualPopups[filterValue] = true\n}\n\nconst isFilterActive = (filter) => {\n const value = selected.value[filter.value]\n if (!value) return false\n if (Array.isArray(value)) return value.length > 0\n if (filter.type === 'range') return value.min || value.max\n return true\n}\n\nconst getFilterValue = (filter) => {\n const value = selected.value[filter.value]\n if (!value) return false\n \n if (filter.type === 'range') {\n return value.min || value.max\n }\n \n if (filter.type === 'date') {\n return value && value.start && value.end\n }\n \n if (Array.isArray(value)) {\n return value.length > 0\n }\n \n return value\n}\n\nconst formatFilterValue = (filter) => {\n const value = selected.value[filter.value]\n if (!value) return ''\n \n if (Array.isArray(value)) {\n return `(${value.length})`\n }\n \n if (filter.type === 'range') {\n if (!value.min && !value.max) return ''\n return `${value.min || '0'}-${value.max || '∞'}`\n }\n \n if (filter.type === 'date') {\n if (!value || !value.start || !value.end) return ''\n return `${formatDate(value.start, { dayMonth: true, language: 'en' })} - ${formatDate(value.end, { dayMonth: true, language: 'en' })}`\n }\n \n if (filter.type === 'radio') {\n const option = filter.options.find(o => o.value === value)\n return option ? `(${option.label})` : ''\n }\n \n return ''\n}\n\nconst applyFilter = (filterValue) => {\n selected.value[filterValue] = tempSelected[filterValue]\n individualPopups[filterValue] = false\n emit('select', { filter: filterValue, value: tempSelected[filterValue] })\n}\n\nconst cancelFilter = (filterValue) => {\n const filter = filters.value.find(f => f.value === filterValue)\n if (filter) {\n if (filter.type === 'checkbox') {\n tempSelected[filterValue] = [...(selected.value[filterValue] || [])]\n } else if (filter.type === 'range') {\n tempSelected[filterValue] = { ...(selected.value[filterValue] || { min: '', max: '' }) }\n } else if (filter.type === 'date') {\n tempSelected[filterValue] = selected.value[filterValue] || null\n } else {\n tempSelected[filterValue] = selected.value[filterValue] || null\n }\n }\n individualPopups[filterValue] = false\n}\n\nconst applyAllFilters = () => {\n Object.entries(tempSelected).forEach(([key, value]) => {\n if (selected.value[key] !== value) {\n selected.value[key] = value\n emit('select', { filter: key, value })\n }\n })\n showAllFilters.value = false\n}\n\nconst resetFilters = () => {\n filters.value.forEach(filter => {\n if (filter.type === 'checkbox') {\n tempSelected[filter.value] = []\n selected.value[filter.value] = []\n } else if (filter.type === 'range') {\n tempSelected[filter.value] = { min: '', max: '' }\n selected.value[filter.value] = { min: '', max: '' }\n } else if (filter.type === 'date') {\n tempSelected[filter.value] = null\n selected.value[filter.value] = null\n } else {\n tempSelected[filter.value] = null\n selected.value[filter.value] = null\n }\n emit('select', { filter: filter.value, value: null })\n })\n}\n</script>\n\n<style scoped>\n.filters-content {\n max-height: 60vh;\n overflow-y: auto;\n}\n</style>"],"names":["_useModel","useGlobalMixins","ref","reactive","watch","computed"],"mappings":"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"}
1
+ {"version":3,"file":"Filters.vue2.js","sources":["../../../../../../../../src/modules/globals/views/components/sections/Filters.vue"],"sourcesContent":["<template>\n <div class=\"flex t-nowrap gap-thin\">\n <!-- All Filters Button -->\n <button\n @click=\"showAllFilters = true\"\n class=\"pd-small radius-medium bg-light flex-v-center flex gap-micro cursor-pointer\"\n :class=\"{ 'bg-main': activeFiltersCount > 0 }\"\n >\n <IconFilter class=\"i-medium\" />\n <span class=\"h-1r\"></span>\n <span v-if=\"activeFiltersCount\">{{ activeFiltersCount }}</span>\n </button>\n\n <!-- Individual Filter Buttons -->\n <button\n v-for=\"filter in filters\"\n :key=\"filter.value\"\n @click=\"openFilter(filter.value)\"\n class=\"pd-small radius-medium bg-light cursor-pointer flex-v-center flex gap-micro\"\n :class=\"{ 'selected bg-main': isFilterActive(filter) }\"\n >\n <IconCalendar v-if=\"filter.type === 'date'\" class=\"mn-r-micro i-medium\" />\n <span class=\"t-nowrap\">{{ filter.type === 'date' && getFilterValue(filter) ? formatFilterValue(filter) : filter.title }}</span>\n <span v-if=\"getFilterValue(filter) && filter.type !== 'date'\" class=\"mn-l-micro\">\n {{ formatFilterValue(filter) }}\n </span>\n </button>\n\n <!-- All Filters Popup -->\n <Popup\n :isPopupOpen=\"showAllFilters\"\n @close-popup=\"showAllFilters = false\"\n :align=\"isPhone() ? 'bottom center' : 'center center'\"\n class=\"w-min-20r bg-white radius-medium mobile:radius-zero mobile:radius-tr-medium mobile:radius-tl-medium mobile:w-100 pd-medium\"\n >\n <div class=\"flex-v-center flex-nowrap flex mn-b-medium\">\n <h3 class=\"flex-child-full\">Filters</h3>\n </div>\n\n <div class=\"filters-content\">\n <div \n v-for=\"filter in filters\" \n :key=\"filter.value\"\n class=\"mn-b-medium\"\n >\n <h4 class=\"mn-b-small\">{{ filter.title }}</h4>\n \n <!-- Checkbox Filter -->\n <div v-if=\"filter.type === 'checkbox'\">\n <Checkbox\n v-for=\"option in filter.options\"\n :key=\"option.value\"\n :label=\"option.label\"\n :value=\"option.value\"\n v-model:radio=\"tempSelected[filter.value]\"\n mode=\"checkbox\"\n class=\"mn-b-micro\"\n />\n </div>\n\n <!-- Radio Filter -->\n <div v-else-if=\"filter.type === 'radio'\">\n <div\n v-for=\"option in filter.options\"\n :key=\"option.value\"\n @click=\"tempSelected[filter.value] = option.value\"\n class=\"pd-small radius-small cursor-pointer mn-b-micro\"\n :class=\"{ \n 'bg-main': tempSelected[filter.value] === option.value,\n 'bg-light': tempSelected[filter.value] !== option.value\n }\"\n >\n {{ option.label }}\n </div>\n </div>\n\n <!-- Range Filter -->\n <div v-else-if=\"filter.type === 'range'\" class=\"flex gap-thin\">\n <Field\n v-model:field=\"tempSelected[filter.value].min\"\n :placeholder=\"filter.minPlaceholder || 'Min'\"\n type=\"number\"\n :label=\"returnCurrency()\"\n class=\"w-50 bg-light pd-small radius-small\"\n />\n <Field\n v-model:field=\"tempSelected[filter.value].max\"\n :placeholder=\"filter.maxPlaceholder || 'Max'\"\n type=\"number\"\n :label=\"returnCurrency()\"\n class=\"w-50 bg-light pd-small radius-small\"\n />\n </div>\n\n <!-- Date Filter -->\n <div v-else-if=\"filter.type === 'date'\">\n <Calendar\n v-model:date=\"tempSelected[filter.value]\"\n :allowRange=\"true\"\n :disablePastDates=\"true\"\n class=\"bg-light radius-small\"\n />\n </div>\n </div>\n </div>\n\n <div class=\"flex gap-thin mn-t-medium\">\n <button \n @click=\"applyAllFilters\" \n class=\"button bg-main flex-child-full\"\n >\n Apply\n </button>\n <button \n @click=\"resetFilters\" \n class=\"button bg-light\"\n >\n Reset Filters\n </button>\n </div>\n </Popup>\n\n <!-- Individual Filter Popups -->\n <Popup\n v-for=\"filter in filters\"\n :key=\"`popup-${filter.value}`\"\n :isPopupOpen=\"individualPopups[filter.value]\"\n @close-popup=\"individualPopups[filter.value] = false\"\n :align=\"isPhone() ? 'bottom center' : 'center center'\"\n class=\"bg-white radius-medium mobile:radius-zero mobile:radius-tr-medium mobile:radius-tl-medium mobile:w-100 pd-medium\"\n >\n <h4 class=\"mn-b-medium\">{{ filter.title }}</h4>\n \n <!-- Checkbox Filter -->\n <div v-if=\"filter.type === 'checkbox'\">\n <Checkbox\n v-for=\"option in filter.options\"\n :key=\"option.value\"\n :label=\"option.label\"\n :value=\"option.value\"\n v-model:radio=\"tempSelected[filter.value]\"\n mode=\"checkbox\"\n class=\"mn-b-micro\"\n />\n </div>\n\n <!-- Radio Filter -->\n <div v-else-if=\"filter.type === 'radio'\">\n <div\n v-for=\"option in filter.options\"\n :key=\"option.value\"\n @click=\"tempSelected[filter.value] = option.value\"\n class=\"pd-small radius-small cursor-pointer mn-b-micro\"\n :class=\"{ \n 'bg-main': tempSelected[filter.value] === option.value,\n 'bg-light': tempSelected[filter.value] !== option.value\n }\"\n >\n {{ option.label }}\n </div>\n </div>\n\n <!-- Range Filter -->\n <div v-else-if=\"filter.type === 'range'\" class=\"flex gap-thin\">\n <Field\n v-model:field=\"tempSelected[filter.value].min\"\n :placeholder=\"filter.minPlaceholder || 'Min'\"\n type=\"number\"\n :label=\"returnCurrency()\"\n class=\"w-50 bg-light pd-small radius-small\"\n />\n <Field\n v-model:field=\"tempSelected[filter.value].max\"\n :placeholder=\"filter.maxPlaceholder || 'Max'\"\n type=\"number\"\n :label=\"returnCurrency()\"\n class=\"w-50 bg-light pd-small radius-small\"\n />\n </div>\n\n <!-- Date Filter -->\n <div v-else-if=\"filter.type === 'date'\">\n <div class=\"mn-t-small\">\n <Calendar\n v-model:date=\"tempSelected[filter.value]\"\n :allowRange=\"true\"\n :disablePastDates=\"true\"\n class=\"bg-light radius-small\"\n />\n </div>\n </div>\n\n <div class=\"flex gap-thin mn-t-medium\">\n <button \n @click=\"cancelFilter(filter.value)\" \n class=\"bg-light button flex-child-full\"\n >\n Cancel\n </button>\n <button \n @click=\"applyFilter(filter.value)\" \n class=\"bg-main w-100 button flex-child-full\"\n >\n Apply\n </button>\n \n \n </div>\n </Popup>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed, reactive, watch } from 'vue'\nimport { useGlobalMixins } from '@martyrs/src/modules/globals/views/mixins/mixins.js'\nimport Popup from '@martyrs/src/components/Popup/Popup.vue'\nimport Checkbox from '@martyrs/src/components/Checkbox/Checkbox.vue'\nimport Field from '@martyrs/src/components/Field/Field.vue'\nimport Calendar from '@martyrs/src/components/Calendar/Calendar.vue'\nimport IconFilter from '@martyrs/src/modules/icons/navigation/IconFilter.vue'\nimport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue'\nimport IconCalendar from '@martyrs/src/modules/icons/entities/IconCalendar.vue'\n\nconst filters = defineModel('filters', {\n type: Array,\n required: true\n})\n\nconst selected = defineModel('selected', {\n type: Object,\n default: () => ({})\n})\n\nconst emit = defineEmits(['select'])\n\nconst { formatDate } = useGlobalMixins()\n\n// State\nconst showAllFilters = ref(false)\nconst individualPopups = reactive({})\nconst tempSelected = reactive({})\nconst tempDateRange = ref(null)\n\n// Initialize popups and temp values\nwatch(filters, (newFilters) => {\n newFilters.forEach(filter => {\n individualPopups[filter.value] = false\n \n if (!tempSelected[filter.value]) {\n if (filter.type === 'checkbox') {\n tempSelected[filter.value] = [...(selected.value[filter.value] || [])]\n } else if (filter.type === 'range') {\n tempSelected[filter.value] = { ...(selected.value[filter.value] || { min: '', max: '' }) }\n } else if (filter.type === 'date') {\n tempSelected[filter.value] = selected.value[filter.value] || null\n } else {\n tempSelected[filter.value] = selected.value[filter.value] || null\n }\n }\n })\n}, { immediate: true, deep: true })\n\n// Sync selected to tempSelected\nwatch(selected, (newSelected) => {\n Object.keys(newSelected).forEach(key => {\n const filter = filters.value.find(f => f.value === key)\n if (filter) {\n if (filter.type === 'checkbox') {\n tempSelected[key] = [...(newSelected[key] || [])]\n } else if (filter.type === 'range') {\n tempSelected[key] = { ...(newSelected[key] || { min: '', max: '' }) }\n } else {\n tempSelected[key] = newSelected[key]\n }\n }\n })\n}, { deep: true })\n\n// Computed\nconst activeFiltersCount = computed(() => {\n return Object.entries(selected.value).filter(([key, value]) => {\n if (Array.isArray(value)) return value.length > 0\n if (typeof value === 'object' && value !== null) {\n return value.min || value.max\n }\n return value !== null && value !== undefined\n }).length\n})\n\n// Methods\nconst openFilter = (filterValue) => {\n individualPopups[filterValue] = true\n}\n\nconst isFilterActive = (filter) => {\n const value = selected.value[filter.value]\n if (!value) return false\n if (Array.isArray(value)) return value.length > 0\n if (filter.type === 'range') return value.min || value.max\n return true\n}\n\nconst getFilterValue = (filter) => {\n const value = selected.value[filter.value]\n if (!value) return false\n \n if (filter.type === 'range') {\n return value.min || value.max\n }\n \n if (filter.type === 'date') {\n return value && value.start && value.end\n }\n \n if (Array.isArray(value)) {\n return value.length > 0\n }\n \n return value\n}\n\nconst formatFilterValue = (filter) => {\n const value = selected.value[filter.value]\n if (!value) return ''\n \n if (Array.isArray(value)) {\n return `(${value.length})`\n }\n \n if (filter.type === 'range') {\n if (!value.min && !value.max) return ''\n return `${value.min || '0'}-${value.max || '∞'}`\n }\n \n if (filter.type === 'date') {\n if (!value || !value.start || !value.end) return ''\n return `${formatDate(value.start, { dayMonth: true, language: 'en' })} - ${formatDate(value.end, { dayMonth: true, language: 'en' })}`\n }\n \n if (filter.type === 'radio') {\n const option = filter.options.find(o => o.value === value)\n return option ? `(${option.label})` : ''\n }\n \n return ''\n}\n\nconst applyFilter = (filterValue) => {\n selected.value[filterValue] = tempSelected[filterValue]\n individualPopups[filterValue] = false\n emit('select', { filter: filterValue, value: tempSelected[filterValue] })\n}\n\nconst cancelFilter = (filterValue) => {\n const filter = filters.value.find(f => f.value === filterValue)\n if (filter) {\n if (filter.type === 'checkbox') {\n tempSelected[filterValue] = [...(selected.value[filterValue] || [])]\n } else if (filter.type === 'range') {\n tempSelected[filterValue] = { ...(selected.value[filterValue] || { min: '', max: '' }) }\n } else if (filter.type === 'date') {\n tempSelected[filterValue] = selected.value[filterValue] || null\n } else {\n tempSelected[filterValue] = selected.value[filterValue] || null\n }\n }\n individualPopups[filterValue] = false\n}\n\nconst applyAllFilters = () => {\n Object.entries(tempSelected).forEach(([key, value]) => {\n if (selected.value[key] !== value) {\n selected.value[key] = value\n emit('select', { filter: key, value })\n }\n })\n showAllFilters.value = false\n}\n\nconst resetFilters = () => {\n filters.value.forEach(filter => {\n if (filter.type === 'checkbox') {\n tempSelected[filter.value] = []\n selected.value[filter.value] = []\n } else if (filter.type === 'range') {\n tempSelected[filter.value] = { min: '', max: '' }\n selected.value[filter.value] = { min: '', max: '' }\n } else if (filter.type === 'date') {\n tempSelected[filter.value] = null\n selected.value[filter.value] = null\n } else {\n tempSelected[filter.value] = null\n selected.value[filter.value] = null\n }\n emit('select', { filter: filter.value, value: null })\n })\n}\n</script>\n\n<style scoped>\n.filters-content {\n max-height: 60vh;\n overflow-y: auto;\n}\n</style>"],"names":["_useModel"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
- const Tab = require("../../../../../components/Tab/Tab.vue.cjs");
4
+ const Tab = require("../../../../../components/Tab/Tab.vue2.cjs");
5
5
  const _hoisted_1 = { class: "flex-v-center flex-nowrap flex" };
6
6
  const _hoisted_2 = { class: "h2 mn-r-auto" };
7
7
  const _hoisted_3 = ["onClick"];
@@ -1,5 +1,5 @@
1
1
  import { resolveComponent, createElementBlock, openBlock, createElementVNode, createBlock, createCommentVNode, toDisplayString, Fragment, renderList, normalizeClass, withCtx, createTextVNode } from "vue";
2
- import _sfc_main$1 from "../../../../../components/Tab/Tab.vue.js";
2
+ import _sfc_main$1 from "../../../../../components/Tab/Tab.vue2.js";
3
3
  const _hoisted_1 = { class: "flex-v-center flex-nowrap flex" };
4
4
  const _hoisted_2 = { class: "h2 mn-r-auto" };
5
5
  const _hoisted_3 = ["onClick"];
@@ -10,7 +10,7 @@ const index$1 = require("../../../../../../node_modules/.pnpm/@capacitor_prefere
10
10
  ;/* empty css */
11
11
  ;/* empty css */
12
12
  ;/* empty css */
13
- ;/* empty css */
13
+ ;/* empty css */
14
14
  ;/* empty css */
15
15
  ;/* empty css */
16
16
  ;/* empty css */
@@ -8,7 +8,7 @@ import { Preferences } from "../../../../../../node_modules/.pnpm/@capacitor_pre
8
8
  /* empty css */
9
9
  /* empty css */
10
10
  /* empty css */
11
- /* empty css */
11
+ /* empty css */
12
12
  /* empty css */
13
13
  /* empty css */
14
14
  /* empty css */
@@ -133,9 +133,13 @@ function setError(error) {
133
133
  state.error.message = errorData.message || error.message || "Unknown error";
134
134
  }
135
135
  state.error.show = true;
136
- requestAnimationFrame(() => {
136
+ if (typeof window !== "undefined" && window.requestAnimationFrame) {
137
+ requestAnimationFrame(() => {
138
+ setTimeout(() => state.error.show = false, 5e3);
139
+ });
140
+ } else {
137
141
  setTimeout(() => state.error.show = false, 5e3);
138
- });
142
+ }
139
143
  }
140
144
  function setSnack(data) {
141
145
  let type = "notification";
@@ -161,11 +165,17 @@ function setSnack(data) {
161
165
  message,
162
166
  duration
163
167
  };
164
- requestAnimationFrame(() => {
168
+ if (typeof window !== "undefined" && window.requestAnimationFrame) {
169
+ requestAnimationFrame(() => {
170
+ setTimeout(() => {
171
+ state.snack.show = false;
172
+ }, duration);
173
+ });
174
+ } else {
165
175
  setTimeout(() => {
166
176
  state.snack.show = false;
167
177
  }, duration);
168
- });
178
+ }
169
179
  }
170
180
  function invertColors(variableNames, originalColors) {
171
181
  variableNames.forEach((variableName) => {
@@ -1 +1 @@
1
- {"version":3,"file":"globals.cjs","sources":["../../../../../../../src/modules/globals/views/store/globals.js"],"sourcesContent":["// Vue modules\nimport { Preferences } from '@capacitor/preferences';\nimport { reactive } from 'vue';\n\n// import i18n from \"@/localization.js\";\n\n// State\nconst state = reactive({\n loading: false,\n\n isOpenLocationPopup: false,\n isOpenSidebar: false,\n\n position: null,\n search: null,\n\n theme: {\n darkmode: false,\n },\n\n navigation_bar: {\n name: null,\n actions: null,\n },\n\n error: {\n status: '',\n headers: '',\n data: '',\n show: false,\n name: '',\n message: '',\n },\n snack: {\n show: false,\n type: 'notification',\n message: '',\n duration: 3000\n }\n});\n\n// Actions\nconst actions = {\n setLoading(status) {\n state.loading = status;\n },\n\n // Black/White Theme\n async setTheme(isDarkMode) {\n // Cache root element\n if (!state.theme.rootElement) {\n state.theme.rootElement = document.documentElement;\n }\n const root = state.theme.rootElement;\n\n state.theme.darkmode = isDarkMode;\n\n await Preferences.set({\n key: 'darkmode',\n value: JSON.stringify(state.theme.darkmode),\n });\n\n if (isDarkMode) {\n root.classList.add('dark-theme');\n } else {\n root.classList.remove('dark-theme');\n }\n\n const variableNames = ['--white', '--light', '--grey', '--dark', '--black'];\n\n // Проверяем, сохранены ли оригинальные цвета\n if (!state.theme.originalColors) {\n // Сохраняем оригинальные цвета один раз\n state.theme.originalColors = {};\n const computedStyle = getComputedStyle(root);\n variableNames.forEach(variableName => {\n state.theme.originalColors[variableName] = computedStyle.getPropertyValue(variableName).trim();\n });\n }\n\n if (isDarkMode) {\n invertColors(variableNames, state.theme.originalColors);\n } else {\n // Восстанавливаем оригинальные цвета батчем\n variableNames.forEach(variableName => {\n root.style.setProperty(variableName, state.theme.originalColors[variableName]);\n });\n }\n },\n\n toggleTheme() {\n this.setTheme(!state.theme.darkmode);\n },\n\n add(array, item) {\n const existingItemIndex = array.findIndex(i => i._id === item._id);\n\n if (existingItemIndex === -1) {\n array.push(item);\n } else {\n array[existingItemIndex] = item;\n }\n },\n\n update(array, item) {\n const existingItemIndex = array.findIndex(i => i._id === item._id);\n if (existingItemIndex === -1) {\n // If the item doesn't exist, push it to the array\n array.push(item);\n } else {\n // Update the item in the array without creating a new array\n Object.assign(array[existingItemIndex], item);\n }\n },\n\n delete(array, item) {\n const existingItemIndex = array.findIndex(c => c._id === item._id);\n\n if (existingItemIndex !== -1) {\n array.splice(existingItemIndex, 1);\n }\n },\n\n increment(array, item) {\n console.log(array);\n console.log(item);\n const arrayItem = array.find(i => i._id === item._id);\n\n if (arrayItem) {\n arrayItem.quantity++;\n }\n },\n\n decrement(array, item) {\n const arrayItem = array.find(i => i._id === item._id);\n\n const arrayItemIndex = array.indexOf(arrayItem);\n\n if (arrayItemIndex > -1) {\n arrayItem.quantity--;\n\n if (arrayItem.quantity < 1) array.splice(arrayItemIndex, 1);\n }\n },\n\n reset(array) {\n array = [];\n },\n};\n\n// Mutations\nfunction setError(error) {\n state.error.show = true;\n let errorData;\n\n errorData = error;\n\n // Обработка ошибок из fetch API (Store class)\n if (error?.info) errorData = error.info;\n \n // Обработка ошибок из axios\n if (error?.response?.data) errorData = error.response.data;\n\n // Обработка ошибок верификации\n if (errorData?.error === 'VALIDATION_ERROR' && errorData?.errors) {\n // Собираем все сообщения об ошибках в одну строку\n const errorMessages = [];\n for (const field in errorData.errors) {\n const fieldErrors = errorData.errors[field];\n if (Array.isArray(fieldErrors)) {\n errorMessages.push(...fieldErrors);\n } else if (typeof fieldErrors === 'string') {\n errorMessages.push(fieldErrors);\n }\n }\n state.error.message = errorMessages.join(', ') || 'Validation error';\n } else if (error && errorData.errorCode) {\n // state.error.message = i18n.global.t(`errors.${errorData.errorCode}`);\n state.error.message = errorData.errorCode;\n } else {\n state.error.message = errorData.message || error.message || 'Unknown error';\n }\n\n state.error.show = true;\n\n requestAnimationFrame(() => {\n setTimeout(() => (state.error.show = false), 5000);\n });\n}\n\nfunction setSnack(data) {\n // Handle different input formats\n let type = 'notification'\n let message = ''\n let duration = 3000\n\n if (typeof data === 'string') {\n message = data\n } else if (data instanceof Error) {\n type = 'error'\n message = data.message\n } else if (data?.response?.data) {\n // Handle API errors\n type = 'error'\n const errorData = data.response.data\n message = errorData.errorCode || errorData.message || 'Unknown error'\n } else if (typeof data === 'object') {\n type = data.type || 'notification'\n message = data.message || ''\n duration = data.duration || 3000\n }\n\n // Update state\n state.snack = {\n show: true,\n type,\n message,\n duration\n }\n\n // Auto-hide\n requestAnimationFrame(() => {\n setTimeout(() => {state.snack.show = false }, duration)\n });\n \n}\n\nfunction invertColors(variableNames, originalColors) {\n variableNames.forEach(variableName => {\n const baseColor = originalColors[variableName];\n const colorArray = baseColor.split(',').map(Number);\n\n let invertedColor;\n\n if (variableName === '--white') {\n invertedColor = colorArray.map(value => 255 - value / 1.075);\n } else if (variableName === '--black') {\n invertedColor = colorArray.map(value => 255 - value);\n } else if (variableName === '--grey') {\n invertedColor = colorArray.map(value => 255 - value * 2);\n } else {\n invertedColor = colorArray.map(value => 255 - value / 1.075);\n }\n // Устанавливаем новые значения переменных CSS\n document.documentElement.style.setProperty(variableName, state.theme.darkmode ? invertedColor.join(', ') : baseColor);\n });\n}\n\nexport { actions, setError, setSnack, state };\n"],"names":["reactive","Preferences"],"mappings":"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"}
1
+ {"version":3,"file":"globals.cjs","sources":["../../../../../../../src/modules/globals/views/store/globals.js"],"sourcesContent":["// Vue modules\nimport { Preferences } from '@capacitor/preferences';\nimport { reactive } from 'vue';\n\n// import i18n from \"@/localization.js\";\n\n// State\nconst state = reactive({\n loading: false,\n\n isOpenLocationPopup: false,\n isOpenSidebar: false,\n\n position: null,\n search: null,\n\n theme: {\n darkmode: false,\n },\n\n navigation_bar: {\n name: null,\n actions: null,\n },\n\n error: {\n status: '',\n headers: '',\n data: '',\n show: false,\n name: '',\n message: '',\n },\n snack: {\n show: false,\n type: 'notification',\n message: '',\n duration: 3000\n }\n});\n\n// Actions\nconst actions = {\n setLoading(status) {\n state.loading = status;\n },\n\n // Black/White Theme\n async setTheme(isDarkMode) {\n // Cache root element\n if (!state.theme.rootElement) {\n state.theme.rootElement = document.documentElement;\n }\n const root = state.theme.rootElement;\n\n state.theme.darkmode = isDarkMode;\n\n await Preferences.set({\n key: 'darkmode',\n value: JSON.stringify(state.theme.darkmode),\n });\n\n if (isDarkMode) {\n root.classList.add('dark-theme');\n } else {\n root.classList.remove('dark-theme');\n }\n\n const variableNames = ['--white', '--light', '--grey', '--dark', '--black'];\n\n // Проверяем, сохранены ли оригинальные цвета\n if (!state.theme.originalColors) {\n // Сохраняем оригинальные цвета один раз\n state.theme.originalColors = {};\n const computedStyle = getComputedStyle(root);\n variableNames.forEach(variableName => {\n state.theme.originalColors[variableName] = computedStyle.getPropertyValue(variableName).trim();\n });\n }\n\n if (isDarkMode) {\n invertColors(variableNames, state.theme.originalColors);\n } else {\n // Восстанавливаем оригинальные цвета батчем\n variableNames.forEach(variableName => {\n root.style.setProperty(variableName, state.theme.originalColors[variableName]);\n });\n }\n },\n\n toggleTheme() {\n this.setTheme(!state.theme.darkmode);\n },\n\n add(array, item) {\n const existingItemIndex = array.findIndex(i => i._id === item._id);\n\n if (existingItemIndex === -1) {\n array.push(item);\n } else {\n array[existingItemIndex] = item;\n }\n },\n\n update(array, item) {\n const existingItemIndex = array.findIndex(i => i._id === item._id);\n if (existingItemIndex === -1) {\n // If the item doesn't exist, push it to the array\n array.push(item);\n } else {\n // Update the item in the array without creating a new array\n Object.assign(array[existingItemIndex], item);\n }\n },\n\n delete(array, item) {\n const existingItemIndex = array.findIndex(c => c._id === item._id);\n\n if (existingItemIndex !== -1) {\n array.splice(existingItemIndex, 1);\n }\n },\n\n increment(array, item) {\n console.log(array);\n console.log(item);\n const arrayItem = array.find(i => i._id === item._id);\n\n if (arrayItem) {\n arrayItem.quantity++;\n }\n },\n\n decrement(array, item) {\n const arrayItem = array.find(i => i._id === item._id);\n\n const arrayItemIndex = array.indexOf(arrayItem);\n\n if (arrayItemIndex > -1) {\n arrayItem.quantity--;\n\n if (arrayItem.quantity < 1) array.splice(arrayItemIndex, 1);\n }\n },\n\n reset(array) {\n array = [];\n },\n};\n\n// Mutations\nfunction setError(error) {\n state.error.show = true;\n let errorData;\n\n errorData = error;\n\n // Обработка ошибок из fetch API (Store class)\n if (error?.info) errorData = error.info;\n \n // Обработка ошибок из axios\n if (error?.response?.data) errorData = error.response.data;\n\n // Обработка ошибок верификации\n if (errorData?.error === 'VALIDATION_ERROR' && errorData?.errors) {\n // Собираем все сообщения об ошибках в одну строку\n const errorMessages = [];\n for (const field in errorData.errors) {\n const fieldErrors = errorData.errors[field];\n if (Array.isArray(fieldErrors)) {\n errorMessages.push(...fieldErrors);\n } else if (typeof fieldErrors === 'string') {\n errorMessages.push(fieldErrors);\n }\n }\n state.error.message = errorMessages.join(', ') || 'Validation error';\n } else if (error && errorData.errorCode) {\n // state.error.message = i18n.global.t(`errors.${errorData.errorCode}`);\n state.error.message = errorData.errorCode;\n } else {\n state.error.message = errorData.message || error.message || 'Unknown error';\n }\n\n state.error.show = true;\n\n if (typeof window !== 'undefined' && window.requestAnimationFrame) {\n requestAnimationFrame(() => {\n setTimeout(() => (state.error.show = false), 5000);\n });\n } else {\n setTimeout(() => (state.error.show = false), 5000);\n }\n}\n\nfunction setSnack(data) {\n // Handle different input formats\n let type = 'notification'\n let message = ''\n let duration = 3000\n\n if (typeof data === 'string') {\n message = data\n } else if (data instanceof Error) {\n type = 'error'\n message = data.message\n } else if (data?.response?.data) {\n // Handle API errors\n type = 'error'\n const errorData = data.response.data\n message = errorData.errorCode || errorData.message || 'Unknown error'\n } else if (typeof data === 'object') {\n type = data.type || 'notification'\n message = data.message || ''\n duration = data.duration || 3000\n }\n\n // Update state\n state.snack = {\n show: true,\n type,\n message,\n duration\n }\n\n // Auto-hide\n if (typeof window !== 'undefined' && window.requestAnimationFrame) {\n requestAnimationFrame(() => {\n setTimeout(() => {state.snack.show = false }, duration)\n });\n } else {\n setTimeout(() => {state.snack.show = false }, duration)\n }\n \n}\n\nfunction invertColors(variableNames, originalColors) {\n variableNames.forEach(variableName => {\n const baseColor = originalColors[variableName];\n const colorArray = baseColor.split(',').map(Number);\n\n let invertedColor;\n\n if (variableName === '--white') {\n invertedColor = colorArray.map(value => 255 - value / 1.075);\n } else if (variableName === '--black') {\n invertedColor = colorArray.map(value => 255 - value);\n } else if (variableName === '--grey') {\n invertedColor = colorArray.map(value => 255 - value * 2);\n } else {\n invertedColor = colorArray.map(value => 255 - value / 1.075);\n }\n // Устанавливаем новые значения переменных CSS\n document.documentElement.style.setProperty(variableName, state.theme.darkmode ? invertedColor.join(', ') : baseColor);\n });\n}\n\nexport { actions, setError, setSnack, state };\n"],"names":["reactive","Preferences"],"mappings":"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"}
@@ -131,9 +131,13 @@ function setError(error) {
131
131
  state.error.message = errorData.message || error.message || "Unknown error";
132
132
  }
133
133
  state.error.show = true;
134
- requestAnimationFrame(() => {
134
+ if (typeof window !== "undefined" && window.requestAnimationFrame) {
135
+ requestAnimationFrame(() => {
136
+ setTimeout(() => state.error.show = false, 5e3);
137
+ });
138
+ } else {
135
139
  setTimeout(() => state.error.show = false, 5e3);
136
- });
140
+ }
137
141
  }
138
142
  function setSnack(data) {
139
143
  let type = "notification";
@@ -159,11 +163,17 @@ function setSnack(data) {
159
163
  message,
160
164
  duration
161
165
  };
162
- requestAnimationFrame(() => {
166
+ if (typeof window !== "undefined" && window.requestAnimationFrame) {
167
+ requestAnimationFrame(() => {
168
+ setTimeout(() => {
169
+ state.snack.show = false;
170
+ }, duration);
171
+ });
172
+ } else {
163
173
  setTimeout(() => {
164
174
  state.snack.show = false;
165
175
  }, duration);
166
- });
176
+ }
167
177
  }
168
178
  function invertColors(variableNames, originalColors) {
169
179
  variableNames.forEach((variableName) => {
@@ -1 +1 @@
1
- {"version":3,"file":"globals.js","sources":["../../../../../../../src/modules/globals/views/store/globals.js"],"sourcesContent":["// Vue modules\nimport { Preferences } from '@capacitor/preferences';\nimport { reactive } from 'vue';\n\n// import i18n from \"@/localization.js\";\n\n// State\nconst state = reactive({\n loading: false,\n\n isOpenLocationPopup: false,\n isOpenSidebar: false,\n\n position: null,\n search: null,\n\n theme: {\n darkmode: false,\n },\n\n navigation_bar: {\n name: null,\n actions: null,\n },\n\n error: {\n status: '',\n headers: '',\n data: '',\n show: false,\n name: '',\n message: '',\n },\n snack: {\n show: false,\n type: 'notification',\n message: '',\n duration: 3000\n }\n});\n\n// Actions\nconst actions = {\n setLoading(status) {\n state.loading = status;\n },\n\n // Black/White Theme\n async setTheme(isDarkMode) {\n // Cache root element\n if (!state.theme.rootElement) {\n state.theme.rootElement = document.documentElement;\n }\n const root = state.theme.rootElement;\n\n state.theme.darkmode = isDarkMode;\n\n await Preferences.set({\n key: 'darkmode',\n value: JSON.stringify(state.theme.darkmode),\n });\n\n if (isDarkMode) {\n root.classList.add('dark-theme');\n } else {\n root.classList.remove('dark-theme');\n }\n\n const variableNames = ['--white', '--light', '--grey', '--dark', '--black'];\n\n // Проверяем, сохранены ли оригинальные цвета\n if (!state.theme.originalColors) {\n // Сохраняем оригинальные цвета один раз\n state.theme.originalColors = {};\n const computedStyle = getComputedStyle(root);\n variableNames.forEach(variableName => {\n state.theme.originalColors[variableName] = computedStyle.getPropertyValue(variableName).trim();\n });\n }\n\n if (isDarkMode) {\n invertColors(variableNames, state.theme.originalColors);\n } else {\n // Восстанавливаем оригинальные цвета батчем\n variableNames.forEach(variableName => {\n root.style.setProperty(variableName, state.theme.originalColors[variableName]);\n });\n }\n },\n\n toggleTheme() {\n this.setTheme(!state.theme.darkmode);\n },\n\n add(array, item) {\n const existingItemIndex = array.findIndex(i => i._id === item._id);\n\n if (existingItemIndex === -1) {\n array.push(item);\n } else {\n array[existingItemIndex] = item;\n }\n },\n\n update(array, item) {\n const existingItemIndex = array.findIndex(i => i._id === item._id);\n if (existingItemIndex === -1) {\n // If the item doesn't exist, push it to the array\n array.push(item);\n } else {\n // Update the item in the array without creating a new array\n Object.assign(array[existingItemIndex], item);\n }\n },\n\n delete(array, item) {\n const existingItemIndex = array.findIndex(c => c._id === item._id);\n\n if (existingItemIndex !== -1) {\n array.splice(existingItemIndex, 1);\n }\n },\n\n increment(array, item) {\n console.log(array);\n console.log(item);\n const arrayItem = array.find(i => i._id === item._id);\n\n if (arrayItem) {\n arrayItem.quantity++;\n }\n },\n\n decrement(array, item) {\n const arrayItem = array.find(i => i._id === item._id);\n\n const arrayItemIndex = array.indexOf(arrayItem);\n\n if (arrayItemIndex > -1) {\n arrayItem.quantity--;\n\n if (arrayItem.quantity < 1) array.splice(arrayItemIndex, 1);\n }\n },\n\n reset(array) {\n array = [];\n },\n};\n\n// Mutations\nfunction setError(error) {\n state.error.show = true;\n let errorData;\n\n errorData = error;\n\n // Обработка ошибок из fetch API (Store class)\n if (error?.info) errorData = error.info;\n \n // Обработка ошибок из axios\n if (error?.response?.data) errorData = error.response.data;\n\n // Обработка ошибок верификации\n if (errorData?.error === 'VALIDATION_ERROR' && errorData?.errors) {\n // Собираем все сообщения об ошибках в одну строку\n const errorMessages = [];\n for (const field in errorData.errors) {\n const fieldErrors = errorData.errors[field];\n if (Array.isArray(fieldErrors)) {\n errorMessages.push(...fieldErrors);\n } else if (typeof fieldErrors === 'string') {\n errorMessages.push(fieldErrors);\n }\n }\n state.error.message = errorMessages.join(', ') || 'Validation error';\n } else if (error && errorData.errorCode) {\n // state.error.message = i18n.global.t(`errors.${errorData.errorCode}`);\n state.error.message = errorData.errorCode;\n } else {\n state.error.message = errorData.message || error.message || 'Unknown error';\n }\n\n state.error.show = true;\n\n requestAnimationFrame(() => {\n setTimeout(() => (state.error.show = false), 5000);\n });\n}\n\nfunction setSnack(data) {\n // Handle different input formats\n let type = 'notification'\n let message = ''\n let duration = 3000\n\n if (typeof data === 'string') {\n message = data\n } else if (data instanceof Error) {\n type = 'error'\n message = data.message\n } else if (data?.response?.data) {\n // Handle API errors\n type = 'error'\n const errorData = data.response.data\n message = errorData.errorCode || errorData.message || 'Unknown error'\n } else if (typeof data === 'object') {\n type = data.type || 'notification'\n message = data.message || ''\n duration = data.duration || 3000\n }\n\n // Update state\n state.snack = {\n show: true,\n type,\n message,\n duration\n }\n\n // Auto-hide\n requestAnimationFrame(() => {\n setTimeout(() => {state.snack.show = false }, duration)\n });\n \n}\n\nfunction invertColors(variableNames, originalColors) {\n variableNames.forEach(variableName => {\n const baseColor = originalColors[variableName];\n const colorArray = baseColor.split(',').map(Number);\n\n let invertedColor;\n\n if (variableName === '--white') {\n invertedColor = colorArray.map(value => 255 - value / 1.075);\n } else if (variableName === '--black') {\n invertedColor = colorArray.map(value => 255 - value);\n } else if (variableName === '--grey') {\n invertedColor = colorArray.map(value => 255 - value * 2);\n } else {\n invertedColor = colorArray.map(value => 255 - value / 1.075);\n }\n // Устанавливаем новые значения переменных CSS\n document.documentElement.style.setProperty(variableName, state.theme.darkmode ? invertedColor.join(', ') : baseColor);\n });\n}\n\nexport { actions, setError, setSnack, state };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"globals.js","sources":["../../../../../../../src/modules/globals/views/store/globals.js"],"sourcesContent":["// Vue modules\nimport { Preferences } from '@capacitor/preferences';\nimport { reactive } from 'vue';\n\n// import i18n from \"@/localization.js\";\n\n// State\nconst state = reactive({\n loading: false,\n\n isOpenLocationPopup: false,\n isOpenSidebar: false,\n\n position: null,\n search: null,\n\n theme: {\n darkmode: false,\n },\n\n navigation_bar: {\n name: null,\n actions: null,\n },\n\n error: {\n status: '',\n headers: '',\n data: '',\n show: false,\n name: '',\n message: '',\n },\n snack: {\n show: false,\n type: 'notification',\n message: '',\n duration: 3000\n }\n});\n\n// Actions\nconst actions = {\n setLoading(status) {\n state.loading = status;\n },\n\n // Black/White Theme\n async setTheme(isDarkMode) {\n // Cache root element\n if (!state.theme.rootElement) {\n state.theme.rootElement = document.documentElement;\n }\n const root = state.theme.rootElement;\n\n state.theme.darkmode = isDarkMode;\n\n await Preferences.set({\n key: 'darkmode',\n value: JSON.stringify(state.theme.darkmode),\n });\n\n if (isDarkMode) {\n root.classList.add('dark-theme');\n } else {\n root.classList.remove('dark-theme');\n }\n\n const variableNames = ['--white', '--light', '--grey', '--dark', '--black'];\n\n // Проверяем, сохранены ли оригинальные цвета\n if (!state.theme.originalColors) {\n // Сохраняем оригинальные цвета один раз\n state.theme.originalColors = {};\n const computedStyle = getComputedStyle(root);\n variableNames.forEach(variableName => {\n state.theme.originalColors[variableName] = computedStyle.getPropertyValue(variableName).trim();\n });\n }\n\n if (isDarkMode) {\n invertColors(variableNames, state.theme.originalColors);\n } else {\n // Восстанавливаем оригинальные цвета батчем\n variableNames.forEach(variableName => {\n root.style.setProperty(variableName, state.theme.originalColors[variableName]);\n });\n }\n },\n\n toggleTheme() {\n this.setTheme(!state.theme.darkmode);\n },\n\n add(array, item) {\n const existingItemIndex = array.findIndex(i => i._id === item._id);\n\n if (existingItemIndex === -1) {\n array.push(item);\n } else {\n array[existingItemIndex] = item;\n }\n },\n\n update(array, item) {\n const existingItemIndex = array.findIndex(i => i._id === item._id);\n if (existingItemIndex === -1) {\n // If the item doesn't exist, push it to the array\n array.push(item);\n } else {\n // Update the item in the array without creating a new array\n Object.assign(array[existingItemIndex], item);\n }\n },\n\n delete(array, item) {\n const existingItemIndex = array.findIndex(c => c._id === item._id);\n\n if (existingItemIndex !== -1) {\n array.splice(existingItemIndex, 1);\n }\n },\n\n increment(array, item) {\n console.log(array);\n console.log(item);\n const arrayItem = array.find(i => i._id === item._id);\n\n if (arrayItem) {\n arrayItem.quantity++;\n }\n },\n\n decrement(array, item) {\n const arrayItem = array.find(i => i._id === item._id);\n\n const arrayItemIndex = array.indexOf(arrayItem);\n\n if (arrayItemIndex > -1) {\n arrayItem.quantity--;\n\n if (arrayItem.quantity < 1) array.splice(arrayItemIndex, 1);\n }\n },\n\n reset(array) {\n array = [];\n },\n};\n\n// Mutations\nfunction setError(error) {\n state.error.show = true;\n let errorData;\n\n errorData = error;\n\n // Обработка ошибок из fetch API (Store class)\n if (error?.info) errorData = error.info;\n \n // Обработка ошибок из axios\n if (error?.response?.data) errorData = error.response.data;\n\n // Обработка ошибок верификации\n if (errorData?.error === 'VALIDATION_ERROR' && errorData?.errors) {\n // Собираем все сообщения об ошибках в одну строку\n const errorMessages = [];\n for (const field in errorData.errors) {\n const fieldErrors = errorData.errors[field];\n if (Array.isArray(fieldErrors)) {\n errorMessages.push(...fieldErrors);\n } else if (typeof fieldErrors === 'string') {\n errorMessages.push(fieldErrors);\n }\n }\n state.error.message = errorMessages.join(', ') || 'Validation error';\n } else if (error && errorData.errorCode) {\n // state.error.message = i18n.global.t(`errors.${errorData.errorCode}`);\n state.error.message = errorData.errorCode;\n } else {\n state.error.message = errorData.message || error.message || 'Unknown error';\n }\n\n state.error.show = true;\n\n if (typeof window !== 'undefined' && window.requestAnimationFrame) {\n requestAnimationFrame(() => {\n setTimeout(() => (state.error.show = false), 5000);\n });\n } else {\n setTimeout(() => (state.error.show = false), 5000);\n }\n}\n\nfunction setSnack(data) {\n // Handle different input formats\n let type = 'notification'\n let message = ''\n let duration = 3000\n\n if (typeof data === 'string') {\n message = data\n } else if (data instanceof Error) {\n type = 'error'\n message = data.message\n } else if (data?.response?.data) {\n // Handle API errors\n type = 'error'\n const errorData = data.response.data\n message = errorData.errorCode || errorData.message || 'Unknown error'\n } else if (typeof data === 'object') {\n type = data.type || 'notification'\n message = data.message || ''\n duration = data.duration || 3000\n }\n\n // Update state\n state.snack = {\n show: true,\n type,\n message,\n duration\n }\n\n // Auto-hide\n if (typeof window !== 'undefined' && window.requestAnimationFrame) {\n requestAnimationFrame(() => {\n setTimeout(() => {state.snack.show = false }, duration)\n });\n } else {\n setTimeout(() => {state.snack.show = false }, duration)\n }\n \n}\n\nfunction invertColors(variableNames, originalColors) {\n variableNames.forEach(variableName => {\n const baseColor = originalColors[variableName];\n const colorArray = baseColor.split(',').map(Number);\n\n let invertedColor;\n\n if (variableName === '--white') {\n invertedColor = colorArray.map(value => 255 - value / 1.075);\n } else if (variableName === '--black') {\n invertedColor = colorArray.map(value => 255 - value);\n } else if (variableName === '--grey') {\n invertedColor = colorArray.map(value => 255 - value * 2);\n } else {\n invertedColor = colorArray.map(value => 255 - value / 1.075);\n }\n // Устанавливаем новые значения переменных CSS\n document.documentElement.style.setProperty(variableName, state.theme.darkmode ? invertedColor.join(', ') : baseColor);\n });\n}\n\nexport { actions, setError, setSnack, state };\n"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ const vue = require("vue");
4
4
  const vueRouter = require("vue-router");
5
5
  const Field = require("../../../../components/Field/Field.vue.cjs");
6
6
  const Select = require("../../../../components/Select/Select.vue.cjs");
7
- const Button = require("../../../../components/Button/Button.vue.cjs");
7
+ const Button = require("../../../../components/Button/Button.vue2.cjs");
8
8
  const auth = require("../../../auth/views/store/auth.cjs");
9
9
  const spots = require("../../../spots/store/spots.cjs");
10
10
  const variants_store = require("../../../products/store/variants.store.cjs");
@@ -2,7 +2,7 @@ import { ref, onMounted, createElementBlock, openBlock, createElementVNode, crea
2
2
  import { useRoute } from "vue-router";
3
3
  import Field from "../../../../components/Field/Field.vue.js";
4
4
  import Select from "../../../../components/Select/Select.vue.js";
5
- import _sfc_main$2 from "../../../../components/Button/Button.vue.js";
5
+ import _sfc_main$2 from "../../../../components/Button/Button.vue2.js";
6
6
  import { state } from "../../../auth/views/store/auth.js";
7
7
  import { actions } from "../../../spots/store/spots.js";
8
8
  import variantsStore from "../../../products/store/variants.store.js";
@@ -2,7 +2,7 @@
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
4
  const Checkbox = require("../../../../components/Checkbox/Checkbox.vue.cjs");
5
- const Button = require("../../../../components/Button/Button.vue.cjs");
5
+ const Button = require("../../../../components/Button/Button.vue2.cjs");
6
6
  const _hoisted_1 = { class: "w-100" };
7
7
  const _hoisted_2 = { class: "mn-b-medium" };
8
8
  const _hoisted_3 = { class: "flex-nowrap flex gap-small" };
@@ -1,6 +1,6 @@
1
1
  import { ref, watch, createElementBlock, openBlock, createElementVNode, Fragment, renderList, createVNode, withCtx, createTextVNode } from "vue";
2
2
  import _sfc_main$1 from "../../../../components/Checkbox/Checkbox.vue.js";
3
- import _sfc_main$2 from "../../../../components/Button/Button.vue.js";
3
+ import _sfc_main$2 from "../../../../components/Button/Button.vue2.js";
4
4
  const _hoisted_1 = { class: "w-100" };
5
5
  const _hoisted_2 = { class: "mn-b-medium" };
6
6
  const _hoisted_3 = { class: "flex-nowrap flex gap-small" };