@ozdao/martyrs 0.2.508 → 0.2.510

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 (317) hide show
  1. package/dist/{main-Dq-UfO4G.js → main-DrpgUZcn.js} +2808 -2615
  2. package/dist/main-XJQJFmgj.cjs +11 -0
  3. package/dist/martyrs/src/components/Button/{Button.vue.cjs → Button.vue2.cjs} +2 -2
  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} +2 -2
  6. package/dist/martyrs/src/components/Button/{Button.vue.cjs.map → Button.vue2.js.map} +1 -1
  7. package/dist/martyrs/src/components/Checkbox/Checkbox.vue.cjs +1 -1
  8. package/dist/martyrs/src/components/Checkbox/Checkbox.vue.cjs.map +1 -1
  9. package/dist/martyrs/src/components/Checkbox/Checkbox.vue.js +1 -1
  10. package/dist/martyrs/src/components/Checkbox/Checkbox.vue.js.map +1 -1
  11. package/dist/martyrs/src/components/Feed/Carousel.vue.cjs +4 -3
  12. package/dist/martyrs/src/components/Feed/Carousel.vue.cjs.map +1 -1
  13. package/dist/martyrs/src/components/Feed/Carousel.vue.js +5 -4
  14. package/dist/martyrs/src/components/Feed/Carousel.vue.js.map +1 -1
  15. package/dist/martyrs/src/components/Feed/Feed.vue.cjs +1 -1
  16. package/dist/martyrs/src/components/Feed/Feed.vue.cjs.map +1 -1
  17. package/dist/martyrs/src/components/Feed/Feed.vue.js +1 -1
  18. package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
  19. package/dist/martyrs/src/components/Field/Field.vue.cjs +1 -1
  20. package/dist/martyrs/src/components/Field/Field.vue.cjs.map +1 -1
  21. package/dist/martyrs/src/components/Field/Field.vue.js +1 -1
  22. package/dist/martyrs/src/components/Field/Field.vue.js.map +1 -1
  23. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.cjs +3 -3
  24. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.cjs.map +1 -1
  25. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +3 -3
  26. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js.map +1 -1
  27. package/dist/martyrs/src/components/Tab/{Tab.vue2.cjs → Tab.vue.cjs} +2 -2
  28. package/dist/martyrs/src/components/Tab/{Tab.vue2.js.map → Tab.vue.cjs.map} +1 -1
  29. package/dist/martyrs/src/components/Tab/{Tab.vue2.js → Tab.vue.js} +2 -2
  30. package/dist/martyrs/src/components/Tab/Tab.vue.js.map +1 -0
  31. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs +2 -2
  32. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +2 -2
  33. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +2 -2
  34. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +2 -2
  35. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +1 -1
  36. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +1 -1
  37. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.cjs +1 -1
  38. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js +1 -1
  39. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.cjs +17 -11
  40. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.cjs.map +1 -1
  41. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +18 -12
  42. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js.map +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 +1 -1
  56. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +1 -1
  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 +1 -1
  64. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +1 -1
  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 +1 -0
  68. package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs.map +1 -1
  69. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +1 -0
  70. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js.map +1 -1
  71. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.cjs +1 -1
  72. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js +1 -1
  73. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +1 -1
  74. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +1 -1
  75. package/dist/martyrs/src/modules/globals/globals.client.js +15 -15
  76. package/dist/martyrs/src/modules/globals/globals.client.js.map +1 -1
  77. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +1 -1
  78. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +1 -1
  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 +1 -1
  82. package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js +1 -1
  83. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +8 -3
  84. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs.map +1 -1
  85. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +8 -3
  86. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js.map +1 -1
  87. package/dist/martyrs/src/modules/globals/views/components/partials/Footer.vue.cjs +121 -107
  88. package/dist/martyrs/src/modules/globals/views/components/partials/Footer.vue.cjs.map +1 -1
  89. package/dist/martyrs/src/modules/globals/views/components/partials/Footer.vue.js +131 -117
  90. package/dist/martyrs/src/modules/globals/views/components/partials/Footer.vue.js.map +1 -1
  91. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs +2 -2
  92. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs.map +1 -1
  93. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js +2 -2
  94. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js.map +1 -1
  95. package/dist/martyrs/src/modules/globals/views/components/partials/NavigationBar.vue.cjs +1 -1
  96. package/dist/martyrs/src/modules/globals/views/components/partials/NavigationBar.vue.js +1 -1
  97. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.cjs +112 -49
  98. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.cjs.map +1 -1
  99. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.js +121 -58
  100. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.js.map +1 -1
  101. package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.cjs +1 -1
  102. package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.js +1 -1
  103. package/dist/martyrs/src/modules/icons/logos/Logotype.vue.cjs +3 -3
  104. package/dist/martyrs/src/modules/icons/logos/Logotype.vue.js +3 -3
  105. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.cjs +136 -134
  106. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.cjs.map +1 -1
  107. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js +136 -134
  108. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js.map +1 -1
  109. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.cjs +1 -1
  110. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +1 -1
  111. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.cjs +1 -1
  112. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +1 -1
  113. package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.cjs +1 -1
  114. package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.js +1 -1
  115. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.cjs +1 -1
  116. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js +1 -1
  117. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.cjs +1 -1
  118. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js +1 -1
  119. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.cjs +1 -1
  120. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +1 -1
  121. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.cjs +1 -1
  122. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +1 -1
  123. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.cjs +1 -1
  124. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +1 -1
  125. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.cjs +1 -1
  126. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js +1 -1
  127. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs +1 -1
  128. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +1 -1
  129. package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs +1 -1
  130. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +1 -1
  131. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.cjs +1 -1
  132. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +1 -1
  133. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.cjs +1 -1
  134. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +1 -1
  135. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs +1 -1
  136. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +1 -1
  137. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.cjs +1 -1
  138. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +1 -1
  139. package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs +1 -1
  140. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +1 -1
  141. package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.cjs +1 -1
  142. package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.js +1 -1
  143. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.cjs +1 -1
  144. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js +1 -1
  145. package/dist/martyrs/src/modules/music/router/music.cjs +2 -1
  146. package/dist/martyrs/src/modules/music/router/music.cjs.map +1 -1
  147. package/dist/martyrs/src/modules/music/router/music.js +2 -1
  148. package/dist/martyrs/src/modules/music/router/music.js.map +1 -1
  149. package/dist/martyrs/src/modules/notifications/components/pages/Notifications.vue.cjs +1 -1
  150. package/dist/martyrs/src/modules/notifications/components/pages/Notifications.vue.js +1 -1
  151. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.cjs +1 -1
  152. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +1 -1
  153. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.cjs +61 -9
  154. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.cjs.map +1 -1
  155. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +61 -9
  156. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js.map +1 -1
  157. package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.cjs +1 -1
  158. package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js +1 -1
  159. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +1 -1
  160. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +1 -1
  161. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs +1 -1
  162. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +1 -1
  163. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +2 -2
  164. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +2 -2
  165. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.cjs +1 -1
  166. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.js +1 -1
  167. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.cjs +1 -1
  168. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js +1 -1
  169. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.cjs +1 -1
  170. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js +1 -1
  171. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +2 -1
  172. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs.map +1 -1
  173. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +2 -1
  174. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js.map +1 -1
  175. package/dist/martyrs/src/modules/orders/orders.client.cjs +36 -44
  176. package/dist/martyrs/src/modules/orders/orders.client.cjs.map +1 -1
  177. package/dist/martyrs/src/modules/orders/orders.client.js +36 -44
  178. package/dist/martyrs/src/modules/orders/orders.client.js.map +1 -1
  179. package/dist/martyrs/src/modules/orders/store/models/customer.cjs +7 -0
  180. package/dist/martyrs/src/modules/orders/store/models/customer.cjs.map +1 -1
  181. package/dist/martyrs/src/modules/orders/store/models/customer.js +7 -0
  182. package/dist/martyrs/src/modules/orders/store/models/customer.js.map +1 -1
  183. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.cjs +1 -1
  184. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +1 -1
  185. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +2 -2
  186. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +2 -2
  187. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +1 -1
  188. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +1 -1
  189. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +2 -2
  190. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +2 -2
  191. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.cjs +1 -1
  192. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js +1 -1
  193. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs +1 -1
  194. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +1 -1
  195. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.cjs +1 -1
  196. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +1 -1
  197. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +2 -2
  198. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +2 -2
  199. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.cjs +17 -28
  200. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.cjs.map +1 -1
  201. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.js +17 -28
  202. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.js.map +1 -1
  203. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.cjs +1 -1
  204. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -1
  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/elements/QuantitySelector.vue.cjs +9 -1
  210. package/dist/martyrs/src/modules/products/components/elements/QuantitySelector.vue.cjs.map +1 -1
  211. package/dist/martyrs/src/modules/products/components/elements/QuantitySelector.vue.js +9 -1
  212. package/dist/martyrs/src/modules/products/components/elements/QuantitySelector.vue.js.map +1 -1
  213. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs +1 -1
  214. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +1 -1
  215. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +3 -2
  216. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs.map +1 -1
  217. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +3 -2
  218. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js.map +1 -1
  219. package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +3 -3
  220. package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs.map +1 -1
  221. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +3 -3
  222. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js.map +1 -1
  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/Products.vue.cjs +118 -135
  226. package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs.map +1 -1
  227. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +123 -140
  228. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js.map +1 -1
  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/EditRecommended.vue.cjs +3 -5
  234. package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.cjs.map +1 -1
  235. package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.js +4 -6
  236. package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.js.map +1 -1
  237. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs +1 -1
  238. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +1 -1
  239. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.cjs +1 -1
  240. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js +1 -1
  241. package/dist/martyrs/src/modules/products/components/sections/ProductsPopular.vue.cjs +10 -5
  242. package/dist/martyrs/src/modules/products/components/sections/ProductsPopular.vue.cjs.map +1 -1
  243. package/dist/martyrs/src/modules/products/components/sections/ProductsPopular.vue.js +10 -5
  244. package/dist/martyrs/src/modules/products/components/sections/ProductsPopular.vue.js.map +1 -1
  245. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.cjs +6 -3
  246. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.cjs.map +1 -1
  247. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +6 -3
  248. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js.map +1 -1
  249. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.cjs +2 -2
  250. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +2 -2
  251. package/dist/martyrs/src/modules/products/store/products.cjs +5 -5
  252. package/dist/martyrs/src/modules/products/store/products.cjs.map +1 -1
  253. package/dist/martyrs/src/modules/products/store/products.js +5 -5
  254. package/dist/martyrs/src/modules/products/store/products.js.map +1 -1
  255. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.cjs +2 -2
  256. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +2 -2
  257. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.cjs +1 -1
  258. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js +1 -1
  259. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs +1 -1
  260. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +1 -1
  261. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.cjs +1 -1
  262. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js +1 -1
  263. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +2 -2
  264. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +2 -2
  265. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.cjs +1 -1
  266. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +1 -1
  267. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.cjs +1 -1
  268. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +1 -1
  269. package/dist/martyrs.cjs.js +1 -1
  270. package/dist/martyrs.css +1 -1
  271. package/dist/martyrs.es.js +1 -1
  272. package/dist/orders.server.cjs +58 -0
  273. package/dist/orders.server.js +58 -0
  274. package/dist/products.server.cjs +79 -45
  275. package/dist/products.server.js +79 -45
  276. package/dist/style.css +44 -52
  277. package/dist/{web-BXajFCU2.js → web-C5cmb1FH.js} +1 -1
  278. package/dist/{web-DaBwwCQ5.cjs → web-d40xcY_Y.cjs} +1 -1
  279. package/package.json +1 -1
  280. package/src/components/Checkbox/Checkbox.vue +1 -1
  281. package/src/components/Feed/Carousel.vue +3 -1
  282. package/src/components/Feed/Feed.vue +1 -1
  283. package/src/components/Field/Field.vue +5 -0
  284. package/src/components/FieldBig/FieldBig.vue +2 -2
  285. package/src/modules/auth/views/components/pages/ProfileEdit.vue +17 -10
  286. package/src/modules/globals/views/components/layouts/Client.vue +12 -1
  287. package/src/modules/globals/views/components/partials/Footer.centered.vue +338 -0
  288. package/src/modules/globals/views/components/partials/Footer.vue +104 -99
  289. package/src/modules/globals/views/components/partials/Header.vue +1 -1
  290. package/src/modules/globals/views/components/sections/Filters.vue +73 -15
  291. package/src/modules/icons/logos/Logotype.vue +1 -1
  292. package/src/modules/inventory/components/pages/Inventory.vue +126 -119
  293. package/src/modules/orders/components/forms/FormCustomerDetails.vue +51 -0
  294. package/src/modules/orders/middlewares/customers.verifier.js +60 -0
  295. package/src/modules/orders/models/customer.model.js +18 -0
  296. package/src/modules/orders/orders.client.js +36 -44
  297. package/src/modules/orders/store/models/customer.js +7 -0
  298. package/src/modules/organizations/configs/navigation.organization.config.js +17 -26
  299. package/src/modules/products/TASKS.MD +1 -157
  300. package/src/modules/products/components/elements/QuantitySelector.vue +17 -9
  301. package/src/modules/products/components/pages/Product.vue +1 -1
  302. package/src/modules/products/components/pages/Products.vue +148 -175
  303. package/src/modules/products/components/sections/EditRecommended.vue +1 -3
  304. package/src/modules/products/components/sections/ProductsPopular.vue +9 -5
  305. package/src/modules/products/components/sections/ProductsRecommended.vue +4 -1
  306. package/src/modules/products/controllers/configs/products.lookup.config.js +31 -4
  307. package/src/modules/products/controllers/products.controller.js +14 -2
  308. package/src/modules/products/controllers/queries/products.queries.js +46 -43
  309. package/src/modules/products/models/product.model.js +4 -0
  310. package/src/modules/products/store/products.js +5 -5
  311. package/src/styles/base/all.scss +9 -4
  312. package/src/styles/config.scss +10 -0
  313. package/src/styles/responsive.scss +2 -1
  314. package/src/styles/typography.scss +0 -5
  315. package/dist/main-AWSb_d2P.cjs +0 -11
  316. package/dist/martyrs/src/components/Button/Button.vue.js.map +0 -1
  317. package/dist/martyrs/src/components/Tab/Tab.vue2.cjs.map +0 -1
@@ -15,11 +15,14 @@ import IconAddress from '@martyrs/src/modules/icons/entities/IconAddress.vue';
15
15
  import IconTime from '@martyrs/src/modules/icons/entities/IconTime.vue';
16
16
 
17
17
  import IconInfo from '@martyrs/src/modules/icons/navigation/IconInfo.vue'
18
- import instagram from '@martyrs/src/modules/icons/socials/instagram.vue';
19
- import facebook from '@martyrs/src/modules/icons/socials/facebook.vue';
20
- import linkedin from '@martyrs/src/modules/icons/socials/linkedin.vue'
21
- import youtube from '@martyrs/src/modules/icons/socials/youtube.vue'
22
- import whatsapp from '@martyrs/src/modules/icons/socials/whatsapp.vue'
18
+ import IconInstagram from '@martyrs/src/modules/icons/socials/instagram.vue';
19
+ import IconFacebook from '@martyrs/src/modules/icons/socials/facebook.vue';
20
+ import IconLinkedin from '@martyrs/src/modules/icons/socials/linkedin.vue'
21
+ import IconYoutube from '@martyrs/src/modules/icons/socials/youtube.vue'
22
+ import IconWhatsapp from '@martyrs/src/modules/icons/socials/whatsapp.vue'
23
+
24
+ import Logotype from '@martyrs/src/modules/icons/logos/Logotype.vue'
25
+
23
26
 
24
27
  // Props
25
28
  const props = defineProps({
@@ -41,8 +44,8 @@ const text = {
41
44
  locale: 'en',
42
45
  messages: {
43
46
  en: {
44
- linkAppStore: '2',
45
- linkGooglePlay: '1',
47
+ linkAppStore: 'https://play.google.com/store/apps/details?id=com.threestepsrental.app',
48
+ linkGooglePlay: 'https://play.google.com/store/apps/details?id=com.threestepsrental.app',
46
49
  // Contact
47
50
  description: "3SR – Premium Video Gear Rentals for Filmmakers and Content Creators",
48
51
  contact: 'Contact',
@@ -61,12 +64,12 @@ const text = {
61
64
  // Footer
62
65
  year: '2025 ',
63
66
  heart: "❤",
64
- copyright: 'Three Steps Studio Ltd. ',
65
- ozdao: 'Builded with love in',
67
+ copyright: 'Three Steps Studio Ltd. All Rights Reserved.',
68
+ ozdao: 'Builded in OZ DAO',
66
69
 
67
70
  // Contact info
68
71
  phoneNumber: '+44 77 7878 4893',
69
- emailAddress: 'info@3stepsprod.com',
72
+ emailAddress: "info{'@'}3stepsprod.com",
70
73
 
71
74
  // Navigation columns
72
75
  navigationColumns: [
@@ -75,19 +78,19 @@ const text = {
75
78
  {
76
79
  title: 'Equipment',
77
80
  items: [
78
- { name: 'Cameras', url: 'cameras' },
79
- { name: 'Lighting', url: 'lighting' },
80
- { name: 'Stabilizers', url: 'stabilizers' },
81
- { name: 'Accessories', url: 'accessories' }
81
+ { name: 'Cameras', url: 'products/categories/cameras' },
82
+ { name: 'Lighting', url: 'products/categories/lighting-kits' },
83
+ { name: 'Stabilizers', url: 'products/categories/stabilization-motion' },
84
+ { name: 'Accessories', url: 'products/categories/accessories' }
82
85
  ]
83
86
  },
84
87
  {
85
88
  title: 'Services',
86
89
  items: [
87
- { name: 'Kits & Packages', url: 'kits-packages' },
88
- { name: 'Studio Hire', url: 'studio-hire' },
89
- { name: 'Delivery', url: 'delivery' },
90
- { name: 'Production Help', url: 'production-help' }
90
+ { name: 'Kits & Packages', url: 'products/categories/kits-packages' },
91
+ { name: 'Studio Hire', url: 'products/categories/studio-hire' },
92
+ { name: 'Delivery', url: 'products/categories/delivery' },
93
+ { name: 'Production Help', url: 'products/categories/production-help' }
91
94
  ]
92
95
  }
93
96
  ]
@@ -97,19 +100,19 @@ const text = {
97
100
  {
98
101
  title: 'Company',
99
102
  items: [
100
- { name: 'About Us', url: 'about' },
101
- { name: 'Contact', url: 'contact' },
102
- { name: 'FAQ', url: 'faq' },
103
- { name: 'Blog', url: 'blog' }
103
+ { name: 'About Us', url: 'pages/about' },
104
+ { name: 'Contact', url: 'pages/contact' },
105
+ { name: 'FAQ', url: 'pages/faq' },
106
+ { name: 'Blog', url: '/community' }
104
107
  ]
105
108
  },
106
109
  {
107
110
  title: 'Legal',
108
111
  items: [
109
- { name: 'Privacy Policy', url: 'privacy-policy' },
110
- { name: 'Cookie Policy', url: 'cookie-policy' },
111
- { name: 'Terms of Use', url: 'terms-of-use' },
112
- { name: 'EULA', url: 'eula' }
112
+ { name: 'Privacy Policy', url: 'pages/privacy-policy' },
113
+ { name: 'Cookie Policy', url: 'pages/cookie-policy' },
114
+ { name: 'Terms of Use', url: 'pages/terms-of-use' },
115
+ { name: 'EULA', url: 'pages/eula' }
113
116
  ]
114
117
  }
115
118
  ]
@@ -119,36 +122,40 @@ const text = {
119
122
  // Social links
120
123
  socialLinks: [
121
124
  {
122
- name: 'Instagram',
123
- url: 'https://www.instagram.com/3stepsprod',
124
- icon: instagram
125
+ name: 'IconInstagram',
126
+ url: 'https://www.instagram.com/3stepsprod'
125
127
  },
126
128
  {
127
- name: 'Youtube',
128
- url: 'https://www.youtube.com/@threestepsproduction',
129
- icon: youtube
129
+ name: 'IconYoutube',
130
+ url: 'https://www.youtube.com/@threestepsproduction'
130
131
  },
131
132
  {
132
- name: 'WhatsApp',
133
- url: 'https://api.whatsapp.com/send/?phone=447778784893&text&type=phone_number&app_absent=0',
134
- icon: whatsapp
133
+ name: 'IconWhatsapp',
134
+ url: 'https://api.whatsapp.com/send/?phone=447778784893&text&type=phone_number&app_absent=0'
135
135
  }
136
136
  ]
137
137
  }
138
138
  }
139
139
  }
140
140
 
141
- const { t, te, tm } = useI18n(text)
141
+ const { t, te, tm } = useI18n({
142
+ useScope: 'global',
143
+ messages: text.messages
144
+ })
142
145
 
143
- // Get columns and social links from translations
144
- const navigationColumns = computed(() => tm('navigationColumns'))
145
- const socialLinks = computed(() => tm('socialLinks'))
146
+ // Component mapping for social icons
147
+ const iconComponents = {
148
+ IconInstagram,
149
+ IconFacebook,
150
+ IconLinkedin,
151
+ IconYoutube,
152
+ IconWhatsapp
153
+ }
146
154
  </script>
147
155
 
148
156
  <template>
149
157
  <footer
150
158
  class="
151
- pd-medium pd-t-large
152
159
  w-100
153
160
  br-t br-solid
154
161
  "
@@ -157,8 +164,8 @@ const socialLinks = computed(() => tm('socialLinks'))
157
164
  't-white bg-black br-dark': theme === 'dark'
158
165
  }"
159
166
  >
160
- <!-- Top Section -->
161
- <div class="container-wide">
167
+ <div class="pd-medium">
168
+ <!-- Top Section -->
162
169
  <component
163
170
  v-if="logotype"
164
171
  :is="logotype"
@@ -167,7 +174,7 @@ const socialLinks = computed(() => tm('socialLinks'))
167
174
  class="cursor-pointer h-3r mn-b-medium"
168
175
  />
169
176
 
170
- <div class="grid cols-4-footer tablet:cols-2 mobile:cols-1 gap-extra mn-b-big">
177
+ <div class="grid cols-3-footer tablet:cols-2 mobile:cols-1 gap-extra mobile:gap-big">
171
178
 
172
179
  <!-- Contact Block -->
173
180
  <div class="col w-max-15r">
@@ -233,22 +240,24 @@ const socialLinks = computed(() => tm('socialLinks'))
233
240
  </div>
234
241
 
235
242
  <!-- Navigation Columns -->
236
- <div v-for="(column, colIndex) in navigationColumns" :key="colIndex" class="col">
237
- <div v-for="(section, sectionIndex) in column.sections" :key="sectionIndex">
238
- <h4 class="h5 t-medium mn-b-regular" :class="sectionIndex > 0 ? 'mn-t-medium' : ''">{{ section.title }}</h4>
239
- <nav>
240
- <ul class="flex flex-column gap-thin">
241
- <li v-for="item in section.items" :key="item.url">
242
- <router-link
243
- :to="`/${item.url}`"
244
- class="t-small transition-opacity hover-opacity-70"
245
- :class="theme === 'light' ? 't-black' : 't-white'"
246
- >
247
- {{ item.name }}
248
- </router-link>
249
- </li>
250
- </ul>
251
- </nav>
243
+ <div class="cols-2 gap-big">
244
+ <div v-for="(column, colIndex) in tm('navigationColumns')" :key="colIndex" class="flex flex-column gap-medium">
245
+ <div v-for="(section, sectionIndex) in column.sections" :key="sectionIndex" class="">
246
+ <h4 class="h5 t-medium mn-b-regular">{{ section.title }}</h4>
247
+ <nav>
248
+ <ul class="flex flex-column gap-thin">
249
+ <li v-for="item in section.items" :key="item.url">
250
+ <router-link
251
+ :to="`/${item.url}`"
252
+ class="t-small transition-opacity hover-opacity-70"
253
+ :class="theme === 'light' ? 't-black' : 't-white'"
254
+ >
255
+ {{ item.name }}
256
+ </router-link>
257
+ </li>
258
+ </ul>
259
+ </nav>
260
+ </div>
252
261
  </div>
253
262
  </div>
254
263
 
@@ -266,9 +275,9 @@ const socialLinks = computed(() => tm('socialLinks'))
266
275
 
267
276
  <h4 class="h5 t-medium mn-b-regular">{{ t('follow') }}</h4>
268
277
  <!-- Social Links -->
269
- <div class="flex gap-small mn-b-medium">
278
+ <div class="flex gap-thin">
270
279
  <a
271
- v-for="social in socialLinks"
280
+ v-for="social in tm('socialLinks')"
272
281
  :key="social.name"
273
282
  :href="social.url"
274
283
  target="_blank"
@@ -282,7 +291,7 @@ const socialLinks = computed(() => tm('socialLinks'))
282
291
  "
283
292
  >
284
293
  <component
285
- :is="social.icon"
294
+ :is="iconComponents[social.name]"
286
295
  class="i-semi"
287
296
  :fill="theme === 'light' ? 'rgb(var(--black))' : 'rgb(var(--white))'"
288
297
  />
@@ -290,47 +299,43 @@ const socialLinks = computed(() => tm('socialLinks'))
290
299
  </div>
291
300
  </div>
292
301
  </div>
302
+ </div>
293
303
 
294
- <!-- Bottom Section -->
295
- <div class="
296
- pd-t-medium
297
- br-t br-solid
298
- flex flex-justify-between flex-v-center
299
- mobile:flex-column mobile:gap-small
300
- "
301
- :class="{
302
- 'br-light': theme === 'light',
303
- 'br-dark': theme === 'dark'
304
- }"
305
- >
306
- <!-- Copyright -->
307
- <p class="t-small t-medium uppercase mobile:t-center">
308
- {{ t('year') }}
309
- <span class="t-main copyleft">{{ t('heart') }}</span>
310
- {{ t('copyright') }}
311
- {{ t('ozdao') }}
312
- <a href="https://ozdao.dev" class="t-main" target="_blank" rel="noopener">OZ DAO.</a>
313
- </p>
314
- </div>
304
+ <!-- Bottom Section -->
305
+ <div class="
306
+ pd-medium
307
+ br-t
308
+ br-solid
309
+ flex
310
+ flex-justify-between
311
+ flex-v-center
312
+ flex-nowrap
313
+ mobile:flex-column
314
+ mobile:flex-align-start
315
+ mobile:gap-small
316
+ "
317
+ :class="{
318
+ 'br-light': theme === 'light',
319
+ 'br-dark': theme === 'dark'
320
+ }"
321
+ >
322
+ <!-- Copyright -->
323
+ <p class="t-small t-medium uppercase">
324
+ {{ t('year') }}
325
+ <span class="t-main copyleft">{{ t('heart') }}</span>
326
+ {{ t('copyright') }}
327
+ </p>
328
+
329
+ <a href="https://ozdao.dev" target="_blank" rel="noopener" class="flex-nowrap flex-v-center flex t-medium gap-thin br-1px br-light pd-thin radius-thin">
330
+ <Logotype class="h-1r w-auto"/>
331
+ <span>{{ t('ozdao') }}</span>
332
+ </a>
315
333
  </div>
316
334
  </footer>
317
335
  </template>
318
336
 
319
- <style lang="scss" scoped>
320
- .cols-4-footer {
321
- grid-template-columns: 5fr 3fr 3fr 4fr;
322
- }
323
- footer {
324
- transition: background-color 0.3s ease, color 0.3s ease;
325
-
326
- a {
327
- text-decoration: none;
328
- }
329
-
330
- ul {
331
- list-style: none;
332
- padding: 0;
333
- margin: 0;
334
- }
337
+ <style lang="scss">
338
+ .cols-3-footer {
339
+ grid-template-columns: 5fr 7fr 4fr;
335
340
  }
336
341
  </style>
@@ -105,7 +105,7 @@
105
105
  :is="logotype"
106
106
  @click="router.push({ path: '/' })"
107
107
  :theme="theme"
108
- class="cursor-pointer"
108
+ class="cursor-pointer h-2r"
109
109
  />
110
110
 
111
111
  <button
@@ -1,12 +1,13 @@
1
1
  <template>
2
- <div class="flex gap-thin">
2
+ <div class="flex t-nowrap gap-thin">
3
3
  <!-- All Filters Button -->
4
4
  <button
5
5
  @click="showAllFilters = true"
6
- class="pd-thin radius-medium bg-light flex-v-center flex gap-micro cursor-pointer"
6
+ class="pd-small radius-medium bg-light flex-v-center flex gap-micro cursor-pointer"
7
7
  :class="{ 'bg-main': activeFiltersCount > 0 }"
8
8
  >
9
- <IconFilter class="i-small" />
9
+ <IconFilter class="i-medium" />
10
+ <span class="h-1r"></span>
10
11
  <span v-if="activeFiltersCount">{{ activeFiltersCount }}</span>
11
12
  </button>
12
13
 
@@ -15,10 +16,11 @@
15
16
  v-for="filter in filters"
16
17
  :key="filter.value"
17
18
  @click="openFilter(filter.value)"
18
- class="pd-thin radius-medium bg-light cursor-pointer"
19
+ class="pd-small radius-medium bg-light cursor-pointer flex-v-center flex gap-micro"
19
20
  :class="{ 'selected bg-main': isFilterActive(filter) }"
20
21
  >
21
- {{ filter.title }}
22
+ <IconCalendar v-if="filter.type === 'date'" class="i-medium" />
23
+ <span class="t-nowrap h-1r">{{ filter.title }}</span>
22
24
  <span v-if="getFilterValue(filter)" class="mn-l-micro">
23
25
  {{ formatFilterValue(filter) }}
24
26
  </span>
@@ -45,7 +47,7 @@
45
47
  :key="filter.value"
46
48
  class="mn-b-medium"
47
49
  >
48
- <h4 class="mn-b-thin">{{ filter.title }}</h4>
50
+ <h4 class="mn-b-small">{{ filter.title }}</h4>
49
51
 
50
52
  <!-- Checkbox Filter -->
51
53
  <div v-if="filter.type === 'checkbox'">
@@ -82,13 +84,23 @@
82
84
  v-model:field="tempSelected[filter.value].min"
83
85
  :placeholder="filter.minPlaceholder || 'Min'"
84
86
  type="number"
85
- class="w-50 bg-light radius-small"
87
+ class="w-50 bg-light pd-small radius-small"
86
88
  />
87
89
  <Field
88
90
  v-model:field="tempSelected[filter.value].max"
89
91
  :placeholder="filter.maxPlaceholder || 'Max'"
90
92
  type="number"
91
- class="w-50 bg-light radius-small"
93
+ class="w-50 bg-light pd-small radius-small"
94
+ />
95
+ </div>
96
+
97
+ <!-- Date Filter -->
98
+ <div v-else-if="filter.type === 'date'">
99
+ <Calendar
100
+ v-model:date="tempSelected[filter.value]"
101
+ :allowRange="true"
102
+ :disablePastDates="true"
103
+ class="bg-light radius-small"
92
104
  />
93
105
  </div>
94
106
  </div>
@@ -156,16 +168,35 @@
156
168
  v-model:field="tempSelected[filter.value].min"
157
169
  :placeholder="filter.minPlaceholder || 'Min'"
158
170
  type="number"
159
- class="w-50 bg-light radius-small"
171
+ class="w-50 bg-light pd-small radius-small"
160
172
  />
161
173
  <Field
162
174
  v-model:field="tempSelected[filter.value].max"
163
175
  :placeholder="filter.maxPlaceholder || 'Max'"
164
176
  type="number"
165
- class="w-50 bg-light radius-small"
177
+ class="w-50 bg-light pd-small radius-small"
166
178
  />
167
179
  </div>
168
180
 
181
+ <!-- Date Filter -->
182
+ <div v-else-if="filter.type === 'date'">
183
+ <div
184
+ @click="() => { tempDateRange = tempSelected[filter.value]; tempSelected[filter.value] = tempSelected[filter.value] || null; }"
185
+ class="pd-small radius-small bg-light cursor-pointer flex-v-center flex gap-micro"
186
+ >
187
+ <IconCalendar class="i-small" />
188
+ <span>{{ tempSelected[filter.value] ? `${formatDate(tempSelected[filter.value].start, { dayMonth: true, language: 'en' })} - ${formatDate(tempSelected[filter.value].end, { dayMonth: true, language: 'en' })}` : 'Select dates'}}</span>
189
+ </div>
190
+ <div class="mn-t-small">
191
+ <Calendar
192
+ v-model:date="tempSelected[filter.value]"
193
+ :allowRange="true"
194
+ :disablePastDates="true"
195
+ class="bg-light radius-small"
196
+ />
197
+ </div>
198
+ </div>
199
+
169
200
  <div class="flex gap-thin mn-t-medium">
170
201
  <button
171
202
  @click="cancelFilter(filter.value)"
@@ -187,11 +218,14 @@
187
218
 
188
219
  <script setup>
189
220
  import { ref, computed, reactive, watch } from 'vue'
221
+ import { useGlobalMixins } from '@martyrs/src/modules/globals/views/mixins/mixins.js'
190
222
  import Popup from '@martyrs/src/components/Popup/Popup.vue'
191
223
  import Checkbox from '@martyrs/src/components/Checkbox/Checkbox.vue'
192
224
  import Field from '@martyrs/src/components/Field/Field.vue'
225
+ import Calendar from '@martyrs/src/components/Calendar/Calendar.vue'
193
226
  import IconFilter from '@martyrs/src/modules/icons/navigation/IconFilter.vue'
194
227
  import IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue'
228
+ import IconCalendar from '@martyrs/src/modules/icons/entities/IconCalendar.vue'
195
229
 
196
230
  const filters = defineModel('filters', {
197
231
  type: Array,
@@ -205,10 +239,13 @@ const selected = defineModel('selected', {
205
239
 
206
240
  const emit = defineEmits(['select'])
207
241
 
242
+ const { formatDate } = useGlobalMixins()
243
+
208
244
  // State
209
245
  const showAllFilters = ref(false)
210
246
  const individualPopups = reactive({})
211
247
  const tempSelected = reactive({})
248
+ const tempDateRange = ref(null)
212
249
 
213
250
  // Initialize popups and temp values
214
251
  watch(filters, (newFilters) => {
@@ -217,9 +254,11 @@ watch(filters, (newFilters) => {
217
254
 
218
255
  if (!tempSelected[filter.value]) {
219
256
  if (filter.type === 'checkbox') {
220
- tempSelected[filter.value] = selected.value[filter.value] || []
257
+ tempSelected[filter.value] = [...(selected.value[filter.value] || [])]
221
258
  } else if (filter.type === 'range') {
222
- tempSelected[filter.value] = selected.value[filter.value] || { min: '', max: '' }
259
+ tempSelected[filter.value] = { ...(selected.value[filter.value] || { min: '', max: '' }) }
260
+ } else if (filter.type === 'date') {
261
+ tempSelected[filter.value] = selected.value[filter.value] || null
223
262
  } else {
224
263
  tempSelected[filter.value] = selected.value[filter.value] || null
225
264
  }
@@ -230,7 +269,16 @@ watch(filters, (newFilters) => {
230
269
  // Sync selected to tempSelected
231
270
  watch(selected, (newSelected) => {
232
271
  Object.keys(newSelected).forEach(key => {
233
- tempSelected[key] = newSelected[key]
272
+ const filter = filters.value.find(f => f.value === key)
273
+ if (filter) {
274
+ if (filter.type === 'checkbox') {
275
+ tempSelected[key] = [...(newSelected[key] || [])]
276
+ } else if (filter.type === 'range') {
277
+ tempSelected[key] = { ...(newSelected[key] || { min: '', max: '' }) }
278
+ } else {
279
+ tempSelected[key] = newSelected[key]
280
+ }
281
+ }
234
282
  })
235
283
  }, { deep: true })
236
284
 
@@ -275,6 +323,11 @@ const formatFilterValue = (filter) => {
275
323
  return `${value.min || '0'}-${value.max || '∞'}`
276
324
  }
277
325
 
326
+ if (filter.type === 'date') {
327
+ if (!value || !value.start || !value.end) return ''
328
+ return `${formatDate(value.start, { dayMonth: true, language: 'en' })} - ${formatDate(value.end, { dayMonth: true, language: 'en' })}`
329
+ }
330
+
278
331
  if (filter.type === 'radio') {
279
332
  const option = filter.options.find(o => o.value === value)
280
333
  return option ? `(${option.label})` : ''
@@ -293,9 +346,11 @@ const cancelFilter = (filterValue) => {
293
346
  const filter = filters.value.find(f => f.value === filterValue)
294
347
  if (filter) {
295
348
  if (filter.type === 'checkbox') {
296
- tempSelected[filterValue] = selected.value[filterValue] || []
349
+ tempSelected[filterValue] = [...(selected.value[filterValue] || [])]
297
350
  } else if (filter.type === 'range') {
298
- tempSelected[filterValue] = selected.value[filterValue] || { min: '', max: '' }
351
+ tempSelected[filterValue] = { ...(selected.value[filterValue] || { min: '', max: '' }) }
352
+ } else if (filter.type === 'date') {
353
+ tempSelected[filterValue] = selected.value[filterValue] || null
299
354
  } else {
300
355
  tempSelected[filterValue] = selected.value[filterValue] || null
301
356
  }
@@ -321,6 +376,9 @@ const resetFilters = () => {
321
376
  } else if (filter.type === 'range') {
322
377
  tempSelected[filter.value] = { min: '', max: '' }
323
378
  selected.value[filter.value] = { min: '', max: '' }
379
+ } else if (filter.type === 'date') {
380
+ tempSelected[filter.value] = null
381
+ selected.value[filter.value] = null
324
382
  } else {
325
383
  tempSelected[filter.value] = null
326
384
  selected.value[filter.value] = null
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <svg class="h-2r w-auto" width="270" height="300" viewBox="0 0 270 300" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <svg class="w-auto" width="270" height="300" viewBox="0 0 270 300" fill="none" xmlns="http://www.w3.org/2000/svg">
3
3
  <g clip-path="url(#clip0)">
4
4
  <path fill-rule="evenodd" clip-rule="evenodd" d="M264.626 52.2791C265.531 57.2858 266 62.4066 266 67.6155C266 125.882 207.349 173.116 135 173.116C62.6507 173.116 4 125.882 4 67.6155C4 62.4066 4.46875 57.2858 5.37413 52.2791C11.0997 32.6306 21.1714 14.8341 34.4789 0C34.1621 2.17658 34 4.38345 34 6.61562C34 43.8948 79.2192 74.1156 135 74.1156C190.781 74.1156 236 43.8948 236 6.61562C236 4.38345 235.838 2.17659 235.521 5.29254e-06C248.829 14.8341 258.9 32.6306 264.626 52.2791Z" fill="#00FF88"/>
5
5
  <path d="M270 165C270 239.558 209.558 300 135 300C60.4416 300 0 239.558 0 165C0 90.4416 60.4416 30 135 30C209.558 30 270 90.4416 270 165Z" fill="#00FF88"/>