@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
@@ -1 +1 @@
1
- {"version":3,"file":"governance.router.js","sources":["../../../../../../../src/modules/governance/views/router/governance.router.js"],"sourcesContent":["import { defineAsyncComponent } from 'vue';\nimport * as validationAuth from '@martyrs/src/modules/auth/views/middlewares/auth.validation.js';\nimport { navigationItems } from '../../configs/navigation.initiative.config.js';\n\nfunction resolveComponent(loader, override) {\n if (override) return override;\n return defineAsyncComponent(loader);\n}\n\nfunction buildGovernanceRoutes(options = {}) {\n const initiativesComponent = resolveComponent(\n () => import(/* webpackChunkName: 'Governance' */ '../components/pages/Initiatives.vue'),\n options.page_initiatives\n );\n const initiativeComponent = resolveComponent(\n () => import(/* webpackChunkName: 'Governance' */ '../components/pages/Initiative.vue'),\n options.page_initiative\n );\n const initiativeCreateComponent = resolveComponent(\n () => import(/* webpackChunkName: 'Governance' */ '../components/pages/InitiativeCreate.vue'),\n options.page_initiative_create\n );\n const initiativeSprintsComponent = resolveComponent(\n () => import(/* webpackChunkName: 'Governance' */ '../components/pages/InitiativeSprints.vue'),\n options.page_initiative_sprints\n );\n const sprintComponent = resolveComponent(\n () => import(/* webpackChunkName: 'Governance' */ '../components/pages/Sprint.vue'),\n options.page_sprint\n );\n const sprintCreateComponent = resolveComponent(\n () => import(/* webpackChunkName: 'Governance' */ '../components/pages/SprintCreate.vue'),\n options.page_sprint_create\n );\n const tasksComponent = resolveComponent(\n () => import(/* webpackChunkName: 'Governance' */ '../components/pages/Tasks.vue'),\n options.page_tasks\n );\n const taskComponent = resolveComponent(\n () => import(/* webpackChunkName: 'Governance' */ '../components/pages/Task.vue'),\n options.page_task\n );\n const taskCreateComponent = resolveComponent(\n () => import(/* webpackChunkName: 'Governance' */ '../components/pages/TaskCreate.vue'),\n options.page_task_create\n );\n const votingsComponent = resolveComponent(\n () => import(/* webpackChunkName: 'Governance' */ '../components/pages/Votings.vue'),\n options.page_votings\n );\n const votingComponent = resolveComponent(\n () => import(/* webpackChunkName: 'Governance' */ '../components/pages/Voting.vue'),\n options.page_voting\n );\n const votingCreateComponent = resolveComponent(\n () => import(/* webpackChunkName: 'Governance' */ '../components/pages/VotingCreate.vue'),\n options.page_voting_create\n );\n\n return [\n {\n path: '',\n name: 'Governance',\n meta: {\n title: {\n en: 'Governance',\n ru: 'Управление',\n },\n title_hide: false,\n },\n component: resolveComponent(\n () => import(/* webpackChunkName: 'Governance' */ '../components/pages/Governance.vue'),\n options.page_governance\n ),\n },\n {\n path: 'initiatives',\n name: 'Initiatives',\n meta: {\n title: {\n en: 'Initiatives',\n ru: 'Инициативы',\n },\n title_hide: false,\n },\n component: initiativesComponent,\n },\n {\n path: 'initiatives/create',\n name: 'Create Initiative',\n meta: {\n title: {\n en: 'Create Initiative',\n ru: 'Создать Инициативу',\n },\n title_hide: false,\n },\n beforeEnter: [validationAuth.requiresAuth],\n component: initiativeCreateComponent,\n },\n {\n path: 'tasks',\n name: 'Tasks',\n meta: {\n title: {\n en: 'Tasks',\n ru: 'Задачи',\n },\n title_hide: false,\n },\n component: tasksComponent,\n },\n {\n path: 'tasks/create',\n name: 'Create Task',\n meta: {\n title: {\n en: 'Create Task',\n ru: 'Создать Задачу',\n },\n title_hide: false,\n },\n beforeEnter: [validationAuth.requiresAuth],\n component: taskCreateComponent,\n },\n {\n path: 'tasks/:taskId',\n name: 'Task',\n meta: {\n title: {\n en: 'Task',\n ru: 'Задача',\n },\n title_hide: false,\n },\n component: taskComponent,\n },\n {\n path: 'tasks/:taskId/edit',\n name: 'Edit Task',\n meta: {\n title: {\n en: 'Edit Task',\n ru: 'Редактировать Задачу',\n },\n title_hide: false,\n },\n beforeEnter: [validationAuth.requiresAuth],\n component: resolveComponent(\n () => import(/* webpackChunkName: 'Governance' */ '../components/pages/TaskCreate.vue'),\n options.page_task_edit\n ),\n },\n {\n path: 'votings',\n name: 'Votings',\n meta: {\n title: {\n en: 'Votings',\n ru: 'Голосования',\n },\n title_hide: false,\n },\n component: votingsComponent,\n },\n {\n path: 'votings/create',\n name: 'Create Voting',\n meta: {\n title: {\n en: 'Create Voting',\n ru: 'Создать Голосование',\n },\n title_hide: false,\n },\n beforeEnter: [validationAuth.requiresAuth],\n component: votingCreateComponent,\n },\n {\n path: 'votings/:votingId',\n name: 'Voting',\n meta: {\n title: {\n en: 'Voting',\n ru: 'Голосование',\n },\n title_hide: false,\n },\n component: votingComponent,\n },\n {\n path: 'votings/:votingId/edit',\n name: 'Edit Voting',\n meta: {\n title: {\n en: 'Edit Voting',\n ru: 'Редактировать Голосование',\n },\n title_hide: false,\n },\n beforeEnter: [validationAuth.requiresAuth],\n component: resolveComponent(\n () => import(/* webpackChunkName: 'Governance' */ '../components/pages/VotingCreate.vue'),\n options.page_voting_edit\n ),\n },\n {\n path: 'initiatives/:id',\n meta: {\n title: {\n en: 'Initiative',\n ru: 'Инициатива',\n },\n title_hide: true,\n sidebar_navigation_items: navigationItems,\n },\n children: [\n {\n path: '',\n name: 'Initiative',\n meta: {\n title: {\n en: 'Initiative',\n ru: 'Инициатива',\n },\n title_hide: false,\n },\n component: initiativeComponent,\n },\n {\n path: 'edit',\n name: 'Edit Initiative',\n meta: {\n title: {\n en: 'Edit Initiative',\n ru: 'Редактировать Инициативу',\n },\n title_hide: false,\n },\n beforeEnter: [validationAuth.requiresAuth],\n component: resolveComponent(\n () => import(/* webpackChunkName: 'Governance' */ '../components/pages/InitiativeCreate.vue'),\n options.page_initiative_edit\n ),\n },\n {\n path: 'sprints',\n name: 'InitiativeSprints',\n meta: {\n title: {\n en: 'Sprints',\n ru: 'Спринты',\n },\n title_hide: false,\n },\n component: initiativeSprintsComponent,\n },\n {\n path: 'sprints/create',\n name: 'Create Sprint',\n meta: {\n title: {\n en: 'Create Sprint',\n ru: 'Создать Спринт',\n },\n title_hide: false,\n },\n beforeEnter: [validationAuth.requiresAuth],\n component: sprintCreateComponent,\n },\n {\n path: 'sprints/:sprintId',\n name: 'Sprint',\n meta: {\n title: {\n en: 'Sprint',\n ru: 'Спринт',\n },\n title_hide: false,\n },\n component: sprintComponent,\n },\n {\n path: 'tasks',\n name: 'Initiative Tasks',\n meta: {\n title: {\n en: 'Tasks',\n ru: 'Задачи',\n },\n title_hide: false,\n },\n component: tasksComponent,\n children: [\n {\n path: 'create',\n name: 'Initiative Create Task',\n meta: {\n title: {\n en: 'Create Task',\n ru: 'Создать Задачу',\n },\n title_hide: false,\n },\n beforeEnter: [validationAuth.requiresAuth],\n component: taskCreateComponent,\n },\n {\n path: ':taskId',\n name: 'Initiative Task',\n meta: {\n title: {\n en: 'Task',\n ru: 'Задача',\n },\n title_hide: false,\n },\n component: taskComponent,\n },\n {\n path: ':taskId/edit',\n name: 'Initiative Edit Task',\n meta: {\n title: {\n en: 'Edit Task',\n ru: 'Редактировать Задачу',\n },\n title_hide: false,\n },\n beforeEnter: [validationAuth.requiresAuth],\n component: resolveComponent(\n () => import(/* webpackChunkName: 'Governance' */ '../components/pages/TaskCreate.vue'),\n options.page_task_edit\n ),\n },\n ],\n },\n {\n path: 'votings',\n name: 'Initiative Votings',\n meta: {\n title: {\n en: 'Votings',\n ru: 'Голосования',\n },\n title_hide: false,\n },\n component: votingsComponent,\n children: [\n {\n path: 'create',\n name: 'Initiative Create Voting',\n meta: {\n title: {\n en: 'Create Voting',\n ru: 'Создать Голосование',\n },\n title_hide: false,\n },\n beforeEnter: [validationAuth.requiresAuth],\n component: votingCreateComponent,\n },\n {\n path: ':votingId',\n name: 'Initiative Voting',\n meta: {\n title: {\n en: 'Voting',\n ru: 'Голосование',\n },\n title_hide: false,\n },\n component: votingComponent,\n },\n {\n path: ':votingId/edit',\n name: 'Initiative Edit Voting',\n meta: {\n title: {\n en: 'Edit Voting',\n ru: 'Редактировать Голосование',\n },\n title_hide: false,\n },\n beforeEnter: [validationAuth.requiresAuth],\n component: resolveComponent(\n () => import(/* webpackChunkName: 'Governance' */ '../components/pages/VotingCreate.vue'),\n options.page_voting_edit\n ),\n },\n ],\n },\n ],\n },\n ];\n}\n\nexport function getRoutes(options = {}) {\n const routes = [];\n const routeHome = options.route || options.routeHome || 'Home';\n const baseMeta = {\n title: {\n en: 'Governance',\n ru: 'Управление',\n },\n title_hide: true,\n };\n\n routes.push({\n parentName: routeHome,\n config: {\n basePath: options.basePath || options.publicBasePath || 'governance',\n meta: baseMeta,\n routeNamePrefix: options.routeNamePrefix || options.publicRouteNamePrefix || '',\n routes: buildGovernanceRoutes(options),\n },\n });\n\n const routeBackoffice = options.routeBackoffice;\n if (routeBackoffice && !options.withBackoffice) {\n routes.push({\n parentName: routeBackoffice,\n config: {\n basePath: options.backofficeBasePath || 'governance',\n routeNamePrefix: options.backofficeRouteNamePrefix || 'Backoffice ',\n meta: {\n ...baseMeta,\n context: 'backoffice',\n },\n routes: buildGovernanceRoutes(options),\n },\n });\n }\n\n const routeOrganizations = options.routeOrganizations;\n if (routeOrganizations && !options.withOrganizationRoutes) {\n routes.push({\n parentName: routeOrganizations,\n config: {\n basePath: options.organizationBasePath || 'governance',\n routeNamePrefix: options.organizationRouteNamePrefix || 'Organization_',\n meta: {\n ...baseMeta,\n context: 'organization',\n },\n routes: buildGovernanceRoutes(options),\n },\n });\n }\n\n return routes;\n}\n\nexport default { getRoutes };\n"],"names":["validationAuth.requiresAuth"],"mappings":"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"}
1
+ {"version":3,"file":"governance.router.js","sources":["../../../../../../../src/modules/governance/views/router/governance.router.js"],"sourcesContent":["import { defineAsyncComponent } from 'vue';\nimport * as validationAuth from '@martyrs/src/modules/auth/views/middlewares/auth.validation.js';\nimport { navigationItems } from '../../configs/navigation.initiative.config.js';\n\nfunction resolveComponent(loader, override) {\n if (override) return override;\n return defineAsyncComponent(loader);\n}\n\nfunction buildGovernanceRoutes(options = {}) {\n const initiativesComponent = resolveComponent(\n () => import(/* webpackChunkName: 'Governance' */ '../components/pages/Initiatives.vue'),\n options.page_initiatives\n );\n const initiativeComponent = resolveComponent(\n () => import(/* webpackChunkName: 'Governance' */ '../components/pages/Initiative.vue'),\n options.page_initiative\n );\n const initiativeCreateComponent = resolveComponent(\n () => import(/* webpackChunkName: 'Governance' */ '../components/pages/InitiativeCreate.vue'),\n options.page_initiative_create\n );\n const initiativeSprintsComponent = resolveComponent(\n () => import(/* webpackChunkName: 'Governance' */ '../components/pages/InitiativeSprints.vue'),\n options.page_initiative_sprints\n );\n const sprintComponent = resolveComponent(\n () => import(/* webpackChunkName: 'Governance' */ '../components/pages/Sprint.vue'),\n options.page_sprint\n );\n const sprintCreateComponent = resolveComponent(\n () => import(/* webpackChunkName: 'Governance' */ '../components/pages/SprintCreate.vue'),\n options.page_sprint_create\n );\n const tasksComponent = resolveComponent(\n () => import(/* webpackChunkName: 'Governance' */ '../components/pages/Tasks.vue'),\n options.page_tasks\n );\n const taskComponent = resolveComponent(\n () => import(/* webpackChunkName: 'Governance' */ '../components/pages/Task.vue'),\n options.page_task\n );\n const taskCreateComponent = resolveComponent(\n () => import(/* webpackChunkName: 'Governance' */ '../components/pages/TaskCreate.vue'),\n options.page_task_create\n );\n const votingsComponent = resolveComponent(\n () => import(/* webpackChunkName: 'Governance' */ '../components/pages/Votings.vue'),\n options.page_votings\n );\n const votingComponent = resolveComponent(\n () => import(/* webpackChunkName: 'Governance' */ '../components/pages/Voting.vue'),\n options.page_voting\n );\n const votingCreateComponent = resolveComponent(\n () => import(/* webpackChunkName: 'Governance' */ '../components/pages/VotingCreate.vue'),\n options.page_voting_create\n );\n\n return [\n {\n path: '',\n name: 'Governance',\n meta: {\n title: {\n en: 'Governance',\n ru: 'Управление',\n },\n title_hide: false,\n },\n component: resolveComponent(\n () => import(/* webpackChunkName: 'Governance' */ '../components/pages/Governance.vue'),\n options.page_governance\n ),\n },\n {\n path: 'initiatives',\n name: 'Initiatives',\n meta: {\n title: {\n en: 'Initiatives',\n ru: 'Инициативы',\n },\n title_hide: false,\n },\n component: initiativesComponent,\n },\n {\n path: 'initiatives/create',\n name: 'Create Initiative',\n meta: {\n title: {\n en: 'Create Initiative',\n ru: 'Создать Инициативу',\n },\n title_hide: false,\n },\n beforeEnter: [validationAuth.requiresAuth],\n component: initiativeCreateComponent,\n },\n {\n path: 'tasks',\n name: 'Tasks',\n meta: {\n title: {\n en: 'Tasks',\n ru: 'Задачи',\n },\n title_hide: false,\n },\n component: tasksComponent,\n },\n {\n path: 'tasks/create',\n name: 'Create Task',\n meta: {\n title: {\n en: 'Create Task',\n ru: 'Создать Задачу',\n },\n title_hide: false,\n },\n beforeEnter: [validationAuth.requiresAuth],\n component: taskCreateComponent,\n },\n {\n path: 'tasks/:taskId',\n name: 'Task',\n meta: {\n title: {\n en: 'Task',\n ru: 'Задача',\n },\n title_hide: false,\n },\n component: taskComponent,\n },\n {\n path: 'tasks/:taskId/edit',\n name: 'Edit Task',\n meta: {\n title: {\n en: 'Edit Task',\n ru: 'Редактировать Задачу',\n },\n title_hide: false,\n },\n beforeEnter: [validationAuth.requiresAuth],\n component: resolveComponent(\n () => import(/* webpackChunkName: 'Governance' */ '../components/pages/TaskCreate.vue'),\n options.page_task_edit\n ),\n },\n {\n path: 'votings',\n name: 'Votings',\n meta: {\n title: {\n en: 'Votings',\n ru: 'Голосования',\n },\n title_hide: false,\n },\n component: votingsComponent,\n },\n {\n path: 'votings/create',\n name: 'Create Voting',\n meta: {\n title: {\n en: 'Create Voting',\n ru: 'Создать Голосование',\n },\n title_hide: false,\n },\n beforeEnter: [validationAuth.requiresAuth],\n component: votingCreateComponent,\n },\n {\n path: 'votings/:votingId',\n name: 'Voting',\n meta: {\n title: {\n en: 'Voting',\n ru: 'Голосование',\n },\n title_hide: false,\n },\n component: votingComponent,\n },\n {\n path: 'votings/:votingId/edit',\n name: 'Edit Voting',\n meta: {\n title: {\n en: 'Edit Voting',\n ru: 'Редактировать Голосование',\n },\n title_hide: false,\n },\n beforeEnter: [validationAuth.requiresAuth],\n component: resolveComponent(\n () => import(/* webpackChunkName: 'Governance' */ '../components/pages/VotingCreate.vue'),\n options.page_voting_edit\n ),\n },\n {\n path: 'initiatives/:id',\n meta: {\n title: {\n en: 'Initiative',\n ru: 'Инициатива',\n },\n title_hide: true,\n sidebar_navigation_items: navigationItems,\n },\n children: [\n {\n path: '',\n name: 'Initiative',\n meta: {\n title: {\n en: 'Initiative',\n ru: 'Инициатива',\n },\n title_hide: false,\n },\n component: initiativeComponent,\n },\n {\n path: 'edit',\n name: 'Edit Initiative',\n meta: {\n title: {\n en: 'Edit Initiative',\n ru: 'Редактировать Инициативу',\n },\n title_hide: false,\n },\n beforeEnter: [validationAuth.requiresAuth],\n component: resolveComponent(\n () => import(/* webpackChunkName: 'Governance' */ '../components/pages/InitiativeCreate.vue'),\n options.page_initiative_edit\n ),\n },\n {\n path: 'sprints',\n name: 'InitiativeSprints',\n meta: {\n title: {\n en: 'Sprints',\n ru: 'Спринты',\n },\n title_hide: false,\n },\n component: initiativeSprintsComponent,\n },\n {\n path: 'sprints/create',\n name: 'Create Sprint',\n meta: {\n title: {\n en: 'Create Sprint',\n ru: 'Создать Спринт',\n },\n title_hide: false,\n },\n beforeEnter: [validationAuth.requiresAuth],\n component: sprintCreateComponent,\n },\n {\n path: 'sprints/:sprintId',\n name: 'Sprint',\n meta: {\n title: {\n en: 'Sprint',\n ru: 'Спринт',\n },\n title_hide: false,\n },\n component: sprintComponent,\n },\n {\n path: 'tasks',\n name: 'Initiative Tasks',\n meta: {\n title: {\n en: 'Tasks',\n ru: 'Задачи',\n },\n title_hide: false,\n },\n component: tasksComponent,\n children: [\n {\n path: 'create',\n name: 'Initiative Create Task',\n meta: {\n title: {\n en: 'Create Task',\n ru: 'Создать Задачу',\n },\n title_hide: false,\n },\n beforeEnter: [validationAuth.requiresAuth],\n component: taskCreateComponent,\n },\n {\n path: ':taskId',\n name: 'Initiative Task',\n meta: {\n title: {\n en: 'Task',\n ru: 'Задача',\n },\n title_hide: false,\n },\n component: taskComponent,\n },\n {\n path: ':taskId/edit',\n name: 'Initiative Edit Task',\n meta: {\n title: {\n en: 'Edit Task',\n ru: 'Редактировать Задачу',\n },\n title_hide: false,\n },\n beforeEnter: [validationAuth.requiresAuth],\n component: resolveComponent(\n () => import(/* webpackChunkName: 'Governance' */ '../components/pages/TaskCreate.vue'),\n options.page_task_edit\n ),\n },\n ],\n },\n {\n path: 'votings',\n name: 'Initiative Votings',\n meta: {\n title: {\n en: 'Votings',\n ru: 'Голосования',\n },\n title_hide: false,\n },\n component: votingsComponent,\n children: [\n {\n path: 'create',\n name: 'Initiative Create Voting',\n meta: {\n title: {\n en: 'Create Voting',\n ru: 'Создать Голосование',\n },\n title_hide: false,\n },\n beforeEnter: [validationAuth.requiresAuth],\n component: votingCreateComponent,\n },\n {\n path: ':votingId',\n name: 'Initiative Voting',\n meta: {\n title: {\n en: 'Voting',\n ru: 'Голосование',\n },\n title_hide: false,\n },\n component: votingComponent,\n },\n {\n path: ':votingId/edit',\n name: 'Initiative Edit Voting',\n meta: {\n title: {\n en: 'Edit Voting',\n ru: 'Редактировать Голосование',\n },\n title_hide: false,\n },\n beforeEnter: [validationAuth.requiresAuth],\n component: resolveComponent(\n () => import(/* webpackChunkName: 'Governance' */ '../components/pages/VotingCreate.vue'),\n options.page_voting_edit\n ),\n },\n ],\n },\n ],\n },\n ];\n}\n\nexport function getRoutes(options = {}) {\n const routes = [];\n const routeHome = options.route || options.routeHome || 'Home';\n const baseMeta = {\n title: {\n en: 'Governance',\n ru: 'Управление',\n },\n title_hide: true,\n };\n\n if (!options.contexts || options.contexts.includes('client')) routes.push({\n parentName: routeHome,\n config: {\n basePath: options.basePath || options.publicBasePath || 'governance',\n meta: baseMeta,\n routeNamePrefix: options.routeNamePrefix || options.publicRouteNamePrefix || '',\n routes: buildGovernanceRoutes(options),\n },\n });\n\n const routeBackoffice = options.routeBackoffice;\n if (routeBackoffice && (!options.contexts || options.contexts.includes('backoffice'))) {\n routes.push({\n parentName: routeBackoffice,\n config: {\n basePath: options.backofficeBasePath || 'governance',\n routeNamePrefix: options.backofficeRouteNamePrefix || 'Backoffice ',\n meta: {\n ...baseMeta,\n context: 'backoffice',\n },\n routes: buildGovernanceRoutes(options),\n },\n });\n }\n\n const routeOrganizations = options.routeOrganizations;\n if (routeOrganizations && (!options.contexts || options.contexts.includes('organization'))) {\n routes.push({\n parentName: routeOrganizations,\n config: {\n basePath: options.organizationBasePath || 'governance',\n routeNamePrefix: options.organizationRouteNamePrefix || 'Organization_',\n meta: {\n ...baseMeta,\n context: 'organization',\n },\n routes: buildGovernanceRoutes(options),\n },\n });\n }\n\n return routes;\n}\n\nexport default { getRoutes };\n"],"names":["validationAuth.requiresAuth"],"mappings":"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"}
@@ -157,7 +157,7 @@ const _sfc_main = {
157
157
  title: __props.mode === "add" ? "Add New Icon" : "Replace Icon",
158
158
  isPopupOpen: __props.isOpen,
159
159
  onClosePopup: closePopup,
160
- class: "bg-white pd-big radius-big w-max-60r"
160
+ class: "bg-white pd-big radius-big w-clamp-0-60r-100"
161
161
  }, {
162
162
  default: withCtx(() => [
163
163
  createElementVNode("div", _hoisted_1, [
@@ -233,7 +233,7 @@ const _sfc_main = {
233
233
  };
234
234
  }
235
235
  };
236
- const IconSearchPopup = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-3479d8be"]]);
236
+ const IconSearchPopup = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-57674e15"]]);
237
237
  export {
238
238
  IconSearchPopup as default
239
239
  };
@@ -1 +1 @@
1
- {"version":3,"file":"IconSearchPopup.vue.js","sources":["../../../../../../src/modules/icons/components/IconSearchPopup.vue"],"sourcesContent":["<template>\n <Popup :title=\"mode === 'add' ? 'Add New Icon' : 'Replace Icon'\" :isPopupOpen=\"isOpen\" @close-popup=\"closePopup\" class=\"bg-white pd-big radius-big w-max-60r\">\n <div class=\"icon-search-popup\">\n <div v-if=\"mode === 'add'\" class=\"mn-b-medium cols-2 gap-small\">\n <input \n v-model=\"iconName\" \n type=\"text\" \n placeholder=\"Icon name (e.g., IconCart)\"\n class=\"pd-small radius-medium border-light\"\n />\n <select v-model=\"category\" class=\"pd-small radius-medium border-light\">\n <option value=\"\">Select category</option>\n <option value=\"navigation\">Navigation</option>\n <option value=\"entities\">Entities</option>\n <option value=\"actions\">Actions</option>\n <option value=\"socials\">Socials</option>\n </select>\n </div>\n\n <Feed\n :search=\"true\"\n :showLoadMore=\"true\"\n :skeleton=\"{\n hide: false,\n horizontal: false,\n structure: [\n { block: 'image', size: 'medium' },\n { block: 'text', size: 'small' }\n ]\n }\"\n :states=\"{\n empty: {\n title: 'No icons found',\n description: 'Try searching for different terms'\n }\n }\"\n :store=\"{\n read: (options) => store.read(options)\n }\"\n :options=\"{ limit: 50 }\"\n v-slot=\"{ items }\"\n class=\"cols-4 mobile:cols-2 gap-small icon-grid\"\n >\n <div \n v-for=\"icon in items\" \n :key=\"icon.id\"\n @click=\"selectIcon(icon)\"\n class=\"icon-item aspect-1x1 radius-medium flex-center flex-v-center flex-column cursor-pointer hover:scale-[1.05] pd-small\"\n >\n <div class=\"icon-preview w-3r h-3r mn-b-thin flex-center flex-v-center\">\n <div \n class=\"icon-svg w-100 h-100\"\n v-html=\"getIconSvg(icon)\"\n ></div>\n </div>\n <div class=\"t-small truncate w-100 t-center\">{{ icon.term }}</div>\n </div>\n </Feed>\n\n <div v-if=\"error\" class=\"mn-t-medium pd-small bg-danger radius-medium t-white\">\n {{ error }}\n </div>\n </div>\n </Popup>\n</template>\n\n<script setup>\nimport { ref, watch, computed } from 'vue';\nimport Popup from '@martyrs/src/components/Popup/Popup.vue';\nimport Feed from '@martyrs/src/components/Feed/Feed.vue';\n\nconst props = defineProps({\n isOpen: {\n type: Boolean,\n default: false\n },\n mode: {\n type: String,\n default: 'add', // 'add' or 'replace'\n validator: (value) => ['add', 'replace'].includes(value)\n },\n currentIcon: {\n type: Object,\n default: null\n }\n});\n\nconst emit = defineEmits(['close', 'icon-selected']);\n\nconst error = ref('');\nconst iconName = ref('');\nconst category = ref('');\nconst loading = ref(false);\nconst searchValue = ref('');\n\n// Store configuration for Feed component with pagination support\nconst paginationState = ref({ next_page: null, currentSearch: null });\n\nconst store = {\n async read(params = {}) {\n try {\n if (!params.search) {\n return [];\n }\n\n // Сбросить пагинацию при новом поиске\n if (paginationState.value.currentSearch !== params.search) {\n paginationState.value = { next_page: null, currentSearch: params.search };\n }\n\n const requestBody = {\n search: params.search,\n limit: params.limit || 50\n };\n\n // Feed использует skip-based пагинацию, конвертируем в token-based\n // Если skip > 0, используем сохранённый next_page токен\n if (params.skip && params.skip > 0 && paginationState.value.next_page) {\n requestBody.next_page = paginationState.value.next_page;\n }\n\n const response = await fetch('/api/icons/search', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(requestBody)\n });\n\n const data = await response.json();\n\n if (!response.ok) {\n throw new Error(data.error || 'Failed to search icons');\n }\n\n // Сохранить next_page для следующего запроса Load More\n if (data.pagination && data.pagination.next_page) {\n paginationState.value.next_page = data.pagination.next_page;\n } else {\n // Если нет next_page, значит больше страниц нет\n paginationState.value.next_page = null;\n }\n\n // Feed ожидает массив, не объект\n return data.icons || [];\n } catch (err) {\n console.error('Search error:', err);\n error.value = err.message;\n return [];\n }\n }\n};\n\n// Auto-populate fields for replace mode\nwatch(() => props.isOpen, (newVal) => {\n if (newVal && props.mode === 'replace' && props.currentIcon) {\n iconName.value = props.currentIcon.name;\n category.value = props.currentIcon.category;\n // Set initial search term (remove Icon prefix)\n searchValue.value = props.currentIcon.name.replace(/^Icon/, '');\n }\n});\n\n// Function to get icon preview - use PNG with black filter for now\nfunction getIconSvg(icon) {\n // Use the PNG preview from Noun Project but apply CSS filter to make it black\n if (icon.preview_url) {\n return `<img src=\"${icon.preview_url}\" alt=\"${icon.term}\" style=\"width: 100%; height: 100%; object-fit: contain; filter: brightness(0) saturate(100%);\" />`;\n }\n \n // Fallback SVG placeholder\n return `\n <svg width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect width=\"24\" height=\"24\" rx=\"4\" fill=\"rgb(var(--black))\" opacity=\"0.8\"/>\n <text x=\"12\" y=\"16\" text-anchor=\"middle\" fill=\"white\" font-size=\"8\" font-family=\"monospace\">\n ${icon.term.slice(0, 3)}\n </text>\n </svg>\n `;\n}\n\nasync function selectIcon(icon) {\n if (props.mode === 'add' && (!iconName.value || !category.value)) {\n error.value = 'Please enter icon name and select category';\n return;\n }\n\n loading.value = true;\n error.value = '';\n\n try {\n const response = await fetch('/api/icons/save', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n iconId: icon.id,\n category: category.value,\n iconName: iconName.value,\n mode: props.mode,\n currentIconName: props.currentIcon?.name\n })\n });\n\n const data = await response.json();\n \n if (!response.ok) {\n throw new Error(data.error || 'Failed to save icon');\n }\n\n emit('icon-selected', {\n ...data,\n icon: {\n name: iconName.value,\n category: category.value,\n term: icon.term\n }\n });\n \n closePopup();\n } catch (err) {\n console.error('Save error:', err);\n error.value = err.message;\n } finally {\n loading.value = false;\n }\n}\n\nfunction closePopup() {\n error.value = '';\n iconName.value = '';\n category.value = '';\n searchValue.value = '';\n emit('close');\n}\n</script>\n\n<style scoped>\n.icon-search-popup {\n min-height: 500px;\n}\n\n.icon-grid {\n min-height: 400px;\n}\n\n.icon-item {\n transition: all 0.2s ease;\n}\n\n.icon-item:hover {\n background-color: rgb(var(--light-hover));\n transform: scale(1.05);\n}\n\n.icon-preview {\n background: rgb(var(--light));\n border-radius: 8px;\n}\n\n.icon-svg {\n filter: none;\n}\n\n.w-max-800 {\n max-width: 800px;\n width: 90vw;\n}\n\n::v-deep(.feed-enter-active),\n::v-deep(.feed-leave-active) {\n transition: all 0.3s ease;\n}\n\n::v-deep(.feed-enter-from),\n::v-deep(.feed-leave-to) {\n opacity: 0;\n transform: scale(0.9);\n}\n</style>"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IconSearchPopup.vue.js","sources":["../../../../../../src/modules/icons/components/IconSearchPopup.vue"],"sourcesContent":["<template>\n <Popup :title=\"mode === 'add' ? 'Add New Icon' : 'Replace Icon'\" :isPopupOpen=\"isOpen\" @close-popup=\"closePopup\" class=\"bg-white pd-big radius-big w-clamp-0-60r-100\">\n <div class=\"icon-search-popup\">\n <div v-if=\"mode === 'add'\" class=\"mn-b-medium cols-2 gap-small\">\n <input \n v-model=\"iconName\" \n type=\"text\" \n placeholder=\"Icon name (e.g., IconCart)\"\n class=\"pd-small radius-medium border-light\"\n />\n <select v-model=\"category\" class=\"pd-small radius-medium border-light\">\n <option value=\"\">Select category</option>\n <option value=\"navigation\">Navigation</option>\n <option value=\"entities\">Entities</option>\n <option value=\"actions\">Actions</option>\n <option value=\"socials\">Socials</option>\n </select>\n </div>\n\n <Feed\n :search=\"true\"\n :showLoadMore=\"true\"\n :skeleton=\"{\n hide: false,\n horizontal: false,\n structure: [\n { block: 'image', size: 'medium' },\n { block: 'text', size: 'small' }\n ]\n }\"\n :states=\"{\n empty: {\n title: 'No icons found',\n description: 'Try searching for different terms'\n }\n }\"\n :store=\"{\n read: (options) => store.read(options)\n }\"\n :options=\"{ limit: 50 }\"\n v-slot=\"{ items }\"\n class=\"cols-4 mobile:cols-2 gap-small icon-grid\"\n >\n <div \n v-for=\"icon in items\" \n :key=\"icon.id\"\n @click=\"selectIcon(icon)\"\n class=\"icon-item aspect-1x1 radius-medium flex-center flex-v-center flex-column cursor-pointer hover:scale-[1.05] pd-small\"\n >\n <div class=\"icon-preview w-3r h-3r mn-b-thin flex-center flex-v-center\">\n <div \n class=\"icon-svg w-100 h-100\"\n v-html=\"getIconSvg(icon)\"\n ></div>\n </div>\n <div class=\"t-small truncate w-100 t-center\">{{ icon.term }}</div>\n </div>\n </Feed>\n\n <div v-if=\"error\" class=\"mn-t-medium pd-small bg-danger radius-medium t-white\">\n {{ error }}\n </div>\n </div>\n </Popup>\n</template>\n\n<script setup>\nimport { ref, watch, computed } from 'vue';\nimport Popup from '@martyrs/src/components/Popup/Popup.vue';\nimport Feed from '@martyrs/src/components/Feed/Feed.vue';\n\nconst props = defineProps({\n isOpen: {\n type: Boolean,\n default: false\n },\n mode: {\n type: String,\n default: 'add', // 'add' or 'replace'\n validator: (value) => ['add', 'replace'].includes(value)\n },\n currentIcon: {\n type: Object,\n default: null\n }\n});\n\nconst emit = defineEmits(['close', 'icon-selected']);\n\nconst error = ref('');\nconst iconName = ref('');\nconst category = ref('');\nconst loading = ref(false);\nconst searchValue = ref('');\n\n// Store configuration for Feed component with pagination support\nconst paginationState = ref({ next_page: null, currentSearch: null });\n\nconst store = {\n async read(params = {}) {\n try {\n if (!params.search) {\n return [];\n }\n\n // Сбросить пагинацию при новом поиске\n if (paginationState.value.currentSearch !== params.search) {\n paginationState.value = { next_page: null, currentSearch: params.search };\n }\n\n const requestBody = {\n search: params.search,\n limit: params.limit || 50\n };\n\n // Feed использует skip-based пагинацию, конвертируем в token-based\n // Если skip > 0, используем сохранённый next_page токен\n if (params.skip && params.skip > 0 && paginationState.value.next_page) {\n requestBody.next_page = paginationState.value.next_page;\n }\n\n const response = await fetch('/api/icons/search', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(requestBody)\n });\n\n const data = await response.json();\n\n if (!response.ok) {\n throw new Error(data.error || 'Failed to search icons');\n }\n\n // Сохранить next_page для следующего запроса Load More\n if (data.pagination && data.pagination.next_page) {\n paginationState.value.next_page = data.pagination.next_page;\n } else {\n // Если нет next_page, значит больше страниц нет\n paginationState.value.next_page = null;\n }\n\n // Feed ожидает массив, не объект\n return data.icons || [];\n } catch (err) {\n console.error('Search error:', err);\n error.value = err.message;\n return [];\n }\n }\n};\n\n// Auto-populate fields for replace mode\nwatch(() => props.isOpen, (newVal) => {\n if (newVal && props.mode === 'replace' && props.currentIcon) {\n iconName.value = props.currentIcon.name;\n category.value = props.currentIcon.category;\n // Set initial search term (remove Icon prefix)\n searchValue.value = props.currentIcon.name.replace(/^Icon/, '');\n }\n});\n\n// Function to get icon preview - use PNG with black filter for now\nfunction getIconSvg(icon) {\n // Use the PNG preview from Noun Project but apply CSS filter to make it black\n if (icon.preview_url) {\n return `<img src=\"${icon.preview_url}\" alt=\"${icon.term}\" style=\"width: 100%; height: 100%; object-fit: contain; filter: brightness(0) saturate(100%);\" />`;\n }\n \n // Fallback SVG placeholder\n return `\n <svg width=\"100%\" height=\"100%\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect width=\"24\" height=\"24\" rx=\"4\" fill=\"rgb(var(--black))\" opacity=\"0.8\"/>\n <text x=\"12\" y=\"16\" text-anchor=\"middle\" fill=\"white\" font-size=\"8\" font-family=\"monospace\">\n ${icon.term.slice(0, 3)}\n </text>\n </svg>\n `;\n}\n\nasync function selectIcon(icon) {\n if (props.mode === 'add' && (!iconName.value || !category.value)) {\n error.value = 'Please enter icon name and select category';\n return;\n }\n\n loading.value = true;\n error.value = '';\n\n try {\n const response = await fetch('/api/icons/save', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n iconId: icon.id,\n category: category.value,\n iconName: iconName.value,\n mode: props.mode,\n currentIconName: props.currentIcon?.name\n })\n });\n\n const data = await response.json();\n \n if (!response.ok) {\n throw new Error(data.error || 'Failed to save icon');\n }\n\n emit('icon-selected', {\n ...data,\n icon: {\n name: iconName.value,\n category: category.value,\n term: icon.term\n }\n });\n \n closePopup();\n } catch (err) {\n console.error('Save error:', err);\n error.value = err.message;\n } finally {\n loading.value = false;\n }\n}\n\nfunction closePopup() {\n error.value = '';\n iconName.value = '';\n category.value = '';\n searchValue.value = '';\n emit('close');\n}\n</script>\n\n<style scoped>\n.icon-search-popup {\n min-height: 500px;\n}\n\n.icon-grid {\n min-height: 400px;\n}\n\n.icon-item {\n transition: all 0.2s ease;\n}\n\n.icon-item:hover {\n background-color: rgb(var(--light-hover));\n transform: scale(1.05);\n}\n\n.icon-preview {\n background: rgb(var(--light));\n border-radius: 8px;\n}\n\n.icon-svg {\n filter: none;\n}\n\n.w-max-800 {\n max-width: 800px;\n width: 90vw;\n}\n\n::v-deep(.feed-enter-active),\n::v-deep(.feed-leave-active) {\n transition: all 0.3s ease;\n}\n\n::v-deep(.feed-enter-from),\n::v-deep(.feed-leave-to) {\n opacity: 0;\n transform: scale(0.9);\n}\n</style>"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { createElementBlock, openBlock, createElementVNode } from "vue";
2
+ const _hoisted_1 = {
3
+ width: "56",
4
+ height: "56",
5
+ viewBox: "0 0 56 56",
6
+ fill: "none",
7
+ xmlns: "http://www.w3.org/2000/svg"
8
+ };
9
+ const _hoisted_2 = ["fill"];
10
+ const _sfc_main = {
11
+ __name: "IconApplications",
12
+ props: {
13
+ fill: {
14
+ type: String,
15
+ default: "currentColor"
16
+ }
17
+ },
18
+ setup(__props) {
19
+ return (_ctx, _cache) => {
20
+ return openBlock(), createElementBlock("svg", _hoisted_1, [
21
+ createElementVNode("path", {
22
+ d: "M38 6H18C15.8 6 14 7.8 14 10V46C14 48.2 15.8 50 18 50H38C40.2 50 42 48.2 42 46V10C42 7.8 40.2 6 38 6ZM38 44H18V12H38V44ZM34 18H22V22H34V18ZM34 26H22V30H34V26ZM30 34H22V38H30V34Z",
23
+ fill: __props.fill
24
+ }, null, 8, _hoisted_2)
25
+ ]);
26
+ };
27
+ }
28
+ };
29
+ export {
30
+ _sfc_main as default
31
+ };
32
+ //# sourceMappingURL=IconApplications.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconApplications.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,32 @@
1
+ import { createElementBlock, openBlock, createElementVNode } from "vue";
2
+ const _hoisted_1 = {
3
+ width: "56",
4
+ height: "56",
5
+ viewBox: "0 0 56 56",
6
+ fill: "none",
7
+ xmlns: "http://www.w3.org/2000/svg"
8
+ };
9
+ const _hoisted_2 = ["fill"];
10
+ const _sfc_main = {
11
+ __name: "IconCustomers",
12
+ props: {
13
+ fill: {
14
+ type: String,
15
+ default: "currentColor"
16
+ }
17
+ },
18
+ setup(__props) {
19
+ return (_ctx, _cache) => {
20
+ return openBlock(), createElementBlock("svg", _hoisted_1, [
21
+ createElementVNode("path", {
22
+ d: "M28 8C23.582 8 20 11.582 20 16C20 20.418 23.582 24 28 24C32.418 24 36 20.418 36 16C36 11.582 32.418 8 28 8ZM28 28C19.164 28 12 31.582 12 36V40H28.26L26 36.08L30.42 28.12C29.64 28.04 28.84 28 28 28ZM44.54 27L37 40H44.54L48 46L37 46L33.46 40L41 27H33.46L30 21H48L44.54 27Z",
23
+ fill: __props.fill
24
+ }, null, 8, _hoisted_2)
25
+ ]);
26
+ };
27
+ }
28
+ };
29
+ export {
30
+ _sfc_main as default
31
+ };
32
+ //# sourceMappingURL=IconCustomers.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconCustomers.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,32 @@
1
+ import { createElementBlock, openBlock, createElementVNode } from "vue";
2
+ const _hoisted_1 = {
3
+ width: "56",
4
+ height: "56",
5
+ viewBox: "0 0 56 56",
6
+ fill: "none",
7
+ xmlns: "http://www.w3.org/2000/svg"
8
+ };
9
+ const _hoisted_2 = ["fill"];
10
+ const _sfc_main = {
11
+ __name: "IconUsers",
12
+ props: {
13
+ fill: {
14
+ type: String,
15
+ default: "currentColor"
16
+ }
17
+ },
18
+ setup(__props) {
19
+ return (_ctx, _cache) => {
20
+ return openBlock(), createElementBlock("svg", _hoisted_1, [
21
+ createElementVNode("path", {
22
+ d: "M20 24C23.866 24 27 20.866 27 17C27 13.134 23.866 10 20 10C16.134 10 13 13.134 13 17C13 20.866 16.134 24 20 24ZM36 24C39.866 24 43 20.866 43 17C43 13.134 39.866 10 36 10C32.134 10 29 13.134 29 17C29 20.866 32.134 24 36 24ZM36 28C31.34 28 22 30.34 22 35V38C22 39.1 22.9 40 24 40H48C49.1 40 50 39.1 50 38V35C50 30.34 40.66 28 36 28ZM20 28C19.36 28 18.64 28.04 17.88 28.1C20.06 29.68 22 31.88 22 35V38C22 38.7 22.12 39.38 22.34 40H8C6.9 40 6 39.1 6 38V35C6 30.34 15.34 28 20 28Z",
23
+ fill: __props.fill
24
+ }, null, 8, _hoisted_2)
25
+ ]);
26
+ };
27
+ }
28
+ };
29
+ export {
30
+ _sfc_main as default
31
+ };
32
+ //# sourceMappingURL=IconUsers.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconUsers.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -124,7 +124,7 @@ const _sfc_main = {
124
124
  }
125
125
  return (_ctx, _cache) => {
126
126
  return openBlock(), createElementBlock("div", _hoisted_1, [
127
- _cache[9] || (_cache[9] = createElementVNode("p", { class: "mn-b-medium t-transp" }, " Effortlessly update your inventory and track adjustments for accurate stock management. ", -1)),
127
+ _cache[9] || (_cache[9] = createElementVNode("p", { class: "mn-b-medium opacity-50" }, " Effortlessly update your inventory and track adjustments for accurate stock management. ", -1)),
128
128
  createElementVNode("div", _hoisted_2, [
129
129
  createElementVNode("div", _hoisted_3, [
130
130
  createVNode(Field, {
@@ -196,7 +196,7 @@ const _sfc_main = {
196
196
  submit: () => _ctx.$emit("close"),
197
197
  showLoader: false,
198
198
  showSucces: false,
199
- class: "pd-small radius-small flex-center flex w-max cursor-pointer t-transp"
199
+ class: "pd-small radius-small flex-center flex w-max cursor-pointer opacity-50"
200
200
  }, {
201
201
  default: withCtx(() => _cache[7] || (_cache[7] = [
202
202
  createTextVNode(" Cancel ")
@@ -1 +1 @@
1
- {"version":3,"file":"AdjustmentForm.vue.js","sources":["../../../../../../../src/modules/inventory/components/forms/AdjustmentForm.vue"],"sourcesContent":["<template>\n <div class=\"w-100\">\n <p class=\"mn-b-medium t-transp\">\n Effortlessly update your inventory and track adjustments for accurate stock management.\n </p>\n \n \n <div class=\"mn-b-medium\">\n <div class=\"mn-b-small flex-nowrap flex gap-thin\">\n <Field\n v-model:field=\"quantity\"\n label=\"Quantity Adjustment\"\n type=\"number\"\n placeholder=\"Enter +/- quantity\"\n class=\"w-100 bg-light radius-small pd-medium\"\n />\n \n <Field\n :field=\"product.available\"\n label=\"Current Available\"\n type=\"text\"\n :disabled=\"true\"\n class=\"w-100 bg-light radius-small pd-medium\"\n />\n </div>\n \n </div>\n\n <!-- Variant Selection -->\n <div class=\"mn-b-medium\" v-if=\"productVariants.length > 0\">\n <p class=\"mn-b-small fw-medium\">Select Variant</p>\n <Select\n v-model:select=\"selectedVariant\"\n :options=\"productVariants\"\n property=\"_id\"\n value=\"name\"\n placeholder=\"Choose variant\"\n class=\"w-100 bg-light radius-small pd-medium\"\n />\n </div>\n\n <!-- Storage Selection -->\n <div class=\"mn-b-medium\">\n <p class=\"mn-b-small fw-medium\">Select Storage</p>\n <Select\n v-model:select=\"selectedStorage\"\n :options=\"storageOptions\"\n property=\"_id\"\n value=\"name\"\n placeholder=\"Choose storage\"\n class=\"w-100 bg-light radius-small pd-medium\"\n />\n </div>\n \n <div class=\"mn-b-medium\">\n <p class=\"mn-b-small fw-medium\">Adjustment Reason</p>\n \n <div class=\"cols-3 gap-small mn-b-small\">\n <div \n v-for=\"reason in adjustmentReasons\"\n :key=\"reason.value\"\n @click=\"selectedReason = reason.value\"\n :class=\"{ 'bg-main t-black': selectedReason === reason.value, 'bg-light': selectedReason !== reason.value }\"\n class=\"pd-small radius-small flex-column flex-center flex cursor-pointer\"\n >\n <component :is=\"reason.icon\" class=\"i-medium mn-b-nano\" />\n <span>{{ reason.label }}</span>\n </div>\n </div>\n </div>\n \n <Field\n v-model:field=\"note\"\n label=\"Note\"\n type=\"textarea\"\n placeholder=\"Add additional details about this adjustment...\"\n class=\"w-100 bg-light radius-small pd-medium mn-b-medium\"\n />\n \n <div class=\"flex-nowrap flex gap-small\">\n <Button\n :submit=\"() => $emit('close')\"\n :showLoader=\"false\"\n :showSucces=\"false\"\n class=\"pd-small radius-small flex-center flex w-max cursor-pointer t-transp\"\n >\n Cancel\n </Button>\n \n <Button\n :submit=\"saveAdjustment\"\n :showLoader=\"true\"\n :showSucces=\"true\"\n class=\"pd-small radius-small flex-center flex w-100 cursor-pointer bg-main t-black\"\n >\n Save Adjustment\n </Button>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed, onMounted } from 'vue'\nimport { useRoute } from 'vue-router'\nimport Field from '@martyrs/src/components/Field/Field.vue'\nimport Select from '@martyrs/src/components/Select/Select.vue'\nimport Button from '@martyrs/src/components/Button/Button.vue'\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\nimport * as spots from '@martyrs/src/modules/spots/store/spots.js'\nimport variants from '@martyrs/src/modules/products/store/variants.store.js'\nimport * as inventory from '@martyrs/src/modules/inventory/store/inventory.store.js'\n\nconst route = useRoute()\n\n// Icons for adjustment reasons\nimport IconDamage from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconExpire from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconMisplacement from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconThief from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconStocktake from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconCustom from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\n\nconst props = defineProps({\n product: {\n type: Object,\n required: true\n }\n})\n\nconst emit = defineEmits(['close', 'adjustment-created'])\n\n// Form state\nconst quantity = ref(0)\nconst selectedReason = ref('restock')\nconst note = ref('')\nconst selectedStorage = ref(null)\nconst selectedVariant = ref(null)\nconst productVariants = ref([])\nconst storageOptions = ref([])\n\n// Adjustment reason options\nconst adjustmentReasons = [\n { label: 'Restock', value: 'restock', icon: IconDamage },\n { label: 'Sale', value: 'sale', icon: IconExpire },\n { label: 'Return', value: 'return', icon: IconMisplacement },\n { label: 'Damage', value: 'damage', icon: IconThief },\n { label: 'Transfer', value: 'transfer', icon: IconStocktake },\n { label: 'Other', value: 'custom', icon: IconCustom },\n]\n\nfunction formatPrice(price) {\n return '$' + (parseFloat(price) || 0).toFixed(2)\n}\n\n// Fetch variants and storages on mount\nonMounted(async () => {\n console.log('AdjustmentForm mounted with product:', props.product)\n \n // Fetch variants for the product\n try {\n const variantsData = await variants.read({\n product: props.product._id,\n limit: 50\n })\n productVariants.value = variantsData\n // Select first variant by default if available\n if (variantsData.length > 0) {\n selectedVariant.value = variantsData[0]._id\n }\n } catch (err) {\n console.error('Error fetching variants:', err)\n }\n\n // Fetch storage options\n try {\n const spotsData = await spots.actions.read({\n user: auth.state.user._id,\n organization: route.params._id,\n limit: 50\n })\n storageOptions.value = spotsData.map(spot => ({\n _id: spot._id,\n name: spot.profile?.name || 'Storage'\n }))\n // Select first storage by default if available\n if (storageOptions.value.length > 0) {\n selectedStorage.value = storageOptions.value[0]._id\n }\n } catch (err) {\n console.error('Error fetching spots:', err)\n }\n})\n\nasync function saveAdjustment() {\n if (!selectedVariant.value) {\n alert('Please select a variant')\n throw new Error('Please select a variant')\n }\n if (!selectedStorage.value) {\n alert('Please select a storage')\n throw new Error('Please select a storage')\n }\n\n try {\n const adjustmentData = {\n product: props.product._id,\n variant: selectedVariant.value,\n storage: selectedStorage.value,\n source: {\n type: 'User',\n target: auth.state.user._id\n },\n quantity: parseInt(quantity.value || 0),\n reason: selectedReason.value,\n comment: note.value || '',\n owner: {\n type: 'organization',\n target: route.params._id\n },\n creator: {\n type: 'user',\n target: auth.state.user._id\n }\n }\n \n const createdAdjustment = await inventory.actions.createAdjustment(adjustmentData)\n \n // Emit the adjustment data for parent component to update the product\n emit('adjustment-created', {\n product: props.product._id,\n storage: selectedStorage.value,\n quantity: parseInt(quantity.value || 0),\n storageName: storageOptions.value.find(s => s._id === selectedStorage.value)?.name\n })\n \n emit('close')\n } catch (err) {\n console.error(err)\n throw err\n }\n}\n</script>"],"names":["IconDamage","IconExpire","IconMisplacement","IconThief","IconStocktake","IconCustom","variants","spots.actions","auth.state","inventory.actions"],"mappings":"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"}
1
+ {"version":3,"file":"AdjustmentForm.vue.js","sources":["../../../../../../../src/modules/inventory/components/forms/AdjustmentForm.vue"],"sourcesContent":["<template>\n <div class=\"w-100\">\n <p class=\"mn-b-medium opacity-50\">\n Effortlessly update your inventory and track adjustments for accurate stock management.\n </p>\n \n \n <div class=\"mn-b-medium\">\n <div class=\"mn-b-small flex-nowrap flex gap-thin\">\n <Field\n v-model:field=\"quantity\"\n label=\"Quantity Adjustment\"\n type=\"number\"\n placeholder=\"Enter +/- quantity\"\n class=\"w-100 bg-light radius-small pd-medium\"\n />\n \n <Field\n :field=\"product.available\"\n label=\"Current Available\"\n type=\"text\"\n :disabled=\"true\"\n class=\"w-100 bg-light radius-small pd-medium\"\n />\n </div>\n \n </div>\n\n <!-- Variant Selection -->\n <div class=\"mn-b-medium\" v-if=\"productVariants.length > 0\">\n <p class=\"mn-b-small fw-medium\">Select Variant</p>\n <Select\n v-model:select=\"selectedVariant\"\n :options=\"productVariants\"\n property=\"_id\"\n value=\"name\"\n placeholder=\"Choose variant\"\n class=\"w-100 bg-light radius-small pd-medium\"\n />\n </div>\n\n <!-- Storage Selection -->\n <div class=\"mn-b-medium\">\n <p class=\"mn-b-small fw-medium\">Select Storage</p>\n <Select\n v-model:select=\"selectedStorage\"\n :options=\"storageOptions\"\n property=\"_id\"\n value=\"name\"\n placeholder=\"Choose storage\"\n class=\"w-100 bg-light radius-small pd-medium\"\n />\n </div>\n \n <div class=\"mn-b-medium\">\n <p class=\"mn-b-small fw-medium\">Adjustment Reason</p>\n \n <div class=\"cols-3 gap-small mn-b-small\">\n <div \n v-for=\"reason in adjustmentReasons\"\n :key=\"reason.value\"\n @click=\"selectedReason = reason.value\"\n :class=\"{ 'bg-main t-black': selectedReason === reason.value, 'bg-light': selectedReason !== reason.value }\"\n class=\"pd-small radius-small flex-column flex-center flex cursor-pointer\"\n >\n <component :is=\"reason.icon\" class=\"i-medium mn-b-nano\" />\n <span>{{ reason.label }}</span>\n </div>\n </div>\n </div>\n \n <Field\n v-model:field=\"note\"\n label=\"Note\"\n type=\"textarea\"\n placeholder=\"Add additional details about this adjustment...\"\n class=\"w-100 bg-light radius-small pd-medium mn-b-medium\"\n />\n \n <div class=\"flex-nowrap flex gap-small\">\n <Button\n :submit=\"() => $emit('close')\"\n :showLoader=\"false\"\n :showSucces=\"false\"\n class=\"pd-small radius-small flex-center flex w-max cursor-pointer opacity-50\"\n >\n Cancel\n </Button>\n \n <Button\n :submit=\"saveAdjustment\"\n :showLoader=\"true\"\n :showSucces=\"true\"\n class=\"pd-small radius-small flex-center flex w-100 cursor-pointer bg-main t-black\"\n >\n Save Adjustment\n </Button>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed, onMounted } from 'vue'\nimport { useRoute } from 'vue-router'\nimport Field from '@martyrs/src/components/Field/Field.vue'\nimport Select from '@martyrs/src/components/Select/Select.vue'\nimport Button from '@martyrs/src/components/Button/Button.vue'\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\nimport * as spots from '@martyrs/src/modules/spots/store/spots.js'\nimport variants from '@martyrs/src/modules/products/store/variants.store.js'\nimport * as inventory from '@martyrs/src/modules/inventory/store/inventory.store.js'\n\nconst route = useRoute()\n\n// Icons for adjustment reasons\nimport IconDamage from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconExpire from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconMisplacement from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconThief from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconStocktake from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\nimport IconCustom from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\n\nconst props = defineProps({\n product: {\n type: Object,\n required: true\n }\n})\n\nconst emit = defineEmits(['close', 'adjustment-created'])\n\n// Form state\nconst quantity = ref(0)\nconst selectedReason = ref('restock')\nconst note = ref('')\nconst selectedStorage = ref(null)\nconst selectedVariant = ref(null)\nconst productVariants = ref([])\nconst storageOptions = ref([])\n\n// Adjustment reason options\nconst adjustmentReasons = [\n { label: 'Restock', value: 'restock', icon: IconDamage },\n { label: 'Sale', value: 'sale', icon: IconExpire },\n { label: 'Return', value: 'return', icon: IconMisplacement },\n { label: 'Damage', value: 'damage', icon: IconThief },\n { label: 'Transfer', value: 'transfer', icon: IconStocktake },\n { label: 'Other', value: 'custom', icon: IconCustom },\n]\n\nfunction formatPrice(price) {\n return '$' + (parseFloat(price) || 0).toFixed(2)\n}\n\n// Fetch variants and storages on mount\nonMounted(async () => {\n console.log('AdjustmentForm mounted with product:', props.product)\n \n // Fetch variants for the product\n try {\n const variantsData = await variants.read({\n product: props.product._id,\n limit: 50\n })\n productVariants.value = variantsData\n // Select first variant by default if available\n if (variantsData.length > 0) {\n selectedVariant.value = variantsData[0]._id\n }\n } catch (err) {\n console.error('Error fetching variants:', err)\n }\n\n // Fetch storage options\n try {\n const spotsData = await spots.actions.read({\n user: auth.state.user._id,\n organization: route.params._id,\n limit: 50\n })\n storageOptions.value = spotsData.map(spot => ({\n _id: spot._id,\n name: spot.profile?.name || 'Storage'\n }))\n // Select first storage by default if available\n if (storageOptions.value.length > 0) {\n selectedStorage.value = storageOptions.value[0]._id\n }\n } catch (err) {\n console.error('Error fetching spots:', err)\n }\n})\n\nasync function saveAdjustment() {\n if (!selectedVariant.value) {\n alert('Please select a variant')\n throw new Error('Please select a variant')\n }\n if (!selectedStorage.value) {\n alert('Please select a storage')\n throw new Error('Please select a storage')\n }\n\n try {\n const adjustmentData = {\n product: props.product._id,\n variant: selectedVariant.value,\n storage: selectedStorage.value,\n source: {\n type: 'User',\n target: auth.state.user._id\n },\n quantity: parseInt(quantity.value || 0),\n reason: selectedReason.value,\n comment: note.value || '',\n owner: {\n type: 'organization',\n target: route.params._id\n },\n creator: {\n type: 'user',\n target: auth.state.user._id\n }\n }\n \n const createdAdjustment = await inventory.actions.createAdjustment(adjustmentData)\n \n // Emit the adjustment data for parent component to update the product\n emit('adjustment-created', {\n product: props.product._id,\n storage: selectedStorage.value,\n quantity: parseInt(quantity.value || 0),\n storageName: storageOptions.value.find(s => s._id === selectedStorage.value)?.name\n })\n \n emit('close')\n } catch (err) {\n console.error(err)\n throw err\n }\n}\n</script>"],"names":["IconDamage","IconExpire","IconMisplacement","IconThief","IconStocktake","IconCustom","variants","spots.actions","auth.state","inventory.actions"],"mappings":"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"}
@@ -36,7 +36,7 @@ const _sfc_main = {
36
36
  }
37
37
  return (_ctx, _cache) => {
38
38
  return openBlock(), createElementBlock("div", _hoisted_1, [
39
- _cache[2] || (_cache[2] = createElementVNode("p", { class: "mn-b-medium t-transp" }, " Customize which columns are visible in your inventory table. ", -1)),
39
+ _cache[2] || (_cache[2] = createElementVNode("p", { class: "mn-b-medium opacity-50" }, " Customize which columns are visible in your inventory table. ", -1)),
40
40
  createElementVNode("div", _hoisted_2, [
41
41
  (openBlock(true), createElementBlock(Fragment, null, renderList(__props.columns, (col) => {
42
42
  return openBlock(), createElementBlock("div", {
@@ -59,7 +59,7 @@ const _sfc_main = {
59
59
  submit: () => _ctx.$emit("close"),
60
60
  showLoader: false,
61
61
  showSucces: false,
62
- class: "pd-small radius-small flex-center flex w-max cursor-pointer t-transp"
62
+ class: "pd-small radius-small flex-center flex w-max cursor-pointer opacity-50"
63
63
  }, {
64
64
  default: withCtx(() => _cache[0] || (_cache[0] = [
65
65
  createTextVNode(" Cancel ")
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnSettingsMenu.vue.js","sources":["../../../../../../../src/modules/inventory/components/forms/ColumnSettingsMenu.vue"],"sourcesContent":["<template>\n <div class=\"w-100\">\n <p class=\"mn-b-medium t-transp\">\n Customize which columns are visible in your inventory table.\n </p>\n\n <div class=\"mn-b-medium\">\n <div\n v-for=\"col in columns\"\n :key=\"col.key\"\n class=\"mn-b-small\"\n >\n <Checkbox\n :label=\"col.label\"\n name=\"columnVisibility\"\n :value=\"col.key\"\n class=\"w-100 bg-light radius-small pd-small\"\n :checked=\"selected.includes(col.key)\"\n @update:checked=\"val => toggle(col.key, val)\"\n />\n </div>\n </div>\n\n <div class=\"flex-nowrap flex gap-small\">\n <Button\n :submit=\"() => $emit('close')\"\n :showLoader=\"false\"\n :showSucces=\"false\"\n class=\"pd-small radius-small flex-center flex w-max cursor-pointer t-transp\"\n >\n Cancel\n </Button>\n\n <Button\n :submit=\"saveSettings\"\n :showLoader=\"false\"\n :showSucces=\"false\"\n class=\"pd-small radius-small flex-center flex w-100 cursor-pointer bg-main t-black\"\n >\n Save Settings\n </Button>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, watch } from 'vue'\nimport Checkbox from '@martyrs/src/components/Checkbox/Checkbox.vue'\nimport Button from '@martyrs/src/components/Button/Button.vue'\n\nconst props = defineProps({\n columns: {\n type: Array,\n required: true\n }\n})\n\nconst emit = defineEmits(['save', 'close'])\n\n// Локальный массив выбранных ключей\nconst selected = ref(props.columns.filter(c => c.visible).map(c => c.key))\n\n// Синхронизируем, если проп изменится\nwatch(\n () => props.columns,\n cols => {\n selected.value = cols.filter(c => c.visible).map(c => c.key)\n }\n)\n\n// Добавление/удаление ключа\nfunction toggle(key, checked) {\n const idx = selected.value.indexOf(key)\n if (checked && idx === -1) {\n selected.value.push(key)\n } else if (!checked && idx !== -1) {\n selected.value.splice(idx, 1)\n }\n}\n\n// Эмитим массив видимых колонок\nfunction saveSettings() {\n emit('save', selected.value)\n}\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAkDA,UAAM,QAAQ;AAOd,UAAM,OAAO;AAGb,UAAM,WAAW,IAAI,MAAM,QAAQ,OAAO,OAAK,EAAE,OAAO,EAAE,IAAI,OAAK,EAAE,GAAG,CAAC;AAGzE;AAAA,MACE,MAAM,MAAM;AAAA,MACZ,UAAQ;AACN,iBAAS,QAAQ,KAAK,OAAO,OAAK,EAAE,OAAO,EAAE,IAAI,OAAK,EAAE,GAAG;AAAA,MAC7D;AAAA,IACF;AAGA,aAAS,OAAO,KAAK,SAAS;AAC5B,YAAM,MAAM,SAAS,MAAM,QAAQ,GAAG;AACtC,UAAI,WAAW,QAAQ,IAAI;AACzB,iBAAS,MAAM,KAAK,GAAG;AAAA,MACzB,WAAW,CAAC,WAAW,QAAQ,IAAI;AACjC,iBAAS,MAAM,OAAO,KAAK,CAAC;AAAA,MAC9B;AAAA,IACF;AAGA,aAAS,eAAe;AACtB,WAAK,QAAQ,SAAS,KAAK;AAAA,IAC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ColumnSettingsMenu.vue.js","sources":["../../../../../../../src/modules/inventory/components/forms/ColumnSettingsMenu.vue"],"sourcesContent":["<template>\n <div class=\"w-100\">\n <p class=\"mn-b-medium opacity-50\">\n Customize which columns are visible in your inventory table.\n </p>\n\n <div class=\"mn-b-medium\">\n <div\n v-for=\"col in columns\"\n :key=\"col.key\"\n class=\"mn-b-small\"\n >\n <Checkbox\n :label=\"col.label\"\n name=\"columnVisibility\"\n :value=\"col.key\"\n class=\"w-100 bg-light radius-small pd-small\"\n :checked=\"selected.includes(col.key)\"\n @update:checked=\"val => toggle(col.key, val)\"\n />\n </div>\n </div>\n\n <div class=\"flex-nowrap flex gap-small\">\n <Button\n :submit=\"() => $emit('close')\"\n :showLoader=\"false\"\n :showSucces=\"false\"\n class=\"pd-small radius-small flex-center flex w-max cursor-pointer opacity-50\"\n >\n Cancel\n </Button>\n\n <Button\n :submit=\"saveSettings\"\n :showLoader=\"false\"\n :showSucces=\"false\"\n class=\"pd-small radius-small flex-center flex w-100 cursor-pointer bg-main t-black\"\n >\n Save Settings\n </Button>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, watch } from 'vue'\nimport Checkbox from '@martyrs/src/components/Checkbox/Checkbox.vue'\nimport Button from '@martyrs/src/components/Button/Button.vue'\n\nconst props = defineProps({\n columns: {\n type: Array,\n required: true\n }\n})\n\nconst emit = defineEmits(['save', 'close'])\n\n// Локальный массив выбранных ключей\nconst selected = ref(props.columns.filter(c => c.visible).map(c => c.key))\n\n// Синхронизируем, если проп изменится\nwatch(\n () => props.columns,\n cols => {\n selected.value = cols.filter(c => c.visible).map(c => c.key)\n }\n)\n\n// Добавление/удаление ключа\nfunction toggle(key, checked) {\n const idx = selected.value.indexOf(key)\n if (checked && idx === -1) {\n selected.value.push(key)\n } else if (!checked && idx !== -1) {\n selected.value.splice(idx, 1)\n }\n}\n\n// Эмитим массив видимых колонок\nfunction saveSettings() {\n emit('save', selected.value)\n}\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAkDA,UAAM,QAAQ;AAOd,UAAM,OAAO;AAGb,UAAM,WAAW,IAAI,MAAM,QAAQ,OAAO,OAAK,EAAE,OAAO,EAAE,IAAI,OAAK,EAAE,GAAG,CAAC;AAGzE;AAAA,MACE,MAAM,MAAM;AAAA,MACZ,UAAQ;AACN,iBAAS,QAAQ,KAAK,OAAO,OAAK,EAAE,OAAO,EAAE,IAAI,OAAK,EAAE,GAAG;AAAA,MAC7D;AAAA,IACF;AAGA,aAAS,OAAO,KAAK,SAAS;AAC5B,YAAM,MAAM,SAAS,MAAM,QAAQ,GAAG;AACtC,UAAI,WAAW,QAAQ,IAAI;AACzB,iBAAS,MAAM,KAAK,GAAG;AAAA,MACzB,WAAW,CAAC,WAAW,QAAQ,IAAI;AACjC,iBAAS,MAAM,OAAO,KAAK,CAAC;AAAA,MAC9B;AAAA,IACF;AAGA,aAAS,eAAe;AACtB,WAAK,QAAQ,SAAS,KAAK;AAAA,IAC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -155,7 +155,7 @@ const _sfc_main = {
155
155
  };
156
156
  }
157
157
  };
158
- const HistoryView = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-3734130e"]]);
158
+ const HistoryView = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-b9b4e17b"]]);
159
159
  export {
160
160
  HistoryView as default
161
161
  };
@@ -1 +1 @@
1
- {"version":3,"file":"HistoryView.vue.js","sources":["../../../../../../../src/modules/inventory/components/forms/HistoryView.vue"],"sourcesContent":["<template>\n <div class=\"w-100\">\n <div class=\"flex-nowrap flex flex-v-center mn-b-medium\">\n <div class=\"flex-nowrap flex flex-v-center\">\n <img \n v-if=\"product.images && product.images.length > 0\"\n :src=\"(FILE_SERVER_URL || '') + product.images[0]\" \n alt=\"Product\" \n class=\"w-3r h-3r radius-small object-fit-cover mn-r-small\"\n />\n <PlaceholderImage \n v-else \n class=\"w-3r h-3r radius-small mn-r-small\"\n />\n \n <div>\n <h3 class=\"mn-b-nano\">{{ product.name }}</h3>\n <!-- <p class=\"t-small t-transp\">SKU: {{ product.sku }}</p> -->\n </div>\n </div>\n </div>\n \n <div class=\"mn-b-medium w-100 h-max-30r o-scroll\">\n <table class=\"w-100\">\n <thead>\n <tr class=\"bg-light\">\n <th class=\"pd-small t-left\">Date</th>\n <th class=\"pd-small t-left\">Type</th>\n <th class=\"pd-small t-left\">Quantity</th>\n <th class=\"pd-small t-left\">Reason</th>\n <th class=\"pd-small t-left\">User</th>\n </tr>\n </thead>\n <tbody>\n <tr v-if=\"loading\">\n <td colspan=\"5\" class=\"pd-medium t-center\">Loading history...</td>\n </tr>\n <tr v-else-if=\"history.length === 0\">\n <td colspan=\"5\" class=\"pd-medium t-center\">No history available</td>\n </tr>\n <tr v-for=\"(entry, index) in history\" :key=\"index\" class=\"border-b\">\n <td class=\"pd-small\">{{ formatDate(entry.createdAt) }}</td>\n <td class=\"pd-small\">\n <span \n :class=\"entry.quantity > 0 ? 'bg-green t-white' : 'bg-red t-white'\"\n class=\"pd-nano pd-r-small pd-l-small radius-small t-small\"\n >\n {{ entry.quantity > 0 ? 'Stock In' : 'Stock Out' }}\n </span>\n </td>\n <td class=\"pd-small\">\n {{ entry.quantity > 0 ? '+' : '' }}{{ entry.quantity }}\n </td>\n <td class=\"pd-small\">{{ entry.reason || entry.comment || 'Not specified' }}</td>\n <td class=\"pd-small\">\n <div class=\"flex-nowrap flex flex-v-center\">\n <div class=\"w-2r h-2r radius-extra bg-light o-hidden mn-r-nano\">\n <img \n v-if=\"entry.creator?.target?.profile?.photo\" \n :src=\"(FILE_SERVER_URL || '') + entry.creator.target.profile.photo\" \n alt=\"User\" \n class=\"w-100 h-100 object-fit-cover\" \n />\n <PlaceholderImage v-else class=\"w-100 h-100\" />\n </div>\n {{ entry.creator?.target?.profile?.name || 'System' }}\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n \n <Button\n :submit=\"() => $emit('close')\"\n :showLoader=\"false\"\n :showSucces=\"false\"\n class=\"pd-small radius-small flex-center flex w-max cursor-pointer bg-main t-black\"\n >\n Close\n </Button>\n </div>\n</template>\n\n<script setup>\nimport { ref, onMounted } from 'vue'\nimport PlaceholderImage from '@martyrs/src/modules/icons/placeholders/PlaceholderImage.vue'\nimport Button from '@martyrs/src/components/Button/Button.vue'\n\nimport * as inventory from '@martyrs/src/modules/inventory/store/inventory.store.js'\n\nconst props = defineProps({\n product: {\n type: Object,\n required: true\n }\n})\n\nconst emit = defineEmits(['close'])\n\n// State\nconst loading = ref(true)\nconst history = ref([])\n\nonMounted(async () => {\n await loadHistory()\n})\n\nasync function loadHistory() {\n loading.value = true\n try {\n // Fetch adjustments for this product\n const data = await inventory.actions.fetchAdjustments({\n product: props.product._id,\n limit: 50,\n sortParam: 'createdAt',\n sortOrder: 'desc',\n lookup: ['creator', 'source', 'storage']\n })\n \n history.value = data || []\n } catch (error) {\n console.error('Error loading history:', error)\n history.value = []\n } finally {\n loading.value = false\n }\n}\n\nfunction formatDate(dateString) {\n const date = new Date(dateString)\n return date.toLocaleDateString('en-US', { \n day: 'numeric', \n month: 'short', \n year: 'numeric',\n hour: '2-digit',\n minute: '2-digit'\n })\n}\n</script>\n\n<style scoped>\n.border-b {\n border-bottom: 1px solid rgba(var(--black), 0.1);\n}\n</style>"],"names":["inventory.actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2FA,UAAM,QAAQ;AAUd,UAAM,UAAU,IAAI,IAAI;AACxB,UAAM,UAAU,IAAI,CAAA,CAAE;AAEtB,cAAU,YAAY;AACpB,YAAM,YAAW;AAAA,IACnB,CAAC;AAED,mBAAe,cAAc;AAC3B,cAAQ,QAAQ;AAChB,UAAI;AAEF,cAAM,OAAO,MAAMA,QAAkB,iBAAiB;AAAA,UACpD,SAAS,MAAM,QAAQ;AAAA,UACvB,OAAO;AAAA,UACP,WAAW;AAAA,UACX,WAAW;AAAA,UACX,QAAQ,CAAC,WAAW,UAAU,SAAS;AAAA,QAC7C,CAAK;AAED,gBAAQ,QAAQ,QAAQ,CAAA;AAAA,MAC1B,SAAS,OAAO;AACd,gBAAQ,MAAM,0BAA0B,KAAK;AAC7C,gBAAQ,QAAQ,CAAA;AAAA,MAClB,UAAC;AACC,gBAAQ,QAAQ;AAAA,MAClB;AAAA,IACF;AAEA,aAAS,WAAW,YAAY;AAC9B,YAAM,OAAO,IAAI,KAAK,UAAU;AAChC,aAAO,KAAK,mBAAmB,SAAS;AAAA,QACtC,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,MAAM;AAAA,QACN,QAAQ;AAAA,MACZ,CAAG;AAAA,IACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"HistoryView.vue.js","sources":["../../../../../../../src/modules/inventory/components/forms/HistoryView.vue"],"sourcesContent":["<template>\n <div class=\"w-100\">\n <div class=\"flex-nowrap flex flex-v-center mn-b-medium\">\n <div class=\"flex-nowrap flex flex-v-center\">\n <img \n v-if=\"product.images && product.images.length > 0\"\n :src=\"(FILE_SERVER_URL || '') + product.images[0]\" \n alt=\"Product\" \n class=\"w-3r h-3r radius-small object-fit-cover mn-r-small\"\n />\n <PlaceholderImage \n v-else \n class=\"w-3r h-3r radius-small mn-r-small\"\n />\n \n <div>\n <h3 class=\"mn-b-nano\">{{ product.name }}</h3>\n <!-- <p class=\"t-small opacity-50\">SKU: {{ product.sku }}</p> -->\n </div>\n </div>\n </div>\n \n <div class=\"mn-b-medium w-100 h-max-30r o-scroll\">\n <table class=\"w-100\">\n <thead>\n <tr class=\"bg-light\">\n <th class=\"pd-small t-left\">Date</th>\n <th class=\"pd-small t-left\">Type</th>\n <th class=\"pd-small t-left\">Quantity</th>\n <th class=\"pd-small t-left\">Reason</th>\n <th class=\"pd-small t-left\">User</th>\n </tr>\n </thead>\n <tbody>\n <tr v-if=\"loading\">\n <td colspan=\"5\" class=\"pd-medium t-center\">Loading history...</td>\n </tr>\n <tr v-else-if=\"history.length === 0\">\n <td colspan=\"5\" class=\"pd-medium t-center\">No history available</td>\n </tr>\n <tr v-for=\"(entry, index) in history\" :key=\"index\" class=\"border-b\">\n <td class=\"pd-small\">{{ formatDate(entry.createdAt) }}</td>\n <td class=\"pd-small\">\n <span \n :class=\"entry.quantity > 0 ? 'bg-green t-white' : 'bg-red t-white'\"\n class=\"pd-nano pd-r-small pd-l-small radius-small t-small\"\n >\n {{ entry.quantity > 0 ? 'Stock In' : 'Stock Out' }}\n </span>\n </td>\n <td class=\"pd-small\">\n {{ entry.quantity > 0 ? '+' : '' }}{{ entry.quantity }}\n </td>\n <td class=\"pd-small\">{{ entry.reason || entry.comment || 'Not specified' }}</td>\n <td class=\"pd-small\">\n <div class=\"flex-nowrap flex flex-v-center\">\n <div class=\"w-2r h-2r radius-extra bg-light o-hidden mn-r-nano\">\n <img \n v-if=\"entry.creator?.target?.profile?.photo\" \n :src=\"(FILE_SERVER_URL || '') + entry.creator.target.profile.photo\" \n alt=\"User\" \n class=\"w-100 h-100 object-fit-cover\" \n />\n <PlaceholderImage v-else class=\"w-100 h-100\" />\n </div>\n {{ entry.creator?.target?.profile?.name || 'System' }}\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n \n <Button\n :submit=\"() => $emit('close')\"\n :showLoader=\"false\"\n :showSucces=\"false\"\n class=\"pd-small radius-small flex-center flex w-max cursor-pointer bg-main t-black\"\n >\n Close\n </Button>\n </div>\n</template>\n\n<script setup>\nimport { ref, onMounted } from 'vue'\nimport PlaceholderImage from '@martyrs/src/modules/icons/placeholders/PlaceholderImage.vue'\nimport Button from '@martyrs/src/components/Button/Button.vue'\n\nimport * as inventory from '@martyrs/src/modules/inventory/store/inventory.store.js'\n\nconst props = defineProps({\n product: {\n type: Object,\n required: true\n }\n})\n\nconst emit = defineEmits(['close'])\n\n// State\nconst loading = ref(true)\nconst history = ref([])\n\nonMounted(async () => {\n await loadHistory()\n})\n\nasync function loadHistory() {\n loading.value = true\n try {\n // Fetch adjustments for this product\n const data = await inventory.actions.fetchAdjustments({\n product: props.product._id,\n limit: 50,\n sortParam: 'createdAt',\n sortOrder: 'desc',\n lookup: ['creator', 'source', 'storage']\n })\n \n history.value = data || []\n } catch (error) {\n console.error('Error loading history:', error)\n history.value = []\n } finally {\n loading.value = false\n }\n}\n\nfunction formatDate(dateString) {\n const date = new Date(dateString)\n return date.toLocaleDateString('en-US', { \n day: 'numeric', \n month: 'short', \n year: 'numeric',\n hour: '2-digit',\n minute: '2-digit'\n })\n}\n</script>\n\n<style scoped>\n.border-b {\n border-bottom: 1px solid rgba(var(--black), 0.1);\n}\n</style>"],"names":["inventory.actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2FA,UAAM,QAAQ;AAUd,UAAM,UAAU,IAAI,IAAI;AACxB,UAAM,UAAU,IAAI,CAAA,CAAE;AAEtB,cAAU,YAAY;AACpB,YAAM,YAAW;AAAA,IACnB,CAAC;AAED,mBAAe,cAAc;AAC3B,cAAQ,QAAQ;AAChB,UAAI;AAEF,cAAM,OAAO,MAAMA,QAAkB,iBAAiB;AAAA,UACpD,SAAS,MAAM,QAAQ;AAAA,UACvB,OAAO;AAAA,UACP,WAAW;AAAA,UACX,WAAW;AAAA,UACX,QAAQ,CAAC,WAAW,UAAU,SAAS;AAAA,QAC7C,CAAK;AAED,gBAAQ,QAAQ,QAAQ,CAAA;AAAA,MAC1B,SAAS,OAAO;AACd,gBAAQ,MAAM,0BAA0B,KAAK;AAC7C,gBAAQ,QAAQ,CAAA;AAAA,MAClB,UAAC;AACC,gBAAQ,QAAQ;AAAA,MAClB;AAAA,IACF;AAEA,aAAS,WAAW,YAAY;AAC9B,YAAM,OAAO,IAAI,KAAK,UAAU;AAChC,aAAO,KAAK,mBAAmB,SAAS;AAAA,QACtC,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,MAAM;AAAA,QACN,QAAQ;AAAA,MACZ,CAAG;AAAA,IACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -9,7 +9,7 @@ import variantsStore from "../../../products/store/variants.store.js";
9
9
  import stockAlertsStore from "../../store/stock.alerts.store.js";
10
10
  const _hoisted_1 = { class: "w-100" };
11
11
  const _hoisted_2 = { class: "mn-b-medium" };
12
- const _hoisted_3 = { class: "mn-t-small t-small t-transp" };
12
+ const _hoisted_3 = { class: "mn-t-small t-small opacity-50" };
13
13
  const _hoisted_4 = { class: "mn-b-medium" };
14
14
  const _hoisted_5 = { class: "flex-nowrap flex gap-small" };
15
15
  const _sfc_main = {
@@ -117,7 +117,7 @@ const _sfc_main = {
117
117
  }
118
118
  return (_ctx, _cache) => {
119
119
  return openBlock(), createElementBlock("div", _hoisted_1, [
120
- _cache[6] || (_cache[6] = createElementVNode("p", { class: "mn-b-medium t-transp" }, " Set up stock level alerts to get notified when inventory runs low. ", -1)),
120
+ _cache[6] || (_cache[6] = createElementVNode("p", { class: "mn-b-medium opacity-50" }, " Set up stock level alerts to get notified when inventory runs low. ", -1)),
121
121
  createElementVNode("div", _hoisted_2, [
122
122
  _cache[3] || (_cache[3] = createElementVNode("p", { class: "mn-b-small fw-medium" }, "Alert Scope", -1)),
123
123
  createVNode(Select, {
@@ -155,7 +155,7 @@ const _sfc_main = {
155
155
  submit: () => _ctx.$emit("close"),
156
156
  showLoader: false,
157
157
  showSucces: false,
158
- class: "pd-small radius-small flex-center flex w-max cursor-pointer t-transp"
158
+ class: "pd-small radius-small flex-center flex w-max cursor-pointer opacity-50"
159
159
  }, {
160
160
  default: withCtx(() => _cache[4] || (_cache[4] = [
161
161
  createTextVNode(" Cancel ")
@@ -1 +1 @@
1
- {"version":3,"file":"StockAlertsForm.vue.js","sources":["../../../../../../../src/modules/inventory/components/forms/StockAlertsForm.vue"],"sourcesContent":["<template>\n <div class=\"w-100\">\n <p class=\"mn-b-medium t-transp\">\n Set up stock level alerts to get notified when inventory runs low.\n </p>\n \n <!-- Variant Selection -->\n <div class=\"mn-b-medium\">\n <p class=\"mn-b-small fw-medium\">Alert Scope</p>\n <Select\n v-model:select=\"selectedVariant\"\n :options=\"variantOptions\"\n property=\"_id\"\n value=\"name\"\n placeholder=\"All variants\"\n class=\"w-100 bg-light radius-small pd-medium mn-b-small\"\n />\n \n <Select\n v-model:select=\"selectedStorage\"\n :options=\"storageOptions\"\n property=\"_id\"\n value=\"name\"\n placeholder=\"All storages\"\n class=\"w-100 bg-light radius-small pd-medium\"\n />\n \n <p class=\"mn-t-small t-small t-transp\">\n {{ alertDescription }}\n </p>\n </div>\n \n <!-- Threshold -->\n <div class=\"mn-b-medium\">\n <Field\n v-model:field=\"threshold\"\n label=\"Alert when stock falls below\"\n type=\"number\"\n placeholder=\"Enter minimum quantity\"\n class=\"w-100 bg-light radius-small pd-medium\"\n />\n </div>\n \n <!-- Actions -->\n <div class=\"flex-nowrap flex gap-small\">\n <Button\n :submit=\"() => $emit('close')\"\n :showLoader=\"false\"\n :showSucces=\"false\"\n class=\"pd-small radius-small flex-center flex w-max cursor-pointer t-transp\"\n >\n Cancel\n </Button>\n \n <Button\n :submit=\"saveAlert\"\n :showLoader=\"true\"\n :showSucces=\"true\"\n class=\"pd-small radius-small flex-center flex w-100 cursor-pointer bg-main t-black\"\n >\n Save Alert\n </Button>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed, onMounted } from 'vue'\nimport { useRoute } from 'vue-router'\nimport Field from '@martyrs/src/components/Field/Field.vue'\nimport Select from '@martyrs/src/components/Select/Select.vue'\nimport Button from '@martyrs/src/components/Button/Button.vue'\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\nimport * as spots from '@martyrs/src/modules/spots/store/spots.js'\nimport variants from '@martyrs/src/modules/products/store/variants.store.js'\nimport stockAlerts from '@martyrs/src/modules/inventory/store/stock.alerts.store.js'\n\nconst route = useRoute()\n\nconst props = defineProps({\n product: {\n type: Object,\n required: true\n }\n})\n\nconst emit = defineEmits(['close'])\n\n// Form state\nconst selectedVariant = ref(null)\nconst selectedStorage = ref(null)\nconst threshold = ref(10)\nconst variantOptions = ref([])\nconst storageOptions = ref([])\n\n// Alert description based on selections\nconst alertDescription = computed(() => {\n if (!selectedVariant.value && !selectedStorage.value) {\n return `Track total stock for ${props.product.name} across all variants and storages`\n } else if (selectedVariant.value && !selectedStorage.value) {\n const variant = variantOptions.value.find(v => v._id === selectedVariant.value)\n return `Track ${variant?.name || 'variant'} stock across all storages`\n } else if (!selectedVariant.value && selectedStorage.value) {\n const storage = storageOptions.value.find(s => s._id === selectedStorage.value)\n return `Track all variants at ${storage?.name || 'storage'}`\n } else {\n const variant = variantOptions.value.find(v => v._id === selectedVariant.value)\n const storage = storageOptions.value.find(s => s._id === selectedStorage.value)\n return `Track ${variant?.name || 'variant'} at ${storage?.name || 'storage'}`\n }\n})\n\n// Fetch data on mount\nonMounted(async () => {\n // Fetch variants for the product\n try {\n const variantsData = await variants.read({\n product: props.product._id,\n limit: 50\n })\n variantOptions.value = [\n { _id: null, name: 'All variants' },\n ...variantsData.map(v => ({\n _id: v._id,\n name: v.name || 'Default Variant'\n }))\n ]\n } catch (err) {\n console.error('Error fetching variants:', err)\n }\n\n // Fetch storage options\n try {\n const spotsData = await spots.actions.read({\n organization: route.params._id,\n limit: 50\n })\n storageOptions.value = [\n { _id: null, name: 'All storages' },\n ...spotsData.map(spot => ({\n _id: spot._id,\n name: spot.profile?.name || 'Storage'\n }))\n ]\n } catch (err) {\n console.error('Error fetching spots:', err)\n }\n \n // Check if alert already exists\n try {\n const existingAlerts = await stockAlerts.read({\n product: props.product._id,\n owner: route.params._id\n })\n if (existingAlerts.length > 0) {\n // Load first alert settings\n const alert = existingAlerts[0]\n selectedVariant.value = alert.variant\n selectedStorage.value = alert.storage\n threshold.value = alert.threshold\n }\n } catch (err) {\n console.error('Error fetching existing alerts:', err)\n }\n})\n\nasync function saveAlert() {\n try {\n const alertData = {\n product: props.product._id,\n variant: selectedVariant.value,\n storage: selectedStorage.value,\n threshold: parseInt(threshold.value || 0),\n enabled: true,\n owner: {\n type: 'organization',\n target: route.params._id\n },\n creator: {\n type: 'user',\n target: auth.state.user._id\n }\n }\n \n await stockAlerts.create(alertData)\n emit('close')\n } catch (err) {\n console.error(err)\n throw err\n }\n}\n</script>"],"names":["variants","spots.actions","stockAlerts","auth.state"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AA6EA,UAAM,QAAQ,SAAQ;AAEtB,UAAM,QAAQ;AAOd,UAAM,OAAO;AAGb,UAAM,kBAAkB,IAAI,IAAI;AAChC,UAAM,kBAAkB,IAAI,IAAI;AAChC,UAAM,YAAY,IAAI,EAAE;AACxB,UAAM,iBAAiB,IAAI,CAAA,CAAE;AAC7B,UAAM,iBAAiB,IAAI,CAAA,CAAE;AAG7B,UAAM,mBAAmB,SAAS,MAAM;AACtC,UAAI,CAAC,gBAAgB,SAAS,CAAC,gBAAgB,OAAO;AACpD,eAAO,yBAAyB,MAAM,QAAQ,IAAI;AAAA,MACpD,WAAW,gBAAgB,SAAS,CAAC,gBAAgB,OAAO;AAC1D,cAAM,UAAU,eAAe,MAAM,KAAK,OAAK,EAAE,QAAQ,gBAAgB,KAAK;AAC9E,eAAO,SAAS,SAAS,QAAQ,SAAS;AAAA,MAC5C,WAAW,CAAC,gBAAgB,SAAS,gBAAgB,OAAO;AAC1D,cAAM,UAAU,eAAe,MAAM,KAAK,OAAK,EAAE,QAAQ,gBAAgB,KAAK;AAC9E,eAAO,yBAAyB,SAAS,QAAQ,SAAS;AAAA,MAC5D,OAAO;AACL,cAAM,UAAU,eAAe,MAAM,KAAK,OAAK,EAAE,QAAQ,gBAAgB,KAAK;AAC9E,cAAM,UAAU,eAAe,MAAM,KAAK,OAAK,EAAE,QAAQ,gBAAgB,KAAK;AAC9E,eAAO,SAAS,SAAS,QAAQ,SAAS,OAAO,SAAS,QAAQ,SAAS;AAAA,MAC7E;AAAA,IACF,CAAC;AAGD,cAAU,YAAY;AAEpB,UAAI;AACF,cAAM,eAAe,MAAMA,cAAS,KAAK;AAAA,UACvC,SAAS,MAAM,QAAQ;AAAA,UACvB,OAAO;AAAA,QACb,CAAK;AACD,uBAAe,QAAQ;AAAA,UACrB,EAAE,KAAK,MAAM,MAAM,eAAc;AAAA,UACjC,GAAG,aAAa,IAAI,QAAM;AAAA,YACxB,KAAK,EAAE;AAAA,YACP,MAAM,EAAE,QAAQ;AAAA,UACxB,EAAQ;AAAA,QACR;AAAA,MACE,SAAS,KAAK;AACZ,gBAAQ,MAAM,4BAA4B,GAAG;AAAA,MAC/C;AAGA,UAAI;AACF,cAAM,YAAY,MAAMC,QAAc,KAAK;AAAA,UACzC,cAAc,MAAM,OAAO;AAAA,UAC3B,OAAO;AAAA,QACb,CAAK;AACD,uBAAe,QAAQ;AAAA,UACrB,EAAE,KAAK,MAAM,MAAM,eAAc;AAAA,UACjC,GAAG,UAAU,IAAI,WAAS;AAAA,YACxB,KAAK,KAAK;AAAA,YACV,MAAM,KAAK,SAAS,QAAQ;AAAA,UACpC,EAAQ;AAAA,QACR;AAAA,MACE,SAAS,KAAK;AACZ,gBAAQ,MAAM,yBAAyB,GAAG;AAAA,MAC5C;AAGA,UAAI;AACF,cAAM,iBAAiB,MAAMC,iBAAY,KAAK;AAAA,UAC5C,SAAS,MAAM,QAAQ;AAAA,UACvB,OAAO,MAAM,OAAO;AAAA,QAC1B,CAAK;AACD,YAAI,eAAe,SAAS,GAAG;AAE7B,gBAAM,QAAQ,eAAe,CAAC;AAC9B,0BAAgB,QAAQ,MAAM;AAC9B,0BAAgB,QAAQ,MAAM;AAC9B,oBAAU,QAAQ,MAAM;AAAA,QAC1B;AAAA,MACF,SAAS,KAAK;AACZ,gBAAQ,MAAM,mCAAmC,GAAG;AAAA,MACtD;AAAA,IACF,CAAC;AAED,mBAAe,YAAY;AACzB,UAAI;AACF,cAAM,YAAY;AAAA,UAChB,SAAS,MAAM,QAAQ;AAAA,UACvB,SAAS,gBAAgB;AAAA,UACzB,SAAS,gBAAgB;AAAA,UACzB,WAAW,SAAS,UAAU,SAAS,CAAC;AAAA,UACxC,SAAS;AAAA,UACT,OAAO;AAAA,YACL,MAAM;AAAA,YACN,QAAQ,MAAM,OAAO;AAAA,UAC7B;AAAA,UACM,SAAS;AAAA,YACP,MAAM;AAAA,YACN,QAAQC,MAAW,KAAK;AAAA,UAChC;AAAA,QACA;AAEI,cAAMD,iBAAY,OAAO,SAAS;AAClC,aAAK,OAAO;AAAA,MACd,SAAS,KAAK;AACZ,gBAAQ,MAAM,GAAG;AACjB,cAAM;AAAA,MACR;AAAA,IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"StockAlertsForm.vue.js","sources":["../../../../../../../src/modules/inventory/components/forms/StockAlertsForm.vue"],"sourcesContent":["<template>\n <div class=\"w-100\">\n <p class=\"mn-b-medium opacity-50\">\n Set up stock level alerts to get notified when inventory runs low.\n </p>\n \n <!-- Variant Selection -->\n <div class=\"mn-b-medium\">\n <p class=\"mn-b-small fw-medium\">Alert Scope</p>\n <Select\n v-model:select=\"selectedVariant\"\n :options=\"variantOptions\"\n property=\"_id\"\n value=\"name\"\n placeholder=\"All variants\"\n class=\"w-100 bg-light radius-small pd-medium mn-b-small\"\n />\n \n <Select\n v-model:select=\"selectedStorage\"\n :options=\"storageOptions\"\n property=\"_id\"\n value=\"name\"\n placeholder=\"All storages\"\n class=\"w-100 bg-light radius-small pd-medium\"\n />\n \n <p class=\"mn-t-small t-small opacity-50\">\n {{ alertDescription }}\n </p>\n </div>\n \n <!-- Threshold -->\n <div class=\"mn-b-medium\">\n <Field\n v-model:field=\"threshold\"\n label=\"Alert when stock falls below\"\n type=\"number\"\n placeholder=\"Enter minimum quantity\"\n class=\"w-100 bg-light radius-small pd-medium\"\n />\n </div>\n \n <!-- Actions -->\n <div class=\"flex-nowrap flex gap-small\">\n <Button\n :submit=\"() => $emit('close')\"\n :showLoader=\"false\"\n :showSucces=\"false\"\n class=\"pd-small radius-small flex-center flex w-max cursor-pointer opacity-50\"\n >\n Cancel\n </Button>\n \n <Button\n :submit=\"saveAlert\"\n :showLoader=\"true\"\n :showSucces=\"true\"\n class=\"pd-small radius-small flex-center flex w-100 cursor-pointer bg-main t-black\"\n >\n Save Alert\n </Button>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed, onMounted } from 'vue'\nimport { useRoute } from 'vue-router'\nimport Field from '@martyrs/src/components/Field/Field.vue'\nimport Select from '@martyrs/src/components/Select/Select.vue'\nimport Button from '@martyrs/src/components/Button/Button.vue'\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\nimport * as spots from '@martyrs/src/modules/spots/store/spots.js'\nimport variants from '@martyrs/src/modules/products/store/variants.store.js'\nimport stockAlerts from '@martyrs/src/modules/inventory/store/stock.alerts.store.js'\n\nconst route = useRoute()\n\nconst props = defineProps({\n product: {\n type: Object,\n required: true\n }\n})\n\nconst emit = defineEmits(['close'])\n\n// Form state\nconst selectedVariant = ref(null)\nconst selectedStorage = ref(null)\nconst threshold = ref(10)\nconst variantOptions = ref([])\nconst storageOptions = ref([])\n\n// Alert description based on selections\nconst alertDescription = computed(() => {\n if (!selectedVariant.value && !selectedStorage.value) {\n return `Track total stock for ${props.product.name} across all variants and storages`\n } else if (selectedVariant.value && !selectedStorage.value) {\n const variant = variantOptions.value.find(v => v._id === selectedVariant.value)\n return `Track ${variant?.name || 'variant'} stock across all storages`\n } else if (!selectedVariant.value && selectedStorage.value) {\n const storage = storageOptions.value.find(s => s._id === selectedStorage.value)\n return `Track all variants at ${storage?.name || 'storage'}`\n } else {\n const variant = variantOptions.value.find(v => v._id === selectedVariant.value)\n const storage = storageOptions.value.find(s => s._id === selectedStorage.value)\n return `Track ${variant?.name || 'variant'} at ${storage?.name || 'storage'}`\n }\n})\n\n// Fetch data on mount\nonMounted(async () => {\n // Fetch variants for the product\n try {\n const variantsData = await variants.read({\n product: props.product._id,\n limit: 50\n })\n variantOptions.value = [\n { _id: null, name: 'All variants' },\n ...variantsData.map(v => ({\n _id: v._id,\n name: v.name || 'Default Variant'\n }))\n ]\n } catch (err) {\n console.error('Error fetching variants:', err)\n }\n\n // Fetch storage options\n try {\n const spotsData = await spots.actions.read({\n organization: route.params._id,\n limit: 50\n })\n storageOptions.value = [\n { _id: null, name: 'All storages' },\n ...spotsData.map(spot => ({\n _id: spot._id,\n name: spot.profile?.name || 'Storage'\n }))\n ]\n } catch (err) {\n console.error('Error fetching spots:', err)\n }\n \n // Check if alert already exists\n try {\n const existingAlerts = await stockAlerts.read({\n product: props.product._id,\n owner: route.params._id\n })\n if (existingAlerts.length > 0) {\n // Load first alert settings\n const alert = existingAlerts[0]\n selectedVariant.value = alert.variant\n selectedStorage.value = alert.storage\n threshold.value = alert.threshold\n }\n } catch (err) {\n console.error('Error fetching existing alerts:', err)\n }\n})\n\nasync function saveAlert() {\n try {\n const alertData = {\n product: props.product._id,\n variant: selectedVariant.value,\n storage: selectedStorage.value,\n threshold: parseInt(threshold.value || 0),\n enabled: true,\n owner: {\n type: 'organization',\n target: route.params._id\n },\n creator: {\n type: 'user',\n target: auth.state.user._id\n }\n }\n \n await stockAlerts.create(alertData)\n emit('close')\n } catch (err) {\n console.error(err)\n throw err\n }\n}\n</script>"],"names":["variants","spots.actions","stockAlerts","auth.state"],"mappings":"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"}