@ozdao/martyrs 0.2.604 → 0.2.605

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 (833) hide show
  1. package/README.md +2 -2
  2. package/dist/_virtual/dayjs.min.js +1 -1
  3. package/dist/_virtual/weekOfYear.js +1 -1
  4. package/dist/{abac-Blt8bUTL.js → abac-kz5xI99l.js} +1 -0
  5. package/dist/auth.server.js +52 -12
  6. package/dist/builder.js +67 -2
  7. package/dist/chats.server.js +2 -2
  8. package/dist/community.server.js +3 -3
  9. package/dist/core.server.js +2 -2
  10. package/dist/{core.websocket-Cl76z2wT.js → core.websocket-B2FA8gGl.js} +0 -2
  11. package/dist/{crud-BT5FIvQC.js → crud-Cwn0frBP.js} +8 -2
  12. package/dist/events.server.js +4 -4
  13. package/dist/files.server.js +1 -1
  14. package/dist/gallery.server.js +2 -2
  15. package/dist/governance.server.js +10 -10
  16. package/dist/{index-kvBwwb0w.js → index-CPACC651.js} +1 -1
  17. package/dist/inventory.server.js +4 -4
  18. package/dist/{mailing-DT7nbNjZ.js → mailing-BBCidXGr.js} +38 -2
  19. package/dist/marketplace.server.js +2 -2
  20. package/dist/martyrs/dist/martyrs.es3.js +1 -1
  21. package/dist/martyrs/dist/martyrs.es3.js.map +1 -1
  22. package/dist/{node_modules/.pnpm/dayjs@1.11.13 → martyrs/node_modules/.pnpm/dayjs@1.11.19}/node_modules/dayjs/dayjs.min.js +1 -1
  23. package/dist/{node_modules/.pnpm/dayjs@1.11.13 → martyrs/node_modules/.pnpm/dayjs@1.11.19}/node_modules/dayjs/dayjs.min.js.map +1 -1
  24. package/dist/{node_modules/.pnpm/dayjs@1.11.13 → martyrs/node_modules/.pnpm/dayjs@1.11.19}/node_modules/dayjs/plugin/weekOfYear.js +1 -1
  25. package/dist/{node_modules/.pnpm/dayjs@1.11.13 → martyrs/node_modules/.pnpm/dayjs@1.11.19}/node_modules/dayjs/plugin/weekOfYear.js.map +1 -1
  26. package/dist/{node_modules/.pnpm/vue-draggable-next@2.2.1_sortablejs@1.15.6_vue@3.5.13_typescript@5.8.3_ → martyrs/node_modules/.pnpm/vue-draggable-next@2.3.0_sortablejs@1.15.7_vue@3.5.13}/node_modules/vue-draggable-next/dist/vue-draggable-next.esm-bundler.js +305 -268
  27. package/dist/martyrs/node_modules/.pnpm/vue-draggable-next@2.3.0_sortablejs@1.15.7_vue@3.5.13/node_modules/vue-draggable-next/dist/vue-draggable-next.esm-bundler.js.map +1 -0
  28. package/dist/martyrs/src/components/Address/Address.vue2.js +13 -13
  29. package/dist/martyrs/src/components/Address/Address.vue2.js.map +1 -1
  30. package/dist/martyrs/src/components/Block/Block.vue.js +1 -1
  31. package/dist/martyrs/src/components/Button/Button.vue2.js +1 -1
  32. package/dist/martyrs/src/components/Button/Button.vue2.js.map +1 -1
  33. package/dist/martyrs/src/components/Calendar/Calendar.vue2.js +150 -143
  34. package/dist/martyrs/src/components/Calendar/Calendar.vue2.js.map +1 -1
  35. package/dist/martyrs/src/components/Chart/Chart.vue.js +296 -0
  36. package/dist/martyrs/src/components/Chart/Chart.vue.js.map +1 -0
  37. package/dist/martyrs/src/components/Checkbox/Checkbox.vue.js +1 -1
  38. package/dist/martyrs/src/components/Checkbox/Checkbox.vue.js.map +1 -1
  39. package/dist/martyrs/src/components/Chips/Chips.vue.js +5 -6
  40. package/dist/martyrs/src/components/Chips/Chips.vue.js.map +1 -1
  41. package/dist/martyrs/src/components/Countdown/Countdown.vue.js +5 -5
  42. package/dist/martyrs/src/components/Countdown/Countdown.vue.js.map +1 -1
  43. package/dist/martyrs/src/components/DatePicker/DatePicker.vue.js +2 -2
  44. package/dist/martyrs/src/components/DatePicker/DatePicker.vue.js.map +1 -1
  45. package/dist/martyrs/src/components/EditImages/{EditImages.vue2.js → EditImages.vue.js} +6 -6
  46. package/dist/martyrs/src/components/EditImages/EditImages.vue.js.map +1 -0
  47. package/dist/martyrs/src/components/EmptyState/EmptyState.vue.js +1 -1
  48. package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
  49. package/dist/martyrs/src/components/Field/Field.vue.js +4 -4
  50. package/dist/martyrs/src/components/Field/Field.vue.js.map +1 -1
  51. package/dist/martyrs/src/components/FieldDate/FieldDate.vue.js +3 -3
  52. package/dist/martyrs/src/components/FieldDate/FieldDate.vue.js.map +1 -1
  53. package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue2.js +27 -21
  54. package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue2.js.map +1 -1
  55. package/dist/martyrs/src/components/Map/Map.vue.js +20 -16
  56. package/dist/martyrs/src/components/Map/Map.vue.js.map +1 -1
  57. package/dist/martyrs/src/components/Popup/Popup.vue.js +3 -4
  58. package/dist/martyrs/src/components/Popup/Popup.vue.js.map +1 -1
  59. package/dist/martyrs/src/components/Radio/Radio.vue.js +12 -10
  60. package/dist/martyrs/src/components/Radio/Radio.vue.js.map +1 -1
  61. package/dist/martyrs/src/components/Select/Select.vue.js +2 -2
  62. package/dist/martyrs/src/components/Select/Select.vue.js.map +1 -1
  63. package/dist/martyrs/src/components/Status/Snack.vue.js +1 -1
  64. package/dist/martyrs/src/components/Status/Snack.vue.js.map +1 -1
  65. package/dist/martyrs/src/components/Status/Status.vue.js +1 -1
  66. package/dist/martyrs/src/components/Status/Status.vue.js.map +1 -1
  67. package/dist/martyrs/src/components/Table/Table.vue.js +21 -4
  68. package/dist/martyrs/src/components/Table/Table.vue.js.map +1 -1
  69. package/dist/martyrs/src/components/Tooltip/{Tooltip.vue2.js → Tooltip.vue.js} +2 -2
  70. package/dist/martyrs/src/components/Tooltip/Tooltip.vue.js.map +1 -0
  71. package/dist/martyrs/src/components/Tree/Tree.vue.js +1 -1
  72. package/dist/martyrs/src/components/Upload/Upload.vue2.js +2 -2
  73. package/dist/martyrs/src/components/Upload/Upload.vue2.js.map +1 -1
  74. package/dist/martyrs/src/components/UploadImage/UploadImage.vue.js +2 -2
  75. package/dist/martyrs/src/components/UploadImage/UploadImage.vue.js.map +1 -1
  76. package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.js +1 -1
  77. package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.js.map +1 -1
  78. package/dist/martyrs/src/modules/auth/auth.client.js +14 -2
  79. package/dist/martyrs/src/modules/auth/auth.client.js.map +1 -1
  80. package/dist/martyrs/src/modules/auth/views/components/blocks/OtpDialog.vue.js +4 -4
  81. package/dist/martyrs/src/modules/auth/views/components/blocks/OtpDialog.vue.js.map +1 -1
  82. package/dist/martyrs/src/modules/auth/views/components/blocks/PopupAuth.vue.js +1 -1
  83. package/dist/martyrs/src/modules/auth/views/components/blocks/PopupAuth.vue.js.map +1 -1
  84. package/dist/martyrs/src/modules/auth/views/components/blocks/SidebarUserCard.vue.js +96 -0
  85. package/dist/martyrs/src/modules/auth/views/components/blocks/SidebarUserCard.vue.js.map +1 -0
  86. package/dist/martyrs/src/modules/auth/views/components/pages/BackofficeUsers.vue.js +337 -0
  87. package/dist/martyrs/src/modules/auth/views/components/pages/BackofficeUsers.vue.js.map +1 -0
  88. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +1 -1
  89. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js.map +1 -1
  90. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +1 -1
  91. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js.map +1 -1
  92. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +32 -18
  93. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js.map +1 -1
  94. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +76 -40
  95. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js.map +1 -1
  96. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditSidebar.vue.js +6 -5
  97. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditSidebar.vue.js.map +1 -1
  98. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +4 -4
  99. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js.map +1 -1
  100. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +3 -1
  101. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js.map +1 -1
  102. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +3 -3
  103. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js.map +1 -1
  104. package/dist/martyrs/src/modules/auth/views/components/pages/UserDashboard.vue.js +28 -16
  105. package/dist/martyrs/src/modules/auth/views/components/pages/UserDashboard.vue.js.map +1 -1
  106. package/dist/martyrs/src/modules/auth/views/components/sections/FeaturedUsers.vue.js +1 -1
  107. package/dist/martyrs/src/modules/auth/views/components/sections/FeaturedUsers.vue.js.map +1 -1
  108. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.js +1 -1
  109. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.js.map +1 -1
  110. package/dist/martyrs/src/modules/auth/views/middlewares/auth.validation.js +6 -2
  111. package/dist/martyrs/src/modules/auth/views/middlewares/auth.validation.js.map +1 -1
  112. package/dist/martyrs/src/modules/auth/views/router/users.backoffice.router.js +53 -0
  113. package/dist/martyrs/src/modules/auth/views/router/users.backoffice.router.js.map +1 -0
  114. package/dist/martyrs/src/modules/auth/views/store/auth.js +2 -2
  115. package/dist/martyrs/src/modules/auth/views/store/auth.js.map +1 -1
  116. package/dist/martyrs/src/modules/backoffice/components/pages/Dashboard.vue.js +179 -253
  117. package/dist/martyrs/src/modules/backoffice/components/pages/Dashboard.vue.js.map +1 -1
  118. package/dist/martyrs/src/modules/backoffice/configs/navigation.backoffice.config.js +105 -44
  119. package/dist/martyrs/src/modules/backoffice/configs/navigation.backoffice.config.js.map +1 -1
  120. package/dist/martyrs/src/modules/backoffice/router/backoffice.router.js +11 -5
  121. package/dist/martyrs/src/modules/backoffice/router/backoffice.router.js.map +1 -1
  122. package/dist/martyrs/src/modules/chats/components/blocks/ChatMessage.vue.js +1 -1
  123. package/dist/martyrs/src/modules/chats/components/blocks/ChatMessage.vue.js.map +1 -1
  124. package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.js.map +1 -1
  125. package/dist/martyrs/src/modules/community/community.client.js +4 -4
  126. package/dist/martyrs/src/modules/community/community.client.js.map +1 -1
  127. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js +1 -1
  128. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js.map +1 -1
  129. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +4 -4
  130. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js.map +1 -1
  131. package/dist/martyrs/src/modules/community/components/sections/Comment.vue.js +2 -2
  132. package/dist/martyrs/src/modules/community/components/sections/Comment.vue.js.map +1 -1
  133. package/dist/martyrs/src/modules/constructor/components/elements/ImageUpload.vue.js +1 -1
  134. package/dist/martyrs/src/modules/constructor/components/elements/ImageUpload.vue.js.map +1 -1
  135. package/dist/martyrs/src/modules/core/core.client.js +18 -16
  136. package/dist/martyrs/src/modules/core/core.client.js.map +1 -1
  137. package/dist/martyrs/src/modules/core/views/classes/core.app.js +25 -6
  138. package/dist/martyrs/src/modules/core/views/classes/core.app.js.map +1 -1
  139. package/dist/martyrs/src/modules/core/views/classes/module.manager.js +4 -2
  140. package/dist/martyrs/src/modules/core/views/classes/module.manager.js.map +1 -1
  141. package/dist/martyrs/src/modules/core/views/components/blocks/AlertDialog.vue.js +1 -1
  142. package/dist/martyrs/src/modules/core/views/components/blocks/AlertDialog.vue.js.map +1 -1
  143. package/dist/martyrs/src/modules/core/views/components/blocks/BlockSearch.vue.js +1 -1
  144. package/dist/martyrs/src/modules/core/views/components/blocks/BlockSearch.vue.js.map +1 -1
  145. package/dist/martyrs/src/modules/core/views/components/blocks/BlockSlider.vue.js +132 -0
  146. package/dist/martyrs/src/modules/core/views/components/blocks/BlockSlider.vue.js.map +1 -0
  147. package/dist/martyrs/src/modules/core/views/components/blocks/CardHeader.vue.js +3 -3
  148. package/dist/martyrs/src/modules/core/views/components/blocks/CardHeader.vue.js.map +1 -1
  149. package/dist/martyrs/src/modules/core/views/components/blocks/CardStat.vue.js +6 -28
  150. package/dist/martyrs/src/modules/core/views/components/blocks/CardStat.vue.js.map +1 -1
  151. package/dist/martyrs/src/modules/{auth → core}/views/components/blocks/CardUser.vue.js +29 -11
  152. package/dist/martyrs/src/modules/{auth → core}/views/components/blocks/CardUser.vue.js.map +1 -1
  153. package/dist/martyrs/src/modules/core/views/components/blocks/HelpCard.vue.js +2 -2
  154. package/dist/martyrs/src/modules/core/views/components/blocks/HelpCard.vue.js.map +1 -1
  155. package/dist/martyrs/src/modules/core/views/components/blocks/PopupDateSelector.vue.js +41 -26
  156. package/dist/martyrs/src/modules/core/views/components/blocks/PopupDateSelector.vue.js.map +1 -1
  157. package/dist/martyrs/src/modules/core/views/components/elements/OnlineIndicator.vue.js +1 -1
  158. package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js +2 -1
  159. package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js.map +1 -1
  160. package/dist/martyrs/src/modules/core/views/components/pages/404.vue.js +2 -2
  161. package/dist/martyrs/src/modules/core/views/components/pages/404.vue.js.map +1 -1
  162. package/dist/martyrs/src/modules/core/views/components/partials/BottomNavigationBar.vue.js +5 -5
  163. package/dist/martyrs/src/modules/core/views/components/partials/BottomNavigationBar.vue.js.map +1 -1
  164. package/dist/martyrs/src/modules/core/views/components/partials/CitySelection.vue.js +2 -2
  165. package/dist/martyrs/src/modules/core/views/components/partials/CitySelection.vue.js.map +1 -1
  166. package/dist/martyrs/src/modules/core/views/components/partials/Footer.vue.js +2 -2
  167. package/dist/martyrs/src/modules/core/views/components/partials/Footer.vue.js.map +1 -1
  168. package/dist/martyrs/src/modules/core/views/components/partials/Header.vue.js +4 -4
  169. package/dist/martyrs/src/modules/core/views/components/partials/Header.vue.js.map +1 -1
  170. package/dist/martyrs/src/modules/core/views/components/partials/LocationSelection.vue.js +1 -1
  171. package/dist/martyrs/src/modules/core/views/components/partials/LocationSelection.vue.js.map +1 -1
  172. package/dist/martyrs/src/modules/core/views/components/partials/Navigation.vue.js +2 -2
  173. package/dist/martyrs/src/modules/core/views/components/partials/Navigation.vue.js.map +1 -1
  174. package/dist/martyrs/src/modules/core/views/components/sections/Filters.vue2.js +3 -3
  175. package/dist/martyrs/src/modules/core/views/components/sections/Filters.vue2.js.map +1 -1
  176. package/dist/martyrs/src/modules/core/views/components/sections/SectionPageTitle.vue.js +2 -2
  177. package/dist/martyrs/src/modules/core/views/components/sections/SectionPageTitle.vue.js.map +1 -1
  178. package/dist/martyrs/src/modules/core/views/components/sections/Walkthrough.vue.js +6 -6
  179. package/dist/martyrs/src/modules/core/views/components/sections/Walkthrough.vue.js.map +1 -1
  180. package/dist/martyrs/src/modules/core/views/mixins/mixins.js +14 -1
  181. package/dist/martyrs/src/modules/core/views/mixins/mixins.js.map +1 -1
  182. package/dist/martyrs/src/modules/core/views/plugins/date-picker.plugin.js +8 -5
  183. package/dist/martyrs/src/modules/core/views/plugins/date-picker.plugin.js.map +1 -1
  184. package/dist/martyrs/src/modules/core/views/store/core.store.js +4 -0
  185. package/dist/martyrs/src/modules/core/views/store/core.store.js.map +1 -1
  186. package/dist/martyrs/src/modules/core/views/utils/vue-app-renderer.js +3 -0
  187. package/dist/martyrs/src/modules/core/views/utils/vue-app-renderer.js.map +1 -1
  188. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +1 -1
  189. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +9 -9
  190. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js.map +1 -1
  191. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +1 -1
  192. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js.map +1 -1
  193. package/dist/martyrs/src/modules/events/components/sections/EditTickets.vue.js +1 -1
  194. package/dist/martyrs/src/modules/events/components/sections/EditTickets.vue.js.map +1 -1
  195. package/dist/martyrs/src/modules/events/components/sections/SelectDate.vue.js +1 -1
  196. package/dist/martyrs/src/modules/events/components/sections/SelectDate.vue.js.map +1 -1
  197. package/dist/martyrs/src/modules/events/events.client.js +4 -4
  198. package/dist/martyrs/src/modules/events/events.client.js.map +1 -1
  199. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +2 -2
  200. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js.map +1 -1
  201. package/dist/martyrs/src/modules/gallery/router/gallery.router.js +3 -3
  202. package/dist/martyrs/src/modules/gallery/router/gallery.router.js.map +1 -1
  203. package/dist/martyrs/src/modules/governance/views/components/blocks/CardInitiativeItem.vue.js +3 -3
  204. package/dist/martyrs/src/modules/governance/views/components/blocks/CardInitiativeItem.vue.js.map +1 -1
  205. package/dist/martyrs/src/modules/governance/views/components/blocks/CardSprintItem.vue.js +4 -4
  206. package/dist/martyrs/src/modules/governance/views/components/blocks/CardSprintItem.vue.js.map +1 -1
  207. package/dist/martyrs/src/modules/governance/views/components/blocks/CardTaskItem.vue.js +2 -2
  208. package/dist/martyrs/src/modules/governance/views/components/blocks/CardTaskItem.vue.js.map +1 -1
  209. package/dist/martyrs/src/modules/governance/views/components/blocks/CardVotingItem.vue.js +3 -3
  210. package/dist/martyrs/src/modules/governance/views/components/blocks/CardVotingItem.vue.js.map +1 -1
  211. package/dist/martyrs/src/modules/governance/views/components/pages/Initiatives.vue.js +3 -3
  212. package/dist/martyrs/src/modules/governance/views/components/pages/Initiatives.vue.js.map +1 -1
  213. package/dist/martyrs/src/modules/governance/views/components/partials/TaskStatusBadge.vue.js +1 -1
  214. package/dist/martyrs/src/modules/governance/views/components/partials/TaskStatusBadge.vue.js.map +1 -1
  215. package/dist/martyrs/src/modules/governance/views/components/sections/FormSprintDetails.vue.js +1 -1
  216. package/dist/martyrs/src/modules/governance/views/components/sections/FormSprintDetails.vue.js.map +1 -1
  217. package/dist/martyrs/src/modules/governance/views/components/sections/FormTaskDetails.vue.js +1 -1
  218. package/dist/martyrs/src/modules/governance/views/components/sections/FormTaskDetails.vue.js.map +1 -1
  219. package/dist/martyrs/src/modules/governance/views/router/governance.router.js +3 -3
  220. package/dist/martyrs/src/modules/governance/views/router/governance.router.js.map +1 -1
  221. package/dist/martyrs/src/modules/icons/components/IconSearchPopup.vue.js +2 -2
  222. package/dist/martyrs/src/modules/icons/components/IconSearchPopup.vue.js.map +1 -1
  223. package/dist/martyrs/src/modules/icons/entities/IconApplications.vue.js +32 -0
  224. package/dist/martyrs/src/modules/icons/entities/IconApplications.vue.js.map +1 -0
  225. package/dist/martyrs/src/modules/icons/entities/IconCustomers.vue.js +32 -0
  226. package/dist/martyrs/src/modules/icons/entities/IconCustomers.vue.js.map +1 -0
  227. package/dist/martyrs/src/modules/icons/entities/IconUsers.vue.js +32 -0
  228. package/dist/martyrs/src/modules/icons/entities/IconUsers.vue.js.map +1 -0
  229. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +2 -2
  230. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js.map +1 -1
  231. package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.js +2 -2
  232. package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.js.map +1 -1
  233. package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js +1 -1
  234. package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js.map +1 -1
  235. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +3 -3
  236. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js.map +1 -1
  237. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js +290 -173
  238. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js.map +1 -1
  239. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +1 -1
  240. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js.map +1 -1
  241. package/dist/martyrs/src/modules/inventory/inventory.client.js +4 -4
  242. package/dist/martyrs/src/modules/inventory/inventory.client.js.map +1 -1
  243. package/dist/martyrs/src/modules/inventory/router/inventory.router.js +15 -0
  244. package/dist/martyrs/src/modules/inventory/router/inventory.router.js.map +1 -1
  245. package/dist/martyrs/src/modules/landing/components/sections/SectionEarn.vue.js +4 -4
  246. package/dist/martyrs/src/modules/landing/components/sections/SectionEarn.vue.js.map +1 -1
  247. package/dist/martyrs/src/modules/landing/components/sections/SectionFeatures.vue.js +1 -1
  248. package/dist/martyrs/src/modules/landing/components/sections/SectionFeatures.vue.js.map +1 -1
  249. package/dist/martyrs/src/modules/landing/components/sections/SectionFeaturesImages.vue.js +3 -3
  250. package/dist/martyrs/src/modules/landing/components/sections/SectionFeaturesImages.vue.js.map +1 -1
  251. package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.js +2 -2
  252. package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.js.map +1 -1
  253. package/dist/martyrs/src/modules/landing/components/sections/SectionHeroToken.vue.js +1 -1
  254. package/dist/martyrs/src/modules/landing/components/sections/SectionHeroToken.vue.js.map +1 -1
  255. package/dist/martyrs/src/modules/landing/components/sections/SectionMobileApp.vue.js +2 -2
  256. package/dist/martyrs/src/modules/landing/components/sections/SectionMobileApp.vue.js.map +1 -1
  257. package/dist/martyrs/src/modules/landing/components/sections/SectionOverview.vue.js +1 -1
  258. package/dist/martyrs/src/modules/landing/components/sections/SectionOverview.vue.js.map +1 -1
  259. package/dist/martyrs/src/modules/landing/components/sections/SectionRoadmap.vue.js +2 -2
  260. package/dist/martyrs/src/modules/landing/components/sections/SectionRoadmap.vue.js.map +1 -1
  261. package/dist/martyrs/src/modules/landing/components/sections/SubscribeNewsletter.vue.js +1 -1
  262. package/dist/martyrs/src/modules/landing/components/sections/SubscribeNewsletter.vue.js.map +1 -1
  263. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js +3 -3
  264. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js.map +1 -1
  265. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +2 -2
  266. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js.map +1 -1
  267. package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.js +2 -2
  268. package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.js.map +1 -1
  269. package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.js +2 -2
  270. package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.js.map +1 -1
  271. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js +2 -2
  272. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js.map +1 -1
  273. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js +6 -6
  274. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js.map +1 -1
  275. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +2 -2
  276. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js.map +1 -1
  277. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +1 -1
  278. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js.map +1 -1
  279. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +5 -5
  280. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js.map +1 -1
  281. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +3 -3
  282. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js.map +1 -1
  283. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +8 -8
  284. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js.map +1 -1
  285. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +5 -5
  286. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js.map +1 -1
  287. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +11 -11
  288. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js.map +1 -1
  289. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +3 -3
  290. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js.map +1 -1
  291. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +11 -11
  292. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js.map +1 -1
  293. package/dist/martyrs/src/modules/music/components/player/FullscreenPlayer.vue.js +4 -4
  294. package/dist/martyrs/src/modules/music/components/player/FullscreenPlayer.vue.js.map +1 -1
  295. package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.js +2 -2
  296. package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.js.map +1 -1
  297. package/dist/martyrs/src/modules/notifications/components/sections/NotificationPreferences.vue.js +162 -68
  298. package/dist/martyrs/src/modules/notifications/components/sections/NotificationPreferences.vue.js.map +1 -1
  299. package/dist/martyrs/src/modules/notifications/notifications.client.js +181 -17
  300. package/dist/martyrs/src/modules/notifications/notifications.client.js.map +1 -1
  301. package/dist/martyrs/src/modules/notifications/router/notifications.backoffice.router.js +21 -0
  302. package/dist/martyrs/src/modules/notifications/router/notifications.backoffice.router.js.map +1 -0
  303. package/dist/martyrs/src/modules/notifications/router/notifications.router.js +13 -42
  304. package/dist/martyrs/src/modules/notifications/router/notifications.router.js.map +1 -1
  305. package/dist/martyrs/src/modules/notifications/store/notifications.store.js +66 -1
  306. package/dist/martyrs/src/modules/notifications/store/notifications.store.js.map +1 -1
  307. package/dist/martyrs/src/modules/orders/components/blocks/CardApplication.vue.js +9 -7
  308. package/dist/martyrs/src/modules/orders/components/blocks/CardApplication.vue.js.map +1 -1
  309. package/dist/martyrs/src/modules/orders/components/blocks/CardCustomer.vue.js +11 -9
  310. package/dist/martyrs/src/modules/orders/components/blocks/CardCustomer.vue.js.map +1 -1
  311. package/dist/martyrs/src/modules/orders/components/blocks/CardOrder.vue.js +9 -9
  312. package/dist/martyrs/src/modules/orders/components/blocks/CardOrder.vue.js.map +1 -1
  313. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.js +66 -19
  314. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.js.map +1 -1
  315. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.js +29 -27
  316. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.js.map +1 -1
  317. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.js +7 -12
  318. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.js.map +1 -1
  319. package/dist/martyrs/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue.js +1 -1
  320. package/dist/martyrs/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue.js.map +1 -1
  321. package/dist/martyrs/src/modules/orders/components/elements/PriceTotal.vue.js +4 -4
  322. package/dist/martyrs/src/modules/orders/components/elements/PriceTotal.vue.js.map +1 -1
  323. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +1 -1
  324. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js.map +1 -1
  325. package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js +46 -25
  326. package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js.map +1 -1
  327. package/dist/martyrs/src/modules/orders/components/pages/Applications.vue.js +2 -2
  328. package/dist/martyrs/src/modules/orders/components/pages/Applications.vue.js.map +1 -1
  329. package/dist/martyrs/src/modules/orders/components/pages/Customers.vue.js +54 -38
  330. package/dist/martyrs/src/modules/orders/components/pages/Customers.vue.js.map +1 -1
  331. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +454 -139
  332. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js.map +1 -1
  333. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +2 -1
  334. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js.map +1 -1
  335. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +141 -68
  336. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js.map +1 -1
  337. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.js +38 -32
  338. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.js.map +1 -1
  339. package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.js +1 -1
  340. package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.js.map +1 -1
  341. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js +4 -4
  342. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js.map +1 -1
  343. package/dist/martyrs/src/modules/orders/components/sections/AskToLogin.vue.js +1 -1
  344. package/dist/martyrs/src/modules/orders/components/sections/AskToLogin.vue.js.map +1 -1
  345. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js +167 -95
  346. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js.map +1 -1
  347. package/dist/martyrs/src/modules/orders/orders.client.js +22 -20
  348. package/dist/martyrs/src/modules/orders/orders.client.js.map +1 -1
  349. package/dist/martyrs/src/modules/orders/store/orders.js +3 -5
  350. package/dist/martyrs/src/modules/orders/store/orders.js.map +1 -1
  351. package/dist/martyrs/src/modules/orders/store/shopcart.js +5 -5
  352. package/dist/martyrs/src/modules/orders/store/shopcart.js.map +1 -1
  353. package/dist/martyrs/src/modules/orders/utils/rent-price.js +60 -0
  354. package/dist/martyrs/src/modules/orders/utils/rent-price.js.map +1 -0
  355. package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.js +2 -2
  356. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +45 -55
  357. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js.map +1 -1
  358. package/dist/martyrs/src/modules/organizations/components/blocks/EmptyState.vue.js +1 -1
  359. package/dist/martyrs/src/modules/organizations/components/blocks/Rating.vue.js +1 -1
  360. package/dist/martyrs/src/modules/organizations/components/blocks/Socials.vue.js +2 -2
  361. package/dist/martyrs/src/modules/organizations/components/blocks/Socials.vue.js.map +1 -1
  362. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +1 -1
  363. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js.map +1 -1
  364. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js +3 -3
  365. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js.map +1 -1
  366. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js +1 -1
  367. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js.map +1 -1
  368. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js +1 -1
  369. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js.map +1 -1
  370. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js +2 -2
  371. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js.map +1 -1
  372. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +8 -8
  373. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js.map +1 -1
  374. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +216 -83
  375. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js.map +1 -1
  376. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +35 -25
  377. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js.map +1 -1
  378. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js +3 -2
  379. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js.map +1 -1
  380. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +2 -2
  381. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js.map +1 -1
  382. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +2 -2
  383. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js.map +1 -1
  384. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.js +20 -18
  385. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.js.map +1 -1
  386. package/dist/martyrs/src/modules/organizations/organizations.client.js +39 -33
  387. package/dist/martyrs/src/modules/organizations/organizations.client.js.map +1 -1
  388. package/dist/martyrs/src/modules/organizations/router/organizations.backoffice.router.js +81 -0
  389. package/dist/martyrs/src/modules/organizations/router/organizations.backoffice.router.js.map +1 -1
  390. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -1
  391. package/dist/martyrs/src/modules/pages/views/components/pages/Pages.vue.js +1 -1
  392. package/dist/martyrs/src/modules/pages/views/components/pages/Pages.vue.js.map +1 -1
  393. package/dist/martyrs/src/modules/pages/views/router/pages.router.js +2 -2
  394. package/dist/martyrs/src/modules/pages/views/router/pages.router.js.map +1 -1
  395. package/dist/martyrs/src/modules/products/components/blocks/CardPosition.vue.js +1 -1
  396. package/dist/martyrs/src/modules/products/components/blocks/CardPosition.vue.js.map +1 -1
  397. package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.js +2 -2
  398. package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.js.map +1 -1
  399. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.js +3 -3
  400. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.js.map +1 -1
  401. package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.js +2 -2
  402. package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.js.map +1 -1
  403. package/dist/martyrs/src/modules/products/components/blocks/ProductVariants.vue.js +3 -3
  404. package/dist/martyrs/src/modules/products/components/blocks/ProductVariants.vue.js.map +1 -1
  405. package/dist/martyrs/src/modules/products/components/elements/Price.vue.js +2 -2
  406. package/dist/martyrs/src/modules/products/components/elements/Price.vue.js.map +1 -1
  407. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +9 -25
  408. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js.map +1 -1
  409. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +34 -17
  410. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js.map +1 -1
  411. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +96 -96
  412. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js.map +1 -1
  413. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +1 -1
  414. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js.map +1 -1
  415. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +2 -2
  416. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js.map +1 -1
  417. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +22 -9
  418. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js.map +1 -1
  419. package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.js +1 -1
  420. package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.js.map +1 -1
  421. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js +1 -1
  422. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js.map +1 -1
  423. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +3 -3
  424. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js.map +1 -1
  425. package/dist/martyrs/src/modules/products/router/categories.router.js +2 -2
  426. package/dist/martyrs/src/modules/products/router/categories.router.js.map +1 -1
  427. package/dist/martyrs/src/modules/products/router/products.router.js +17 -3
  428. package/dist/martyrs/src/modules/products/router/products.router.js.map +1 -1
  429. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttBar.vue.js +11 -10
  430. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttBar.vue.js.map +1 -1
  431. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttChart.vue.js +197 -81
  432. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttChart.vue.js.map +1 -1
  433. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttHeaderCell.vue.js +2 -2
  434. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttHeaderCell.vue.js.map +1 -1
  435. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +2 -2
  436. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js.map +1 -1
  437. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js +685 -80
  438. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js.map +1 -1
  439. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +68 -18
  440. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js.map +1 -1
  441. package/dist/martyrs/src/modules/rents/views/router/rents.router.js +3 -3
  442. package/dist/martyrs/src/modules/rents/views/router/rents.router.js.map +1 -1
  443. package/dist/martyrs/src/modules/rents/views/store/rents.store.js +1 -1
  444. package/dist/martyrs/src/modules/rents/views/store/rents.store.js.map +1 -1
  445. package/dist/martyrs/src/modules/reports/components/pages/BackofficeReports.vue.js +3 -3
  446. package/dist/martyrs/src/modules/reports/components/pages/BackofficeReports.vue.js.map +1 -1
  447. package/dist/martyrs/src/modules/reports/router/reports.router.js +1 -1
  448. package/dist/martyrs/src/modules/reports/router/reports.router.js.map +1 -1
  449. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js +5 -5
  450. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js.map +1 -1
  451. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js +1 -1
  452. package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.js +3 -3
  453. package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.js.map +1 -1
  454. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +9 -7
  455. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js.map +1 -1
  456. package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.js +29 -37
  457. package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.js.map +1 -1
  458. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +8 -8
  459. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js.map +1 -1
  460. package/dist/martyrs/src/modules/spots/router/spots.router.js +3 -3
  461. package/dist/martyrs/src/modules/spots/router/spots.router.js.map +1 -1
  462. package/dist/martyrs/src/modules/wallet/views/components/elements/ConnectMetamask.vue.js +3 -3
  463. package/dist/martyrs/src/modules/wallet/views/components/elements/ConnectMetamask.vue.js.map +1 -1
  464. package/dist/martyrs/src/modules/wallet/views/components/pages/Payments.vue.js +1 -1
  465. package/dist/martyrs/src/modules/wallet/views/components/pages/Payments.vue.js.map +1 -1
  466. package/dist/martyrs/src/modules/wallet/views/router/wallet.router.js +1 -1
  467. package/dist/martyrs/src/modules/wallet/views/router/wallet.router.js.map +1 -1
  468. package/dist/martyrs.es10.js +59 -57
  469. package/dist/martyrs.es106.js +2 -2
  470. package/dist/martyrs.es11.js +31 -30
  471. package/dist/martyrs.es113.js +22 -166
  472. package/dist/martyrs.es114.js +4 -457
  473. package/dist/martyrs.es115.js +8 -40
  474. package/dist/martyrs.es116.js +166 -9
  475. package/dist/martyrs.es117.js +451 -43
  476. package/dist/martyrs.es118.js +38 -10
  477. package/dist/martyrs.es119.js +9 -44
  478. package/dist/martyrs.es12.js +8 -9
  479. package/dist/martyrs.es120.js +49 -4
  480. package/dist/martyrs.es121.js +10 -127
  481. package/dist/martyrs.es122.js +42 -98
  482. package/dist/martyrs.es123.js +4 -86
  483. package/dist/martyrs.es124.js +120 -29
  484. package/dist/martyrs.es125.js +99 -10
  485. package/dist/martyrs.es126.js +71 -24
  486. package/dist/martyrs.es127.js +37 -8
  487. package/dist/martyrs.es128.js +11 -22
  488. package/dist/martyrs.es129.js +39 -4
  489. package/dist/martyrs.es13.js +22 -19
  490. package/dist/martyrs.es130.js +9 -8
  491. package/dist/martyrs.es131.js +7 -7
  492. package/dist/martyrs.es132.js +2 -2
  493. package/dist/martyrs.es133.js +1 -1
  494. package/dist/martyrs.es135.js +1 -1
  495. package/dist/martyrs.es137.js +1 -1
  496. package/dist/martyrs.es138.js +7 -8
  497. package/dist/martyrs.es139.js +8 -7
  498. package/dist/martyrs.es14.js +2 -2
  499. package/dist/martyrs.es140.js +2 -2
  500. package/dist/martyrs.es144.js +10 -29
  501. package/dist/martyrs.es145.js +29 -10
  502. package/dist/martyrs.es146.js +2 -2
  503. package/dist/martyrs.es147.js +2 -2
  504. package/dist/martyrs.es149.js +1 -1
  505. package/dist/martyrs.es2.js +31 -30
  506. package/dist/martyrs.es22.js +16 -16
  507. package/dist/martyrs.es23.js +8 -8
  508. package/dist/martyrs.es24.js +9 -9
  509. package/dist/martyrs.es26.js +9 -11
  510. package/dist/martyrs.es27.js +9 -9
  511. package/dist/martyrs.es28.js +1 -1
  512. package/dist/martyrs.es29.js +5 -5
  513. package/dist/martyrs.es3.js +1 -1
  514. package/dist/martyrs.es38.js +1 -1
  515. package/dist/martyrs.es4.js +12 -12
  516. package/dist/martyrs.es41.js +34 -224
  517. package/dist/martyrs.es5.js +251 -238
  518. package/dist/martyrs.es61.js +33 -26
  519. package/dist/martyrs.es74.js +7 -7
  520. package/dist/martyrs.es76.js +12 -12
  521. package/dist/martyrs.es8.js +31 -31
  522. package/dist/music.server.js +3 -3
  523. package/dist/node_modules/.pnpm/@googlemaps_js-api-loader@2.0.2/node_modules/@googlemaps/js-api-loader/dist/index.js +90 -0
  524. package/dist/node_modules/.pnpm/@googlemaps_js-api-loader@2.0.2/node_modules/@googlemaps/js-api-loader/dist/index.js.map +1 -0
  525. package/dist/notifications.server.js +255 -23
  526. package/dist/orders.server.js +674 -136
  527. package/dist/organizations.server.js +11 -6
  528. package/dist/products.server.js +68 -7
  529. package/dist/{queryProcessor-C_5Iipam.js → queryProcessor-B2FCngFP.js} +3 -2
  530. package/dist/rents.server.js +183 -7
  531. package/dist/{socials.schema-DxnnaBgO.js → socials.schema-C3RjkqJv.js} +4 -0
  532. package/dist/spots.server.js +1 -1
  533. package/dist/style.css +292 -204
  534. package/dist/{tickets.controller-DdF85W-i.js → tickets.controller-Dpzf4kQx.js} +1 -1
  535. package/dist/wallet.server.js +2 -2
  536. package/package.json +5 -3
  537. package/src/builder/modes/ssr.rspack.dev.js +2 -0
  538. package/src/builder/rspack/rspack.config.ssr.client.js +58 -1
  539. package/src/builder/ssr/asset-resolver.js +1 -1
  540. package/src/builder/templates/page.js +2 -0
  541. package/src/components/Address/Address.vue +16 -16
  542. package/src/components/Button/Button.vue +0 -1
  543. package/src/components/ButtonSegmented/ButtonSegmented.vue +1 -1
  544. package/src/components/Calendar/Calendar.vue +141 -118
  545. package/src/components/Chart/Chart.vue +216 -0
  546. package/src/components/Checkbox/Checkbox.vue +1 -1
  547. package/src/components/Chips/Chips.vue +4 -5
  548. package/src/components/Countdown/Countdown.vue +5 -5
  549. package/src/components/DatePicker/DatePicker.vue +2 -2
  550. package/src/components/EditImages/EditImages.vue +3 -3
  551. package/src/components/EmptyState/EmptyState.vue +1 -1
  552. package/src/components/Feed/Feed.vue +5 -0
  553. package/src/components/Field/Field.vue +3 -3
  554. package/src/components/FieldDate/FieldDate.vue +2 -2
  555. package/src/components/LocationMarker/LocationMarker.vue +28 -21
  556. package/src/components/Map/Map.vue +20 -15
  557. package/src/components/Popup/Popup.vue +3 -3
  558. package/src/components/Radio/Radio.vue +2 -2
  559. package/src/components/Select/Select.vue +1 -1
  560. package/src/components/Status/Snack.vue +1 -1
  561. package/src/components/Status/Status.vue +1 -1
  562. package/src/components/Table/Table.vue +16 -1
  563. package/src/components/Upload/Upload.vue +1 -1
  564. package/src/components/UploadImage/UploadImage.vue +1 -1
  565. package/src/components/UploadImageMultiple/UploadImageMultiple.vue +1 -1
  566. package/src/jit/rules.js +4 -0
  567. package/src/modules/TASKS.MD +16 -3
  568. package/src/modules/auth/auth.client.js +18 -3
  569. package/src/modules/auth/controllers/routes/users.routes.js +18 -0
  570. package/src/modules/auth/controllers/services/auth.service.js +3 -3
  571. package/src/modules/auth/controllers/services/users.service.js +34 -5
  572. package/src/modules/auth/views/components/blocks/OtpDialog.vue +4 -4
  573. package/src/modules/auth/views/components/blocks/PopupAuth.vue +1 -1
  574. package/src/modules/auth/views/components/blocks/SidebarUserCard.vue +95 -0
  575. package/src/modules/auth/views/components/pages/BackofficeUsers.vue +337 -0
  576. package/src/modules/auth/views/components/pages/Invite.vue +1 -1
  577. package/src/modules/auth/views/components/pages/Profile.vue +1 -1
  578. package/src/modules/auth/views/components/pages/ProfileEdit.vue +23 -14
  579. package/src/modules/auth/views/components/pages/ProfileEditAccount.vue +45 -26
  580. package/src/modules/auth/views/components/pages/ProfileEditSidebar.vue +8 -7
  581. package/src/modules/auth/views/components/pages/ResetPassword.vue +4 -4
  582. package/src/modules/auth/views/components/pages/SignUp.vue +3 -3
  583. package/src/modules/auth/views/components/pages/UserDashboard.vue +8 -5
  584. package/src/modules/auth/views/components/sections/FeaturedUsers.vue +1 -1
  585. package/src/modules/auth/views/components/sections/SliderFeatures.vue +1 -1
  586. package/src/modules/auth/views/middlewares/auth.validation.js +7 -2
  587. package/src/modules/auth/views/router/users.backoffice.router.js +39 -0
  588. package/src/modules/auth/views/store/auth.js +2 -2
  589. package/src/modules/backoffice/components/admin/Backcalls.vue +2 -2
  590. package/src/modules/backoffice/components/admin/Dashboard.sublime-workspace +1 -1
  591. package/src/modules/backoffice/components/admin/FastOrders.vue +3 -3
  592. package/src/modules/backoffice/components/admin/UserEdit.vue +1 -1
  593. package/src/modules/backoffice/components/pages/Dashboard.vue +102 -139
  594. package/src/modules/backoffice/configs/navigation.backoffice.config.js +91 -29
  595. package/src/modules/backoffice/router/backoffice.router.js +7 -1
  596. package/src/modules/chats/components/blocks/ChatMessage.vue +1 -1
  597. package/src/modules/chats/components/sections/ChatWindow.vue +1 -1
  598. package/src/modules/community/community.client.js +4 -4
  599. package/src/modules/community/components/blocks/CardBlogpost.vue +1 -1
  600. package/src/modules/community/components/layouts/Community.vue +4 -4
  601. package/src/modules/community/components/sections/Comment.vue +1 -1
  602. package/src/modules/constructor/components/elements/ImageUpload.vue +1 -1
  603. package/src/modules/core/TASK.MD +2 -2
  604. package/src/modules/core/controllers/classes/abac/abac.core.js +1 -0
  605. package/src/modules/core/controllers/classes/core.websocket.js +0 -2
  606. package/src/modules/core/controllers/classes/crud/crud.core.js +6 -0
  607. package/src/modules/core/controllers/classes/crud/crud.service.js +6 -0
  608. package/src/modules/core/controllers/utils/mailing.js +35 -26
  609. package/src/modules/core/controllers/utils/queryProcessor.js +4 -2
  610. package/src/modules/core/core.client.js +1 -0
  611. package/src/modules/core/models/schemas/embedding.schema.js +8 -0
  612. package/src/modules/core/models/schemas/socials.schema.js +4 -0
  613. package/src/modules/core/sw.js +448 -0
  614. package/src/modules/core/views/classes/core.app.js +37 -13
  615. package/src/modules/core/views/classes/module.manager.js +3 -1
  616. package/src/modules/core/views/components/blocks/AlertDialog.vue +1 -1
  617. package/src/modules/core/views/components/blocks/BlockSearch.vue +1 -1
  618. package/src/modules/core/views/components/blocks/BlockSlider.vue +96 -0
  619. package/src/modules/core/views/components/blocks/CardHeader.vue +2 -2
  620. package/src/modules/core/views/components/blocks/CardStat.vue +4 -18
  621. package/src/modules/{auth → core}/views/components/blocks/CardUser.vue +45 -20
  622. package/src/modules/core/views/components/blocks/HelpCard.vue +1 -1
  623. package/src/modules/core/views/components/blocks/PopupAuth.vue +1 -1
  624. package/src/modules/core/views/components/blocks/PopupDateSelector.vue +41 -24
  625. package/src/modules/core/views/components/layouts/Client.vue +1 -1
  626. package/src/modules/core/views/components/pages/404.vue +5 -5
  627. package/src/modules/core/views/components/partials/BottomNavigationBar.vue +5 -5
  628. package/src/modules/core/views/components/partials/CitySelection.vue +2 -2
  629. package/src/modules/core/views/components/partials/Footer.centered.vue +2 -2
  630. package/src/modules/core/views/components/partials/Footer.vue +2 -2
  631. package/src/modules/core/views/components/partials/Header.vue +3 -3
  632. package/src/modules/core/views/components/partials/LocationSelection.vue +1 -1
  633. package/src/modules/core/views/components/partials/Navigation.vue +1 -1
  634. package/src/modules/core/views/components/sections/Filters.vue +2 -2
  635. package/src/modules/core/views/components/sections/SectionPageTitle.vue +2 -2
  636. package/src/modules/core/views/components/sections/Walkthrough.vue +6 -6
  637. package/src/modules/core/views/mixins/mixins.js +17 -0
  638. package/src/modules/core/views/plugins/date-picker.plugin.js +8 -5
  639. package/src/modules/core/views/store/core.store.js +5 -0
  640. package/src/modules/core/views/utils/vue-app-renderer.js +5 -0
  641. package/src/modules/events/components/pages/EditEventTickets.vue +9 -9
  642. package/src/modules/events/components/pages/Event.vue +2 -2
  643. package/src/modules/events/components/sections/EditTickets.vue +1 -1
  644. package/src/modules/events/components/sections/SelectDate.vue +1 -1
  645. package/src/modules/events/events.client.js +4 -4
  646. package/src/modules/gallery/components/sections/BackofficeGallery.vue +1 -1
  647. package/src/modules/gallery/router/gallery.router.js +3 -3
  648. package/src/modules/governance/middlewares/sprints.verifier.js +3 -3
  649. package/src/modules/governance/middlewares/tasks.verifier.js +3 -3
  650. package/src/modules/governance/models/sprint.model.js +1 -1
  651. package/src/modules/governance/models/task.model.js +1 -1
  652. package/src/modules/governance/reactcode/src/components/TaskStatusBadge.tsx +1 -1
  653. package/src/modules/governance/views/components/blocks/CardInitiativeItem.vue +3 -3
  654. package/src/modules/governance/views/components/blocks/CardSprintItem.vue +4 -4
  655. package/src/modules/governance/views/components/blocks/CardTaskItem.vue +2 -2
  656. package/src/modules/governance/views/components/blocks/CardVotingItem.vue +3 -3
  657. package/src/modules/governance/views/components/pages/Initiatives.vue +3 -3
  658. package/src/modules/governance/views/components/partials/TaskStatusBadge.vue +1 -1
  659. package/src/modules/governance/views/components/sections/FormSprintDetails.vue +1 -1
  660. package/src/modules/governance/views/components/sections/FormTaskDetails.vue +1 -1
  661. package/src/modules/governance/views/router/governance.router.js +3 -3
  662. package/src/modules/icons/components/IconSearchPopup.vue +1 -1
  663. package/src/modules/icons/entities/IconApplications.vue +14 -0
  664. package/src/modules/icons/entities/IconCustomers.vue +14 -0
  665. package/src/modules/icons/entities/IconUsers.vue +14 -0
  666. package/src/modules/inventory/components/forms/AdjustmentForm.vue +2 -2
  667. package/src/modules/inventory/components/forms/ColumnSettingsMenu.vue +2 -2
  668. package/src/modules/inventory/components/forms/HistoryView.vue +1 -1
  669. package/src/modules/inventory/components/forms/StockAlertsForm.vue +3 -3
  670. package/src/modules/inventory/components/pages/Inventory.vue +278 -159
  671. package/src/modules/inventory/components/pages/InventoryEdit.vue +2 -2
  672. package/src/modules/inventory/inventory.client.js +4 -4
  673. package/src/modules/inventory/models/stock.audit.model.js +1 -1
  674. package/src/modules/inventory/router/inventory.router.js +12 -0
  675. package/src/modules/landing/components/sections/SectionEarn.vue +3 -3
  676. package/src/modules/landing/components/sections/SectionFeature.vue +1 -1
  677. package/src/modules/landing/components/sections/SectionFeatures.vue +1 -1
  678. package/src/modules/landing/components/sections/SectionFeaturesImages.vue +2 -2
  679. package/src/modules/landing/components/sections/SectionGuide.vue +2 -2
  680. package/src/modules/landing/components/sections/SectionHeroToken.vue +1 -1
  681. package/src/modules/landing/components/sections/SectionHeroVideo.vue +1 -1
  682. package/src/modules/landing/components/sections/SectionMobileApp.vue +2 -2
  683. package/src/modules/landing/components/sections/SectionOverview.vue +1 -1
  684. package/src/modules/landing/components/sections/SectionRoadmap.vue +1 -1
  685. package/src/modules/landing/components/sections/SubscribeNewsletter.vue +1 -1
  686. package/src/modules/marketplace/views/components/sections/SectionMenu.vue +2 -2
  687. package/src/modules/music/components/SidebarMusic.vue +1 -1
  688. package/src/modules/music/components/cards/AlbumCard.vue +1 -1
  689. package/src/modules/music/components/cards/ArtistCard.vue +1 -1
  690. package/src/modules/music/components/cards/ArtistCardSmall.vue +1 -1
  691. package/src/modules/music/components/cards/PlaylistCard.vue +1 -1
  692. package/src/modules/music/components/cards/TrackListCard.vue +6 -6
  693. package/src/modules/music/components/forms/AlbumForm.vue +2 -2
  694. package/src/modules/music/components/forms/ArtistForm.vue +1 -1
  695. package/src/modules/music/components/forms/PlaylistForm.vue +5 -5
  696. package/src/modules/music/components/forms/TrackForm.vue +3 -3
  697. package/src/modules/music/components/pages/Album.vue +8 -8
  698. package/src/modules/music/components/pages/Artist.vue +5 -5
  699. package/src/modules/music/components/pages/Playlist.vue +11 -11
  700. package/src/modules/music/components/pages/SearchResults.vue +2 -2
  701. package/src/modules/music/components/pages/Track.vue +11 -11
  702. package/src/modules/music/components/player/FullscreenPlayer.vue +3 -3
  703. package/src/modules/music/components/player/TrackProgress.vue +1 -1
  704. package/src/modules/notifications/components/sections/NotificationPreferences.vue +182 -52
  705. package/src/modules/notifications/controllers/notifications.controller.js +242 -17
  706. package/src/modules/notifications/models/notification-preference.model.js +4 -0
  707. package/src/modules/notifications/notifications.client.js +213 -20
  708. package/src/modules/notifications/router/notifications.backoffice.router.js +16 -0
  709. package/src/modules/notifications/router/notifications.router.js +13 -45
  710. package/src/modules/notifications/routes/notifications.routes.js +9 -0
  711. package/src/modules/notifications/services/notification.service.js +33 -9
  712. package/src/modules/notifications/services/telegram.service.js +2 -2
  713. package/src/modules/notifications/services/web-push.service.js +6 -2
  714. package/src/modules/notifications/store/notifications.store.js +69 -0
  715. package/src/modules/orders/components/blocks/CardApplication.vue +9 -6
  716. package/src/modules/orders/components/blocks/CardCustomer.vue +10 -7
  717. package/src/modules/orders/components/blocks/CardOrder.vue +8 -8
  718. package/src/modules/orders/components/blocks/CardOrderBackoffice.vue +58 -12
  719. package/src/modules/orders/components/blocks/CardOrderItem.vue +31 -28
  720. package/src/modules/orders/components/blocks/CardOrderUser.vue +7 -12
  721. package/src/modules/orders/components/blocks/CardOrderVar1.vue +3 -3
  722. package/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue +1 -1
  723. package/src/modules/orders/components/elements/PriceTotal.vue +4 -4
  724. package/src/modules/orders/components/forms/FormApplicationDetails.vue +1 -1
  725. package/src/modules/orders/components/forms/FormSelectCustomer.vue +48 -25
  726. package/src/modules/orders/components/pages/Applications.vue +2 -2
  727. package/src/modules/orders/components/pages/Customers.vue +35 -23
  728. package/src/modules/orders/components/pages/OrderBackoffice.vue +780 -393
  729. package/src/modules/orders/components/pages/OrderCreate.vue +5 -4
  730. package/src/modules/orders/components/pages/OrderCreateBackoffice.vue +112 -42
  731. package/src/modules/orders/components/pages/Orders.vue +20 -19
  732. package/src/modules/orders/components/pages/Orders_refact.vue +3 -3
  733. package/src/modules/orders/components/partials/ShopCart.vue +1 -1
  734. package/src/modules/orders/components/sections/ApplicationDetails.vue +2 -2
  735. package/src/modules/orders/components/sections/AskToLogin.vue +1 -1
  736. package/src/modules/orders/components/sections/CustomerDetails.vue +130 -64
  737. package/src/modules/orders/controllers/orders.controller.js +463 -134
  738. package/src/modules/orders/middlewares/applications.verifier.js +3 -3
  739. package/src/modules/orders/middlewares/customers.verifier.js +4 -0
  740. package/src/modules/orders/middlewares/orders.verifier.js +187 -0
  741. package/src/modules/orders/models/customer.model.js +2 -0
  742. package/src/modules/orders/models/order.model.js +20 -2
  743. package/src/modules/orders/orders.client.js +21 -19
  744. package/src/modules/orders/routes/applications.routes.js +13 -3
  745. package/src/modules/orders/routes/customers.routes.js +2 -0
  746. package/src/modules/orders/routes/orders.routes.js +46 -4
  747. package/src/modules/orders/store/orders.js +4 -7
  748. package/src/modules/orders/store/shopcart.js +6 -7
  749. package/src/modules/orders/utils/rent-price.js +90 -0
  750. package/src/modules/organizations/components/blocks/CardDepartment.vue +1 -1
  751. package/src/modules/organizations/components/blocks/CardOrganization.vue +30 -33
  752. package/src/modules/organizations/components/blocks/EmptyState.vue +1 -1
  753. package/src/modules/organizations/components/blocks/Rating.vue +1 -1
  754. package/src/modules/organizations/components/blocks/Socials.vue +2 -2
  755. package/src/modules/organizations/components/elements/ButtonToggleMembership.vue +1 -1
  756. package/src/modules/organizations/components/forms/AddExistingMembersForm.vue +3 -3
  757. package/src/modules/organizations/components/forms/DepartmentForm.vue +1 -1
  758. package/src/modules/organizations/components/forms/InviteForm.vue +1 -1
  759. package/src/modules/organizations/components/pages/Department.vue +2 -2
  760. package/src/modules/organizations/components/pages/DepartmentEdit.vue +1 -1
  761. package/src/modules/organizations/components/pages/Members.vue +8 -8
  762. package/src/modules/organizations/components/pages/Organization.vue +232 -124
  763. package/src/modules/organizations/components/pages/OrganizationCreate.vue +3 -3
  764. package/src/modules/organizations/components/pages/OrganizationDocuments.vue +1 -1
  765. package/src/modules/organizations/components/pages/OrganizationEdit.vue +15 -6
  766. package/src/modules/organizations/components/pages/Organizations.vue +3 -2
  767. package/src/modules/organizations/components/sections/Documents.vue +1 -1
  768. package/src/modules/organizations/components/sections/MembersAdd.vue +2 -2
  769. package/src/modules/organizations/configs/navigation.organization.config.js +34 -26
  770. package/src/modules/organizations/controllers/organizations.controller.js +8 -3
  771. package/src/modules/organizations/models/organization.model.js +1 -0
  772. package/src/modules/organizations/organizations.client.js +39 -33
  773. package/src/modules/organizations/router/organizations.backoffice.router.js +67 -0
  774. package/src/modules/pages/views/components/pages/Pages.vue +1 -1
  775. package/src/modules/pages/views/router/pages.router.js +2 -2
  776. package/src/modules/products/components/blocks/CardPosition.vue +2 -2
  777. package/src/modules/products/components/blocks/CardProduct.vue +2 -2
  778. package/src/modules/products/components/blocks/ProductDiscounts.vue +1 -1
  779. package/src/modules/products/components/blocks/ProductImages.vue +1 -1
  780. package/src/modules/products/components/blocks/ProductVariants.vue +3 -3
  781. package/src/modules/products/components/elements/Price.vue +2 -2
  782. package/src/modules/products/components/forms/ColumnSettingsMenu.vue +2 -2
  783. package/src/modules/products/components/forms/ReorderSettingsForm.vue +3 -3
  784. package/src/modules/products/components/forms/StockAuditForm.vue +2 -2
  785. package/src/modules/products/components/forms/StockHistoryView.vue +1 -1
  786. package/src/modules/products/components/pages/Categories.vue +9 -20
  787. package/src/modules/products/components/pages/ProductEdit.vue +19 -3
  788. package/src/modules/products/components/pages/Products.vue +20 -19
  789. package/src/modules/products/components/sections/EditAttributes.vue +1 -1
  790. package/src/modules/products/components/sections/EditCategories.vue +1 -1
  791. package/src/modules/products/components/sections/EditDiscounts.vue +2 -2
  792. package/src/modules/products/components/sections/EditVariants.vue +14 -2
  793. package/src/modules/products/components/sections/FilterProducts.vue +1 -1
  794. package/src/modules/products/components/sections/ProductConfigurator.vue +1 -1
  795. package/src/modules/products/components/sections/SectionProduct.vue +3 -3
  796. package/src/modules/products/controllers/products.controller.js +50 -5
  797. package/src/modules/products/experiments/product-recommendation/components/HeroRecommendation.vue +2 -2
  798. package/src/modules/products/models/product.model.js +7 -0
  799. package/src/modules/products/models/variant.model.js +4 -0
  800. package/src/modules/products/router/categories.router.js +2 -2
  801. package/src/modules/products/router/products.router.js +14 -3
  802. package/src/modules/rents/controllers/routes/rents.routes.js +11 -0
  803. package/src/modules/rents/controllers/services/rents.services.js +193 -2
  804. package/src/modules/rents/models/rent.model.js +9 -0
  805. package/src/modules/rents/views/components/pages/Gant/GanttBar.vue +28 -11
  806. package/src/modules/rents/views/components/pages/Gant/GanttChart.vue +200 -40
  807. package/src/modules/rents/views/components/pages/Gant/GanttHeaderCell.vue +2 -2
  808. package/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue +2 -2
  809. package/src/modules/rents/views/components/pages/Rents.vue +641 -142
  810. package/src/modules/rents/views/components/pages/RentsEdit.vue +44 -4
  811. package/src/modules/rents/views/router/rents.router.js +3 -3
  812. package/src/modules/rents/views/store/rents.store.js +1 -1
  813. package/src/modules/reports/components/pages/BackofficeReports.vue +3 -3
  814. package/src/modules/reports/router/reports.router.js +1 -1
  815. package/src/modules/spots/components/blocks/CardSpot.vue +6 -6
  816. package/src/modules/spots/components/pages/Spot.vue +2 -2
  817. package/src/modules/spots/components/pages/SpotEdit.vue +8 -6
  818. package/src/modules/spots/components/pages/Spots.vue +18 -24
  819. package/src/modules/spots/components/sections/WorktimeEdit.vue +7 -7
  820. package/src/modules/spots/router/spots.router.js +3 -3
  821. package/src/modules/wallet/views/components/blocks/CashDeposit.vue +1 -1
  822. package/src/modules/wallet/views/components/elements/ConnectMetamask.vue +3 -3
  823. package/src/modules/wallet/views/components/pages/Payments.vue +1 -1
  824. package/src/modules/wallet/views/components/pages/Wallet.vue +4 -4
  825. package/src/modules/wallet/views/router/wallet.router.js +1 -1
  826. package/src/styles/layout.scss +1 -1
  827. package/dist/martyrs/src/components/EditImages/EditImages.vue2.js.map +0 -1
  828. package/dist/martyrs/src/components/Tooltip/Tooltip.vue2.js.map +0 -1
  829. package/dist/martyrs/src/modules/icons/entities/IconCash.vue.js +0 -70
  830. package/dist/martyrs/src/modules/icons/entities/IconCash.vue.js.map +0 -1
  831. package/dist/node_modules/.pnpm/@googlemaps_js-api-loader@1.16.8/node_modules/@googlemaps/js-api-loader/dist/index.js +0 -336
  832. package/dist/node_modules/.pnpm/@googlemaps_js-api-loader@1.16.8/node_modules/@googlemaps/js-api-loader/dist/index.js.map +0 -1
  833. package/dist/node_modules/.pnpm/vue-draggable-next@2.2.1_sortablejs@1.15.6_vue@3.5.13_typescript@5.8.3_/node_modules/vue-draggable-next/dist/vue-draggable-next.esm-bundler.js.map +0 -1
@@ -39,40 +39,46 @@ function initializeOrganization(app, store, router, options = {}) {
39
39
  const route = options.route || "Home";
40
40
  const routeUser = options.routeUser || "User Profile Root";
41
41
  const routeBackoffice = options.routeBackoffice || "Backoffice Root";
42
- addRoutes(router, {
43
- parentName: route,
44
- basePath: "organizations",
45
- routes: organizationRoutes,
46
- routeNamePrefix: "",
47
- meta: {
48
- context: "root",
49
- title: {
50
- en: "Organizations",
51
- ru: "Организации"
52
- },
53
- breadcrumbs: {
54
- hidden: true
42
+ if (!options.contexts || options.contexts.includes("client")) {
43
+ addRoutes(router, {
44
+ parentName: route,
45
+ basePath: "organizations",
46
+ routes: organizationRoutes,
47
+ routeNamePrefix: "",
48
+ meta: {
49
+ context: "root",
50
+ title: {
51
+ en: "Organizations",
52
+ ru: "Организации"
53
+ },
54
+ breadcrumbs: {
55
+ hidden: true
56
+ }
55
57
  }
56
- }
57
- });
58
- addRoutes(router, {
59
- parentName: routeUser,
60
- basePath: "organizations",
61
- routes: organizationUserRoutes,
62
- routeNamePrefix: "User",
63
- meta: {
64
- context: "user"
65
- }
66
- });
67
- addRoutes(router, {
68
- parentName: routeBackoffice,
69
- basePath: "organizations",
70
- routes: organizationBackofficeRoutes,
71
- routeNamePrefix: "Backoffice",
72
- meta: {
73
- context: "backoffice"
74
- }
75
- });
58
+ });
59
+ }
60
+ if (!options.contexts || options.contexts.includes("user")) {
61
+ addRoutes(router, {
62
+ parentName: routeUser,
63
+ basePath: "organizations",
64
+ routes: organizationUserRoutes,
65
+ routeNamePrefix: "User",
66
+ meta: {
67
+ context: "user"
68
+ }
69
+ });
70
+ }
71
+ if (!options.contexts || options.contexts.includes("backoffice")) {
72
+ addRoutes(router, {
73
+ parentName: routeBackoffice,
74
+ basePath: "organizations",
75
+ routes: organizationBackofficeRoutes,
76
+ routeNamePrefix: "Backoffice",
77
+ meta: {
78
+ context: "backoffice"
79
+ }
80
+ });
81
+ }
76
82
  store.addStore("organizations", organizations);
77
83
  }
78
84
  const ModuleOrganization = {
@@ -1 +1 @@
1
- {"version":3,"file":"organizations.client.js","sources":["../../../../../src/modules/organizations/organizations.client.js"],"sourcesContent":["// [LOADING 35] Organizations module import started\nperformance.mark('loading-35-start');\nconsole.log('[LOADING 35] Organizations module import started...');\n\n// Functional imports (needed for initialize function)\nimport departmentsStore from './store/departments.store.js';\nimport invitesStore from './store/invites.store.js';\nimport membershipsStore from './store/memberships.store.js';\nimport * as storeOrganizations from './store/organizations.js';\n\nperformance.mark('loading-35-stores-end');\nconst storesTime = performance.measure('loading-35-stores', 'loading-35-start', 'loading-35-stores-end');\nconsole.log(`[LOADING 35] Store imports completed in ${storesTime.duration.toFixed(2)}ms`);\n\n// Router\nimport addRoutes from '@martyrs/src/modules/core/views/router/addRoutes.js';\nimport routerRoot from './router/organizations.router.js';\nimport routerUser from './router/organizations.user.router.js';\nimport routerBackoffice from './router/organizations.backoffice.router.js';\n\nperformance.mark('loading-35-router-end');\nconst routerTime = performance.measure('loading-35-router', 'loading-35-stores-end', 'loading-35-router-end');\nconsole.log(`[LOADING 35] Router imports completed in ${routerTime.duration.toFixed(2)}ms`);\n\n// Component re-exports (enables tree shaking)\n// Pages\nexport { default as Department } from './components/pages/Department.vue';\nexport { default as Members } from './components/pages/Members.vue';\nexport { default as Organization } from './components/pages/Organization.vue';\nexport { default as OrganizationEdit } from './components/pages/OrganizationEdit.vue';\nexport { default as Organizations } from './components/pages/Organizations.vue';\n\n// Forms\nexport { default as DepartmentForm } from './components/forms/DepartmentForm.vue';\nexport { default as InviteForm } from './components/forms/InviteForm.vue';\nexport { default as AddExistingMembersForm } from './components/forms/AddExistingMembersForm.vue';\n\n// Blocks\nexport { default as CardDepartment } from './components/blocks/CardDepartment.vue';\nexport { default as CardOrganization } from './components/blocks/CardOrganization.vue';\nexport { default as Contacts } from './components/blocks/Contacts.vue';\nexport { default as DepartmentSub } from './components/blocks/DepartmentSub.vue';\nexport { default as EmptyState } from './components/blocks/EmptyState.vue';\nexport { default as Rating } from './components/blocks/Rating.vue';\nexport { default as Socials } from './components/blocks/Socials.vue';\nexport { default as Unit } from './components/blocks/Unit.vue';\n\n// Sections\nexport { default as Documents } from './components/sections/Documents.vue';\nexport { default as MembersAdd } from './components/sections/MembersAdd.vue';\nexport { default as OrganizationsSection } from './components/sections/Organizations.vue';\nexport { default as Publics } from './components/sections/Publics.vue';\n\n// Elements\nexport { default as ButtonToggleMembership } from './components/elements/ButtonToggleMembership.vue';\n\nfunction initializeOrganization(app, store, router, options = {}) {\n const route = options.route || 'Home';\n const routeUser = options.routeUser || 'User Profile Root';\n const routeBackoffice = options.routeBackoffice || 'Backoffice Root';\n\n // Root context: /organizations/*\n addRoutes(router, {\n parentName: route,\n basePath: 'organizations',\n routes: routerRoot,\n routeNamePrefix: '',\n meta: {\n context: 'root',\n title: {\n en: 'Organizations',\n ru: 'Организации',\n },\n breadcrumbs: {\n hidden: true,\n },\n },\n });\n\n // User context: /users/:_id/organizations/*\n addRoutes(router, {\n parentName: routeUser,\n basePath: 'organizations',\n routes: routerUser,\n routeNamePrefix: 'User',\n meta: {\n context: 'user',\n },\n });\n\n // Backoffice context: /backoffice/organizations/*\n addRoutes(router, {\n parentName: routeBackoffice,\n basePath: 'organizations',\n routes: routerBackoffice,\n routeNamePrefix: 'Backoffice',\n meta: {\n context: 'backoffice',\n },\n });\n\n store.addStore('organizations', storeOrganizations);\n}\n\n// Functional exports\nexport {\n departmentsStore,\n invitesStore,\n membershipsStore,\n storeOrganizations,\n initializeOrganization as initialize,\n};\n\nconst ModuleOrganization = {\n initialize: initializeOrganization,\n views: {\n store: {\n departmentsStore,\n invitesStore,\n membershipsStore,\n storeOrganizations,\n },\n router: {\n routerRoot,\n routerUser,\n routerBackoffice,\n },\n },\n};\n\n// [LOADING 35] Organizations module import completed\nperformance.mark('loading-35-end');\nperformance.measure('loading-35-total', 'loading-35-start', 'loading-35-end');\nconst totalTime = performance.getEntriesByName('loading-35-total')[0];\nconsole.log(`[LOADING 35] Organizations module fully imported in ${totalTime?.duration?.toFixed(2)}ms`);\n\nexport default ModuleOrganization;\n"],"names":["routerRoot","routerUser","routerBackoffice","storeOrganizations"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,YAAY,KAAK,kBAAkB;AACnC,QAAQ,IAAI,qDAAqD;AAQjE,YAAY,KAAK,uBAAuB;AACxC,MAAM,aAAa,YAAY,QAAQ,qBAAqB,oBAAoB,uBAAuB;AACvG,QAAQ,IAAI,2CAA2C,WAAW,SAAS,QAAQ,CAAC,CAAC,IAAI;AAQzF,YAAY,KAAK,uBAAuB;AACxC,MAAM,aAAa,YAAY,QAAQ,qBAAqB,yBAAyB,uBAAuB;AAC5G,QAAQ,IAAI,4CAA4C,WAAW,SAAS,QAAQ,CAAC,CAAC,IAAI;AAkC1F,SAAS,uBAAuB,KAAK,OAAO,QAAQ,UAAU,CAAA,GAAI;AAChE,QAAM,QAAQ,QAAQ,SAAS;AAC/B,QAAM,YAAY,QAAQ,aAAa;AACvC,QAAM,kBAAkB,QAAQ,mBAAmB;AAGnD,YAAU,QAAQ;AAAA,IAChB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,QAAQA;AAAAA,IACR,iBAAiB;AAAA,IACjB,MAAM;AAAA,MACJ,SAAS;AAAA,MACT,OAAO;AAAA,QACL,IAAI;AAAA,QACJ,IAAI;AAAA,MACZ;AAAA,MACM,aAAa;AAAA,QACX,QAAQ;AAAA,MAChB;AAAA,IACA;AAAA,EACA,CAAG;AAGD,YAAU,QAAQ;AAAA,IAChB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,QAAQC;AAAAA,IACR,iBAAiB;AAAA,IACjB,MAAM;AAAA,MACJ,SAAS;AAAA,IACf;AAAA,EACA,CAAG;AAGD,YAAU,QAAQ;AAAA,IAChB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,QAAQC;AAAAA,IACR,iBAAiB;AAAA,IACjB,MAAM;AAAA,MACJ,SAAS;AAAA,IACf;AAAA,EACA,CAAG;AAED,QAAM,SAAS,iBAAiBC,aAAkB;AACpD;AAWK,MAAC,qBAAqB;AAAA,EACzB,YAAY;AAAA,EACZ,OAAO;AAAA,IACL,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACN,oBAAMA;AAAAA,IACN;AAAA,IACI,QAAQ;AAAA,MACZ,YAAMH;AAAAA,MACN,YAAMC;AAAAA,MACN,kBAAMC;AAAAA,IACN;AAAA,EACA;AACA;AAGA,YAAY,KAAK,gBAAgB;AACjC,YAAY,QAAQ,oBAAoB,oBAAoB,gBAAgB;AAC5E,MAAM,YAAY,YAAY,iBAAiB,kBAAkB,EAAE,CAAC;AACpE,QAAQ,IAAI,uDAAuD,WAAW,UAAU,QAAQ,CAAC,CAAC,IAAI;"}
1
+ {"version":3,"file":"organizations.client.js","sources":["../../../../../src/modules/organizations/organizations.client.js"],"sourcesContent":["// [LOADING 35] Organizations module import started\nperformance.mark('loading-35-start');\nconsole.log('[LOADING 35] Organizations module import started...');\n\n// Functional imports (needed for initialize function)\nimport departmentsStore from './store/departments.store.js';\nimport invitesStore from './store/invites.store.js';\nimport membershipsStore from './store/memberships.store.js';\nimport * as storeOrganizations from './store/organizations.js';\n\nperformance.mark('loading-35-stores-end');\nconst storesTime = performance.measure('loading-35-stores', 'loading-35-start', 'loading-35-stores-end');\nconsole.log(`[LOADING 35] Store imports completed in ${storesTime.duration.toFixed(2)}ms`);\n\n// Router\nimport addRoutes from '@martyrs/src/modules/core/views/router/addRoutes.js';\nimport routerRoot from './router/organizations.router.js';\nimport routerUser from './router/organizations.user.router.js';\nimport routerBackoffice from './router/organizations.backoffice.router.js';\n\nperformance.mark('loading-35-router-end');\nconst routerTime = performance.measure('loading-35-router', 'loading-35-stores-end', 'loading-35-router-end');\nconsole.log(`[LOADING 35] Router imports completed in ${routerTime.duration.toFixed(2)}ms`);\n\n// Component re-exports (enables tree shaking)\n// Pages\nexport { default as Department } from './components/pages/Department.vue';\nexport { default as Members } from './components/pages/Members.vue';\nexport { default as Organization } from './components/pages/Organization.vue';\nexport { default as OrganizationEdit } from './components/pages/OrganizationEdit.vue';\nexport { default as Organizations } from './components/pages/Organizations.vue';\n\n// Forms\nexport { default as DepartmentForm } from './components/forms/DepartmentForm.vue';\nexport { default as InviteForm } from './components/forms/InviteForm.vue';\nexport { default as AddExistingMembersForm } from './components/forms/AddExistingMembersForm.vue';\n\n// Blocks\nexport { default as CardDepartment } from './components/blocks/CardDepartment.vue';\nexport { default as CardOrganization } from './components/blocks/CardOrganization.vue';\nexport { default as Contacts } from './components/blocks/Contacts.vue';\nexport { default as DepartmentSub } from './components/blocks/DepartmentSub.vue';\nexport { default as EmptyState } from './components/blocks/EmptyState.vue';\nexport { default as Rating } from './components/blocks/Rating.vue';\nexport { default as Socials } from './components/blocks/Socials.vue';\nexport { default as Unit } from './components/blocks/Unit.vue';\n\n// Sections\nexport { default as Documents } from './components/sections/Documents.vue';\nexport { default as MembersAdd } from './components/sections/MembersAdd.vue';\nexport { default as OrganizationsSection } from './components/sections/Organizations.vue';\nexport { default as Publics } from './components/sections/Publics.vue';\n\n// Elements\nexport { default as ButtonToggleMembership } from './components/elements/ButtonToggleMembership.vue';\n\nfunction initializeOrganization(app, store, router, options = {}) {\n const route = options.route || 'Home';\n const routeUser = options.routeUser || 'User Profile Root';\n const routeBackoffice = options.routeBackoffice || 'Backoffice Root';\n\n // Root context: /organizations/*\n if (!options.contexts || options.contexts.includes('client')) {\n addRoutes(router, {\n parentName: route,\n basePath: 'organizations',\n routes: routerRoot,\n routeNamePrefix: '',\n meta: {\n context: 'root',\n title: {\n en: 'Organizations',\n ru: 'Организации',\n },\n breadcrumbs: {\n hidden: true,\n },\n },\n });\n }\n\n // User context: /users/:_id/organizations/*\n if (!options.contexts || options.contexts.includes('user')) {\n addRoutes(router, {\n parentName: routeUser,\n basePath: 'organizations',\n routes: routerUser,\n routeNamePrefix: 'User',\n meta: {\n context: 'user',\n },\n });\n }\n\n // Backoffice context: /backoffice/organizations/*\n if (!options.contexts || options.contexts.includes('backoffice')) {\n addRoutes(router, {\n parentName: routeBackoffice,\n basePath: 'organizations',\n routes: routerBackoffice,\n routeNamePrefix: 'Backoffice',\n meta: {\n context: 'backoffice',\n },\n });\n }\n\n store.addStore('organizations', storeOrganizations);\n}\n\n// Functional exports\nexport {\n departmentsStore,\n invitesStore,\n membershipsStore,\n storeOrganizations,\n initializeOrganization as initialize,\n};\n\nconst ModuleOrganization = {\n initialize: initializeOrganization,\n views: {\n store: {\n departmentsStore,\n invitesStore,\n membershipsStore,\n storeOrganizations,\n },\n router: {\n routerRoot,\n routerUser,\n routerBackoffice,\n },\n },\n};\n\n// [LOADING 35] Organizations module import completed\nperformance.mark('loading-35-end');\nperformance.measure('loading-35-total', 'loading-35-start', 'loading-35-end');\nconst totalTime = performance.getEntriesByName('loading-35-total')[0];\nconsole.log(`[LOADING 35] Organizations module fully imported in ${totalTime?.duration?.toFixed(2)}ms`);\n\nexport default ModuleOrganization;\n"],"names":["routerRoot","routerUser","routerBackoffice","storeOrganizations"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,YAAY,KAAK,kBAAkB;AACnC,QAAQ,IAAI,qDAAqD;AAQjE,YAAY,KAAK,uBAAuB;AACxC,MAAM,aAAa,YAAY,QAAQ,qBAAqB,oBAAoB,uBAAuB;AACvG,QAAQ,IAAI,2CAA2C,WAAW,SAAS,QAAQ,CAAC,CAAC,IAAI;AAQzF,YAAY,KAAK,uBAAuB;AACxC,MAAM,aAAa,YAAY,QAAQ,qBAAqB,yBAAyB,uBAAuB;AAC5G,QAAQ,IAAI,4CAA4C,WAAW,SAAS,QAAQ,CAAC,CAAC,IAAI;AAkC1F,SAAS,uBAAuB,KAAK,OAAO,QAAQ,UAAU,CAAA,GAAI;AAChE,QAAM,QAAQ,QAAQ,SAAS;AAC/B,QAAM,YAAY,QAAQ,aAAa;AACvC,QAAM,kBAAkB,QAAQ,mBAAmB;AAGnD,MAAI,CAAC,QAAQ,YAAY,QAAQ,SAAS,SAAS,QAAQ,GAAG;AAC5D,cAAU,QAAQ;AAAA,MAChB,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,QAAQA;AAAAA,MACR,iBAAiB;AAAA,MACjB,MAAM;AAAA,QACJ,SAAS;AAAA,QACT,OAAO;AAAA,UACL,IAAI;AAAA,UACJ,IAAI;AAAA,QACd;AAAA,QACQ,aAAa;AAAA,UACX,QAAQ;AAAA,QAClB;AAAA,MACA;AAAA,IACA,CAAK;AAAA,EACH;AAGA,MAAI,CAAC,QAAQ,YAAY,QAAQ,SAAS,SAAS,MAAM,GAAG;AAC1D,cAAU,QAAQ;AAAA,MAChB,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,QAAQC;AAAAA,MACR,iBAAiB;AAAA,MACjB,MAAM;AAAA,QACJ,SAAS;AAAA,MACjB;AAAA,IACA,CAAK;AAAA,EACH;AAGA,MAAI,CAAC,QAAQ,YAAY,QAAQ,SAAS,SAAS,YAAY,GAAG;AAChE,cAAU,QAAQ;AAAA,MAChB,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,QAAQC;AAAAA,MACR,iBAAiB;AAAA,MACjB,MAAM;AAAA,QACJ,SAAS;AAAA,MACjB;AAAA,IACA,CAAK;AAAA,EACH;AAEA,QAAM,SAAS,iBAAiBC,aAAkB;AACpD;AAWK,MAAC,qBAAqB;AAAA,EACzB,YAAY;AAAA,EACZ,OAAO;AAAA,IACL,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACN,oBAAMA;AAAAA,IACN;AAAA,IACI,QAAQ;AAAA,MACZ,YAAMH;AAAAA,MACN,YAAMC;AAAAA,MACN,kBAAMC;AAAAA,IACN;AAAA,EACA;AACA;AAGA,YAAY,KAAK,gBAAgB;AACjC,YAAY,QAAQ,oBAAoB,oBAAoB,gBAAgB;AAC5E,MAAM,YAAY,YAAY,iBAAiB,kBAAkB,EAAE,CAAC;AACpE,QAAQ,IAAI,uDAAuD,WAAW,UAAU,QAAQ,CAAC,CAAC,IAAI;"}
@@ -1,3 +1,5 @@
1
+ import { requiresAuth } from "../../auth/views/middlewares/auth.validation.js";
2
+ import { navigationItems } from "../configs/navigation.organization.config.js";
1
3
  const organizationBackofficeRoutes = [
2
4
  {
3
5
  path: "",
@@ -12,6 +14,85 @@ const organizationBackofficeRoutes = [
12
14
  /* webpackChunkName: "organizations" */
13
15
  "../components/pages/Organizations.vue.js"
14
16
  )
17
+ },
18
+ {
19
+ path: ":_id",
20
+ name: "OrganizationRoot",
21
+ meta: {
22
+ title: {
23
+ en: "Group",
24
+ ru: "Группа"
25
+ },
26
+ sidebar_navigation_items: navigationItems
27
+ },
28
+ children: [
29
+ {
30
+ path: "",
31
+ name: "OrganizationProfile",
32
+ meta: {
33
+ title: {
34
+ en: "Group",
35
+ ru: "Группа"
36
+ },
37
+ breadcrumbs: {
38
+ hidden: true
39
+ }
40
+ },
41
+ component: () => import(
42
+ /* webpackChunkName: "organization" */
43
+ "../components/pages/Organization.vue.js"
44
+ )
45
+ },
46
+ {
47
+ path: "members",
48
+ name: "OrganizationMembers",
49
+ meta: {
50
+ title: {
51
+ en: "Members",
52
+ ru: "Участники"
53
+ }
54
+ },
55
+ component: () => import(
56
+ /* webpackChunkName: "organization-members" */
57
+ "../components/pages/Members.vue.js"
58
+ )
59
+ },
60
+ {
61
+ path: "members/invite",
62
+ name: "OrganizationInvite",
63
+ component: () => import(
64
+ /* webpackChunkName: "organization-members-add" */
65
+ "../components/sections/MembersAdd.vue.js"
66
+ )
67
+ },
68
+ {
69
+ path: "departments/:department",
70
+ name: "OrganizationDepartment",
71
+ meta: {
72
+ title: "Отдел"
73
+ },
74
+ beforeEnter: [requiresAuth],
75
+ component: () => import(
76
+ /* webpackChunkName: "organization-department" */
77
+ "../components/pages/Department.vue.js"
78
+ )
79
+ },
80
+ {
81
+ path: "edit",
82
+ name: "OrganizationEdit",
83
+ meta: {
84
+ title: {
85
+ en: "Edit Organization",
86
+ ru: "Редактировать Организацию"
87
+ }
88
+ },
89
+ beforeEnter: [requiresAuth],
90
+ component: () => import(
91
+ /* webpackChunkName: "organization-edit" */
92
+ "../components/pages/OrganizationEdit.vue.js"
93
+ )
94
+ }
95
+ ]
15
96
  }
16
97
  ];
17
98
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"organizations.backoffice.router.js","sources":["../../../../../../src/modules/organizations/router/organizations.backoffice.router.js"],"sourcesContent":["const organizationBackofficeRoutes = [\n {\n path: '',\n name: 'OrganizationsList',\n meta: {\n title: {\n en: 'Organizations',\n ru: 'Организации',\n },\n },\n component: () => import(/* webpackChunkName: \"organizations\" */ '@martyrs/src/modules/organizations/components/pages/Organizations.vue'),\n },\n];\n\nexport default organizationBackofficeRoutes;\n"],"names":[],"mappings":"AAAK,MAAC,+BAA+B;AAAA,EACnC;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,MACJ,OAAO;AAAA,QACL,IAAI;AAAA,QACJ,IAAI;AAAA,MACZ;AAAA,IACA;AAAA,IACI,WAAW,MAAM;AAAA;AAAA,MAA+C;AAAA,IAAuE;AAAA,EAC3I;AACA;"}
1
+ {"version":3,"file":"organizations.backoffice.router.js","sources":["../../../../../../src/modules/organizations/router/organizations.backoffice.router.js"],"sourcesContent":["import * as validationAuth from '@martyrs/src/modules/auth/views/middlewares/auth.validation.js';\nimport { navigationItems } from '@martyrs/src/modules/organizations/configs/navigation.organization.config.js';\n\nconst organizationBackofficeRoutes = [\n {\n path: '',\n name: 'OrganizationsList',\n meta: {\n title: {\n en: 'Organizations',\n ru: 'Организации',\n },\n },\n component: () => import(/* webpackChunkName: \"organizations\" */ '@martyrs/src/modules/organizations/components/pages/Organizations.vue'),\n },\n {\n path: ':_id',\n name: 'OrganizationRoot',\n meta: {\n title: {\n en: 'Group',\n ru: 'Группа',\n },\n sidebar_navigation_items: navigationItems,\n },\n children: [\n {\n path: '',\n name: 'OrganizationProfile',\n meta: {\n title: {\n en: 'Group',\n ru: 'Группа',\n },\n breadcrumbs: {\n hidden: true,\n },\n },\n component: () => import(/* webpackChunkName: \"organization\" */ '@martyrs/src/modules/organizations/components/pages/Organization.vue'),\n },\n {\n path: 'members',\n name: 'OrganizationMembers',\n meta: {\n title: {\n en: 'Members',\n ru: 'Участники',\n },\n },\n component: () => import(/* webpackChunkName: \"organization-members\" */ '@martyrs/src/modules/organizations/components/pages/Members.vue'),\n },\n {\n path: 'members/invite',\n name: 'OrganizationInvite',\n component: () => import(/* webpackChunkName: \"organization-members-add\" */ '@martyrs/src/modules/organizations/components/sections/MembersAdd.vue'),\n },\n {\n path: 'departments/:department',\n name: 'OrganizationDepartment',\n meta: {\n title: 'Отдел',\n },\n beforeEnter: [validationAuth.requiresAuth],\n component: () => import(/* webpackChunkName: \"organization-department\" */ '@martyrs/src/modules/organizations/components/pages/Department.vue'),\n },\n {\n path: 'edit',\n name: 'OrganizationEdit',\n meta: {\n title: {\n en: 'Edit Organization',\n ru: 'Редактировать Организацию',\n },\n },\n beforeEnter: [validationAuth.requiresAuth],\n component: () => import(/* webpackChunkName: \"organization-edit\" */ '@martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue'),\n },\n ],\n },\n];\n\nexport default organizationBackofficeRoutes;\n"],"names":["validationAuth.requiresAuth"],"mappings":";;AAGK,MAAC,+BAA+B;AAAA,EACnC;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,MACJ,OAAO;AAAA,QACL,IAAI;AAAA,QACJ,IAAI;AAAA,MACZ;AAAA,IACA;AAAA,IACI,WAAW,MAAM;AAAA;AAAA,MAA+C;AAAA,IAAuE;AAAA,EAC3I;AAAA,EACE;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,MACJ,OAAO;AAAA,QACL,IAAI;AAAA,QACJ,IAAI;AAAA,MACZ;AAAA,MACM,0BAA0B;AAAA,IAChC;AAAA,IACI,UAAU;AAAA,MACR;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,UACJ,OAAO;AAAA,YACL,IAAI;AAAA,YACJ,IAAI;AAAA,UAChB;AAAA,UACU,aAAa;AAAA,YACX,QAAQ;AAAA,UACpB;AAAA,QACA;AAAA,QACQ,WAAW,MAAM;AAAA;AAAA,UAA8C;AAAA,QAAsE;AAAA,MAC7I;AAAA,MACM;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,UACJ,OAAO;AAAA,YACL,IAAI;AAAA,YACJ,IAAI;AAAA,UAChB;AAAA,QACA;AAAA,QACQ,WAAW,MAAM;AAAA;AAAA,UAAsD;AAAA,QAAiE;AAAA,MAChJ;AAAA,MACM;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,WAAW,MAAM;AAAA;AAAA,UAA0D;AAAA,QAAuE;AAAA,MAC1J;AAAA,MACM;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,UACJ,OAAO;AAAA,QACjB;AAAA,QACQ,aAAa,CAACA,YAA2B;AAAA,QACzC,WAAW,MAAM;AAAA;AAAA,UAAyD;AAAA,QAAoE;AAAA,MACtJ;AAAA,MACM;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,UACJ,OAAO;AAAA,YACL,IAAI;AAAA,YACJ,IAAI;AAAA,UAChB;AAAA,QACA;AAAA,QACQ,aAAa,CAACA,YAA2B;AAAA,QACzC,WAAW,MAAM;AAAA;AAAA,UAAmD;AAAA,QAA0E;AAAA,MACtJ;AAAA,IACA;AAAA,EACA;AACA;"}
@@ -5,7 +5,7 @@ import { actions, state } from "../../store/pages.js";
5
5
  import Button from "../../../../../components/Button/Button.vue2.js";
6
6
  /* empty css */
7
7
  /* empty css */
8
- /* empty css */
8
+ /* empty css */
9
9
  import _sfc_main$1 from "../../../../constructor/components/sections/Constructor.vue.js";
10
10
  const _hoisted_1 = { key: 0 };
11
11
  const _hoisted_2 = {
@@ -28,7 +28,7 @@ const _sfc_main = {
28
28
  createVNode(_sfc_main$1, {
29
29
  title: "Pages",
30
30
  actions: [
31
- { to: { name: "Backoffice Pages Add" }, label: "Create Page" }
31
+ { to: { name: "Backoffice Pages Add" }, label: "+ Add Page" }
32
32
  ],
33
33
  class: "mn-b-small bg-light bg-light radius-big"
34
34
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"Pages.vue.js","sources":["../../../../../../../../src/modules/pages/views/components/pages/Pages.vue"],"sourcesContent":["<template>\n <div>\n <SectionPageTitle\n title=\"Pages\"\n :actions=\"[\n { to: { name: 'Backoffice Pages Add'}, label: 'Create Page' }\n ]\"\n class=\"mn-b-small bg-light bg-light radius-big\"\n />\n\n <Block\n v-if=\"pagesAll\"\n class=\"mn-b-thin cols-1 gap-thin\"\n >\n <!-- Objects -->\n <CardPage v-for=\"page in pagesAll\" :page=\"page\" :hasAdminRights=\"hasAdminRights\" class=\"bg-white pd-thin radius-small\"/>\n </Block>\n </div>\n</template>\n\n<script setup>\n import { onMounted, ref, toRefs, computed } from 'vue'\n \n import { useRoute,useRouter } from 'vue-router'\n\n import Block from '@martyrs/src/components/Block/Block.vue';\n import SectionPageTitle from '@martyrs/src/modules/core/views/components/sections/SectionPageTitle.vue'\n\n import CardPage from '../blocks/CardPage.vue'\n\n import * as pages from '../../store/pages.js'\n import * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\n\n import { useGlobalMixins } from \"@martyrs/src/modules/core/views/mixins/mixins.js\"\n\n const { \n normalizeUrlParam, \n joinArrayToUrl,\n isAdmin\n } = useGlobalMixins()\n\n const hasAdminRights = computed(() => {\n return isAdmin(auth.state.access.roles)\n })\n\n\n const route = useRoute()\n const router = useRouter()\n\n const pagesAll = ref(null)\n\n onMounted(async () => {\n pagesAll.value = await pages.actions.read()\n })\n\n</script>\n\n<style lang=\"scss\">\n \n</style>\n"],"names":["auth.state","pages.actions"],"mappings":";;;;;;;;;;;AAmCE,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,IACJ,IAAM,gBAAe;AAEnB,UAAM,iBAAiB,SAAS,MAAM;AACpC,aAAO,QAAQA,MAAW,OAAO,KAAK;AAAA,IACxC,CAAC;AAGa,aAAQ;AACP,cAAS;AAExB,UAAM,WAAW,IAAI,IAAI;AAEzB,cAAU,YAAY;AACpB,eAAS,QAAQ,MAAMC,QAAc,KAAI;AAAA,IAC3C,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Pages.vue.js","sources":["../../../../../../../../src/modules/pages/views/components/pages/Pages.vue"],"sourcesContent":["<template>\n <div>\n <SectionPageTitle\n title=\"Pages\"\n :actions=\"[\n { to: { name: 'Backoffice Pages Add'}, label: '+ Add Page' }\n ]\"\n class=\"mn-b-small bg-light bg-light radius-big\"\n />\n\n <Block\n v-if=\"pagesAll\"\n class=\"mn-b-thin cols-1 gap-thin\"\n >\n <!-- Objects -->\n <CardPage v-for=\"page in pagesAll\" :page=\"page\" :hasAdminRights=\"hasAdminRights\" class=\"bg-white pd-thin radius-small\"/>\n </Block>\n </div>\n</template>\n\n<script setup>\n import { onMounted, ref, toRefs, computed } from 'vue'\n \n import { useRoute,useRouter } from 'vue-router'\n\n import Block from '@martyrs/src/components/Block/Block.vue';\n import SectionPageTitle from '@martyrs/src/modules/core/views/components/sections/SectionPageTitle.vue'\n\n import CardPage from '../blocks/CardPage.vue'\n\n import * as pages from '../../store/pages.js'\n import * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\n\n import { useGlobalMixins } from \"@martyrs/src/modules/core/views/mixins/mixins.js\"\n\n const { \n normalizeUrlParam, \n joinArrayToUrl,\n isAdmin\n } = useGlobalMixins()\n\n const hasAdminRights = computed(() => {\n return isAdmin(auth.state.access.roles)\n })\n\n\n const route = useRoute()\n const router = useRouter()\n\n const pagesAll = ref(null)\n\n onMounted(async () => {\n pagesAll.value = await pages.actions.read()\n })\n\n</script>\n\n<style lang=\"scss\">\n \n</style>\n"],"names":["auth.state","pages.actions"],"mappings":";;;;;;;;;;;AAmCE,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,IACJ,IAAM,gBAAe;AAEnB,UAAM,iBAAiB,SAAS,MAAM;AACpC,aAAO,QAAQA,MAAW,OAAO,KAAK;AAAA,IACxC,CAAC;AAGa,aAAQ;AACP,cAAS;AAExB,UAAM,WAAW,IAAI,IAAI;AAEzB,cAAU,YAAY;AACpB,eAAS,QAAQ,MAAMC,QAAc,KAAI;AAAA,IAC3C,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -64,7 +64,7 @@ function getRoutes(options = {}) {
64
64
  const routes = [];
65
65
  const routeHome = options.route?.home || options.routeHome || "Home";
66
66
  const routeBackoffice = options.route?.backoffice || options.routeBackoffice || "Backoffice Root";
67
- routes.push({
67
+ if (!options.contexts || options.contexts.includes("client")) routes.push({
68
68
  parentName: routeHome,
69
69
  config: {
70
70
  basePath: options.publicBasePath || "pages",
@@ -78,7 +78,7 @@ function getRoutes(options = {}) {
78
78
  routes: createPublicRoutes(options)
79
79
  }
80
80
  });
81
- if (!options.withBackoffice) {
81
+ if (!options.contexts || options.contexts.includes("backoffice")) {
82
82
  routes.push({
83
83
  parentName: routeBackoffice,
84
84
  config: {
@@ -1 +1 @@
1
- {"version":3,"file":"pages.router.js","sources":["../../../../../../../src/modules/pages/views/router/pages.router.js"],"sourcesContent":["import layoutEmpty from '@martyrs/src/modules/core/views/components/layouts/Empty.vue';\nimport Navigation from '@martyrs/src/modules/core/views/components/partials/Navigation.vue';\nimport { navigationItems } from '@martyrs/src/modules/backoffice/configs/navigation.backoffice.config.js';\nimport SidebarPages from '../components/partials/SidebarPages.vue';\n\nfunction createPublicRoutes(options = {}) {\n return [\n {\n path: ':url+',\n name: options.publicRouteName || 'Page',\n meta: {\n title: {\n en: 'Page',\n ru: 'Страница',\n },\n },\n component: () => import(\n /* webpackChunkName: 'Page' */\n '../components/pages/Page.vue'\n ),\n },\n ];\n}\n\nfunction createBackofficeRoutes(options = {}) {\n return [\n {\n path: '',\n name: 'Pages',\n component: () => import(\n /* webpackChunkName: 'Pages' */\n '../components/pages/Pages.vue'\n ),\n },\n {\n path: 'add',\n name: 'Pages Add',\n meta: {\n title: {\n en: 'New Page',\n },\n sidebar: SidebarPages,\n },\n component: () => import(\n /* webpackChunkName: 'Pages' */\n '../components/pages/PageEdit.vue'\n ),\n },\n {\n path: ':url+',\n name: 'Pages Edit',\n meta: {\n title: {\n en: 'Edit Page',\n },\n sidebar: SidebarPages,\n },\n component: () => import(\n /* webpackChunkName: 'Pages' */\n '../components/pages/PageEdit.vue'\n ),\n },\n ];\n}\n\nexport function getRoutes(options = {}) {\n const routes = [];\n const routeHome = options.route?.home || options.routeHome || 'Home';\n const routeBackoffice = options.route?.backoffice || options.routeBackoffice || 'Backoffice Root';\n\n routes.push({\n parentName: routeHome,\n config: {\n basePath: options.publicBasePath || 'pages',\n component: options.publicLayout || layoutEmpty,\n meta: {\n title: {\n en: 'Pages',\n ru: 'Информация',\n },\n },\n routes: createPublicRoutes(options),\n },\n });\n\n if (!options.withBackoffice) {\n routes.push({\n parentName: routeBackoffice,\n config: {\n basePath: options.backofficeBasePath || 'pages',\n routeNamePrefix: options.backofficeRouteNamePrefix || 'Backoffice ',\n meta: {\n title: {\n en: 'Pages',\n },\n sidebar_navigation: Navigation,\n sidebar_navigation_items: navigationItems,\n },\n routes: createBackofficeRoutes(options),\n },\n });\n }\n\n return routes;\n}\n\nexport default { getRoutes };\n"],"names":["SidebarPages"],"mappings":";;;;AAKA,SAAS,mBAAmB,UAAU,IAAI;AACxC,SAAO;AAAA,IACL;AAAA,MACE,MAAM;AAAA,MACN,MAAM,QAAQ,mBAAmB;AAAA,MACjC,MAAM;AAAA,QACJ,OAAO;AAAA,UACL,IAAI;AAAA,UACJ,IAAI;AAAA,QACd;AAAA,MACA;AAAA,MACM,WAAW,MAAM;AAAA;AAAA,QAEf;AAAA,MACR;AAAA,IACA;AAAA,EACA;AACA;AAEA,SAAS,uBAAuB,UAAU,IAAI;AAC5C,SAAO;AAAA,IACL;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM;AAAA;AAAA,QAEf;AAAA,MACR;AAAA,IACA;AAAA,IACI;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,MAAM;AAAA,QACJ,OAAO;AAAA,UACL,IAAI;AAAA,QACd;AAAA,QACQ,SAASA;AAAAA,MACjB;AAAA,MACM,WAAW,MAAM;AAAA;AAAA,QAEf;AAAA,MACR;AAAA,IACA;AAAA,IACI;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,MAAM;AAAA,QACJ,OAAO;AAAA,UACL,IAAI;AAAA,QACd;AAAA,QACQ,SAASA;AAAAA,MACjB;AAAA,MACM,WAAW,MAAM;AAAA;AAAA,QAEf;AAAA,MACR;AAAA,IACA;AAAA,EACA;AACA;AAEO,SAAS,UAAU,UAAU,IAAI;AACtC,QAAM,SAAS,CAAA;AACf,QAAM,YAAY,QAAQ,OAAO,QAAQ,QAAQ,aAAa;AAC9D,QAAM,kBAAkB,QAAQ,OAAO,cAAc,QAAQ,mBAAmB;AAEhF,SAAO,KAAK;AAAA,IACV,YAAY;AAAA,IACZ,QAAQ;AAAA,MACN,UAAU,QAAQ,kBAAkB;AAAA,MACpC,WAAW,QAAQ,gBAAgB;AAAA,MACnC,MAAM;AAAA,QACJ,OAAO;AAAA,UACL,IAAI;AAAA,UACJ,IAAI;AAAA,QACd;AAAA,MACA;AAAA,MACM,QAAQ,mBAAmB,OAAO;AAAA,IACxC;AAAA,EACA,CAAG;AAED,MAAI,CAAC,QAAQ,gBAAgB;AAC3B,WAAO,KAAK;AAAA,MACV,YAAY;AAAA,MACZ,QAAQ;AAAA,QACN,UAAU,QAAQ,sBAAsB;AAAA,QACxC,iBAAiB,QAAQ,6BAA6B;AAAA,QACtD,MAAM;AAAA,UACJ,OAAO;AAAA,YACL,IAAI;AAAA,UAChB;AAAA,UACU,oBAAoB;AAAA,UACpB,0BAA0B;AAAA,QACpC;AAAA,QACQ,QAAQ,uBAAuB,OAAO;AAAA,MAC9C;AAAA,IACA,CAAK;AAAA,EACH;AAEA,SAAO;AACT;"}
1
+ {"version":3,"file":"pages.router.js","sources":["../../../../../../../src/modules/pages/views/router/pages.router.js"],"sourcesContent":["import layoutEmpty from '@martyrs/src/modules/core/views/components/layouts/Empty.vue';\nimport Navigation from '@martyrs/src/modules/core/views/components/partials/Navigation.vue';\nimport { navigationItems } from '@martyrs/src/modules/backoffice/configs/navigation.backoffice.config.js';\nimport SidebarPages from '../components/partials/SidebarPages.vue';\n\nfunction createPublicRoutes(options = {}) {\n return [\n {\n path: ':url+',\n name: options.publicRouteName || 'Page',\n meta: {\n title: {\n en: 'Page',\n ru: 'Страница',\n },\n },\n component: () => import(\n /* webpackChunkName: 'Page' */\n '../components/pages/Page.vue'\n ),\n },\n ];\n}\n\nfunction createBackofficeRoutes(options = {}) {\n return [\n {\n path: '',\n name: 'Pages',\n component: () => import(\n /* webpackChunkName: 'Pages' */\n '../components/pages/Pages.vue'\n ),\n },\n {\n path: 'add',\n name: 'Pages Add',\n meta: {\n title: {\n en: 'New Page',\n },\n sidebar: SidebarPages,\n },\n component: () => import(\n /* webpackChunkName: 'Pages' */\n '../components/pages/PageEdit.vue'\n ),\n },\n {\n path: ':url+',\n name: 'Pages Edit',\n meta: {\n title: {\n en: 'Edit Page',\n },\n sidebar: SidebarPages,\n },\n component: () => import(\n /* webpackChunkName: 'Pages' */\n '../components/pages/PageEdit.vue'\n ),\n },\n ];\n}\n\nexport function getRoutes(options = {}) {\n const routes = [];\n const routeHome = options.route?.home || options.routeHome || 'Home';\n const routeBackoffice = options.route?.backoffice || options.routeBackoffice || 'Backoffice Root';\n\n if (!options.contexts || options.contexts.includes('client')) routes.push({\n parentName: routeHome,\n config: {\n basePath: options.publicBasePath || 'pages',\n component: options.publicLayout || layoutEmpty,\n meta: {\n title: {\n en: 'Pages',\n ru: 'Информация',\n },\n },\n routes: createPublicRoutes(options),\n },\n });\n\n if (!options.contexts || options.contexts.includes('backoffice')) {\n routes.push({\n parentName: routeBackoffice,\n config: {\n basePath: options.backofficeBasePath || 'pages',\n routeNamePrefix: options.backofficeRouteNamePrefix || 'Backoffice ',\n meta: {\n title: {\n en: 'Pages',\n },\n sidebar_navigation: Navigation,\n sidebar_navigation_items: navigationItems,\n },\n routes: createBackofficeRoutes(options),\n },\n });\n }\n\n return routes;\n}\n\nexport default { getRoutes };\n"],"names":["SidebarPages"],"mappings":";;;;AAKA,SAAS,mBAAmB,UAAU,IAAI;AACxC,SAAO;AAAA,IACL;AAAA,MACE,MAAM;AAAA,MACN,MAAM,QAAQ,mBAAmB;AAAA,MACjC,MAAM;AAAA,QACJ,OAAO;AAAA,UACL,IAAI;AAAA,UACJ,IAAI;AAAA,QACd;AAAA,MACA;AAAA,MACM,WAAW,MAAM;AAAA;AAAA,QAEf;AAAA,MACR;AAAA,IACA;AAAA,EACA;AACA;AAEA,SAAS,uBAAuB,UAAU,IAAI;AAC5C,SAAO;AAAA,IACL;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW,MAAM;AAAA;AAAA,QAEf;AAAA,MACR;AAAA,IACA;AAAA,IACI;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,MAAM;AAAA,QACJ,OAAO;AAAA,UACL,IAAI;AAAA,QACd;AAAA,QACQ,SAASA;AAAAA,MACjB;AAAA,MACM,WAAW,MAAM;AAAA;AAAA,QAEf;AAAA,MACR;AAAA,IACA;AAAA,IACI;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,MAAM;AAAA,QACJ,OAAO;AAAA,UACL,IAAI;AAAA,QACd;AAAA,QACQ,SAASA;AAAAA,MACjB;AAAA,MACM,WAAW,MAAM;AAAA;AAAA,QAEf;AAAA,MACR;AAAA,IACA;AAAA,EACA;AACA;AAEO,SAAS,UAAU,UAAU,IAAI;AACtC,QAAM,SAAS,CAAA;AACf,QAAM,YAAY,QAAQ,OAAO,QAAQ,QAAQ,aAAa;AAC9D,QAAM,kBAAkB,QAAQ,OAAO,cAAc,QAAQ,mBAAmB;AAEhF,MAAI,CAAC,QAAQ,YAAY,QAAQ,SAAS,SAAS,QAAQ,EAAG,QAAO,KAAK;AAAA,IACxE,YAAY;AAAA,IACZ,QAAQ;AAAA,MACN,UAAU,QAAQ,kBAAkB;AAAA,MACpC,WAAW,QAAQ,gBAAgB;AAAA,MACnC,MAAM;AAAA,QACJ,OAAO;AAAA,UACL,IAAI;AAAA,UACJ,IAAI;AAAA,QACd;AAAA,MACA;AAAA,MACM,QAAQ,mBAAmB,OAAO;AAAA,IACxC;AAAA,EACA,CAAG;AAED,MAAI,CAAC,QAAQ,YAAY,QAAQ,SAAS,SAAS,YAAY,GAAG;AAChE,WAAO,KAAK;AAAA,MACV,YAAY;AAAA,MACZ,QAAQ;AAAA,QACN,UAAU,QAAQ,sBAAsB;AAAA,QACxC,iBAAiB,QAAQ,6BAA6B;AAAA,QACtD,MAAM;AAAA,UACJ,OAAO;AAAA,YACL,IAAI;AAAA,UAChB;AAAA,UACU,oBAAoB;AAAA,UACpB,0BAA0B;AAAA,QACpC;AAAA,QACQ,QAAQ,uBAAuB,OAAO;AAAA,MAC9C;AAAA,IACA,CAAK;AAAA,EACH;AAEA,SAAO;AACT;"}
@@ -12,7 +12,7 @@ const _hoisted_5 = { class: "w-100 pd-micro truncate trimmed capitalize fw-mediu
12
12
  const _hoisted_6 = { class: "flex pd-micro flex-v-center gap-micro w-max" };
13
13
  const _hoisted_7 = {
14
14
  key: 1,
15
- class: "t-transp p-small d-inline-block fw-medium"
15
+ class: "opacity-50 p-small d-inline-block fw-medium"
16
16
  };
17
17
  const _hoisted_8 = { class: "flex gap-thin" };
18
18
  const _hoisted_9 = ["onClick"];
@@ -1 +1 @@
1
- {"version":3,"file":"CardPosition.vue.js","sources":["../../../../../../../src/modules/products/components/blocks/CardPosition.vue"],"sourcesContent":["<template>\n <div class=\"bg-white radius-small pd-small flex-nowrap flex-v-center flex gap-thin\">\n <!-- Thumbnail image -->\n <div v-if=\"showThumbnail\" class=\"aspect-1x1 h-3r flex-child-default radius-small o-hidden\">\n <img\n v-if=\"image && image.length > 0\"\n :src=\"(FILE_SERVER_URL || '') + image\"\n alt=\"Item image\"\n class=\"w-100 h-100 object-fit-cover\"\n />\n <PlaceholderImage v-else class=\"w-100 h-100\" />\n </div>\n \n <!-- Item details -->\n <div class=\"mn-micro-negative flex flex-column w-100 o-hidden\">\n <p class=\"w-100 pd-micro truncate trimmed capitalize fw-medium\">{{ name || 'Unnamed Product' }}</p>\n \n <div class=\"flex pd-micro flex-v-center gap-micro w-max \">\n \t<span v-if=\"title\" :class=\"title_class\" class=\"t-dark d-inline-block fw-demi\">{{title}}</span>\n \t<span v-if=\"subtitle\" class=\"t-transp p-small d-inline-block fw-medium\">{{ subtitle }}</span>\n </div>\n \t<slot></slot>\n </div>\n <!-- <p>\n \n\n <span class=\"p-small t-transp\">\n <template v-if=\"product.quantity\">{{returnCurrency() }}{{product.price}} </template>\n × \n <template v-if=\"product.listing === 'rent' && rentDates.start && rentDates.end\">\n {{ rentalDays }} days\n </template>\n \n <template v-else>\n {{ product.quantity || 0 }} {{ product.unit || 'pcs' }}\n </template>\n </span>\n </p> -->\n \n <!-- Actions -->\n <div class=\"flex gap-thin\">\n <template v-for=\"(action, index) in actions\" :key=\"index\">\n <div \n :class=\"action.class || 'bg-light'\"\n class=\"radius-small pd-small flex-center flex aspect-1x1 cursor-pointer hover:scale-[1.05]\"\n @click=\"() => action.handler(item, index)\"\n >\n <component\n :is=\"action.component\"\n class=\"i-medium\"\n />\n </div>\n </template>\n <slot name=\"actions\"></slot>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { defineProps } from 'vue';\nimport PlaceholderImage from '@martyrs/src/modules/icons/placeholders/PlaceholderImage.vue';\nimport { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js';\n\nconst { formatPrice } = useGlobalMixins();\n\nconst props = defineProps({\n\timage: {\n type: String,\n },\n name: {\n type: String,\n },\n title: {\n type: String,\n },\n title_class: {\n \ttype: Array\n },\n subtitle: {\n type: String,\n },\n showThumbnail: {\n type: Boolean,\n default: true\n },\n actions: {\n type: Array,\n default: () => []\n // Expected format:\n // [\n // {\n // component: IconEdit,\n // handler: (item, index) => {},\n // class: 'bg-light' // optional custom class\n // }\n // ]\n }\n});\n</script>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+DA,UAAM,EAAE,YAAW,IAAK,gBAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"CardPosition.vue.js","sources":["../../../../../../../src/modules/products/components/blocks/CardPosition.vue"],"sourcesContent":["<template>\n <div class=\"bg-white radius-small pd-small flex-nowrap flex-v-center flex gap-thin\">\n <!-- Thumbnail image -->\n <div v-if=\"showThumbnail\" class=\"aspect-1x1 h-3r flex-child-default radius-small o-hidden\">\n <img\n v-if=\"image && image.length > 0\"\n :src=\"(FILE_SERVER_URL || '') + image\"\n alt=\"Item image\"\n class=\"w-100 h-100 object-fit-cover\"\n />\n <PlaceholderImage v-else class=\"w-100 h-100\" />\n </div>\n \n <!-- Item details -->\n <div class=\"mn-micro-negative flex flex-column w-100 o-hidden\">\n <p class=\"w-100 pd-micro truncate trimmed capitalize fw-medium\">{{ name || 'Unnamed Product' }}</p>\n \n <div class=\"flex pd-micro flex-v-center gap-micro w-max \">\n \t<span v-if=\"title\" :class=\"title_class\" class=\"t-dark d-inline-block fw-demi\">{{title}}</span>\n \t<span v-if=\"subtitle\" class=\"opacity-50 p-small d-inline-block fw-medium\">{{ subtitle }}</span>\n </div>\n \t<slot></slot>\n </div>\n <!-- <p>\n \n\n <span class=\"p-small opacity-50\">\n <template v-if=\"product.quantity\">{{returnCurrency() }}{{product.price}} </template>\n × \n <template v-if=\"product.listing === 'rent' && rentDates.start && rentDates.end\">\n {{ rentalDays }} days\n </template>\n \n <template v-else>\n {{ product.quantity || 0 }} {{ product.unit || 'pcs' }}\n </template>\n </span>\n </p> -->\n \n <!-- Actions -->\n <div class=\"flex gap-thin\">\n <template v-for=\"(action, index) in actions\" :key=\"index\">\n <div \n :class=\"action.class || 'bg-light'\"\n class=\"radius-small pd-small flex-center flex aspect-1x1 cursor-pointer hover:scale-[1.05]\"\n @click=\"() => action.handler(item, index)\"\n >\n <component\n :is=\"action.component\"\n class=\"i-medium\"\n />\n </div>\n </template>\n <slot name=\"actions\"></slot>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { defineProps } from 'vue';\nimport PlaceholderImage from '@martyrs/src/modules/icons/placeholders/PlaceholderImage.vue';\nimport { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js';\n\nconst { formatPrice } = useGlobalMixins();\n\nconst props = defineProps({\n\timage: {\n type: String,\n },\n name: {\n type: String,\n },\n title: {\n type: String,\n },\n title_class: {\n \ttype: Array\n },\n subtitle: {\n type: String,\n },\n showThumbnail: {\n type: Boolean,\n default: true\n },\n actions: {\n type: Array,\n default: () => []\n // Expected format:\n // [\n // {\n // component: IconEdit,\n // handler: (item, index) => {},\n // class: 'bg-light' // optional custom class\n // }\n // ]\n }\n});\n</script>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+DA,UAAM,EAAE,YAAW,IAAK,gBAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -18,7 +18,7 @@ const _hoisted_5 = {
18
18
  const _hoisted_6 = { class: "pd-small cols-1 t-left" };
19
19
  const _hoisted_7 = {
20
20
  key: 0,
21
- class: "fw-semi t-transp p-small mn-b-thin"
21
+ class: "fw-semi opacity-50 p-small mn-b-thin"
22
22
  };
23
23
  const _hoisted_8 = {
24
24
  style: { "hyphens": "auto" },
@@ -26,7 +26,7 @@ const _hoisted_8 = {
26
26
  };
27
27
  const _hoisted_9 = {
28
28
  key: 1,
29
- class: "mn-b-small t-transp p-small"
29
+ class: "mn-b-small opacity-50 p-small"
30
30
  };
31
31
  const _hoisted_10 = {
32
32
  key: 2,
@@ -1 +1 @@
1
- {"version":3,"file":"CardProduct.vue.js","sources":["../../../../../../../src/modules/products/components/blocks/CardProduct.vue"],"sourcesContent":["<template>\n\t<div \n\t\tclass=\"\n\t\t\tradius-medium \n\t\t\tcols-1\n\t\t\to-hidden\n\t\t\tpos-relative\n\t\t\"\n\t>\n\t\t<!-- Edit Button -->\n\t\t<router-link\n\t\t\tv-if=\"access\"\n :to=\"editPath\"\n class=\"\n \tz-index-2\n cursor-pointer \n pos-absolute pos-t-regular pos-r-regular\n radius-extra pd-thin bg-second\n \"\n >\n <IconEdit\n class=\"i-medium\"\n classes=\"fill-white\"\n />\n </router-link>\n\n\t\t<!-- Product Image Sqaure -->\n\t\t<div \n\t\t\tclass=\"o-hidden d-flex pd-thin pd-b-zero radius-medium o-hidden w-100 pos-relative aspect-1x1\"\n\t\t>\n\t\t\t<div class=\"w-100 h-100 pos-relative\">\n\t\t\t\t<!-- Image Wrappers -->\n\t\t\t\t<img loading=\"lazy\" \n\t\t\t\t\tv-if=\"product.images?.[0]\" \n\t\t\t\t\t:src=\"(FILE_SERVER_URL || '') + (product.images?.[0] || '').split('/').slice(0, -1).join('/') + '/thumbnail_' + (product.images?.[0] || '').split('/').pop()\"\n\t\t\t\t\tclass=\"pos-absolute object-fit-cover radius-small h-max-100 h-100 w-100\"\n\t\t\t\t>\n\n\t\t\t\t<PlaceholderImage\n\t\t\t\t\tv-else\n\t\t\t\t\tclass=\"radius-medium h-100 w-100\"\n\t\t\t\t/>\n\t\t\t\t<span v-if=\"product.available <= 0 && product.listing !== 'rent'\" class=\"pos-absolute bg-white t-black pd-thin radius-medium p-small fw-medium pos-t-small pos-l-small\">Out of Stock</span>\n\t\t\t\t<THC v-if=\"product.attributes?.length > 0 && product.attributes[1]?.name === 'THC'\" :product=\"product\" />\n\t\t\t</div>\n\t\t</div>\n\n\t\t<!-- Product Info Start -->\n\t\t<div class=\"pd-small cols-1 t-left\">\n\t\t\t<!-- Detail -->\n\t\t\t<p\n\t\t\t\tv-if=\"product.attributes?.length > 0\"\n\t\t\t\tclass=\"fw-semi t-transp p-small mn-b-thin\"\n\t\t\t>\n\t\t\t\t{{product.attributes[0]?.value}}\n\t\t\t</p>\n\t\t\t<!-- Name -->\n\t\t\t<span style=\" hyphens: auto;\" class=\"word-break truncate p-regular mn-b-micro w-100 w-max-100 \">\n\t\t\t\t{{product.name}}\n\t\t\t</span>\n\n\t\t\t<p \n\t\t\t\tv-if=\"product.description && !product.translations && product.listing !== 'rent'\" \n\t\t\t\tclass=\"mn-b-small t-transp p-small\"\n\t\t\t>\n\t\t\t\t{{product.description.substring(0, 99)}}...\n\t\t\t</p>\n\n\t\t\t<slot></slot>\n\n\t\t\t<div v-if=\"product.variants?.length > 0\" class=\"flex-v-center flex-nowrap flex\">\n\t\t\t\t<Price \n\t\t\t\t\t:product=\"product\" \n\t\t\t\t\tsize=\"small\" \n\t\t\t\t\tclass=\"bg-white h-100 p-regular flex flex-center pd-thin radius-small mn-r-auto\" \n\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t<button\n\t\t\t\t\tv-if=\"showAddToCart\"\n\t\t class=\"\n\t\t cursor-pointer \n\t\t radius-extra pd-thin bg-main\n\t\t \"\n\t\t >\n\t\t <IconShopcartAdd\n\t\t\t\t\t\tclass=\"icon-button-main i-medium\"\n\t\t\t\t\t/>\n\t\t </button>\n\t\t </div>\n\t\t</div>\n\n\t</div>\n\n</template>\n\n\n<script setup=\"props\">\n\timport {computed } from 'vue'\n\timport { useI18n } from 'vue-i18n'\n\timport { useRoute } from 'vue-router'\n\n\timport IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue'\n\timport IconShopcartAdd from '@martyrs/src/modules/icons/actions/IconShopcartAdd.vue'\n\n\timport THC from '@martyrs/src/modules/products/components/elements/THC.vue'\n\timport Price from '@martyrs/src/modules/products/components/elements/Price.vue'\n\n\timport PlaceholderImage from '@martyrs/src/modules/icons/placeholders/PlaceholderImage.vue'\n\n\tconst route = useRoute()\n\n\tconst props = defineProps({\n\t\tproduct: {\n\t\t\ttype: Object\n\t\t},\n\t\taccess: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t},\n\t\torganization: {\n\t\t\ttype: String\n\t\t},\n\t\tshowAddToCart: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true\n\t\t},\n\t\tuser: {\n\t\t\ttype: [Object, String]\n\t\t},\n\t\ttype: {\n\t\t\ttype: Object\n\t\t}\n\t})\n\n const { t } = useI18n()\n\n\tconst editPath = computed(() => {\n\t\tif (route.meta.context === 'backoffice') {\n\t\t\treturn `/backoffice/products/${props.product._id}/edit`\n\t\t}\n\t\tif (route.meta.context === 'organization' || props.organization) {\n\t\t\tconst orgId = props.organization || route.params._id\n\t\t\treturn `/organizations/${orgId}/products/${props.product._id}/edit`\n\t\t}\n\t\treturn `/products/${props.product._id}/edit`\n\t})\n</script>\n\n<style lang=\"scss\">\n.word-break {\n width: 100%; \n overflow: auto;\n overflow-wrap: break-word;\n word-break: break-all;\n white-space: -moz-pre-wrap;\n white-space: -hp-pre-wrap;\n white-space: -o-pre-wrap;\n white-space: -pre-wrap; \n white-space: pre-wrap; \n white-space: pre-line; \n word-wrap: break-word;\n}\n</style>\n\n\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6GC,UAAM,QAAQ,SAAQ;AAEtB,UAAM,QAAQ;AAuBb,UAAM,EAAE,EAAC,IAAK,QAAO;AAEtB,UAAM,WAAW,SAAS,MAAM;AAC/B,UAAI,MAAM,KAAK,YAAY,cAAc;AACxC,eAAO,wBAAwB,MAAM,QAAQ,GAAG;AAAA,MACjD;AACA,UAAI,MAAM,KAAK,YAAY,kBAAkB,MAAM,cAAc;AAChE,cAAM,QAAQ,MAAM,gBAAgB,MAAM,OAAO;AACjD,eAAO,kBAAkB,KAAK,aAAa,MAAM,QAAQ,GAAG;AAAA,MAC7D;AACA,aAAO,aAAa,MAAM,QAAQ,GAAG;AAAA,IACtC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"CardProduct.vue.js","sources":["../../../../../../../src/modules/products/components/blocks/CardProduct.vue"],"sourcesContent":["<template>\n\t<div \n\t\tclass=\"\n\t\t\tradius-medium \n\t\t\tcols-1\n\t\t\to-hidden\n\t\t\tpos-relative\n\t\t\"\n\t>\n\t\t<!-- Edit Button -->\n\t\t<router-link\n\t\t\tv-if=\"access\"\n :to=\"editPath\"\n class=\"\n \tz-index-2\n cursor-pointer \n pos-absolute pos-t-regular pos-r-regular\n radius-extra pd-thin bg-second\n \"\n >\n <IconEdit\n class=\"i-medium\"\n classes=\"fill-white\"\n />\n </router-link>\n\n\t\t<!-- Product Image Sqaure -->\n\t\t<div \n\t\t\tclass=\"o-hidden d-flex pd-thin pd-b-zero radius-medium o-hidden w-100 pos-relative aspect-1x1\"\n\t\t>\n\t\t\t<div class=\"w-100 h-100 pos-relative\">\n\t\t\t\t<!-- Image Wrappers -->\n\t\t\t\t<img loading=\"lazy\" \n\t\t\t\t\tv-if=\"product.images?.[0]\" \n\t\t\t\t\t:src=\"(FILE_SERVER_URL || '') + (product.images?.[0] || '').split('/').slice(0, -1).join('/') + '/thumbnail_' + (product.images?.[0] || '').split('/').pop()\"\n\t\t\t\t\tclass=\"pos-absolute object-fit-cover radius-small h-max-100 h-100 w-100\"\n\t\t\t\t>\n\n\t\t\t\t<PlaceholderImage\n\t\t\t\t\tv-else\n\t\t\t\t\tclass=\"radius-medium h-100 w-100\"\n\t\t\t\t/>\n\t\t\t\t<span v-if=\"product.available <= 0 && product.listing !== 'rent'\" class=\"pos-absolute bg-white t-black pd-thin radius-medium p-small fw-medium pos-t-small pos-l-small\">Out of Stock</span>\n\t\t\t\t<THC v-if=\"product.attributes?.length > 0 && product.attributes[1]?.name === 'THC'\" :product=\"product\" />\n\t\t\t</div>\n\t\t</div>\n\n\t\t<!-- Product Info Start -->\n\t\t<div class=\"pd-small cols-1 t-left\">\n\t\t\t<!-- Detail -->\n\t\t\t<p\n\t\t\t\tv-if=\"product.attributes?.length > 0\"\n\t\t\t\tclass=\"fw-semi opacity-50 p-small mn-b-thin\"\n\t\t\t>\n\t\t\t\t{{product.attributes[0]?.value}}\n\t\t\t</p>\n\t\t\t<!-- Name -->\n\t\t\t<span style=\" hyphens: auto;\" class=\"word-break truncate p-regular mn-b-micro w-100 w-max-100 \">\n\t\t\t\t{{product.name}}\n\t\t\t</span>\n\n\t\t\t<p \n\t\t\t\tv-if=\"product.description && !product.translations && product.listing !== 'rent'\" \n\t\t\t\tclass=\"mn-b-small opacity-50 p-small\"\n\t\t\t>\n\t\t\t\t{{product.description.substring(0, 99)}}...\n\t\t\t</p>\n\n\t\t\t<slot></slot>\n\n\t\t\t<div v-if=\"product.variants?.length > 0\" class=\"flex-v-center flex-nowrap flex\">\n\t\t\t\t<Price \n\t\t\t\t\t:product=\"product\" \n\t\t\t\t\tsize=\"small\" \n\t\t\t\t\tclass=\"bg-white h-100 p-regular flex flex-center pd-thin radius-small mn-r-auto\" \n\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t<button\n\t\t\t\t\tv-if=\"showAddToCart\"\n\t\t class=\"\n\t\t cursor-pointer \n\t\t radius-extra pd-thin bg-main\n\t\t \"\n\t\t >\n\t\t <IconShopcartAdd\n\t\t\t\t\t\tclass=\"icon-button-main i-medium\"\n\t\t\t\t\t/>\n\t\t </button>\n\t\t </div>\n\t\t</div>\n\n\t</div>\n\n</template>\n\n\n<script setup=\"props\">\n\timport {computed } from 'vue'\n\timport { useI18n } from 'vue-i18n'\n\timport { useRoute } from 'vue-router'\n\n\timport IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue'\n\timport IconShopcartAdd from '@martyrs/src/modules/icons/actions/IconShopcartAdd.vue'\n\n\timport THC from '@martyrs/src/modules/products/components/elements/THC.vue'\n\timport Price from '@martyrs/src/modules/products/components/elements/Price.vue'\n\n\timport PlaceholderImage from '@martyrs/src/modules/icons/placeholders/PlaceholderImage.vue'\n\n\tconst route = useRoute()\n\n\tconst props = defineProps({\n\t\tproduct: {\n\t\t\ttype: Object\n\t\t},\n\t\taccess: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t},\n\t\torganization: {\n\t\t\ttype: String\n\t\t},\n\t\tshowAddToCart: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true\n\t\t},\n\t\tuser: {\n\t\t\ttype: [Object, String]\n\t\t},\n\t\ttype: {\n\t\t\ttype: Object\n\t\t}\n\t})\n\n const { t } = useI18n()\n\n\tconst editPath = computed(() => {\n\t\tif (route.meta.context === 'backoffice') {\n\t\t\treturn `/backoffice/products/${props.product._id}/edit`\n\t\t}\n\t\tif (route.meta.context === 'organization' || props.organization) {\n\t\t\tconst orgId = props.organization || route.params._id\n\t\t\treturn `/organizations/${orgId}/products/${props.product._id}/edit`\n\t\t}\n\t\treturn `/products/${props.product._id}/edit`\n\t})\n</script>\n\n<style lang=\"scss\">\n.word-break {\n width: 100%; \n overflow: auto;\n overflow-wrap: break-word;\n word-break: break-all;\n white-space: -moz-pre-wrap;\n white-space: -hp-pre-wrap;\n white-space: -o-pre-wrap;\n white-space: -pre-wrap; \n white-space: pre-wrap; \n white-space: pre-line; \n word-wrap: break-word;\n}\n</style>\n\n\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6GC,UAAM,QAAQ,SAAQ;AAEtB,UAAM,QAAQ;AAuBb,UAAM,EAAE,EAAC,IAAK,QAAO;AAEtB,UAAM,WAAW,SAAS,MAAM;AAC/B,UAAI,MAAM,KAAK,YAAY,cAAc;AACxC,eAAO,wBAAwB,MAAM,QAAQ,GAAG;AAAA,MACjD;AACA,UAAI,MAAM,KAAK,YAAY,kBAAkB,MAAM,cAAc;AAChE,cAAM,QAAQ,MAAM,gBAAgB,MAAM,OAAO;AACjD,eAAO,kBAAkB,KAAK,aAAa,MAAM,QAAQ,GAAG;AAAA,MAC7D;AACA,aAAO,aAAa,MAAM,QAAQ,GAAG;AAAA,IACtC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { computed, createElementBlock, createCommentVNode, openBlock, createElementVNode, createVNode, Fragment, renderList, withCtx, toDisplayString, unref } from "vue";
2
2
  import _sfc_main$1 from "../../../icons/entities/IconDiscount.vue.js";
3
3
  import _sfc_main$3 from "../../../../components/Chips/Chips.vue.js";
4
- import _sfc_main$2 from "../../../../components/Tooltip/Tooltip.vue2.js";
4
+ import _sfc_main$2 from "../../../../components/Tooltip/Tooltip.vue.js";
5
5
  import { useGlobalMixins } from "../../../core/views/mixins/mixins.js";
6
6
  /* empty css */
7
7
  import _export_sfc from "../../../../../../_virtual/_plugin-vue_export-helper.js";
@@ -14,7 +14,7 @@ const _hoisted_6 = { class: "discount-name fw-semi p-regular" };
14
14
  const _hoisted_7 = { class: "t-main p-regular" };
15
15
  const _hoisted_8 = {
16
16
  key: 0,
17
- class: "t-small mn-t-thin t-transp"
17
+ class: "t-small mn-t-thin opacity-50"
18
18
  };
19
19
  const _hoisted_9 = {
20
20
  key: 1,
@@ -122,7 +122,7 @@ const _sfc_main = {
122
122
  };
123
123
  }
124
124
  };
125
- const ProductDiscounts = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-75ed8485"]]);
125
+ const ProductDiscounts = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-f23f703d"]]);
126
126
  export {
127
127
  ProductDiscounts as default
128
128
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ProductDiscounts.vue.js","sources":["../../../../../../../src/modules/products/components/blocks/ProductDiscounts.vue"],"sourcesContent":["<template>\n <div v-if=\"discounts && discounts.length\">\n <div class=\"mn-b-small flex-nowrap flex flex-v-center\">\n <IconDiscount class=\"mn-r-micro i-medium\"/>\n <p class=\"fw-medium\">Special Offers</p>\n </div>\n\n <div class=\"flex flex-column flex-wrap gap-thin\">\n <div \n v-for=\"(discount, index) in discounts\" \n :key=\"index\" \n class=\"discount-card bg-light pd-small radius-small br-1px br-light cursor-pointer \"\n @click=\"selectDiscount(discount)\"\n >\n <div class=\"flex flex-wrap gap-thin flex-v-center w-100\">\n\n <Tooltip :text=\"discount.description || 'No description'\">\n <span class=\"discount-name fw-semi p-regular\">{{ discount.name }}</span>\n </Tooltip>\n\n <span class=\"t-main p-regular\">\n {{returnCurrency()}}{{ discount.value }} per {{ currentVariant?.quantity || 1 }}{{ currentVariant?.unit || pcs }}\n </span>\n\n </div>\n \n <p v-if=\"discount.description\" class=\"t-small mn-t-thin t-transp\">{{ discount.description }}</p>\n <div v-if=\"getConditionsAsChips(discount).length > 0\" class=\"mn-t-small\"><Chips class=\"\" :chips=\"getConditionsAsChips(discount)\" /></div>\n </div>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { computed } from 'vue';\nimport IconDiscount from '@martyrs/src/modules/icons/entities/IconDiscount.vue'\nimport Chips from '@martyrs/src/components/Chips/Chips.vue';\nimport Tooltip from '@martyrs/src/components/Tooltip/Tooltip.vue';\nimport { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js';\n\nconst { returnCurrency } = useGlobalMixins();\n\nconst props = defineProps({\n discounts: { \n type: Array, \n default: () => [] \n },\n regularPrice: { \n type: [String, Number], \n default: 0 \n },\n selectedVariant: {\n type: Object,\n default: null\n },\n productVariants: {\n type: Array,\n default: () => []\n }\n});\n\nconst emit = defineEmits(['select-discount']);\n\n// Helper to determine if a discount has date conditions\nconst hasDateCondition = (discount) => {\n return discount.date && (discount.date.start || discount.date.end);\n};\n\n// Helper to determine if a discount has time conditions\nconst hasTimeCondition = (discount) => {\n return discount.time && (discount.time.start || discount.time.end);\n};\n\n// Format date range for display\nconst formatDateRange = (dateRange) => {\n if (!dateRange) return '';\n \n const start = dateRange.start ? new Date(dateRange.start).toLocaleDateString() : 'Anytime';\n const end = dateRange.end ? new Date(dateRange.end).toLocaleDateString() : 'No end date';\n \n return `${start}-${end}`;\n};\n\n// Format time range for display\nconst formatTimeRange = (timeRange) => {\n if (!timeRange) return '';\n \n const start = timeRange.start || 'Anytime';\n const end = timeRange.end || 'No end time';\n \n // Check if we're referencing today\n const now = new Date();\n const isToday = true; // Simplification - in a real app we'd check if the date range includes today\n \n return isToday ? `${start}-${end} today` : `${start}-${end}`;\n};\n\n// Get the current variant (selected or default to first)\nconst currentVariant = computed(() => {\n return props.selectedVariant || (props.productVariants?.length > 0 ? props.productVariants[0] : null);\n});\n\nconst getConditionsAsChips = (discount) => {\n const chips = [];\n \n // Quantity condition - используем quantity из текущего варианта, а не из скидки\n // if (currentVariant.value?.quantity && currentVariant.value.quantity > 0) {\n // chips.push({ \n // text: `+${discount.quantity}`, \n // });\n // }\n \n // Date condition\n if (hasDateCondition(discount)) {\n chips.push({ \n text: `Valid: ${formatDateRange(discount.date)}` \n });\n }\n \n // Time condition\n if (hasTimeCondition(discount)) {\n chips.push({ \n text: `Available: ${formatTimeRange(discount.time)}` \n });\n }\n \n return chips;\n};\n// Handle discount selection\nconst selectDiscount = (discount) => {\n emit('select-discount', discount);\n};\n</script>\n\n<style scoped>\n.discount-card {\n transition: all 0.2s ease;\n}\n\n.discount-card:hover {\n border-color: rgb(var(--main));\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCA,UAAM,EAAE,eAAc,IAAK,gBAAe;AAE1C,UAAM,QAAQ;AAmBd,UAAM,OAAO;AAGb,UAAM,mBAAmB,CAAC,aAAa;AACrC,aAAO,SAAS,SAAS,SAAS,KAAK,SAAS,SAAS,KAAK;AAAA,IAChE;AAGA,UAAM,mBAAmB,CAAC,aAAa;AACrC,aAAO,SAAS,SAAS,SAAS,KAAK,SAAS,SAAS,KAAK;AAAA,IAChE;AAGA,UAAM,kBAAkB,CAAC,cAAc;AACrC,UAAI,CAAC,UAAW,QAAO;AAEvB,YAAM,QAAQ,UAAU,QAAQ,IAAI,KAAK,UAAU,KAAK,EAAE,mBAAkB,IAAK;AACjF,YAAM,MAAM,UAAU,MAAM,IAAI,KAAK,UAAU,GAAG,EAAE,mBAAkB,IAAK;AAE3E,aAAO,GAAG,KAAK,IAAI,GAAG;AAAA,IACxB;AAGA,UAAM,kBAAkB,CAAC,cAAc;AACrC,UAAI,CAAC,UAAW,QAAO;AAEvB,YAAM,QAAQ,UAAU,SAAS;AACjC,YAAM,MAAM,UAAU,OAAO;AAI7B,YAAM,UAAU;AAEhB,aAAO,UAAU,GAAG,KAAK,IAAI,GAAG,WAAW,GAAG,KAAK,IAAI,GAAG;AAAA,IAC5D;AAGA,UAAM,iBAAiB,SAAS,MAAM;AACpC,aAAO,MAAM,oBAAoB,MAAM,iBAAiB,SAAS,IAAI,MAAM,gBAAgB,CAAC,IAAI;AAAA,IAClG,CAAC;AAED,UAAM,uBAAuB,CAAC,aAAa;AACzC,YAAM,QAAQ,CAAA;AAUd,UAAI,iBAAiB,QAAQ,GAAG;AAC9B,cAAM,KAAK;AAAA,UACT,MAAM,UAAU,gBAAgB,SAAS,IAAI,CAAC;AAAA,QACpD,CAAK;AAAA,MACH;AAGA,UAAI,iBAAiB,QAAQ,GAAG;AAC9B,cAAM,KAAK;AAAA,UACT,MAAM,cAAc,gBAAgB,SAAS,IAAI,CAAC;AAAA,QACxD,CAAK;AAAA,MACH;AAEA,aAAO;AAAA,IACT;AAEA,UAAM,iBAAiB,CAAC,aAAa;AACnC,WAAK,mBAAmB,QAAQ;AAAA,IAClC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ProductDiscounts.vue.js","sources":["../../../../../../../src/modules/products/components/blocks/ProductDiscounts.vue"],"sourcesContent":["<template>\n <div v-if=\"discounts && discounts.length\">\n <div class=\"mn-b-small flex-nowrap flex flex-v-center\">\n <IconDiscount class=\"mn-r-micro i-medium\"/>\n <p class=\"fw-medium\">Special Offers</p>\n </div>\n\n <div class=\"flex flex-column flex-wrap gap-thin\">\n <div \n v-for=\"(discount, index) in discounts\" \n :key=\"index\" \n class=\"discount-card bg-light pd-small radius-small br-1px br-light cursor-pointer \"\n @click=\"selectDiscount(discount)\"\n >\n <div class=\"flex flex-wrap gap-thin flex-v-center w-100\">\n\n <Tooltip :text=\"discount.description || 'No description'\">\n <span class=\"discount-name fw-semi p-regular\">{{ discount.name }}</span>\n </Tooltip>\n\n <span class=\"t-main p-regular\">\n {{returnCurrency()}}{{ discount.value }} per {{ currentVariant?.quantity || 1 }}{{ currentVariant?.unit || pcs }}\n </span>\n\n </div>\n \n <p v-if=\"discount.description\" class=\"t-small mn-t-thin opacity-50\">{{ discount.description }}</p>\n <div v-if=\"getConditionsAsChips(discount).length > 0\" class=\"mn-t-small\"><Chips class=\"\" :chips=\"getConditionsAsChips(discount)\" /></div>\n </div>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { computed } from 'vue';\nimport IconDiscount from '@martyrs/src/modules/icons/entities/IconDiscount.vue'\nimport Chips from '@martyrs/src/components/Chips/Chips.vue';\nimport Tooltip from '@martyrs/src/components/Tooltip/Tooltip.vue';\nimport { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js';\n\nconst { returnCurrency } = useGlobalMixins();\n\nconst props = defineProps({\n discounts: { \n type: Array, \n default: () => [] \n },\n regularPrice: { \n type: [String, Number], \n default: 0 \n },\n selectedVariant: {\n type: Object,\n default: null\n },\n productVariants: {\n type: Array,\n default: () => []\n }\n});\n\nconst emit = defineEmits(['select-discount']);\n\n// Helper to determine if a discount has date conditions\nconst hasDateCondition = (discount) => {\n return discount.date && (discount.date.start || discount.date.end);\n};\n\n// Helper to determine if a discount has time conditions\nconst hasTimeCondition = (discount) => {\n return discount.time && (discount.time.start || discount.time.end);\n};\n\n// Format date range for display\nconst formatDateRange = (dateRange) => {\n if (!dateRange) return '';\n \n const start = dateRange.start ? new Date(dateRange.start).toLocaleDateString() : 'Anytime';\n const end = dateRange.end ? new Date(dateRange.end).toLocaleDateString() : 'No end date';\n \n return `${start}-${end}`;\n};\n\n// Format time range for display\nconst formatTimeRange = (timeRange) => {\n if (!timeRange) return '';\n \n const start = timeRange.start || 'Anytime';\n const end = timeRange.end || 'No end time';\n \n // Check if we're referencing today\n const now = new Date();\n const isToday = true; // Simplification - in a real app we'd check if the date range includes today\n \n return isToday ? `${start}-${end} today` : `${start}-${end}`;\n};\n\n// Get the current variant (selected or default to first)\nconst currentVariant = computed(() => {\n return props.selectedVariant || (props.productVariants?.length > 0 ? props.productVariants[0] : null);\n});\n\nconst getConditionsAsChips = (discount) => {\n const chips = [];\n \n // Quantity condition - используем quantity из текущего варианта, а не из скидки\n // if (currentVariant.value?.quantity && currentVariant.value.quantity > 0) {\n // chips.push({ \n // text: `+${discount.quantity}`, \n // });\n // }\n \n // Date condition\n if (hasDateCondition(discount)) {\n chips.push({ \n text: `Valid: ${formatDateRange(discount.date)}` \n });\n }\n \n // Time condition\n if (hasTimeCondition(discount)) {\n chips.push({ \n text: `Available: ${formatTimeRange(discount.time)}` \n });\n }\n \n return chips;\n};\n// Handle discount selection\nconst selectDiscount = (discount) => {\n emit('select-discount', discount);\n};\n</script>\n\n<style scoped>\n.discount-card {\n transition: all 0.2s ease;\n}\n\n.discount-card:hover {\n border-color: rgb(var(--main));\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCA,UAAM,EAAE,eAAc,IAAK,gBAAe;AAE1C,UAAM,QAAQ;AAmBd,UAAM,OAAO;AAGb,UAAM,mBAAmB,CAAC,aAAa;AACrC,aAAO,SAAS,SAAS,SAAS,KAAK,SAAS,SAAS,KAAK;AAAA,IAChE;AAGA,UAAM,mBAAmB,CAAC,aAAa;AACrC,aAAO,SAAS,SAAS,SAAS,KAAK,SAAS,SAAS,KAAK;AAAA,IAChE;AAGA,UAAM,kBAAkB,CAAC,cAAc;AACrC,UAAI,CAAC,UAAW,QAAO;AAEvB,YAAM,QAAQ,UAAU,QAAQ,IAAI,KAAK,UAAU,KAAK,EAAE,mBAAkB,IAAK;AACjF,YAAM,MAAM,UAAU,MAAM,IAAI,KAAK,UAAU,GAAG,EAAE,mBAAkB,IAAK;AAE3E,aAAO,GAAG,KAAK,IAAI,GAAG;AAAA,IACxB;AAGA,UAAM,kBAAkB,CAAC,cAAc;AACrC,UAAI,CAAC,UAAW,QAAO;AAEvB,YAAM,QAAQ,UAAU,SAAS;AACjC,YAAM,MAAM,UAAU,OAAO;AAI7B,YAAM,UAAU;AAEhB,aAAO,UAAU,GAAG,KAAK,IAAI,GAAG,WAAW,GAAG,KAAK,IAAI,GAAG;AAAA,IAC5D;AAGA,UAAM,iBAAiB,SAAS,MAAM;AACpC,aAAO,MAAM,oBAAoB,MAAM,iBAAiB,SAAS,IAAI,MAAM,gBAAgB,CAAC,IAAI;AAAA,IAClG,CAAC;AAED,UAAM,uBAAuB,CAAC,aAAa;AACzC,YAAM,QAAQ,CAAA;AAUd,UAAI,iBAAiB,QAAQ,GAAG;AAC9B,cAAM,KAAK;AAAA,UACT,MAAM,UAAU,gBAAgB,SAAS,IAAI,CAAC;AAAA,QACpD,CAAK;AAAA,MACH;AAGA,UAAI,iBAAiB,QAAQ,GAAG;AAC9B,cAAM,KAAK;AAAA,UACT,MAAM,cAAc,gBAAgB,SAAS,IAAI,CAAC;AAAA,QACxD,CAAK;AAAA,MACH;AAEA,aAAO;AAAA,IACT;AAEA,UAAM,iBAAiB,CAAC,aAAa;AACnC,WAAK,mBAAmB,QAAQ;AAAA,IAClC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -5,7 +5,7 @@ import PlaceholderImage from "../../../icons/placeholders/PlaceholderImage.vue.j
5
5
  import Image360 from "../elements/Image360.vue.js";
6
6
  /* empty css */
7
7
  import _export_sfc from "../../../../../../_virtual/_plugin-vue_export-helper.js";
8
- const _hoisted_1 = { class: "w-100 bs-big h-max mobile:pos-relative tablet:pos-relative pos-sticky pos-t-0 pd-medium o-hidden bg-light radius-medium gap-small flex-nowrap flex-row mobile:flex-column flex pos-relative" };
8
+ const _hoisted_1 = { class: "w-100 bs-big h-[100cqh] mobile:h-auto tablet:h-auto mobile:pos-relative tablet:pos-relative pos-sticky pos-t-0 pd-medium o-hidden bg-light radius-medium gap-small flex-nowrap flex-row mobile:flex-column flex pos-relative" };
9
9
  const _hoisted_2 = ["src"];
10
10
  const _hoisted_3 = {
11
11
  key: 0,
@@ -99,7 +99,7 @@ const _sfc_main = {
99
99
  };
100
100
  }
101
101
  };
102
- const ProductImages = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-2037f0f7"]]);
102
+ const ProductImages = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-298ab040"]]);
103
103
  export {
104
104
  ProductImages as default
105
105
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ProductImages.vue.js","sources":["../../../../../../../src/modules/products/components/blocks/ProductImages.vue"],"sourcesContent":["<template>\n <div class=\"w-100 bs-big h-max mobile:pos-relative tablet:pos-relative pos-sticky pos-t-0 pd-medium o-hidden bg-light radius-medium gap-small flex-nowrap flex-row mobile:flex-column flex pos-relative\">\n <!-- Main image container -->\n <div class=\"order-1 w-100 bg-light radius-small o-hidden\" @click=\"openPopup(currentImageIndex)\">\n <Image360\n v-if=\"product && product.image3d\"\n class=\"h-100 w-100\"\n :imagePath=\"`/assets/images/products/${product.image3d}`\"\n :imageCount=\"36\"\n />\n <img\n loading=\"lazy\"\n v-if=\"images[currentImageIndex] && !product?.image3d\"\n class=\"h-100 flex-child-default bg-white radius-small w-100\"\n style=\"object-fit: contain;\"\n :src=\"(FILE_SERVER_URL || '') + images[currentImageIndex]\"\n />\n <PlaceholderImage\n v-if=\"!images[currentImageIndex] && !product?.image3d\"\n class=\"h-100 w-100\"\n style=\"object-fit: cover;\"\n />\n </div>\n \n <!-- Thumbnails -->\n <div v-if=\"images.length > 1\" class=\"mobile:order-1 order-0 w-5r mobile:w-100\">\n <div class=\"w-100 mobile:flex-row flex-column flex flex-nowrap gap-thin\">\n <img loading=\"lazy\" \n v-for=\"(image, index) in images.slice(0, 5)\"\n :key=\"index\"\n :src=\"(FILE_SERVER_URL || '') + image\" \n @click=\"currentImageIndex = index\"\n class=\"aspect-1x1 radius-small bg-white o-hidden thumbnail\"\n :class=\"{ 'active': currentImageIndex === index }\"\n />\n <div\n v-if=\"images.length > 5\"\n @click=\"openPopup(5)\"\n class=\"aspect-1x1 radius-small o-hidden thumbnail flex flex-center fw-medium t-black bg-white \"\n >\n +{{ images.length - 5 }}\n </div>\n </div>\n </div>\n \n <!-- Popup with photo viewer -->\n <Popup @close-popup=\"closePopup\" :isPopupOpen=\"isPopupVisible\" class=\"radius-zero w-100 o-hidden\">\n <PhotoViewer\n :photos=\"images.map(img => (FILE_SERVER_URL || '') + img)\"\n :initialIndex=\"selectedImageIndex\"\n />\n </Popup>\n </div>\n</template>\n\n<script setup>\nimport { ref } from \"vue\";\nimport Popup from '@martyrs/src/components/Popup/Popup.vue';\nimport PhotoViewer from '@martyrs/src/components/PhotoViewer/PhotoViewer.vue';\nimport PlaceholderImage from '@martyrs/src/modules/icons/placeholders/PlaceholderImage.vue'\nimport Image360 from '@martyrs/src/modules/products/components/elements/Image360.vue'\n\nconst props = defineProps({\n images: {\n type: Array,\n required: true,\n },\n product: {\n type: Object,\n default: () => ({})\n },\n});\n\nconst isPopupVisible = ref(false);\nconst selectedImageIndex = ref(0);\nconst currentImageIndex = ref(0);\n\nconst openPopup = (index) => {\n if (!props.images.length) return;\n selectedImageIndex.value = index;\n isPopupVisible.value = true;\n};\n\nconst closePopup = () => {\n selectedImageIndex.value = 0;\n isPopupVisible.value = false;\n};\n</script>\n\n<style scoped>\n.thumbnail {\n width: 100%;\n object-fit: cover;\n cursor: pointer;\n}\n.thumbnail.active {\n border: 1px solid rgb(var(--second));\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8DA,UAAM,QAAQ;AAWd,UAAM,iBAAiB,IAAI,KAAK;AAChC,UAAM,qBAAqB,IAAI,CAAC;AAChC,UAAM,oBAAoB,IAAI,CAAC;AAE/B,UAAM,YAAY,CAAC,UAAU;AAC3B,UAAI,CAAC,MAAM,OAAO,OAAQ;AAC1B,yBAAmB,QAAQ;AAC3B,qBAAe,QAAQ;AAAA,IACzB;AAEA,UAAM,aAAa,MAAM;AACvB,yBAAmB,QAAQ;AAC3B,qBAAe,QAAQ;AAAA,IACzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ProductImages.vue.js","sources":["../../../../../../../src/modules/products/components/blocks/ProductImages.vue"],"sourcesContent":["<template>\n <div class=\"w-100 bs-big h-[100cqh] mobile:h-auto tablet:h-auto mobile:pos-relative tablet:pos-relative pos-sticky pos-t-0 pd-medium o-hidden bg-light radius-medium gap-small flex-nowrap flex-row mobile:flex-column flex pos-relative\">\n <!-- Main image container -->\n <div class=\"order-1 w-100 bg-light radius-small o-hidden\" @click=\"openPopup(currentImageIndex)\">\n <Image360\n v-if=\"product && product.image3d\"\n class=\"h-100 w-100\"\n :imagePath=\"`/assets/images/products/${product.image3d}`\"\n :imageCount=\"36\"\n />\n <img\n loading=\"lazy\"\n v-if=\"images[currentImageIndex] && !product?.image3d\"\n class=\"h-100 flex-child-default bg-white radius-small w-100\"\n style=\"object-fit: contain;\"\n :src=\"(FILE_SERVER_URL || '') + images[currentImageIndex]\"\n />\n <PlaceholderImage\n v-if=\"!images[currentImageIndex] && !product?.image3d\"\n class=\"h-100 w-100\"\n style=\"object-fit: cover;\"\n />\n </div>\n \n <!-- Thumbnails -->\n <div v-if=\"images.length > 1\" class=\"mobile:order-1 order-0 w-5r mobile:w-100\">\n <div class=\"w-100 mobile:flex-row flex-column flex flex-nowrap gap-thin\">\n <img loading=\"lazy\" \n v-for=\"(image, index) in images.slice(0, 5)\"\n :key=\"index\"\n :src=\"(FILE_SERVER_URL || '') + image\" \n @click=\"currentImageIndex = index\"\n class=\"aspect-1x1 radius-small bg-white o-hidden thumbnail\"\n :class=\"{ 'active': currentImageIndex === index }\"\n />\n <div\n v-if=\"images.length > 5\"\n @click=\"openPopup(5)\"\n class=\"aspect-1x1 radius-small o-hidden thumbnail flex flex-center fw-medium t-black bg-white \"\n >\n +{{ images.length - 5 }}\n </div>\n </div>\n </div>\n \n <!-- Popup with photo viewer -->\n <Popup @close-popup=\"closePopup\" :isPopupOpen=\"isPopupVisible\" class=\"radius-zero w-100 o-hidden\">\n <PhotoViewer\n :photos=\"images.map(img => (FILE_SERVER_URL || '') + img)\"\n :initialIndex=\"selectedImageIndex\"\n />\n </Popup>\n </div>\n</template>\n\n<script setup>\nimport { ref } from \"vue\";\nimport Popup from '@martyrs/src/components/Popup/Popup.vue';\nimport PhotoViewer from '@martyrs/src/components/PhotoViewer/PhotoViewer.vue';\nimport PlaceholderImage from '@martyrs/src/modules/icons/placeholders/PlaceholderImage.vue'\nimport Image360 from '@martyrs/src/modules/products/components/elements/Image360.vue'\n\nconst props = defineProps({\n images: {\n type: Array,\n required: true,\n },\n product: {\n type: Object,\n default: () => ({})\n },\n});\n\nconst isPopupVisible = ref(false);\nconst selectedImageIndex = ref(0);\nconst currentImageIndex = ref(0);\n\nconst openPopup = (index) => {\n if (!props.images.length) return;\n selectedImageIndex.value = index;\n isPopupVisible.value = true;\n};\n\nconst closePopup = () => {\n selectedImageIndex.value = 0;\n isPopupVisible.value = false;\n};\n</script>\n\n<style scoped>\n.thumbnail {\n width: 100%;\n object-fit: cover;\n cursor: pointer;\n}\n.thumbnail.active {\n border: 1px solid rgb(var(--second));\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8DA,UAAM,QAAQ;AAWd,UAAM,iBAAiB,IAAI,KAAK;AAChC,UAAM,qBAAqB,IAAI,CAAC;AAChC,UAAM,oBAAoB,IAAI,CAAC;AAE/B,UAAM,YAAY,CAAC,UAAU;AAC3B,UAAI,CAAC,MAAM,OAAO,OAAQ;AAC1B,yBAAmB,QAAQ;AAC3B,qBAAe,QAAQ;AAAA,IACzB;AAEA,UAAM,aAAa,MAAM;AACvB,yBAAmB,QAAQ;AAC3B,qBAAe,QAAQ;AAAA,IACzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { ref, computed, watch, onMounted, createElementBlock, openBlock, Fragment, renderList, createElementVNode, toDisplayString, normalizeClass, createCommentVNode } from "vue";
2
2
  const _hoisted_1 = { class: "w-100" };
3
3
  const _hoisted_2 = { class: "capitalize mn-b-thin fw-medium" };
4
- const _hoisted_3 = { class: "flex flex-wrap gap-thin mn-b-medium" };
4
+ const _hoisted_3 = { class: "flex flex-nowrap gap-thin mn-b-medium o-x-scroll scroll-hide" };
5
5
  const _hoisted_4 = ["onClick", "disabled"];
6
6
  const _hoisted_5 = ["src"];
7
7
  const _hoisted_6 = { class: "" };
@@ -33,7 +33,7 @@ const _sfc_main = {
33
33
  return {
34
34
  key: lbl + val,
35
35
  value: val,
36
- img: i === 0 ? v.images?.[0] : null,
36
+ img: v.showImages ? v.images?.[0] : null,
37
37
  off: !v.available,
38
38
  text: val
39
39
  };
@@ -46,7 +46,7 @@ const _sfc_main = {
46
46
  items: props.productVariants.map((v) => ({
47
47
  key: v._id,
48
48
  variant: v,
49
- img: v.images?.[0],
49
+ img: v.showImages ? v.images?.[0] : null,
50
50
  off: !v.available,
51
51
  text: v.name || v.sku
52
52
  }))
@@ -1 +1 @@
1
- {"version":3,"file":"ProductVariants.vue.js","sources":["../../../../../../../src/modules/products/components/blocks/ProductVariants.vue"],"sourcesContent":["<template>\n <div class=\"w-100\">\n <div\n v-for=\"group in groups\"\n :key=\"group.label\"\n class=\"w-100 mn-b-medium\"\n >\n <p class=\"capitalize mn-b-thin fw-medium\">{{ group.label }}</p>\n\n <div class=\"flex flex-wrap gap-thin mn-b-medium\">\n <button\n v-for=\"item in group.items\"\n :key=\"item.key\"\n @click=\"group.label === 'Options' ? pick(item.variant) : pickAttr(group.label, item.value)\"\n :disabled=\"item.off\"\n class=\"pd-small radius-small\"\n :class=\"[\n isSelected(group, item) ? 'br-main' : 'br-black-transp-10',\n item.off ? 'o-50 cursor-not-allowed' : 'cursor-pointer hover:scale-[1.05]',\n ]\"\n >\n <img\n v-if=\"item.img\"\n :src=\"`${FILE_SERVER_URL}${item.img}`\"\n class=\"h-100 radius-thin aspect-1x1 object-fit-contain\"\n />\n <p class=\"\">\n {{ item.text }}\n </p>\n\n <div\n v-if=\"isSelected(group, item)\"\n class=\"pos-absolute pos-b-0 pos-r-0 pos-l-0 flex flex-center h-1r bg-main t-white t-small\"\n >\n Selected\n </div>\n </button>\n </div>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed, watch, onMounted } from 'vue';\n\nconst props = defineProps({ productVariants: Array });\nconst emit = defineEmits(['variant-selected', 'update-images']);\n\nconst selectedAttributes = ref({});\nconst selected = ref(null);\n\nconst hasAttrs = computed(() =>\n props.productVariants.some(v => v.attributes?.length)\n);\n\nconst groups = computed(() => {\n if (hasAttrs.value) {\n const labels = [...new Set(props.productVariants[0].attributes.map(a => a.name))];\n return labels.map((lbl, i) => ({\n label: lbl,\n items: [...new Set(\n props.productVariants.map(v => v.attributes.find(a => a.name === lbl)?.value)\n )]\n .filter(Boolean)\n .map(val => {\n const v = props.productVariants.find(x => x.attributes.find(a => a.name === lbl && a.value === val));\n return {\n key: lbl + val,\n value: val,\n img: i === 0 ? v.images?.[0] : null,\n off: !v.available,\n text: val,\n };\n }),\n }));\n }\n if (props.productVariants.length > 1) {\n return [{\n label: 'Options',\n items: props.productVariants.map(v => ({\n key: v._id,\n variant: v,\n img: v.images?.[0],\n off: !v.available,\n text: v.name || v.sku,\n })),\n }];\n }\n return [];\n});\n\nconst pick = v => {\n if (!v.available) return;\n selectedAttributes.value = Object.fromEntries(v.attributes?.map(a => [a.name, a.value]) || []);\n selected.value = v;\n emit('variant-selected', v);\n v.images?.length && emit('update-images', v.images);\n};\n\nconst pickAttr = (lbl, val) => {\n const test = { ...selectedAttributes.value, [lbl]: val };\n if (!props.productVariants.some(v =>\n Object.entries(test).every(([k, x]) =>\n v.attributes.find(a => a.name === k && a.value === x)\n )\n )) return;\n selectedAttributes.value = test;\n};\n\nwatch(selectedAttributes, attrs => {\n const m = props.productVariants.find(v =>\n Object.entries(attrs).every(([k, x]) => v.attributes.find(a => a.name === k && a.value === x))\n );\n if (m && selected.value?._id !== m._id) {\n pick(m);\n } else if (!m) {\n selected.value = null;\n }\n});\n\nonMounted(() => props.productVariants.length === 1 && pick(props.productVariants[0]));\n\nconst isSelected = (g, i) =>\n g.label === 'Options'\n ? selected.value?._id === i.variant?._id\n : selectedAttributes.value[g.label] === i.value;\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AA6CA,UAAM,QAAQ;AACd,UAAM,OAAO;AAEb,UAAM,qBAAqB,IAAI,EAAE;AACjC,UAAM,WAAW,IAAI,IAAI;AAEzB,UAAM,WAAW;AAAA,MAAS,MACxB,MAAM,gBAAgB,KAAK,OAAK,EAAE,YAAY,MAAM;AAAA,IACtD;AAEA,UAAM,SAAS,SAAS,MAAM;AAC5B,UAAI,SAAS,OAAO;AAClB,cAAM,SAAS,CAAC,GAAG,IAAI,IAAI,MAAM,gBAAgB,CAAC,EAAE,WAAW,IAAI,OAAK,EAAE,IAAI,CAAC,CAAC;AAChF,eAAO,OAAO,IAAI,CAAC,KAAK,OAAO;AAAA,UAC7B,OAAO;AAAA,UACP,OAAO,CAAC,GAAG,IAAI;AAAA,YACb,MAAM,gBAAgB,IAAI,OAAK,EAAE,WAAW,KAAK,OAAK,EAAE,SAAS,GAAG,GAAG,KAAK;AAAA,UACpF,CAAO,EACE,OAAO,OAAO,EACd,IAAI,SAAO;AACV,kBAAM,IAAI,MAAM,gBAAgB,KAAK,OAAK,EAAE,WAAW,KAAK,OAAK,EAAE,SAAS,OAAO,EAAE,UAAU,GAAG,CAAC;AACnG,mBAAO;AAAA,cACL,KAAK,MAAM;AAAA,cACX,OAAO;AAAA,cACP,KAAK,MAAM,IAAI,EAAE,SAAS,CAAC,IAAI;AAAA,cAC/B,KAAK,CAAC,EAAE;AAAA,cACR,MAAM;AAAA,YAClB;AAAA,UACQ,CAAC;AAAA,QACT,EAAM;AAAA,MACJ;AACA,UAAI,MAAM,gBAAgB,SAAS,GAAG;AACpC,eAAO,CAAC;AAAA,UACN,OAAO;AAAA,UACP,OAAO,MAAM,gBAAgB,IAAI,QAAM;AAAA,YACrC,KAAK,EAAE;AAAA,YACP,SAAS;AAAA,YACT,KAAK,EAAE,SAAS,CAAC;AAAA,YACjB,KAAK,CAAC,EAAE;AAAA,YACR,MAAM,EAAE,QAAQ,EAAE;AAAA,UAC1B,EAAQ;AAAA,QACR,CAAK;AAAA,MACH;AACA,aAAO,CAAA;AAAA,IACT,CAAC;AAED,UAAM,OAAO,OAAK;AAChB,UAAI,CAAC,EAAE,UAAW;AAClB,yBAAmB,QAAQ,OAAO,YAAY,EAAE,YAAY,IAAI,OAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,CAAA,CAAE;AAC7F,eAAS,QAAQ;AACjB,WAAK,oBAAoB,CAAC;AAC1B,QAAE,QAAQ,UAAU,KAAK,iBAAiB,EAAE,MAAM;AAAA,IACpD;AAEA,UAAM,WAAW,CAAC,KAAK,QAAQ;AAC7B,YAAM,OAAO,EAAE,GAAG,mBAAmB,OAAO,CAAC,GAAG,GAAG,IAAG;AACtD,UAAI,CAAC,MAAM,gBAAgB;AAAA,QAAK,OAC9B,OAAO,QAAQ,IAAI,EAAE;AAAA,UAAM,CAAC,CAAC,GAAG,CAAC,MAC/B,EAAE,WAAW,KAAK,OAAK,EAAE,SAAS,KAAK,EAAE,UAAU,CAAC;AAAA,QAC1D;AAAA,MACA,EAAK;AACH,yBAAmB,QAAQ;AAAA,IAC7B;AAEA,UAAM,oBAAoB,WAAS;AACjC,YAAM,IAAI,MAAM,gBAAgB;AAAA,QAAK,OACnC,OAAO,QAAQ,KAAK,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,KAAK,OAAK,EAAE,SAAS,KAAK,EAAE,UAAU,CAAC,CAAC;AAAA,MACjG;AACE,UAAI,KAAK,SAAS,OAAO,QAAQ,EAAE,KAAK;AACtC,aAAK,CAAC;AAAA,MACR,WAAW,CAAC,GAAG;AACb,iBAAS,QAAQ;AAAA,MACnB;AAAA,IACF,CAAC;AAED,cAAU,MAAM,MAAM,gBAAgB,WAAW,KAAK,KAAK,MAAM,gBAAgB,CAAC,CAAC,CAAC;AAEpF,UAAM,aAAa,CAAC,GAAG,MACrB,EAAE,UAAU,YACR,SAAS,OAAO,QAAQ,EAAE,SAAS,MACnC,mBAAmB,MAAM,EAAE,KAAK,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ProductVariants.vue.js","sources":["../../../../../../../src/modules/products/components/blocks/ProductVariants.vue"],"sourcesContent":["<template>\n <div class=\"w-100\">\n <div\n v-for=\"group in groups\"\n :key=\"group.label\"\n class=\"w-100 mn-b-medium\"\n >\n <p class=\"capitalize mn-b-thin fw-medium\">{{ group.label }}</p>\n\n <div class=\"flex flex-nowrap gap-thin mn-b-medium o-x-scroll scroll-hide\">\n <button\n v-for=\"item in group.items\"\n :key=\"item.key\"\n @click=\"group.label === 'Options' ? pick(item.variant) : pickAttr(group.label, item.value)\"\n :disabled=\"item.off\"\n class=\"pd-small radius-small\"\n :class=\"[\n isSelected(group, item) ? 'br-main' : 'br-black-transp-10',\n item.off ? 'o-50 cursor-not-allowed' : 'cursor-pointer hover:scale-[1.05]',\n ]\"\n >\n <img\n v-if=\"item.img\"\n :src=\"`${FILE_SERVER_URL}${item.img}`\"\n class=\"h-100 radius-thin aspect-1x1 object-fit-contain\"\n />\n <p class=\"\">\n {{ item.text }}\n </p>\n\n <div\n v-if=\"isSelected(group, item)\"\n class=\"pos-absolute pos-b-0 pos-r-0 pos-l-0 flex flex-center h-1r bg-main t-white t-small\"\n >\n Selected\n </div>\n </button>\n </div>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed, watch, onMounted } from 'vue';\n\nconst props = defineProps({ productVariants: Array });\nconst emit = defineEmits(['variant-selected', 'update-images']);\n\nconst selectedAttributes = ref({});\nconst selected = ref(null);\n\nconst hasAttrs = computed(() =>\n props.productVariants.some(v => v.attributes?.length)\n);\n\nconst groups = computed(() => {\n if (hasAttrs.value) {\n const labels = [...new Set(props.productVariants[0].attributes.map(a => a.name))];\n return labels.map((lbl, i) => ({\n label: lbl,\n items: [...new Set(\n props.productVariants.map(v => v.attributes.find(a => a.name === lbl)?.value)\n )]\n .filter(Boolean)\n .map(val => {\n const v = props.productVariants.find(x => x.attributes.find(a => a.name === lbl && a.value === val));\n return {\n key: lbl + val,\n value: val,\n img: v.showImages ? v.images?.[0] : null,\n off: !v.available,\n text: val,\n };\n }),\n }));\n }\n if (props.productVariants.length > 1) {\n return [{\n label: 'Options',\n items: props.productVariants.map(v => ({\n key: v._id,\n variant: v,\n img: v.showImages ? v.images?.[0] : null,\n off: !v.available,\n text: v.name || v.sku,\n })),\n }];\n }\n return [];\n});\n\nconst pick = v => {\n if (!v.available) return;\n selectedAttributes.value = Object.fromEntries(v.attributes?.map(a => [a.name, a.value]) || []);\n selected.value = v;\n emit('variant-selected', v);\n v.images?.length && emit('update-images', v.images);\n};\n\nconst pickAttr = (lbl, val) => {\n const test = { ...selectedAttributes.value, [lbl]: val };\n if (!props.productVariants.some(v =>\n Object.entries(test).every(([k, x]) =>\n v.attributes.find(a => a.name === k && a.value === x)\n )\n )) return;\n selectedAttributes.value = test;\n};\n\nwatch(selectedAttributes, attrs => {\n const m = props.productVariants.find(v =>\n Object.entries(attrs).every(([k, x]) => v.attributes.find(a => a.name === k && a.value === x))\n );\n if (m && selected.value?._id !== m._id) {\n pick(m);\n } else if (!m) {\n selected.value = null;\n }\n});\n\nonMounted(() => props.productVariants.length === 1 && pick(props.productVariants[0]));\n\nconst isSelected = (g, i) =>\n g.label === 'Options'\n ? selected.value?._id === i.variant?._id\n : selectedAttributes.value[g.label] === i.value;\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AA6CA,UAAM,QAAQ;AACd,UAAM,OAAO;AAEb,UAAM,qBAAqB,IAAI,EAAE;AACjC,UAAM,WAAW,IAAI,IAAI;AAEzB,UAAM,WAAW;AAAA,MAAS,MACxB,MAAM,gBAAgB,KAAK,OAAK,EAAE,YAAY,MAAM;AAAA,IACtD;AAEA,UAAM,SAAS,SAAS,MAAM;AAC5B,UAAI,SAAS,OAAO;AAClB,cAAM,SAAS,CAAC,GAAG,IAAI,IAAI,MAAM,gBAAgB,CAAC,EAAE,WAAW,IAAI,OAAK,EAAE,IAAI,CAAC,CAAC;AAChF,eAAO,OAAO,IAAI,CAAC,KAAK,OAAO;AAAA,UAC7B,OAAO;AAAA,UACP,OAAO,CAAC,GAAG,IAAI;AAAA,YACb,MAAM,gBAAgB,IAAI,OAAK,EAAE,WAAW,KAAK,OAAK,EAAE,SAAS,GAAG,GAAG,KAAK;AAAA,UACpF,CAAO,EACE,OAAO,OAAO,EACd,IAAI,SAAO;AACV,kBAAM,IAAI,MAAM,gBAAgB,KAAK,OAAK,EAAE,WAAW,KAAK,OAAK,EAAE,SAAS,OAAO,EAAE,UAAU,GAAG,CAAC;AACnG,mBAAO;AAAA,cACL,KAAK,MAAM;AAAA,cACX,OAAO;AAAA,cACP,KAAK,EAAE,aAAa,EAAE,SAAS,CAAC,IAAI;AAAA,cACpC,KAAK,CAAC,EAAE;AAAA,cACR,MAAM;AAAA,YAClB;AAAA,UACQ,CAAC;AAAA,QACT,EAAM;AAAA,MACJ;AACA,UAAI,MAAM,gBAAgB,SAAS,GAAG;AACpC,eAAO,CAAC;AAAA,UACN,OAAO;AAAA,UACP,OAAO,MAAM,gBAAgB,IAAI,QAAM;AAAA,YACrC,KAAK,EAAE;AAAA,YACP,SAAS;AAAA,YACT,KAAK,EAAE,aAAa,EAAE,SAAS,CAAC,IAAI;AAAA,YACpC,KAAK,CAAC,EAAE;AAAA,YACR,MAAM,EAAE,QAAQ,EAAE;AAAA,UAC1B,EAAQ;AAAA,QACR,CAAK;AAAA,MACH;AACA,aAAO,CAAA;AAAA,IACT,CAAC;AAED,UAAM,OAAO,OAAK;AAChB,UAAI,CAAC,EAAE,UAAW;AAClB,yBAAmB,QAAQ,OAAO,YAAY,EAAE,YAAY,IAAI,OAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,CAAA,CAAE;AAC7F,eAAS,QAAQ;AACjB,WAAK,oBAAoB,CAAC;AAC1B,QAAE,QAAQ,UAAU,KAAK,iBAAiB,EAAE,MAAM;AAAA,IACpD;AAEA,UAAM,WAAW,CAAC,KAAK,QAAQ;AAC7B,YAAM,OAAO,EAAE,GAAG,mBAAmB,OAAO,CAAC,GAAG,GAAG,IAAG;AACtD,UAAI,CAAC,MAAM,gBAAgB;AAAA,QAAK,OAC9B,OAAO,QAAQ,IAAI,EAAE;AAAA,UAAM,CAAC,CAAC,GAAG,CAAC,MAC/B,EAAE,WAAW,KAAK,OAAK,EAAE,SAAS,KAAK,EAAE,UAAU,CAAC;AAAA,QAC1D;AAAA,MACA,EAAK;AACH,yBAAmB,QAAQ;AAAA,IAC7B;AAEA,UAAM,oBAAoB,WAAS;AACjC,YAAM,IAAI,MAAM,gBAAgB;AAAA,QAAK,OACnC,OAAO,QAAQ,KAAK,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,KAAK,OAAK,EAAE,SAAS,KAAK,EAAE,UAAU,CAAC,CAAC;AAAA,MACjG;AACE,UAAI,KAAK,SAAS,OAAO,QAAQ,EAAE,KAAK;AACtC,aAAK,CAAC;AAAA,MACR,WAAW,CAAC,GAAG;AACb,iBAAS,QAAQ;AAAA,MACnB;AAAA,IACF,CAAC;AAED,cAAU,MAAM,MAAM,gBAAgB,WAAW,KAAK,KAAK,MAAM,gBAAgB,CAAC,CAAC,CAAC;AAEpF,UAAM,aAAa,CAAC,GAAG,MACrB,EAAE,UAAU,YACR,SAAS,OAAO,QAAQ,EAAE,SAAS,MACnC,mBAAmB,MAAM,EAAE,KAAK,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -3,7 +3,7 @@ import { useGlobalMixins } from "../../../core/views/mixins/mixins.js";
3
3
  const _hoisted_1 = { class: "price-tag radius-small" };
4
4
  const _hoisted_2 = {
5
5
  key: 0,
6
- class: "pd-r-small t-transp p-regular line-through price"
6
+ class: "pd-r-small opacity-50 p-regular line-through price"
7
7
  };
8
8
  const _sfc_main = {
9
9
  __name: "Price",
@@ -32,7 +32,7 @@ const _sfc_main = {
32
32
  "p-regular": !__props.size,
33
33
  "p-small": __props.size === "small",
34
34
  "p-medium": __props.size === "big"
35
- }, "p-small mn-l-micro t-transp"])
35
+ }, "p-small mn-l-micro opacity-50"])
36
36
  }, toDisplayString(__props.product?.listing === "rent" ? "per day" : "for " + variant.value.quantity + variant.value.unit), 3),
37
37
  variant.value.sale ? (openBlock(), createElementBlock("p", _hoisted_2, toDisplayString(unref(returnCurrency)() + variant.value.price / 100 * (100 + variant.value.sale)), 1)) : createCommentVNode("", true)
38
38
  ]);
@@ -1 +1 @@
1
- {"version":3,"file":"Price.vue.js","sources":["../../../../../../../src/modules/products/components/elements/Price.vue"],"sourcesContent":["<template>\n <div class=\"price-tag radius-small\">\n <span\n :class=\"{\n 'h4': !size,\n 'p-regular fw-semi': size === 'small',\n 'h3 fw-semi': size === 'big'\n }\"\n >\n {{ returnCurrency() + variant.price }}\n </span>\n\n <span\n :class=\"{\n 'p-regular': !size,\n 'p-small': size === 'small',\n 'p-medium': size === 'big'\n }\"\n class=\"p-small mn-l-micro t-transp\"\n >\n {{ product?.listing === 'rent' ? 'per day' : 'for ' + variant.quantity + variant.unit }}\n </span>\n\n <p\n v-if=\"variant.sale\"\n class=\"pd-r-small t-transp p-regular line-through price\"\n >\n {{ returnCurrency() + ((variant.price / 100) * (100 + variant.sale)) }}\n </p>\n </div>\n</template>\n\n<script setup>\nimport { computed } from 'vue';\nimport { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js';\n\nconst { returnCurrency } = useGlobalMixins();\n\nconst props = defineProps({\n product: Object,\n variants: Array,\n size: String\n});\n\nconst variant = computed(() => {\n return props.product?.variants?.[0] || props.variants?.[0] || props.product;\n});\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAoCA,UAAM,EAAE,eAAc,IAAK,gBAAe;AAE1C,UAAM,QAAQ;AAMd,UAAM,UAAU,SAAS,MAAM;AAC7B,aAAO,MAAM,SAAS,WAAW,CAAC,KAAK,MAAM,WAAW,CAAC,KAAK,MAAM;AAAA,IACtE,CAAC;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Price.vue.js","sources":["../../../../../../../src/modules/products/components/elements/Price.vue"],"sourcesContent":["<template>\n <div class=\"price-tag radius-small\">\n <span\n :class=\"{\n 'h4': !size,\n 'p-regular fw-semi': size === 'small',\n 'h3 fw-semi': size === 'big'\n }\"\n >\n {{ returnCurrency() + variant.price }}\n </span>\n\n <span\n :class=\"{\n 'p-regular': !size,\n 'p-small': size === 'small',\n 'p-medium': size === 'big'\n }\"\n class=\"p-small mn-l-micro opacity-50\"\n >\n {{ product?.listing === 'rent' ? 'per day' : 'for ' + variant.quantity + variant.unit }}\n </span>\n\n <p\n v-if=\"variant.sale\"\n class=\"pd-r-small opacity-50 p-regular line-through price\"\n >\n {{ returnCurrency() + ((variant.price / 100) * (100 + variant.sale)) }}\n </p>\n </div>\n</template>\n\n<script setup>\nimport { computed } from 'vue';\nimport { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js';\n\nconst { returnCurrency } = useGlobalMixins();\n\nconst props = defineProps({\n product: Object,\n variants: Array,\n size: String\n});\n\nconst variant = computed(() => {\n return props.product?.variants?.[0] || props.variants?.[0] || props.product;\n});\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAoCA,UAAM,EAAE,eAAc,IAAK,gBAAe;AAE1C,UAAM,QAAQ;AAMd,UAAM,UAAU,SAAS,MAAM;AAC7B,aAAO,MAAM,SAAS,WAAW,CAAC,KAAK,MAAM,WAAW,CAAC,KAAK,MAAM;AAAA,IACtE,CAAC;;;;;;;;;;;;;;;;;;;;;;"}