@ozdao/prometheus-framework 0.2.308 → 0.2.310

Sign up to get free protection for your applications and to get access to all the features.
Files changed (296) hide show
  1. package/dist/main.css +1 -1
  2. package/dist/products.server.js +196 -198
  3. package/dist/products.server.mjs +196 -198
  4. package/dist/prometheus-framework/src/components/Block/Block.vue.cjs +1 -1
  5. package/dist/prometheus-framework/src/components/Block/Block.vue.cjs.map +1 -1
  6. package/dist/prometheus-framework/src/components/Block/Block.vue.js +1 -1
  7. package/dist/prometheus-framework/src/components/Block/Block.vue.js.map +1 -1
  8. package/dist/prometheus-framework/src/components/Chips/Chips.vue2.cjs +2 -1
  9. package/dist/prometheus-framework/src/components/Chips/Chips.vue2.cjs.map +1 -1
  10. package/dist/prometheus-framework/src/components/Chips/Chips.vue2.js +3 -2
  11. package/dist/prometheus-framework/src/components/Chips/Chips.vue2.js.map +1 -1
  12. package/dist/prometheus-framework/src/components/EditImages/EditImages.vue.cjs +93 -0
  13. package/dist/prometheus-framework/src/components/EditImages/EditImages.vue.cjs.map +1 -1
  14. package/dist/prometheus-framework/src/components/EditImages/EditImages.vue.js +94 -1
  15. package/dist/prometheus-framework/src/components/EditImages/EditImages.vue.js.map +1 -1
  16. package/dist/prometheus-framework/src/components/EditImages/EditImages.vue2.cjs +0 -93
  17. package/dist/prometheus-framework/src/components/EditImages/EditImages.vue2.cjs.map +1 -1
  18. package/dist/prometheus-framework/src/components/EditImages/EditImages.vue2.js +1 -94
  19. package/dist/prometheus-framework/src/components/EditImages/EditImages.vue2.js.map +1 -1
  20. package/dist/prometheus-framework/src/components/Feed/Feed.vue.cjs +2 -2
  21. package/dist/prometheus-framework/src/components/Feed/Feed.vue.cjs.map +1 -1
  22. package/dist/prometheus-framework/src/components/Feed/Feed.vue.js +2 -2
  23. package/dist/prometheus-framework/src/components/Feed/Feed.vue.js.map +1 -1
  24. package/dist/prometheus-framework/src/components/Field/Field.vue.cjs +13 -12
  25. package/dist/prometheus-framework/src/components/Field/Field.vue.cjs.map +1 -1
  26. package/dist/prometheus-framework/src/components/Field/Field.vue.js +13 -12
  27. package/dist/prometheus-framework/src/components/Field/Field.vue.js.map +1 -1
  28. package/dist/prometheus-framework/src/components/Field/Field.vue2.cjs +13 -12
  29. package/dist/prometheus-framework/src/components/Field/Field.vue2.cjs.map +1 -1
  30. package/dist/prometheus-framework/src/components/Field/Field.vue2.js +13 -12
  31. package/dist/prometheus-framework/src/components/Field/Field.vue2.js.map +1 -1
  32. package/dist/prometheus-framework/src/modules/auth/auth.client.cjs +1 -0
  33. package/dist/prometheus-framework/src/modules/auth/auth.client.cjs.map +1 -1
  34. package/dist/prometheus-framework/src/modules/auth/auth.client.js +1 -0
  35. package/dist/prometheus-framework/src/modules/auth/auth.client.js.map +1 -1
  36. package/dist/prometheus-framework/src/modules/auth/views/components/pages/Profile.vue.cjs +58 -78
  37. package/dist/prometheus-framework/src/modules/auth/views/components/pages/Profile.vue.cjs.map +1 -1
  38. package/dist/prometheus-framework/src/modules/auth/views/components/pages/Profile.vue.js +78 -98
  39. package/dist/prometheus-framework/src/modules/auth/views/components/pages/Profile.vue.js.map +1 -1
  40. package/dist/prometheus-framework/src/modules/auth/views/components/pages/ProfileEdit.vue.cjs +90 -85
  41. package/dist/prometheus-framework/src/modules/auth/views/components/pages/ProfileEdit.vue.cjs.map +1 -1
  42. package/dist/prometheus-framework/src/modules/auth/views/components/pages/ProfileEdit.vue.js +94 -89
  43. package/dist/prometheus-framework/src/modules/auth/views/components/pages/ProfileEdit.vue.js.map +1 -1
  44. package/dist/prometheus-framework/src/modules/auth/views/middlewares/auth.validation.cjs +1 -0
  45. package/dist/prometheus-framework/src/modules/auth/views/middlewares/auth.validation.cjs.map +1 -1
  46. package/dist/prometheus-framework/src/modules/auth/views/middlewares/auth.validation.js +1 -0
  47. package/dist/prometheus-framework/src/modules/auth/views/middlewares/auth.validation.js.map +1 -1
  48. package/dist/prometheus-framework/src/modules/auth/views/router/users.cjs +19 -1
  49. package/dist/prometheus-framework/src/modules/auth/views/router/users.cjs.map +1 -1
  50. package/dist/prometheus-framework/src/modules/auth/views/router/users.js +19 -1
  51. package/dist/prometheus-framework/src/modules/auth/views/router/users.js.map +1 -1
  52. package/dist/prometheus-framework/src/modules/auth/views/store/auth.cjs +6 -2
  53. package/dist/prometheus-framework/src/modules/auth/views/store/auth.cjs.map +1 -1
  54. package/dist/prometheus-framework/src/modules/auth/views/store/auth.js +6 -2
  55. package/dist/prometheus-framework/src/modules/auth/views/store/auth.js.map +1 -1
  56. package/dist/prometheus-framework/src/modules/backoffice/components/pages/Dashboard.vue.cjs +3 -5
  57. package/dist/prometheus-framework/src/modules/backoffice/components/pages/Dashboard.vue.cjs.map +1 -1
  58. package/dist/prometheus-framework/src/modules/backoffice/components/pages/Dashboard.vue.js +4 -6
  59. package/dist/prometheus-framework/src/modules/backoffice/components/pages/Dashboard.vue.js.map +1 -1
  60. package/dist/prometheus-framework/src/modules/backoffice/components/partials/Sidebar.vue.cjs +1 -1
  61. package/dist/prometheus-framework/src/modules/backoffice/components/partials/Sidebar.vue.js +13 -13
  62. package/dist/prometheus-framework/src/modules/community/components/blocks/CardBlogpost.vue.cjs +2 -2
  63. package/dist/prometheus-framework/src/modules/community/components/blocks/CardBlogpost.vue.cjs.map +1 -1
  64. package/dist/prometheus-framework/src/modules/community/components/blocks/CardBlogpost.vue.js +2 -2
  65. package/dist/prometheus-framework/src/modules/community/components/blocks/CardBlogpost.vue.js.map +1 -1
  66. package/dist/prometheus-framework/src/modules/community/components/blocks/FooterBlogpost.vue.cjs +3 -3
  67. package/dist/prometheus-framework/src/modules/community/components/blocks/FooterBlogpost.vue.cjs.map +1 -1
  68. package/dist/prometheus-framework/src/modules/community/components/blocks/FooterBlogpost.vue.js +3 -3
  69. package/dist/prometheus-framework/src/modules/community/components/blocks/FooterBlogpost.vue.js.map +1 -1
  70. package/dist/prometheus-framework/src/modules/community/components/layouts/Community.vue.cjs +9 -9
  71. package/dist/prometheus-framework/src/modules/community/components/layouts/Community.vue.cjs.map +1 -1
  72. package/dist/prometheus-framework/src/modules/community/components/layouts/Community.vue.js +9 -9
  73. package/dist/prometheus-framework/src/modules/community/components/layouts/Community.vue.js.map +1 -1
  74. package/dist/prometheus-framework/src/modules/community/components/pages/Blog.vue.cjs +1 -1
  75. package/dist/prometheus-framework/src/modules/community/components/pages/Blog.vue.cjs.map +1 -1
  76. package/dist/prometheus-framework/src/modules/community/components/pages/Blog.vue.js +1 -1
  77. package/dist/prometheus-framework/src/modules/community/components/pages/Blog.vue.js.map +1 -1
  78. package/dist/prometheus-framework/src/modules/community/components/pages/BlogPost.vue.cjs +4 -4
  79. package/dist/prometheus-framework/src/modules/community/components/pages/BlogPost.vue.cjs.map +1 -1
  80. package/dist/prometheus-framework/src/modules/community/components/pages/BlogPost.vue.js +4 -4
  81. package/dist/prometheus-framework/src/modules/community/components/pages/BlogPost.vue.js.map +1 -1
  82. package/dist/prometheus-framework/src/modules/community/components/pages/Community.vue.cjs +1 -1
  83. package/dist/prometheus-framework/src/modules/community/components/pages/Community.vue.cjs.map +1 -1
  84. package/dist/prometheus-framework/src/modules/community/components/pages/Community.vue.js +1 -1
  85. package/dist/prometheus-framework/src/modules/community/components/pages/Community.vue.js.map +1 -1
  86. package/dist/prometheus-framework/src/modules/community/components/sections/Comments.vue.cjs +2 -2
  87. package/dist/prometheus-framework/src/modules/community/components/sections/Comments.vue.cjs.map +1 -1
  88. package/dist/prometheus-framework/src/modules/community/components/sections/Comments.vue.js +2 -2
  89. package/dist/prometheus-framework/src/modules/community/components/sections/Comments.vue.js.map +1 -1
  90. package/dist/prometheus-framework/src/modules/community/components/sections/HotPosts.vue.cjs +1 -1
  91. package/dist/prometheus-framework/src/modules/community/components/sections/HotPosts.vue.js +1 -1
  92. package/dist/prometheus-framework/src/modules/community/router/blogposts.cjs +2 -1
  93. package/dist/prometheus-framework/src/modules/community/router/blogposts.cjs.map +1 -1
  94. package/dist/prometheus-framework/src/modules/community/router/blogposts.js +2 -1
  95. package/dist/prometheus-framework/src/modules/community/router/blogposts.js.map +1 -1
  96. package/dist/prometheus-framework/src/modules/events/components/blocks/CardEvent.vue.cjs +1 -1
  97. package/dist/prometheus-framework/src/modules/events/components/blocks/CardEvent.vue.js +1 -1
  98. package/dist/prometheus-framework/src/modules/events/components/pages/EditEvent.vue.cjs +2 -2
  99. package/dist/prometheus-framework/src/modules/events/components/pages/EditEvent.vue.js +2 -2
  100. package/dist/prometheus-framework/src/modules/events/components/pages/Event.vue.cjs +1 -1
  101. package/dist/prometheus-framework/src/modules/events/components/pages/Event.vue.js +1 -1
  102. package/dist/prometheus-framework/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +3 -3
  103. package/dist/prometheus-framework/src/modules/gallery/components/sections/BackofficeGallery.vue.js +3 -3
  104. package/dist/prometheus-framework/src/modules/globals/globals.client.cjs +4 -2
  105. package/dist/prometheus-framework/src/modules/globals/globals.client.cjs.map +1 -1
  106. package/dist/prometheus-framework/src/modules/globals/globals.client.js +2 -0
  107. package/dist/prometheus-framework/src/modules/globals/globals.client.js.map +1 -1
  108. package/dist/prometheus-framework/src/modules/globals/views/classes/store.cjs +57 -0
  109. package/dist/prometheus-framework/src/modules/globals/views/classes/store.cjs.map +1 -0
  110. package/dist/prometheus-framework/src/modules/globals/views/classes/store.js +57 -0
  111. package/dist/prometheus-framework/src/modules/globals/views/classes/store.js.map +1 -0
  112. package/dist/prometheus-framework/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +1 -1
  113. package/dist/prometheus-framework/src/modules/globals/views/components/blocks/CardHeader.vue.js +1 -1
  114. package/dist/prometheus-framework/src/modules/globals/views/components/partials/BottomNavigationBar.vue.cjs +75 -114
  115. package/dist/prometheus-framework/src/modules/globals/views/components/partials/BottomNavigationBar.vue.cjs.map +1 -1
  116. package/dist/prometheus-framework/src/modules/globals/views/components/partials/BottomNavigationBar.vue.js +76 -115
  117. package/dist/prometheus-framework/src/modules/globals/views/components/partials/BottomNavigationBar.vue.js.map +1 -1
  118. package/dist/prometheus-framework/src/modules/globals/views/components/partials/NavigationBar.vue.cjs +4 -4
  119. package/dist/prometheus-framework/src/modules/globals/views/components/partials/NavigationBar.vue.cjs.map +1 -1
  120. package/dist/prometheus-framework/src/modules/globals/views/components/partials/NavigationBar.vue.js +7 -7
  121. package/dist/prometheus-framework/src/modules/globals/views/components/partials/NavigationBar.vue.js.map +1 -1
  122. package/dist/prometheus-framework/src/modules/globals/views/store/globals.cjs +4 -0
  123. package/dist/prometheus-framework/src/modules/globals/views/store/globals.cjs.map +1 -1
  124. package/dist/prometheus-framework/src/modules/globals/views/store/globals.js +4 -0
  125. package/dist/prometheus-framework/src/modules/globals/views/store/globals.js.map +1 -1
  126. package/dist/prometheus-framework/src/modules/icons/entities/IconCatalog.vue.cjs +36 -0
  127. package/dist/prometheus-framework/src/modules/icons/entities/IconCatalog.vue.cjs.map +1 -0
  128. package/dist/prometheus-framework/src/modules/icons/entities/IconCatalog.vue.js +36 -0
  129. package/dist/prometheus-framework/src/modules/icons/entities/IconCatalog.vue.js.map +1 -0
  130. package/dist/prometheus-framework/src/modules/icons/entities/IconCommunity.vue.cjs +36 -24
  131. package/dist/prometheus-framework/src/modules/icons/entities/IconCommunity.vue.cjs.map +1 -1
  132. package/dist/prometheus-framework/src/modules/icons/entities/IconCommunity.vue.js +36 -24
  133. package/dist/prometheus-framework/src/modules/icons/entities/IconCommunity.vue.js.map +1 -1
  134. package/dist/prometheus-framework/src/modules/icons/entities/IconGroups.vue.cjs +21 -12
  135. package/dist/prometheus-framework/src/modules/icons/entities/IconGroups.vue.cjs.map +1 -1
  136. package/dist/prometheus-framework/src/modules/icons/entities/IconGroups.vue.js +21 -12
  137. package/dist/prometheus-framework/src/modules/icons/entities/IconGroups.vue.js.map +1 -1
  138. package/dist/prometheus-framework/src/modules/icons/entities/IconHome.vue.cjs +36 -0
  139. package/dist/prometheus-framework/src/modules/icons/entities/IconHome.vue.cjs.map +1 -0
  140. package/dist/prometheus-framework/src/modules/icons/entities/IconHome.vue.js +36 -0
  141. package/dist/prometheus-framework/src/modules/icons/entities/IconHome.vue.js.map +1 -0
  142. package/dist/prometheus-framework/src/modules/icons/skeletons/SkeletonBlogpost.vue.cjs +1 -1
  143. package/dist/prometheus-framework/src/modules/icons/skeletons/SkeletonBlogpost.vue.cjs.map +1 -1
  144. package/dist/prometheus-framework/src/modules/icons/skeletons/SkeletonBlogpost.vue.js +1 -1
  145. package/dist/prometheus-framework/src/modules/icons/skeletons/SkeletonBlogpost.vue.js.map +1 -1
  146. package/dist/prometheus-framework/src/modules/icons/skeletons/SkeletonEvent.vue.cjs +1 -1
  147. package/dist/prometheus-framework/src/modules/icons/skeletons/SkeletonEvent.vue.cjs.map +1 -1
  148. package/dist/prometheus-framework/src/modules/icons/skeletons/SkeletonEvent.vue.js +1 -1
  149. package/dist/prometheus-framework/src/modules/icons/skeletons/SkeletonEvent.vue.js.map +1 -1
  150. package/dist/prometheus-framework/src/modules/icons/skeletons/SkeletonEventShort.vue.cjs +1 -1
  151. package/dist/prometheus-framework/src/modules/icons/skeletons/SkeletonEventShort.vue.cjs.map +1 -1
  152. package/dist/prometheus-framework/src/modules/icons/skeletons/SkeletonEventShort.vue.js +1 -1
  153. package/dist/prometheus-framework/src/modules/icons/skeletons/SkeletonEventShort.vue.js.map +1 -1
  154. package/dist/prometheus-framework/src/modules/icons/skeletons/SkeletonOrganization.vue.cjs +1 -1
  155. package/dist/prometheus-framework/src/modules/icons/skeletons/SkeletonOrganization.vue.cjs.map +1 -1
  156. package/dist/prometheus-framework/src/modules/icons/skeletons/SkeletonOrganization.vue.js +1 -1
  157. package/dist/prometheus-framework/src/modules/icons/skeletons/SkeletonOrganization.vue.js.map +1 -1
  158. package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +1 -1
  159. package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +1 -1
  160. package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardOrganization.vue.cjs +1 -1
  161. package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardOrganization.vue.js +1 -1
  162. package/dist/prometheus-framework/src/modules/organizations/components/pages/Organization.vue.cjs +1 -1
  163. package/dist/prometheus-framework/src/modules/organizations/components/pages/Organization.vue.cjs.map +1 -1
  164. package/dist/prometheus-framework/src/modules/organizations/components/pages/Organization.vue.js +1 -1
  165. package/dist/prometheus-framework/src/modules/organizations/components/pages/Organization.vue.js.map +1 -1
  166. package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +2 -3
  167. package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs.map +1 -1
  168. package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +15 -16
  169. package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js.map +1 -1
  170. package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +1 -1
  171. package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationEdit.vue.js +1 -1
  172. package/dist/prometheus-framework/src/modules/organizations/components/sections/DetailsTabSection.vue.cjs +2 -2
  173. package/dist/prometheus-framework/src/modules/organizations/components/sections/DetailsTabSection.vue.js +2 -2
  174. package/dist/prometheus-framework/src/modules/pages/pages.client.cjs +1117 -1117
  175. package/dist/prometheus-framework/src/modules/pages/pages.client.js +1117 -1117
  176. package/dist/prometheus-framework/src/modules/products/components/blocks/CardCategory.vue.cjs +3 -3
  177. package/dist/prometheus-framework/src/modules/products/components/blocks/CardCategory.vue.cjs.map +1 -1
  178. package/dist/prometheus-framework/src/modules/products/components/blocks/CardCategory.vue.js +3 -3
  179. package/dist/prometheus-framework/src/modules/products/components/blocks/CardCategory.vue.js.map +1 -1
  180. package/dist/prometheus-framework/src/modules/products/components/blocks/CardPosition.vue.cjs +1 -1
  181. package/dist/prometheus-framework/src/modules/products/components/blocks/CardPosition.vue.js +1 -1
  182. package/dist/prometheus-framework/src/modules/products/components/blocks/CardProduct.vue.cjs +11 -10
  183. package/dist/prometheus-framework/src/modules/products/components/blocks/CardProduct.vue.cjs.map +1 -1
  184. package/dist/prometheus-framework/src/modules/products/components/blocks/CardProduct.vue.js +11 -10
  185. package/dist/prometheus-framework/src/modules/products/components/blocks/CardProduct.vue.js.map +1 -1
  186. package/dist/prometheus-framework/src/modules/products/components/pages/Categories.vue.cjs +78 -43
  187. package/dist/prometheus-framework/src/modules/products/components/pages/Categories.vue.cjs.map +1 -1
  188. package/dist/prometheus-framework/src/modules/products/components/pages/Categories.vue.js +83 -48
  189. package/dist/prometheus-framework/src/modules/products/components/pages/Categories.vue.js.map +1 -1
  190. package/dist/prometheus-framework/src/modules/products/components/pages/CategoryEdit.vue.cjs +79 -29
  191. package/dist/prometheus-framework/src/modules/products/components/pages/CategoryEdit.vue.cjs.map +1 -1
  192. package/dist/prometheus-framework/src/modules/products/components/pages/CategoryEdit.vue.js +90 -40
  193. package/dist/prometheus-framework/src/modules/products/components/pages/CategoryEdit.vue.js.map +1 -1
  194. package/dist/prometheus-framework/src/modules/products/components/pages/EditLeftover.vue.cjs +1 -1
  195. package/dist/prometheus-framework/src/modules/products/components/pages/EditLeftover.vue.js +1 -1
  196. package/dist/prometheus-framework/src/modules/products/components/pages/ProductEdit.vue.cjs +120 -81
  197. package/dist/prometheus-framework/src/modules/products/components/pages/ProductEdit.vue.cjs.map +1 -1
  198. package/dist/prometheus-framework/src/modules/products/components/pages/ProductEdit.vue.js +133 -94
  199. package/dist/prometheus-framework/src/modules/products/components/pages/ProductEdit.vue.js.map +1 -1
  200. package/dist/prometheus-framework/src/modules/products/components/pages/Products.vue.cjs +39 -21
  201. package/dist/prometheus-framework/src/modules/products/components/pages/Products.vue.cjs.map +1 -1
  202. package/dist/prometheus-framework/src/modules/products/components/pages/Products.vue.js +51 -33
  203. package/dist/prometheus-framework/src/modules/products/components/pages/Products.vue.js.map +1 -1
  204. package/dist/prometheus-framework/src/modules/products/components/sections/CategoriesTree.vue.cjs +96 -0
  205. package/dist/prometheus-framework/src/modules/products/components/sections/CategoriesTree.vue.cjs.map +1 -0
  206. package/dist/prometheus-framework/src/modules/products/components/sections/CategoriesTree.vue.js +96 -0
  207. package/dist/prometheus-framework/src/modules/products/components/sections/CategoriesTree.vue.js.map +1 -0
  208. package/dist/prometheus-framework/src/modules/products/components/sections/EditProductInfo.vue.cjs +20 -6
  209. package/dist/prometheus-framework/src/modules/products/components/sections/EditProductInfo.vue.cjs.map +1 -1
  210. package/dist/prometheus-framework/src/modules/products/components/sections/EditProductInfo.vue.js +20 -6
  211. package/dist/prometheus-framework/src/modules/products/components/sections/EditProductInfo.vue.js.map +1 -1
  212. package/dist/prometheus-framework/src/modules/products/components/sections/Filters.vue.cjs +1 -1
  213. package/dist/prometheus-framework/src/modules/products/components/sections/Filters.vue.js +1 -1
  214. package/dist/prometheus-framework/src/modules/products/products.client.cjs.map +1 -1
  215. package/dist/prometheus-framework/src/modules/products/products.client.js.map +1 -1
  216. package/dist/prometheus-framework/src/modules/products/router/categories.router.cjs +17 -5
  217. package/dist/prometheus-framework/src/modules/products/router/categories.router.cjs.map +1 -1
  218. package/dist/prometheus-framework/src/modules/products/router/categories.router.js +17 -5
  219. package/dist/prometheus-framework/src/modules/products/router/categories.router.js.map +1 -1
  220. package/dist/prometheus-framework/src/modules/products/router/products.router.cjs +1 -12
  221. package/dist/prometheus-framework/src/modules/products/router/products.router.cjs.map +1 -1
  222. package/dist/prometheus-framework/src/modules/products/router/products.router.js +1 -12
  223. package/dist/prometheus-framework/src/modules/products/router/products.router.js.map +1 -1
  224. package/dist/prometheus-framework/src/modules/products/store/categories.cjs +52 -71
  225. package/dist/prometheus-framework/src/modules/products/store/categories.cjs.map +1 -1
  226. package/dist/prometheus-framework/src/modules/products/store/categories.js +52 -71
  227. package/dist/prometheus-framework/src/modules/products/store/categories.js.map +1 -1
  228. package/dist/prometheus-framework/src/modules/products/store/products.cjs +6 -8
  229. package/dist/prometheus-framework/src/modules/products/store/products.cjs.map +1 -1
  230. package/dist/prometheus-framework/src/modules/products/store/products.js +6 -8
  231. package/dist/prometheus-framework/src/modules/products/store/products.js.map +1 -1
  232. package/dist/prometheus-framework/src/modules/spots/components/blocks/CardSpot.vue.cjs +1 -1
  233. package/dist/prometheus-framework/src/modules/spots/components/blocks/CardSpot.vue.js +1 -1
  234. package/dist/prometheus-framework/src/modules/spots/components/layouts/Spots.vue.cjs +1 -1
  235. package/dist/prometheus-framework/src/modules/spots/components/layouts/Spots.vue.js +1 -1
  236. package/dist/prometheus-framework/src/modules/wallet/views/components/pages/Wallet.vue.cjs +2 -2
  237. package/dist/prometheus-framework/src/modules/wallet/views/components/pages/Wallet.vue.js +2 -2
  238. package/dist/prometheus-framework.cjs.js +21 -21
  239. package/dist/prometheus-framework.es.js +910 -910
  240. package/package.json +1 -1
  241. package/src/components/Block/Block.vue +1 -1
  242. package/src/components/Completion/Completion.vue +1 -0
  243. package/src/components/EditImages/EditImages.vue +1 -1
  244. package/src/components/Feed/Feed.vue +1 -1
  245. package/src/components/Field/Field.vue +1 -1
  246. package/src/modules/auth/auth.client.js +2 -0
  247. package/src/modules/auth/views/components/pages/Profile.vue +57 -35
  248. package/src/modules/auth/views/components/pages/ProfileEdit.vue +91 -77
  249. package/src/modules/auth/views/middlewares/auth.validation.js +1 -0
  250. package/src/modules/auth/views/router/users.js +21 -2
  251. package/src/modules/auth/views/store/auth.js +6 -2
  252. package/src/modules/backoffice/components/pages/Dashboard.vue +1 -3
  253. package/src/modules/community/components/blocks/CardBlogpost.vue +1 -1
  254. package/src/modules/community/components/blocks/FooterBlogpost.vue +3 -3
  255. package/src/modules/community/components/layouts/Community.vue +8 -8
  256. package/src/modules/community/components/pages/Blog.vue +1 -1
  257. package/src/modules/community/components/pages/BlogPost.vue +3 -3
  258. package/src/modules/community/components/pages/Community.vue +1 -1
  259. package/src/modules/community/components/sections/Comments.vue +2 -2
  260. package/src/modules/community/router/blogposts.js +4 -3
  261. package/src/modules/globals/globals.client.js +3 -0
  262. package/src/modules/globals/views/classes/store.js +63 -0
  263. package/src/modules/globals/views/components/partials/BottomNavigationBar.vue +87 -59
  264. package/src/modules/globals/views/components/partials/NavigationBar.vue +3 -3
  265. package/src/modules/globals/views/store/globals.js +5 -0
  266. package/src/modules/icons/entities/IconCatalog.vue +18 -0
  267. package/src/modules/icons/entities/IconCommunity.vue +15 -5
  268. package/src/modules/icons/entities/IconGroups.vue +7 -2
  269. package/src/modules/icons/entities/IconHome.vue +18 -0
  270. package/src/modules/icons/skeletons/SkeletonBlogpost.vue +1 -1
  271. package/src/modules/icons/skeletons/SkeletonEvent.vue +1 -1
  272. package/src/modules/icons/skeletons/SkeletonEventShort.vue +1 -1
  273. package/src/modules/icons/skeletons/SkeletonOrganization.vue +1 -1
  274. package/src/modules/organizations/components/pages/Organization.vue +1 -1
  275. package/src/modules/organizations/components/pages/OrganizationBackoffice.vue +1 -2
  276. package/src/modules/products/components/blocks/CardCategory.vue +14 -3
  277. package/src/modules/products/components/blocks/CardProduct.vue +12 -11
  278. package/src/modules/products/components/pages/Categories.vue +120 -28
  279. package/src/modules/products/components/pages/CategoryEdit.vue +206 -151
  280. package/src/modules/products/components/pages/ProductEdit.vue +107 -69
  281. package/src/modules/products/components/pages/Products.vue +35 -20
  282. package/src/modules/products/components/sections/CategoriesTree.vue +102 -0
  283. package/src/modules/products/components/sections/EditProductInfo.vue +53 -40
  284. package/src/modules/products/controllers/categories.controller.js +177 -97
  285. package/src/modules/products/controllers/products.controller.js +4 -2
  286. package/src/modules/products/models/category.model.js +15 -66
  287. package/src/modules/products/models/product.model.js +15 -12
  288. package/src/modules/products/products.client.js +0 -1
  289. package/src/modules/products/router/categories.router.js +17 -5
  290. package/src/modules/products/router/products.router.js +0 -12
  291. package/src/modules/products/routes/categories.routes.js +5 -34
  292. package/src/modules/products/store/categories.js +69 -83
  293. package/src/modules/products/store/products.js +6 -8
  294. package/src/styles/base/shadow_transitions_hover_refactor.scss +2 -0
  295. package/src/styles/typography.scss +2 -2
  296. package/src/modules/auth/views/router/account.js +0 -41
@@ -1,17 +1,19 @@
1
- import { ref, watch, onMounted, openBlock, createElementBlock, unref, createElementVNode, createCommentVNode, createBlock, createVNode, withCtx, Fragment, renderList } from "vue";
1
+ import { ref, watch, onMounted, onUnmounted, resolveComponent, openBlock, createElementBlock, unref, createElementVNode, createCommentVNode, createBlock, createVNode, withCtx, Fragment, renderList } from "vue";
2
2
  import { useRoute, useRouter } from "vue-router";
3
- import _sfc_main$1 from "../../../../components/Tab/Tab.vue2.js";
4
- import _sfc_main$4 from "../../../../components/Feed/Feed.vue.js";
3
+ import _sfc_main$2 from "../../../../components/Tab/Tab.vue2.js";
4
+ import _sfc_main$5 from "../../../../components/Feed/Feed.vue.js";
5
5
  /* empty css */
6
6
  import "vue-i18n";
7
7
  import { actions } from "../../store/categories.js";
8
8
  import { state } from "../../store/marketplace.js";
9
9
  /* empty css */
10
- import _sfc_main$3 from "../../../globals/views/components/blocks/BlockSearch.vue.js";
11
- import _sfc_main$2 from "../../../globals/views/components/blocks/BlockFilter.vue.js";
12
- import _sfc_main$5 from "../blocks/CardProduct.vue.js";
10
+ import _sfc_main$4 from "../../../globals/views/components/blocks/BlockSearch.vue.js";
11
+ import _sfc_main$3 from "../../../globals/views/components/blocks/BlockFilter.vue.js";
12
+ import _sfc_main$6 from "../blocks/CardProduct.vue.js";
13
+ import _sfc_main$1 from "../../../icons/navigation/IconPlus.vue.js";
13
14
  import { state as state$2 } from "../../../auth/views/store/auth.js";
14
- import { actions as actions$1, state as state$1 } from "../../store/products.js";
15
+ import { state as state$1 } from "../../../globals/views/store/globals.js";
16
+ import { actions as actions$1, state as state$3 } from "../../store/products.js";
15
17
  const _hoisted_1 = { class: "h-100" };
16
18
  const _hoisted_2 = {
17
19
  key: 0,
@@ -36,7 +38,14 @@ const _sfc_main = {
36
38
  watch(tabProducts, (newValue) => {
37
39
  if (route.name !== "Organization") router.replace({ query: { ...route.query, tabProducts: newValue } });
38
40
  });
39
- onMounted(async () => {
41
+ state$1.navigation_bar.actions = [{
42
+ component: _sfc_main$1,
43
+ props: {
44
+ fill: "rgb(var(--main))"
45
+ },
46
+ condition: () => state$2.user && state$2.user._id,
47
+ action: () => route.params._id ? router.push({ name: "Organization_ProductAdd", params: { _id: route.params._id } }) : router.push({ name: "ProductAdd" })
48
+ }], onMounted(async () => {
40
49
  let categoriesFilter = await actions.fetchCategories();
41
50
  categoriesFilter = categoriesFilter.map((category) => ({
42
51
  value: category.url,
@@ -54,6 +63,9 @@ const _sfc_main = {
54
63
  state.filter.options.unshift(categoryOption);
55
64
  }
56
65
  });
66
+ onUnmounted(() => {
67
+ state$1.navigation_bar.actions = [];
68
+ });
57
69
  watch(() => state.sort, (newSortValue, oldSortValue) => {
58
70
  let query = { ...route.query };
59
71
  query.sortParam = newSortValue.param;
@@ -80,17 +92,21 @@ const _sfc_main = {
80
92
  router.replace({ query });
81
93
  }
82
94
  return (_ctx, _cache) => {
95
+ const _component_router_link = resolveComponent("router-link");
83
96
  return openBlock(), createElementBlock("div", _hoisted_1, [
84
97
  unref(route).name !== "Organization" && !_ctx.MOBILE_APP ? (openBlock(), createElementBlock("header", _hoisted_2, [
85
98
  _cache[4] || (_cache[4] = createElementVNode("h2", { class: "mn-r-medium" }, "Products", -1)),
86
99
  createElementVNode("button", {
87
- onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$router.push({
88
- name: unref(route).params._id ? "Organization_ProductAdd" : "ProductAdd"
89
- })),
100
+ onClick: _cache[0] || (_cache[0] = ($event) => {
101
+ var _a;
102
+ return _ctx.$router.push({
103
+ name: ((_a = unref(route).params) == null ? void 0 : _a._id) ? "Organization_ProductAdd" : "ProductAdd"
104
+ });
105
+ }),
90
106
  class: "radius-100 i-big hover-scale-1 cursor-pointer t-white bg-second"
91
107
  }, " + ")
92
108
  ])) : createCommentVNode("", true),
93
- unref(route).name !== "Organization" ? (openBlock(), createBlock(_sfc_main$1, {
109
+ unref(route).name !== "Organization" ? (openBlock(), createBlock(_sfc_main$2, {
94
110
  key: 1,
95
111
  selected: tabProducts.value,
96
112
  "onUpdate:selected": _cache[1] || (_cache[1] = ($event) => tabProducts.value = $event),
@@ -102,10 +118,10 @@ const _sfc_main = {
102
118
  ],
103
119
  style: { "flex": "0 0 auto" },
104
120
  class: "o-hidden h5 bg-light gap-micro pd-small pd-t-thin pd-b-thin pos-sticky pos-t-0 z-index-1",
105
- tabClass: "bg-white pd-small radius-small w-100"
121
+ tabClass: "bg-white uppercase pd-small radius-small w-100"
106
122
  }, null, 8, ["selected"])) : createCommentVNode("", true),
107
123
  createElementVNode("div", _hoisted_3, [
108
- createVNode(_sfc_main$2, {
124
+ createVNode(_sfc_main$3, {
109
125
  filter: state.filter,
110
126
  "onUpdate:filter": _cache[2] || (_cache[2] = ($event) => state.filter = $event),
111
127
  options: state.filter.options,
@@ -113,13 +129,13 @@ const _sfc_main = {
113
129
  }, null, 8, ["filter", "options"]),
114
130
  createElementVNode("div", _hoisted_4, [
115
131
  createElementVNode("div", _hoisted_5, [
116
- createVNode(_sfc_main$3, {
132
+ createVNode(_sfc_main$4, {
117
133
  onSearch: updateSearch,
118
134
  placeholder: "Enter product name",
119
135
  class: "bg-light h-4r"
120
136
  })
121
137
  ]),
122
- createVNode(_sfc_main$4, {
138
+ createVNode(_sfc_main$5, {
123
139
  filter: state.filter,
124
140
  "onUpdate:filter": _cache[3] || (_cache[3] = ($event) => state.filter = $event),
125
141
  states: {
@@ -130,11 +146,11 @@ const _sfc_main = {
130
146
  },
131
147
  store: {
132
148
  read: (options) => actions$1.read(options),
133
- state: state$1
149
+ state: state$3
134
150
  },
135
151
  options: {
136
152
  limit: 15,
137
- organization: unref(route).params._id,
153
+ owner: unref(route).params._id,
138
154
  categories: unref(route).query.categories,
139
155
  prices: unref(route).query.prices,
140
156
  delivery: unref(route).query.delivery,
@@ -142,26 +158,28 @@ const _sfc_main = {
142
158
  ...tabProducts.value !== "all" && { status: tabProducts.value }
143
159
  // user: user
144
160
  },
145
- class: "cols-4 pd-thin gap-thin"
161
+ class: "cols-4 rows-1 pd-t-zero pd-thin gap-thin"
146
162
  }, {
147
163
  default: withCtx(({
148
164
  items
149
165
  }) => [
150
166
  (openBlock(true), createElementBlock(Fragment, null, renderList(items, (product) => {
151
- return openBlock(), createBlock(_sfc_main$5, {
152
- key: product._id,
153
- product,
154
- user: state$2.access,
155
- class: "h-max bg-white",
156
- onClickCapture: ($event) => _ctx.$router.push({
157
- name: "Organization_Product",
158
- params: {
159
- _id: unref(route).params._id,
160
- product: product._id
161
- }
162
- })
163
- }, null, 8, ["product", "user", "onClickCapture"]);
164
- }), 128))
167
+ return openBlock(), createBlock(_component_router_link, {
168
+ to: unref(route).params._id ? { name: "Organization_Product", params: { _id: unref(route).params._id, product: product._id } } : { name: "Product", params: { product: product._id } }
169
+ }, {
170
+ default: withCtx(() => [
171
+ (openBlock(), createBlock(_sfc_main$6, {
172
+ key: product._id,
173
+ product,
174
+ user: state$2.access,
175
+ organization: unref(route).params._id,
176
+ access: _ctx.hasAccess(unref(route).params._id, "products", "edit", state$2.accesses),
177
+ class: "h-max bg-light"
178
+ }, null, 8, ["product", "user", "organization", "access"]))
179
+ ]),
180
+ _: 2
181
+ }, 1032, ["to"]);
182
+ }), 256))
165
183
  ]),
166
184
  _: 1
167
185
  }, 8, ["filter", "store", "options"])
@@ -1 +1 @@
1
- {"version":3,"file":"Products.vue.js","sources":["../../../../../../../src/modules/products/components/pages/Products.vue"],"sourcesContent":["<template>\n <div class=\"h-100\">\n <header \n v-if=\"route.name !== 'Organization' && !MOBILE_APP\"\n class=\"mn-b-medium flex-v-center flex-nowrap flex\"\n >\n <h2 class=\"mn-r-medium\">Products</h2>\n <button \n @click=\"$router.push({\n name: route.params._id ? 'Organization_ProductAdd' : 'ProductAdd'\n })\" \n class=\"radius-100 i-big hover-scale-1 cursor-pointer t-white bg-second\">\n +\n </button>\n </header>\n\n <Tab \n v-if=\"route.name !== 'Organization'\"\n v-model:selected=\"tabProducts\"\n :tabs=\"[\n { name: 'All', value: 'all' },\n { name: 'Published', value: 'published' },\n { name: 'Unpublished', value: 'unpublished' }, \n { name: 'Archivied', value: 'archivied' } \n ]\"\n style=\"flex: 0 0 auto\"\n class=\"\n o-hidden \n h5 \n bg-light\n gap-micro pd-small pd-t-thin pd-b-thin\n pos-sticky pos-t-0\n z-index-1\n \"\n tabClass=\"bg-white pd-small radius-small w-100\"\n />\n\n <div class=\"cols-2-1_3 h-100 z-index-3 pos-relative radius-big gap-thin\">\n\n <BlockFilter\n v-model:filter=\"marketplace.state.filter\"\n :options=\"marketplace.state.filter.options\"\n class=\"h-100 w-100 z-index-2 desktop-only\"\n />\n\n\n <div class=\"rows-1 h-100 z-index-3 bg-white radius-tl-big radius-tr-big\">\n <div class=\"pd-thin z-index-3 radius-tl-big radius-tr-big pos-t-0 pos-sticky\">\n <BlockSearch \n @search=\"updateSearch\"\n placeholder=\"Enter product name\"\n class=\"bg-light h-4r\"\n />\n </div>\n <Feed\n v-model:filter=\"marketplace.state.filter\"\n \n :states=\"{\n empty: {\n title: 'No Products Found',\n description: 'Currently, there are no products available.'\n }\n }\"\n :store=\"{\n read: (options) => products.actions.read(options),\n state: products.state\n }\"\n :options=\"{\n limit: 15,\n organization: route.params._id,\n categories: route.query.categories,\n prices: route.query.prices,\n delivery: route.query.delivery,\n // search: route.query.search,\n ...(tabProducts !== 'all' && { status: tabProducts })\n // user: user\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"cols-4 pd-thin gap-thin\"\n >\n <CardProduct\n v-for=\"product in items\"\n :key=\"product._id\"\n :product=\"product\"\n :user=\"auth.state.access\"\n class=\"h-max bg-white\"\n @click.capture=\"$router.push({\n name: 'Organization_Product', \n params: { \n _id: route.params._id, \n product: product._id \n } \n })\" \n />\n </Feed>\n </div>\n </div>\n</div>\n</template>\n\n\n<script setup=\"props\">\n // Import libs\n import { computed, watch, onMounted, ref } from 'vue'\n import { useRoute, useRouter } from 'vue-router'\n\n // Import components\n import Tab from '@pf/src/components/Tab/Tab.vue'\n import Feed from '@pf/src/components/Feed/Feed.vue'\n\n import FilterProducts from '@pf/src/modules/products/components/sections/FilterProducts.vue'\n import BlockSearch from '@pf/src/modules/globals/views/components/blocks/BlockSearch.vue'\n import BlockFilter from '@pf/src/modules/globals/views/components/blocks/BlockFilter.vue'\n\n import CardProduct from '@pf/src/modules/products/components/blocks/CardProduct.vue'\n\n // Accessing router and store\n import * as auth from '@pf/src/modules/auth/views/store/auth';\n import * as products from '@pf/src/modules/products/store/products';\n import * as marketplace from '@pf/src/modules/products/store/marketplace';\n import * as categories from '@pf/src/modules/products/store/categories';\n\n const route = useRoute()\n const router = useRouter()\n\n // Tab logic\n const tabProducts = ref(route.query.tabProducts ? route.query.tabProducts : 'all')\n\n if (route.name !== 'Organization') route.query.tabProducts = tabProducts.value\n \n if (route.query) {\n const query = route.query;\n\n marketplace.state.filter.selected.categories = query.categories ? query.categories.split(',') : [];\n marketplace.state.filter.selected.prices = query.prices ? query.prices.split(',') : [];\n marketplace.state.filter.selected.delivery = query.delivery ? query.delivery.split(',') : [];\n }\n\n\n watch(tabProducts, (newValue) => {\n if (route.name !== 'Organization') router.replace({ query: { ...route.query, tabProducts: newValue } });\n });\n\n onMounted(async () => {\n let categoriesFilter = await categories.actions.fetchCategories();\n\n categoriesFilter = categoriesFilter.map(category => ({\n value: category.url,\n label: category.name\n }));\n\n const index = marketplace.state.filter.options.findIndex(option => option.value === 'categories');\n\n const categoryOption = {\n title: 'Categories',\n value: 'categories',\n options: categoriesFilter\n };\n\n if (index !== -1) {\n marketplace.state.filter.options[index] = categoryOption;\n } else {\n marketplace.state.filter.options.unshift(categoryOption);\n }\n })\n\n watch(() => marketplace.state.sort, (newSortValue, oldSortValue) => {\n let query = { ...route.query}\n \n query.sortParam = newSortValue.param\n query.sortOrder = newSortValue.order\n \n // replace the current route\n router.replace({ query });\n }, { deep: true });\n\n\n watch(() => marketplace.state.filter.selected, (newFilterValue, oldFilterValue) => {\n // Переводим фильтр в формат query\n const query = { ...route.query };\n\n // Удаляем старые значения фильтра из query\n Object.keys(oldFilterValue).forEach(key => {\n if (query[key]) {\n delete query[key];\n }\n });\n\n // Добавляем новые значения фильтра в query\n const newQueryValues = Object.fromEntries(\n Object.entries(newFilterValue)\n .filter(([key, value]) => Array.isArray(value) && value.length > 0)\n .map(([key, value]) => [key, value.join(',')])\n );\n\n delete query.options;\n Object.assign(query, newQueryValues);\n\n // Обновляем маршрут с новым query\n router.replace({ query });\n }, { deep: true })\n\n\n\n \n function updateSearch(search) {\n let query = { ...route.query}\n \n query.search = search\n \n router.replace({ query });\n }\n</script>\n\n<style lang=\"scss\">\n\n\n</style>\n"],"names":["marketplace.state","categories.actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA4HE,UAAM,QAAQ,SAAU;AACxB,UAAM,SAAS,UAAW;AAG1B,UAAM,cAAc,IAAI,MAAM,MAAM,cAAc,MAAM,MAAM,cAAc,KAAK;AAEjF,QAAI,MAAM,SAAS,eAAgB,OAAM,MAAM,cAAc,YAAY;AAEzE,QAAI,MAAM,OAAO;AACf,YAAM,QAAQ,MAAM;AAEpBA,YAAkB,OAAO,SAAS,aAAa,MAAM,aAAa,MAAM,WAAW,MAAM,GAAG,IAAI,CAAA;AAChGA,YAAkB,OAAO,SAAS,SAAS,MAAM,SAAS,MAAM,OAAO,MAAM,GAAG,IAAI,CAAA;AACpFA,YAAkB,OAAO,SAAS,WAAW,MAAM,WAAW,MAAM,SAAS,MAAM,GAAG,IAAI,CAAA;AAAA,IAC3F;AAGD,UAAM,aAAa,CAAC,aAAa;AAC/B,UAAI,MAAM,SAAS,eAAgB,QAAO,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,aAAa,SAAQ,EAAI,CAAA;AAAA,IAC1G,CAAG;AAED,cAAU,YAAY;AACpB,UAAI,mBAAmB,MAAMC,QAAmB;AAEhD,yBAAmB,iBAAiB,IAAI,eAAa;AAAA,QACnD,OAAO,SAAS;AAAA,QAChB,OAAO,SAAS;AAAA,MACjB,EAAC;AAEF,YAAM,QAAQD,MAAkB,OAAO,QAAQ,UAAU,YAAU,OAAO,UAAU,YAAY;AAEhG,YAAM,iBAAiB;AAAA,QACrB,OAAO;AAAA,QACP,OAAO;AAAA,QACP,SAAS;AAAA,MACf;AAEI,UAAI,UAAU,IAAI;AACdA,cAAkB,OAAO,QAAQ,KAAK,IAAI;AAAA,MAClD,OAAW;AACHA,cAAkB,OAAO,QAAQ,QAAQ,cAAc;AAAA,MAC1D;AAAA,IACL,CAAG;AAED,UAAM,MAAMA,MAAkB,MAAM,CAAC,cAAc,iBAAiB;AAClE,UAAI,QAAQ,EAAE,GAAG,MAAM,MAAK;AAE5B,YAAM,YAAY,aAAa;AAC/B,YAAM,YAAY,aAAa;AAG/B,aAAO,QAAQ,EAAE,MAAK,CAAE;AAAA,IAC5B,GAAK,EAAE,MAAM,KAAI,CAAE;AAGjB,UAAM,MAAMA,MAAkB,OAAO,UAAU,CAAC,gBAAgB,mBAAmB;AAEjF,YAAM,QAAQ,EAAE,GAAG,MAAM,MAAK;AAG9B,aAAO,KAAK,cAAc,EAAE,QAAQ,SAAO;AACzC,YAAI,MAAM,GAAG,GAAG;AACd,iBAAO,MAAM,GAAG;AAAA,QACjB;AAAA,MACP,CAAK;AAGD,YAAM,iBAAiB,OAAO;AAAA,QAC5B,OAAO,QAAQ,cAAc,EAC1B,OAAO,CAAC,CAAC,KAAK,KAAK,MAAM,MAAM,QAAQ,KAAK,KAAK,MAAM,SAAS,CAAC,EACjE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,MAAM,KAAK,GAAG,CAAC,CAAC;AAAA,MACrD;AAEI,aAAO,MAAM;AACb,aAAO,OAAO,OAAO,cAAc;AAGnC,aAAO,QAAQ,EAAE,MAAK,CAAE;AAAA,IAC5B,GAAK,EAAE,MAAM,MAAM;AAKjB,aAAS,aAAa,QAAQ;AAC5B,UAAI,QAAQ,EAAE,GAAG,MAAM,MAAK;AAE5B,YAAM,SAAS;AAEf,aAAO,QAAQ,EAAE,MAAK,CAAE;AAAA,IACzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Products.vue.js","sources":["../../../../../../../src/modules/products/components/pages/Products.vue"],"sourcesContent":["<template>\n <div class=\"h-100\">\n <header \n v-if=\"route.name !== 'Organization' && !MOBILE_APP\"\n class=\"mn-b-medium flex-v-center flex-nowrap flex\"\n >\n <h2 class=\"mn-r-medium\">Products</h2>\n <button \n @click=\"$router.push({\n name: route.params?._id ? 'Organization_ProductAdd' : 'ProductAdd'\n })\" \n class=\"radius-100 i-big hover-scale-1 cursor-pointer t-white bg-second\">\n +\n </button>\n </header>\n\n <Tab \n v-if=\"route.name !== 'Organization'\"\n v-model:selected=\"tabProducts\"\n :tabs=\"[\n { name: 'All', value: 'all' },\n { name: 'Published', value: 'published' },\n { name: 'Unpublished', value: 'unpublished' }, \n { name: 'Archivied', value: 'archivied' } \n ]\"\n style=\"flex: 0 0 auto\"\n class=\"\n o-hidden \n h5 \n bg-light\n gap-micro pd-small pd-t-thin pd-b-thin\n pos-sticky pos-t-0\n z-index-1\n\n \"\n tabClass=\"bg-white uppercase pd-small radius-small w-100\"\n />\n\n <div class=\"cols-2-1_3 h-100 z-index-3 pos-relative radius-big gap-thin\">\n\n <BlockFilter\n v-model:filter=\"marketplace.state.filter\"\n :options=\"marketplace.state.filter.options\"\n class=\"h-100 w-100 z-index-2 desktop-only\"\n />\n\n\n <div class=\"rows-1 h-100 z-index-3 bg-white radius-tl-big radius-tr-big\">\n <div class=\"pd-thin z-index-3 radius-tl-big radius-tr-big pos-t-0 pos-sticky\">\n <BlockSearch \n @search=\"updateSearch\"\n placeholder=\"Enter product name\"\n class=\"bg-light h-4r\"\n />\n </div>\n <Feed\n v-model:filter=\"marketplace.state.filter\"\n \n :states=\"{\n empty: {\n title: 'No Products Found',\n description: 'Currently, there are no products available.'\n }\n }\"\n :store=\"{\n read: (options) => products.actions.read(options),\n state: products.state\n }\"\n :options=\"{\n limit: 15,\n owner: route.params._id,\n categories: route.query.categories,\n prices: route.query.prices,\n delivery: route.query.delivery,\n // search: route.query.search,\n ...(tabProducts !== 'all' && { status: tabProducts })\n // user: user\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"cols-4 rows-1 pd-t-zero pd-thin gap-thin\"\n >\n <router-link \n v-for=\"product in items\" \n :to=\"route.params._id ? { name: 'Organization_Product', params: { _id: route.params._id, product: product._id } } : { name: 'Product', params: { product: product._id } }\">\n <CardProduct\n :key=\"product._id\"\n :product=\"product\"\n :user=\"auth.state.access\"\n :organization=\"route.params._id\"\n :access=\"hasAccess(route.params._id, 'products', 'edit', auth.state.accesses)\"\n class=\"h-max bg-light\"\n />\n </router-link>\n </Feed>\n\n </div>\n </div>\n</div>\n</template>\n\n\n<script setup=\"props\">\n // Import libs\n import { ref, computed, watch, onMounted, onUnmounted } from 'vue'\n import { useRoute, useRouter } from 'vue-router'\n\n // Import components\n import Tab from '@pf/src/components/Tab/Tab.vue'\n import Feed from '@pf/src/components/Feed/Feed.vue'\n\n import FilterProducts from '@pf/src/modules/products/components/sections/FilterProducts.vue'\n import BlockSearch from '@pf/src/modules/globals/views/components/blocks/BlockSearch.vue'\n import BlockFilter from '@pf/src/modules/globals/views/components/blocks/BlockFilter.vue'\n\n import CardProduct from '@pf/src/modules/products/components/blocks/CardProduct.vue'\n\n import IconPlus from '@pf/src/modules/icons/navigation/IconPlus.vue'\n\n // Accessing router and store\n import * as auth from '@pf/src/modules/auth/views/store/auth';\n import * as globals from '@pf/src/modules/globals/views/store/globals';\n import * as products from '@pf/src/modules/products/store/products';\n import * as marketplace from '@pf/src/modules/products/store/marketplace';\n import * as categories from '@pf/src/modules/products/store/categories';\n\n const route = useRoute()\n const router = useRouter()\n\n // Tab logic\n const tabProducts = ref(route.query.tabProducts ? route.query.tabProducts : 'all')\n\n if (route.name !== 'Organization') route.query.tabProducts = tabProducts.value\n \n if (route.query) {\n const query = route.query;\n\n marketplace.state.filter.selected.categories = query.categories ? query.categories.split(',') : [];\n marketplace.state.filter.selected.prices = query.prices ? query.prices.split(',') : [];\n marketplace.state.filter.selected.delivery = query.delivery ? query.delivery.split(',') : [];\n }\n\n watch(tabProducts, (newValue) => {\n if (route.name !== 'Organization') router.replace({ query: { ...route.query, tabProducts: newValue } });\n });\n\n globals.state.navigation_bar.actions = [{\n component: IconPlus,\n props: {\n fill: \"rgb(var(--main))\" \n },\n condition: () => auth.state.user && auth.state.user._id,\n action: () => route.params._id ? router.push({ name: 'Organization_ProductAdd', params: { _id: route.params._id} }) : router.push({ name: 'ProductAdd' })\n }],\n\n onMounted(async () => {\n let categoriesFilter = await categories.actions.fetchCategories();\n\n categoriesFilter = categoriesFilter.map(category => ({\n value: category.url,\n label: category.name\n }));\n\n const index = marketplace.state.filter.options.findIndex(option => option.value === 'categories');\n\n const categoryOption = {\n title: 'Categories',\n value: 'categories',\n options: categoriesFilter\n };\n\n if (index !== -1) {\n marketplace.state.filter.options[index] = categoryOption;\n } else {\n marketplace.state.filter.options.unshift(categoryOption);\n }\n })\n\n onUnmounted(() => {\n globals.state.navigation_bar.actions = [];\n });\n\n watch(() => marketplace.state.sort, (newSortValue, oldSortValue) => {\n let query = { ...route.query}\n \n query.sortParam = newSortValue.param\n query.sortOrder = newSortValue.order\n \n // replace the current route\n router.replace({ query });\n }, { deep: true });\n\n\n watch(() => marketplace.state.filter.selected, (newFilterValue, oldFilterValue) => {\n // Переводим фильтр в формат query\n const query = { ...route.query };\n\n // Удаляем старые значения фильтра из query\n Object.keys(oldFilterValue).forEach(key => {\n if (query[key]) {\n delete query[key];\n }\n });\n\n // Добавляем новые значения фильтра в query\n const newQueryValues = Object.fromEntries(\n Object.entries(newFilterValue)\n .filter(([key, value]) => Array.isArray(value) && value.length > 0)\n .map(([key, value]) => [key, value.join(',')])\n );\n\n delete query.options;\n Object.assign(query, newQueryValues);\n\n // Обновляем маршрут с новым query\n router.replace({ query });\n }, { deep: true })\n\n\n\n \n function updateSearch(search) {\n let query = { ...route.query}\n \n query.search = search\n \n router.replace({ query });\n }\n</script>\n\n<style lang=\"scss\">\n\n\n</style>\n"],"names":["marketplace.state","globals.state","IconPlus","auth.state","categories.actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AA+HE,UAAM,QAAQ,SAAU;AACxB,UAAM,SAAS,UAAW;AAG1B,UAAM,cAAc,IAAI,MAAM,MAAM,cAAc,MAAM,MAAM,cAAc,KAAK;AAEjF,QAAI,MAAM,SAAS,eAAgB,OAAM,MAAM,cAAc,YAAY;AAEzE,QAAI,MAAM,OAAO;AACf,YAAM,QAAQ,MAAM;AAEpBA,YAAkB,OAAO,SAAS,aAAa,MAAM,aAAa,MAAM,WAAW,MAAM,GAAG,IAAI,CAAA;AAChGA,YAAkB,OAAO,SAAS,SAAS,MAAM,SAAS,MAAM,OAAO,MAAM,GAAG,IAAI,CAAA;AACpFA,YAAkB,OAAO,SAAS,WAAW,MAAM,WAAW,MAAM,SAAS,MAAM,GAAG,IAAI,CAAA;AAAA,IAC3F;AAED,UAAM,aAAa,CAAC,aAAa;AAC/B,UAAI,MAAM,SAAS,eAAgB,QAAO,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,aAAa,SAAQ,EAAI,CAAA;AAAA,IAC1G,CAAG;AAEDC,YAAc,eAAe,UAAU,CAAC;AAAA,MACtC,WAAWC;AAAAA,MACX,OAAO;AAAA,QACL,MAAM;AAAA,MACP;AAAA,MACD,WAAW,MAAMC,QAAW,QAAQA,QAAW,KAAK;AAAA,MACpD,QAAQ,MAAM,MAAM,OAAO,MAAM,OAAO,KAAK,EAAE,MAAM,2BAA2B,QAAQ,EAAE,KAAK,MAAM,OAAO,IAAG,EAAG,CAAA,IAAI,OAAO,KAAK,EAAE,MAAM,cAAc;AAAA,IAC5J,CAAG,GAED,UAAU,YAAY;AACpB,UAAI,mBAAmB,MAAMC,QAAmB;AAEhD,yBAAmB,iBAAiB,IAAI,eAAa;AAAA,QACnD,OAAO,SAAS;AAAA,QAChB,OAAO,SAAS;AAAA,MACjB,EAAC;AAEF,YAAM,QAAQJ,MAAkB,OAAO,QAAQ,UAAU,YAAU,OAAO,UAAU,YAAY;AAEhG,YAAM,iBAAiB;AAAA,QACrB,OAAO;AAAA,QACP,OAAO;AAAA,QACP,SAAS;AAAA,MACf;AAEI,UAAI,UAAU,IAAI;AACdA,cAAkB,OAAO,QAAQ,KAAK,IAAI;AAAA,MAClD,OAAW;AACHA,cAAkB,OAAO,QAAQ,QAAQ,cAAc;AAAA,MAC1D;AAAA,IACL,CAAG;AAED,gBAAY,MAAM;AAChBC,cAAc,eAAe,UAAU;IAC3C,CAAG;AAED,UAAM,MAAMD,MAAkB,MAAM,CAAC,cAAc,iBAAiB;AAClE,UAAI,QAAQ,EAAE,GAAG,MAAM,MAAK;AAE5B,YAAM,YAAY,aAAa;AAC/B,YAAM,YAAY,aAAa;AAG/B,aAAO,QAAQ,EAAE,MAAK,CAAE;AAAA,IAC5B,GAAK,EAAE,MAAM,KAAI,CAAE;AAGjB,UAAM,MAAMA,MAAkB,OAAO,UAAU,CAAC,gBAAgB,mBAAmB;AAEjF,YAAM,QAAQ,EAAE,GAAG,MAAM,MAAK;AAG9B,aAAO,KAAK,cAAc,EAAE,QAAQ,SAAO;AACzC,YAAI,MAAM,GAAG,GAAG;AACd,iBAAO,MAAM,GAAG;AAAA,QACjB;AAAA,MACP,CAAK;AAGD,YAAM,iBAAiB,OAAO;AAAA,QAC5B,OAAO,QAAQ,cAAc,EAC1B,OAAO,CAAC,CAAC,KAAK,KAAK,MAAM,MAAM,QAAQ,KAAK,KAAK,MAAM,SAAS,CAAC,EACjE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,MAAM,KAAK,GAAG,CAAC,CAAC;AAAA,MACrD;AAEI,aAAO,MAAM;AACb,aAAO,OAAO,OAAO,cAAc;AAGnC,aAAO,QAAQ,EAAE,MAAK,CAAE;AAAA,IAC5B,GAAK,EAAE,MAAM,MAAM;AAKjB,aAAS,aAAa,QAAQ;AAC5B,UAAI,QAAQ,EAAE,GAAG,MAAM,MAAK;AAE5B,YAAM,SAAS;AAEf,aAAO,QAAQ,EAAE,MAAK,CAAE;AAAA,IACzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const vue = require("vue");
4
+ const vueDraggableNext_esmBundler = require("../../../../../../node_modules/vue-draggable-next/dist/vue-draggable-next.esm-bundler.cjs");
5
+ const CardCategory = require("../blocks/CardCategory.vue.cjs");
6
+ const categories = require("../../store/categories.cjs");
7
+ const _sfc_main = {
8
+ __name: "CategoriesTree",
9
+ props: {
10
+ items: Array,
11
+ state: Array
12
+ },
13
+ emits: ["update"],
14
+ setup(__props, { emit: __emit }) {
15
+ const props = __props;
16
+ const emits = __emit;
17
+ const dragOptions = {
18
+ animation: 200,
19
+ group: "category",
20
+ ghostClass: "ghost"
21
+ };
22
+ async function deleteCategory(category) {
23
+ if (confirm(`Are you sure you want to delete the category "${category.name}"?`)) {
24
+ await categories.actions.deleteCategory(category.url);
25
+ }
26
+ }
27
+ function findCategoryAndUpdateParent(items, targetId, parentId = null) {
28
+ for (const item of items) {
29
+ if (item._id === targetId) {
30
+ item.parent = parentId;
31
+ return item;
32
+ }
33
+ if (item.children) {
34
+ const found = findCategoryAndUpdateParent(item.children, targetId, item._id);
35
+ if (found) {
36
+ return found;
37
+ }
38
+ }
39
+ }
40
+ return null;
41
+ }
42
+ function updateOrders(items, startOrder = 0) {
43
+ let currentOrder = startOrder;
44
+ items.forEach((item) => {
45
+ var _a;
46
+ item.order = currentOrder++;
47
+ if ((_a = item.children) == null ? void 0 : _a.length) {
48
+ currentOrder = updateOrders(item.children, currentOrder);
49
+ }
50
+ });
51
+ return currentOrder;
52
+ }
53
+ function handleChange(event) {
54
+ if (!event.added && !event.moved) return;
55
+ const targetId = event.added ? event.added.element._id : props.items[event.moved.newIndex]._id;
56
+ const updatedCategory = findCategoryAndUpdateParent(props.state, targetId);
57
+ if (!updatedCategory) return;
58
+ updateOrders(props.state);
59
+ emits("update", updatedCategory);
60
+ }
61
+ function emitChange(event) {
62
+ emits("update", event);
63
+ }
64
+ return (_ctx, _cache) => {
65
+ return vue.openBlock(), vue.createBlock(vue.unref(vueDraggableNext_esmBundler.VueDraggableNext), vue.mergeProps(dragOptions, {
66
+ class: "dragArea list-group w-full",
67
+ list: __props.items,
68
+ onChange: handleChange
69
+ }), {
70
+ default: vue.withCtx(() => [
71
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.items, (category) => {
72
+ return vue.openBlock(), vue.createElementBlock("div", {
73
+ key: category._id,
74
+ class: "pd-medium bg-light radius-medium mn-b-thin"
75
+ }, [
76
+ vue.createVNode(CardCategory.default, {
77
+ category,
78
+ onDelete: deleteCategory
79
+ }, null, 8, ["category"]),
80
+ vue.createElementVNode("div", null, [
81
+ vue.createVNode(_sfc_main, {
82
+ items: category.children,
83
+ state: __props.items,
84
+ onUpdate: emitChange
85
+ }, null, 8, ["items", "state"])
86
+ ])
87
+ ]);
88
+ }), 128))
89
+ ]),
90
+ _: 1
91
+ }, 16, ["list"]);
92
+ };
93
+ }
94
+ };
95
+ exports.default = _sfc_main;
96
+ //# sourceMappingURL=CategoriesTree.vue.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CategoriesTree.vue.cjs","sources":["../../../../../../../src/modules/products/components/sections/CategoriesTree.vue"],"sourcesContent":["<template>\n <VueDraggableNext\n v-bind=\"dragOptions\" \n class=\"dragArea list-group w-full\"\n :list=\"items\"\n @change=\"handleChange\"\n >\n <div v-for=\"category in items\" :key=\"category._id\" class=\"pd-medium bg-light radius-medium mn-b-thin\">\n <CardCategory \n :category=\"category\" \n @delete=\"deleteCategory\" \n />\n <div\n >\n <!-- Subcategories: -->\n <CategoryList \n :items=\"category.children\"\n :state=\"items\"\n @update=\"emitChange\"\n />\n </div>\n </div>\n </VueDraggableNext>\n</template>\n\n<script setup>\nimport { VueDraggableNext } from 'vue-draggable-next';\nimport CardCategory from '@pf/src/modules/products/components/blocks/CardCategory.vue';\nimport CategoryList from '@pf/src/modules/products/components/sections/CategoriesTree.vue';\nimport * as categories from '@pf/src/modules/products/store/categories';\n\nconst props = defineProps({\n items: Array,\n state: Array\n});\n\nconst emits = defineEmits(['update']);\n\nconst dragOptions = {\n animation: 200,\n group: 'category',\n ghostClass: 'ghost'\n};\n\nasync function deleteCategory(category) {\n if (confirm(`Are you sure you want to delete the category \"${category.name}\"?`)) {\n await categories.actions.deleteCategory(category.url);\n }\n}\n\nfunction findCategoryAndUpdateParent(items, targetId, parentId = null) {\n for (const item of items) {\n if (item._id === targetId) {\n item.parent = parentId;\n return item;\n }\n \n if (item.children) {\n const found = findCategoryAndUpdateParent(item.children, targetId, item._id);\n if (found) {\n return found;\n }\n }\n }\n return null;\n}\n\nfunction updateOrders(items, startOrder = 0) {\n let currentOrder = startOrder;\n \n items.forEach(item => {\n item.order = currentOrder++;\n \n if (item.children?.length) {\n currentOrder = updateOrders(item.children, currentOrder);\n }\n });\n \n return currentOrder;\n}\n\nfunction handleChange(event) {\n if (!event.added && !event.moved) return;\n \n const targetId = event.added ? \n event.added.element._id : \n props.items[event.moved.newIndex]._id;\n \n const updatedCategory = findCategoryAndUpdateParent(props.state, targetId);\n if (!updatedCategory) return;\n \n // Обновляем order для всего дерева категорий\n updateOrders(props.state);\n \n // Отправляем обновленную категорию\n emits('update', updatedCategory);\n}\n\nfunction emitChange(event) {\n emits('update', event);\n}\n</script> "],"names":["categories.actions"],"mappings":";;;;;;;;;;;;;;AA+BA,UAAM,QAAQ;AAKd,UAAM,QAAQ;AAEd,UAAM,cAAc;AAAA,MAClB,WAAW;AAAA,MACX,OAAO;AAAA,MACP,YAAY;AAAA,IACd;AAEA,mBAAe,eAAe,UAAU;AACtC,UAAI,QAAQ,iDAAiD,SAAS,IAAI,IAAI,GAAG;AAC/E,cAAMA,mBAAmB,eAAe,SAAS,GAAG;AAAA,MACrD;AAAA,IACH;AAEA,aAAS,4BAA4B,OAAO,UAAU,WAAW,MAAM;AACrE,iBAAW,QAAQ,OAAO;AACxB,YAAI,KAAK,QAAQ,UAAU;AACzB,eAAK,SAAS;AACd,iBAAO;AAAA,QACR;AAED,YAAI,KAAK,UAAU;AACjB,gBAAM,QAAQ,4BAA4B,KAAK,UAAU,UAAU,KAAK,GAAG;AAC3E,cAAI,OAAO;AACT,mBAAO;AAAA,UACR;AAAA,QACF;AAAA,MACF;AACD,aAAO;AAAA,IACT;AAEA,aAAS,aAAa,OAAO,aAAa,GAAG;AAC3C,UAAI,eAAe;AAEnB,YAAM,QAAQ,UAAQ;;AACpB,aAAK,QAAQ;AAEb,aAAI,UAAK,aAAL,mBAAe,QAAQ;AACzB,yBAAe,aAAa,KAAK,UAAU,YAAY;AAAA,QACxD;AAAA,MACL,CAAG;AAED,aAAO;AAAA,IACT;AAEA,aAAS,aAAa,OAAO;AAC3B,UAAI,CAAC,MAAM,SAAS,CAAC,MAAM,MAAO;AAElC,YAAM,WAAW,MAAM,QACrB,MAAM,MAAM,QAAQ,MACpB,MAAM,MAAM,MAAM,MAAM,QAAQ,EAAE;AAEpC,YAAM,kBAAkB,4BAA4B,MAAM,OAAO,QAAQ;AACzE,UAAI,CAAC,gBAAiB;AAGtB,mBAAa,MAAM,KAAK;AAGxB,YAAM,UAAU,eAAe;AAAA,IACjC;AAEA,aAAS,WAAW,OAAO;AACzB,YAAM,UAAU,KAAK;AAAA,IACvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,96 @@
1
+ import { openBlock, createBlock, unref, mergeProps, withCtx, createElementBlock, Fragment, renderList, createVNode, createElementVNode } from "vue";
2
+ import { VueDraggableNext } from "../../../../../../node_modules/vue-draggable-next/dist/vue-draggable-next.esm-bundler.js";
3
+ import _sfc_main$1 from "../blocks/CardCategory.vue.js";
4
+ import { actions } from "../../store/categories.js";
5
+ const _sfc_main = {
6
+ __name: "CategoriesTree",
7
+ props: {
8
+ items: Array,
9
+ state: Array
10
+ },
11
+ emits: ["update"],
12
+ setup(__props, { emit: __emit }) {
13
+ const props = __props;
14
+ const emits = __emit;
15
+ const dragOptions = {
16
+ animation: 200,
17
+ group: "category",
18
+ ghostClass: "ghost"
19
+ };
20
+ async function deleteCategory(category) {
21
+ if (confirm(`Are you sure you want to delete the category "${category.name}"?`)) {
22
+ await actions.deleteCategory(category.url);
23
+ }
24
+ }
25
+ function findCategoryAndUpdateParent(items, targetId, parentId = null) {
26
+ for (const item of items) {
27
+ if (item._id === targetId) {
28
+ item.parent = parentId;
29
+ return item;
30
+ }
31
+ if (item.children) {
32
+ const found = findCategoryAndUpdateParent(item.children, targetId, item._id);
33
+ if (found) {
34
+ return found;
35
+ }
36
+ }
37
+ }
38
+ return null;
39
+ }
40
+ function updateOrders(items, startOrder = 0) {
41
+ let currentOrder = startOrder;
42
+ items.forEach((item) => {
43
+ var _a;
44
+ item.order = currentOrder++;
45
+ if ((_a = item.children) == null ? void 0 : _a.length) {
46
+ currentOrder = updateOrders(item.children, currentOrder);
47
+ }
48
+ });
49
+ return currentOrder;
50
+ }
51
+ function handleChange(event) {
52
+ if (!event.added && !event.moved) return;
53
+ const targetId = event.added ? event.added.element._id : props.items[event.moved.newIndex]._id;
54
+ const updatedCategory = findCategoryAndUpdateParent(props.state, targetId);
55
+ if (!updatedCategory) return;
56
+ updateOrders(props.state);
57
+ emits("update", updatedCategory);
58
+ }
59
+ function emitChange(event) {
60
+ emits("update", event);
61
+ }
62
+ return (_ctx, _cache) => {
63
+ return openBlock(), createBlock(unref(VueDraggableNext), mergeProps(dragOptions, {
64
+ class: "dragArea list-group w-full",
65
+ list: __props.items,
66
+ onChange: handleChange
67
+ }), {
68
+ default: withCtx(() => [
69
+ (openBlock(true), createElementBlock(Fragment, null, renderList(__props.items, (category) => {
70
+ return openBlock(), createElementBlock("div", {
71
+ key: category._id,
72
+ class: "pd-medium bg-light radius-medium mn-b-thin"
73
+ }, [
74
+ createVNode(_sfc_main$1, {
75
+ category,
76
+ onDelete: deleteCategory
77
+ }, null, 8, ["category"]),
78
+ createElementVNode("div", null, [
79
+ createVNode(_sfc_main, {
80
+ items: category.children,
81
+ state: __props.items,
82
+ onUpdate: emitChange
83
+ }, null, 8, ["items", "state"])
84
+ ])
85
+ ]);
86
+ }), 128))
87
+ ]),
88
+ _: 1
89
+ }, 16, ["list"]);
90
+ };
91
+ }
92
+ };
93
+ export {
94
+ _sfc_main as default
95
+ };
96
+ //# sourceMappingURL=CategoriesTree.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CategoriesTree.vue.js","sources":["../../../../../../../src/modules/products/components/sections/CategoriesTree.vue"],"sourcesContent":["<template>\n <VueDraggableNext\n v-bind=\"dragOptions\" \n class=\"dragArea list-group w-full\"\n :list=\"items\"\n @change=\"handleChange\"\n >\n <div v-for=\"category in items\" :key=\"category._id\" class=\"pd-medium bg-light radius-medium mn-b-thin\">\n <CardCategory \n :category=\"category\" \n @delete=\"deleteCategory\" \n />\n <div\n >\n <!-- Subcategories: -->\n <CategoryList \n :items=\"category.children\"\n :state=\"items\"\n @update=\"emitChange\"\n />\n </div>\n </div>\n </VueDraggableNext>\n</template>\n\n<script setup>\nimport { VueDraggableNext } from 'vue-draggable-next';\nimport CardCategory from '@pf/src/modules/products/components/blocks/CardCategory.vue';\nimport CategoryList from '@pf/src/modules/products/components/sections/CategoriesTree.vue';\nimport * as categories from '@pf/src/modules/products/store/categories';\n\nconst props = defineProps({\n items: Array,\n state: Array\n});\n\nconst emits = defineEmits(['update']);\n\nconst dragOptions = {\n animation: 200,\n group: 'category',\n ghostClass: 'ghost'\n};\n\nasync function deleteCategory(category) {\n if (confirm(`Are you sure you want to delete the category \"${category.name}\"?`)) {\n await categories.actions.deleteCategory(category.url);\n }\n}\n\nfunction findCategoryAndUpdateParent(items, targetId, parentId = null) {\n for (const item of items) {\n if (item._id === targetId) {\n item.parent = parentId;\n return item;\n }\n \n if (item.children) {\n const found = findCategoryAndUpdateParent(item.children, targetId, item._id);\n if (found) {\n return found;\n }\n }\n }\n return null;\n}\n\nfunction updateOrders(items, startOrder = 0) {\n let currentOrder = startOrder;\n \n items.forEach(item => {\n item.order = currentOrder++;\n \n if (item.children?.length) {\n currentOrder = updateOrders(item.children, currentOrder);\n }\n });\n \n return currentOrder;\n}\n\nfunction handleChange(event) {\n if (!event.added && !event.moved) return;\n \n const targetId = event.added ? \n event.added.element._id : \n props.items[event.moved.newIndex]._id;\n \n const updatedCategory = findCategoryAndUpdateParent(props.state, targetId);\n if (!updatedCategory) return;\n \n // Обновляем order для всего дерева категорий\n updateOrders(props.state);\n \n // Отправляем обновленную категорию\n emits('update', updatedCategory);\n}\n\nfunction emitChange(event) {\n emits('update', event);\n}\n</script> "],"names":["categories.actions"],"mappings":";;;;;;;;;;;;AA+BA,UAAM,QAAQ;AAKd,UAAM,QAAQ;AAEd,UAAM,cAAc;AAAA,MAClB,WAAW;AAAA,MACX,OAAO;AAAA,MACP,YAAY;AAAA,IACd;AAEA,mBAAe,eAAe,UAAU;AACtC,UAAI,QAAQ,iDAAiD,SAAS,IAAI,IAAI,GAAG;AAC/E,cAAMA,QAAmB,eAAe,SAAS,GAAG;AAAA,MACrD;AAAA,IACH;AAEA,aAAS,4BAA4B,OAAO,UAAU,WAAW,MAAM;AACrE,iBAAW,QAAQ,OAAO;AACxB,YAAI,KAAK,QAAQ,UAAU;AACzB,eAAK,SAAS;AACd,iBAAO;AAAA,QACR;AAED,YAAI,KAAK,UAAU;AACjB,gBAAM,QAAQ,4BAA4B,KAAK,UAAU,UAAU,KAAK,GAAG;AAC3E,cAAI,OAAO;AACT,mBAAO;AAAA,UACR;AAAA,QACF;AAAA,MACF;AACD,aAAO;AAAA,IACT;AAEA,aAAS,aAAa,OAAO,aAAa,GAAG;AAC3C,UAAI,eAAe;AAEnB,YAAM,QAAQ,UAAQ;;AACpB,aAAK,QAAQ;AAEb,aAAI,UAAK,aAAL,mBAAe,QAAQ;AACzB,yBAAe,aAAa,KAAK,UAAU,YAAY;AAAA,QACxD;AAAA,MACL,CAAG;AAED,aAAO;AAAA,IACT;AAEA,aAAS,aAAa,OAAO;AAC3B,UAAI,CAAC,MAAM,SAAS,CAAC,MAAM,MAAO;AAElC,YAAM,WAAW,MAAM,QACrB,MAAM,MAAM,QAAQ,MACpB,MAAM,MAAM,MAAM,MAAM,QAAQ,EAAE;AAEpC,YAAM,kBAAkB,4BAA4B,MAAM,OAAO,QAAQ;AACzE,UAAI,CAAC,gBAAiB;AAGtB,mBAAa,MAAM,KAAK;AAGxB,YAAM,UAAU,eAAe;AAAA,IACjC;AAEA,aAAS,WAAW,OAAO;AACzB,YAAM,UAAU,KAAK;AAAA,IACvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -25,16 +25,27 @@ const _sfc_main = {
25
25
  placeholder: "Display product",
26
26
  class: "pos-relative w-100 mn-b-small bg-white radius-small pd-medium"
27
27
  }, null, 8, ["select"]),
28
+ vue.createVNode(Select.default, {
29
+ select: __props.product.listing,
30
+ "onUpdate:select": _cache[1] || (_cache[1] = ($event) => __props.product.listing = $event),
31
+ label: "Type",
32
+ options: [
33
+ "sale",
34
+ "rent"
35
+ ],
36
+ placeholder: "Type of listing",
37
+ class: "pos-relative w-100 mn-b-small bg-white radius-small pd-medium"
38
+ }, null, 8, ["select"]),
28
39
  vue.createVNode(Field.default, {
29
40
  field: __props.product.name,
30
- "onUpdate:field": _cache[1] || (_cache[1] = ($event) => __props.product.name = $event),
41
+ "onUpdate:field": _cache[2] || (_cache[2] = ($event) => __props.product.name = $event),
31
42
  label: "Name",
32
43
  placeholder: "Enter product name",
33
44
  class: "w-100 mn-b-small bg-white radius-small pd-medium"
34
45
  }, null, 8, ["field"]),
35
46
  vue.createVNode(Field.default, {
36
47
  field: __props.product.price,
37
- "onUpdate:field": _cache[3] || (_cache[3] = ($event) => __props.product.price = $event),
48
+ "onUpdate:field": _cache[4] || (_cache[4] = ($event) => __props.product.price = $event),
38
49
  label: "Price",
39
50
  placeholder: "Enter product price",
40
51
  class: "w-100 mn-b-small bg-white radius-small pd-medium",
@@ -42,10 +53,13 @@ const _sfc_main = {
42
53
  }, {
43
54
  default: vue.withCtx(() => [
44
55
  vue.createVNode(Select.default, {
45
- select: __props.product.price.currency,
46
- "onUpdate:select": _cache[2] || (_cache[2] = ($event) => __props.product.price.currency = $event),
47
- placeholder: "฿",
56
+ select: __props.product.price_currency,
57
+ "onUpdate:select": _cache[3] || (_cache[3] = ($event) => __props.product.price_currency = $event),
58
+ placeholder: "$",
48
59
  options: [
60
+ "$",
61
+ "£",
62
+ "€",
49
63
  "฿"
50
64
  ],
51
65
  class: "pos-relative bg-light pd-thin radius-thin"
@@ -55,7 +69,7 @@ const _sfc_main = {
55
69
  }, 8, ["field"]),
56
70
  vue.createVNode(Field.default, {
57
71
  field: __props.product.description,
58
- "onUpdate:field": _cache[4] || (_cache[4] = ($event) => __props.product.description = $event),
72
+ "onUpdate:field": _cache[5] || (_cache[5] = ($event) => __props.product.description = $event),
59
73
  label: "Description",
60
74
  placeholder: "Enter product description",
61
75
  class: "w-100 bg-white radius-small pd-medium",
@@ -1 +1 @@
1
- {"version":3,"file":"EditProductInfo.vue.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"EditProductInfo.vue.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -23,16 +23,27 @@ const _sfc_main = {
23
23
  placeholder: "Display product",
24
24
  class: "pos-relative w-100 mn-b-small bg-white radius-small pd-medium"
25
25
  }, null, 8, ["select"]),
26
+ createVNode(Select, {
27
+ select: __props.product.listing,
28
+ "onUpdate:select": _cache[1] || (_cache[1] = ($event) => __props.product.listing = $event),
29
+ label: "Type",
30
+ options: [
31
+ "sale",
32
+ "rent"
33
+ ],
34
+ placeholder: "Type of listing",
35
+ class: "pos-relative w-100 mn-b-small bg-white radius-small pd-medium"
36
+ }, null, 8, ["select"]),
26
37
  createVNode(Field, {
27
38
  field: __props.product.name,
28
- "onUpdate:field": _cache[1] || (_cache[1] = ($event) => __props.product.name = $event),
39
+ "onUpdate:field": _cache[2] || (_cache[2] = ($event) => __props.product.name = $event),
29
40
  label: "Name",
30
41
  placeholder: "Enter product name",
31
42
  class: "w-100 mn-b-small bg-white radius-small pd-medium"
32
43
  }, null, 8, ["field"]),
33
44
  createVNode(Field, {
34
45
  field: __props.product.price,
35
- "onUpdate:field": _cache[3] || (_cache[3] = ($event) => __props.product.price = $event),
46
+ "onUpdate:field": _cache[4] || (_cache[4] = ($event) => __props.product.price = $event),
36
47
  label: "Price",
37
48
  placeholder: "Enter product price",
38
49
  class: "w-100 mn-b-small bg-white radius-small pd-medium",
@@ -40,10 +51,13 @@ const _sfc_main = {
40
51
  }, {
41
52
  default: withCtx(() => [
42
53
  createVNode(Select, {
43
- select: __props.product.price.currency,
44
- "onUpdate:select": _cache[2] || (_cache[2] = ($event) => __props.product.price.currency = $event),
45
- placeholder: "฿",
54
+ select: __props.product.price_currency,
55
+ "onUpdate:select": _cache[3] || (_cache[3] = ($event) => __props.product.price_currency = $event),
56
+ placeholder: "$",
46
57
  options: [
58
+ "$",
59
+ "£",
60
+ "€",
47
61
  "฿"
48
62
  ],
49
63
  class: "pos-relative bg-light pd-thin radius-thin"
@@ -53,7 +67,7 @@ const _sfc_main = {
53
67
  }, 8, ["field"]),
54
68
  createVNode(Field, {
55
69
  field: __props.product.description,
56
- "onUpdate:field": _cache[4] || (_cache[4] = ($event) => __props.product.description = $event),
70
+ "onUpdate:field": _cache[5] || (_cache[5] = ($event) => __props.product.description = $event),
57
71
  label: "Description",
58
72
  placeholder: "Enter product description",
59
73
  class: "w-100 bg-white radius-small pd-medium",
@@ -1 +1 @@
1
- {"version":3,"file":"EditProductInfo.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"EditProductInfo.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -3,7 +3,7 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
3
3
  const vue = require("vue");
4
4
  const Checkbox = require("../../../../components/Checkbox/Checkbox.vue.cjs");
5
5
  ;/* empty css */
6
- const Dropdown = require("../../../../components/Dropdown/Dropdown.vue.cjs");
6
+ const Dropdown = require("../../../../components/Dropdown/Dropdown.vue2.cjs");
7
7
  const vueI18n = require("vue-i18n");
8
8
  const marketplace = require("../../store/marketplace.cjs");
9
9
  const categories = require("../../store/categories.cjs");
@@ -1,7 +1,7 @@
1
1
  import { onMounted, openBlock, createElementBlock, createElementVNode, createVNode, unref, normalizeClass, withCtx, Fragment, renderList } from "vue";
2
2
  import _sfc_main$2 from "../../../../components/Checkbox/Checkbox.vue.js";
3
3
  /* empty css */
4
- import _sfc_main$1 from "../../../../components/Dropdown/Dropdown.vue.js";
4
+ import _sfc_main$1 from "../../../../components/Dropdown/Dropdown.vue2.js";
5
5
  import { useI18n } from "vue-i18n";
6
6
  import { state } from "../../store/marketplace.js";
7
7
  import * as categories from "../../store/categories.js";
@@ -1 +1 @@
1
- {"version":3,"file":"products.client.cjs","sources":["../../../../../src/modules/products/products.client.js"],"sourcesContent":["// Router\nimport { createProductRoutes } from './router/products.router';\nimport routerMarketplace from './router/marketplace.router.js';\n\n//Store\nimport * as storeCategories from './store/categories.js';\nimport * as storeLeftovers from './store/leftovers.js';\nimport * as storeProducts from './store/products.js';\nimport * as storeMarketplace from './store/marketplace.js';\n\n// Layouts \nimport Marketplace from './components/layouts/Marketplace.vue';\n\n// Blocks\nimport ImagesThumbnails from './components/blocks/ImagesThumbnails.vue';\nimport LeftoverPositions from './components/blocks/LeftoverPositions.vue';\nimport ListPositions from './components/blocks/ListPositions.vue';\nimport CardCategory from './components/blocks/CardCategory.vue';\nimport CardProduct from './components/blocks/CardProduct.vue';\nimport CardLeftover from './components/blocks/CardLeftover.vue';\nimport Images360 from './components/blocks/Images360.vue';\nimport CardPosition from './components/blocks/CardPosition.vue';\n\n// Sections\nimport SectionProduct from './components/sections/SectionProduct.vue';\nimport HeroRecommendation from './components/sections/HeroRecommendation.vue';\nimport FilterProducts from './components/sections/FilterProducts.vue';\nimport MenuSection from './components/sections/MenuSection.vue';\nimport EditModifications from './components/sections/EditModifications.vue';\nimport PopularProducts from './components/sections/PopularProducts.vue';\nimport EditProductInfo from './components/sections/EditProductInfo.vue';\nimport Filters from './components/sections/Filters.vue';\n\n// Elements\nimport Price from './components/elements/Price.vue';\nimport THC from './components/elements/THC.vue';\n\n// Pages\nimport Product from './components/pages/Product.vue';\nimport ProductEdit from './components/pages/ProductEdit.vue';\nimport EditLeftover from './components/pages/EditLeftover.vue';\nimport ProductRecommendation from './components/pages/ProductRecommmendation.vue';\nimport Products from './components/pages/Products.vue';\nimport Leftovers from './components/pages/Leftovers.vue';\nimport Catalog from './components/pages/Catalog.vue';\n\n// Пример функции инициализации для модуля продуктов\nfunction initializeProducts(app, store, router, options = {}) {\n const route = options.route || 'Home';\n\n const routesProducts = createProductRoutes();\n \n router.addRoute(route, routesProducts);\n\n router.addRoute(route, routerMarketplace);\n \n store.addStore('categories', storeCategories);\n store.addStore('leftovers', storeLeftovers);\n store.addStore('products', storeProducts);\n store.addStore('marketplace', storeMarketplace);\n}\n\nconst ModuleProducts = {\n initialize: initializeProducts,\n views: {\n store: {\n storeCategories,\n storeLeftovers,\n storeProducts,\n storeMarketplace,\n routerMarketplace\n },\n router: {\n createProductRoutes\n },\n components: {\n // Elements\n Price,\n THC,\n // Blocks\n ImagesThumbnails,\n LeftoverPositions,\n ListPositions,\n CardCategory,\n CardProduct,\n CardLeftover,\n Images360,\n CardPosition,\n // Sections\n SectionProduct,\n HeroRecommendation,\n FilterProducts,\n MenuSection,\n EditModifications,\n PopularProducts,\n EditProductInfo,\n Filters,\n // Pages\n Product,\n ProductEdit,\n EditLeftover,\n ProductRecommendation,\n Products,\n Leftovers,\n Catalog,\n // Layouts\n Marketplace\n }\n }\n}\n\nexport {\n // Blocks\n ImagesThumbnails,\n LeftoverPositions,\n ListPositions,\n CardCategory,\n CardProduct,\n CardLeftover,\n Images360,\n CardPosition,\n // Sections\n SectionProduct,\n HeroRecommendation,\n FilterProducts,\n MenuSection,\n EditModifications,\n PopularProducts,\n EditProductInfo,\n Filters,\n // Elements\n Price,\n THC,\n // Pages\n Product,\n ProductEdit,\n EditLeftover,\n ProductRecommendation,\n Products,\n Leftovers,\n Catalog,\n // Layouts\n Marketplace\n};\n\nexport default ModuleProducts;"],"names":["createProductRoutes","routerMarketplace","storeCategories","storeLeftovers","storeProducts","storeMarketplace","Price","THC","ImagesThumbnails","LeftoverPositions","ListPositions","CardCategory","CardProduct","CardLeftover","Images360","CardPosition","SectionProduct","HeroRecommendation","FilterProducts","MenuSection","EditModifications","PopularProducts","EditProductInfo","Filters","Product","ProductEdit","EditLeftover","ProductRecommendation","Products","Leftovers","Catalog","Marketplace"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CA,SAAS,mBAAmB,KAAK,OAAO,QAAQ,UAAU,CAAA,GAAI;AAC5D,QAAM,QAAQ,QAAQ,SAAS;AAE/B,QAAM,iBAAiBA,gBAAAA;AAEvB,SAAO,SAAS,OAAO,cAAc;AAErC,SAAO,SAAS,OAAOC,mBAAAA,OAAiB;AAExC,QAAM,SAAS,cAAcC,UAAe;AAC5C,QAAM,SAAS,aAAaC,SAAc;AAC1C,QAAM,SAAS,YAAYC,QAAa;AACxC,QAAM,SAAS,eAAeC,WAAgB;AAChD;AAEK,MAAC,iBAAiB;AAAA,EACrB,YAAY;AAAA,EACZ,OAAO;AAAA,IACL,OAAO;AAAA,MACX,iBAAMH;AAAAA,MACN,gBAAMC;AAAAA,MACN,eAAMC;AAAAA,MACN,kBAAMC;AAAAA,MACN,mBAAMJ,mBAAiB;AAAA,IAClB;AAAA,IACD,QAAQ;AAAA,MACZ,qBAAMD,gBAAmB;AAAA,IACpB;AAAA,IACD,YAAY;AAAA;AAAA,MAEhB,OAAMM,MAAK;AAAA,MACX,KAAMC,IAAG;AAAA;AAAA,MAET,kBAAMC,iBAAgB;AAAA,MACtB,mBAAMC,kBAAiB;AAAA,MACvB,eAAMC,cAAa;AAAA,MACnB,cAAMC,aAAY;AAAA,MAClB,aAAMC,YAAW;AAAA,MACjB,cAAMC,aAAY;AAAA,MAClB,WAAMC,UAAS;AAAA,MACf,cAAMC,aAAY;AAAA;AAAA,MAElB,gBAAMC,eAAc;AAAA,MACpB,oBAAMC,mBAAkB;AAAA,MACxB,gBAAMC,eAAc;AAAA,MACpB,aAAMC,YAAW;AAAA,MACjB,mBAAMC,kBAAiB;AAAA,MACvB,iBAAMC,gBAAe;AAAA,MACrB,iBAAMC,gBAAe;AAAA,MACrB,SAAMC,QAAO;AAAA;AAAA,MAEb,SAAMC,QAAO;AAAA,MACb,aAAMC,YAAW;AAAA,MACjB,cAAMC,aAAY;AAAA,MAClB,uBAAMC,uBAAqB;AAAA,MAC3B,UAAMC,SAAQ;AAAA,MACd,WAAMC,UAAS;AAAA,MACf,SAAMC,QAAO;AAAA;AAAA,MAEb,aAAMC,YAAW;AAAA,IACZ;AAAA,EACF;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"products.client.cjs","sources":["../../../../../src/modules/products/products.client.js"],"sourcesContent":["// Router\nimport { createProductRoutes } from './router/products.router';\nimport routerMarketplace from './router/marketplace.router.js';\n\n//Store\nimport * as storeCategories from './store/categories.js';\nimport * as storeLeftovers from './store/leftovers.js';\nimport * as storeProducts from './store/products.js';\nimport * as storeMarketplace from './store/marketplace.js';\n\n// Layouts \nimport Marketplace from './components/layouts/Marketplace.vue';\n\n// Blocks\nimport ImagesThumbnails from './components/blocks/ImagesThumbnails.vue';\nimport LeftoverPositions from './components/blocks/LeftoverPositions.vue';\nimport ListPositions from './components/blocks/ListPositions.vue';\nimport CardCategory from './components/blocks/CardCategory.vue';\nimport CardProduct from './components/blocks/CardProduct.vue';\nimport CardLeftover from './components/blocks/CardLeftover.vue';\nimport Images360 from './components/blocks/Images360.vue';\nimport CardPosition from './components/blocks/CardPosition.vue';\n\n// Sections\nimport SectionProduct from './components/sections/SectionProduct.vue';\nimport HeroRecommendation from './components/sections/HeroRecommendation.vue';\nimport FilterProducts from './components/sections/FilterProducts.vue';\nimport MenuSection from './components/sections/MenuSection.vue';\nimport EditModifications from './components/sections/EditModifications.vue';\nimport PopularProducts from './components/sections/PopularProducts.vue';\nimport EditProductInfo from './components/sections/EditProductInfo.vue';\nimport Filters from './components/sections/Filters.vue';\n\n// Elements\nimport Price from './components/elements/Price.vue';\nimport THC from './components/elements/THC.vue';\n\n// Pages\nimport Product from './components/pages/Product.vue';\nimport ProductEdit from './components/pages/ProductEdit.vue';\nimport EditLeftover from './components/pages/EditLeftover.vue';\nimport ProductRecommendation from './components/pages/ProductRecommmendation.vue';\nimport Products from './components/pages/Products.vue';\nimport Leftovers from './components/pages/Leftovers.vue';\nimport Catalog from './components/pages/Catalog.vue';\n\n// Пример функции инициализации для модуля продуктов\nfunction initializeProducts(app, store, router, options = {}) {\n const route = options.route || 'Home';\n\n const routesProducts = createProductRoutes();\n \n router.addRoute(route, routesProducts);\n router.addRoute(route, routerMarketplace);\n \n store.addStore('categories', storeCategories);\n store.addStore('leftovers', storeLeftovers);\n store.addStore('products', storeProducts);\n store.addStore('marketplace', storeMarketplace);\n}\n\nconst ModuleProducts = {\n initialize: initializeProducts,\n views: {\n store: {\n storeCategories,\n storeLeftovers,\n storeProducts,\n storeMarketplace,\n routerMarketplace\n },\n router: {\n createProductRoutes\n },\n components: {\n // Elements\n Price,\n THC,\n // Blocks\n ImagesThumbnails,\n LeftoverPositions,\n ListPositions,\n CardCategory,\n CardProduct,\n CardLeftover,\n Images360,\n CardPosition,\n // Sections\n SectionProduct,\n HeroRecommendation,\n FilterProducts,\n MenuSection,\n EditModifications,\n PopularProducts,\n EditProductInfo,\n Filters,\n // Pages\n Product,\n ProductEdit,\n EditLeftover,\n ProductRecommendation,\n Products,\n Leftovers,\n Catalog,\n // Layouts\n Marketplace\n }\n }\n}\n\nexport {\n // Blocks\n ImagesThumbnails,\n LeftoverPositions,\n ListPositions,\n CardCategory,\n CardProduct,\n CardLeftover,\n Images360,\n CardPosition,\n // Sections\n SectionProduct,\n HeroRecommendation,\n FilterProducts,\n MenuSection,\n EditModifications,\n PopularProducts,\n EditProductInfo,\n Filters,\n // Elements\n Price,\n THC,\n // Pages\n Product,\n ProductEdit,\n EditLeftover,\n ProductRecommendation,\n Products,\n Leftovers,\n Catalog,\n // Layouts\n Marketplace\n};\n\nexport default ModuleProducts;"],"names":["createProductRoutes","routerMarketplace","storeCategories","storeLeftovers","storeProducts","storeMarketplace","Price","THC","ImagesThumbnails","LeftoverPositions","ListPositions","CardCategory","CardProduct","CardLeftover","Images360","CardPosition","SectionProduct","HeroRecommendation","FilterProducts","MenuSection","EditModifications","PopularProducts","EditProductInfo","Filters","Product","ProductEdit","EditLeftover","ProductRecommendation","Products","Leftovers","Catalog","Marketplace"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CA,SAAS,mBAAmB,KAAK,OAAO,QAAQ,UAAU,CAAA,GAAI;AAC5D,QAAM,QAAQ,QAAQ,SAAS;AAE/B,QAAM,iBAAiBA,gBAAAA;AAEvB,SAAO,SAAS,OAAO,cAAc;AACrC,SAAO,SAAS,OAAOC,mBAAAA,OAAiB;AAExC,QAAM,SAAS,cAAcC,UAAe;AAC5C,QAAM,SAAS,aAAaC,SAAc;AAC1C,QAAM,SAAS,YAAYC,QAAa;AACxC,QAAM,SAAS,eAAeC,WAAgB;AAChD;AAEK,MAAC,iBAAiB;AAAA,EACrB,YAAY;AAAA,EACZ,OAAO;AAAA,IACL,OAAO;AAAA,MACX,iBAAMH;AAAAA,MACN,gBAAMC;AAAAA,MACN,eAAMC;AAAAA,MACN,kBAAMC;AAAAA,MACN,mBAAMJ,mBAAiB;AAAA,IAClB;AAAA,IACD,QAAQ;AAAA,MACZ,qBAAMD,gBAAmB;AAAA,IACpB;AAAA,IACD,YAAY;AAAA;AAAA,MAEhB,OAAMM,MAAK;AAAA,MACX,KAAMC,IAAG;AAAA;AAAA,MAET,kBAAMC,iBAAgB;AAAA,MACtB,mBAAMC,kBAAiB;AAAA,MACvB,eAAMC,cAAa;AAAA,MACnB,cAAMC,aAAY;AAAA,MAClB,aAAMC,YAAW;AAAA,MACjB,cAAMC,aAAY;AAAA,MAClB,WAAMC,UAAS;AAAA,MACf,cAAMC,aAAY;AAAA;AAAA,MAElB,gBAAMC,eAAc;AAAA,MACpB,oBAAMC,mBAAkB;AAAA,MACxB,gBAAMC,eAAc;AAAA,MACpB,aAAMC,YAAW;AAAA,MACjB,mBAAMC,kBAAiB;AAAA,MACvB,iBAAMC,gBAAe;AAAA,MACrB,iBAAMC,gBAAe;AAAA,MACrB,SAAMC,QAAO;AAAA;AAAA,MAEb,SAAMC,QAAO;AAAA,MACb,aAAMC,YAAW;AAAA,MACjB,cAAMC,aAAY;AAAA,MAClB,uBAAMC,uBAAqB;AAAA,MAC3B,UAAMC,SAAQ;AAAA,MACd,WAAMC,UAAS;AAAA,MACf,SAAMC,QAAO;AAAA;AAAA,MAEb,aAAMC,YAAW;AAAA,IACZ;AAAA,EACF;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}