@ozdao/martyrs 0.2.570 → 0.2.572

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 (832) hide show
  1. package/dist/_virtual/dayjs.min.js +1 -1
  2. package/dist/_virtual/weekOfYear.js +1 -1
  3. package/dist/builder.js +1248 -106
  4. package/dist/{main-BFvlam0J.js → main-BfEQkhXS.js} +1173 -1191
  5. package/dist/martyrs/dist/{main-BFvlam0J.js → main-BfEQkhXS.js} +94 -112
  6. package/dist/martyrs/dist/main-BfEQkhXS.js.map +1 -0
  7. package/dist/martyrs/dist/{web-CH5wzMHy.js → web-BqTV9va1.js} +3 -3
  8. package/dist/martyrs/dist/{web-CH5wzMHy.js.map → web-BqTV9va1.js.map} +1 -1
  9. package/dist/martyrs/node_modules/.pnpm/{@capacitor_core@7.0.1 → @capacitor_core@7.4.4}/node_modules/@capacitor/core/dist/index.js +2 -1
  10. package/dist/martyrs/node_modules/.pnpm/@capacitor_core@7.4.4/node_modules/@capacitor/core/dist/index.js.map +1 -0
  11. package/dist/martyrs/node_modules/.pnpm/{@capacitor_preferences@7.0.0_@capacitor_core@7.0.1 → @capacitor_preferences@7.0.2_@capacitor_core@7.4.4}/node_modules/@capacitor/preferences/dist/esm/index.js +1 -1
  12. package/dist/martyrs/node_modules/.pnpm/{@capacitor_preferences@7.0.0_@capacitor_core@7.0.1 → @capacitor_preferences@7.0.2_@capacitor_core@7.4.4}/node_modules/@capacitor/preferences/dist/esm/index.js.map +1 -1
  13. package/dist/martyrs/node_modules/.pnpm/{@capacitor_preferences@7.0.0_@capacitor_core@7.0.1 → @capacitor_preferences@7.0.2_@capacitor_core@7.4.4}/node_modules/@capacitor/preferences/dist/esm/web.js +1 -1
  14. package/dist/martyrs/node_modules/.pnpm/{@capacitor_preferences@7.0.0_@capacitor_core@7.0.1 → @capacitor_preferences@7.0.2_@capacitor_core@7.4.4}/node_modules/@capacitor/preferences/dist/esm/web.js.map +1 -1
  15. package/dist/{node_modules/.pnpm/@vue_server-renderer@3.5.13_vue@3.5.13_typescript@5.8.3_ → martyrs}/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.js +1 -1
  16. package/dist/martyrs/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.js.map +1 -0
  17. package/dist/martyrs/node_modules/@vue/shared/dist/shared.esm-bundler.js.map +1 -0
  18. package/dist/{node_modules/.pnpm/dayjs@1.11.13 → martyrs}/node_modules/dayjs/dayjs.min.js +1 -1
  19. package/dist/martyrs/node_modules/dayjs/dayjs.min.js.map +1 -0
  20. package/dist/{node_modules/.pnpm/dayjs@1.11.13 → martyrs}/node_modules/dayjs/plugin/weekOfYear.js +1 -1
  21. package/dist/martyrs/node_modules/dayjs/plugin/weekOfYear.js.map +1 -0
  22. package/dist/martyrs/node_modules/uuid/dist/esm-browser/regex.js +5 -0
  23. package/dist/martyrs/node_modules/uuid/dist/esm-browser/regex.js.map +1 -0
  24. package/dist/martyrs/node_modules/uuid/dist/esm-browser/rng.js +15 -0
  25. package/dist/martyrs/node_modules/uuid/dist/esm-browser/rng.js.map +1 -0
  26. package/dist/martyrs/node_modules/uuid/dist/esm-browser/stringify.js +17 -0
  27. package/dist/martyrs/node_modules/uuid/dist/esm-browser/stringify.js.map +1 -0
  28. package/dist/martyrs/node_modules/uuid/dist/esm-browser/v4.js +13 -0
  29. package/dist/martyrs/node_modules/uuid/dist/esm-browser/v4.js.map +1 -0
  30. package/dist/martyrs/node_modules/uuid/dist/esm-browser/validate.js +8 -0
  31. package/dist/martyrs/node_modules/uuid/dist/esm-browser/validate.js.map +1 -0
  32. package/dist/martyrs/src/components/Block/Block.vue.js +1 -1
  33. package/dist/martyrs/src/components/Block/Block.vue.js.map +1 -1
  34. package/dist/martyrs/src/components/BottomSheet/BottomSheet.vue.js +1 -1
  35. package/dist/martyrs/src/components/BottomSheet/BottomSheet.vue.js.map +1 -1
  36. package/dist/martyrs/src/components/Button/{Button.vue.js → Button.vue2.js} +2 -2
  37. package/dist/martyrs/src/components/Button/Button.vue2.js.map +1 -0
  38. package/dist/martyrs/src/components/Calendar/Calendar.vue2.js +6 -6
  39. package/dist/martyrs/src/components/Calendar/Calendar.vue2.js.map +1 -1
  40. package/dist/martyrs/src/components/Checkbox/Checkbox.vue.js +2 -2
  41. package/dist/martyrs/src/components/Checkbox/Checkbox.vue.js.map +1 -1
  42. package/dist/martyrs/src/components/Chips/Chips.vue.js +2 -2
  43. package/dist/martyrs/src/components/Countdown/Countdown.vue.js +5 -5
  44. package/dist/martyrs/src/components/Countdown/Countdown.vue.js.map +1 -1
  45. package/dist/martyrs/src/components/DatePicker/DatePicker.vue.js +4 -4
  46. package/dist/martyrs/src/components/DatePicker/DatePicker.vue.js.map +1 -1
  47. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.js → Dropdown.vue2.js} +2 -2
  48. package/dist/martyrs/src/components/Dropdown/Dropdown.vue2.js.map +1 -0
  49. package/dist/martyrs/src/components/EditImages/EditImages.vue2.js +1 -1
  50. package/dist/martyrs/src/components/EditImages/EditImages.vue2.js.map +1 -1
  51. package/dist/martyrs/src/components/Feed/Feed.vue.js +2 -2
  52. package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
  53. package/dist/martyrs/src/components/Field/{Field.vue2.js → Field.vue.js} +2 -2
  54. package/dist/martyrs/src/components/Field/Field.vue.js.map +1 -0
  55. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +4 -4
  56. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js.map +1 -1
  57. package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.js +1 -1
  58. package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.js.map +1 -1
  59. package/dist/martyrs/src/components/FieldTags/BlockTags.vue.js +1 -1
  60. package/dist/martyrs/src/components/FieldTags/BlockTags.vue.js.map +1 -1
  61. package/dist/martyrs/src/components/Loader/Loader.vue2.js +1 -1
  62. package/dist/martyrs/src/components/Loader/Loader.vue2.js.map +1 -1
  63. package/dist/martyrs/src/components/Menu/{Menu.vue.js → Menu.vue2.js} +2 -2
  64. package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +1 -0
  65. package/dist/martyrs/src/components/Menu/MenuItem.vue.js +2 -2
  66. package/dist/martyrs/src/components/Menu/MenuItem.vue.js.map +1 -1
  67. package/dist/martyrs/src/components/PhotoViewer/PhotoViewer.vue.js +2 -2
  68. package/dist/martyrs/src/components/PhotoViewer/PhotoViewer.vue.js.map +1 -1
  69. package/dist/martyrs/src/components/Radio/Radio.vue.js +1 -1
  70. package/dist/martyrs/src/components/Radio/Radio.vue.js.map +1 -1
  71. package/dist/martyrs/src/components/Select/{Select.vue2.js → Select.vue.js} +4 -4
  72. package/dist/martyrs/src/components/Select/Select.vue.js.map +1 -0
  73. package/dist/martyrs/src/components/SelectMulti/{SelectMulti.vue.js → SelectMulti.vue2.js} +2 -2
  74. package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue2.js.map +1 -0
  75. package/dist/martyrs/src/components/Table/Table.vue.js +3 -3
  76. package/dist/martyrs/src/components/Table/Table.vue.js.map +1 -1
  77. package/dist/martyrs/src/components/Text/Text.vue.js +1 -1
  78. package/dist/martyrs/src/components/Text/Text.vue.js.map +1 -1
  79. package/dist/martyrs/src/components/UploadImage/UploadImage.vue.js +3 -3
  80. package/dist/martyrs/src/components/UploadImage/UploadImage.vue.js.map +1 -1
  81. package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.js +3 -3
  82. package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.js.map +1 -1
  83. package/dist/martyrs/src/modules/auth/views/components/blocks/CardUser.vue.js +2 -2
  84. package/dist/martyrs/src/modules/auth/views/components/blocks/ProfileCard.vue.js +4 -4
  85. package/dist/martyrs/src/modules/auth/views/components/blocks/ProfileCard.vue.js.map +1 -1
  86. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js +1 -1
  87. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js.map +1 -1
  88. package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.js +1 -1
  89. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +4 -4
  90. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js.map +1 -1
  91. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +2 -2
  92. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +9 -9
  93. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js.map +1 -1
  94. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js +1 -1
  95. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js.map +1 -1
  96. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +2 -2
  97. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js.map +1 -1
  98. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +2 -2
  99. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +3 -3
  100. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js.map +1 -1
  101. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +5 -5
  102. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js.map +1 -1
  103. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +3 -3
  104. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js.map +1 -1
  105. package/dist/martyrs/src/modules/auth/views/components/pages/UserDashboard.vue.js +3 -3
  106. package/dist/martyrs/src/modules/auth/views/components/pages/UserDashboard.vue.js.map +1 -1
  107. package/dist/martyrs/src/modules/auth/views/components/sections/FeaturedUsers.vue.js +1 -1
  108. package/dist/martyrs/src/modules/auth/views/components/sections/FeaturedUsers.vue.js.map +1 -1
  109. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +9 -9
  110. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js.map +1 -1
  111. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.js +1 -1
  112. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.js.map +1 -1
  113. package/dist/martyrs/src/modules/auth/views/store/auth.js +1 -1
  114. package/dist/martyrs/src/modules/backoffice/components/pages/Dashboard.vue.js +4 -4
  115. package/dist/martyrs/src/modules/backoffice/components/pages/Dashboard.vue.js.map +1 -1
  116. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js +6 -6
  117. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js.map +1 -1
  118. package/dist/martyrs/src/modules/chats/components/blocks/ChatMessage.vue.js +1 -1
  119. package/dist/martyrs/src/modules/chats/components/blocks/ChatMessage.vue.js.map +1 -1
  120. package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.js +2 -2
  121. package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.js.map +1 -1
  122. package/dist/martyrs/src/modules/community/components/blocks/Activity.vue.js +7 -7
  123. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js +1 -1
  124. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js.map +1 -1
  125. package/dist/martyrs/src/modules/community/components/blocks/FooterBlogpost.vue.js +4 -4
  126. package/dist/martyrs/src/modules/community/components/blocks/FooterBlogpost.vue.js.map +1 -1
  127. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +11 -11
  128. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js.map +1 -1
  129. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +1 -1
  130. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +3 -3
  131. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js.map +1 -1
  132. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.js +2 -2
  133. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.js.map +1 -1
  134. package/dist/martyrs/src/modules/community/components/sections/Comment.vue.js +3 -3
  135. package/dist/martyrs/src/modules/community/components/sections/Comment.vue.js.map +1 -1
  136. package/dist/martyrs/src/modules/community/components/sections/Comments.vue.js +1 -1
  137. package/dist/martyrs/src/modules/constructor/components/elements/Audio.vue.js +1 -1
  138. package/dist/martyrs/src/modules/constructor/components/elements/Audio.vue.js.map +1 -1
  139. package/dist/martyrs/src/modules/constructor/components/elements/Card.vue.js +1 -1
  140. package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.js +2 -2
  141. package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.js.map +1 -1
  142. package/dist/martyrs/src/modules/constructor/components/elements/Textarea.vue2.js +1 -1
  143. package/dist/martyrs/src/modules/constructor/components/elements/Textarea.vue2.js.map +1 -1
  144. package/dist/martyrs/src/modules/constructor/components/elements/Video.vue.js +1 -1
  145. package/dist/martyrs/src/modules/constructor/components/elements/Video.vue.js.map +1 -1
  146. package/dist/martyrs/src/modules/constructor/components/sections/Constructor.vue.js +1 -1
  147. package/dist/martyrs/src/modules/core/views/classes/core.app.js +2 -1
  148. package/dist/martyrs/src/modules/core/views/classes/core.app.js.map +1 -1
  149. package/dist/martyrs/src/modules/core/views/components/blocks/BlockSearch.vue.js +1 -1
  150. package/dist/martyrs/src/modules/core/views/components/blocks/BlockSorting.vue.js +2 -2
  151. package/dist/martyrs/src/modules/core/views/components/blocks/BlockSorting.vue.js.map +1 -1
  152. package/dist/martyrs/src/modules/core/views/components/blocks/CardHeader.vue.js +9 -9
  153. package/dist/martyrs/src/modules/core/views/components/blocks/CardHeader.vue.js.map +1 -1
  154. package/dist/martyrs/src/modules/core/views/components/blocks/HelpCard.vue.js +2 -2
  155. package/dist/martyrs/src/modules/core/views/components/blocks/HelpCard.vue.js.map +1 -1
  156. package/dist/martyrs/src/modules/core/views/components/blocks/PopupAuth.vue.js +2 -2
  157. package/dist/martyrs/src/modules/core/views/components/blocks/PopupAuth.vue.js.map +1 -1
  158. package/dist/martyrs/src/modules/core/views/components/blocks/PopupDateSelector.vue.js +1 -1
  159. package/dist/martyrs/src/modules/core/views/components/elements/ButtonDate.vue.js +1 -1
  160. package/dist/martyrs/src/modules/core/views/components/elements/ButtonDate.vue.js.map +1 -1
  161. package/dist/martyrs/src/modules/core/views/components/elements/PhotoStack.vue.js +3 -3
  162. package/dist/martyrs/src/modules/core/views/components/layouts/App.vue.js +25 -5
  163. package/dist/martyrs/src/modules/core/views/components/layouts/App.vue.js.map +1 -1
  164. package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js +4 -4
  165. package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js.map +1 -1
  166. package/dist/martyrs/src/modules/core/views/components/partials/BottomNavigationBar.vue.js +11 -11
  167. package/dist/martyrs/src/modules/core/views/components/partials/BottomNavigationBar.vue.js.map +1 -1
  168. package/dist/martyrs/src/modules/core/views/components/partials/CitySelection.vue.js +1 -1
  169. package/dist/martyrs/src/modules/core/views/components/partials/CitySelection.vue.js.map +1 -1
  170. package/dist/martyrs/src/modules/core/views/components/partials/Footer.vue.js +16 -16
  171. package/dist/martyrs/src/modules/core/views/components/partials/Footer.vue.js.map +1 -1
  172. package/dist/martyrs/src/modules/core/views/components/partials/Header.vue.js +9 -9
  173. package/dist/martyrs/src/modules/core/views/components/partials/Header.vue.js.map +1 -1
  174. package/dist/martyrs/src/modules/core/views/components/partials/LocationSelection.vue.js +1 -1
  175. package/dist/martyrs/src/modules/core/views/components/partials/LocationSelection.vue.js.map +1 -1
  176. package/dist/martyrs/src/modules/core/views/components/partials/Navigation.vue.js +24 -24
  177. package/dist/martyrs/src/modules/core/views/components/partials/Navigation.vue.js.map +1 -1
  178. package/dist/martyrs/src/modules/core/views/components/partials/NavigationBar.vue.js +4 -4
  179. package/dist/martyrs/src/modules/core/views/components/partials/NavigationBar.vue.js.map +1 -1
  180. package/dist/martyrs/src/modules/core/views/components/partials/Sidebar.vue.js +7 -7
  181. package/dist/martyrs/src/modules/core/views/components/partials/Sidebar.vue.js.map +1 -1
  182. package/dist/martyrs/src/modules/core/views/components/sections/SectionPageTitle.vue.js +2 -2
  183. package/dist/martyrs/src/modules/core/views/components/sections/SectionPageTitle.vue.js.map +1 -1
  184. package/dist/martyrs/src/modules/core/views/components/sections/Walkthrough.vue.js +1 -1
  185. package/dist/martyrs/src/modules/core/views/components/sections/filters/FilterCheckbox.vue2.js +2 -2
  186. package/dist/martyrs/src/modules/core/views/components/sections/filters/FilterCheckbox.vue2.js.map +1 -1
  187. package/dist/martyrs/src/modules/core/views/components/sections/filters/FilterDateRange.vue2.js +3 -3
  188. package/dist/martyrs/src/modules/core/views/components/sections/filters/FilterDateRange.vue2.js.map +1 -1
  189. package/dist/martyrs/src/modules/core/views/components/sections/filters/FilterRange.vue.js +3 -3
  190. package/dist/martyrs/src/modules/core/views/components/sections/filters/FilterRange.vue.js.map +1 -1
  191. package/dist/martyrs/src/modules/core/views/store/core.store.js +29 -47
  192. package/dist/martyrs/src/modules/core/views/store/core.store.js.map +1 -1
  193. package/dist/martyrs/src/modules/core/views/utils/vue-app-renderer.js +21 -2
  194. package/dist/martyrs/src/modules/core/views/utils/vue-app-renderer.js.map +1 -1
  195. package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js +5 -5
  196. package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js.map +1 -1
  197. package/dist/martyrs/src/modules/events/components/blocks/CardEventShort.vue.js +3 -3
  198. package/dist/martyrs/src/modules/events/components/blocks/CardEventShort.vue.js.map +1 -1
  199. package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.js +1 -1
  200. package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.js +1 -1
  201. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +4 -4
  202. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js.map +1 -1
  203. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +21 -21
  204. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js.map +1 -1
  205. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +7 -7
  206. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js.map +1 -1
  207. package/dist/martyrs/src/modules/events/components/pages/Events.vue.js +2 -2
  208. package/dist/martyrs/src/modules/events/components/pages/Events.vue.js.map +1 -1
  209. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js +2 -2
  210. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js.map +1 -1
  211. package/dist/martyrs/src/modules/events/components/sections/EditTickets.vue.js +7 -7
  212. package/dist/martyrs/src/modules/events/components/sections/EditTickets.vue.js.map +1 -1
  213. package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.js +2 -2
  214. package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.js.map +1 -1
  215. package/dist/martyrs/src/modules/events/components/sections/List.vue.js +1 -1
  216. package/dist/martyrs/src/modules/events/components/sections/List.vue.js.map +1 -1
  217. package/dist/martyrs/src/modules/events/components/sections/SelectDate.vue.js +1 -1
  218. package/dist/martyrs/src/modules/events/components/sections/SelectDate.vue.js.map +1 -1
  219. package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.js +1 -1
  220. package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.js.map +1 -1
  221. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +5 -5
  222. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js.map +1 -1
  223. package/dist/martyrs/src/modules/icons/components/IconSearchPopup.vue.js +4 -4
  224. package/dist/martyrs/src/modules/icons/components/IconSearchPopup.vue.js.map +1 -1
  225. package/dist/martyrs/src/modules/icons/navigation/IconSort.vue.js +4 -4
  226. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js +7 -7
  227. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js.map +1 -1
  228. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +6 -6
  229. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js.map +1 -1
  230. package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.js +1 -1
  231. package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js +3 -3
  232. package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js.map +1 -1
  233. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +4 -4
  234. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js.map +1 -1
  235. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js +11 -11
  236. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js.map +1 -1
  237. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +9 -9
  238. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js.map +1 -1
  239. package/dist/martyrs/src/modules/landing/components/sections/SectionEarn.vue.js +5 -5
  240. package/dist/martyrs/src/modules/landing/components/sections/SectionEarn.vue.js.map +1 -1
  241. package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.js +2 -2
  242. package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.js.map +1 -1
  243. package/dist/martyrs/src/modules/landing/components/sections/SectionHeroToken.vue.js +1 -1
  244. package/dist/martyrs/src/modules/landing/components/sections/SectionHeroToken.vue.js.map +1 -1
  245. package/dist/martyrs/src/modules/landing/components/sections/SectionJoinUs.vue.js +2 -2
  246. package/dist/martyrs/src/modules/landing/components/sections/SectionJoinUs.vue.js.map +1 -1
  247. package/dist/martyrs/src/modules/landing/components/sections/SectionMobileApp.vue.js +3 -3
  248. package/dist/martyrs/src/modules/landing/components/sections/SectionMobileApp.vue.js.map +1 -1
  249. package/dist/martyrs/src/modules/landing/components/sections/SectionOverview.vue.js +2 -2
  250. package/dist/martyrs/src/modules/landing/components/sections/SectionOverview.vue.js.map +1 -1
  251. package/dist/martyrs/src/modules/landing/components/sections/SectionRoadmap.vue.js +3 -3
  252. package/dist/martyrs/src/modules/landing/components/sections/SectionRoadmap.vue.js.map +1 -1
  253. package/dist/martyrs/src/modules/marketplace/marketplace.client.js +3 -3
  254. package/dist/martyrs/src/modules/marketplace/marketplace.client.js.map +1 -1
  255. package/dist/martyrs/src/modules/marketplace/views/components/pages/Marketplace.vue.js +6 -6
  256. package/dist/martyrs/src/modules/marketplace/views/components/pages/Marketplace.vue.js.map +1 -1
  257. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js +5 -3
  258. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js.map +1 -1
  259. package/dist/martyrs/src/modules/music/components/blocks/ActionButtons.vue.js +4 -4
  260. package/dist/martyrs/src/modules/music/components/blocks/ActionButtons.vue.js.map +1 -1
  261. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +6 -6
  262. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js.map +1 -1
  263. package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.js +4 -4
  264. package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.js.map +1 -1
  265. package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.js +4 -4
  266. package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.js.map +1 -1
  267. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js +6 -6
  268. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js.map +1 -1
  269. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js +6 -6
  270. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js.map +1 -1
  271. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +11 -11
  272. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js.map +1 -1
  273. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +7 -7
  274. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js.map +1 -1
  275. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +9 -9
  276. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js.map +1 -1
  277. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js +3 -3
  278. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js.map +1 -1
  279. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +16 -16
  280. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js.map +1 -1
  281. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +24 -24
  282. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js.map +1 -1
  283. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +8 -8
  284. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js.map +1 -1
  285. package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.js +10 -13
  286. package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.js.map +1 -1
  287. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +10 -10
  288. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js.map +1 -1
  289. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +27 -27
  290. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js.map +1 -1
  291. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +17 -17
  292. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js.map +1 -1
  293. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +27 -27
  294. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js.map +1 -1
  295. package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.js +1 -1
  296. package/dist/martyrs/src/modules/music/components/player/FullscreenPlayer.vue.js +8 -8
  297. package/dist/martyrs/src/modules/music/components/player/FullscreenPlayer.vue.js.map +1 -1
  298. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js +1 -1
  299. package/dist/martyrs/src/modules/music/components/player/PlayerControls.vue.js +1 -1
  300. package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.js +1 -1
  301. package/dist/martyrs/src/modules/music/music.client.js +6 -6
  302. package/dist/martyrs/src/modules/music/music.client.js.map +1 -1
  303. package/dist/martyrs/src/modules/notifications/components/blocks/NotificationItem.vue.js +2 -2
  304. package/dist/martyrs/src/modules/notifications/components/blocks/NotificationItem.vue.js.map +1 -1
  305. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js +1 -1
  306. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js.map +1 -1
  307. package/dist/martyrs/src/modules/notifications/notifications.client.js +2 -2
  308. package/dist/martyrs/src/modules/notifications/store/notifications.store.js +1 -1
  309. package/dist/martyrs/src/modules/orders/components/blocks/CardApplication.vue.js +2 -2
  310. package/dist/martyrs/src/modules/orders/components/blocks/CardCustomer.vue.js +2 -2
  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 +5 -5
  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 +9 -9
  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 +4 -4
  318. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.js.map +1 -1
  319. package/dist/martyrs/src/modules/orders/components/blocks/StatusHistory.vue.js +2 -2
  320. package/dist/martyrs/src/modules/orders/components/blocks/StatusHistory.vue.js.map +1 -1
  321. package/dist/martyrs/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue.js +1 -1
  322. package/dist/martyrs/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue.js.map +1 -1
  323. package/dist/martyrs/src/modules/orders/components/elements/PriceTotal.vue.js +3 -3
  324. package/dist/martyrs/src/modules/orders/components/elements/PriceTotal.vue.js.map +1 -1
  325. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +5 -5
  326. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js.map +1 -1
  327. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +6 -6
  328. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js.map +1 -1
  329. package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js +1 -1
  330. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +18 -18
  331. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js.map +1 -1
  332. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +3 -3
  333. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js.map +1 -1
  334. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +6 -6
  335. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js.map +1 -1
  336. package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.js +2 -2
  337. package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.js.map +1 -1
  338. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js +4 -4
  339. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js.map +1 -1
  340. package/dist/martyrs/src/modules/orders/components/sections/AskToLogin.vue.js +1 -1
  341. package/dist/martyrs/src/modules/orders/components/sections/AskToLogin.vue.js.map +1 -1
  342. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js +4 -4
  343. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js.map +1 -1
  344. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +2 -2
  345. package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.js +1 -1
  346. package/dist/martyrs/src/modules/orders/components/sections/Succes.vue.js +3 -3
  347. package/dist/martyrs/src/modules/orders/store/shopcart.js +1 -1
  348. package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.js +2 -2
  349. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +3 -3
  350. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js.map +1 -1
  351. package/dist/martyrs/src/modules/organizations/components/blocks/Contacts.vue.js +8 -8
  352. package/dist/martyrs/src/modules/organizations/components/blocks/Contacts.vue.js.map +1 -1
  353. package/dist/martyrs/src/modules/organizations/components/blocks/Rating.vue.js +1 -1
  354. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +1 -1
  355. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js +4 -4
  356. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js.map +1 -1
  357. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js +3 -3
  358. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js.map +1 -1
  359. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js +3 -3
  360. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js.map +1 -1
  361. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js +2 -2
  362. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js.map +1 -1
  363. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +1 -1
  364. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js.map +1 -1
  365. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +6 -6
  366. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js.map +1 -1
  367. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +2 -2
  368. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +4 -4
  369. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js +2 -2
  370. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js.map +1 -1
  371. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +5 -5
  372. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js.map +1 -1
  373. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +4 -4
  374. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js.map +1 -1
  375. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +2 -2
  376. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +4 -4
  377. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js.map +1 -1
  378. package/dist/martyrs/src/modules/pages/views/components/pages/Page.vue.js +5 -5
  379. package/dist/martyrs/src/modules/pages/views/components/pages/Page.vue.js.map +1 -1
  380. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +2 -2
  381. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +1 -1
  382. package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.js +1 -1
  383. package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.js.map +1 -1
  384. package/dist/martyrs/src/modules/products/components/blocks/CardPosition.vue.js +4 -4
  385. package/dist/martyrs/src/modules/products/components/blocks/CardPosition.vue.js.map +1 -1
  386. package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.js +3 -3
  387. package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.js.map +1 -1
  388. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.js +4 -4
  389. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.js.map +1 -1
  390. package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.js +3 -3
  391. package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.js.map +1 -1
  392. package/dist/martyrs/src/modules/products/components/blocks/ProductVariants.vue.js +2 -2
  393. package/dist/martyrs/src/modules/products/components/blocks/ProductVariants.vue.js.map +1 -1
  394. package/dist/martyrs/src/modules/products/components/elements/Image360.vue.js +4 -4
  395. package/dist/martyrs/src/modules/products/components/elements/Image360.vue.js.map +1 -1
  396. package/dist/martyrs/src/modules/products/components/elements/Price.vue.js +2 -2
  397. package/dist/martyrs/src/modules/products/components/elements/Price.vue.js.map +1 -1
  398. package/dist/martyrs/src/modules/products/components/elements/QuantitySelector.vue.js +3 -3
  399. package/dist/martyrs/src/modules/products/components/elements/QuantitySelector.vue.js.map +1 -1
  400. package/dist/martyrs/src/modules/products/components/elements/THC.vue.js +1 -1
  401. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +2 -2
  402. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js.map +1 -1
  403. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +5 -5
  404. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js.map +1 -1
  405. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +7 -7
  406. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js.map +1 -1
  407. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +10 -10
  408. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js.map +1 -1
  409. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +12 -12
  410. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js.map +1 -1
  411. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +6 -6
  412. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js.map +1 -1
  413. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +9 -9
  414. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js.map +1 -1
  415. package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.js +1 -1
  416. package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.js.map +1 -1
  417. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +11 -11
  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 +3 -3
  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 +3 -3
  422. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js.map +1 -1
  423. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +3 -3
  424. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js.map +1 -1
  425. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +7 -7
  426. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js.map +1 -1
  427. package/dist/martyrs/src/modules/rents/views/components/blocks/CardRent.vue.js +1 -1
  428. package/dist/martyrs/src/modules/rents/views/components/blocks/CardRent.vue.js.map +1 -1
  429. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/DateLabel.vue.js +1 -1
  430. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttBar.vue.js +2 -2
  431. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttBar.vue.js.map +1 -1
  432. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttChart.vue.js +8 -8
  433. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttChart.vue.js.map +1 -1
  434. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttHeaderCell.vue.js +1 -1
  435. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttHeaderCell.vue.js.map +1 -1
  436. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +2 -2
  437. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js +1 -1
  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 +8 -8
  440. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js.map +1 -1
  441. package/dist/martyrs/src/modules/reports/components/pages/BackofficeReports.vue.js +3 -3
  442. package/dist/martyrs/src/modules/reports/components/pages/BackofficeReports.vue.js.map +1 -1
  443. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +3 -3
  444. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js.map +1 -1
  445. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js +5 -5
  446. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js.map +1 -1
  447. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js +4 -4
  448. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js.map +1 -1
  449. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +4 -4
  450. package/dist/martyrs/src/modules/spots/components/layouts/Spots.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 +6 -6
  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 +5 -5
  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 +3 -3
  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/wallet/views/components/blocks/CardBalanceReplenished.vue.js +5 -5
  461. package/dist/martyrs/src/modules/wallet/views/components/blocks/CardBalanceReplenished.vue.js.map +1 -1
  462. package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.js +6 -6
  463. package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.js.map +1 -1
  464. package/dist/martyrs/src/modules/wallet/views/components/blocks/CashDeposit.vue.js +2 -2
  465. package/dist/martyrs/src/modules/wallet/views/components/blocks/CashDeposit.vue.js.map +1 -1
  466. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +6 -6
  467. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js.map +1 -1
  468. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDepositProcessing.vue.js +12 -12
  469. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDepositProcessing.vue.js.map +1 -1
  470. package/dist/martyrs/src/modules/wallet/views/components/elements/ConnectMetamask.vue.js +4 -4
  471. package/dist/martyrs/src/modules/wallet/views/components/elements/ConnectMetamask.vue.js.map +1 -1
  472. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +25 -25
  473. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js.map +1 -1
  474. package/dist/martyrs.css +1 -1
  475. package/dist/martyrs.es.js +1 -1
  476. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/utils.js +1 -1
  477. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/utils.js +1 -1
  478. package/dist/style.css +194 -202
  479. package/dist/{web-CH5wzMHy.js → web-BqTV9va1.js} +1 -1
  480. package/package.json +6 -8
  481. package/src/builder/modes/ssr.prod.js +1 -0
  482. package/src/builder/modes/ssr.rspack.dev.js +82 -84
  483. package/src/builder/rspack/rspack.config.base.js +7 -0
  484. package/src/builder/rspack/rspack.config.ssr.client.js +19 -44
  485. package/src/builder/templates/page.js +21 -0
  486. package/src/components/Block/Block.vue +1 -1
  487. package/src/components/BottomSheet/BottomSheet.vue +1 -1
  488. package/src/components/Calendar/Calendar.vue +5 -5
  489. package/src/components/Checkbox/Checkbox.vue +2 -2
  490. package/src/components/Chips/Chips.vue +2 -2
  491. package/src/components/Completion/Completion.vue +2 -2
  492. package/src/components/Countdown/Countdown.vue +5 -5
  493. package/src/components/DatePicker/DatePicker.vue +4 -4
  494. package/src/components/EditImages/EditImages.vue +1 -1
  495. package/src/components/Feed/Feed.old.vue +1 -1
  496. package/src/components/Feed/Feed.vue +1 -1
  497. package/src/components/FieldBig/FieldBig.vue +2 -2
  498. package/src/components/FieldPhone/FieldPhone.vue +1 -1
  499. package/src/components/FieldTags/BlockTags.vue +1 -1
  500. package/src/components/Loader/Loader.vue +1 -1
  501. package/src/components/Menu/MenuItem.vue +2 -2
  502. package/src/components/PhotoViewer/PhotoViewer.vue +1 -1
  503. package/src/components/Radio/Radio.vue +1 -1
  504. package/src/components/Select/Select.vue +1 -1
  505. package/src/components/Table/Table.vue +2 -2
  506. package/src/components/Text/Text.vue +1 -1
  507. package/src/components/UploadImage/UploadImage.vue +2 -2
  508. package/src/components/UploadImageMultiple/UploadImageMultiple.vue +3 -3
  509. package/src/configurator/components/layouts/layoutConfigurator.vue +1 -1
  510. package/src/configurator/components/pages/Styles.vue +2 -2
  511. package/src/jit/.claude/settings.local.json +10 -0
  512. package/src/jit/CLAUDE.md +387 -0
  513. package/src/jit/core.js +274 -0
  514. package/src/jit/extractor.js +140 -0
  515. package/src/jit/index.js +19 -0
  516. package/src/jit/loader.js +46 -0
  517. package/src/jit/plugin.js +209 -0
  518. package/src/jit/rules.js +474 -0
  519. package/src/jit/variants.js +128 -0
  520. package/src/modules/auth/views/components/blocks/CardUser.vue +2 -2
  521. package/src/modules/auth/views/components/blocks/ProfileCard.vue +4 -4
  522. package/src/modules/auth/views/components/layouts/Auth.vue +1 -1
  523. package/src/modules/auth/views/components/pages/EnterPassword.vue +2 -2
  524. package/src/modules/auth/views/components/pages/Profile.vue +5 -5
  525. package/src/modules/auth/views/components/pages/ProfileBlogposts.vue +1 -1
  526. package/src/modules/auth/views/components/pages/ProfileEditAccount.vue +2 -2
  527. package/src/modules/auth/views/components/pages/ResetPassword.vue +1 -1
  528. package/src/modules/auth/views/components/pages/SignIn.vue +3 -3
  529. package/src/modules/auth/views/components/pages/SignUp.vue +1 -1
  530. package/src/modules/auth/views/components/pages/UserDashboard.vue +3 -3
  531. package/src/modules/auth/views/components/sections/FeaturedUsers.vue +1 -1
  532. package/src/modules/auth/views/components/sections/ProfileCompletion.vue +2 -2
  533. package/src/modules/auth/views/components/sections/ProfileEditCredentials.vue +7 -7
  534. package/src/modules/auth/views/components/sections/SliderFeatures.vue +1 -1
  535. package/src/modules/backoffice/components/admin/Backcalls.vue +1 -1
  536. package/src/modules/backoffice/components/admin/FastOrders.vue +1 -1
  537. package/src/modules/backoffice/components/admin/ProductEdit.vue +2 -2
  538. package/src/modules/backoffice/components/admin/UserEdit.vue +1 -1
  539. package/src/modules/backoffice/components/admin/Users.vue +2 -2
  540. package/src/modules/backoffice/components/pages/Dashboard.vue +4 -4
  541. package/src/modules/backoffice/components/partials/Sidebar.vue +5 -5
  542. package/src/modules/chats/components/blocks/ChatMessage.vue +1 -1
  543. package/src/modules/chats/components/sections/ChatWindow.vue +2 -2
  544. package/src/modules/community/components/blocks/Activity.vue +7 -7
  545. package/src/modules/community/components/blocks/CardBlogpost.vue +1 -1
  546. package/src/modules/community/components/blocks/FooterBlogpost.vue +4 -4
  547. package/src/modules/community/components/layouts/Community.vue +10 -10
  548. package/src/modules/community/components/pages/CreateBlogPost.vue +1 -1
  549. package/src/modules/community/components/pages/Posts.vue +2 -2
  550. package/src/modules/community/components/sections/Comment.vue +2 -2
  551. package/src/modules/constructor/components/elements/Audio.vue +1 -1
  552. package/src/modules/constructor/components/elements/Caption.vue +1 -1
  553. package/src/modules/constructor/components/elements/Embed.vue +1 -1
  554. package/src/modules/constructor/components/elements/Textarea.vue +1 -1
  555. package/src/modules/constructor/components/elements/Video.vue +1 -1
  556. package/src/modules/core/views/classes/core.app.js +2 -1
  557. package/src/modules/core/views/components/blocks/BlockSorting.vue +2 -2
  558. package/src/modules/core/views/components/blocks/CardFooter.vue +4 -4
  559. package/src/modules/core/views/components/blocks/CardHeader.vue +7 -7
  560. package/src/modules/core/views/components/blocks/HelpCard.vue +1 -1
  561. package/src/modules/core/views/components/blocks/PopupAuth.vue +1 -1
  562. package/src/modules/core/views/components/elements/ButtonDate.vue +1 -1
  563. package/src/modules/core/views/components/elements/PhotoStack.vue +3 -3
  564. package/src/modules/core/views/components/layouts/App.vue +28 -4
  565. package/src/modules/core/views/components/layouts/Client.vue +4 -4
  566. package/src/modules/core/views/components/partials/BottomNavigationBar.vue +15 -15
  567. package/src/modules/core/views/components/partials/CitySelection.vue +1 -1
  568. package/src/modules/core/views/components/partials/Footer.centered.vue +17 -17
  569. package/src/modules/core/views/components/partials/Footer.vue +18 -18
  570. package/src/modules/core/views/components/partials/Header.vue +10 -11
  571. package/src/modules/core/views/components/partials/LocationSelection.vue +1 -1
  572. package/src/modules/core/views/components/partials/Navigation.vue +20 -19
  573. package/src/modules/core/views/components/partials/NavigationBar.vue +3 -3
  574. package/src/modules/core/views/components/partials/Sidebar.vue +6 -6
  575. package/src/modules/core/views/components/sections/SectionPageTitle.vue +2 -2
  576. package/src/modules/core/views/components/sections/filters/FilterCheckbox.vue +1 -1
  577. package/src/modules/core/views/components/sections/filters/FilterDateRange.vue +2 -2
  578. package/src/modules/core/views/components/sections/filters/FilterPrice.vue +2 -2
  579. package/src/modules/core/views/components/sections/filters/FilterRange.vue +2 -2
  580. package/src/modules/core/views/store/core.store.js +36 -60
  581. package/src/modules/core/views/utils/vue-app-renderer.js +31 -1
  582. package/src/modules/events/components/blocks/CardEvent.vue +6 -6
  583. package/src/modules/events/components/blocks/CardEventShort.vue +3 -3
  584. package/src/modules/events/components/pages/EditEvent.vue +1 -1
  585. package/src/modules/events/components/pages/EditEventTickets.vue +18 -18
  586. package/src/modules/events/components/pages/Event.vue +5 -5
  587. package/src/modules/events/components/pages/Events.vue +2 -2
  588. package/src/modules/events/components/pages/EventsBackoffice.vue +2 -2
  589. package/src/modules/events/components/sections/EditTickets.vue +5 -5
  590. package/src/modules/events/components/sections/EventsHot.vue +2 -2
  591. package/src/modules/events/components/sections/List.vue +1 -1
  592. package/src/modules/events/components/sections/SelectDate.vue +1 -1
  593. package/src/modules/gallery/components/pages/Gallery.vue +1 -1
  594. package/src/modules/gallery/components/sections/BackofficeGallery.vue +1 -1
  595. package/src/modules/governance/reactcode/src/components/CreateInitiativeForm.tsx +14 -14
  596. package/src/modules/governance/reactcode/src/components/CreateMilestoneForm.tsx +13 -13
  597. package/src/modules/governance/reactcode/src/components/EmptyState.tsx +2 -2
  598. package/src/modules/governance/reactcode/src/components/InitiativeCard.tsx +1 -1
  599. package/src/modules/governance/reactcode/src/components/LinkedEntityCard.tsx +1 -1
  600. package/src/modules/governance/reactcode/src/components/MilestoneCard.tsx +2 -2
  601. package/src/modules/governance/reactcode/src/components/ProductRepositories.tsx +6 -6
  602. package/src/modules/governance/reactcode/src/components/ProductSummary.tsx +18 -18
  603. package/src/modules/governance/reactcode/src/components/ProductTeam.tsx +7 -7
  604. package/src/modules/governance/reactcode/src/components/ProposeTaskForm.tsx +9 -9
  605. package/src/modules/governance/reactcode/src/components/TaskAssignForm.tsx +4 -4
  606. package/src/modules/governance/reactcode/src/components/TaskCard.tsx +1 -1
  607. package/src/modules/governance/reactcode/src/components/TaskStatusBadge.tsx +1 -1
  608. package/src/modules/governance/reactcode/src/components/VoteForm.tsx +6 -6
  609. package/src/modules/governance/reactcode/src/components/VotingCard.tsx +2 -2
  610. package/src/modules/governance/reactcode/src/components/VotingResults.tsx +15 -15
  611. package/src/modules/governance/reactcode/src/pages/InitiativeDetailPage.tsx +41 -41
  612. package/src/modules/governance/reactcode/src/pages/InitiativeMilestonesPage.tsx +8 -8
  613. package/src/modules/governance/reactcode/src/pages/InitiativesListPage.tsx +6 -6
  614. package/src/modules/governance/reactcode/src/pages/MilestoneDetailPage.tsx +9 -9
  615. package/src/modules/governance/reactcode/src/pages/RoadmapPage.tsx +14 -14
  616. package/src/modules/governance/reactcode/src/pages/TaskDetailPage.tsx +44 -44
  617. package/src/modules/governance/reactcode/src/pages/VotingDetailPage.tsx +8 -8
  618. package/src/modules/governance/reactcode/src/pages/VotingsListPage.tsx +3 -3
  619. package/src/modules/governance/reactcode-2/App.tsx +28 -0
  620. package/src/modules/governance/reactcode-2/README.md +20 -0
  621. package/src/modules/governance/reactcode-2/components/Charts.tsx +58 -0
  622. package/src/modules/governance/reactcode-2/components/Layout.tsx +457 -0
  623. package/src/modules/governance/reactcode-2/components/TaskPage.tsx +325 -0
  624. package/src/modules/governance/reactcode-2/components/VoteBadge.tsx +27 -0
  625. package/src/modules/governance/reactcode-2/components/VotingsFeedPage.tsx +328 -0
  626. package/src/modules/governance/reactcode-2/constants.ts +154 -0
  627. package/src/modules/governance/reactcode-2/index.html +70 -0
  628. package/src/modules/governance/reactcode-2/index.tsx +15 -0
  629. package/src/modules/governance/reactcode-2/metadata.json +5 -0
  630. package/src/modules/governance/reactcode-2/package.json +23 -0
  631. package/src/modules/governance/reactcode-2/pnpm-lock.yaml +1410 -0
  632. package/src/modules/governance/reactcode-2/tsconfig.json +29 -0
  633. package/src/modules/governance/reactcode-2/types.ts +48 -0
  634. package/src/modules/governance/reactcode-2/vite.config.ts +23 -0
  635. package/src/modules/governance/views/components/blocks/CardInitiativeItem.vue +10 -10
  636. package/src/modules/governance/views/components/blocks/CardMilestoneItem.vue +15 -15
  637. package/src/modules/governance/views/components/blocks/CardTaskItem.vue +9 -9
  638. package/src/modules/governance/views/components/blocks/CardVotingItem.vue +11 -11
  639. package/src/modules/governance/views/components/layouts/Governance.vue +1 -1
  640. package/src/modules/governance/views/components/pages/Governance.vue +3 -3
  641. package/src/modules/governance/views/components/pages/Initiative.vue +112 -112
  642. package/src/modules/governance/views/components/pages/InitiativeMilestones.vue +31 -31
  643. package/src/modules/governance/views/components/pages/Initiatives.vue +20 -22
  644. package/src/modules/governance/views/components/pages/Milestone.vue +25 -25
  645. package/src/modules/governance/views/components/pages/Roadmap.vue +47 -47
  646. package/src/modules/governance/views/components/pages/Task.vue +106 -106
  647. package/src/modules/governance/views/components/pages/Tasks.vue +16 -16
  648. package/src/modules/governance/views/components/pages/Voting.vue +23 -23
  649. package/src/modules/governance/views/components/pages/Votings.vue +7 -7
  650. package/src/modules/governance/views/components/partials/EmptyState.vue +3 -3
  651. package/src/modules/governance/views/components/partials/LinkedEntityCard.vue +11 -11
  652. package/src/modules/governance/views/components/partials/TaskStatusBadge.vue +4 -4
  653. package/src/modules/governance/views/components/partials/VoteForm.vue +14 -14
  654. package/src/modules/governance/views/components/partials/VotingResults.vue +22 -22
  655. package/src/modules/icons/components/IconSearchPopup.vue +3 -3
  656. package/src/modules/icons/entities/IconCash.vue +23 -0
  657. package/src/modules/icons/navigation/IconSort.vue +4 -4
  658. package/src/modules/icons/pages/IconsPage.vue +7 -7
  659. package/src/modules/inventory/components/forms/AdjustmentForm.vue +3 -3
  660. package/src/modules/inventory/components/forms/HistoryView.vue +1 -1
  661. package/src/modules/inventory/components/forms/StockAlertsForm.vue +1 -1
  662. package/src/modules/inventory/components/pages/Inventory.vue +10 -10
  663. package/src/modules/inventory/components/pages/InventoryEdit.vue +6 -6
  664. package/src/modules/landing/components/blocks/MapBlock.vue +2 -2
  665. package/src/modules/landing/components/sections/Examples.vue +1 -1
  666. package/src/modules/landing/components/sections/InstagramSection.vue +1 -1
  667. package/src/modules/landing/components/sections/SectionEarn.vue +4 -4
  668. package/src/modules/landing/components/sections/SectionFeature.vue +1 -1
  669. package/src/modules/landing/components/sections/SectionFocus.vue +2 -2
  670. package/src/modules/landing/components/sections/SectionGuide.vue +2 -2
  671. package/src/modules/landing/components/sections/SectionHeroToken.vue +1 -1
  672. package/src/modules/landing/components/sections/SectionHeroVideo.vue +2 -2
  673. package/src/modules/landing/components/sections/SectionJoinUs.vue +2 -2
  674. package/src/modules/landing/components/sections/SectionMobileApp.vue +3 -3
  675. package/src/modules/landing/components/sections/SectionOverview.vue +2 -2
  676. package/src/modules/landing/components/sections/SectionRoadmap.vue +2 -2
  677. package/src/modules/marketplace/views/components/layouts/Marketplace.vue +8 -8
  678. package/src/modules/marketplace/views/components/pages/Marketplace.vue +5 -5
  679. package/src/modules/marketplace/views/components/sections/SectionMenu.vue +3 -3
  680. package/src/modules/music/components/SidebarMusic.vue +11 -11
  681. package/src/modules/music/components/blocks/ActionButtons.vue +2 -2
  682. package/src/modules/music/components/cards/AlbumCard.vue +4 -4
  683. package/src/modules/music/components/cards/ArtistCard.vue +3 -8
  684. package/src/modules/music/components/cards/ArtistCardSmall.vue +2 -2
  685. package/src/modules/music/components/cards/PlaylistCard.vue +4 -4
  686. package/src/modules/music/components/cards/TrackListCard.vue +5 -5
  687. package/src/modules/music/components/forms/AlbumForm.vue +8 -8
  688. package/src/modules/music/components/forms/ArtistForm.vue +4 -4
  689. package/src/modules/music/components/forms/PlaylistForm.vue +7 -7
  690. package/src/modules/music/components/forms/SearchForm.vue +1 -1
  691. package/src/modules/music/components/forms/TrackForm.vue +13 -13
  692. package/src/modules/music/components/pages/Album.vue +22 -22
  693. package/src/modules/music/components/pages/Artist.vue +7 -7
  694. package/src/modules/music/components/pages/MusicHome.vue +13 -18
  695. package/src/modules/music/components/pages/MusicLibrary.vue +9 -9
  696. package/src/modules/music/components/pages/Playlist.vue +25 -25
  697. package/src/modules/music/components/pages/SearchResults.vue +15 -15
  698. package/src/modules/music/components/pages/Track.vue +25 -25
  699. package/src/modules/music/components/player/FullscreenPlayer.vue +5 -5
  700. package/src/modules/notifications/components/blocks/NotificationItem.vue +1 -1
  701. package/src/modules/notifications/components/elements/NotificationBadge.vue +1 -1
  702. package/src/modules/orders/components/blocks/CardApplication.vue +1 -1
  703. package/src/modules/orders/components/blocks/CardCustomer.vue +1 -1
  704. package/src/modules/orders/components/blocks/CardOrder.vue +9 -9
  705. package/src/modules/orders/components/blocks/CardOrderBackoffice.vue +5 -5
  706. package/src/modules/orders/components/blocks/CardOrderItem.vue +9 -9
  707. package/src/modules/orders/components/blocks/CardOrderUser.vue +3 -3
  708. package/src/modules/orders/components/blocks/CardOrderVar1.vue +4 -4
  709. package/src/modules/orders/components/blocks/StatusHistory.vue +3 -3
  710. package/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue +1 -1
  711. package/src/modules/orders/components/elements/PriceTotal.vue +3 -3
  712. package/src/modules/orders/components/forms/FormApplicationDetails.vue +2 -2
  713. package/src/modules/orders/components/forms/FormCustomerDetails.vue +3 -3
  714. package/src/modules/orders/components/pages/Favorites.vue +1 -1
  715. package/src/modules/orders/components/pages/OrderBackoffice.vue +15 -15
  716. package/src/modules/orders/components/pages/OrderCreate.vue +2 -2
  717. package/src/modules/orders/components/pages/OrderCreateBackoffice.vue +4 -4
  718. package/src/modules/orders/components/pages/Orders_refact.vue +3 -3
  719. package/src/modules/orders/components/partials/ShopCart.vue +2 -2
  720. package/src/modules/orders/components/sections/ApplicationDetails.vue +2 -2
  721. package/src/modules/orders/components/sections/AskToLogin.vue +1 -1
  722. package/src/modules/orders/components/sections/CustomerDetails.vue +2 -2
  723. package/src/modules/orders/components/sections/Succes.vue +4 -4
  724. package/src/modules/organizations/components/blocks/CardDepartment.vue +1 -1
  725. package/src/modules/organizations/components/blocks/CardOrganization.vue +4 -4
  726. package/src/modules/organizations/components/blocks/Contacts.vue +8 -8
  727. package/src/modules/organizations/components/blocks/Rating.vue +1 -1
  728. package/src/modules/organizations/components/forms/AddExistingMembersForm.vue +3 -3
  729. package/src/modules/organizations/components/forms/DepartmentForm.vue +1 -1
  730. package/src/modules/organizations/components/forms/InviteForm.vue +1 -1
  731. package/src/modules/organizations/components/pages/Department.vue +2 -2
  732. package/src/modules/organizations/components/pages/DepartmentEdit.vue +1 -1
  733. package/src/modules/organizations/components/pages/Members.vue +1 -1
  734. package/src/modules/organizations/components/pages/Organization.new.vue +8 -8
  735. package/src/modules/organizations/components/pages/Organization.vue +6 -6
  736. package/src/modules/organizations/components/pages/OrganizationDocuments.vue +2 -2
  737. package/src/modules/organizations/components/pages/Organizations.vue +3 -3
  738. package/src/modules/organizations/components/sections/Documents.vue +2 -2
  739. package/src/modules/organizations/components/sections/MembersAdd.vue +1 -1
  740. package/src/modules/organizations/components/sections/Unit.vue +1 -1
  741. package/src/modules/pages/views/components/blocks/CardPage.vue +2 -2
  742. package/src/modules/pages/views/components/pages/Page.vue +5 -5
  743. package/src/modules/products/components/blocks/CardCategory.vue +1 -1
  744. package/src/modules/products/components/blocks/CardPosition.vue +4 -4
  745. package/src/modules/products/components/blocks/CardProduct.vue +3 -3
  746. package/src/modules/products/components/blocks/ProductDiscounts.vue +3 -3
  747. package/src/modules/products/components/blocks/ProductImages.vue +2 -2
  748. package/src/modules/products/components/blocks/ProductVariants.vue +2 -2
  749. package/src/modules/products/components/elements/Image360.vue +2 -2
  750. package/src/modules/products/components/elements/Price.vue +2 -2
  751. package/src/modules/products/components/elements/QuantitySelector.vue +3 -3
  752. package/src/modules/products/components/elements/THC.vue +1 -1
  753. package/src/modules/products/components/forms/ReorderSettingsForm.vue +1 -1
  754. package/src/modules/products/components/forms/StockAuditForm.vue +2 -2
  755. package/src/modules/products/components/forms/StockHistoryView.vue +1 -1
  756. package/src/modules/products/components/pages/Categories.vue +1 -1
  757. package/src/modules/products/components/pages/CategoryEdit.vue +2 -2
  758. package/src/modules/products/components/pages/Product.vue +6 -6
  759. package/src/modules/products/components/pages/ProductEdit.vue +6 -6
  760. package/src/modules/products/components/pages/Products.vue +11 -11
  761. package/src/modules/products/components/sections/EditAttributes.vue +4 -4
  762. package/src/modules/products/components/sections/EditCategories.vue +1 -1
  763. package/src/modules/products/components/sections/EditDiscounts.vue +6 -6
  764. package/src/modules/products/components/sections/EditRecommended.vue +1 -1
  765. package/src/modules/products/components/sections/EditVariants.vue +8 -8
  766. package/src/modules/products/components/sections/FilterProducts.vue +3 -3
  767. package/src/modules/products/components/sections/ProductConfigurator.vue +2 -2
  768. package/src/modules/products/components/sections/ProductInformationSection.vue +10 -10
  769. package/src/modules/products/components/sections/ProductsRecommended.vue +2 -2
  770. package/src/modules/products/components/sections/SectionProduct.vue +7 -7
  771. package/src/modules/products/experiments/product-recommendation/components/HeroRecommendation.vue +3 -3
  772. package/src/modules/rents/views/components/blocks/CardRent.vue +1 -1
  773. package/src/modules/rents/views/components/pages/Gant/DateLabel.vue +1 -1
  774. package/src/modules/rents/views/components/pages/Gant/GanttBar.vue +2 -2
  775. package/src/modules/rents/views/components/pages/Gant/GanttChart.vue +8 -8
  776. package/src/modules/rents/views/components/pages/Gant/GanttHeaderCell.vue +1 -1
  777. package/src/modules/rents/views/components/pages/Rents.vue +1 -1
  778. package/src/modules/rents/views/components/pages/RentsEdit.vue +6 -6
  779. package/src/modules/reports/components/pages/BackofficeReports.vue +3 -3
  780. package/src/modules/reports/components/sections/FormReport.vue +1 -1
  781. package/src/modules/spots/components/blocks/CardSpot.vue +4 -4
  782. package/src/modules/spots/components/blocks/SpotMemberModify.vue +1 -1
  783. package/src/modules/spots/components/layouts/Spots.vue +2 -2
  784. package/src/modules/spots/components/pages/Spot.vue +5 -5
  785. package/src/modules/spots/components/pages/SpotEdit.vue +2 -2
  786. package/src/modules/spots/components/pages/Spots.vue +3 -3
  787. package/src/modules/spots/components/sections/MapSection.vue +1 -1
  788. package/src/modules/spots/components/sections/WorktimeEdit.vue +4 -4
  789. package/src/modules/wallet/views/components/blocks/CardBalanceReplenished.vue +5 -5
  790. package/src/modules/wallet/views/components/blocks/CardDeposit.vue +5 -5
  791. package/src/modules/wallet/views/components/blocks/CashDeposit.vue +2 -2
  792. package/src/modules/wallet/views/components/blocks/CryptoDeposit.vue +4 -4
  793. package/src/modules/wallet/views/components/blocks/CryptoDepositProcessing.vue +11 -11
  794. package/src/modules/wallet/views/components/elements/ConnectMetamask.vue +4 -4
  795. package/src/modules/wallet/views/components/pages/Wallet.vue +22 -22
  796. package/src/styles/config.scss +193 -507
  797. package/src/styles/layout.scss +81 -1
  798. package/src/styles/reset.scss +2 -0
  799. package/src/styles/theme.scss +1 -8
  800. package/dist/martyrs/dist/main-BFvlam0J.js.map +0 -1
  801. package/dist/martyrs/node_modules/.pnpm/@capacitor_core@7.0.1/node_modules/@capacitor/core/dist/index.js.map +0 -1
  802. package/dist/martyrs/src/components/Button/Button.vue.js.map +0 -1
  803. package/dist/martyrs/src/components/Dropdown/Dropdown.vue.js.map +0 -1
  804. package/dist/martyrs/src/components/Field/Field.vue2.js.map +0 -1
  805. package/dist/martyrs/src/components/Menu/Menu.vue.js.map +0 -1
  806. package/dist/martyrs/src/components/Select/Select.vue2.js.map +0 -1
  807. package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue.js.map +0 -1
  808. package/dist/node_modules/.pnpm/@vue_server-renderer@3.5.13_vue@3.5.13_typescript@5.8.3_/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.js.map +0 -1
  809. package/dist/node_modules/.pnpm/@vue_shared@3.5.13/node_modules/@vue/shared/dist/shared.esm-bundler.js.map +0 -1
  810. package/dist/node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/dayjs.min.js.map +0 -1
  811. package/dist/node_modules/.pnpm/dayjs@1.11.13/node_modules/dayjs/plugin/weekOfYear.js.map +0 -1
  812. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/native.js +0 -6
  813. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/native.js.map +0 -1
  814. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/rng.js +0 -15
  815. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/rng.js.map +0 -1
  816. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/stringify.js +0 -11
  817. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/stringify.js.map +0 -1
  818. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/v4.js +0 -20
  819. package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/v4.js.map +0 -1
  820. package/src/modules/LAYOUT.MD +0 -767
  821. package/src/modules/STYLES.MD +0 -298
  822. package/src/modules/inventory/inventory.router.js +0 -72
  823. package/src/modules/products/products.router.js +0 -299
  824. package/src/styles/base/all.scss +0 -233
  825. package/src/styles/base/backgrounds.scss +0 -70
  826. package/src/styles/base/borders.scss +0 -407
  827. package/src/styles/base/scrolling.scss +0 -137
  828. package/src/styles/base/shadow_transitions_hover_refactor.scss +0 -158
  829. package/src/styles/base/transitions.scss +0 -109
  830. package/src/styles/responsive.scss +0 -152
  831. package/src/styles/typography.scss +0 -161
  832. /package/dist/{node_modules/.pnpm/@vue_shared@3.5.13 → martyrs}/node_modules/@vue/shared/dist/shared.esm-bundler.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"MembersAdd.vue.js","sources":["../../../../../../../src/modules/organizations/components/sections/MembersAdd.vue"],"sourcesContent":["<template>\n <div>\n <p class=\"mn-b-thin t-transp p-regular\">{{text}}</p> \n\n <div class=\"mn-b-thin pos-relative\">\n <BlockSearch \n v-click-outside=\"() => {searchUserShow = false}\" \n @search=\"(event) => { searchUser = event; searchUserShow = true }\"\n placeholder=\"Enter name, phone or email\"\n class=\"bg-grey\"\n />\n\n <div \n v-if=\"searchUser && searchUserShow\" \n class=\"mn-t-thin pos-absolute w-100 pos-t-100 pos-l-0 z-index-3 bg-light pd-small radius-small\n \">\n <Feed\n :states=\"{\n empty: {\n title: 'No User Found',\n description: 'Currently, there are no such user.'\n }\n }\"\n :store=\"{\n read: (options) => users.actions.read(options),\n state: null\n }\"\n :options=\"{\n search: searchUser\n }\"\n :showLoadMore=\"false\"\n v-slot=\"{ \n items \n }\"\n class=\"h-max-20r o-scroll\"\n >\n <CardUser\n v-for=\"(user, index) in items\" :key=\"user._id\"\n :user=\"user\"\n :photo=\"user.profile.photo\"\n :name=\"user.profile.name || user.phone || user.email\"\n @click=\"() => { \n members.push({contact: user.email || user.phone})\n searchUserShow = false\n }\"\n class=\"bg-white h-2r pd-thin radius-medium w-100 mn-b-thin\"\n />\n </Feed>\n </div>\n </div>\n\n <section class=\"cols-1 mn-b-small radius-medium pd-semi bg-light pos-relative\">\n\n <div\n v-for=\"(member, index) in members\" \n :key=\"index\" \n class=\"\n br-1px br-solid br-grey-transp-25\n flex\n gap-thin\n radius-small\n mn-b-thin\n \"\n >\n <Field \n v-model:field=\"member.contact\" \n placeholder=\"Enter email or phone\" \n class=\"w-100 pd-small radius-small bg-white\"\n :validation=\"contactValidation\"\n >\n <div \n v-if=\"index < 1\" \n @click=\"() => members.push({contact: ''})\" \n class=\"radius-small h-100 i-big flex-center flex aspect-1x1 bg-green\"\n >\n <IconAdd \n class=\"i-medium\"\n :fill=\"'rgb(var(--white)'\"\n />\n </div>\n\n <div \n v-else \n @click=\"() => members.splice(index, 1)\" \n class=\"radius-small h-100 i-big flex-center flex aspect-1x1 bg-red\"\n >\n <IconDelete \n class=\"i-medium\"\n :fill=\"'rgb(var(--white)'\"\n />\n </div>\n </Field>\n </div>\n </section>\n\n\n <Button \n :submit=\"submitMembers\" \n class=\"w-100 bg-main\">\n <span>Invite to organization</span>\n </Button>\n </div>\n</template>\n\n<script setup>\n import { ref } from 'vue';\n\n import Field from '@martyrs/src/components/Field/Field.vue'\n import Select from '@martyrs/src/components/Select/Select.vue'\n import Button from '@martyrs/src/components/Button/Button.vue'\n import Feed from '@martyrs/src/components/Feed/Feed.vue'\n\n import BlockSearch from '@martyrs/src/modules/core/views/components/blocks/BlockSearch.vue'\n\n import CardUser from '@martyrs/src/modules/auth/views/components/blocks/CardUser.vue'\n\n import IconDelete from '@martyrs/src/modules/icons/navigation/IconDelete.vue';\n import IconAdd from '@martyrs/src/modules/icons/navigation/IconAdd.vue';\n // Import validation\n import * as inputsValidation from '@martyrs/src/modules/auth/views/validations/inputs.validation'\n // Store\n import * as users from '@martyrs/src/modules/auth/views/store/users.js';\n // Props\n const props = defineProps({\n organization: Object,\n text: String,\n });\n // User Search\n let searchUser = ref(null)\n let searchUserShow = ref(false)\n // Validation\n const contactValidation = ref(null)\n // Define Emits\n const emits = defineEmits(['send-invite']);\n // Define State\n const members = ref([{ contact: ''}]);\n\n async function submitMembers() {\n return new Promise((resolve, reject) => {\n emits('send-invite', members.value, resolve, reject);\n });\n }\n</script>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAgIE,QAAI,aAAa,IAAI,IAAI;AACzB,QAAI,iBAAiB,IAAI,KAAK;AAE9B,UAAM,oBAAoB,IAAI,IAAI;AAElC,UAAM,QAAQ;AAEd,UAAM,UAAU,IAAI,CAAC,EAAE,SAAS,GAAE,CAAC,CAAC;AAEpC,mBAAe,gBAAgB;AAC7B,aAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,cAAM,eAAe,QAAQ,OAAO,SAAS,MAAM;AAAA,MACrD,CAAC;AAAA,IACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"MembersAdd.vue.js","sources":["../../../../../../../src/modules/organizations/components/sections/MembersAdd.vue"],"sourcesContent":["<template>\n <div>\n <p class=\"mn-b-thin t-transp p-regular\">{{text}}</p> \n\n <div class=\"mn-b-thin pos-relative\">\n <BlockSearch \n v-click-outside=\"() => {searchUserShow = false}\" \n @search=\"(event) => { searchUser = event; searchUserShow = true }\"\n placeholder=\"Enter name, phone or email\"\n class=\"bg-grey\"\n />\n\n <div \n v-if=\"searchUser && searchUserShow\" \n class=\"mn-t-thin pos-absolute w-100 pos-t-100 pos-l-0 z-index-3 bg-light pd-small radius-small\n \">\n <Feed\n :states=\"{\n empty: {\n title: 'No User Found',\n description: 'Currently, there are no such user.'\n }\n }\"\n :store=\"{\n read: (options) => users.actions.read(options),\n state: null\n }\"\n :options=\"{\n search: searchUser\n }\"\n :showLoadMore=\"false\"\n v-slot=\"{ \n items \n }\"\n class=\"h-max-20r o-scroll\"\n >\n <CardUser\n v-for=\"(user, index) in items\" :key=\"user._id\"\n :user=\"user\"\n :photo=\"user.profile.photo\"\n :name=\"user.profile.name || user.phone || user.email\"\n @click=\"() => { \n members.push({contact: user.email || user.phone})\n searchUserShow = false\n }\"\n class=\"bg-white h-2r pd-thin radius-medium w-100 mn-b-thin\"\n />\n </Feed>\n </div>\n </div>\n\n <section class=\"cols-1 mn-b-small radius-medium pd-semi bg-light pos-relative\">\n\n <div\n v-for=\"(member, index) in members\" \n :key=\"index\" \n class=\"\n br-1px br-grey-transp-25\n flex\n gap-thin\n radius-small\n mn-b-thin\n \"\n >\n <Field \n v-model:field=\"member.contact\" \n placeholder=\"Enter email or phone\" \n class=\"w-100 pd-small radius-small bg-white\"\n :validation=\"contactValidation\"\n >\n <div \n v-if=\"index < 1\" \n @click=\"() => members.push({contact: ''})\" \n class=\"radius-small h-100 i-big flex-center flex aspect-1x1 bg-green\"\n >\n <IconAdd \n class=\"i-medium\"\n :fill=\"'rgb(var(--white)'\"\n />\n </div>\n\n <div \n v-else \n @click=\"() => members.splice(index, 1)\" \n class=\"radius-small h-100 i-big flex-center flex aspect-1x1 bg-red\"\n >\n <IconDelete \n class=\"i-medium\"\n :fill=\"'rgb(var(--white)'\"\n />\n </div>\n </Field>\n </div>\n </section>\n\n\n <Button \n :submit=\"submitMembers\" \n class=\"w-100 bg-main\">\n <span>Invite to organization</span>\n </Button>\n </div>\n</template>\n\n<script setup>\n import { ref } from 'vue';\n\n import Field from '@martyrs/src/components/Field/Field.vue'\n import Select from '@martyrs/src/components/Select/Select.vue'\n import Button from '@martyrs/src/components/Button/Button.vue'\n import Feed from '@martyrs/src/components/Feed/Feed.vue'\n\n import BlockSearch from '@martyrs/src/modules/core/views/components/blocks/BlockSearch.vue'\n\n import CardUser from '@martyrs/src/modules/auth/views/components/blocks/CardUser.vue'\n\n import IconDelete from '@martyrs/src/modules/icons/navigation/IconDelete.vue';\n import IconAdd from '@martyrs/src/modules/icons/navigation/IconAdd.vue';\n // Import validation\n import * as inputsValidation from '@martyrs/src/modules/auth/views/validations/inputs.validation'\n // Store\n import * as users from '@martyrs/src/modules/auth/views/store/users.js';\n // Props\n const props = defineProps({\n organization: Object,\n text: String,\n });\n // User Search\n let searchUser = ref(null)\n let searchUserShow = ref(false)\n // Validation\n const contactValidation = ref(null)\n // Define Emits\n const emits = defineEmits(['send-invite']);\n // Define State\n const members = ref([{ contact: ''}]);\n\n async function submitMembers() {\n return new Promise((resolve, reject) => {\n emits('send-invite', members.value, resolve, reject);\n });\n }\n</script>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAgIE,QAAI,aAAa,IAAI,IAAI;AACzB,QAAI,iBAAiB,IAAI,KAAK;AAE9B,UAAM,oBAAoB,IAAI,IAAI;AAElC,UAAM,QAAQ;AAEd,UAAM,UAAU,IAAI,CAAC,EAAE,SAAS,GAAE,CAAC,CAAC;AAEpC,mBAAe,gBAAgB;AAC7B,aAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,cAAM,eAAe,QAAQ,OAAO,SAAS,MAAM;AAAA,MACrD,CAAC;AAAA,IACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -2,10 +2,10 @@ import { ref, withAsyncContext, watch, createElementBlock, openBlock, createElem
2
2
  import { useRouter, useRoute } from "vue-router";
3
3
  import "../../../../../../node_modules/.pnpm/js-cookie@3.0.5/node_modules/js-cookie/dist/js.cookie.js";
4
4
  /* empty css */
5
- /* empty css */
5
+ /* empty css */
6
+ /* empty css */
6
7
  /* empty css */
7
8
  /* empty css */
8
- /* empty css */
9
9
  import _sfc_main$2 from "../blocks/CardOrganization.vue.js";
10
10
  import _sfc_main$1 from "../blocks/EmptyState.vue.js";
11
11
  import "./Unit.vue.js";
@@ -2,14 +2,14 @@ import { ref, resolveComponent, createElementBlock, openBlock, createElementVNod
2
2
  import _sfc_main$1 from "../../../../icons/navigation/IconEdit.vue.js";
3
3
  import _sfc_main$2 from "../../../../icons/navigation/IconAdd.vue.js";
4
4
  /* empty css */
5
- /* empty css */
6
- /* empty css */
5
+ /* empty css */
6
+ /* empty css */
7
7
  import { useRouter } from "vue-router";
8
8
  /* empty css */
9
9
  const _hoisted_1 = { class: "flex flex-nowrap gap-thin card-page-title" };
10
10
  const _hoisted_2 = {
11
11
  key: 0,
12
- class: "mn-l-small br-t br-solid br-black-transp-10"
12
+ class: "mn-l-small br-t-1px br-black-transp-10"
13
13
  };
14
14
  const _sfc_main = {
15
15
  __name: "CardPage",
@@ -50,7 +50,7 @@ const _sfc_main = {
50
50
  createElementVNode("div", _hoisted_1, [
51
51
  createVNode(_component_router_link, {
52
52
  to: unref(router).resolve({ name: "Page", params: { url: __props.page.url.split("/") } }).href,
53
- class: normalizeClass(["z-index-2 cursor-pointer mn-r-auto t-truncate", {
53
+ class: normalizeClass(["z-index-2 cursor-pointer mn-r-auto truncate", {
54
54
  "t-main": _ctx.$route.params.url && __props.page.url === _ctx.joinArrayToUrl(_ctx.$route.params.url)
55
55
  }])
56
56
  }, {
@@ -1 +1 @@
1
- {"version":3,"file":"CardPage.vue.js","sources":["../../../../../../../../src/modules/pages/views/components/blocks/CardPage.vue"],"sourcesContent":["<template>\n <div>\n <div :class=\"$attrs.class\">\n <!-- {{ page.url }} -->\n <div class=\"flex flex-nowrap gap-thin card-page-title\">\n <router-link\n :to=\"router.resolve({ name: 'Page', params: { url: page.url.split('/') } }).href\" \n class=\"\n z-index-2\n cursor-pointer\n mn-r-auto\n t-truncate\n \"\n :class=\"{\n 't-main': $route.params.url && page.url === joinArrayToUrl($route.params.url)\n }\"\n >\n {{ page.name }}\n </router-link>\n\n <router-link\n v-if=\"hasAdminRights\"\n :to=\"router.resolve({ name: 'Backoffice Pages Edit', params: { url: page.url.split('/') } }).href\" \n class=\"\n z-index-2\n cursor-pointer \n card-page-actions\n radius-extra pd-micro bg-second\n \"\n >\n <IconEdit\n class=\"i-small\"\n classes=\"fill-white\"\n />\n </router-link>\n\n <button\n v-if=\"hasAdminRights\"\n @click=\"createPage(page)\"\n class=\"\n z-index-2\n cursor-pointer \n card-page-actions\n radius-extra pd-micro bg-second\n \"\n >\n <IconAdd\n class=\"i-small\"\n :fill=\"'white'\"\n />\n </button>\n </div>\n </div>\n\n <div v-if=\"page.children && page.children.length > 0 && page.children[0].url && showChildren\" class=\"mn-l-small br-t br-solid br-black-transp-10\">\n <CardPage \n @createPage=\"createPage\" \n v-for=\"childPage in page.children\" \n :key=\"childPage.url\" \n :page=\"childPage\" \n :hasAdminRights=\"hasAdminRights\"\n :class=\"$attrs.class\"\n />\n </div>\n \n </div>\n</template>\n\n<script setup>\n import { ref } from 'vue'\n\n import IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue'\n import IconAdd from '@martyrs/src/modules/icons/navigation/IconAdd.vue'\n\n import Button from '@martyrs/src/components/Button/Button.vue'\n import Field from \"@martyrs/src/components/Field/Field.vue\"; \n\n import { useRouter } from 'vue-router'\n \n const router = useRouter()\n\n const props = defineProps({\n page: {\n type: Object,\n required: true\n },\n hasAdminRights: {\n type: Boolean,\n default: false\n },\n showChildren: {\n type: Boolean,\n default: true\n }\n })\n\n const emits = defineEmits([\n 'createPage'\n ])\n\n const newPage = ref({\n show: false,\n name: null\n })\n\n async function createPage(page) {\n emits('createPage', page)\n }\n</script>\n\n<style lang=\"scss\">\n.card-page-title {\n .card-page-actions {\n display: none;\n }\n\n &:hover {\n .card-page-actions {\n display: block;\n }\n }\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+EE,UAAM,SAAS,UAAS;AAiBxB,UAAM,QAAQ;AAIE,QAAI;AAAA,MAClB,MAAM;AAAA,MACN,MAAM;AAAA,IACV,CAAG;AAED,mBAAe,WAAW,MAAM;AAC9B,YAAM,cAAc,IAAI;AAAA,IAC1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"CardPage.vue.js","sources":["../../../../../../../../src/modules/pages/views/components/blocks/CardPage.vue"],"sourcesContent":["<template>\n <div>\n <div :class=\"$attrs.class\">\n <!-- {{ page.url }} -->\n <div class=\"flex flex-nowrap gap-thin card-page-title\">\n <router-link\n :to=\"router.resolve({ name: 'Page', params: { url: page.url.split('/') } }).href\" \n class=\"\n z-index-2\n cursor-pointer\n mn-r-auto\n truncate\n \"\n :class=\"{\n 't-main': $route.params.url && page.url === joinArrayToUrl($route.params.url)\n }\"\n >\n {{ page.name }}\n </router-link>\n\n <router-link\n v-if=\"hasAdminRights\"\n :to=\"router.resolve({ name: 'Backoffice Pages Edit', params: { url: page.url.split('/') } }).href\" \n class=\"\n z-index-2\n cursor-pointer \n card-page-actions\n radius-extra pd-micro bg-second\n \"\n >\n <IconEdit\n class=\"i-small\"\n classes=\"fill-white\"\n />\n </router-link>\n\n <button\n v-if=\"hasAdminRights\"\n @click=\"createPage(page)\"\n class=\"\n z-index-2\n cursor-pointer \n card-page-actions\n radius-extra pd-micro bg-second\n \"\n >\n <IconAdd\n class=\"i-small\"\n :fill=\"'white'\"\n />\n </button>\n </div>\n </div>\n\n <div v-if=\"page.children && page.children.length > 0 && page.children[0].url && showChildren\" class=\"mn-l-small br-t-1px br-black-transp-10\">\n <CardPage \n @createPage=\"createPage\" \n v-for=\"childPage in page.children\" \n :key=\"childPage.url\" \n :page=\"childPage\" \n :hasAdminRights=\"hasAdminRights\"\n :class=\"$attrs.class\"\n />\n </div>\n \n </div>\n</template>\n\n<script setup>\n import { ref } from 'vue'\n\n import IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue'\n import IconAdd from '@martyrs/src/modules/icons/navigation/IconAdd.vue'\n\n import Button from '@martyrs/src/components/Button/Button.vue'\n import Field from \"@martyrs/src/components/Field/Field.vue\"; \n\n import { useRouter } from 'vue-router'\n \n const router = useRouter()\n\n const props = defineProps({\n page: {\n type: Object,\n required: true\n },\n hasAdminRights: {\n type: Boolean,\n default: false\n },\n showChildren: {\n type: Boolean,\n default: true\n }\n })\n\n const emits = defineEmits([\n 'createPage'\n ])\n\n const newPage = ref({\n show: false,\n name: null\n })\n\n async function createPage(page) {\n emits('createPage', page)\n }\n</script>\n\n<style lang=\"scss\">\n.card-page-title {\n .card-page-actions {\n display: none;\n }\n\n &:hover {\n .card-page-actions {\n display: block;\n }\n }\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+EE,UAAM,SAAS,UAAS;AAiBxB,UAAM,QAAQ;AAIE,QAAI;AAAA,MAClB,MAAM;AAAA,MACN,MAAM;AAAA,IACV,CAAG;AAED,mBAAe,WAAW,MAAM;AAC9B,YAAM,cAAc,IAAI;AAAA,IAC1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -11,20 +11,20 @@ const _hoisted_1 = {
11
11
  style: { "overflow": "clip" },
12
12
  class: "bg-light pos-relative"
13
13
  };
14
- const _hoisted_2 = { class: "pd-medium pos-sticky mobile-only z-index-1 pos-t-0 bg-light w-100 br-b br-solid br-black-transp-10" };
14
+ const _hoisted_2 = { class: "pd-medium pos-sticky mobile-only z-index-1 pos-t-0 bg-light w-100 br-b-1px br-black-transp-10" };
15
15
  const _hoisted_3 = {
16
16
  key: 0,
17
17
  class: "z-index-0 pos-relative"
18
18
  };
19
- const _hoisted_4 = { class: "transition-ease-in-out w-100 bg-light" };
19
+ const _hoisted_4 = { class: "ease-in-out w-100 bg-light" };
20
20
  const _hoisted_5 = {
21
21
  key: 1,
22
- class: "cols-2-1_3 h-100 bg-light z-index-0 pos-relative"
22
+ class: "cols-[1fr_3fr] mobile:cols-1 h-100 bg-light z-index-0 pos-relative"
23
23
  };
24
24
  const _hoisted_6 = { class: "desktop-only h-100 bg-white o-scroll z-index-0 pos-relative" };
25
- const _hoisted_7 = { class: "transition-ease-in-out w-100 bg-light" };
25
+ const _hoisted_7 = { class: "ease-in-out w-100 bg-light" };
26
26
  const _hoisted_8 = { class: "o-scroll pd-medium" };
27
- const _hoisted_9 = { class: "gap-thin cols-2" };
27
+ const _hoisted_9 = { class: "gap-thin cols-2 mobile:cols-1" };
28
28
  const _hoisted_10 = {
29
29
  key: 0,
30
30
  class: "bg-white pd-medium mn-b-thin radius-semi"
@@ -1 +1 @@
1
- {"version":3,"file":"Page.vue.js","sources":["../../../../../../../../src/modules/pages/views/components/pages/Page.vue"],"sourcesContent":["<template>\n \n <div v-if=\"page && page.content\" style=\"overflow: clip\" class=\" bg-light pos-relative\"> \n \n <div class=\"pd-medium pos-sticky mobile-only z-index-1 pos-t-0 bg-light w-100 br-b br-solid br-black-transp-10\">\n <button @click=\"showMenu\" class=\"cursor-pointer\">\n {{ isMenuOpen === false ? 'Show Menu' : 'Hide Menu' }}\n </button>\n </div>\n\n <div v-if=\"isMenuOpen\" class=\"z-index-0 pos-relative\">\n <ul \n class=\"transition-ease-in-out w-100 bg-light\"\n >\n <CardPage \n :page=\"pageParent\" \n :hasAdminRights=\"hasAdminRights\"\n class=\"pd-thin\"\n />\n </ul> \n </div>\n\n <div v-if=\"!isMenuOpen\" class=\"cols-2-1_3 h-100 bg-light z-index-0 pos-relative\">\n\n <div class=\"desktop-only h-100 bg-white o-scroll z-index-0 pos-relative\">\n <ul \n class=\"transition-ease-in-out w-100 bg-light\"\n >\n <CardPage \n :page=\"pageParent\" \n :hasAdminRights=\"hasAdminRights\"\n class=\"bg-white pd-thin\"\n />\n </ul> \n </div>\n\n <div class=\"o-scroll pd-medium\">\n <Viewer\n :content=\"page.content\"\n class=\"\"\n />\n\n <div class=\"gap-thin cols-2\">\n <div v-if=\"navigationPages.previousPage\" class=\"bg-white pd-medium mn-b-thin radius-semi \">\n <h4 class=\"mn-b-small\" >Read Previous</h4>\n\n <CardPage \n :page=\"navigationPages.previousPage\" \n :showChildren=\"false\"\n class=\"h3 t-main bg-white mn-b-thin radius-semi\"\n />\n </div>\n\n <div v-if=\"navigationPages.children.length > 0\" class=\"bg-white pd-medium mn-b-thin radius-semi \">\n <h4 class=\"mn-b-small pd-micro \">Table of Contents</h4>\n <CardPage \n v-for=\"childPage in navigationPages.children\" \n :key=\"childPage.id\"\n :page=\"childPage\" \n class=\"bg-white pd-micro radius-semi\"\n />\n </div>\n\n <div v-if=\"navigationPages.nextPage\" class=\"bg-white pd-medium mn-b-thin radius-semi\">\n <h4 class=\"mn-b-small\" >Read Next</h4>\n <CardPage \n :page=\"navigationPages.nextPage\" \n class=\"h3 t-main bg-white mn-b-thin radius-semi\"\n :showChildren=\"false\"\n />\n </div>\n </div>\n </div>\n\n </div>\n </div>\n</template>\n\n<script setup>\n // Import libs\n import { computed, onMounted, ref, onServerPrefetch } from 'vue'\n\n import { useRoute } from 'vue-router'\n import { useI18n } from 'vue-i18n'\n\n import Viewer from '@martyrs/src/modules/constructor/components/sections/Viewer.vue';\n\n import CardPage from '../blocks/CardPage.vue'\n\n import * as pages from '../../store/pages';\n import * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\n\n import { useGlobalMixins } from \"@martyrs/src/modules/core/views/mixins/mixins.js\"\n\n const isMenuOpen = ref(false)\n\n function showMenu () {\n isMenuOpen.value = !isMenuOpen.value\n }\n\n function flattenTree(tree) {\n const pages = [];\n\n function recursiveFlatten(nodes, parent = null) {\n for (const node of nodes) {\n pages.push({ ...node, parent }); // Сохраняем родителя для каждого узла\n if (node.children.length > 0) {\n recursiveFlatten(node.children, node);\n }\n }\n }\n\n recursiveFlatten(tree.children);\n return pages;\n }\n\n // Получаем плоский список всех страниц\n const allPages = computed(() => flattenTree(pageParent.value));\n\n // Вычисляемая функция для нахождения предыдущей и следующей страниц\n const navigationPages = computed(() => {\n // Если текущая страница - рутовая\n if (page.value._id === pageParent.value._id) {\n return { children: page.value.children, previousPage: null, nextPage: null };\n }\n\n const currentIndex = allPages.value.findIndex(p => p._id === page.value._id);\n \n const previousPage = currentIndex > 0 \n ? allPages.value[currentIndex - 1] \n : pageParent.value; // Если нет предыдущего, берем родителя\n \n const nextPage = currentIndex < allPages.value.length - 1 \n ? allPages.value[currentIndex + 1] \n : null;\n\n return { previousPage, nextPage, children: [] };\n });\n\n const { \n normalizeUrlParam, \n joinArrayToUrl,\n isAdmin\n } = useGlobalMixins()\n\n const hasAdminRights = computed(() => {\n return isAdmin(auth.state.access.roles)\n })\n\n const { t, locale } = useI18n()\n\n const route = useRoute()\n\n const pageParent = ref(null)\n const page = ref(null)\n\n onMounted(async () => {\n let urlParent = route.params.url\n if (urlParent.length > 0) urlParent = urlParent[0]\n\n pageParent.value = await pages.actions.read({url: urlParent})\n\n let url = route.params.url\n if (url.length > 0) url = joinArrayToUrl(url)\n \n page.value = await pages.actions.read({url: url}) \n })\n</script>\n\n<style lang=\"scss\">\n</style>\n"],"names":["auth.state","pages.actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8FE,UAAM,aAAa,IAAI,KAAK;AAE5B,aAAS,WAAY;AACnB,iBAAW,QAAQ,CAAC,WAAW;AAAA,IACjC;AAEA,aAAS,YAAY,MAAM;AACzB,YAAM,QAAQ,CAAA;AAEd,eAAS,iBAAiB,OAAO,SAAS,MAAM;AAC9C,mBAAW,QAAQ,OAAO;AACxB,gBAAM,KAAK,EAAE,GAAG,MAAM,OAAM,CAAE;AAC9B,cAAI,KAAK,SAAS,SAAS,GAAG;AAC5B,6BAAiB,KAAK,UAAU,IAAI;AAAA,UACtC;AAAA,QACF;AAAA,MACF;AAEA,uBAAiB,KAAK,QAAQ;AAC9B,aAAO;AAAA,IACT;AAGA,UAAM,WAAW,SAAS,MAAM,YAAY,WAAW,KAAK,CAAC;AAG7D,UAAM,kBAAkB,SAAS,MAAM;AAErC,UAAI,KAAK,MAAM,QAAQ,WAAW,MAAM,KAAK;AAC3C,eAAO,EAAE,UAAU,KAAK,MAAM,UAAU,cAAc,MAAM,UAAU,KAAI;AAAA,MAC5E;AAEA,YAAM,eAAe,SAAS,MAAM,UAAU,OAAK,EAAE,QAAQ,KAAK,MAAM,GAAG;AAE3E,YAAM,eAAe,eAAe,IAChC,SAAS,MAAM,eAAe,CAAC,IAC/B,WAAW;AAEf,YAAM,WAAW,eAAe,SAAS,MAAM,SAAS,IACpD,SAAS,MAAM,eAAe,CAAC,IAC/B;AAEJ,aAAO,EAAE,cAAc,UAAU,UAAU,CAAA,EAAE;AAAA,IAC/C,CAAC;AAED,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,IACJ,IAAM,gBAAe;AAEnB,UAAM,iBAAiB,SAAS,MAAM;AACpC,aAAO,QAAQA,MAAW,OAAO,KAAK;AAAA,IACxC,CAAC;AAED,UAAM,EAAE,GAAG,OAAM,IAAK,QAAO;AAE7B,UAAM,QAAQ,SAAQ;AAEtB,UAAM,aAAa,IAAI,IAAI;AAC3B,UAAM,OAAO,IAAI,IAAI;AAErB,cAAU,YAAY;AACpB,UAAI,YAAY,MAAM,OAAO;AAC7B,UAAI,UAAU,SAAS,EAAG,aAAY,UAAU,CAAC;AAEjD,iBAAW,QAAQ,MAAMC,QAAc,KAAK,EAAC,KAAK,UAAS,CAAC;AAE5D,UAAI,MAAM,MAAM,OAAO;AACvB,UAAI,IAAI,SAAS,EAAG,OAAM,eAAe,GAAG;AAE5C,WAAK,QAAQ,MAAMA,QAAc,KAAK,EAAC,IAAQ,CAAC;AAAA,IAClD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Page.vue.js","sources":["../../../../../../../../src/modules/pages/views/components/pages/Page.vue"],"sourcesContent":["<template>\n \n <div v-if=\"page && page.content\" style=\"overflow: clip\" class=\" bg-light pos-relative\"> \n \n <div class=\"pd-medium pos-sticky mobile-only z-index-1 pos-t-0 bg-light w-100 br-b-1px br-black-transp-10\">\n <button @click=\"showMenu\" class=\"cursor-pointer\">\n {{ isMenuOpen === false ? 'Show Menu' : 'Hide Menu' }}\n </button>\n </div>\n\n <div v-if=\"isMenuOpen\" class=\"z-index-0 pos-relative\">\n <ul \n class=\"ease-in-out w-100 bg-light\"\n >\n <CardPage \n :page=\"pageParent\" \n :hasAdminRights=\"hasAdminRights\"\n class=\"pd-thin\"\n />\n </ul> \n </div>\n\n <div v-if=\"!isMenuOpen\" class=\"cols-[1fr_3fr] mobile:cols-1 h-100 bg-light z-index-0 pos-relative\">\n\n <div class=\"desktop-only h-100 bg-white o-scroll z-index-0 pos-relative\">\n <ul \n class=\"ease-in-out w-100 bg-light\"\n >\n <CardPage \n :page=\"pageParent\" \n :hasAdminRights=\"hasAdminRights\"\n class=\"bg-white pd-thin\"\n />\n </ul> \n </div>\n\n <div class=\"o-scroll pd-medium\">\n <Viewer\n :content=\"page.content\"\n class=\"\"\n />\n\n <div class=\"gap-thin cols-2 mobile:cols-1\">\n <div v-if=\"navigationPages.previousPage\" class=\"bg-white pd-medium mn-b-thin radius-semi \">\n <h4 class=\"mn-b-small\" >Read Previous</h4>\n\n <CardPage \n :page=\"navigationPages.previousPage\" \n :showChildren=\"false\"\n class=\"h3 t-main bg-white mn-b-thin radius-semi\"\n />\n </div>\n\n <div v-if=\"navigationPages.children.length > 0\" class=\"bg-white pd-medium mn-b-thin radius-semi \">\n <h4 class=\"mn-b-small pd-micro \">Table of Contents</h4>\n <CardPage \n v-for=\"childPage in navigationPages.children\" \n :key=\"childPage.id\"\n :page=\"childPage\" \n class=\"bg-white pd-micro radius-semi\"\n />\n </div>\n\n <div v-if=\"navigationPages.nextPage\" class=\"bg-white pd-medium mn-b-thin radius-semi\">\n <h4 class=\"mn-b-small\" >Read Next</h4>\n <CardPage \n :page=\"navigationPages.nextPage\" \n class=\"h3 t-main bg-white mn-b-thin radius-semi\"\n :showChildren=\"false\"\n />\n </div>\n </div>\n </div>\n\n </div>\n </div>\n</template>\n\n<script setup>\n // Import libs\n import { computed, onMounted, ref, onServerPrefetch } from 'vue'\n\n import { useRoute } from 'vue-router'\n import { useI18n } from 'vue-i18n'\n\n import Viewer from '@martyrs/src/modules/constructor/components/sections/Viewer.vue';\n\n import CardPage from '../blocks/CardPage.vue'\n\n import * as pages from '../../store/pages';\n import * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\n\n import { useGlobalMixins } from \"@martyrs/src/modules/core/views/mixins/mixins.js\"\n\n const isMenuOpen = ref(false)\n\n function showMenu () {\n isMenuOpen.value = !isMenuOpen.value\n }\n\n function flattenTree(tree) {\n const pages = [];\n\n function recursiveFlatten(nodes, parent = null) {\n for (const node of nodes) {\n pages.push({ ...node, parent }); // Сохраняем родителя для каждого узла\n if (node.children.length > 0) {\n recursiveFlatten(node.children, node);\n }\n }\n }\n\n recursiveFlatten(tree.children);\n return pages;\n }\n\n // Получаем плоский список всех страниц\n const allPages = computed(() => flattenTree(pageParent.value));\n\n // Вычисляемая функция для нахождения предыдущей и следующей страниц\n const navigationPages = computed(() => {\n // Если текущая страница - рутовая\n if (page.value._id === pageParent.value._id) {\n return { children: page.value.children, previousPage: null, nextPage: null };\n }\n\n const currentIndex = allPages.value.findIndex(p => p._id === page.value._id);\n \n const previousPage = currentIndex > 0 \n ? allPages.value[currentIndex - 1] \n : pageParent.value; // Если нет предыдущего, берем родителя\n \n const nextPage = currentIndex < allPages.value.length - 1 \n ? allPages.value[currentIndex + 1] \n : null;\n\n return { previousPage, nextPage, children: [] };\n });\n\n const { \n normalizeUrlParam, \n joinArrayToUrl,\n isAdmin\n } = useGlobalMixins()\n\n const hasAdminRights = computed(() => {\n return isAdmin(auth.state.access.roles)\n })\n\n const { t, locale } = useI18n()\n\n const route = useRoute()\n\n const pageParent = ref(null)\n const page = ref(null)\n\n onMounted(async () => {\n let urlParent = route.params.url\n if (urlParent.length > 0) urlParent = urlParent[0]\n\n pageParent.value = await pages.actions.read({url: urlParent})\n\n let url = route.params.url\n if (url.length > 0) url = joinArrayToUrl(url)\n \n page.value = await pages.actions.read({url: url}) \n })\n</script>\n\n<style lang=\"scss\">\n</style>\n"],"names":["auth.state","pages.actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8FE,UAAM,aAAa,IAAI,KAAK;AAE5B,aAAS,WAAY;AACnB,iBAAW,QAAQ,CAAC,WAAW;AAAA,IACjC;AAEA,aAAS,YAAY,MAAM;AACzB,YAAM,QAAQ,CAAA;AAEd,eAAS,iBAAiB,OAAO,SAAS,MAAM;AAC9C,mBAAW,QAAQ,OAAO;AACxB,gBAAM,KAAK,EAAE,GAAG,MAAM,OAAM,CAAE;AAC9B,cAAI,KAAK,SAAS,SAAS,GAAG;AAC5B,6BAAiB,KAAK,UAAU,IAAI;AAAA,UACtC;AAAA,QACF;AAAA,MACF;AAEA,uBAAiB,KAAK,QAAQ;AAC9B,aAAO;AAAA,IACT;AAGA,UAAM,WAAW,SAAS,MAAM,YAAY,WAAW,KAAK,CAAC;AAG7D,UAAM,kBAAkB,SAAS,MAAM;AAErC,UAAI,KAAK,MAAM,QAAQ,WAAW,MAAM,KAAK;AAC3C,eAAO,EAAE,UAAU,KAAK,MAAM,UAAU,cAAc,MAAM,UAAU,KAAI;AAAA,MAC5E;AAEA,YAAM,eAAe,SAAS,MAAM,UAAU,OAAK,EAAE,QAAQ,KAAK,MAAM,GAAG;AAE3E,YAAM,eAAe,eAAe,IAChC,SAAS,MAAM,eAAe,CAAC,IAC/B,WAAW;AAEf,YAAM,WAAW,eAAe,SAAS,MAAM,SAAS,IACpD,SAAS,MAAM,eAAe,CAAC,IAC/B;AAEJ,aAAO,EAAE,cAAc,UAAU,UAAU,CAAA,EAAE;AAAA,IAC/C,CAAC;AAED,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,IACJ,IAAM,gBAAe;AAEnB,UAAM,iBAAiB,SAAS,MAAM;AACpC,aAAO,QAAQA,MAAW,OAAO,KAAK;AAAA,IACxC,CAAC;AAED,UAAM,EAAE,GAAG,OAAM,IAAK,QAAO;AAE7B,UAAM,QAAQ,SAAQ;AAEtB,UAAM,aAAa,IAAI,IAAI;AAC3B,UAAM,OAAO,IAAI,IAAI;AAErB,cAAU,YAAY;AACpB,UAAI,YAAY,MAAM,OAAO;AAC7B,UAAI,UAAU,SAAS,EAAG,aAAY,UAAU,CAAC;AAEjD,iBAAW,QAAQ,MAAMC,QAAc,KAAK,EAAC,KAAK,UAAS,CAAC;AAE5D,UAAI,MAAM,MAAM,OAAO;AACvB,UAAI,IAAI,SAAS,EAAG,OAAM,eAAe,GAAG;AAE5C,WAAK,QAAQ,MAAMA,QAAc,KAAK,EAAC,IAAQ,CAAC;AAAA,IAClD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -2,8 +2,8 @@ import { ref, onMounted, createElementBlock, createCommentVNode, openBlock, crea
2
2
  import { useRoute, useRouter } from "vue-router";
3
3
  import { useGlobalMixins } from "../../../../core/views/mixins/mixins.js";
4
4
  import { actions, state } from "../../store/pages.js";
5
- import _sfc_main$2 from "../../../../../components/Button/Button.vue.js";
6
- /* empty css */
5
+ import _sfc_main$2 from "../../../../../components/Button/Button.vue2.js";
6
+ /* empty css */
7
7
  /* empty css */
8
8
  /* empty css */
9
9
  import _sfc_main$1 from "../../../../constructor/components/sections/Constructor.vue.js";
@@ -2,7 +2,7 @@ import { computed, ref, onMounted, createBlock, createCommentVNode, openBlock, w
2
2
  import { useRoute, useRouter } from "vue-router";
3
3
  import _sfc_main$1 from "../../../../../components/Block/Block.vue.js";
4
4
  import _sfc_main$3 from "../../../../../components/Popup/Popup.vue.js";
5
- import _sfc_main$5 from "../../../../../components/Button/Button.vue.js";
5
+ import _sfc_main$5 from "../../../../../components/Button/Button.vue2.js";
6
6
  import _sfc_main$4 from "../../../../constructor/components/sections/Constructor.vue.js";
7
7
  import _sfc_main$2 from "../blocks/CardPage.vue.js";
8
8
  import { actions } from "../../store/pages.js";
@@ -6,7 +6,7 @@ import _sfc_main$2 from "../../../icons/navigation/IconDelete.vue.js";
6
6
  const _hoisted_1 = { class: "flex-v-center bg-light pd-small radius-small flex-column flex" };
7
7
  const _hoisted_2 = { class: "w-100 flex-v-center flex-nowrap gap-thin flex" };
8
8
  const _hoisted_3 = ["src"];
9
- const _hoisted_4 = { class: "my-handle t-truncate w-100 w-max-100 mn-r-auto" };
9
+ const _hoisted_4 = { class: "my-handle truncate w-100 w-max-100 mn-r-auto" };
10
10
  const _sfc_main = {
11
11
  __name: "CardCategory",
12
12
  props: {
@@ -1 +1 @@
1
- {"version":3,"file":"CardCategory.vue.js","sources":["../../../../../../../src/modules/products/components/blocks/CardCategory.vue"],"sourcesContent":["<template>\n <div class=\"flex-v-center bg-light pd-small radius-small flex-column flex\">\n <div class=\"w-100 flex-v-center flex-nowrap gap-thin flex\">\n <img v-if=\"category.photo\" class=\"i-big radius-small object-fit-contain bg-white\" :src=\"(FILE_SERVER_URL || '') + category.photo\"/>\n <h4 class=\"my-handle t-truncate w-100 w-max-100 mn-r-auto\">{{category.name}}</h4>\n\n <router-link\n v-if=\"access\"\n :to=\"{\n name: route.meta.context === 'backoffice' ? 'BackofficeCategoryEdit' : 'Organization_CategoryEdit',\n params: {\n _id: route.params._id,\n category: category._id\n }\n }\"\n class=\"\n i-medium\n cursor-pointer\n card-page-actions\n radius-extra pd-micro bg-second\n flex-child-default\n \"\n >\n <IconEdit\n class=\"w-100 h-100\"\n classes=\"fill-white\"\n />\n </router-link>\n\n <button\n v-if=\"access\"\n @click=\"deleteCategory(category)\"\n class=\"\n i-medium\n cursor-pointer \n card-page-actions\n radius-extra pd-micro bg-second\n flex-child-default\n \"\n >\n <IconDelete\n class=\"w-100 h-100\"\n :fill=\"'white'\"\n />\n </button>\n </div>\n\n <!-- <p v-if=\" category.children.length > 0\" class=\"w-100\">Subcategories:</p> -->\n <!-- <CardCategory\n v-for=\"(subcategory,index) in category.children\"\n :key=\"subcategory._id\"\n :category=\"subcategory\" \n class=\"pd-l-small bg-white w-100\"\n /> -->\n\n </div>\n</template>\n\n\n<script setup>\nimport { toRef, onMounted, defineEmits } from 'vue';\nimport { useRoute, useRouter } from 'vue-router';\n\nimport CardCategory from './CardCategory.vue'\n\nimport IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue'\nimport IconAdd from '@martyrs/src/modules/icons/navigation/IconAdd.vue'\nimport IconDelete from '@martyrs/src/modules/icons/navigation/IconDelete.vue'\n\n\nconst props = defineProps({\n category: Object,\n access: {\n type: Boolean,\n default: false\n }\n});\n\nconst emits = defineEmits(['delete']);\n\nconst route = useRoute();\nconst router = useRouter();\n\nconst deleteCategory = (category) => {\n emits('delete', category);\n};\n\n</script>\n\n\n\n<style lang=\"scss\">\n.card-title {\n .card-page-actions {\n display: none;\n }\n\n &:hover {\n .card-page-actions {\n display: block;\n }\n }\n}\n</style>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AA8EA,UAAM,QAAQ;AAEd,UAAM,QAAQ,SAAQ;AACP,cAAS;AAExB,UAAM,iBAAiB,CAAC,aAAa;AACnC,YAAM,UAAU,QAAQ;AAAA,IAC1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"CardCategory.vue.js","sources":["../../../../../../../src/modules/products/components/blocks/CardCategory.vue"],"sourcesContent":["<template>\n <div class=\"flex-v-center bg-light pd-small radius-small flex-column flex\">\n <div class=\"w-100 flex-v-center flex-nowrap gap-thin flex\">\n <img v-if=\"category.photo\" class=\"i-big radius-small object-fit-contain bg-white\" :src=\"(FILE_SERVER_URL || '') + category.photo\"/>\n <h4 class=\"my-handle truncate w-100 w-max-100 mn-r-auto\">{{category.name}}</h4>\n\n <router-link\n v-if=\"access\"\n :to=\"{\n name: route.meta.context === 'backoffice' ? 'BackofficeCategoryEdit' : 'Organization_CategoryEdit',\n params: {\n _id: route.params._id,\n category: category._id\n }\n }\"\n class=\"\n i-medium\n cursor-pointer\n card-page-actions\n radius-extra pd-micro bg-second\n flex-child-default\n \"\n >\n <IconEdit\n class=\"w-100 h-100\"\n classes=\"fill-white\"\n />\n </router-link>\n\n <button\n v-if=\"access\"\n @click=\"deleteCategory(category)\"\n class=\"\n i-medium\n cursor-pointer \n card-page-actions\n radius-extra pd-micro bg-second\n flex-child-default\n \"\n >\n <IconDelete\n class=\"w-100 h-100\"\n :fill=\"'white'\"\n />\n </button>\n </div>\n\n <!-- <p v-if=\" category.children.length > 0\" class=\"w-100\">Subcategories:</p> -->\n <!-- <CardCategory\n v-for=\"(subcategory,index) in category.children\"\n :key=\"subcategory._id\"\n :category=\"subcategory\" \n class=\"pd-l-small bg-white w-100\"\n /> -->\n\n </div>\n</template>\n\n\n<script setup>\nimport { toRef, onMounted, defineEmits } from 'vue';\nimport { useRoute, useRouter } from 'vue-router';\n\nimport CardCategory from './CardCategory.vue'\n\nimport IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue'\nimport IconAdd from '@martyrs/src/modules/icons/navigation/IconAdd.vue'\nimport IconDelete from '@martyrs/src/modules/icons/navigation/IconDelete.vue'\n\n\nconst props = defineProps({\n category: Object,\n access: {\n type: Boolean,\n default: false\n }\n});\n\nconst emits = defineEmits(['delete']);\n\nconst route = useRoute();\nconst router = useRouter();\n\nconst deleteCategory = (category) => {\n emits('delete', category);\n};\n\n</script>\n\n\n\n<style lang=\"scss\">\n.card-title {\n .card-page-actions {\n display: none;\n }\n\n &:hover {\n .card-page-actions {\n display: block;\n }\n }\n}\n</style>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AA8EA,UAAM,QAAQ;AAEd,UAAM,QAAQ,SAAQ;AACP,cAAS;AAExB,UAAM,iBAAiB,CAAC,aAAa;AACnC,YAAM,UAAU,QAAQ;AAAA,IAC1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -8,11 +8,11 @@ const _hoisted_2 = {
8
8
  };
9
9
  const _hoisted_3 = ["src"];
10
10
  const _hoisted_4 = { class: "mn-micro-negative flex flex-column w-100 o-hidden" };
11
- const _hoisted_5 = { class: "w-100 pd-micro t-trim trimmed capitalize t-medium" };
11
+ const _hoisted_5 = { class: "w-100 pd-micro truncate trimmed capitalize fw-medium" };
12
12
  const _hoisted_6 = { class: "flex pd-micro flex-v-center gap-micro w-max" };
13
13
  const _hoisted_7 = {
14
14
  key: 1,
15
- class: "t-transp p-small d-inline-block t-medium"
15
+ class: "t-transp p-small d-inline-block fw-medium"
16
16
  };
17
17
  const _hoisted_8 = { class: "flex gap-thin" };
18
18
  const _hoisted_9 = ["onClick"];
@@ -71,7 +71,7 @@ const _sfc_main = {
71
71
  createElementVNode("div", _hoisted_6, [
72
72
  __props.title ? (openBlock(), createElementBlock("span", {
73
73
  key: 0,
74
- class: normalizeClass([__props.title_class, "t-second d-inline-block t-demi"])
74
+ class: normalizeClass([__props.title_class, "t-grey d-inline-block fw-demi"])
75
75
  }, toDisplayString(__props.title), 3)) : createCommentVNode("", true),
76
76
  __props.subtitle ? (openBlock(), createElementBlock("span", _hoisted_7, toDisplayString(__props.subtitle), 1)) : createCommentVNode("", true)
77
77
  ]),
@@ -81,7 +81,7 @@ const _sfc_main = {
81
81
  (openBlock(true), createElementBlock(Fragment, null, renderList(__props.actions, (action, index) => {
82
82
  return openBlock(), createElementBlock("div", {
83
83
  key: index,
84
- class: normalizeClass([action.class || "bg-light", "radius-small pd-small flex-center flex aspect-1x1 cursor-pointer hover-scale-1"]),
84
+ class: normalizeClass([action.class || "bg-light", "radius-small pd-small flex-center flex aspect-1x1 cursor-pointer hover:scale-[1.05]"]),
85
85
  onClick: () => action.handler(_ctx.item, index)
86
86
  }, [
87
87
  (openBlock(), createBlock(resolveDynamicComponent(action.component), { class: "i-medium" }))
@@ -1 +1 @@
1
- {"version":3,"file":"CardPosition.vue.js","sources":["../../../../../../../src/modules/products/components/blocks/CardPosition.vue"],"sourcesContent":["<template>\n <div class=\"bg-white radius-small pd-small flex-nowrap flex-v-center flex gap-thin\">\n <!-- Thumbnail image -->\n <div v-if=\"showThumbnail\" class=\"aspect-1x1 h-3r flex-child-default radius-small o-hidden\">\n <img\n v-if=\"image && image.length > 0\"\n :src=\"(FILE_SERVER_URL || '') + image\"\n alt=\"Item image\"\n class=\"w-100 h-100 object-fit-cover\"\n />\n <PlaceholderImage v-else class=\"w-100 h-100\" />\n </div>\n \n <!-- Item details -->\n <div class=\"mn-micro-negative flex flex-column w-100 o-hidden\">\n <p class=\"w-100 pd-micro t-trim trimmed capitalize t-medium\">{{ name || 'Unnamed Product' }}</p>\n \n <div class=\"flex pd-micro flex-v-center gap-micro w-max \">\n \t<span v-if=\"title\" :class=\"title_class\" class=\"t-second d-inline-block t-demi\">{{title}}</span>\n \t<span v-if=\"subtitle\" class=\"t-transp p-small d-inline-block t-medium\">{{ subtitle }}</span>\n </div>\n \t<slot></slot>\n </div>\n <!-- <p>\n \n\n <span class=\"p-small t-transp\">\n <template v-if=\"product.quantity\">{{returnCurrency() }}{{product.price}} </template>\n × \n <template v-if=\"product.listing === 'rent' && rentDates.start && rentDates.end\">\n {{ rentalDays }} days\n </template>\n \n <template v-else>\n {{ product.quantity || 0 }} {{ product.unit || 'pcs' }}\n </template>\n </span>\n </p> -->\n \n <!-- Actions -->\n <div class=\"flex gap-thin\">\n <template v-for=\"(action, index) in actions\" :key=\"index\">\n <div \n :class=\"action.class || 'bg-light'\"\n class=\"radius-small pd-small flex-center flex aspect-1x1 cursor-pointer hover-scale-1\"\n @click=\"() => action.handler(item, index)\"\n >\n <component\n :is=\"action.component\"\n class=\"i-medium\"\n />\n </div>\n </template>\n <slot name=\"actions\"></slot>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { defineProps } from 'vue';\nimport PlaceholderImage from '@martyrs/src/modules/icons/placeholders/PlaceholderImage.vue';\nimport { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js';\n\nconst { formatPrice } = useGlobalMixins();\n\nconst props = defineProps({\n\timage: {\n type: String,\n },\n name: {\n type: String,\n },\n title: {\n type: String,\n },\n title_class: {\n \ttype: Array\n },\n subtitle: {\n type: String,\n },\n showThumbnail: {\n type: Boolean,\n default: true\n },\n actions: {\n type: Array,\n default: () => []\n // Expected format:\n // [\n // {\n // component: IconEdit,\n // handler: (item, index) => {},\n // class: 'bg-light' // optional custom class\n // }\n // ]\n }\n});\n</script>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+DA,UAAM,EAAE,YAAW,IAAK,gBAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"CardPosition.vue.js","sources":["../../../../../../../src/modules/products/components/blocks/CardPosition.vue"],"sourcesContent":["<template>\n <div class=\"bg-white radius-small pd-small flex-nowrap flex-v-center flex gap-thin\">\n <!-- Thumbnail image -->\n <div v-if=\"showThumbnail\" class=\"aspect-1x1 h-3r flex-child-default radius-small o-hidden\">\n <img\n v-if=\"image && image.length > 0\"\n :src=\"(FILE_SERVER_URL || '') + image\"\n alt=\"Item image\"\n class=\"w-100 h-100 object-fit-cover\"\n />\n <PlaceholderImage v-else class=\"w-100 h-100\" />\n </div>\n \n <!-- Item details -->\n <div class=\"mn-micro-negative flex flex-column w-100 o-hidden\">\n <p class=\"w-100 pd-micro truncate trimmed capitalize fw-medium\">{{ name || 'Unnamed Product' }}</p>\n \n <div class=\"flex pd-micro flex-v-center gap-micro w-max \">\n \t<span v-if=\"title\" :class=\"title_class\" class=\"t-grey d-inline-block fw-demi\">{{title}}</span>\n \t<span v-if=\"subtitle\" class=\"t-transp p-small d-inline-block fw-medium\">{{ subtitle }}</span>\n </div>\n \t<slot></slot>\n </div>\n <!-- <p>\n \n\n <span class=\"p-small t-transp\">\n <template v-if=\"product.quantity\">{{returnCurrency() }}{{product.price}} </template>\n × \n <template v-if=\"product.listing === 'rent' && rentDates.start && rentDates.end\">\n {{ rentalDays }} days\n </template>\n \n <template v-else>\n {{ product.quantity || 0 }} {{ product.unit || 'pcs' }}\n </template>\n </span>\n </p> -->\n \n <!-- Actions -->\n <div class=\"flex gap-thin\">\n <template v-for=\"(action, index) in actions\" :key=\"index\">\n <div \n :class=\"action.class || 'bg-light'\"\n class=\"radius-small pd-small flex-center flex aspect-1x1 cursor-pointer hover:scale-[1.05]\"\n @click=\"() => action.handler(item, index)\"\n >\n <component\n :is=\"action.component\"\n class=\"i-medium\"\n />\n </div>\n </template>\n <slot name=\"actions\"></slot>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { defineProps } from 'vue';\nimport PlaceholderImage from '@martyrs/src/modules/icons/placeholders/PlaceholderImage.vue';\nimport { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js';\n\nconst { formatPrice } = useGlobalMixins();\n\nconst props = defineProps({\n\timage: {\n type: String,\n },\n name: {\n type: String,\n },\n title: {\n type: String,\n },\n title_class: {\n \ttype: Array\n },\n subtitle: {\n type: String,\n },\n showThumbnail: {\n type: Boolean,\n default: true\n },\n actions: {\n type: Array,\n default: () => []\n // Expected format:\n // [\n // {\n // component: IconEdit,\n // handler: (item, index) => {},\n // class: 'bg-light' // optional custom class\n // }\n // ]\n }\n});\n</script>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+DA,UAAM,EAAE,YAAW,IAAK,gBAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -13,16 +13,16 @@ const _hoisted_3 = { class: "w-100 h-100 pos-relative" };
13
13
  const _hoisted_4 = ["src"];
14
14
  const _hoisted_5 = {
15
15
  key: 2,
16
- class: "pos-absolute bg-white t-black pd-thin radius-medium p-small t-medium pos-t-medium pos-l-medium"
16
+ class: "pos-absolute bg-white t-black pd-thin radius-medium p-small fw-medium pos-t-small pos-l-small"
17
17
  };
18
18
  const _hoisted_6 = { class: "pd-small cols-1 t-left" };
19
19
  const _hoisted_7 = {
20
20
  key: 0,
21
- class: "t-semi t-transp p-small mn-b-thin"
21
+ class: "fw-semi t-transp p-small mn-b-thin"
22
22
  };
23
23
  const _hoisted_8 = {
24
24
  style: { "hyphens": "auto" },
25
- class: "word-break t-truncate p-regular mn-b-micro w-100 w-max-100"
25
+ class: "word-break truncate p-regular mn-b-micro w-100 w-max-100"
26
26
  };
27
27
  const _hoisted_9 = {
28
28
  key: 1,
@@ -1 +1 @@
1
- {"version":3,"file":"CardProduct.vue.js","sources":["../../../../../../../src/modules/products/components/blocks/CardProduct.vue"],"sourcesContent":["<template>\n\t<div \n\t\tclass=\"\n\t\t\tradius-medium \n\t\t\tcols-1\n\t\t\to-hidden\n\t\t\tpos-relative\n\t\t\"\n\t>\n\t\t<!-- Edit Button -->\n\t\t<router-link\n\t\t\tv-if=\"access\"\n :to=\"editPath\"\n class=\"\n \tz-index-2\n cursor-pointer \n pos-absolute pos-t-regular pos-r-regular\n radius-extra pd-thin bg-second\n \"\n >\n <IconEdit\n class=\"i-medium\"\n classes=\"fill-white\"\n />\n </router-link>\n\n\t\t<!-- Product Image Sqaure -->\n\t\t<div \n\t\t\tclass=\"o-hidden d-flex pd-thin pd-b-zero radius-medium o-hidden w-100 pos-relative aspect-1x1\"\n\t\t>\n\t\t\t<div class=\"w-100 h-100 pos-relative\">\n\t\t\t\t<!-- Image Wrappers -->\n\t\t\t\t<img loading=\"lazy\" \n\t\t\t\t\tv-if=\"product.images?.[0]\" \n\t\t\t\t\t:src=\"(FILE_SERVER_URL || '') + (product.images?.[0] || '').split('/').slice(0, -1).join('/') + '/thumbnail_' + (product.images?.[0] || '').split('/').pop()\"\n\t\t\t\t\tclass=\"pos-absolute object-fit-cover radius-small h-max-100 h-100 w-100\"\n\t\t\t\t>\n\n\t\t\t\t<PlaceholderImage\n\t\t\t\t\tv-else\n\t\t\t\t\tclass=\"radius-medium h-100 w-100\"\n\t\t\t\t/>\n\t\t\t\t<span v-if=\"product.available <= 0 && product.listing !== 'rent'\" class=\"pos-absolute bg-white t-black pd-thin radius-medium p-small t-medium pos-t-medium pos-l-medium\">Out of Stock</span>\n\t\t\t\t<THC v-if=\"product.attributes?.length > 0 && product.attributes[1]?.name === 'THC'\" :product=\"product\" />\n\t\t\t</div>\n\t\t</div>\n\n\t\t<!-- Product Info Start -->\n\t\t<div class=\"pd-small cols-1 t-left\">\n\t\t\t<!-- Detail -->\n\t\t\t<p\n\t\t\t\tv-if=\"product.attributes?.length > 0\"\n\t\t\t\tclass=\"t-semi t-transp p-small mn-b-thin\"\n\t\t\t>\n\t\t\t\t{{product.attributes[0]?.value}}\n\t\t\t</p>\n\t\t\t<!-- Name -->\n\t\t\t<span style=\" hyphens: auto;\" class=\"word-break t-truncate p-regular mn-b-micro w-100 w-max-100 \">\n\t\t\t\t{{product.name}}\n\t\t\t</span>\n\n\t\t\t<p \n\t\t\t\tv-if=\"product.description && !product.translations && product.listing !== 'rent'\" \n\t\t\t\tclass=\"mn-b-small t-transp p-small\"\n\t\t\t>\n\t\t\t\t{{product.description.substring(0, 99)}}...\n\t\t\t</p>\n\n\t\t\t<slot></slot>\n\n\t\t\t<div v-if=\"product.variants?.length > 0\" class=\"flex-v-center flex-nowrap flex\">\n\t\t\t\t<Price \n\t\t\t\t\t:product=\"product\" \n\t\t\t\t\tsize=\"small\" \n\t\t\t\t\tclass=\"bg-white h-100 p-regular flex flex-center pd-thin radius-small mn-r-auto\" \n\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t<button\n\t\t\t\t\tv-if=\"showAddToCart\"\n\t\t class=\"\n\t\t cursor-pointer \n\t\t radius-extra pd-thin bg-main\n\t\t \"\n\t\t >\n\t\t <IconShopcartAdd\n\t\t\t\t\t\tclass=\"icon-button-main i-medium\"\n\t\t\t\t\t/>\n\t\t </button>\n\t\t </div>\n\t\t</div>\n\n\t</div>\n\n</template>\n\n\n<script setup=\"props\">\n\timport {computed } from 'vue'\n\timport { useI18n } from 'vue-i18n'\n\timport { useRoute } from 'vue-router'\n\n\timport IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue'\n\timport IconShopcartAdd from '@martyrs/src/modules/icons/actions/IconShopcartAdd.vue'\n\n\timport THC from '@martyrs/src/modules/products/components/elements/THC.vue'\n\timport Price from '@martyrs/src/modules/products/components/elements/Price.vue'\n\n\timport PlaceholderImage from '@martyrs/src/modules/icons/placeholders/PlaceholderImage.vue'\n\n\tconst route = useRoute()\n\n\tconst props = defineProps({\n\t\tproduct: {\n\t\t\ttype: Object\n\t\t},\n\t\taccess: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t},\n\t\torganization: {\n\t\t\ttype: String\n\t\t},\n\t\tshowAddToCart: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true\n\t\t},\n\t\tuser: {\n\t\t\ttype: [Object, String]\n\t\t},\n\t\ttype: {\n\t\t\ttype: Object\n\t\t}\n\t})\n\n const { t } = useI18n()\n\n\tconst editPath = computed(() => {\n\t\tif (route.meta.context === 'backoffice') {\n\t\t\treturn `/backoffice/products/${props.product._id}/edit`\n\t\t}\n\t\tif (route.meta.context === 'organization' || props.organization) {\n\t\t\tconst orgId = props.organization || route.params._id\n\t\t\treturn `/organizations/${orgId}/products/${props.product._id}/edit`\n\t\t}\n\t\treturn `/products/${props.product._id}/edit`\n\t})\n</script>\n\n<style lang=\"scss\">\n.word-break {\n width: 100%; \n overflow: auto;\n overflow-wrap: break-word;\n word-break: break-all;\n white-space: -moz-pre-wrap;\n white-space: -hp-pre-wrap;\n white-space: -o-pre-wrap;\n white-space: -pre-wrap; \n white-space: pre-wrap; \n white-space: pre-line; \n word-wrap: break-word;\n}\n</style>\n\n\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6GC,UAAM,QAAQ,SAAQ;AAEtB,UAAM,QAAQ;AAuBb,UAAM,EAAE,EAAC,IAAK,QAAO;AAEtB,UAAM,WAAW,SAAS,MAAM;AAC/B,UAAI,MAAM,KAAK,YAAY,cAAc;AACxC,eAAO,wBAAwB,MAAM,QAAQ,GAAG;AAAA,MACjD;AACA,UAAI,MAAM,KAAK,YAAY,kBAAkB,MAAM,cAAc;AAChE,cAAM,QAAQ,MAAM,gBAAgB,MAAM,OAAO;AACjD,eAAO,kBAAkB,KAAK,aAAa,MAAM,QAAQ,GAAG;AAAA,MAC7D;AACA,aAAO,aAAa,MAAM,QAAQ,GAAG;AAAA,IACtC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"CardProduct.vue.js","sources":["../../../../../../../src/modules/products/components/blocks/CardProduct.vue"],"sourcesContent":["<template>\n\t<div \n\t\tclass=\"\n\t\t\tradius-medium \n\t\t\tcols-1\n\t\t\to-hidden\n\t\t\tpos-relative\n\t\t\"\n\t>\n\t\t<!-- Edit Button -->\n\t\t<router-link\n\t\t\tv-if=\"access\"\n :to=\"editPath\"\n class=\"\n \tz-index-2\n cursor-pointer \n pos-absolute pos-t-regular pos-r-regular\n radius-extra pd-thin bg-second\n \"\n >\n <IconEdit\n class=\"i-medium\"\n classes=\"fill-white\"\n />\n </router-link>\n\n\t\t<!-- Product Image Sqaure -->\n\t\t<div \n\t\t\tclass=\"o-hidden d-flex pd-thin pd-b-zero radius-medium o-hidden w-100 pos-relative aspect-1x1\"\n\t\t>\n\t\t\t<div class=\"w-100 h-100 pos-relative\">\n\t\t\t\t<!-- Image Wrappers -->\n\t\t\t\t<img loading=\"lazy\" \n\t\t\t\t\tv-if=\"product.images?.[0]\" \n\t\t\t\t\t:src=\"(FILE_SERVER_URL || '') + (product.images?.[0] || '').split('/').slice(0, -1).join('/') + '/thumbnail_' + (product.images?.[0] || '').split('/').pop()\"\n\t\t\t\t\tclass=\"pos-absolute object-fit-cover radius-small h-max-100 h-100 w-100\"\n\t\t\t\t>\n\n\t\t\t\t<PlaceholderImage\n\t\t\t\t\tv-else\n\t\t\t\t\tclass=\"radius-medium h-100 w-100\"\n\t\t\t\t/>\n\t\t\t\t<span v-if=\"product.available <= 0 && product.listing !== 'rent'\" class=\"pos-absolute bg-white t-black pd-thin radius-medium p-small fw-medium pos-t-small pos-l-small\">Out of Stock</span>\n\t\t\t\t<THC v-if=\"product.attributes?.length > 0 && product.attributes[1]?.name === 'THC'\" :product=\"product\" />\n\t\t\t</div>\n\t\t</div>\n\n\t\t<!-- Product Info Start -->\n\t\t<div class=\"pd-small cols-1 t-left\">\n\t\t\t<!-- Detail -->\n\t\t\t<p\n\t\t\t\tv-if=\"product.attributes?.length > 0\"\n\t\t\t\tclass=\"fw-semi t-transp p-small mn-b-thin\"\n\t\t\t>\n\t\t\t\t{{product.attributes[0]?.value}}\n\t\t\t</p>\n\t\t\t<!-- Name -->\n\t\t\t<span style=\" hyphens: auto;\" class=\"word-break truncate p-regular mn-b-micro w-100 w-max-100 \">\n\t\t\t\t{{product.name}}\n\t\t\t</span>\n\n\t\t\t<p \n\t\t\t\tv-if=\"product.description && !product.translations && product.listing !== 'rent'\" \n\t\t\t\tclass=\"mn-b-small t-transp p-small\"\n\t\t\t>\n\t\t\t\t{{product.description.substring(0, 99)}}...\n\t\t\t</p>\n\n\t\t\t<slot></slot>\n\n\t\t\t<div v-if=\"product.variants?.length > 0\" class=\"flex-v-center flex-nowrap flex\">\n\t\t\t\t<Price \n\t\t\t\t\t:product=\"product\" \n\t\t\t\t\tsize=\"small\" \n\t\t\t\t\tclass=\"bg-white h-100 p-regular flex flex-center pd-thin radius-small mn-r-auto\" \n\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t<button\n\t\t\t\t\tv-if=\"showAddToCart\"\n\t\t class=\"\n\t\t cursor-pointer \n\t\t radius-extra pd-thin bg-main\n\t\t \"\n\t\t >\n\t\t <IconShopcartAdd\n\t\t\t\t\t\tclass=\"icon-button-main i-medium\"\n\t\t\t\t\t/>\n\t\t </button>\n\t\t </div>\n\t\t</div>\n\n\t</div>\n\n</template>\n\n\n<script setup=\"props\">\n\timport {computed } from 'vue'\n\timport { useI18n } from 'vue-i18n'\n\timport { useRoute } from 'vue-router'\n\n\timport IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue'\n\timport IconShopcartAdd from '@martyrs/src/modules/icons/actions/IconShopcartAdd.vue'\n\n\timport THC from '@martyrs/src/modules/products/components/elements/THC.vue'\n\timport Price from '@martyrs/src/modules/products/components/elements/Price.vue'\n\n\timport PlaceholderImage from '@martyrs/src/modules/icons/placeholders/PlaceholderImage.vue'\n\n\tconst route = useRoute()\n\n\tconst props = defineProps({\n\t\tproduct: {\n\t\t\ttype: Object\n\t\t},\n\t\taccess: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t},\n\t\torganization: {\n\t\t\ttype: String\n\t\t},\n\t\tshowAddToCart: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true\n\t\t},\n\t\tuser: {\n\t\t\ttype: [Object, String]\n\t\t},\n\t\ttype: {\n\t\t\ttype: Object\n\t\t}\n\t})\n\n const { t } = useI18n()\n\n\tconst editPath = computed(() => {\n\t\tif (route.meta.context === 'backoffice') {\n\t\t\treturn `/backoffice/products/${props.product._id}/edit`\n\t\t}\n\t\tif (route.meta.context === 'organization' || props.organization) {\n\t\t\tconst orgId = props.organization || route.params._id\n\t\t\treturn `/organizations/${orgId}/products/${props.product._id}/edit`\n\t\t}\n\t\treturn `/products/${props.product._id}/edit`\n\t})\n</script>\n\n<style lang=\"scss\">\n.word-break {\n width: 100%; \n overflow: auto;\n overflow-wrap: break-word;\n word-break: break-all;\n white-space: -moz-pre-wrap;\n white-space: -hp-pre-wrap;\n white-space: -o-pre-wrap;\n white-space: -pre-wrap; \n white-space: pre-wrap; \n white-space: pre-line; \n word-wrap: break-word;\n}\n</style>\n\n\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6GC,UAAM,QAAQ,SAAQ;AAEtB,UAAM,QAAQ;AAuBb,UAAM,EAAE,EAAC,IAAK,QAAO;AAEtB,UAAM,WAAW,SAAS,MAAM;AAC/B,UAAI,MAAM,KAAK,YAAY,cAAc;AACxC,eAAO,wBAAwB,MAAM,QAAQ,GAAG;AAAA,MACjD;AACA,UAAI,MAAM,KAAK,YAAY,kBAAkB,MAAM,cAAc;AAChE,cAAM,QAAQ,MAAM,gBAAgB,MAAM,OAAO;AACjD,eAAO,kBAAkB,KAAK,aAAa,MAAM,QAAQ,GAAG;AAAA,MAC7D;AACA,aAAO,aAAa,MAAM,QAAQ,GAAG;AAAA,IACtC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -10,7 +10,7 @@ const _hoisted_2 = { class: "mn-b-small flex-nowrap flex flex-v-center" };
10
10
  const _hoisted_3 = { class: "flex flex-column flex-wrap gap-thin" };
11
11
  const _hoisted_4 = ["onClick"];
12
12
  const _hoisted_5 = { class: "flex flex-wrap gap-thin flex-v-center w-100" };
13
- const _hoisted_6 = { class: "discount-name t-semi p-regular" };
13
+ const _hoisted_6 = { class: "discount-name fw-semi p-regular" };
14
14
  const _hoisted_7 = { class: "t-main p-regular" };
15
15
  const _hoisted_8 = {
16
16
  key: 0,
@@ -88,13 +88,13 @@ const _sfc_main = {
88
88
  return __props.discounts && __props.discounts.length ? (openBlock(), createElementBlock("div", _hoisted_1, [
89
89
  createElementVNode("div", _hoisted_2, [
90
90
  createVNode(_sfc_main$1, { class: "mn-r-micro i-medium" }),
91
- _cache[0] || (_cache[0] = createElementVNode("p", { class: "t-medium" }, "Special Offers", -1))
91
+ _cache[0] || (_cache[0] = createElementVNode("p", { class: "fw-medium" }, "Special Offers", -1))
92
92
  ]),
93
93
  createElementVNode("div", _hoisted_3, [
94
94
  (openBlock(true), createElementBlock(Fragment, null, renderList(__props.discounts, (discount, index) => {
95
95
  return openBlock(), createElementBlock("div", {
96
96
  key: index,
97
- class: "discount-card bg-light pd-small radius-small br-1px br-solid br-light cursor-pointer",
97
+ class: "discount-card bg-light pd-small radius-small br-1px br-light cursor-pointer",
98
98
  onClick: ($event) => selectDiscount(discount)
99
99
  }, [
100
100
  createElementVNode("div", _hoisted_5, [
@@ -122,7 +122,7 @@ const _sfc_main = {
122
122
  };
123
123
  }
124
124
  };
125
- const ProductDiscounts = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-def3f361"]]);
125
+ const ProductDiscounts = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-75ed8485"]]);
126
126
  export {
127
127
  ProductDiscounts as default
128
128
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ProductDiscounts.vue.js","sources":["../../../../../../../src/modules/products/components/blocks/ProductDiscounts.vue"],"sourcesContent":["<template>\n <div v-if=\"discounts && discounts.length\">\n <div class=\"mn-b-small flex-nowrap flex flex-v-center\">\n <IconDiscount class=\"mn-r-micro i-medium\"/>\n <p class=\"t-medium\">Special Offers</p>\n </div>\n\n <div class=\"flex flex-column flex-wrap gap-thin\">\n <div \n v-for=\"(discount, index) in discounts\" \n :key=\"index\" \n class=\"discount-card bg-light pd-small radius-small br-1px br-solid br-light cursor-pointer \"\n @click=\"selectDiscount(discount)\"\n >\n <div class=\"flex flex-wrap gap-thin flex-v-center w-100\">\n\n <Tooltip :text=\"discount.description || 'No description'\">\n <span class=\"discount-name t-semi p-regular\">{{ discount.name }}</span>\n </Tooltip>\n\n <span class=\"t-main p-regular\">\n {{returnCurrency()}}{{ discount.value }} per {{ currentVariant?.quantity || 1 }}{{ currentVariant?.unit || pcs }}\n </span>\n\n </div>\n \n <p v-if=\"discount.description\" class=\"t-small mn-t-thin t-transp\">{{ discount.description }}</p>\n <div v-if=\"getConditionsAsChips(discount).length > 0\" class=\"mn-t-small\"><Chips class=\"\" :chips=\"getConditionsAsChips(discount)\" /></div>\n </div>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { computed } from 'vue';\nimport IconDiscount from '@martyrs/src/modules/icons/entities/IconDiscount.vue'\nimport Chips from '@martyrs/src/components/Chips/Chips.vue';\nimport Tooltip from '@martyrs/src/components/Tooltip/Tooltip.vue';\nimport { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js';\n\nconst { returnCurrency } = useGlobalMixins();\n\nconst props = defineProps({\n discounts: { \n type: Array, \n default: () => [] \n },\n regularPrice: { \n type: [String, Number], \n default: 0 \n },\n selectedVariant: {\n type: Object,\n default: null\n },\n productVariants: {\n type: Array,\n default: () => []\n }\n});\n\nconst emit = defineEmits(['select-discount']);\n\n// Helper to determine if a discount has date conditions\nconst hasDateCondition = (discount) => {\n return discount.date && (discount.date.start || discount.date.end);\n};\n\n// Helper to determine if a discount has time conditions\nconst hasTimeCondition = (discount) => {\n return discount.time && (discount.time.start || discount.time.end);\n};\n\n// Format date range for display\nconst formatDateRange = (dateRange) => {\n if (!dateRange) return '';\n \n const start = dateRange.start ? new Date(dateRange.start).toLocaleDateString() : 'Anytime';\n const end = dateRange.end ? new Date(dateRange.end).toLocaleDateString() : 'No end date';\n \n return `${start}-${end}`;\n};\n\n// Format time range for display\nconst formatTimeRange = (timeRange) => {\n if (!timeRange) return '';\n \n const start = timeRange.start || 'Anytime';\n const end = timeRange.end || 'No end time';\n \n // Check if we're referencing today\n const now = new Date();\n const isToday = true; // Simplification - in a real app we'd check if the date range includes today\n \n return isToday ? `${start}-${end} today` : `${start}-${end}`;\n};\n\n// Get the current variant (selected or default to first)\nconst currentVariant = computed(() => {\n return props.selectedVariant || (props.productVariants?.length > 0 ? props.productVariants[0] : null);\n});\n\nconst getConditionsAsChips = (discount) => {\n const chips = [];\n \n // Quantity condition - используем quantity из текущего варианта, а не из скидки\n // if (currentVariant.value?.quantity && currentVariant.value.quantity > 0) {\n // chips.push({ \n // text: `+${discount.quantity}`, \n // });\n // }\n \n // Date condition\n if (hasDateCondition(discount)) {\n chips.push({ \n text: `Valid: ${formatDateRange(discount.date)}` \n });\n }\n \n // Time condition\n if (hasTimeCondition(discount)) {\n chips.push({ \n text: `Available: ${formatTimeRange(discount.time)}` \n });\n }\n \n return chips;\n};\n// Handle discount selection\nconst selectDiscount = (discount) => {\n emit('select-discount', discount);\n};\n</script>\n\n<style scoped>\n.discount-card {\n transition: all 0.2s ease;\n}\n\n.discount-card:hover {\n border-color: rgb(var(--main));\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCA,UAAM,EAAE,eAAc,IAAK,gBAAe;AAE1C,UAAM,QAAQ;AAmBd,UAAM,OAAO;AAGb,UAAM,mBAAmB,CAAC,aAAa;AACrC,aAAO,SAAS,SAAS,SAAS,KAAK,SAAS,SAAS,KAAK;AAAA,IAChE;AAGA,UAAM,mBAAmB,CAAC,aAAa;AACrC,aAAO,SAAS,SAAS,SAAS,KAAK,SAAS,SAAS,KAAK;AAAA,IAChE;AAGA,UAAM,kBAAkB,CAAC,cAAc;AACrC,UAAI,CAAC,UAAW,QAAO;AAEvB,YAAM,QAAQ,UAAU,QAAQ,IAAI,KAAK,UAAU,KAAK,EAAE,mBAAkB,IAAK;AACjF,YAAM,MAAM,UAAU,MAAM,IAAI,KAAK,UAAU,GAAG,EAAE,mBAAkB,IAAK;AAE3E,aAAO,GAAG,KAAK,IAAI,GAAG;AAAA,IACxB;AAGA,UAAM,kBAAkB,CAAC,cAAc;AACrC,UAAI,CAAC,UAAW,QAAO;AAEvB,YAAM,QAAQ,UAAU,SAAS;AACjC,YAAM,MAAM,UAAU,OAAO;AAI7B,YAAM,UAAU;AAEhB,aAAO,UAAU,GAAG,KAAK,IAAI,GAAG,WAAW,GAAG,KAAK,IAAI,GAAG;AAAA,IAC5D;AAGA,UAAM,iBAAiB,SAAS,MAAM;AACpC,aAAO,MAAM,oBAAoB,MAAM,iBAAiB,SAAS,IAAI,MAAM,gBAAgB,CAAC,IAAI;AAAA,IAClG,CAAC;AAED,UAAM,uBAAuB,CAAC,aAAa;AACzC,YAAM,QAAQ,CAAA;AAUd,UAAI,iBAAiB,QAAQ,GAAG;AAC9B,cAAM,KAAK;AAAA,UACT,MAAM,UAAU,gBAAgB,SAAS,IAAI,CAAC;AAAA,QACpD,CAAK;AAAA,MACH;AAGA,UAAI,iBAAiB,QAAQ,GAAG;AAC9B,cAAM,KAAK;AAAA,UACT,MAAM,cAAc,gBAAgB,SAAS,IAAI,CAAC;AAAA,QACxD,CAAK;AAAA,MACH;AAEA,aAAO;AAAA,IACT;AAEA,UAAM,iBAAiB,CAAC,aAAa;AACnC,WAAK,mBAAmB,QAAQ;AAAA,IAClC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ProductDiscounts.vue.js","sources":["../../../../../../../src/modules/products/components/blocks/ProductDiscounts.vue"],"sourcesContent":["<template>\n <div v-if=\"discounts && discounts.length\">\n <div class=\"mn-b-small flex-nowrap flex flex-v-center\">\n <IconDiscount class=\"mn-r-micro i-medium\"/>\n <p class=\"fw-medium\">Special Offers</p>\n </div>\n\n <div class=\"flex flex-column flex-wrap gap-thin\">\n <div \n v-for=\"(discount, index) in discounts\" \n :key=\"index\" \n class=\"discount-card bg-light pd-small radius-small br-1px br-light cursor-pointer \"\n @click=\"selectDiscount(discount)\"\n >\n <div class=\"flex flex-wrap gap-thin flex-v-center w-100\">\n\n <Tooltip :text=\"discount.description || 'No description'\">\n <span class=\"discount-name fw-semi p-regular\">{{ discount.name }}</span>\n </Tooltip>\n\n <span class=\"t-main p-regular\">\n {{returnCurrency()}}{{ discount.value }} per {{ currentVariant?.quantity || 1 }}{{ currentVariant?.unit || pcs }}\n </span>\n\n </div>\n \n <p v-if=\"discount.description\" class=\"t-small mn-t-thin t-transp\">{{ discount.description }}</p>\n <div v-if=\"getConditionsAsChips(discount).length > 0\" class=\"mn-t-small\"><Chips class=\"\" :chips=\"getConditionsAsChips(discount)\" /></div>\n </div>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { computed } from 'vue';\nimport IconDiscount from '@martyrs/src/modules/icons/entities/IconDiscount.vue'\nimport Chips from '@martyrs/src/components/Chips/Chips.vue';\nimport Tooltip from '@martyrs/src/components/Tooltip/Tooltip.vue';\nimport { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js';\n\nconst { returnCurrency } = useGlobalMixins();\n\nconst props = defineProps({\n discounts: { \n type: Array, \n default: () => [] \n },\n regularPrice: { \n type: [String, Number], \n default: 0 \n },\n selectedVariant: {\n type: Object,\n default: null\n },\n productVariants: {\n type: Array,\n default: () => []\n }\n});\n\nconst emit = defineEmits(['select-discount']);\n\n// Helper to determine if a discount has date conditions\nconst hasDateCondition = (discount) => {\n return discount.date && (discount.date.start || discount.date.end);\n};\n\n// Helper to determine if a discount has time conditions\nconst hasTimeCondition = (discount) => {\n return discount.time && (discount.time.start || discount.time.end);\n};\n\n// Format date range for display\nconst formatDateRange = (dateRange) => {\n if (!dateRange) return '';\n \n const start = dateRange.start ? new Date(dateRange.start).toLocaleDateString() : 'Anytime';\n const end = dateRange.end ? new Date(dateRange.end).toLocaleDateString() : 'No end date';\n \n return `${start}-${end}`;\n};\n\n// Format time range for display\nconst formatTimeRange = (timeRange) => {\n if (!timeRange) return '';\n \n const start = timeRange.start || 'Anytime';\n const end = timeRange.end || 'No end time';\n \n // Check if we're referencing today\n const now = new Date();\n const isToday = true; // Simplification - in a real app we'd check if the date range includes today\n \n return isToday ? `${start}-${end} today` : `${start}-${end}`;\n};\n\n// Get the current variant (selected or default to first)\nconst currentVariant = computed(() => {\n return props.selectedVariant || (props.productVariants?.length > 0 ? props.productVariants[0] : null);\n});\n\nconst getConditionsAsChips = (discount) => {\n const chips = [];\n \n // Quantity condition - используем quantity из текущего варианта, а не из скидки\n // if (currentVariant.value?.quantity && currentVariant.value.quantity > 0) {\n // chips.push({ \n // text: `+${discount.quantity}`, \n // });\n // }\n \n // Date condition\n if (hasDateCondition(discount)) {\n chips.push({ \n text: `Valid: ${formatDateRange(discount.date)}` \n });\n }\n \n // Time condition\n if (hasTimeCondition(discount)) {\n chips.push({ \n text: `Available: ${formatTimeRange(discount.time)}` \n });\n }\n \n return chips;\n};\n// Handle discount selection\nconst selectDiscount = (discount) => {\n emit('select-discount', discount);\n};\n</script>\n\n<style scoped>\n.discount-card {\n transition: all 0.2s ease;\n}\n\n.discount-card:hover {\n border-color: rgb(var(--main));\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCA,UAAM,EAAE,eAAc,IAAK,gBAAe;AAE1C,UAAM,QAAQ;AAmBd,UAAM,OAAO;AAGb,UAAM,mBAAmB,CAAC,aAAa;AACrC,aAAO,SAAS,SAAS,SAAS,KAAK,SAAS,SAAS,KAAK;AAAA,IAChE;AAGA,UAAM,mBAAmB,CAAC,aAAa;AACrC,aAAO,SAAS,SAAS,SAAS,KAAK,SAAS,SAAS,KAAK;AAAA,IAChE;AAGA,UAAM,kBAAkB,CAAC,cAAc;AACrC,UAAI,CAAC,UAAW,QAAO;AAEvB,YAAM,QAAQ,UAAU,QAAQ,IAAI,KAAK,UAAU,KAAK,EAAE,mBAAkB,IAAK;AACjF,YAAM,MAAM,UAAU,MAAM,IAAI,KAAK,UAAU,GAAG,EAAE,mBAAkB,IAAK;AAE3E,aAAO,GAAG,KAAK,IAAI,GAAG;AAAA,IACxB;AAGA,UAAM,kBAAkB,CAAC,cAAc;AACrC,UAAI,CAAC,UAAW,QAAO;AAEvB,YAAM,QAAQ,UAAU,SAAS;AACjC,YAAM,MAAM,UAAU,OAAO;AAI7B,YAAM,UAAU;AAEhB,aAAO,UAAU,GAAG,KAAK,IAAI,GAAG,WAAW,GAAG,KAAK,IAAI,GAAG;AAAA,IAC5D;AAGA,UAAM,iBAAiB,SAAS,MAAM;AACpC,aAAO,MAAM,oBAAoB,MAAM,iBAAiB,SAAS,IAAI,MAAM,gBAAgB,CAAC,IAAI;AAAA,IAClG,CAAC;AAED,UAAM,uBAAuB,CAAC,aAAa;AACzC,YAAM,QAAQ,CAAA;AAUd,UAAI,iBAAiB,QAAQ,GAAG;AAC9B,cAAM,KAAK;AAAA,UACT,MAAM,UAAU,gBAAgB,SAAS,IAAI,CAAC;AAAA,QACpD,CAAK;AAAA,MACH;AAGA,UAAI,iBAAiB,QAAQ,GAAG;AAC9B,cAAM,KAAK;AAAA,UACT,MAAM,cAAc,gBAAgB,SAAS,IAAI,CAAC;AAAA,QACxD,CAAK;AAAA,MACH;AAEA,aAAO;AAAA,IACT;AAEA,UAAM,iBAAiB,CAAC,aAAa;AACnC,WAAK,mBAAmB,QAAQ;AAAA,IAClC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -5,7 +5,7 @@ import PlaceholderImage from "../../../icons/placeholders/PlaceholderImage.vue.j
5
5
  import Image360 from "../elements/Image360.vue.js";
6
6
  /* empty css */
7
7
  import _export_sfc from "../../../../../../_virtual/_plugin-vue_export-helper.js";
8
- const _hoisted_1 = { class: "w-100 bs-heavy h-max mobile:pos-relative tablet:pos-relative pos-sticky pos-t-0 pd-medium o-hidden bg-light radius-medium gap-small flex-nowrap flex-row mobile:flex-column flex pos-relative" };
8
+ const _hoisted_1 = { class: "w-100 bs-big h-max mobile:pos-relative tablet:pos-relative pos-sticky pos-t-0 pd-medium o-hidden bg-light radius-medium gap-small flex-nowrap flex-row mobile:flex-column flex pos-relative" };
9
9
  const _hoisted_2 = ["src"];
10
10
  const _hoisted_3 = {
11
11
  key: 0,
@@ -78,7 +78,7 @@ const _sfc_main = {
78
78
  __props.images.length > 5 ? (openBlock(), createElementBlock("div", {
79
79
  key: 0,
80
80
  onClick: _cache[1] || (_cache[1] = ($event) => openPopup(5)),
81
- class: "aspect-1x1 radius-small o-hidden thumbnail flex flex-center t-medium t-black bg-white"
81
+ class: "aspect-1x1 radius-small o-hidden thumbnail flex flex-center fw-medium t-black bg-white"
82
82
  }, " +" + toDisplayString(__props.images.length - 5), 1)) : createCommentVNode("", true)
83
83
  ])
84
84
  ])) : createCommentVNode("", true),
@@ -99,7 +99,7 @@ const _sfc_main = {
99
99
  };
100
100
  }
101
101
  };
102
- const ProductImages = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-eddb4b2b"]]);
102
+ const ProductImages = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-2037f0f7"]]);
103
103
  export {
104
104
  ProductImages as default
105
105
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ProductImages.vue.js","sources":["../../../../../../../src/modules/products/components/blocks/ProductImages.vue"],"sourcesContent":["<template>\n <div class=\"w-100 bs-heavy h-max mobile:pos-relative tablet:pos-relative pos-sticky pos-t-0 pd-medium o-hidden bg-light radius-medium gap-small flex-nowrap flex-row mobile:flex-column flex pos-relative\">\n <!-- Main image container -->\n <div class=\"order-1 w-100 bg-light radius-small o-hidden\" @click=\"openPopup(currentImageIndex)\">\n <Image360\n v-if=\"product && product.image3d\"\n class=\"h-100 w-100\"\n :imagePath=\"`/assets/images/products/${product.image3d}`\"\n :imageCount=\"36\"\n />\n <img\n loading=\"lazy\"\n v-if=\"images[currentImageIndex] && !product?.image3d\"\n class=\"h-100 flex-child-default bg-white radius-small w-100\"\n style=\"object-fit: contain;\"\n :src=\"(FILE_SERVER_URL || '') + images[currentImageIndex]\"\n />\n <PlaceholderImage\n v-if=\"!images[currentImageIndex] && !product?.image3d\"\n class=\"h-100 w-100\"\n style=\"object-fit: cover;\"\n />\n </div>\n \n <!-- Thumbnails -->\n <div v-if=\"images.length > 1\" class=\"mobile:order-1 order-0 w-5r mobile:w-100\">\n <div class=\"w-100 mobile:flex-row flex-column flex flex-nowrap gap-thin\">\n <img loading=\"lazy\" \n v-for=\"(image, index) in images.slice(0, 5)\"\n :key=\"index\"\n :src=\"(FILE_SERVER_URL || '') + image\" \n @click=\"currentImageIndex = index\"\n class=\"aspect-1x1 radius-small bg-white o-hidden thumbnail\"\n :class=\"{ 'active': currentImageIndex === index }\"\n />\n <div\n v-if=\"images.length > 5\"\n @click=\"openPopup(5)\"\n class=\"aspect-1x1 radius-small o-hidden thumbnail flex flex-center t-medium t-black bg-white \"\n >\n +{{ images.length - 5 }}\n </div>\n </div>\n </div>\n \n <!-- Popup with photo viewer -->\n <Popup @close-popup=\"closePopup\" :isPopupOpen=\"isPopupVisible\" class=\"radius-zero w-100 o-hidden\">\n <PhotoViewer\n :photos=\"images.map(img => (FILE_SERVER_URL || '') + img)\"\n :initialIndex=\"selectedImageIndex\"\n />\n </Popup>\n </div>\n</template>\n\n<script setup>\nimport { ref } from \"vue\";\nimport Popup from '@martyrs/src/components/Popup/Popup.vue';\nimport PhotoViewer from '@martyrs/src/components/PhotoViewer/PhotoViewer.vue';\nimport PlaceholderImage from '@martyrs/src/modules/icons/placeholders/PlaceholderImage.vue'\nimport Image360 from '@martyrs/src/modules/products/components/elements/Image360.vue'\n\nconst props = defineProps({\n images: {\n type: Array,\n required: true,\n },\n product: {\n type: Object,\n default: () => ({})\n },\n});\n\nconst isPopupVisible = ref(false);\nconst selectedImageIndex = ref(0);\nconst currentImageIndex = ref(0);\n\nconst openPopup = (index) => {\n if (!props.images.length) return;\n selectedImageIndex.value = index;\n isPopupVisible.value = true;\n};\n\nconst closePopup = () => {\n selectedImageIndex.value = 0;\n isPopupVisible.value = false;\n};\n</script>\n\n<style scoped>\n.thumbnail {\n width: 100%;\n object-fit: cover;\n cursor: pointer;\n}\n.thumbnail.active {\n border: 1px solid rgb(var(--second));\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8DA,UAAM,QAAQ;AAWd,UAAM,iBAAiB,IAAI,KAAK;AAChC,UAAM,qBAAqB,IAAI,CAAC;AAChC,UAAM,oBAAoB,IAAI,CAAC;AAE/B,UAAM,YAAY,CAAC,UAAU;AAC3B,UAAI,CAAC,MAAM,OAAO,OAAQ;AAC1B,yBAAmB,QAAQ;AAC3B,qBAAe,QAAQ;AAAA,IACzB;AAEA,UAAM,aAAa,MAAM;AACvB,yBAAmB,QAAQ;AAC3B,qBAAe,QAAQ;AAAA,IACzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ProductImages.vue.js","sources":["../../../../../../../src/modules/products/components/blocks/ProductImages.vue"],"sourcesContent":["<template>\n <div class=\"w-100 bs-big h-max mobile:pos-relative tablet:pos-relative pos-sticky pos-t-0 pd-medium o-hidden bg-light radius-medium gap-small flex-nowrap flex-row mobile:flex-column flex pos-relative\">\n <!-- Main image container -->\n <div class=\"order-1 w-100 bg-light radius-small o-hidden\" @click=\"openPopup(currentImageIndex)\">\n <Image360\n v-if=\"product && product.image3d\"\n class=\"h-100 w-100\"\n :imagePath=\"`/assets/images/products/${product.image3d}`\"\n :imageCount=\"36\"\n />\n <img\n loading=\"lazy\"\n v-if=\"images[currentImageIndex] && !product?.image3d\"\n class=\"h-100 flex-child-default bg-white radius-small w-100\"\n style=\"object-fit: contain;\"\n :src=\"(FILE_SERVER_URL || '') + images[currentImageIndex]\"\n />\n <PlaceholderImage\n v-if=\"!images[currentImageIndex] && !product?.image3d\"\n class=\"h-100 w-100\"\n style=\"object-fit: cover;\"\n />\n </div>\n \n <!-- Thumbnails -->\n <div v-if=\"images.length > 1\" class=\"mobile:order-1 order-0 w-5r mobile:w-100\">\n <div class=\"w-100 mobile:flex-row flex-column flex flex-nowrap gap-thin\">\n <img loading=\"lazy\" \n v-for=\"(image, index) in images.slice(0, 5)\"\n :key=\"index\"\n :src=\"(FILE_SERVER_URL || '') + image\" \n @click=\"currentImageIndex = index\"\n class=\"aspect-1x1 radius-small bg-white o-hidden thumbnail\"\n :class=\"{ 'active': currentImageIndex === index }\"\n />\n <div\n v-if=\"images.length > 5\"\n @click=\"openPopup(5)\"\n class=\"aspect-1x1 radius-small o-hidden thumbnail flex flex-center fw-medium t-black bg-white \"\n >\n +{{ images.length - 5 }}\n </div>\n </div>\n </div>\n \n <!-- Popup with photo viewer -->\n <Popup @close-popup=\"closePopup\" :isPopupOpen=\"isPopupVisible\" class=\"radius-zero w-100 o-hidden\">\n <PhotoViewer\n :photos=\"images.map(img => (FILE_SERVER_URL || '') + img)\"\n :initialIndex=\"selectedImageIndex\"\n />\n </Popup>\n </div>\n</template>\n\n<script setup>\nimport { ref } from \"vue\";\nimport Popup from '@martyrs/src/components/Popup/Popup.vue';\nimport PhotoViewer from '@martyrs/src/components/PhotoViewer/PhotoViewer.vue';\nimport PlaceholderImage from '@martyrs/src/modules/icons/placeholders/PlaceholderImage.vue'\nimport Image360 from '@martyrs/src/modules/products/components/elements/Image360.vue'\n\nconst props = defineProps({\n images: {\n type: Array,\n required: true,\n },\n product: {\n type: Object,\n default: () => ({})\n },\n});\n\nconst isPopupVisible = ref(false);\nconst selectedImageIndex = ref(0);\nconst currentImageIndex = ref(0);\n\nconst openPopup = (index) => {\n if (!props.images.length) return;\n selectedImageIndex.value = index;\n isPopupVisible.value = true;\n};\n\nconst closePopup = () => {\n selectedImageIndex.value = 0;\n isPopupVisible.value = false;\n};\n</script>\n\n<style scoped>\n.thumbnail {\n width: 100%;\n object-fit: cover;\n cursor: pointer;\n}\n.thumbnail.active {\n border: 1px solid rgb(var(--second));\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8DA,UAAM,QAAQ;AAWd,UAAM,iBAAiB,IAAI,KAAK;AAChC,UAAM,qBAAqB,IAAI,CAAC;AAChC,UAAM,oBAAoB,IAAI,CAAC;AAE/B,UAAM,YAAY,CAAC,UAAU;AAC3B,UAAI,CAAC,MAAM,OAAO,OAAQ;AAC1B,yBAAmB,QAAQ;AAC3B,qBAAe,QAAQ;AAAA,IACzB;AAEA,UAAM,aAAa,MAAM;AACvB,yBAAmB,QAAQ;AAC3B,qBAAe,QAAQ;AAAA,IACzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { ref, computed, watch, onMounted, createElementBlock, openBlock, Fragment, renderList, createElementVNode, toDisplayString, normalizeClass, createCommentVNode } from "vue";
2
2
  const _hoisted_1 = { class: "w-100" };
3
- const _hoisted_2 = { class: "capitalize mn-b-thin t-medium" };
3
+ const _hoisted_2 = { class: "capitalize mn-b-thin fw-medium" };
4
4
  const _hoisted_3 = { class: "flex flex-wrap gap-thin mn-b-medium" };
5
5
  const _hoisted_4 = ["onClick", "disabled"];
6
6
  const _hoisted_5 = ["src"];
@@ -98,7 +98,7 @@ const _sfc_main = {
98
98
  disabled: item.off,
99
99
  class: normalizeClass(["pd-small radius-small", [
100
100
  isSelected(group, item) ? "br-main" : "br-black-transp-10",
101
- item.off ? "o-50 cursor-not-allowed" : "cursor-pointer hover-scale-1"
101
+ item.off ? "o-50 cursor-not-allowed" : "cursor-pointer hover:scale-[1.05]"
102
102
  ]])
103
103
  }, [
104
104
  item.img ? (openBlock(), createElementBlock("img", {
@@ -1 +1 @@
1
- {"version":3,"file":"ProductVariants.vue.js","sources":["../../../../../../../src/modules/products/components/blocks/ProductVariants.vue"],"sourcesContent":["<template>\n <div class=\"w-100\">\n <div\n v-for=\"group in groups\"\n :key=\"group.label\"\n class=\"w-100 mn-b-medium\"\n >\n <p class=\"capitalize mn-b-thin t-medium\">{{ group.label }}</p>\n\n <div class=\"flex flex-wrap gap-thin mn-b-medium\">\n <button\n v-for=\"item in group.items\"\n :key=\"item.key\"\n @click=\"group.label === 'Options' ? pick(item.variant) : pickAttr(group.label, item.value)\"\n :disabled=\"item.off\"\n class=\"pd-small radius-small\"\n :class=\"[\n isSelected(group, item) ? 'br-main' : 'br-black-transp-10',\n item.off ? 'o-50 cursor-not-allowed' : 'cursor-pointer hover-scale-1',\n ]\"\n >\n <img\n v-if=\"item.img\"\n :src=\"`${FILE_SERVER_URL}${item.img}`\"\n class=\"h-100 radius-thin aspect-1x1 object-fit-contain\"\n />\n <p class=\"\">\n {{ item.text }}\n </p>\n\n <div\n v-if=\"isSelected(group, item)\"\n class=\"pos-absolute pos-b-0 pos-r-0 pos-l-0 flex flex-center h-1r bg-main t-white t-small\"\n >\n Selected\n </div>\n </button>\n </div>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed, watch, onMounted } from 'vue';\n\nconst props = defineProps({ productVariants: Array });\nconst emit = defineEmits(['variant-selected', 'update-images']);\n\nconst selectedAttributes = ref({});\nconst selected = ref(null);\n\nconst hasAttrs = computed(() =>\n props.productVariants.some(v => v.attributes?.length)\n);\n\nconst groups = computed(() => {\n if (hasAttrs.value) {\n const labels = [...new Set(props.productVariants[0].attributes.map(a => a.name))];\n return labels.map((lbl, i) => ({\n label: lbl,\n items: [...new Set(\n props.productVariants.map(v => v.attributes.find(a => a.name === lbl)?.value)\n )]\n .filter(Boolean)\n .map(val => {\n const v = props.productVariants.find(x => x.attributes.find(a => a.name === lbl && a.value === val));\n return {\n key: lbl + val,\n value: val,\n img: i === 0 ? v.images?.[0] : null,\n off: !v.available,\n text: val,\n };\n }),\n }));\n }\n if (props.productVariants.length > 1) {\n return [{\n label: 'Options',\n items: props.productVariants.map(v => ({\n key: v._id,\n variant: v,\n img: v.images?.[0],\n off: !v.available,\n text: v.name || v.sku,\n })),\n }];\n }\n return [];\n});\n\nconst pick = v => {\n if (!v.available) return;\n selectedAttributes.value = Object.fromEntries(v.attributes?.map(a => [a.name, a.value]) || []);\n selected.value = v;\n emit('variant-selected', v);\n v.images?.length && emit('update-images', v.images);\n};\n\nconst pickAttr = (lbl, val) => {\n const test = { ...selectedAttributes.value, [lbl]: val };\n if (!props.productVariants.some(v =>\n Object.entries(test).every(([k, x]) =>\n v.attributes.find(a => a.name === k && a.value === x)\n )\n )) return;\n selectedAttributes.value = test;\n};\n\nwatch(selectedAttributes, attrs => {\n const m = props.productVariants.find(v =>\n Object.entries(attrs).every(([k, x]) => v.attributes.find(a => a.name === k && a.value === x))\n );\n if (m && selected.value?._id !== m._id) {\n pick(m);\n } else if (!m) {\n selected.value = null;\n }\n});\n\nonMounted(() => props.productVariants.length === 1 && pick(props.productVariants[0]));\n\nconst isSelected = (g, i) =>\n g.label === 'Options'\n ? selected.value?._id === i.variant?._id\n : selectedAttributes.value[g.label] === i.value;\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AA6CA,UAAM,QAAQ;AACd,UAAM,OAAO;AAEb,UAAM,qBAAqB,IAAI,EAAE;AACjC,UAAM,WAAW,IAAI,IAAI;AAEzB,UAAM,WAAW;AAAA,MAAS,MACxB,MAAM,gBAAgB,KAAK,OAAK,EAAE,YAAY,MAAM;AAAA,IACtD;AAEA,UAAM,SAAS,SAAS,MAAM;AAC5B,UAAI,SAAS,OAAO;AAClB,cAAM,SAAS,CAAC,GAAG,IAAI,IAAI,MAAM,gBAAgB,CAAC,EAAE,WAAW,IAAI,OAAK,EAAE,IAAI,CAAC,CAAC;AAChF,eAAO,OAAO,IAAI,CAAC,KAAK,OAAO;AAAA,UAC7B,OAAO;AAAA,UACP,OAAO,CAAC,GAAG,IAAI;AAAA,YACb,MAAM,gBAAgB,IAAI,OAAK,EAAE,WAAW,KAAK,OAAK,EAAE,SAAS,GAAG,GAAG,KAAK;AAAA,UACpF,CAAO,EACE,OAAO,OAAO,EACd,IAAI,SAAO;AACV,kBAAM,IAAI,MAAM,gBAAgB,KAAK,OAAK,EAAE,WAAW,KAAK,OAAK,EAAE,SAAS,OAAO,EAAE,UAAU,GAAG,CAAC;AACnG,mBAAO;AAAA,cACL,KAAK,MAAM;AAAA,cACX,OAAO;AAAA,cACP,KAAK,MAAM,IAAI,EAAE,SAAS,CAAC,IAAI;AAAA,cAC/B,KAAK,CAAC,EAAE;AAAA,cACR,MAAM;AAAA,YAClB;AAAA,UACQ,CAAC;AAAA,QACT,EAAM;AAAA,MACJ;AACA,UAAI,MAAM,gBAAgB,SAAS,GAAG;AACpC,eAAO,CAAC;AAAA,UACN,OAAO;AAAA,UACP,OAAO,MAAM,gBAAgB,IAAI,QAAM;AAAA,YACrC,KAAK,EAAE;AAAA,YACP,SAAS;AAAA,YACT,KAAK,EAAE,SAAS,CAAC;AAAA,YACjB,KAAK,CAAC,EAAE;AAAA,YACR,MAAM,EAAE,QAAQ,EAAE;AAAA,UAC1B,EAAQ;AAAA,QACR,CAAK;AAAA,MACH;AACA,aAAO,CAAA;AAAA,IACT,CAAC;AAED,UAAM,OAAO,OAAK;AAChB,UAAI,CAAC,EAAE,UAAW;AAClB,yBAAmB,QAAQ,OAAO,YAAY,EAAE,YAAY,IAAI,OAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,CAAA,CAAE;AAC7F,eAAS,QAAQ;AACjB,WAAK,oBAAoB,CAAC;AAC1B,QAAE,QAAQ,UAAU,KAAK,iBAAiB,EAAE,MAAM;AAAA,IACpD;AAEA,UAAM,WAAW,CAAC,KAAK,QAAQ;AAC7B,YAAM,OAAO,EAAE,GAAG,mBAAmB,OAAO,CAAC,GAAG,GAAG,IAAG;AACtD,UAAI,CAAC,MAAM,gBAAgB;AAAA,QAAK,OAC9B,OAAO,QAAQ,IAAI,EAAE;AAAA,UAAM,CAAC,CAAC,GAAG,CAAC,MAC/B,EAAE,WAAW,KAAK,OAAK,EAAE,SAAS,KAAK,EAAE,UAAU,CAAC;AAAA,QAC1D;AAAA,MACA,EAAK;AACH,yBAAmB,QAAQ;AAAA,IAC7B;AAEA,UAAM,oBAAoB,WAAS;AACjC,YAAM,IAAI,MAAM,gBAAgB;AAAA,QAAK,OACnC,OAAO,QAAQ,KAAK,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,KAAK,OAAK,EAAE,SAAS,KAAK,EAAE,UAAU,CAAC,CAAC;AAAA,MACjG;AACE,UAAI,KAAK,SAAS,OAAO,QAAQ,EAAE,KAAK;AACtC,aAAK,CAAC;AAAA,MACR,WAAW,CAAC,GAAG;AACb,iBAAS,QAAQ;AAAA,MACnB;AAAA,IACF,CAAC;AAED,cAAU,MAAM,MAAM,gBAAgB,WAAW,KAAK,KAAK,MAAM,gBAAgB,CAAC,CAAC,CAAC;AAEpF,UAAM,aAAa,CAAC,GAAG,MACrB,EAAE,UAAU,YACR,SAAS,OAAO,QAAQ,EAAE,SAAS,MACnC,mBAAmB,MAAM,EAAE,KAAK,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ProductVariants.vue.js","sources":["../../../../../../../src/modules/products/components/blocks/ProductVariants.vue"],"sourcesContent":["<template>\n <div class=\"w-100\">\n <div\n v-for=\"group in groups\"\n :key=\"group.label\"\n class=\"w-100 mn-b-medium\"\n >\n <p class=\"capitalize mn-b-thin fw-medium\">{{ group.label }}</p>\n\n <div class=\"flex flex-wrap gap-thin mn-b-medium\">\n <button\n v-for=\"item in group.items\"\n :key=\"item.key\"\n @click=\"group.label === 'Options' ? pick(item.variant) : pickAttr(group.label, item.value)\"\n :disabled=\"item.off\"\n class=\"pd-small radius-small\"\n :class=\"[\n isSelected(group, item) ? 'br-main' : 'br-black-transp-10',\n item.off ? 'o-50 cursor-not-allowed' : 'cursor-pointer hover:scale-[1.05]',\n ]\"\n >\n <img\n v-if=\"item.img\"\n :src=\"`${FILE_SERVER_URL}${item.img}`\"\n class=\"h-100 radius-thin aspect-1x1 object-fit-contain\"\n />\n <p class=\"\">\n {{ item.text }}\n </p>\n\n <div\n v-if=\"isSelected(group, item)\"\n class=\"pos-absolute pos-b-0 pos-r-0 pos-l-0 flex flex-center h-1r bg-main t-white t-small\"\n >\n Selected\n </div>\n </button>\n </div>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed, watch, onMounted } from 'vue';\n\nconst props = defineProps({ productVariants: Array });\nconst emit = defineEmits(['variant-selected', 'update-images']);\n\nconst selectedAttributes = ref({});\nconst selected = ref(null);\n\nconst hasAttrs = computed(() =>\n props.productVariants.some(v => v.attributes?.length)\n);\n\nconst groups = computed(() => {\n if (hasAttrs.value) {\n const labels = [...new Set(props.productVariants[0].attributes.map(a => a.name))];\n return labels.map((lbl, i) => ({\n label: lbl,\n items: [...new Set(\n props.productVariants.map(v => v.attributes.find(a => a.name === lbl)?.value)\n )]\n .filter(Boolean)\n .map(val => {\n const v = props.productVariants.find(x => x.attributes.find(a => a.name === lbl && a.value === val));\n return {\n key: lbl + val,\n value: val,\n img: i === 0 ? v.images?.[0] : null,\n off: !v.available,\n text: val,\n };\n }),\n }));\n }\n if (props.productVariants.length > 1) {\n return [{\n label: 'Options',\n items: props.productVariants.map(v => ({\n key: v._id,\n variant: v,\n img: v.images?.[0],\n off: !v.available,\n text: v.name || v.sku,\n })),\n }];\n }\n return [];\n});\n\nconst pick = v => {\n if (!v.available) return;\n selectedAttributes.value = Object.fromEntries(v.attributes?.map(a => [a.name, a.value]) || []);\n selected.value = v;\n emit('variant-selected', v);\n v.images?.length && emit('update-images', v.images);\n};\n\nconst pickAttr = (lbl, val) => {\n const test = { ...selectedAttributes.value, [lbl]: val };\n if (!props.productVariants.some(v =>\n Object.entries(test).every(([k, x]) =>\n v.attributes.find(a => a.name === k && a.value === x)\n )\n )) return;\n selectedAttributes.value = test;\n};\n\nwatch(selectedAttributes, attrs => {\n const m = props.productVariants.find(v =>\n Object.entries(attrs).every(([k, x]) => v.attributes.find(a => a.name === k && a.value === x))\n );\n if (m && selected.value?._id !== m._id) {\n pick(m);\n } else if (!m) {\n selected.value = null;\n }\n});\n\nonMounted(() => props.productVariants.length === 1 && pick(props.productVariants[0]));\n\nconst isSelected = (g, i) =>\n g.label === 'Options'\n ? selected.value?._id === i.variant?._id\n : selectedAttributes.value[g.label] === i.value;\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AA6CA,UAAM,QAAQ;AACd,UAAM,OAAO;AAEb,UAAM,qBAAqB,IAAI,EAAE;AACjC,UAAM,WAAW,IAAI,IAAI;AAEzB,UAAM,WAAW;AAAA,MAAS,MACxB,MAAM,gBAAgB,KAAK,OAAK,EAAE,YAAY,MAAM;AAAA,IACtD;AAEA,UAAM,SAAS,SAAS,MAAM;AAC5B,UAAI,SAAS,OAAO;AAClB,cAAM,SAAS,CAAC,GAAG,IAAI,IAAI,MAAM,gBAAgB,CAAC,EAAE,WAAW,IAAI,OAAK,EAAE,IAAI,CAAC,CAAC;AAChF,eAAO,OAAO,IAAI,CAAC,KAAK,OAAO;AAAA,UAC7B,OAAO;AAAA,UACP,OAAO,CAAC,GAAG,IAAI;AAAA,YACb,MAAM,gBAAgB,IAAI,OAAK,EAAE,WAAW,KAAK,OAAK,EAAE,SAAS,GAAG,GAAG,KAAK;AAAA,UACpF,CAAO,EACE,OAAO,OAAO,EACd,IAAI,SAAO;AACV,kBAAM,IAAI,MAAM,gBAAgB,KAAK,OAAK,EAAE,WAAW,KAAK,OAAK,EAAE,SAAS,OAAO,EAAE,UAAU,GAAG,CAAC;AACnG,mBAAO;AAAA,cACL,KAAK,MAAM;AAAA,cACX,OAAO;AAAA,cACP,KAAK,MAAM,IAAI,EAAE,SAAS,CAAC,IAAI;AAAA,cAC/B,KAAK,CAAC,EAAE;AAAA,cACR,MAAM;AAAA,YAClB;AAAA,UACQ,CAAC;AAAA,QACT,EAAM;AAAA,MACJ;AACA,UAAI,MAAM,gBAAgB,SAAS,GAAG;AACpC,eAAO,CAAC;AAAA,UACN,OAAO;AAAA,UACP,OAAO,MAAM,gBAAgB,IAAI,QAAM;AAAA,YACrC,KAAK,EAAE;AAAA,YACP,SAAS;AAAA,YACT,KAAK,EAAE,SAAS,CAAC;AAAA,YACjB,KAAK,CAAC,EAAE;AAAA,YACR,MAAM,EAAE,QAAQ,EAAE;AAAA,UAC1B,EAAQ;AAAA,QACR,CAAK;AAAA,MACH;AACA,aAAO,CAAA;AAAA,IACT,CAAC;AAED,UAAM,OAAO,OAAK;AAChB,UAAI,CAAC,EAAE,UAAW;AAClB,yBAAmB,QAAQ,OAAO,YAAY,EAAE,YAAY,IAAI,OAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,CAAA,CAAE;AAC7F,eAAS,QAAQ;AACjB,WAAK,oBAAoB,CAAC;AAC1B,QAAE,QAAQ,UAAU,KAAK,iBAAiB,EAAE,MAAM;AAAA,IACpD;AAEA,UAAM,WAAW,CAAC,KAAK,QAAQ;AAC7B,YAAM,OAAO,EAAE,GAAG,mBAAmB,OAAO,CAAC,GAAG,GAAG,IAAG;AACtD,UAAI,CAAC,MAAM,gBAAgB;AAAA,QAAK,OAC9B,OAAO,QAAQ,IAAI,EAAE;AAAA,UAAM,CAAC,CAAC,GAAG,CAAC,MAC/B,EAAE,WAAW,KAAK,OAAK,EAAE,SAAS,KAAK,EAAE,UAAU,CAAC;AAAA,QAC1D;AAAA,MACA,EAAK;AACH,yBAAmB,QAAQ;AAAA,IAC7B;AAEA,UAAM,oBAAoB,WAAS;AACjC,YAAM,IAAI,MAAM,gBAAgB;AAAA,QAAK,OACnC,OAAO,QAAQ,KAAK,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,KAAK,OAAK,EAAE,SAAS,KAAK,EAAE,UAAU,CAAC,CAAC;AAAA,MACjG;AACE,UAAI,KAAK,SAAS,OAAO,QAAQ,EAAE,KAAK;AACtC,aAAK,CAAC;AAAA,MACR,WAAW,CAAC,GAAG;AACb,iBAAS,QAAQ;AAAA,MACnB;AAAA,IACF,CAAC;AAED,cAAU,MAAM,MAAM,gBAAgB,WAAW,KAAK,KAAK,MAAM,gBAAgB,CAAC,CAAC,CAAC;AAEpF,UAAM,aAAa,CAAC,GAAG,MACrB,EAAE,UAAU,YACR,SAAS,OAAO,QAAQ,EAAE,SAAS,MACnC,mBAAmB,MAAM,EAAE,KAAK,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -5,7 +5,7 @@ import _export_sfc from "../../../../../../_virtual/_plugin-vue_export-helper.js
5
5
  const _hoisted_1 = { class: "product-360-viewer" };
6
6
  const _hoisted_2 = {
7
7
  key: 0,
8
- class: "h-100 w-100 transition-ease"
8
+ class: "h-100 w-100 ease"
9
9
  };
10
10
  const _hoisted_3 = ["src"];
11
11
  const _sfc_main = {
@@ -87,7 +87,7 @@ const _sfc_main = {
87
87
  });
88
88
  return (_ctx, _cache) => {
89
89
  return openBlock(), createElementBlock("div", _hoisted_1, [
90
- _cache[1] || (_cache[1] = createStaticVNode('<svg class="pos-absolute z-index-2 pos-b-0 pd-small" width="73" height="50" viewBox="0 0 73 50" fill="none" xmlns="http://www.w3.org/2000/svg" data-v-489e9d2e><path d="M42.5934 17.2017C42.5934 20.8208 39.8428 23.7544 36.45 23.7544C33.0573 23.7544 30.3066 20.8208 30.3066 17.2017C30.3066 13.5826 33.0573 10.6484 36.45 10.6484C39.8428 10.6484 42.5934 13.5826 42.5934 17.2017Z" fill="rgb(var(--black))" fill-opacity="0.1" data-v-489e9d2e></path><path d="M22.5953 29.4883H50.3053C53.7389 29.4883 56.5197 26.778 56.5197 23.4405V10.8396C56.5197 7.49996 53.739 4.79176 50.3053 4.79176H48.8712C48.2747 2.05313 45.7826 0 42.7962 0H30.1063C27.1179 0 24.6257 2.053 24.0313 4.78967H22.5971C19.1656 4.78967 16.3828 7.49788 16.3828 10.8375V23.4384C16.3807 26.778 19.1634 29.4882 22.595 29.4882L22.5953 29.4883ZM36.449 8.31471C41.4535 8.31471 45.5123 12.2648 45.5123 17.1352C45.5123 22.0062 41.4535 25.9582 36.449 25.9582C31.4445 25.9582 27.3856 22.0081 27.3856 17.1377C27.3856 12.2673 31.4445 8.31471 36.449 8.31471ZM20.9092 9.32597H24.0182C24.9472 9.32597 25.7019 10.0584 25.7019 10.9625C25.7019 11.8686 24.9493 12.6011 24.0182 12.6011H20.9092C19.9823 12.6011 19.2254 11.8707 19.2254 10.9625C19.2275 10.0604 19.9822 9.32597 20.9092 9.32597Z" fill="rgb(var(--black))" fill-opacity="0.1" data-v-489e9d2e></path><path d="M58.8645 12.2878C58.8645 12.2878 77.1839 21.8549 65.5604 32.0445C63.6718 33.6967 55.2747 38.9138 42.5947 39.9368V45.0519C50.0424 44.2514 61.7635 41.887 68.4037 34.9253C82.5323 20.1097 58.8657 12.2871 58.8657 12.2871L58.8645 12.2878Z" fill="rgb(var(--black))" fill-opacity="0.1" data-v-489e9d2e></path><path d="M37.6664 41.209L29.1818 35.5097C28.077 34.7658 27.1702 35.2358 27.1702 36.5516V39.5855C16.2598 38.0408 9.07761 33.565 7.35125 32.0517C-4.2894 21.858 14.0557 12.2871 14.0557 12.2871C14.0557 12.2871 -9.64257 20.1134 4.5039 34.9343C10.2723 40.9769 19.8619 43.5552 27.1712 44.656V44.952V48.5701C27.1712 49.8901 28.078 50.3554 29.1827 49.6141L37.6673 43.9127C38.7757 43.1683 38.7757 41.9525 37.6673 41.2092L37.6664 41.209Z" fill="rgb(var(--black))" fill-opacity="0.1" data-v-489e9d2e></path></svg>', 1)),
90
+ _cache[1] || (_cache[1] = createStaticVNode('<svg class="pos-absolute z-index-2 pos-b-0 pd-small" width="73" height="50" viewBox="0 0 73 50" fill="none" xmlns="http://www.w3.org/2000/svg" data-v-3db6b247><path d="M42.5934 17.2017C42.5934 20.8208 39.8428 23.7544 36.45 23.7544C33.0573 23.7544 30.3066 20.8208 30.3066 17.2017C30.3066 13.5826 33.0573 10.6484 36.45 10.6484C39.8428 10.6484 42.5934 13.5826 42.5934 17.2017Z" fill="rgb(var(--black))" fill-opacity="0.1" data-v-3db6b247></path><path d="M22.5953 29.4883H50.3053C53.7389 29.4883 56.5197 26.778 56.5197 23.4405V10.8396C56.5197 7.49996 53.739 4.79176 50.3053 4.79176H48.8712C48.2747 2.05313 45.7826 0 42.7962 0H30.1063C27.1179 0 24.6257 2.053 24.0313 4.78967H22.5971C19.1656 4.78967 16.3828 7.49788 16.3828 10.8375V23.4384C16.3807 26.778 19.1634 29.4882 22.595 29.4882L22.5953 29.4883ZM36.449 8.31471C41.4535 8.31471 45.5123 12.2648 45.5123 17.1352C45.5123 22.0062 41.4535 25.9582 36.449 25.9582C31.4445 25.9582 27.3856 22.0081 27.3856 17.1377C27.3856 12.2673 31.4445 8.31471 36.449 8.31471ZM20.9092 9.32597H24.0182C24.9472 9.32597 25.7019 10.0584 25.7019 10.9625C25.7019 11.8686 24.9493 12.6011 24.0182 12.6011H20.9092C19.9823 12.6011 19.2254 11.8707 19.2254 10.9625C19.2275 10.0604 19.9822 9.32597 20.9092 9.32597Z" fill="rgb(var(--black))" fill-opacity="0.1" data-v-3db6b247></path><path d="M58.8645 12.2878C58.8645 12.2878 77.1839 21.8549 65.5604 32.0445C63.6718 33.6967 55.2747 38.9138 42.5947 39.9368V45.0519C50.0424 44.2514 61.7635 41.887 68.4037 34.9253C82.5323 20.1097 58.8657 12.2871 58.8657 12.2871L58.8645 12.2878Z" fill="rgb(var(--black))" fill-opacity="0.1" data-v-3db6b247></path><path d="M37.6664 41.209L29.1818 35.5097C28.077 34.7658 27.1702 35.2358 27.1702 36.5516V39.5855C16.2598 38.0408 9.07761 33.565 7.35125 32.0517C-4.2894 21.858 14.0557 12.2871 14.0557 12.2871C14.0557 12.2871 -9.64257 20.1134 4.5039 34.9343C10.2723 40.9769 19.8619 43.5552 27.1712 44.656V44.952V48.5701C27.1712 49.8901 28.078 50.3554 29.1827 49.6141L37.6673 43.9127C38.7757 43.1683 38.7757 41.9525 37.6673 41.2092L37.6664 41.209Z" fill="rgb(var(--black))" fill-opacity="0.1" data-v-3db6b247></path></svg>', 1)),
91
91
  createVNode(Transition, {
92
92
  name: "scale5",
93
93
  css: !firstImageLoad.value,
@@ -98,7 +98,7 @@ const _sfc_main = {
98
98
  currentImage.value ? (openBlock(), createElementBlock("img", {
99
99
  loading: "lazy",
100
100
  key: currentImage.value,
101
- class: "h-100 w-100 transition-ease",
101
+ class: "h-100 w-100 ease",
102
102
  src: (_ctx.FILE_SERVER_URL || "") + currentImage.value.src,
103
103
  alt: "360 product view",
104
104
  onMousedown: startRotation,
@@ -129,7 +129,7 @@ const _sfc_main = {
129
129
  };
130
130
  }
131
131
  };
132
- const Image360 = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-489e9d2e"]]);
132
+ const Image360 = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-3db6b247"]]);
133
133
  export {
134
134
  Image360 as default
135
135
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Image360.vue.js","sources":["../../../../../../../src/modules/products/components/elements/Image360.vue"],"sourcesContent":["<template>\n <div class=\"product-360-viewer\">\n <svg class=\"pos-absolute z-index-2 pos-b-0 pd-small\" width=\"73\" height=\"50\" viewBox=\"0 0 73 50\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M42.5934 17.2017C42.5934 20.8208 39.8428 23.7544 36.45 23.7544C33.0573 23.7544 30.3066 20.8208 30.3066 17.2017C30.3066 13.5826 33.0573 10.6484 36.45 10.6484C39.8428 10.6484 42.5934 13.5826 42.5934 17.2017Z\" fill=\"rgb(var(--black))\" fill-opacity=\"0.1\"/>\n <path d=\"M22.5953 29.4883H50.3053C53.7389 29.4883 56.5197 26.778 56.5197 23.4405V10.8396C56.5197 7.49996 53.739 4.79176 50.3053 4.79176H48.8712C48.2747 2.05313 45.7826 0 42.7962 0H30.1063C27.1179 0 24.6257 2.053 24.0313 4.78967H22.5971C19.1656 4.78967 16.3828 7.49788 16.3828 10.8375V23.4384C16.3807 26.778 19.1634 29.4882 22.595 29.4882L22.5953 29.4883ZM36.449 8.31471C41.4535 8.31471 45.5123 12.2648 45.5123 17.1352C45.5123 22.0062 41.4535 25.9582 36.449 25.9582C31.4445 25.9582 27.3856 22.0081 27.3856 17.1377C27.3856 12.2673 31.4445 8.31471 36.449 8.31471ZM20.9092 9.32597H24.0182C24.9472 9.32597 25.7019 10.0584 25.7019 10.9625C25.7019 11.8686 24.9493 12.6011 24.0182 12.6011H20.9092C19.9823 12.6011 19.2254 11.8707 19.2254 10.9625C19.2275 10.0604 19.9822 9.32597 20.9092 9.32597Z\" fill=\"rgb(var(--black))\" fill-opacity=\"0.1\"/>\n <path d=\"M58.8645 12.2878C58.8645 12.2878 77.1839 21.8549 65.5604 32.0445C63.6718 33.6967 55.2747 38.9138 42.5947 39.9368V45.0519C50.0424 44.2514 61.7635 41.887 68.4037 34.9253C82.5323 20.1097 58.8657 12.2871 58.8657 12.2871L58.8645 12.2878Z\" fill=\"rgb(var(--black))\" fill-opacity=\"0.1\"/>\n <path d=\"M37.6664 41.209L29.1818 35.5097C28.077 34.7658 27.1702 35.2358 27.1702 36.5516V39.5855C16.2598 38.0408 9.07761 33.565 7.35125 32.0517C-4.2894 21.858 14.0557 12.2871 14.0557 12.2871C14.0557 12.2871 -9.64257 20.1134 4.5039 34.9343C10.2723 40.9769 19.8619 43.5552 27.1712 44.656V44.952V48.5701C27.1712 49.8901 28.078 50.3554 29.1827 49.6141L37.6673 43.9127C38.7757 43.1683 38.7757 41.9525 37.6673 41.2092L37.6664 41.209Z\" fill=\"rgb(var(--black))\" fill-opacity=\"0.1\"/>\n </svg>\n\n\n <transition name=\"scale5\" :css=\"!firstImageLoad\" appear>\n <div v-if=\"currentImage\" class=\"h-100 w-100 transition-ease\">\n <img loading=\"lazy\" v-if=\"currentImage\" :key=\"currentImage\" class=\"h-100 w-100 transition-ease\" :src=\"(FILE_SERVER_URL || '') + currentImage.src\" alt=\"360 product view\" @mousedown=\"startRotation\" @mousemove=\"rotate\" @mouseup=\"stopRotation\" @mouseleave=\"stopRotation\" @touchstart=\"startRotation\" @touchmove=\"rotate\" @touchend=\"stopRotation\" @dragstart.prevent>\n\n </div>\n </transition>\n <!-- Display the loading progress percentage next to the loader component -->\n <transition name=\"scale5\">\n <Loader v-if=\"!currentImage\" :progress=\"loadingProgress\" class=\"center z-index-5\"/>\n </transition>\n </div>\n</template>\n\n<script setup>\nimport { ref, watch, onMounted, onUnmounted, computed } from 'vue';\nimport Loader from '@martyrs/src/components/Loader/Loader.vue'\n\nconst props = defineProps({\n imagePath: {\n type: String,\n required: true,\n },\n imageCount: {\n type: Number,\n default: 36,\n },\n autoRotateSpeed: {\n type: Number,\n default: 100,\n },\n});\n\nconst imageIndex = ref(0);\nconst isRotating = ref(false);\nconst startClientX = ref(0);\n\nconst loadedImages = ref(0);\nconst loaded = ref(true);\n\nconst loadImages = async () => {\n const images = [];\n\n for (let i = 1; i <= props.imageCount; i++) {\n const img = new Image();\n img.src = `${props.imagePath}/${i}.jpg`;\n\n try {\n await img.decode();\n // Increase the number of loaded images\n loadedImages.value++;\n } catch (error) {\n console.warn(`Failed to decode ${props.imagePath}/${i}.jpg:`, error);\n }\n\n images.push(img);\n }\n\n return images;\n};\n\n// Add a computed property to calculate the loading progress percentage\nconst loadingProgress = computed(() => {\n return Math.round((loadedImages.value / props.imageCount) * 100);\n});\n\nconst images = ref([]);\n\nconst currentImage = ref('');\nconst firstImageLoad = ref(null);\nwatch(imageIndex, (index) => {\n currentImage.value = images.value[index] || '';\n});\n\nfunction startRotation(event) {\n isRotating.value = true;\n startClientX.value = event.clientX || event.touches[0].clientX;\n}\n\nfunction rotate(event) {\n if (!isRotating.value) return;\n\n const currentClientX = event.clientX || event.touches[0].clientX;\n const diff = currentClientX - startClientX.value;\n\n if (Math.abs(diff) >= 5) {\n const direction = diff > 0 ? 1 : -1;\n imageIndex.value = (imageIndex.value + direction) % props.imageCount;\n if (imageIndex.value < 0) imageIndex.value = props.imageCount - 1;\n\n startClientX.value = currentClientX;\n }\n}\n\nfunction stopRotation() {\n isRotating.value = false;\n}\n\nlet autoRotateInterval = null;\n\nconst unloadImages = () => {\n images.value = [];\n};\n\n\n\nonMounted(async () => {\n images.value = await loadImages();\n currentImage.value = images.value[0] || ''; \n});\nonUnmounted(() => {\n clearInterval(autoRotateInterval);\n unloadImages();\n});\n</script>\n\n\n<style scoped>\n .expand-enter-active,\n.expand-leave-active {\n transition: max-height 0.5s ease-in-out;\n overflow: hidden;\n}\n.scale-enter-active,\n.scale-leave-active {\n transition: transform 0.5s ease-in-out;\n}\n.scale5-enter-from,\n.scale5-leave-to {\n transform: scale(1.2);\n opacity: 0;\n}\n.scale5-enter-to,\n.scale5-leave-from {\n transform: scale(1);\n opacity: 1;\n}\n\n.product-360-viewer {\n user-select: none;\n min-height: 16rem;\n}\n\n.product-360-viewer img {\n max-width: 100%;\n cursor: grab;\n\n object-fit: cover;\n transition: all 0.3s ease;\n}\n\n.product-360-viewer img:active {\n cursor: grabbing;\n}\n\n/*.product-360-viewer img:hover {\n transform: scale(1.1);\n}*/\n</style>"],"names":["images"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA,UAAM,QAAQ;AAed,UAAM,aAAa,IAAI,CAAC;AACxB,UAAM,aAAa,IAAI,KAAK;AAC5B,UAAM,eAAe,IAAI,CAAC;AAE1B,UAAM,eAAe,IAAI,CAAC;AACX,QAAI,IAAI;AAEvB,UAAM,aAAa,YAAY;AAC7B,YAAMA,UAAS,CAAA;AAEf,eAAS,IAAI,GAAG,KAAK,MAAM,YAAY,KAAK;AAC1C,cAAM,MAAM,IAAI,MAAK;AACrB,YAAI,MAAM,GAAG,MAAM,SAAS,IAAI,CAAC;AAEjC,YAAI;AACF,gBAAM,IAAI,OAAM;AAEhB,uBAAa;AAAA,QACf,SAAS,OAAO;AACd,kBAAQ,KAAK,oBAAoB,MAAM,SAAS,IAAI,CAAC,SAAS,KAAK;AAAA,QACrE;AAEA,QAAAA,QAAO,KAAK,GAAG;AAAA,MACjB;AAEA,aAAOA;AAAA,IACT;AAGA,UAAM,kBAAkB,SAAS,MAAM;AACrC,aAAO,KAAK,MAAO,aAAa,QAAQ,MAAM,aAAc,GAAG;AAAA,IACjE,CAAC;AAED,UAAM,SAAS,IAAI,EAAE;AAErB,UAAM,eAAe,IAAI,EAAE;AAC3B,UAAM,iBAAiB,IAAI,IAAI;AAC/B,UAAM,YAAY,CAAC,UAAU;AAC3B,mBAAa,QAAQ,OAAO,MAAM,KAAK,KAAK;AAAA,IAC9C,CAAC;AAED,aAAS,cAAc,OAAO;AAC5B,iBAAW,QAAQ;AACnB,mBAAa,QAAQ,MAAM,WAAW,MAAM,QAAQ,CAAC,EAAE;AAAA,IACzD;AAEA,aAAS,OAAO,OAAO;AACrB,UAAI,CAAC,WAAW,MAAO;AAEvB,YAAM,iBAAiB,MAAM,WAAW,MAAM,QAAQ,CAAC,EAAE;AACzD,YAAM,OAAO,iBAAiB,aAAa;AAE3C,UAAI,KAAK,IAAI,IAAI,KAAK,GAAG;AACvB,cAAM,YAAY,OAAO,IAAI,IAAI;AACjC,mBAAW,SAAS,WAAW,QAAQ,aAAa,MAAM;AAC1D,YAAI,WAAW,QAAQ,EAAG,YAAW,QAAQ,MAAM,aAAa;AAEhE,qBAAa,QAAQ;AAAA,MACvB;AAAA,IACF;AAEA,aAAS,eAAe;AACtB,iBAAW,QAAQ;AAAA,IACrB;AAEA,QAAI,qBAAqB;AAEzB,UAAM,eAAe,MAAM;AACzB,aAAO,QAAQ,CAAA;AAAA,IACjB;AAIA,cAAU,YAAY;AACpB,aAAO,QAAQ,MAAM,WAAU;AAC/B,mBAAa,QAAQ,OAAO,MAAM,CAAC,KAAK;AAAA,IAC1C,CAAC;AACD,gBAAY,MAAM;AAChB,oBAAc,kBAAkB;AAChC,mBAAY;AAAA,IACd,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Image360.vue.js","sources":["../../../../../../../src/modules/products/components/elements/Image360.vue"],"sourcesContent":["<template>\n <div class=\"product-360-viewer\">\n <svg class=\"pos-absolute z-index-2 pos-b-0 pd-small\" width=\"73\" height=\"50\" viewBox=\"0 0 73 50\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M42.5934 17.2017C42.5934 20.8208 39.8428 23.7544 36.45 23.7544C33.0573 23.7544 30.3066 20.8208 30.3066 17.2017C30.3066 13.5826 33.0573 10.6484 36.45 10.6484C39.8428 10.6484 42.5934 13.5826 42.5934 17.2017Z\" fill=\"rgb(var(--black))\" fill-opacity=\"0.1\"/>\n <path d=\"M22.5953 29.4883H50.3053C53.7389 29.4883 56.5197 26.778 56.5197 23.4405V10.8396C56.5197 7.49996 53.739 4.79176 50.3053 4.79176H48.8712C48.2747 2.05313 45.7826 0 42.7962 0H30.1063C27.1179 0 24.6257 2.053 24.0313 4.78967H22.5971C19.1656 4.78967 16.3828 7.49788 16.3828 10.8375V23.4384C16.3807 26.778 19.1634 29.4882 22.595 29.4882L22.5953 29.4883ZM36.449 8.31471C41.4535 8.31471 45.5123 12.2648 45.5123 17.1352C45.5123 22.0062 41.4535 25.9582 36.449 25.9582C31.4445 25.9582 27.3856 22.0081 27.3856 17.1377C27.3856 12.2673 31.4445 8.31471 36.449 8.31471ZM20.9092 9.32597H24.0182C24.9472 9.32597 25.7019 10.0584 25.7019 10.9625C25.7019 11.8686 24.9493 12.6011 24.0182 12.6011H20.9092C19.9823 12.6011 19.2254 11.8707 19.2254 10.9625C19.2275 10.0604 19.9822 9.32597 20.9092 9.32597Z\" fill=\"rgb(var(--black))\" fill-opacity=\"0.1\"/>\n <path d=\"M58.8645 12.2878C58.8645 12.2878 77.1839 21.8549 65.5604 32.0445C63.6718 33.6967 55.2747 38.9138 42.5947 39.9368V45.0519C50.0424 44.2514 61.7635 41.887 68.4037 34.9253C82.5323 20.1097 58.8657 12.2871 58.8657 12.2871L58.8645 12.2878Z\" fill=\"rgb(var(--black))\" fill-opacity=\"0.1\"/>\n <path d=\"M37.6664 41.209L29.1818 35.5097C28.077 34.7658 27.1702 35.2358 27.1702 36.5516V39.5855C16.2598 38.0408 9.07761 33.565 7.35125 32.0517C-4.2894 21.858 14.0557 12.2871 14.0557 12.2871C14.0557 12.2871 -9.64257 20.1134 4.5039 34.9343C10.2723 40.9769 19.8619 43.5552 27.1712 44.656V44.952V48.5701C27.1712 49.8901 28.078 50.3554 29.1827 49.6141L37.6673 43.9127C38.7757 43.1683 38.7757 41.9525 37.6673 41.2092L37.6664 41.209Z\" fill=\"rgb(var(--black))\" fill-opacity=\"0.1\"/>\n </svg>\n\n\n <transition name=\"scale5\" :css=\"!firstImageLoad\" appear>\n <div v-if=\"currentImage\" class=\"h-100 w-100 ease\">\n <img loading=\"lazy\" v-if=\"currentImage\" :key=\"currentImage\" class=\"h-100 w-100 ease\" :src=\"(FILE_SERVER_URL || '') + currentImage.src\" alt=\"360 product view\" @mousedown=\"startRotation\" @mousemove=\"rotate\" @mouseup=\"stopRotation\" @mouseleave=\"stopRotation\" @touchstart=\"startRotation\" @touchmove=\"rotate\" @touchend=\"stopRotation\" @dragstart.prevent>\n\n </div>\n </transition>\n <!-- Display the loading progress percentage next to the loader component -->\n <transition name=\"scale5\">\n <Loader v-if=\"!currentImage\" :progress=\"loadingProgress\" class=\"center z-index-5\"/>\n </transition>\n </div>\n</template>\n\n<script setup>\nimport { ref, watch, onMounted, onUnmounted, computed } from 'vue';\nimport Loader from '@martyrs/src/components/Loader/Loader.vue'\n\nconst props = defineProps({\n imagePath: {\n type: String,\n required: true,\n },\n imageCount: {\n type: Number,\n default: 36,\n },\n autoRotateSpeed: {\n type: Number,\n default: 100,\n },\n});\n\nconst imageIndex = ref(0);\nconst isRotating = ref(false);\nconst startClientX = ref(0);\n\nconst loadedImages = ref(0);\nconst loaded = ref(true);\n\nconst loadImages = async () => {\n const images = [];\n\n for (let i = 1; i <= props.imageCount; i++) {\n const img = new Image();\n img.src = `${props.imagePath}/${i}.jpg`;\n\n try {\n await img.decode();\n // Increase the number of loaded images\n loadedImages.value++;\n } catch (error) {\n console.warn(`Failed to decode ${props.imagePath}/${i}.jpg:`, error);\n }\n\n images.push(img);\n }\n\n return images;\n};\n\n// Add a computed property to calculate the loading progress percentage\nconst loadingProgress = computed(() => {\n return Math.round((loadedImages.value / props.imageCount) * 100);\n});\n\nconst images = ref([]);\n\nconst currentImage = ref('');\nconst firstImageLoad = ref(null);\nwatch(imageIndex, (index) => {\n currentImage.value = images.value[index] || '';\n});\n\nfunction startRotation(event) {\n isRotating.value = true;\n startClientX.value = event.clientX || event.touches[0].clientX;\n}\n\nfunction rotate(event) {\n if (!isRotating.value) return;\n\n const currentClientX = event.clientX || event.touches[0].clientX;\n const diff = currentClientX - startClientX.value;\n\n if (Math.abs(diff) >= 5) {\n const direction = diff > 0 ? 1 : -1;\n imageIndex.value = (imageIndex.value + direction) % props.imageCount;\n if (imageIndex.value < 0) imageIndex.value = props.imageCount - 1;\n\n startClientX.value = currentClientX;\n }\n}\n\nfunction stopRotation() {\n isRotating.value = false;\n}\n\nlet autoRotateInterval = null;\n\nconst unloadImages = () => {\n images.value = [];\n};\n\n\n\nonMounted(async () => {\n images.value = await loadImages();\n currentImage.value = images.value[0] || ''; \n});\nonUnmounted(() => {\n clearInterval(autoRotateInterval);\n unloadImages();\n});\n</script>\n\n\n<style scoped>\n .expand-enter-active,\n.expand-leave-active {\n transition: max-height 0.5s ease-in-out;\n overflow: hidden;\n}\n.scale-enter-active,\n.scale-leave-active {\n transition: transform 0.5s ease-in-out;\n}\n.scale5-enter-from,\n.scale5-leave-to {\n transform: scale(1.2);\n opacity: 0;\n}\n.scale5-enter-to,\n.scale5-leave-from {\n transform: scale(1);\n opacity: 1;\n}\n\n.product-360-viewer {\n user-select: none;\n min-height: 16rem;\n}\n\n.product-360-viewer img {\n max-width: 100%;\n cursor: grab;\n\n object-fit: cover;\n transition: all 0.3s ease;\n}\n\n.product-360-viewer img:active {\n cursor: grabbing;\n}\n\n/*.product-360-viewer img:hover {\n transform: scale(1.1);\n}*/\n</style>"],"names":["images"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA,UAAM,QAAQ;AAed,UAAM,aAAa,IAAI,CAAC;AACxB,UAAM,aAAa,IAAI,KAAK;AAC5B,UAAM,eAAe,IAAI,CAAC;AAE1B,UAAM,eAAe,IAAI,CAAC;AACX,QAAI,IAAI;AAEvB,UAAM,aAAa,YAAY;AAC7B,YAAMA,UAAS,CAAA;AAEf,eAAS,IAAI,GAAG,KAAK,MAAM,YAAY,KAAK;AAC1C,cAAM,MAAM,IAAI,MAAK;AACrB,YAAI,MAAM,GAAG,MAAM,SAAS,IAAI,CAAC;AAEjC,YAAI;AACF,gBAAM,IAAI,OAAM;AAEhB,uBAAa;AAAA,QACf,SAAS,OAAO;AACd,kBAAQ,KAAK,oBAAoB,MAAM,SAAS,IAAI,CAAC,SAAS,KAAK;AAAA,QACrE;AAEA,QAAAA,QAAO,KAAK,GAAG;AAAA,MACjB;AAEA,aAAOA;AAAA,IACT;AAGA,UAAM,kBAAkB,SAAS,MAAM;AACrC,aAAO,KAAK,MAAO,aAAa,QAAQ,MAAM,aAAc,GAAG;AAAA,IACjE,CAAC;AAED,UAAM,SAAS,IAAI,EAAE;AAErB,UAAM,eAAe,IAAI,EAAE;AAC3B,UAAM,iBAAiB,IAAI,IAAI;AAC/B,UAAM,YAAY,CAAC,UAAU;AAC3B,mBAAa,QAAQ,OAAO,MAAM,KAAK,KAAK;AAAA,IAC9C,CAAC;AAED,aAAS,cAAc,OAAO;AAC5B,iBAAW,QAAQ;AACnB,mBAAa,QAAQ,MAAM,WAAW,MAAM,QAAQ,CAAC,EAAE;AAAA,IACzD;AAEA,aAAS,OAAO,OAAO;AACrB,UAAI,CAAC,WAAW,MAAO;AAEvB,YAAM,iBAAiB,MAAM,WAAW,MAAM,QAAQ,CAAC,EAAE;AACzD,YAAM,OAAO,iBAAiB,aAAa;AAE3C,UAAI,KAAK,IAAI,IAAI,KAAK,GAAG;AACvB,cAAM,YAAY,OAAO,IAAI,IAAI;AACjC,mBAAW,SAAS,WAAW,QAAQ,aAAa,MAAM;AAC1D,YAAI,WAAW,QAAQ,EAAG,YAAW,QAAQ,MAAM,aAAa;AAEhE,qBAAa,QAAQ;AAAA,MACvB;AAAA,IACF;AAEA,aAAS,eAAe;AACtB,iBAAW,QAAQ;AAAA,IACrB;AAEA,QAAI,qBAAqB;AAEzB,UAAM,eAAe,MAAM;AACzB,aAAO,QAAQ,CAAA;AAAA,IACjB;AAIA,cAAU,YAAY;AACpB,aAAO,QAAQ,MAAM,WAAU;AAC/B,mBAAa,QAAQ,OAAO,MAAM,CAAC,KAAK;AAAA,IAC1C,CAAC;AACD,gBAAY,MAAM;AAChB,oBAAc,kBAAkB;AAChC,mBAAY;AAAA,IACd,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}