@ozdao/martyrs 0.2.567 → 0.2.569

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 (155) hide show
  1. package/dist/martyrs/src/components/Button/{Button.vue2.js → Button.vue.js} +3 -3
  2. package/dist/martyrs/src/components/Button/Button.vue.js.map +1 -0
  3. package/dist/martyrs/src/components/Feed/Carousel.vue.js +1 -1
  4. package/dist/martyrs/src/components/Feed/Feed.vue.js +1 -1
  5. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +1 -1
  6. package/dist/martyrs/src/components/Loader/{Loader.vue.js → Loader.vue2.js} +2 -2
  7. package/dist/martyrs/src/components/Loader/Loader.vue2.js.map +1 -0
  8. package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue.js +1 -1
  9. package/dist/martyrs/src/components/Media/Media.vue.js +1 -1
  10. package/dist/martyrs/src/components/Menu/{Menu.vue.js → Menu.vue2.js} +2 -2
  11. package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +1 -0
  12. package/dist/martyrs/src/components/Select/{Select.vue.js → Select.vue2.js} +2 -2
  13. package/dist/martyrs/src/components/Select/Select.vue2.js.map +1 -0
  14. package/dist/martyrs/src/components/SelectMulti/{SelectMulti.vue2.js → SelectMulti.vue.js} +2 -2
  15. package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue.js.map +1 -0
  16. package/dist/martyrs/src/components/UploadImage/UploadImage.vue.js +1 -1
  17. package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.js +1 -1
  18. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +1 -1
  19. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +1 -1
  20. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +2 -2
  21. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +1 -1
  22. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +1 -1
  23. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +1 -1
  24. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +1 -1
  25. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +1 -1
  26. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +1 -1
  27. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +1 -1
  28. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js +1 -1
  29. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +1 -1
  30. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +2 -2
  31. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
  32. package/dist/martyrs/src/modules/core/views/components/blocks/CardHeader.vue.js +1 -1
  33. package/dist/martyrs/src/modules/core/views/components/blocks/PopupAuth.vue.js +1 -1
  34. package/dist/martyrs/src/modules/core/views/components/blocks/PopupDateSelector.vue.js +2 -2
  35. package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js +8 -7
  36. package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js.map +1 -1
  37. package/dist/martyrs/src/modules/core/views/components/partials/Header.vue.js +2 -2
  38. package/dist/martyrs/src/modules/core/views/components/partials/NavigationBar.vue.js +1 -1
  39. package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.js +1 -1
  40. package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.js +1 -1
  41. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +3 -3
  42. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
  43. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +1 -1
  44. package/dist/martyrs/src/modules/events/components/sections/EditTickets.vue.js +1 -1
  45. package/dist/martyrs/src/modules/events/components/sections/Feed.vue.js +1 -1
  46. package/dist/martyrs/src/modules/events/components/sections/List.vue.js +1 -1
  47. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +3 -3
  48. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +2 -2
  49. package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.js +1 -1
  50. package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js +1 -1
  51. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +2 -2
  52. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +2 -2
  53. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js +1 -1
  54. package/dist/martyrs/src/modules/music/components/blocks/ActionButtons.vue.js +1 -1
  55. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +1 -1
  56. package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.js +1 -1
  57. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js +1 -1
  58. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js +1 -1
  59. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +2 -2
  60. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +3 -3
  61. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +1 -1
  62. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js +1 -1
  63. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +2 -2
  64. package/dist/martyrs/src/modules/music/components/layouts/MusicBottomPlayer.vue.js +4 -4
  65. package/dist/martyrs/src/modules/music/components/layouts/MusicBottomPlayer.vue.js.map +1 -1
  66. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +2 -2
  67. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +2 -2
  68. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +1 -1
  69. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +2 -2
  70. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +2 -2
  71. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +2 -2
  72. package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.js +1 -1
  73. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js +1 -1
  74. package/dist/martyrs/src/modules/music/components/player/PlayerControls.vue.js +1 -1
  75. package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.js +1 -1
  76. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +2 -2
  77. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +2 -2
  78. package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js +2 -2
  79. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +2 -2
  80. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +1 -1
  81. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +1 -1
  82. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js +1 -1
  83. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js +1 -1
  84. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +1 -1
  85. package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.js +1 -1
  86. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +1 -1
  87. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js +1 -1
  88. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js +1 -1
  89. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js +1 -1
  90. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +1 -1
  91. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +2 -2
  92. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +3 -3
  93. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +2 -2
  94. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +2 -2
  95. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +2 -2
  96. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -1
  97. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -1
  98. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +1 -1
  99. package/dist/martyrs/src/modules/products/components/elements/Image360.vue.js +1 -1
  100. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +1 -1
  101. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +3 -3
  102. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +1 -1
  103. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +3 -3
  104. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +1 -1
  105. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +2 -2
  106. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +2 -2
  107. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js +1 -1
  108. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +1 -1
  109. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +25 -38
  110. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js.map +1 -1
  111. package/dist/martyrs/src/modules/products/products.client.js +15 -21
  112. package/dist/martyrs/src/modules/products/products.client.js.map +1 -1
  113. package/dist/martyrs/src/modules/products/router/products.router.js +0 -34
  114. package/dist/martyrs/src/modules/products/router/products.router.js.map +1 -1
  115. package/dist/martyrs/src/modules/products/store/products.js +0 -15
  116. package/dist/martyrs/src/modules/products/store/products.js.map +1 -1
  117. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +1 -1
  118. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +1 -1
  119. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +2 -2
  120. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js +1 -1
  121. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js +1 -1
  122. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +2 -2
  123. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +2 -2
  124. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +1 -1
  125. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +2 -2
  126. package/dist/products.server.js +1 -130
  127. package/dist/style.css +0 -23
  128. package/package.json +1 -1
  129. package/src/modules/core/views/components/layouts/Client.vue +12 -6
  130. package/src/modules/music/components/layouts/MusicBottomPlayer.vue +1 -3
  131. package/src/modules/products/components/sections/SectionProduct.vue +2 -9
  132. package/src/modules/products/controllers/products.controller.js +0 -51
  133. package/src/modules/products/experiments/product-recommendation/README.md +156 -0
  134. package/src/modules/products/experiments/product-recommendation/controllers/recommendation.controller.js +59 -0
  135. package/src/modules/products/experiments/product-recommendation/router/recommendation.router.js +43 -0
  136. package/src/modules/products/experiments/product-recommendation/routes/recommendation.routes.js +10 -0
  137. package/src/modules/products/experiments/product-recommendation/store/recommendation.store.js +38 -0
  138. package/src/modules/products/products.client.js +0 -6
  139. package/src/modules/products/products.router.js +0 -29
  140. package/src/modules/products/router/products.router.js +0 -28
  141. package/src/modules/products/routes/products.routes.js +0 -2
  142. package/src/modules/products/store/products.js +0 -16
  143. package/dist/martyrs/src/components/Button/Button.vue2.js.map +0 -1
  144. package/dist/martyrs/src/components/Loader/Loader.vue.js.map +0 -1
  145. package/dist/martyrs/src/components/Menu/Menu.vue.js.map +0 -1
  146. package/dist/martyrs/src/components/Select/Select.vue.js.map +0 -1
  147. package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue2.js.map +0 -1
  148. package/dist/martyrs/src/components/Shader/Shader.vue.js +0 -2
  149. package/dist/martyrs/src/components/Shader/Shader.vue.js.map +0 -1
  150. package/dist/martyrs/src/modules/products/components/pages/ProductRecommmendation.vue.js +0 -106
  151. package/dist/martyrs/src/modules/products/components/pages/ProductRecommmendation.vue.js.map +0 -1
  152. package/dist/martyrs/src/modules/products/components/sections/HeroRecommendation.vue.js +0 -120
  153. package/dist/martyrs/src/modules/products/components/sections/HeroRecommendation.vue.js.map +0 -1
  154. /package/src/modules/products/{components/sections → experiments/product-recommendation/components}/HeroRecommendation.vue +0 -0
  155. /package/src/modules/products/{components/pages → experiments/product-recommendation/components}/ProductRecommmendation.vue +0 -0
@@ -3,20 +3,18 @@ import { getRoutes as getRoutes$1 } from "./router/products.router.js";
3
3
  import { getRoutes } from "./router/categories.router.js";
4
4
  import * as categories from "./store/categories.js";
5
5
  import * as products from "./store/products.js";
6
- import _sfc_main$a from "./components/blocks/CardCategory.vue.js";
7
- import _sfc_main$8 from "./components/blocks/CardPosition.vue.js";
8
- import _sfc_main$9 from "./components/blocks/CardProduct.vue.js";
6
+ import _sfc_main$9 from "./components/blocks/CardCategory.vue.js";
7
+ import _sfc_main$7 from "./components/blocks/CardPosition.vue.js";
8
+ import _sfc_main$8 from "./components/blocks/CardProduct.vue.js";
9
9
  import Image360 from "./components/elements/Image360.vue.js";
10
10
  import ProductImages from "./components/blocks/ProductImages.vue.js";
11
11
  import _sfc_main$4 from "./components/sections/EditVariants.vue.js";
12
12
  import _sfc_main$5 from "./components/sections/FilterProducts.vue.js";
13
- import _sfc_main$6 from "./components/sections/HeroRecommendation.vue.js";
14
13
  import _sfc_main$3 from "./components/sections/ProductsPopular.vue.js";
15
- import _sfc_main$7 from "./components/sections/SectionProduct.vue.js";
16
- import _sfc_main$b from "./components/elements/Price.vue.js";
14
+ import _sfc_main$6 from "./components/sections/SectionProduct.vue.js";
15
+ import _sfc_main$a from "./components/elements/Price.vue.js";
17
16
  import _sfc_main$2 from "./components/pages/Product.vue.js";
18
17
  import _sfc_main$1 from "./components/pages/ProductEdit.vue.js";
19
- import ProductRecommendation from "./components/pages/ProductRecommmendation.vue.js";
20
18
  import _sfc_main from "./components/pages/Products.vue.js";
21
19
  function initializeProducts(app, store, router, options = {}) {
22
20
  const productRoutes = getRoutes$1(options);
@@ -43,44 +41,40 @@ const ModuleProducts = {
43
41
  },
44
42
  components: {
45
43
  // Elements
46
- Price: _sfc_main$b,
44
+ Price: _sfc_main$a,
47
45
  // Blocks
48
46
  ProductImages,
49
- CardCategory: _sfc_main$a,
50
- CardProduct: _sfc_main$9,
47
+ CardCategory: _sfc_main$9,
48
+ CardProduct: _sfc_main$8,
51
49
  Image360,
52
- CardPosition: _sfc_main$8,
50
+ CardPosition: _sfc_main$7,
53
51
  // Sections
54
- SectionProduct: _sfc_main$7,
55
- HeroRecommendation: _sfc_main$6,
52
+ SectionProduct: _sfc_main$6,
56
53
  FilterProducts: _sfc_main$5,
57
54
  EditVariants: _sfc_main$4,
58
55
  ProductsPopular: _sfc_main$3,
59
56
  // Pages
60
57
  Product: _sfc_main$2,
61
58
  ProductEdit: _sfc_main$1,
62
- ProductRecommendation,
63
59
  Products: _sfc_main
64
60
  // Layouts
65
61
  }
66
62
  }
67
63
  };
68
64
  export {
69
- _sfc_main$a as CardCategory,
70
- _sfc_main$8 as CardPosition,
71
- _sfc_main$9 as CardProduct,
65
+ _sfc_main$9 as CardCategory,
66
+ _sfc_main$7 as CardPosition,
67
+ _sfc_main$8 as CardProduct,
72
68
  _sfc_main$4 as EditVariants,
73
69
  _sfc_main$5 as FilterProducts,
74
- _sfc_main$6 as HeroRecommendation,
75
70
  Image360,
76
- _sfc_main$b as Price,
71
+ _sfc_main$a as Price,
77
72
  _sfc_main$2 as Product,
78
73
  _sfc_main$1 as ProductEdit,
79
74
  ProductImages,
80
- ProductRecommendation,
81
75
  _sfc_main as Products,
82
76
  _sfc_main$3 as ProductsPopular,
83
- _sfc_main$7 as SectionProduct,
77
+ _sfc_main$6 as SectionProduct,
84
78
  ModuleProducts as default,
85
79
  categories as storeCategories,
86
80
  products as storeProducts
@@ -1 +1 @@
1
- {"version":3,"file":"products.client.js","sources":["../../../../../src/modules/products/products.client.js"],"sourcesContent":["// Router\nimport addRoutes from '@martyrs/src/modules/core/views/router/addRoutes.js';\nimport { getRoutes as getProductRoutes } from './router/products.router.js';\nimport { getRoutes as getCategoryRoutes } from './router/categories.router.js';\n\n//Store\nimport * as storeCategories from './store/categories.js';\nimport * as storeProducts from './store/products.js';\n\n// Layouts\n\n// Blocks\nimport CardCategory from './components/blocks/CardCategory.vue';\nimport CardPosition from './components/blocks/CardPosition.vue';\nimport CardProduct from './components/blocks/CardProduct.vue';\nimport Image360 from './components/elements/Image360.vue';\nimport ProductImages from './components/blocks/ProductImages.vue';\n\n// Sections\nimport EditVariants from './components/sections/EditVariants.vue';\nimport FilterProducts from './components/sections/FilterProducts.vue';\nimport HeroRecommendation from './components/sections/HeroRecommendation.vue';\nimport ProductsPopular from './components/sections/ProductsPopular.vue';\nimport SectionProduct from './components/sections/SectionProduct.vue';\n\n// Elements\nimport Price from './components/elements/Price.vue';\n// Pages\nimport Product from './components/pages/Product.vue';\nimport ProductEdit from './components/pages/ProductEdit.vue';\nimport ProductRecommendation from './components/pages/ProductRecommmendation.vue';\nimport Products from './components/pages/Products.vue';\n\n// Пример функции инициализации для модуля продуктов\nfunction initializeProducts(app, store, router, options = {}) {\n const productRoutes = getProductRoutes(options);\n productRoutes.forEach(({ parentName, config }) => {\n addRoutes(router, { ...config, parentName });\n });\n\n const categoryRoutes = getCategoryRoutes(options);\n categoryRoutes.forEach(({ parentName, config }) => {\n addRoutes(router, { ...config, parentName });\n });\n\n store.addStore('categories', storeCategories);\n store.addStore('products', storeProducts);\n}\n\nconst ModuleProducts = {\n initialize: initializeProducts,\n views: {\n store: {\n storeCategories,\n storeProducts,\n },\n router: {\n getProductRoutes,\n getCategoryRoutes,\n },\n components: {\n // Elements\n Price,\n // Blocks\n ProductImages,\n CardCategory,\n CardProduct,\n Image360,\n CardPosition,\n // Sections\n SectionProduct,\n HeroRecommendation,\n FilterProducts,\n EditVariants,\n ProductsPopular,\n // Pages\n Product,\n ProductEdit,\n ProductRecommendation,\n Products,\n // Layouts\n },\n },\n};\n\nexport {\n CardCategory,\n CardPosition,\n CardProduct,\n EditVariants,\n FilterProducts,\n HeroRecommendation,\n Image360,\n // Blocks\n ProductImages,\n ProductsPopular,\n // Elements\n Price,\n // Pages\n Product,\n ProductEdit,\n ProductRecommendation,\n Products,\n // Sections\n SectionProduct,\n // Store\n storeProducts,\n storeCategories,\n};\n\nexport default ModuleProducts;\n"],"names":["getProductRoutes","getCategoryRoutes","storeCategories","storeProducts","Price","CardCategory","CardProduct","CardPosition","SectionProduct","HeroRecommendation","FilterProducts","EditVariants","ProductsPopular","Product","ProductEdit","Products"],"mappings":";;;;;;;;;;;;;;;;;;;;AAkCA,SAAS,mBAAmB,KAAK,OAAO,QAAQ,UAAU,CAAA,GAAI;AAC5D,QAAM,gBAAgBA,YAAiB,OAAO;AAC9C,gBAAc,QAAQ,CAAC,EAAE,YAAY,OAAM,MAAO;AAChD,cAAU,QAAQ,EAAE,GAAG,QAAQ,WAAU,CAAE;AAAA,EAC7C,CAAC;AAED,QAAM,iBAAiBC,UAAkB,OAAO;AAChD,iBAAe,QAAQ,CAAC,EAAE,YAAY,OAAM,MAAO;AACjD,cAAU,QAAQ,EAAE,GAAG,QAAQ,WAAU,CAAE;AAAA,EAC7C,CAAC;AAED,QAAM,SAAS,cAAcC,UAAe;AAC5C,QAAM,SAAS,YAAYC,QAAa;AAC1C;AAEK,MAAC,iBAAiB;AAAA,EACrB,YAAY;AAAA,EACZ,OAAO;AAAA,IACL,OAAO;AAAA,MACX,iBAAMD;AAAAA,MACN,eAAMC;AAAAA,IACN;AAAA,IACI,QAAQ;AAAA,MACZ,kBAAMH;AAAAA,MACN,mBAAMC;AAAAA,IACN;AAAA,IACI,YAAY;AAAA;AAAA,MAEhB,OAAMG;AAAAA;AAAAA,MAEA;AAAA,MACN,cAAMC;AAAAA,MACN,aAAMC;AAAAA,MACA;AAAA,MACN,cAAMC;AAAAA;AAAAA,MAEN,gBAAMC;AAAAA,MACN,oBAAMC;AAAAA,MACN,gBAAMC;AAAAA,MACN,cAAMC;AAAAA,MACN,iBAAMC;AAAAA;AAAAA,MAEN,SAAMC;AAAAA,MACN,aAAMC;AAAAA,MACA;AAAA,MACN,UAAMC;AAAAA;AAAAA,IAEN;AAAA,EACA;AACA;"}
1
+ {"version":3,"file":"products.client.js","sources":["../../../../../src/modules/products/products.client.js"],"sourcesContent":["// Router\nimport addRoutes from '@martyrs/src/modules/core/views/router/addRoutes.js';\nimport { getRoutes as getProductRoutes } from './router/products.router.js';\nimport { getRoutes as getCategoryRoutes } from './router/categories.router.js';\n\n//Store\nimport * as storeCategories from './store/categories.js';\nimport * as storeProducts from './store/products.js';\n\n// Layouts\n\n// Blocks\nimport CardCategory from './components/blocks/CardCategory.vue';\nimport CardPosition from './components/blocks/CardPosition.vue';\nimport CardProduct from './components/blocks/CardProduct.vue';\nimport Image360 from './components/elements/Image360.vue';\nimport ProductImages from './components/blocks/ProductImages.vue';\n\n// Sections\nimport EditVariants from './components/sections/EditVariants.vue';\nimport FilterProducts from './components/sections/FilterProducts.vue';\nimport ProductsPopular from './components/sections/ProductsPopular.vue';\nimport SectionProduct from './components/sections/SectionProduct.vue';\n\n// Elements\nimport Price from './components/elements/Price.vue';\n// Pages\nimport Product from './components/pages/Product.vue';\nimport ProductEdit from './components/pages/ProductEdit.vue';\nimport Products from './components/pages/Products.vue';\n\n// Пример функции инициализации для модуля продуктов\nfunction initializeProducts(app, store, router, options = {}) {\n const productRoutes = getProductRoutes(options);\n productRoutes.forEach(({ parentName, config }) => {\n addRoutes(router, { ...config, parentName });\n });\n\n const categoryRoutes = getCategoryRoutes(options);\n categoryRoutes.forEach(({ parentName, config }) => {\n addRoutes(router, { ...config, parentName });\n });\n\n store.addStore('categories', storeCategories);\n store.addStore('products', storeProducts);\n}\n\nconst ModuleProducts = {\n initialize: initializeProducts,\n views: {\n store: {\n storeCategories,\n storeProducts,\n },\n router: {\n getProductRoutes,\n getCategoryRoutes,\n },\n components: {\n // Elements\n Price,\n // Blocks\n ProductImages,\n CardCategory,\n CardProduct,\n Image360,\n CardPosition,\n // Sections\n SectionProduct,\n FilterProducts,\n EditVariants,\n ProductsPopular,\n // Pages\n Product,\n ProductEdit,\n Products,\n // Layouts\n },\n },\n};\n\nexport {\n CardCategory,\n CardPosition,\n CardProduct,\n EditVariants,\n FilterProducts,\n Image360,\n // Blocks\n ProductImages,\n ProductsPopular,\n // Elements\n Price,\n // Pages\n Product,\n ProductEdit,\n Products,\n // Sections\n SectionProduct,\n // Store\n storeProducts,\n storeCategories,\n};\n\nexport default ModuleProducts;\n"],"names":["getProductRoutes","getCategoryRoutes","storeCategories","storeProducts","Price","CardCategory","CardProduct","CardPosition","SectionProduct","FilterProducts","EditVariants","ProductsPopular","Product","ProductEdit","Products"],"mappings":";;;;;;;;;;;;;;;;;;AAgCA,SAAS,mBAAmB,KAAK,OAAO,QAAQ,UAAU,CAAA,GAAI;AAC5D,QAAM,gBAAgBA,YAAiB,OAAO;AAC9C,gBAAc,QAAQ,CAAC,EAAE,YAAY,OAAM,MAAO;AAChD,cAAU,QAAQ,EAAE,GAAG,QAAQ,WAAU,CAAE;AAAA,EAC7C,CAAC;AAED,QAAM,iBAAiBC,UAAkB,OAAO;AAChD,iBAAe,QAAQ,CAAC,EAAE,YAAY,OAAM,MAAO;AACjD,cAAU,QAAQ,EAAE,GAAG,QAAQ,WAAU,CAAE;AAAA,EAC7C,CAAC;AAED,QAAM,SAAS,cAAcC,UAAe;AAC5C,QAAM,SAAS,YAAYC,QAAa;AAC1C;AAEK,MAAC,iBAAiB;AAAA,EACrB,YAAY;AAAA,EACZ,OAAO;AAAA,IACL,OAAO;AAAA,MACX,iBAAMD;AAAAA,MACN,eAAMC;AAAAA,IACN;AAAA,IACI,QAAQ;AAAA,MACZ,kBAAMH;AAAAA,MACN,mBAAMC;AAAAA,IACN;AAAA,IACI,YAAY;AAAA;AAAA,MAEhB,OAAMG;AAAAA;AAAAA,MAEA;AAAA,MACN,cAAMC;AAAAA,MACN,aAAMC;AAAAA,MACA;AAAA,MACN,cAAMC;AAAAA;AAAAA,MAEN,gBAAMC;AAAAA,MACN,gBAAMC;AAAAA,MACN,cAAMC;AAAAA,MACN,iBAAMC;AAAAA;AAAAA,MAEN,SAAMC;AAAAA,MACN,aAAMC;AAAAA,MACN,UAAMC;AAAAA;AAAAA,IAEN;AAAA,EACA;AACA;"}
@@ -90,23 +90,6 @@ function getRoutes(options = {}) {
90
90
  /* webpackChunkName: "products-edit" */
91
91
  "../components/pages/ProductEdit.vue.js"
92
92
  )
93
- },
94
- {
95
- path: "recommendation",
96
- name: "ProductRecommmendation",
97
- meta: {
98
- title: {
99
- en: "Product Recommmendation",
100
- ru: "Рекомендации продукта"
101
- },
102
- header_theme: "dark",
103
- footer_theme: "dark"
104
- },
105
- component: () => import(
106
- /* webpackChunkName: 'products-recommendation' */
107
- "../components/pages/ProductRecommmendation.vue.js"
108
- ),
109
- props: (route2) => ({ mood: route2.query.mood })
110
93
  }
111
94
  ]
112
95
  }
@@ -310,23 +293,6 @@ function getRoutes(options = {}) {
310
293
  /* webpackChunkName: "products-edit" */
311
294
  "../components/pages/ProductEdit.vue.js"
312
295
  )
313
- },
314
- {
315
- path: "recommendation",
316
- name: "ProductRecommmendation",
317
- meta: {
318
- title: {
319
- en: "Product Recommmendation",
320
- ru: "Рекомендации продукта"
321
- },
322
- header_theme: "dark",
323
- footer_theme: "dark"
324
- },
325
- component: () => import(
326
- /* webpackChunkName: 'products-recommendation' */
327
- "../components/pages/ProductRecommmendation.vue.js"
328
- ),
329
- props: (route2) => ({ mood: route2.query.mood })
330
296
  }
331
297
  ]
332
298
  }
@@ -1 +1 @@
1
- {"version":3,"file":"products.router.js","sources":["../../../../../../src/modules/products/router/products.router.js"],"sourcesContent":["import * as validationAuth from '@martyrs/src/modules/auth/views/middlewares/auth.validation.js';\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\nimport { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js';\n\nconst { hasAccess, isAdmin } = useGlobalMixins();\n\nexport function getRoutes(options = {}) {\n const route = options.route || 'Home';\n const routeBackoffice = options.routeBackoffice || 'Backoffice Root';\n const routeOrganizations = options.routeOrganizations || 'OrganizationRoot';\n\n const routes = [];\n\n // Home контекст\n routes.push({\n parentName: route,\n config: {\n basePath: options.basePath || 'products',\n meta: {\n title: {\n en: 'Products',\n ru: 'Товары',\n },\n },\n routes: [\n {\n path: '',\n name: 'Products',\n meta: {\n title: {\n en: 'Products',\n ru: 'Товары',\n },\n },\n component: () => import(/* webpackChunkName: 'products-list' */ '../components/pages/Products.vue'),\n },\n {\n path: 'categories/:categoryPath(.*)',\n name: 'ProductsCategory',\n meta: {\n title: {\n en: 'Products',\n ru: 'Товары',\n },\n },\n component: () => import(/* webpackChunkName: 'products-list' */ '../components/pages/Products.vue'),\n },\n {\n path: 'add',\n name: 'ProductAdd',\n meta: {\n title: {\n en: 'Add Product',\n ru: 'Добавить товар',\n },\n },\n beforeEnter: [validationAuth.requiresAuth],\n component: () => import(/* webpackChunkName: \"products-edit\" */ '../components/pages/ProductEdit.vue'),\n },\n {\n path: ':product',\n name: 'Product',\n meta: {\n title: {\n en: 'Product',\n ru: 'Продукт',\n },\n showShopCart: true,\n },\n component: () => import(/* webpackChunkName: \"products-detail\" */ '../components/pages/Product.vue'),\n },\n {\n path: ':product/edit',\n name: 'ProductEdit',\n meta: {\n title: {\n en: 'Edit Product',\n ru: 'Редактировать продукт',\n },\n },\n beforeEnter: [validationAuth.requiresAuth],\n component: () => import(/* webpackChunkName: \"products-edit\" */ '../components/pages/ProductEdit.vue'),\n },\n {\n path: 'recommendation',\n name: 'ProductRecommmendation',\n meta: {\n title: {\n en: 'Product Recommmendation',\n ru: 'Рекомендации продукта',\n },\n header_theme: 'dark',\n footer_theme: 'dark',\n },\n component: () => import(/* webpackChunkName: 'products-recommendation' */ '../components/pages/ProductRecommmendation.vue'),\n props: route => ({ mood: route.query.mood }),\n },\n ],\n },\n });\n\n // Backoffice контекст\n if (!options.withBackoffice) {\n routes.push({\n parentName: routeBackoffice,\n config: {\n basePath: options.backofficeBasePath || 'products',\n routeNamePrefix: 'Backoffice',\n meta: {\n title: {\n en: 'Products',\n ru: 'Товары',\n },\n context: 'backoffice',\n },\n routes: [\n {\n path: '',\n name: 'Products',\n meta: {\n title: {\n en: 'Products',\n ru: 'Товары',\n },\n },\n component: () => import(/* webpackChunkName: 'products-backoffice' */ '../components/pages/Products.vue'),\n },\n {\n path: 'add',\n name: 'ProductAdd',\n meta: {\n title: {\n en: 'Add Product',\n ru: 'Добавить товар',\n },\n },\n beforeEnter: [\n validationAuth.requiresAuth,\n (to, from, next) => {\n if (isAdmin(auth.state.access.roles)) {\n next();\n } else {\n next('/401');\n }\n }\n ],\n component: () => import(/* webpackChunkName: \"products-backoffice-edit\" */ '../components/pages/ProductEdit.vue'),\n },\n {\n path: ':product',\n name: 'Product',\n meta: {\n title: {\n en: 'Product',\n ru: 'Продукт',\n },\n showShopCart: true,\n },\n component: () => import(/* webpackChunkName: \"products-backoffice-detail\" */ '../components/pages/Product.vue'),\n },\n {\n path: ':product/edit',\n name: 'ProductEdit',\n meta: {\n title: {\n en: 'Edit Product',\n ru: 'Редактировать товар',\n },\n },\n beforeEnter: [\n validationAuth.requiresAuth,\n (to, from, next) => {\n if (isAdmin(auth.state.access.roles)) {\n next();\n } else {\n next('/401');\n }\n }\n ],\n component: () => import(/* webpackChunkName: \"products-backoffice-edit\" */ '../components/pages/ProductEdit.vue'),\n },\n ],\n },\n });\n }\n\n // Organizations контекст\n if (!options.withOrganizationRoutes) {\n routes.push({\n parentName: routeOrganizations,\n config: {\n basePath: options.organizationBasePath || 'products',\n routeNamePrefix: 'Organization_',\n meta: {\n title: {\n en: 'Organization Products',\n ru: 'Товары Организации',\n },\n context: 'organization',\n },\n routes: [\n {\n path: '',\n name: 'Products',\n meta: {\n title: {\n en: 'Products',\n ru: 'Товары',\n },\n },\n component: () => import(/* webpackChunkName: 'products-list' */ '../components/pages/Products.vue'),\n },\n {\n path: 'categories/:categoryPath(.*)',\n name: 'ProductsCategory',\n meta: {\n title: {\n en: 'Products',\n ru: 'Товары',\n },\n },\n component: () => import(/* webpackChunkName: 'products-list' */ '../components/pages/Products.vue'),\n },\n {\n path: 'add',\n name: 'ProductAdd',\n meta: {\n title: {\n en: 'Add Product',\n ru: 'Добавить товар',\n },\n },\n beforeEnter: [\n validationAuth.requiresAuth,\n (to, from, next) => {\n if (isAdmin(auth.state.access.roles) || hasAccess(to.params._id, 'products', 'create', auth.state.accesses, auth.state.access.roles)) {\n next();\n } else {\n next('/401');\n }\n }\n ],\n component: () => import(/* webpackChunkName: \"products-edit\" */ '../components/pages/ProductEdit.vue'),\n },\n {\n path: ':product',\n name: 'Product',\n meta: {\n title: {\n en: 'Product',\n ru: 'Продукт',\n },\n showShopCart: true,\n },\n component: () => import(/* webpackChunkName: \"products-detail\" */ '../components/pages/Product.vue'),\n },\n {\n path: ':product/edit',\n name: 'ProductEdit',\n meta: {\n title: {\n en: 'Edit Product',\n ru: 'Редактировать продукт',\n },\n },\n beforeEnter: [\n validationAuth.requiresAuth,\n (to, from, next) => {\n if (isAdmin(auth.state.access.roles) || hasAccess(to.params._id, 'products', 'edit', auth.state.accesses, auth.state.access.roles)) {\n next();\n } else {\n next('/401');\n }\n }\n ],\n component: () => import(/* webpackChunkName: \"products-edit\" */ '../components/pages/ProductEdit.vue'),\n },\n {\n path: 'recommendation',\n name: 'ProductRecommmendation',\n meta: {\n title: {\n en: 'Product Recommmendation',\n ru: 'Рекомендации продукта',\n },\n header_theme: 'dark',\n footer_theme: 'dark',\n },\n component: () => import(/* webpackChunkName: 'products-recommendation' */ '../components/pages/ProductRecommmendation.vue'),\n props: route => ({ mood: route.query.mood }),\n },\n ],\n },\n });\n }\n\n return routes;\n}\n\nexport default { getRoutes };\n"],"names":["validationAuth.requiresAuth","route","auth.state"],"mappings":"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"}
1
+ {"version":3,"file":"products.router.js","sources":["../../../../../../src/modules/products/router/products.router.js"],"sourcesContent":["import * as validationAuth from '@martyrs/src/modules/auth/views/middlewares/auth.validation.js';\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\nimport { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js';\n\nconst { hasAccess, isAdmin } = useGlobalMixins();\n\nexport function getRoutes(options = {}) {\n const route = options.route || 'Home';\n const routeBackoffice = options.routeBackoffice || 'Backoffice Root';\n const routeOrganizations = options.routeOrganizations || 'OrganizationRoot';\n\n const routes = [];\n\n // Home контекст\n routes.push({\n parentName: route,\n config: {\n basePath: options.basePath || 'products',\n meta: {\n title: {\n en: 'Products',\n ru: 'Товары',\n },\n },\n routes: [\n {\n path: '',\n name: 'Products',\n meta: {\n title: {\n en: 'Products',\n ru: 'Товары',\n },\n },\n component: () => import(/* webpackChunkName: 'products-list' */ '../components/pages/Products.vue'),\n },\n {\n path: 'categories/:categoryPath(.*)',\n name: 'ProductsCategory',\n meta: {\n title: {\n en: 'Products',\n ru: 'Товары',\n },\n },\n component: () => import(/* webpackChunkName: 'products-list' */ '../components/pages/Products.vue'),\n },\n {\n path: 'add',\n name: 'ProductAdd',\n meta: {\n title: {\n en: 'Add Product',\n ru: 'Добавить товар',\n },\n },\n beforeEnter: [validationAuth.requiresAuth],\n component: () => import(/* webpackChunkName: \"products-edit\" */ '../components/pages/ProductEdit.vue'),\n },\n {\n path: ':product',\n name: 'Product',\n meta: {\n title: {\n en: 'Product',\n ru: 'Продукт',\n },\n showShopCart: true,\n },\n component: () => import(/* webpackChunkName: \"products-detail\" */ '../components/pages/Product.vue'),\n },\n {\n path: ':product/edit',\n name: 'ProductEdit',\n meta: {\n title: {\n en: 'Edit Product',\n ru: 'Редактировать продукт',\n },\n },\n beforeEnter: [validationAuth.requiresAuth],\n component: () => import(/* webpackChunkName: \"products-edit\" */ '../components/pages/ProductEdit.vue'),\n },\n ],\n },\n });\n\n // Backoffice контекст\n if (!options.withBackoffice) {\n routes.push({\n parentName: routeBackoffice,\n config: {\n basePath: options.backofficeBasePath || 'products',\n routeNamePrefix: 'Backoffice',\n meta: {\n title: {\n en: 'Products',\n ru: 'Товары',\n },\n context: 'backoffice',\n },\n routes: [\n {\n path: '',\n name: 'Products',\n meta: {\n title: {\n en: 'Products',\n ru: 'Товары',\n },\n },\n component: () => import(/* webpackChunkName: 'products-backoffice' */ '../components/pages/Products.vue'),\n },\n {\n path: 'add',\n name: 'ProductAdd',\n meta: {\n title: {\n en: 'Add Product',\n ru: 'Добавить товар',\n },\n },\n beforeEnter: [\n validationAuth.requiresAuth,\n (to, from, next) => {\n if (isAdmin(auth.state.access.roles)) {\n next();\n } else {\n next('/401');\n }\n }\n ],\n component: () => import(/* webpackChunkName: \"products-backoffice-edit\" */ '../components/pages/ProductEdit.vue'),\n },\n {\n path: ':product',\n name: 'Product',\n meta: {\n title: {\n en: 'Product',\n ru: 'Продукт',\n },\n showShopCart: true,\n },\n component: () => import(/* webpackChunkName: \"products-backoffice-detail\" */ '../components/pages/Product.vue'),\n },\n {\n path: ':product/edit',\n name: 'ProductEdit',\n meta: {\n title: {\n en: 'Edit Product',\n ru: 'Редактировать товар',\n },\n },\n beforeEnter: [\n validationAuth.requiresAuth,\n (to, from, next) => {\n if (isAdmin(auth.state.access.roles)) {\n next();\n } else {\n next('/401');\n }\n }\n ],\n component: () => import(/* webpackChunkName: \"products-backoffice-edit\" */ '../components/pages/ProductEdit.vue'),\n },\n ],\n },\n });\n }\n\n // Organizations контекст\n if (!options.withOrganizationRoutes) {\n routes.push({\n parentName: routeOrganizations,\n config: {\n basePath: options.organizationBasePath || 'products',\n routeNamePrefix: 'Organization_',\n meta: {\n title: {\n en: 'Organization Products',\n ru: 'Товары Организации',\n },\n context: 'organization',\n },\n routes: [\n {\n path: '',\n name: 'Products',\n meta: {\n title: {\n en: 'Products',\n ru: 'Товары',\n },\n },\n component: () => import(/* webpackChunkName: 'products-list' */ '../components/pages/Products.vue'),\n },\n {\n path: 'categories/:categoryPath(.*)',\n name: 'ProductsCategory',\n meta: {\n title: {\n en: 'Products',\n ru: 'Товары',\n },\n },\n component: () => import(/* webpackChunkName: 'products-list' */ '../components/pages/Products.vue'),\n },\n {\n path: 'add',\n name: 'ProductAdd',\n meta: {\n title: {\n en: 'Add Product',\n ru: 'Добавить товар',\n },\n },\n beforeEnter: [\n validationAuth.requiresAuth,\n (to, from, next) => {\n if (isAdmin(auth.state.access.roles) || hasAccess(to.params._id, 'products', 'create', auth.state.accesses, auth.state.access.roles)) {\n next();\n } else {\n next('/401');\n }\n }\n ],\n component: () => import(/* webpackChunkName: \"products-edit\" */ '../components/pages/ProductEdit.vue'),\n },\n {\n path: ':product',\n name: 'Product',\n meta: {\n title: {\n en: 'Product',\n ru: 'Продукт',\n },\n showShopCart: true,\n },\n component: () => import(/* webpackChunkName: \"products-detail\" */ '../components/pages/Product.vue'),\n },\n {\n path: ':product/edit',\n name: 'ProductEdit',\n meta: {\n title: {\n en: 'Edit Product',\n ru: 'Редактировать продукт',\n },\n },\n beforeEnter: [\n validationAuth.requiresAuth,\n (to, from, next) => {\n if (isAdmin(auth.state.access.roles) || hasAccess(to.params._id, 'products', 'edit', auth.state.accesses, auth.state.access.roles)) {\n next();\n } else {\n next('/401');\n }\n }\n ],\n component: () => import(/* webpackChunkName: \"products-edit\" */ '../components/pages/ProductEdit.vue'),\n },\n ],\n },\n });\n }\n\n return routes;\n}\n\nexport default { getRoutes };\n"],"names":["validationAuth.requiresAuth","auth.state"],"mappings":"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"}
@@ -4,7 +4,6 @@ import $axios from "../../core/views/utils/axios-instance.js";
4
4
  const state = reactive({
5
5
  all: [],
6
6
  current: {
7
- recommendation: false,
8
7
  category: [],
9
8
  status: "draft",
10
9
  listing: "sale",
@@ -114,19 +113,6 @@ const actions = {
114
113
  }
115
114
  );
116
115
  },
117
- async submitMood(presetMood = null) {
118
- return $axios.post("/api/product/recommended", { mood: presetMood }).then(
119
- (response) => {
120
- state.current = response.data.product;
121
- state.current.recommendation = response.data.recommendationText;
122
- return Promise.resolve(response.data);
123
- },
124
- (error) => {
125
- setError(error);
126
- return Promise.reject(error);
127
- }
128
- );
129
- },
130
116
  async fetchProducts() {
131
117
  return await $axios.get(`/api/products/read`).then(
132
118
  (products) => {
@@ -188,7 +174,6 @@ const mutations = {
188
174
  resetProduct(product) {
189
175
  state.current = {
190
176
  included: null,
191
- recommendation: false,
192
177
  category: [],
193
178
  status: "draft",
194
179
  attributes: [],
@@ -1 +1 @@
1
- {"version":3,"file":"products.js","sources":["../../../../../../src/modules/products/store/products.js"],"sourcesContent":["/////////////////////////////\n// DEPENDENCIES\n/////////////////////////////\nimport { reactive, watch } from 'vue';\n// Globals\nimport { setError } from '@martyrs/src/modules/core/views/store/core.store.js';\n// Setup Axios\nimport $axios from '@martyrs/src/modules/core/views/utils/axios-instance.js';\n/////////////////////////////\n// STATE\n/////////////////////////////\nconst state = reactive({\n all: [],\n current: {\n recommendation: false,\n category: [],\n status: 'draft',\n listing: 'sale',\n attributes: [],\n images: [],\n files: [],\n image3d: false,\n name: '',\n sale: 0,\n price: 0,\n price_cost: 0,\n localization: [],\n recommended: [],\n variants: [],\n discounts: [],\n included: null,\n ingredients: [],\n description: '',\n defaultVariant: {\n price: null,\n quantity: 1,\n unit: 'pcs'\n }\n },\n filter: {\n active: false,\n class: 'mobile-only',\n selected: {},\n options: [\n {\n title: 'Price',\n value: 'price',\n options: [\n { label: 'Pickup', value: 'pickup' },\n { label: 'Courier', value: 'courier' },\n { label: 'Post', value: 'post' },\n ],\n },\n ],\n },\n sort: {\n param: 'popularity',\n order: 'asc',\n options: [\n {\n label: 'Price',\n value: 'variants.price',\n },\n {\n label: 'Popularity',\n value: 'views',\n },\n {\n label: 'New',\n value: 'createdAt',\n },\n ],\n },\n});\n\n/////////////////////////////\n// ACTIONS\n/////////////////////////////\nconst actions = {\n async create(product) {\n return await $axios.post('/api/products/create', product).then(\n response => {\n set(response.data, 'current');\n return Promise.resolve(response.data);\n },\n error => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async read(options = {}) {\n\n try {\n const response = await $axios.get('/api/products/read', { params: options });\n\n if (options._id) {\n state.current = { ...response.data[0] };\n return Promise.resolve(response.data[0]);\n } else {\n return Promise.resolve(response.data);\n }\n return Promise.resolve(response.data);\n } catch (error) {\n setError(error);\n return Promise.reject(error);\n }\n },\n\n async update(_id, product) {\n return await $axios.post('/api/products/' + _id, product).then(\n response => {\n return Promise.resolve(response.data);\n },\n error => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async deleteProduct(_id) {\n return await $axios.delete('/api/products/' + _id).then(\n response => {\n return Promise.resolve(response.data);\n },\n error => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async submitMood(presetMood = null) {\n return $axios.post('/api/product/recommended', { mood: presetMood }).then(\n response => {\n state.current = response.data.product;\n state.current.recommendation = response.data.recommendationText;\n return Promise.resolve(response.data);\n },\n error => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async fetchProducts() {\n return await $axios.get(`/api/products/read`).then(\n products => {\n state.all = products.data;\n return Promise.resolve(products.data);\n },\n error => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async fetchProductsPopular() {\n return await $axios.get(`/api/products/popular`).then(\n products => {\n state.popular = products.data;\n return Promise.resolve(products.data);\n },\n error => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async fetchProductsPublished() {\n return await $axios.get(`/api/products`).then(\n products => {\n let publishedProduct = products.data.filter(function (product, index) {\n return product.status !== 'unpublished';\n });\n\n state.all = publishedProduct;\n state.filtered = publishedProduct.slice();\n state.filteredPrice = state.filtered;\n\n state.filteredPrice.sort(function (l, r) {\n return l[state.sort.current] > r[state.sort.current] ? (state.sort.ascending ? 1 : -1) : l[state.sort.current] < r[state.sort.current] ? (state.sort.ascending ? -1 : 1) : 0;\n });\n\n return Promise.resolve(products.data);\n },\n error => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async fetchProductPopular() {\n return await $axios.get(`/api/products`).then(\n products => {\n state.all = products.data.slice(1, 5);\n return Promise.resolve(products.data.slice(1, 5));\n },\n error => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n};\n\nconst mutations = {\n resetProduct(product) {\n state.current = {\n included: null,\n recommendation: false,\n category: [],\n status: 'draft',\n attributes: [],\n images: [],\n files: [],\n image3d: false,\n name: '',\n sale: 0,\n price: 0,\n price_cost: 0,\n price_currency: '$',\n localization: [],\n variants: [],\n recommended: [],\n discounts: [],\n ingredients: [],\n description: '',\n defaultVariant: {\n price: null,\n quantity: 1,\n unit: 'pcs'\n }\n };\n },\n};\n\nfunction set(product, property) {\n state[property] = product;\n}\n\n/////////////////////////////\n// GETTERS\n/////////////////////////////\nconst getters = {};\n\n/////////////////////////////\n// UTILS\n/////////////////////////////\n\n/////////////////////////////\n// HISTORY\n/////////////////////////////\nconst history = [];\nhistory.push(state);\n\n/////////////////////////////\n// WATCH\n/////////////////////////////\nwatch(state, (newState, oldState) => {\n history.push(newState);\n});\n\n/////////////////////////////\n// Module Export\n/////////////////////////////\nexport { actions, getters, mutations, state };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"products.js","sources":["../../../../../../src/modules/products/store/products.js"],"sourcesContent":["/////////////////////////////\n// DEPENDENCIES\n/////////////////////////////\nimport { reactive, watch } from 'vue';\n// Globals\nimport { setError } from '@martyrs/src/modules/core/views/store/core.store.js';\n// Setup Axios\nimport $axios from '@martyrs/src/modules/core/views/utils/axios-instance.js';\n/////////////////////////////\n// STATE\n/////////////////////////////\nconst state = reactive({\n all: [],\n current: {\n category: [],\n status: 'draft',\n listing: 'sale',\n attributes: [],\n images: [],\n files: [],\n image3d: false,\n name: '',\n sale: 0,\n price: 0,\n price_cost: 0,\n localization: [],\n recommended: [],\n variants: [],\n discounts: [],\n included: null,\n ingredients: [],\n description: '',\n defaultVariant: {\n price: null,\n quantity: 1,\n unit: 'pcs'\n }\n },\n filter: {\n active: false,\n class: 'mobile-only',\n selected: {},\n options: [\n {\n title: 'Price',\n value: 'price',\n options: [\n { label: 'Pickup', value: 'pickup' },\n { label: 'Courier', value: 'courier' },\n { label: 'Post', value: 'post' },\n ],\n },\n ],\n },\n sort: {\n param: 'popularity',\n order: 'asc',\n options: [\n {\n label: 'Price',\n value: 'variants.price',\n },\n {\n label: 'Popularity',\n value: 'views',\n },\n {\n label: 'New',\n value: 'createdAt',\n },\n ],\n },\n});\n\n/////////////////////////////\n// ACTIONS\n/////////////////////////////\nconst actions = {\n async create(product) {\n return await $axios.post('/api/products/create', product).then(\n response => {\n set(response.data, 'current');\n return Promise.resolve(response.data);\n },\n error => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async read(options = {}) {\n\n try {\n const response = await $axios.get('/api/products/read', { params: options });\n\n if (options._id) {\n state.current = { ...response.data[0] };\n return Promise.resolve(response.data[0]);\n } else {\n return Promise.resolve(response.data);\n }\n return Promise.resolve(response.data);\n } catch (error) {\n setError(error);\n return Promise.reject(error);\n }\n },\n\n async update(_id, product) {\n return await $axios.post('/api/products/' + _id, product).then(\n response => {\n return Promise.resolve(response.data);\n },\n error => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async deleteProduct(_id) {\n return await $axios.delete('/api/products/' + _id).then(\n response => {\n return Promise.resolve(response.data);\n },\n error => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async fetchProducts() {\n return await $axios.get(`/api/products/read`).then(\n products => {\n state.all = products.data;\n return Promise.resolve(products.data);\n },\n error => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async fetchProductsPopular() {\n return await $axios.get(`/api/products/popular`).then(\n products => {\n state.popular = products.data;\n return Promise.resolve(products.data);\n },\n error => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async fetchProductsPublished() {\n return await $axios.get(`/api/products`).then(\n products => {\n let publishedProduct = products.data.filter(function (product, index) {\n return product.status !== 'unpublished';\n });\n\n state.all = publishedProduct;\n state.filtered = publishedProduct.slice();\n state.filteredPrice = state.filtered;\n\n state.filteredPrice.sort(function (l, r) {\n return l[state.sort.current] > r[state.sort.current] ? (state.sort.ascending ? 1 : -1) : l[state.sort.current] < r[state.sort.current] ? (state.sort.ascending ? -1 : 1) : 0;\n });\n\n return Promise.resolve(products.data);\n },\n error => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async fetchProductPopular() {\n return await $axios.get(`/api/products`).then(\n products => {\n state.all = products.data.slice(1, 5);\n return Promise.resolve(products.data.slice(1, 5));\n },\n error => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n};\n\nconst mutations = {\n resetProduct(product) {\n state.current = {\n included: null,\n category: [],\n status: 'draft',\n attributes: [],\n images: [],\n files: [],\n image3d: false,\n name: '',\n sale: 0,\n price: 0,\n price_cost: 0,\n price_currency: '$',\n localization: [],\n variants: [],\n recommended: [],\n discounts: [],\n ingredients: [],\n description: '',\n defaultVariant: {\n price: null,\n quantity: 1,\n unit: 'pcs'\n }\n };\n },\n};\n\nfunction set(product, property) {\n state[property] = product;\n}\n\n/////////////////////////////\n// GETTERS\n/////////////////////////////\nconst getters = {};\n\n/////////////////////////////\n// UTILS\n/////////////////////////////\n\n/////////////////////////////\n// HISTORY\n/////////////////////////////\nconst history = [];\nhistory.push(state);\n\n/////////////////////////////\n// WATCH\n/////////////////////////////\nwatch(state, (newState, oldState) => {\n history.push(newState);\n});\n\n/////////////////////////////\n// Module Export\n/////////////////////////////\nexport { actions, getters, mutations, state };\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { computed, ref, watch, createElementBlock, openBlock, createElementVNode, createVNode, withCtx, createTextVNode } from "vue";
2
2
  import dayjs from "../../../../../../../../_virtual/dayjs.min.js";
3
3
  import _sfc_main$2 from "../../../../../../components/Tab/Tab.vue2.js";
4
- import _sfc_main$3 from "../../../../../../components/Button/Button.vue2.js";
4
+ import _sfc_main$3 from "../../../../../../components/Button/Button.vue.js";
5
5
  import _sfc_main$4 from "../../../../../../components/Dropdown/Dropdown.vue.js";
6
6
  import Calendar from "../../../../../../components/Calendar/Calendar.vue2.js";
7
7
  import _sfc_main$1 from "./DateLabel.vue.js";
@@ -1,6 +1,6 @@
1
1
  import { ref, computed, onMounted, createElementBlock, openBlock, createElementVNode, createVNode, toDisplayString, unref, withCtx, Fragment, renderList, createBlock, createCommentVNode, createTextVNode } from "vue";
2
2
  import _sfc_main$4 from "../../../../../components/Block/Block.vue.js";
3
- import _sfc_main$5 from "../../../../../components/Button/Button.vue2.js";
3
+ import _sfc_main$5 from "../../../../../components/Button/Button.vue.js";
4
4
  import Field from "../../../../../components/Field/Field.vue.js";
5
5
  import _sfc_main$2 from "../../../../../components/Feed/Feed.vue.js";
6
6
  import _sfc_main$1 from "../../../../../components/Popup/Popup.vue.js";
@@ -1,7 +1,7 @@
1
1
  import { reactive, ref, createElementBlock, openBlock, renderSlot, createVNode, withCtx, createElementVNode, createTextVNode } from "vue";
2
2
  import _sfc_main$1 from "../../../../components/Popup/Popup.vue.js";
3
- import _sfc_main$2 from "../../../../components/Button/Button.vue2.js";
4
- import Select from "../../../../components/Select/Select.vue.js";
3
+ import _sfc_main$2 from "../../../../components/Button/Button.vue.js";
4
+ import Select from "../../../../components/Select/Select.vue2.js";
5
5
  import { actions } from "../../store/reports.js";
6
6
  const _sfc_main = {
7
7
  __name: "FormReport",
@@ -1,7 +1,7 @@
1
1
  import { ref, computed, resolveComponent, createElementBlock, openBlock, createElementVNode, createCommentVNode, createBlock, toDisplayString } from "vue";
2
2
  /* empty css */
3
3
  import _export_sfc from "../../../../../../_virtual/_plugin-vue_export-helper.js";
4
- /* empty css */
4
+ /* empty css */
5
5
  /* empty css */
6
6
  const _hoisted_1 = { class: "br-grey-transp-25 radius-small mn-b-small" };
7
7
  const _hoisted_2 = {
@@ -1,7 +1,7 @@
1
1
  import { ref, onMounted, createElementBlock, openBlock, createElementVNode, createVNode, withCtx, createTextVNode } from "vue";
2
2
  import { useRouter, useRoute } from "vue-router";
3
3
  import { Loader } from "../../../../../../node_modules/.pnpm/@googlemaps_js-api-loader@1.16.8/node_modules/@googlemaps/js-api-loader/dist/index.js";
4
- import _sfc_main$1 from "../../../../components/Button/Button.vue2.js";
4
+ import _sfc_main$1 from "../../../../components/Button/Button.vue.js";
5
5
  import { actions, state as state$1 } from "../../../organizations/store/organizations.js";
6
6
  import { useStore } from "../../../core/views/store/core.store.js";
7
7
  import { state } from "../../../marketplace/views/store/marketplace.js";
@@ -4,11 +4,11 @@ import _sfc_main$1 from "../../../../components/Block/Block.vue.js";
4
4
  import UploadImage from "../../../../components/UploadImage/UploadImage.vue.js";
5
5
  /* empty css */
6
6
  import Field from "../../../../components/Field/Field.vue.js";
7
- import Select from "../../../../components/Select/Select.vue.js";
7
+ import Select from "../../../../components/Select/Select.vue2.js";
8
8
  import _sfc_main$3 from "../../../../components/Checkbox/Checkbox.vue.js";
9
9
  import _sfc_main$4 from "../../../../components/Address/Address.vue.js";
10
10
  import _sfc_main$5 from "../../../../components/LocationMarker/LocationMarker.vue.js";
11
- import _sfc_main$2 from "../../../../components/Button/Button.vue2.js";
11
+ import _sfc_main$2 from "../../../../components/Button/Button.vue.js";
12
12
  /* empty css */
13
13
  import WorktimeEdit from "../sections/WorktimeEdit.vue.js";
14
14
  import { actions, state } from "../../store/spots.js";
@@ -1,8 +1,8 @@
1
1
  import { mergeModels, useModel, ref, computed, onMounted, createElementBlock, openBlock, createElementVNode, createVNode, toDisplayString, unref, withCtx, createTextVNode, Fragment, renderList, normalizeClass, createCommentVNode, createBlock } from "vue";
2
2
  import { useI18n } from "vue-i18n";
3
- import _sfc_main$1 from "../../../../components/Button/Button.vue2.js";
3
+ import _sfc_main$1 from "../../../../components/Button/Button.vue.js";
4
4
  import Field from "../../../../components/Field/Field.vue.js";
5
- import Select from "../../../../components/Select/Select.vue.js";
5
+ import Select from "../../../../components/Select/Select.vue2.js";
6
6
  import _sfc_main$3 from "../../../../components/Checkbox/Checkbox.vue.js";
7
7
  import _sfc_main$2 from "../../../../components/Popup/Popup.vue.js";
8
8
  /* empty css */
@@ -4,7 +4,7 @@ import { BigNumber } from "../../../../../../node_modules/.pnpm/bignumber.js@9.1
4
4
  import { state, actions } from "../../store/wallet.store.js";
5
5
  import text from "../../localization/wallet.json.js";
6
6
  import Field from "../../../../../components/Field/Field.vue.js";
7
- import Select from "../../../../../components/Select/Select.vue.js";
7
+ import Select from "../../../../../components/Select/Select.vue2.js";
8
8
  const _hoisted_1 = { class: "mn-b-small t-center t-bold" };
9
9
  const _hoisted_2 = { class: "t-semi" };
10
10
  const _hoisted_3 = ["disabled"];
@@ -4,11 +4,11 @@ import Web3 from "web3";
4
4
  import { state, actions } from "../../store/wallet.store.js";
5
5
  import text from "../../localization/wallet.json.js";
6
6
  import _sfc_main$3 from "../../../../../components/Popup/Popup.vue.js";
7
- import _sfc_main$1 from "../../../../../components/Button/Button.vue2.js";
7
+ import _sfc_main$1 from "../../../../../components/Button/Button.vue.js";
8
8
  import "vue-router";
9
9
  /* empty css */
10
10
  /* empty css */
11
- /* empty css */
11
+ /* empty css */
12
12
  import _sfc_main$2 from "../elements/ConnectMetamask.vue.js";
13
13
  import _sfc_main$4 from "../blocks/CashDeposit.vue.js";
14
14
  import _sfc_main$5 from "../blocks/CardDeposit.vue.js";
@@ -1,7 +1,6 @@
1
1
  import { C as CacheNamespaced } from "./core.cache-DALYFDdy.js";
2
2
  import { L as LoggerNamespaced, c as coreabac } from "./abac-BPl9Bmf9.js";
3
3
  import { q as queryProcessorCore } from "./queryProcessor-C_5Iipam.js";
4
- import OpenAI from "openai";
5
4
  import { Types } from "mongoose";
6
5
  import { a as applyCommonSchema } from "./common.schema-DswiUXKB.js";
7
6
  import { a as applyEngagementSchema } from "./engagement.schema-fh6W1fb_.js";
@@ -344,92 +343,6 @@ const controllerFactory$1 = (db) => {
344
343
  }
345
344
  };
346
345
  };
347
- class OpenAIGlobal {
348
- constructor() {
349
- if (OpenAIGlobal.instance) {
350
- return OpenAIGlobal.instance;
351
- }
352
- this.client = new OpenAI({
353
- organization: process.env.OPENAI_ORG_KEY,
354
- apiKey: process.env.OPENAI_API_KEY
355
- });
356
- this.models = {
357
- chat: "gpt-3.5-turbo",
358
- vision: "gpt-4-vision-preview",
359
- embedding: "text-embedding-ada-002"
360
- };
361
- OpenAIGlobal.instance = this;
362
- }
363
- /**
364
- * Generate completions with retry logic for handling JSON parsing errors
365
- * @param {string} prompt - The prompt text
366
- * @param {Object} options - Additional options
367
- * @returns {Promise<Object|string>} - Parsed JSON response or raw content
368
- */
369
- async createChatCompletion(prompt, options = {}) {
370
- const {
371
- model = this.models.chat,
372
- maxRetries = 3,
373
- temperature = 0.7,
374
- parseJSON = true,
375
- systemPrompt = ""
376
- } = options;
377
- let attempt = 0;
378
- while (attempt < maxRetries) {
379
- try {
380
- const messages = [];
381
- if (systemPrompt) {
382
- messages.push({ role: "system", content: systemPrompt });
383
- }
384
- messages.push({ role: "user", content: prompt });
385
- const response = await this.client.chat.completions.create({
386
- model,
387
- messages,
388
- temperature,
389
- response_format: parseJSON ? { type: "json_object" } : void 0
390
- });
391
- const content = response.choices[0].message.content;
392
- if (parseJSON) {
393
- return JSON.parse(content);
394
- }
395
- return content;
396
- } catch (err) {
397
- attempt++;
398
- if (err instanceof SyntaxError && attempt < maxRetries) {
399
- console.error(`Invalid JSON in OpenAI response (attempt ${attempt}/${maxRetries}): ${err.message}`);
400
- } else if (attempt >= maxRetries) {
401
- console.error(`Max retries (${maxRetries}) reached for OpenAI completion: ${err.message}`);
402
- throw err;
403
- } else {
404
- console.error(`OpenAI API error (attempt ${attempt}/${maxRetries}): ${err.message}`);
405
- if (err.status === 429) {
406
- const waitTime = Math.pow(2, attempt) * 1e3;
407
- await new Promise((resolve) => setTimeout(resolve, waitTime));
408
- }
409
- }
410
- await new Promise((resolve) => setTimeout(resolve, 1e3 * attempt));
411
- }
412
- }
413
- }
414
- /**
415
- * Get direct access to OpenAI client instance
416
- * @returns {OpenAI} - OpenAI client instance
417
- */
418
- getClient() {
419
- return this.client;
420
- }
421
- /**
422
- * Set default model for specific API
423
- * @param {string} type - API type ('chat', 'vision', 'embedding')
424
- * @param {string} modelId - Model identifier
425
- */
426
- setDefaultModel(type, modelId) {
427
- if (this.models[type]) {
428
- this.models[type] = modelId;
429
- }
430
- }
431
- }
432
- const openaiGlobal = new OpenAIGlobal();
433
346
  const ObjectId = Types.ObjectId;
434
347
  function getCategoriesFilterStage(categories) {
435
348
  if (!categories) return [];
@@ -883,52 +796,11 @@ const controllerFactory = (db) => {
883
796
  res.status(500).send({ message: err.message });
884
797
  }
885
798
  };
886
- const getProductRecommendation = async (req, res) => {
887
- const { mood } = req.body;
888
- try {
889
- const products = await Product.find({
890
- status: "published"
891
- }).limit(40);
892
- if (!products) {
893
- console.log("no products");
894
- return res.status(404).send({ message: "Products not found." });
895
- }
896
- const productsList = products.map((p) => {
897
- const info = p.attributes || [];
898
- const value0 = info[0] ? info[0].value : "";
899
- const value1 = info[1] ? `(${info[1].value}%)` : "";
900
- const value2 = info[2] ? `(${info[2].value})` : "";
901
- return `${p._id}: ${p.name} (${value0}) ${value1} ${value2}`;
902
- }).join(", ");
903
- const prompt = `
904
- 1. When asked how the client wants to feel, they responded "${mood}".
905
- 2. Here is a list of products in our store: ${productsList}.
906
- 3. Based on the attributes about the products (strain, THC content) and the user's desires, choose 1 product to recommend to the user.
907
- 4. The response should be in the language that the user used in mood (${mood}).
908
- 5. Please format your response as a JSON object '{"_id": "ID of the recommended product (it must correspond to one of the product IDs I sent)", "recommendationText": "Text explaining why this particular product"'. Write only the JSON object without any other text outside of it.
909
- `;
910
- const result = await openaiGlobal.createChatCompletion(prompt, {
911
- model: "gpt-4",
912
- temperature: 0.8,
913
- systemPrompt: "You are a product recommendation specialist with expertise in matching customer needs to product attributes."
914
- });
915
- const recommendedProduct = await Product.findById(result._id);
916
- if (!recommendedProduct) {
917
- console.log(`No product found with _id: ${result._id}`);
918
- return res.status(404).send({ message: "Recommended product not found." });
919
- }
920
- res.status(200).json({ product: recommendedProduct, recommendationText: result.recommendationText });
921
- } catch (err) {
922
- console.log(err);
923
- res.status(500).send({ message: err });
924
- }
925
- };
926
799
  return {
927
800
  Create,
928
801
  Read,
929
802
  Update,
930
- Delete,
931
- getProductRecommendation
803
+ Delete
932
804
  };
933
805
  };
934
806
  const CategoryModel = (db) => {
@@ -1447,7 +1319,6 @@ const productsRoutes = (function(app, db, allowedOrigins) {
1447
1319
  app.get("/api/products/read", controller.Read);
1448
1320
  app.post("/api/products/:_id", controller.Update);
1449
1321
  app.delete("/api/products/:_id", controller.Delete);
1450
- app.post("/api/product/recommended", controller.getProductRecommendation);
1451
1322
  });
1452
1323
  const verifierFactory = (function(db) {
1453
1324
  const createVerifier = new Verifier({
package/dist/style.css CHANGED
@@ -2604,27 +2604,6 @@ to { opacity: 1; transform: translateY(0);
2604
2604
  .thumbnail.active[data-v-eddb4b2b] {
2605
2605
  border: 1px solid rgb(var(--second));
2606
2606
  }
2607
-
2608
- .spiral {
2609
- object-fit: cover;
2610
- width: 100rem;
2611
- height: 100rem;
2612
- position: absolute;
2613
- top: 50%;
2614
- left: 50%;
2615
- opacity: 0.066;
2616
- transform: translate(-50%, -50%) rotate(0deg);
2617
- transform-origin: center center;
2618
- animation: spin 5s linear infinite;
2619
- }
2620
- @keyframes spin {
2621
- 0% {
2622
- transform: translate(-50%, -50%) rotate(0deg);
2623
- }
2624
- 100% {
2625
- transform: translate(-50%, -50%) rotate(360deg);
2626
- }
2627
- }
2628
2607
  .popupar_products .carousel__slide {
2629
2608
  flex: 0 0 25%;
2630
2609
  min-width: 0;
@@ -2651,8 +2630,6 @@ to { opacity: 1; transform: translateY(0);
2651
2630
  .text-muted[data-v-a5eb77c9] {
2652
2631
  color: #6c757d;
2653
2632
  }
2654
-
2655
- /* Add your styles here */
2656
2633
  .custom-table[data-v-b85cde7e] {
2657
2634
  border-collapse: collapse;
2658
2635
  }