@ozdao/martyrs 0.2.568 → 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 (149) 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/EditImages/{EditImages.vue.js → EditImages.vue2.js} +2 -2
  4. package/dist/martyrs/src/components/EditImages/EditImages.vue2.js.map +1 -0
  5. package/dist/martyrs/src/components/Feed/Carousel.vue.js +1 -1
  6. package/dist/martyrs/src/components/Feed/Feed.vue.js +2 -2
  7. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +1 -1
  8. package/dist/martyrs/src/components/Loader/{Loader.vue.js → Loader.vue2.js} +2 -2
  9. package/dist/martyrs/src/components/Loader/Loader.vue2.js.map +1 -0
  10. package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue.js +1 -1
  11. package/dist/martyrs/src/components/Media/Media.vue.js +1 -1
  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/UploadImage/UploadImage.vue.js +1 -1
  15. package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.js +1 -1
  16. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +1 -1
  17. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +1 -1
  18. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +1 -1
  19. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +1 -1
  20. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +1 -1
  21. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +1 -1
  22. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +1 -1
  23. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +1 -1
  24. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +1 -1
  25. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +1 -1
  26. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +1 -1
  27. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +2 -2
  28. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
  29. package/dist/martyrs/src/modules/core/views/components/blocks/CardHeader.vue.js +1 -1
  30. package/dist/martyrs/src/modules/core/views/components/blocks/PopupAuth.vue.js +1 -1
  31. package/dist/martyrs/src/modules/core/views/components/blocks/PopupDateSelector.vue.js +2 -2
  32. package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js +2 -2
  33. package/dist/martyrs/src/modules/core/views/components/partials/Header.vue.js +2 -2
  34. package/dist/martyrs/src/modules/core/views/components/partials/NavigationBar.vue.js +1 -1
  35. package/dist/martyrs/src/modules/core/views/components/sections/{Filters.vue.js → Filters.vue2.js} +2 -2
  36. package/dist/martyrs/src/modules/core/views/components/sections/Filters.vue2.js.map +1 -0
  37. package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.js +1 -1
  38. package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.js +1 -1
  39. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +3 -3
  40. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
  41. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +2 -2
  42. package/dist/martyrs/src/modules/events/components/sections/EditTickets.vue.js +1 -1
  43. package/dist/martyrs/src/modules/events/components/sections/Feed.vue.js +1 -1
  44. package/dist/martyrs/src/modules/events/components/sections/List.vue.js +1 -1
  45. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +3 -3
  46. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +2 -2
  47. package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.js +1 -1
  48. package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js +1 -1
  49. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +2 -2
  50. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +2 -2
  51. package/dist/martyrs/src/modules/marketplace/views/components/pages/Marketplace.vue.js +1 -1
  52. package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js +1 -1
  53. package/dist/martyrs/src/modules/music/components/blocks/ActionButtons.vue.js +1 -1
  54. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +1 -1
  55. package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.js +1 -1
  56. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js +1 -1
  57. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js +1 -1
  58. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +2 -2
  59. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +3 -3
  60. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +1 -1
  61. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js +1 -1
  62. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +2 -2
  63. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +2 -2
  64. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +2 -2
  65. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +1 -1
  66. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +2 -2
  67. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +2 -2
  68. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +2 -2
  69. package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.js +1 -1
  70. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js +1 -1
  71. package/dist/martyrs/src/modules/music/components/player/PlayerControls.vue.js +1 -1
  72. package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.js +1 -1
  73. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +2 -2
  74. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +2 -2
  75. package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js +2 -2
  76. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +2 -2
  77. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +1 -1
  78. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +1 -1
  79. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js +1 -1
  80. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js +1 -1
  81. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +2 -2
  82. package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.js +1 -1
  83. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +1 -1
  84. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js +1 -1
  85. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js +1 -1
  86. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js +1 -1
  87. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +2 -2
  88. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +2 -2
  89. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +2 -2
  90. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +2 -2
  91. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -1
  92. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -1
  93. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +1 -1
  94. package/dist/martyrs/src/modules/products/components/elements/Image360.vue.js +1 -1
  95. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +1 -1
  96. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +4 -4
  97. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +1 -1
  98. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +3 -3
  99. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +1 -1
  100. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +1 -1
  101. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +2 -2
  102. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +3 -3
  103. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js +1 -1
  104. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +1 -1
  105. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +25 -38
  106. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js.map +1 -1
  107. package/dist/martyrs/src/modules/products/products.client.js +15 -21
  108. package/dist/martyrs/src/modules/products/products.client.js.map +1 -1
  109. package/dist/martyrs/src/modules/products/router/products.router.js +0 -34
  110. package/dist/martyrs/src/modules/products/router/products.router.js.map +1 -1
  111. package/dist/martyrs/src/modules/products/store/products.js +0 -15
  112. package/dist/martyrs/src/modules/products/store/products.js.map +1 -1
  113. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +1 -1
  114. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +1 -1
  115. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +2 -2
  116. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js +1 -1
  117. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js +1 -1
  118. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +2 -2
  119. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +2 -2
  120. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +1 -1
  121. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +2 -2
  122. package/dist/products.server.js +1 -130
  123. package/dist/style.css +0 -23
  124. package/package.json +1 -1
  125. package/src/modules/products/components/sections/SectionProduct.vue +2 -9
  126. package/src/modules/products/controllers/products.controller.js +0 -51
  127. package/src/modules/products/experiments/product-recommendation/README.md +156 -0
  128. package/src/modules/products/experiments/product-recommendation/controllers/recommendation.controller.js +59 -0
  129. package/src/modules/products/experiments/product-recommendation/router/recommendation.router.js +43 -0
  130. package/src/modules/products/experiments/product-recommendation/routes/recommendation.routes.js +10 -0
  131. package/src/modules/products/experiments/product-recommendation/store/recommendation.store.js +38 -0
  132. package/src/modules/products/products.client.js +0 -6
  133. package/src/modules/products/products.router.js +0 -29
  134. package/src/modules/products/router/products.router.js +0 -28
  135. package/src/modules/products/routes/products.routes.js +0 -2
  136. package/src/modules/products/store/products.js +0 -16
  137. package/dist/martyrs/src/components/Button/Button.vue2.js.map +0 -1
  138. package/dist/martyrs/src/components/EditImages/EditImages.vue.js.map +0 -1
  139. package/dist/martyrs/src/components/Loader/Loader.vue.js.map +0 -1
  140. package/dist/martyrs/src/components/Select/Select.vue.js.map +0 -1
  141. package/dist/martyrs/src/components/Shader/Shader.vue.js +0 -2
  142. package/dist/martyrs/src/components/Shader/Shader.vue.js.map +0 -1
  143. package/dist/martyrs/src/modules/core/views/components/sections/Filters.vue.js.map +0 -1
  144. package/dist/martyrs/src/modules/products/components/pages/ProductRecommmendation.vue.js +0 -106
  145. package/dist/martyrs/src/modules/products/components/pages/ProductRecommmendation.vue.js.map +0 -1
  146. package/dist/martyrs/src/modules/products/components/sections/HeroRecommendation.vue.js +0 -120
  147. package/dist/martyrs/src/modules/products/components/sections/HeroRecommendation.vue.js.map +0 -1
  148. /package/src/modules/products/{components/sections → experiments/product-recommendation/components}/HeroRecommendation.vue +0 -0
  149. /package/src/modules/products/{components/pages → experiments/product-recommendation/components}/ProductRecommmendation.vue +0 -0
@@ -3,9 +3,9 @@ import { useRoute, useRouter } from "vue-router";
3
3
  import _sfc_main$1 from "../../../../components/Block/Block.vue.js";
4
4
  import _sfc_main$3 from "../../../../components/Tab/Tab.vue2.js";
5
5
  import Field from "../../../../components/Field/Field.vue.js";
6
- import Select from "../../../../components/Select/Select.vue.js";
7
- import _sfc_main$2 from "../../../../components/Button/Button.vue2.js";
8
- import _sfc_main$4 from "../../../../components/EditImages/EditImages.vue.js";
6
+ import Select from "../../../../components/Select/Select.vue2.js";
7
+ import _sfc_main$2 from "../../../../components/Button/Button.vue.js";
8
+ import _sfc_main$4 from "../../../../components/EditImages/EditImages.vue2.js";
9
9
  import BlockMultiselect from "../../../core/views/components/blocks/BlockMultiselect.vue.js";
10
10
  import _sfc_main$5 from "../../../icons/navigation/IconCross.vue.js";
11
11
  import _sfc_main$a from "../../../icons/navigation/IconDelete.vue.js";
@@ -9,7 +9,7 @@ import "vue-i18n";
9
9
  import { actions as actions$1 } from "../../store/categories.js";
10
10
  /* empty css */
11
11
  import Field from "../../../../components/Field/Field.vue.js";
12
- import Filters from "../../../core/views/components/sections/Filters.vue.js";
12
+ import Filters from "../../../core/views/components/sections/Filters.vue2.js";
13
13
  import Calendar from "../../../../components/Calendar/Calendar.vue2.js";
14
14
  import _sfc_main$7 from "../../../../components/Popup/Popup.vue.js";
15
15
  import _sfc_main$6 from "../blocks/CardProduct.vue.js";
@@ -1,7 +1,7 @@
1
1
  import { useModel, ref, reactive, createElementBlock, openBlock, Fragment, createVNode, withCtx, createCommentVNode, renderList, createElementVNode, toDisplayString, createTextVNode } from "vue";
2
2
  import _sfc_main$1 from "../../../../components/Block/Block.vue.js";
3
3
  import Field from "../../../../components/Field/Field.vue.js";
4
- import _sfc_main$5 from "../../../../components/Button/Button.vue2.js";
4
+ import _sfc_main$5 from "../../../../components/Button/Button.vue.js";
5
5
  import _sfc_main$4 from "../../../../components/Popup/Popup.vue.js";
6
6
  import _sfc_main$2 from "../../../icons/navigation/IconEdit.vue.js";
7
7
  import _sfc_main$3 from "../../../icons/navigation/IconDelete.vue.js";
@@ -1,9 +1,9 @@
1
1
  import { useModel, ref, reactive, createElementBlock, openBlock, Fragment, createVNode, withCtx, createCommentVNode, renderList, createElementVNode, toDisplayString, createTextVNode } from "vue";
2
2
  import _sfc_main$1 from "../../../../components/Block/Block.vue.js";
3
3
  import Field from "../../../../components/Field/Field.vue.js";
4
- import _sfc_main$5 from "../../../../components/Button/Button.vue2.js";
4
+ import _sfc_main$5 from "../../../../components/Button/Button.vue.js";
5
5
  import _sfc_main$4 from "../../../../components/Popup/Popup.vue.js";
6
- import Select from "../../../../components/Select/Select.vue.js";
6
+ import Select from "../../../../components/Select/Select.vue2.js";
7
7
  import _sfc_main$2 from "../../../icons/navigation/IconEdit.vue.js";
8
8
  import _sfc_main$3 from "../../../icons/navigation/IconDelete.vue.js";
9
9
  const _hoisted_1 = {
@@ -5,11 +5,11 @@ import variantsStore from "../../store/variants.store.js";
5
5
  import { state } from "../../store/products.js";
6
6
  import _sfc_main$1 from "../../../../components/Block/Block.vue.js";
7
7
  import Field from "../../../../components/Field/Field.vue.js";
8
- import _sfc_main$3 from "../../../../components/Button/Button.vue2.js";
8
+ import _sfc_main$3 from "../../../../components/Button/Button.vue.js";
9
9
  import _sfc_main$7 from "../../../../components/Popup/Popup.vue.js";
10
- import Select from "../../../../components/Select/Select.vue.js";
10
+ import Select from "../../../../components/Select/Select.vue2.js";
11
11
  import _sfc_main$2 from "../../../../components/Feed/Feed.vue.js";
12
- import _sfc_main$9 from "../../../../components/EditImages/EditImages.vue.js";
12
+ import _sfc_main$9 from "../../../../components/EditImages/EditImages.vue2.js";
13
13
  import _sfc_main$8 from "./EditIngredients.vue.js";
14
14
  import PlaceholderImage from "../../../icons/placeholders/PlaceholderImage.vue.js";
15
15
  import _sfc_main$5 from "../../../icons/navigation/IconEdit.vue.js";
@@ -1,7 +1,7 @@
1
1
  import { ref, computed, createElementBlock, createCommentVNode, openBlock, createVNode, createElementVNode, toDisplayString, withCtx, unref, Fragment } from "vue";
2
2
  import { useI18n } from "vue-i18n";
3
3
  import _sfc_main$5 from "../../../icons/actions/IconShopcartAdd.vue.js";
4
- import _sfc_main$4 from "../../../../components/Button/Button.vue2.js";
4
+ import _sfc_main$4 from "../../../../components/Button/Button.vue.js";
5
5
  import _sfc_main$1 from "../blocks/ProductVariants.vue.js";
6
6
  import ProductDiscounts from "../blocks/ProductDiscounts.vue.js";
7
7
  import _sfc_main$3 from "../elements/QuantitySelector.vue.js";
@@ -1,6 +1,6 @@
1
1
  import { getCurrentInstance, ref, computed, createElementBlock, openBlock, createElementVNode, Fragment, renderList, createBlock, withCtx, createVNode, withModifiers, toDisplayString } from "vue";
2
2
  import { useRouter } from "vue-router";
3
- import _sfc_main$4 from "../../../../components/Button/Button.vue2.js";
3
+ import _sfc_main$4 from "../../../../components/Button/Button.vue.js";
4
4
  import _sfc_main$2 from "../../../../components/Checkbox/Checkbox.vue.js";
5
5
  import _sfc_main$1 from "../blocks/CardProduct.vue.js";
6
6
  import _sfc_main$3 from "../../../icons/entities/IconProducts.vue.js";
@@ -1,5 +1,5 @@
1
1
  import { computed, ref, createElementBlock, openBlock, createElementVNode, createBlock, createCommentVNode, createVNode, unref, toDisplayString, Transition, withCtx, Fragment, renderList, createTextVNode } from "vue";
2
- import _sfc_main$4 from "../../../../components/Button/Button.vue2.js";
2
+ import _sfc_main$4 from "../../../../components/Button/Button.vue.js";
3
3
  import _sfc_main$3 from "../../../../components/Tab/Tab.vue2.js";
4
4
  import _sfc_main$1 from "../../../icons/navigation/IconEdit.vue.js";
5
5
  import PlaceholderImage from "../../../icons/placeholders/PlaceholderImage.vue.js";
@@ -15,43 +15,35 @@ const _hoisted_2 = { class: "pd-small bg-light radius-medium flex-nowrap flex-co
15
15
  const _hoisted_3 = { class: "w-100 bg-light radius-semi o-hidden" };
16
16
  const _hoisted_4 = ["src"];
17
17
  const _hoisted_5 = { class: "radius-medium pos-relative w-100 h-100 flex-column flex-justify flex col" };
18
- const _hoisted_6 = {
19
- key: 1,
20
- class: "t-main t-semi p-medium"
21
- };
22
- const _hoisted_7 = { class: "w-100 h1-product mn-b-small" };
18
+ const _hoisted_6 = { class: "w-100 h1-product mn-b-small" };
19
+ const _hoisted_7 = { class: "h-min-5r pos-relative" };
23
20
  const _hoisted_8 = {
24
- key: 3,
25
- class: "mn-b-semi"
26
- };
27
- const _hoisted_9 = { class: "h-min-5r pos-relative" };
28
- const _hoisted_10 = {
29
21
  key: 0,
30
22
  class: "pd-medium radius-medium bg-light"
31
23
  };
32
- const _hoisted_11 = {
24
+ const _hoisted_9 = {
33
25
  key: 0,
34
26
  class: "w-100 t-transp"
35
27
  };
36
- const _hoisted_12 = {
28
+ const _hoisted_10 = {
37
29
  key: 1,
38
30
  class: "w-100 t-transp"
39
31
  };
40
- const _hoisted_13 = {
32
+ const _hoisted_11 = {
41
33
  key: 1,
42
34
  class: "cols-2 w-100 bg-light radius-medium pd-medium gap-small"
43
35
  };
44
- const _hoisted_14 = { class: "w-100 pd-small radius-small bg-white product-attributes" };
45
- const _hoisted_15 = { class: "t-demi" };
46
- const _hoisted_16 = {
47
- key: 4,
36
+ const _hoisted_12 = { class: "w-100 pd-small radius-small bg-white product-attributes" };
37
+ const _hoisted_13 = { class: "t-demi" };
38
+ const _hoisted_14 = {
39
+ key: 2,
48
40
  class: "mn-t-small max-w-33rem mobile-w-100 t-white gap-small cols-2"
49
41
  };
50
- const _hoisted_17 = {
51
- key: 5,
42
+ const _hoisted_15 = {
43
+ key: 3,
52
44
  class: "mn-t-small max-w-33rem mobile-w-100 t-white gap-small cols-2"
53
45
  };
54
- const _hoisted_18 = {
46
+ const _hoisted_16 = {
55
47
  key: 1,
56
48
  class: "flex-center flex uppercase radius-medium t-black w-max pd-small t-medium bg-grey h-3r w-100 mn-r-smallbutton"
57
49
  };
@@ -68,9 +60,6 @@ const _sfc_main = {
68
60
  accesses: {
69
61
  type: Object,
70
62
  default: null
71
- },
72
- recommendation: {
73
- type: String
74
63
  }
75
64
  },
76
65
  setup(__props) {
@@ -162,15 +151,13 @@ const _sfc_main = {
162
151
  onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$router.push(editPath.value)),
163
152
  class: "pos-absolute pos-t-regular pos-r-regular i-medium t-transp"
164
153
  })) : createCommentVNode("", true),
165
- __props.recommendation ? (openBlock(), createElementBlock("h2", _hoisted_6, toDisplayString(unref(t)("airecommend")), 1)) : createCommentVNode("", true),
166
- createElementVNode("h1", _hoisted_7, toDisplayString(__props.product.name), 1),
154
+ createElementVNode("h1", _hoisted_6, toDisplayString(__props.product.name), 1),
167
155
  __props.product.listing !== "rent" ? (openBlock(), createBlock(_sfc_main$2, {
168
- key: 2,
156
+ key: 1,
169
157
  product: __props.product,
170
158
  size: "big",
171
159
  class: "mn-b-semi"
172
160
  }, null, 8, ["product"])) : createCommentVNode("", true),
173
- __props.recommendation ? (openBlock(), createElementBlock("h3", _hoisted_8, toDisplayString(__props.recommendation), 1)) : createCommentVNode("", true),
174
161
  createVNode(_sfc_main$3, {
175
162
  selected: tabProduct.value,
176
163
  "onUpdate:selected": _cache[1] || (_cache[1] = ($event) => tabProduct.value = $event),
@@ -181,16 +168,16 @@ const _sfc_main = {
181
168
  classTab: "pd-small pd-r-medium pd-l-medium w-100 pd-small radius-small",
182
169
  class: "bg-light mn-b-small"
183
170
  }, null, 8, ["selected"]),
184
- createElementVNode("div", _hoisted_9, [
171
+ createElementVNode("div", _hoisted_7, [
185
172
  createVNode(Transition, { name: "slide-fade" }, {
186
173
  default: withCtx(() => [
187
- tabProduct.value === "description" ? (openBlock(), createElementBlock("div", _hoisted_10, [
188
- __props.product.description && !__props.product.translations < 1 && !__props.recommendation ? (openBlock(), createElementBlock("p", _hoisted_11, toDisplayString(__props.product.description), 1)) : createCommentVNode("", true),
189
- __props.product.translations && __props.product.translations.length > 1 && !__props.recommendation ? (openBlock(), createElementBlock("p", _hoisted_12, toDisplayString(unref(t)("description")), 1)) : createCommentVNode("", true)
190
- ])) : (openBlock(), createElementBlock("div", _hoisted_13, [
174
+ tabProduct.value === "description" ? (openBlock(), createElementBlock("div", _hoisted_8, [
175
+ __props.product.description && !__props.product.translations < 1 ? (openBlock(), createElementBlock("p", _hoisted_9, toDisplayString(__props.product.description), 1)) : createCommentVNode("", true),
176
+ __props.product.translations && __props.product.translations.length > 1 ? (openBlock(), createElementBlock("p", _hoisted_10, toDisplayString(unref(t)("description")), 1)) : createCommentVNode("", true)
177
+ ])) : (openBlock(), createElementBlock("div", _hoisted_11, [
191
178
  __props.product.attributes.length > 0 ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(__props.product.attributes, (attributes) => {
192
- return openBlock(), createElementBlock("div", _hoisted_14, [
193
- createElementVNode("p", _hoisted_15, toDisplayString(attributes.name), 1),
179
+ return openBlock(), createElementBlock("div", _hoisted_12, [
180
+ createElementVNode("p", _hoisted_13, toDisplayString(attributes.name), 1),
194
181
  createElementVNode("p", null, toDisplayString(attributes.value), 1)
195
182
  ]);
196
183
  }), 256)) : createCommentVNode("", true)
@@ -199,7 +186,7 @@ const _sfc_main = {
199
186
  _: 1
200
187
  })
201
188
  ]),
202
- __props.product.listing === "rent" ? (openBlock(), createElementBlock("div", _hoisted_16, [
189
+ __props.product.listing === "rent" ? (openBlock(), createElementBlock("div", _hoisted_14, [
203
190
  createVNode(_sfc_main$4, {
204
191
  submit: () => {
205
192
  addToCart(__props.product);
@@ -215,7 +202,7 @@ const _sfc_main = {
215
202
  ]),
216
203
  _: 1
217
204
  }, 8, ["submit"])
218
- ])) : (openBlock(), createElementBlock("div", _hoisted_17, [
205
+ ])) : (openBlock(), createElementBlock("div", _hoisted_15, [
219
206
  __props.product.quantity > 0 ? (openBlock(), createBlock(_sfc_main$4, {
220
207
  key: 0,
221
208
  submit: (a) => addToCart(__props.product),
@@ -230,7 +217,7 @@ const _sfc_main = {
230
217
  createTextVNode(toDisplayString(unref(t)("addtoorder")), 1)
231
218
  ]),
232
219
  _: 1
233
- }, 8, ["submit", "disabled"])) : (openBlock(), createElementBlock("div", _hoisted_18, " Out of Stock "))
220
+ }, 8, ["submit", "disabled"])) : (openBlock(), createElementBlock("div", _hoisted_16, " Out of Stock "))
234
221
  ]))
235
222
  ])
236
223
  ]);
@@ -1 +1 @@
1
- {"version":3,"file":"SectionProduct.vue.js","sources":["../../../../../../../src/modules/products/components/sections/SectionProduct.vue"],"sourcesContent":["<template>\n\t<div class=\"cols-2-1_2 pd-small w-100 gap-thin\">\n\t\t\n\t\t<div class=\"pd-small bg-light radius-medium flex-nowrap flex-column flex pos-relative\">\n\t\t\t<div class=\"w-100 bg-light radius-semi o-hidden\">\n\t\t\t\t<!-- PRODUCT IMAGE -->\n\t\t\t\t<Image360\n\t\t\t\t\tv-if=\"product && product.image3d\"\n\t\t\t\t\tclass=\"h-100 w-100\"\n\t\t\t\t\t:imagePath=\"`/assets/images/products/${product.image3d}`\"\n\t\t\t\t\t:imageCount=\"36\"\n\t\t\t\t/>\n\n\t\t\t\t<img loading=\"lazy\" \n\t\t\t\t\tv-if=\"images[0] && !product.image3d\"\n\t\t\t\t\tclass=\"h-max bg-light w-100\"\n\t\t\t\t\tstyle=\"object-fit: contain;\"\n\t\t\t\t\t:src=\"(FILE_SERVER_URL || '') + images[0]\"\n\t\t\t\t/>\n\n\t\t\t\t<PlaceholderImage\n\t\t\t\t\tv-if=\"!images[0] && !product.image3d\"\n\t\t\t\t\tclass=\"h-max-20r h-100 w-100\"\n\t\t\t\t\tstyle=\"object-fit: cover;\"\n\t\t\t\t/>\n\n\t\t\t</div>\n\n\t\t\t<ProductImages\n\t\t\t\tv-if=\"images.length > 1\"\n\t\t\t\t:images=\"images\"\n\t\t\t\tclass=\"mn-t-thin\"\n\t\t\t/>\n\t\t</div>\n\n\t\t<div class=\"radius-medium pos-relative w-100 h-100 flex-column flex-justify flex col\">\n\n\t\t\t<IconEdit\n\t\t\t\tv-if=\"accesses && hasAccess(route.params._id, 'products', 'edit', accesses)\"\n\t\t\t\t@click=\"$router.push(editPath)\"\n\t\t\t\tclass=\"pos-absolute pos-t-regular pos-r-regular i-medium t-transp\"\n\t\t\t/>\n\n\t\t\t<h2 v-if=\"recommendation\" class=\"t-main t-semi p-medium\">{{t('airecommend')}}</h2>\n\t\t\t<!-- Name -->\n\t\t\t<h1 class=\"w-100 h1-product mn-b-small\">{{ product.name }}</h1>\n\t\t\t<!-- Price -->\n\t\t\t<Price v-if=\"product.listing !== 'rent'\" :product=\"product\" size=\"big\" class=\"mn-b-semi\" />\n\t\t\t<!-- Variants -->\n\t\t\t<!-- <div v-if=\"product.variants.length > 0\" class=\"flex-nojustify flex\">\n\t\t\t\t<SelectElement v-if=\"sizes2.length > 0\" :elements=\"sizes2\" :selected=\"product.selectedSize\" class=\"mn-r-medium\" />\n\t\t\t</div> -->\n\t\t\t<!-- Description -->\n\t\t\t<h3 v-if=\"recommendation\" class=\"mn-b-semi\">\n\t\t\t\t{{ recommendation }}\n\t\t\t</h3>\n\n\t\t\t<Tab \n\t\t\t\tv-model:selected=\"tabProduct\"\n\t\t\t\t:tabs=\"[\n\t\t\t\t\t{name: 'Description', value: 'description'},\n\t\t\t\t\t{name: 'Specifications', value: 'specifications'}\n\t\t\t\t]\"\n\t\t\t\tclassTab=\"pd-small pd-r-medium pd-l-medium w-100 pd-small radius-small\"\n\t\t\t\tclass=\"bg-light mn-b-small\"\n\t\t\t/>\n\n\t\t\t<div class=\"h-min-5r pos-relative\">\n\t\t\t\t<transition name=\"slide-fade\">\n\n\t\t\t\t\t<div v-if=\"tabProduct === 'description'\" class=\"pd-medium radius-medium bg-light \">\n\t\t\t\t\t\t<p v-if=\"product.description && !product.translations < 1 && !recommendation\" class=\"w-100 t-transp\">\n\t\t\t\t\t\t\t{{ product.description }}\n\t\t\t\t\t\t</p>\n\n\t\t\t\t\t\t<p v-if=\"product.translations && product.translations.length > 1 && !recommendation\" class=\"w-100 t-transp\">\n\t\t\t\t\t\t\t{{ t('description') }}\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div \n\t\t\t\t\t\tv-else\n\t\t\t\t\t\tclass=\"cols-2 w-100 bg-light radius-medium pd-medium gap-small\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div \n\t\t\t\t\t\t\tv-if=\"product.attributes.length > 0\" \n\t\t\t\t\t\t\tv-for=\"attributes in product.attributes\" \n\t\t\t\t\t\t\tclass=\"w-100 pd-small radius-small bg-white product-attributes\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<p class=\"t-demi\">{{ attributes.name }}</p>\n\t\t\t\t\t\t\t<p>{{ attributes.value }}</p>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</transition>\n\t\t\t</div>\n\n\t\t\t<div v-if=\"product.listing === 'rent'\" class=\"mn-t-small max-w-33rem mobile-w-100 t-white gap-small cols-2\">\n\t\t\t\t<Button\n\t\t\t\t\t:submit=\"() => { addToCart(product) } \" \n\t\t\t\t\t:text=\"{\n\t\t\t\t\t\tsuccess: ' ✔ Added',\n\t\t\t\t\t\terror: 'error'\n\t\t\t\t\t}\"\n\t\t\t\t\tclass=\"h-3r w-100 mn-r-small bg-main button\"\n\t\t\t\t> \n\t\t\t\t\t{{ t('addtoorder') }}\n\t\t\t\t</Button>\n\t\t\t</div>\n\n\t\t\t<!-- Actions -->\n\t\t\t<div v-else class=\"mn-t-small max-w-33rem mobile-w-100 t-white gap-small cols-2\">\n\t\t\t\t<Button\n\t\t\t\t\tv-if=\"product.quantity > 0\"\n\t\t\t\t\t:submit=\"a => addToCart(product)\" \n\t\t\t\t\t:disabled=\"validateToCard(product)\" \n\t\t\t\t\t:text=\"{\n\t\t\t\t\t\tsuccess: ' ✔ Added',\n\t\t\t\t\t\terror: 'error'\n\t\t\t\t\t}\"\n\t\t\t\t\tclass=\"h-3r w-100 mn-r-small bg-main button\"\n\t\t\t\t> \n\t\t\t\t\t\t{{ t('addtoorder') }}\n\t\t\t\t</Button>\n\t\t\t\t<div v-else class=\"flex-center flex uppercase radius-medium t-black w-max pd-small t-medium bg-grey h-3r w-100 mn-r-smallbutton\">\n\t\t\t\t\tOut of Stock\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<script setup>\nimport Button from '@martyrs/src/components/Button/Button.vue'\nimport Tab from '@martyrs/src/components/Tab/Tab.vue'\nimport IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue'\nimport PlaceholderImage from '@martyrs/src/modules/icons/placeholders/PlaceholderImage.vue'\n\nimport Image360 \tfrom '@martyrs/src/modules/products/components/elements/Image360.vue'\nimport ProductImages from \"@martyrs/src/modules/products/components/blocks/ProductImages.vue\";\n\nimport THC from '@martyrs/src/modules/products/components/elements/THC.vue'\nimport Price from '@martyrs/src/modules/products/components/elements/Price.vue'\n// import SelectElement \tfrom '@/components/elements/SelectElement.vue'\n\nimport { computed, ref } from 'vue'\n\n\timport { useRoute,useRouter } from 'vue-router'\nimport { useI18n } from 'vue-i18n'\n\nimport * as shopcart from '@martyrs/src/modules/orders/store/shopcart.js';\n\n// Props\nconst props = defineProps({\n product: {\n type: Object,\n required: true\n },\n user: {\n type: String,\n },\n accesses: {\n type: Object,\n\t default: null\n },\n recommendation: {\n \ttype: String\n }\n})\n\n\n\n\tconst route = useRoute()\n\tconst router = useRouter()\n\n// Computed properties\nconst images = computed(() => {\n return props.product.images\n})\n\nconst editPath = computed(() => {\n\tif (route.meta.context === 'backoffice') {\n\t\treturn `/backoffice/products/${props.product._id}/edit`\n\t}\n\tif (route.meta.context === 'organization') {\n\t\treturn `/organizations/${props.product.owner.target}/products/${props.product._id}/edit`\n\t}\n\treturn `/products/${props.product._id}/edit`\n})\n\nconst tabProduct = ref('description')\n\nconst text = {\n\tmessages: {\n\t en: {\n\t \tairecommend: 'AI Recommends You',\n\t \tdescription: '',\n\t \taddtoorder: 'Add to order',\n\t fastorder: 'Fast Order'\n\t },\n\t ru: {\n\t \tairecommend: 'AI Рекомендует вам',\n\t \tdescription: '',\n\t \taddtoorder: 'Добавить в корзину',\n\t fastorder: 'Быстрый заказ'\n\t }\n\t}\n}\n\nconst { t } = useI18n(text)\n\n// Methods\nfunction validateToCard(product) {\n if (product.quantity > 0) {\n return false\n }\n return true\n}\nasync function addToCart(product) {\n\tconsole.log(product)\n try {\n if (shopcart.state.organization !== product.owner.target) {\n shopcart.state.organization = product.owner.target\n shopcart.state.positions = []\n }\n await shopcart.actions.addProductToCart(product, product.owner.target)\n return true // Make sure we return something\n } catch (error) {\n console.error('Ошибка при добавлении товара в корзину:', error)\n throw error\n }\n}\n</script>\n"],"names":["shopcart.state","shopcart.actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwJA,UAAM,QAAQ;AAmBb,UAAM,QAAQ,SAAQ;AACP,cAAS;AAGzB,UAAM,SAAS,SAAS,MAAM;AAC5B,aAAO,MAAM,QAAQ;AAAA,IACvB,CAAC;AAED,UAAM,WAAW,SAAS,MAAM;AAC/B,UAAI,MAAM,KAAK,YAAY,cAAc;AACxC,eAAO,wBAAwB,MAAM,QAAQ,GAAG;AAAA,MACjD;AACA,UAAI,MAAM,KAAK,YAAY,gBAAgB;AAC1C,eAAO,kBAAkB,MAAM,QAAQ,MAAM,MAAM,aAAa,MAAM,QAAQ,GAAG;AAAA,MAClF;AACA,aAAO,aAAa,MAAM,QAAQ,GAAG;AAAA,IACtC,CAAC;AAED,UAAM,aAAa,IAAI,aAAa;AAEpC,UAAM,OAAO;AAAA,MACZ,UAAU;AAAA,QACR,IAAI;AAAA,UACH,aAAa;AAAA,UACb,aAAa;AAAA,UACb,YAAY;AAAA,UACX,WAAW;AAAA,QAChB;AAAA,QACG,IAAI;AAAA,UACH,aAAa;AAAA,UACb,aAAa;AAAA,UACb,YAAY;AAAA,UACX,WAAW;AAAA,QAChB;AAAA,MACA;AAAA,IACA;AAEA,UAAM,EAAE,EAAC,IAAK,QAAQ,IAAI;AAG1B,aAAS,eAAe,SAAS;AAC/B,UAAI,QAAQ,WAAW,GAAG;AACxB,eAAO;AAAA,MACT;AACA,aAAO;AAAA,IACT;AACA,mBAAe,UAAU,SAAS;AACjC,cAAQ,IAAI,OAAO;AAChB,UAAI;AACA,YAAIA,MAAe,iBAAiB,QAAQ,MAAM,QAAQ;AACtDA,gBAAe,eAAe,QAAQ,MAAM;AAC5CA,gBAAe,YAAY,CAAA;AAAA,QAC/B;AACA,cAAMC,QAAiB,iBAAiB,SAAS,QAAQ,MAAM,MAAM;AACrE,eAAO;AAAA,MACX,SAAS,OAAO;AACZ,gBAAQ,MAAM,2CAA2C,KAAK;AAC9D,cAAM;AAAA,MACV;AAAA,IACJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"SectionProduct.vue.js","sources":["../../../../../../../src/modules/products/components/sections/SectionProduct.vue"],"sourcesContent":["<template>\n\t<div class=\"cols-2-1_2 pd-small w-100 gap-thin\">\n\t\t\n\t\t<div class=\"pd-small bg-light radius-medium flex-nowrap flex-column flex pos-relative\">\n\t\t\t<div class=\"w-100 bg-light radius-semi o-hidden\">\n\t\t\t\t<!-- PRODUCT IMAGE -->\n\t\t\t\t<Image360\n\t\t\t\t\tv-if=\"product && product.image3d\"\n\t\t\t\t\tclass=\"h-100 w-100\"\n\t\t\t\t\t:imagePath=\"`/assets/images/products/${product.image3d}`\"\n\t\t\t\t\t:imageCount=\"36\"\n\t\t\t\t/>\n\n\t\t\t\t<img loading=\"lazy\" \n\t\t\t\t\tv-if=\"images[0] && !product.image3d\"\n\t\t\t\t\tclass=\"h-max bg-light w-100\"\n\t\t\t\t\tstyle=\"object-fit: contain;\"\n\t\t\t\t\t:src=\"(FILE_SERVER_URL || '') + images[0]\"\n\t\t\t\t/>\n\n\t\t\t\t<PlaceholderImage\n\t\t\t\t\tv-if=\"!images[0] && !product.image3d\"\n\t\t\t\t\tclass=\"h-max-20r h-100 w-100\"\n\t\t\t\t\tstyle=\"object-fit: cover;\"\n\t\t\t\t/>\n\n\t\t\t</div>\n\n\t\t\t<ProductImages\n\t\t\t\tv-if=\"images.length > 1\"\n\t\t\t\t:images=\"images\"\n\t\t\t\tclass=\"mn-t-thin\"\n\t\t\t/>\n\t\t</div>\n\n\t\t<div class=\"radius-medium pos-relative w-100 h-100 flex-column flex-justify flex col\">\n\n\t\t\t<IconEdit\n\t\t\t\tv-if=\"accesses && hasAccess(route.params._id, 'products', 'edit', accesses)\"\n\t\t\t\t@click=\"$router.push(editPath)\"\n\t\t\t\tclass=\"pos-absolute pos-t-regular pos-r-regular i-medium t-transp\"\n\t\t\t/>\n\n\t\t\t<!-- Name -->\n\t\t\t<h1 class=\"w-100 h1-product mn-b-small\">{{ product.name }}</h1>\n\t\t\t<!-- Price -->\n\t\t\t<Price v-if=\"product.listing !== 'rent'\" :product=\"product\" size=\"big\" class=\"mn-b-semi\" />\n\t\t\t<!-- Variants -->\n\t\t\t<!-- <div v-if=\"product.variants.length > 0\" class=\"flex-nojustify flex\">\n\t\t\t\t<SelectElement v-if=\"sizes2.length > 0\" :elements=\"sizes2\" :selected=\"product.selectedSize\" class=\"mn-r-medium\" />\n\t\t\t</div> -->\n\t\t\t<!-- Description -->\n\n\t\t\t<Tab \n\t\t\t\tv-model:selected=\"tabProduct\"\n\t\t\t\t:tabs=\"[\n\t\t\t\t\t{name: 'Description', value: 'description'},\n\t\t\t\t\t{name: 'Specifications', value: 'specifications'}\n\t\t\t\t]\"\n\t\t\t\tclassTab=\"pd-small pd-r-medium pd-l-medium w-100 pd-small radius-small\"\n\t\t\t\tclass=\"bg-light mn-b-small\"\n\t\t\t/>\n\n\t\t\t<div class=\"h-min-5r pos-relative\">\n\t\t\t\t<transition name=\"slide-fade\">\n\n\t\t\t\t\t<div v-if=\"tabProduct === 'description'\" class=\"pd-medium radius-medium bg-light \">\n\t\t\t\t\t\t<p v-if=\"product.description && !product.translations < 1\" class=\"w-100 t-transp\">\n\t\t\t\t\t\t\t{{ product.description }}\n\t\t\t\t\t\t</p>\n\n\t\t\t\t\t\t<p v-if=\"product.translations && product.translations.length > 1\" class=\"w-100 t-transp\">\n\t\t\t\t\t\t\t{{ t('description') }}\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div \n\t\t\t\t\t\tv-else\n\t\t\t\t\t\tclass=\"cols-2 w-100 bg-light radius-medium pd-medium gap-small\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div \n\t\t\t\t\t\t\tv-if=\"product.attributes.length > 0\" \n\t\t\t\t\t\t\tv-for=\"attributes in product.attributes\" \n\t\t\t\t\t\t\tclass=\"w-100 pd-small radius-small bg-white product-attributes\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<p class=\"t-demi\">{{ attributes.name }}</p>\n\t\t\t\t\t\t\t<p>{{ attributes.value }}</p>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</transition>\n\t\t\t</div>\n\n\t\t\t<div v-if=\"product.listing === 'rent'\" class=\"mn-t-small max-w-33rem mobile-w-100 t-white gap-small cols-2\">\n\t\t\t\t<Button\n\t\t\t\t\t:submit=\"() => { addToCart(product) } \" \n\t\t\t\t\t:text=\"{\n\t\t\t\t\t\tsuccess: ' ✔ Added',\n\t\t\t\t\t\terror: 'error'\n\t\t\t\t\t}\"\n\t\t\t\t\tclass=\"h-3r w-100 mn-r-small bg-main button\"\n\t\t\t\t> \n\t\t\t\t\t{{ t('addtoorder') }}\n\t\t\t\t</Button>\n\t\t\t</div>\n\n\t\t\t<!-- Actions -->\n\t\t\t<div v-else class=\"mn-t-small max-w-33rem mobile-w-100 t-white gap-small cols-2\">\n\t\t\t\t<Button\n\t\t\t\t\tv-if=\"product.quantity > 0\"\n\t\t\t\t\t:submit=\"a => addToCart(product)\" \n\t\t\t\t\t:disabled=\"validateToCard(product)\" \n\t\t\t\t\t:text=\"{\n\t\t\t\t\t\tsuccess: ' ✔ Added',\n\t\t\t\t\t\terror: 'error'\n\t\t\t\t\t}\"\n\t\t\t\t\tclass=\"h-3r w-100 mn-r-small bg-main button\"\n\t\t\t\t> \n\t\t\t\t\t\t{{ t('addtoorder') }}\n\t\t\t\t</Button>\n\t\t\t\t<div v-else class=\"flex-center flex uppercase radius-medium t-black w-max pd-small t-medium bg-grey h-3r w-100 mn-r-smallbutton\">\n\t\t\t\t\tOut of Stock\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<script setup>\nimport Button from '@martyrs/src/components/Button/Button.vue'\nimport Tab from '@martyrs/src/components/Tab/Tab.vue'\nimport IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue'\nimport PlaceholderImage from '@martyrs/src/modules/icons/placeholders/PlaceholderImage.vue'\n\nimport Image360 \tfrom '@martyrs/src/modules/products/components/elements/Image360.vue'\nimport ProductImages from \"@martyrs/src/modules/products/components/blocks/ProductImages.vue\";\n\nimport THC from '@martyrs/src/modules/products/components/elements/THC.vue'\nimport Price from '@martyrs/src/modules/products/components/elements/Price.vue'\n// import SelectElement \tfrom '@/components/elements/SelectElement.vue'\n\nimport { computed, ref } from 'vue'\n\n\timport { useRoute,useRouter } from 'vue-router'\nimport { useI18n } from 'vue-i18n'\n\nimport * as shopcart from '@martyrs/src/modules/orders/store/shopcart.js';\n\n// Props\nconst props = defineProps({\n product: {\n type: Object,\n required: true\n },\n user: {\n type: String,\n },\n accesses: {\n type: Object,\n\t default: null\n }\n})\n\n\n\n\tconst route = useRoute()\n\tconst router = useRouter()\n\n// Computed properties\nconst images = computed(() => {\n return props.product.images\n})\n\nconst editPath = computed(() => {\n\tif (route.meta.context === 'backoffice') {\n\t\treturn `/backoffice/products/${props.product._id}/edit`\n\t}\n\tif (route.meta.context === 'organization') {\n\t\treturn `/organizations/${props.product.owner.target}/products/${props.product._id}/edit`\n\t}\n\treturn `/products/${props.product._id}/edit`\n})\n\nconst tabProduct = ref('description')\n\nconst text = {\n\tmessages: {\n\t en: {\n\t \tairecommend: 'AI Recommends You',\n\t \tdescription: '',\n\t \taddtoorder: 'Add to order',\n\t fastorder: 'Fast Order'\n\t },\n\t ru: {\n\t \tairecommend: 'AI Рекомендует вам',\n\t \tdescription: '',\n\t \taddtoorder: 'Добавить в корзину',\n\t fastorder: 'Быстрый заказ'\n\t }\n\t}\n}\n\nconst { t } = useI18n(text)\n\n// Methods\nfunction validateToCard(product) {\n if (product.quantity > 0) {\n return false\n }\n return true\n}\nasync function addToCart(product) {\n\tconsole.log(product)\n try {\n if (shopcart.state.organization !== product.owner.target) {\n shopcart.state.organization = product.owner.target\n shopcart.state.positions = []\n }\n await shopcart.actions.addProductToCart(product, product.owner.target)\n return true // Make sure we return something\n } catch (error) {\n console.error('Ошибка при добавлении товара в корзину:', error)\n throw error\n }\n}\n</script>\n"],"names":["shopcart.state","shopcart.actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoJA,UAAM,QAAQ;AAgBb,UAAM,QAAQ,SAAQ;AACP,cAAS;AAGzB,UAAM,SAAS,SAAS,MAAM;AAC5B,aAAO,MAAM,QAAQ;AAAA,IACvB,CAAC;AAED,UAAM,WAAW,SAAS,MAAM;AAC/B,UAAI,MAAM,KAAK,YAAY,cAAc;AACxC,eAAO,wBAAwB,MAAM,QAAQ,GAAG;AAAA,MACjD;AACA,UAAI,MAAM,KAAK,YAAY,gBAAgB;AAC1C,eAAO,kBAAkB,MAAM,QAAQ,MAAM,MAAM,aAAa,MAAM,QAAQ,GAAG;AAAA,MAClF;AACA,aAAO,aAAa,MAAM,QAAQ,GAAG;AAAA,IACtC,CAAC;AAED,UAAM,aAAa,IAAI,aAAa;AAEpC,UAAM,OAAO;AAAA,MACZ,UAAU;AAAA,QACR,IAAI;AAAA,UACH,aAAa;AAAA,UACb,aAAa;AAAA,UACb,YAAY;AAAA,UACX,WAAW;AAAA,QAChB;AAAA,QACG,IAAI;AAAA,UACH,aAAa;AAAA,UACb,aAAa;AAAA,UACb,YAAY;AAAA,UACX,WAAW;AAAA,QAChB;AAAA,MACA;AAAA,IACA;AAEA,UAAM,EAAE,EAAC,IAAK,QAAQ,IAAI;AAG1B,aAAS,eAAe,SAAS;AAC/B,UAAI,QAAQ,WAAW,GAAG;AACxB,eAAO;AAAA,MACT;AACA,aAAO;AAAA,IACT;AACA,mBAAe,UAAU,SAAS;AACjC,cAAQ,IAAI,OAAO;AAChB,UAAI;AACA,YAAIA,MAAe,iBAAiB,QAAQ,MAAM,QAAQ;AACtDA,gBAAe,eAAe,QAAQ,MAAM;AAC5CA,gBAAe,YAAY,CAAA;AAAA,QAC/B;AACA,cAAMC,QAAiB,iBAAiB,SAAS,QAAQ,MAAM,MAAM;AACrE,eAAO;AAAA,MACX,SAAS,OAAO;AACZ,gBAAQ,MAAM,2CAA2C,KAAK;AAC9D,cAAM;AAAA,MACV;AAAA,IACJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -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":";;;AAIA,MAAM,EAAE,WAAW,QAAO,IAAK,gBAAe;AAEvC,SAAS,UAAU,UAAU,IAAI;AACtC,QAAM,QAAQ,QAAQ,SAAS;AAC/B,QAAM,kBAAkB,QAAQ,mBAAmB;AACnD,QAAM,qBAAqB,QAAQ,sBAAsB;AAEzD,QAAM,SAAS,CAAA;AAGf,SAAO,KAAK;AAAA,IACV,YAAY;AAAA,IACZ,QAAQ;AAAA,MACN,UAAU,QAAQ,YAAY;AAAA,MAC9B,MAAM;AAAA,QACJ,OAAO;AAAA,UACL,IAAI;AAAA,UACJ,IAAI;AAAA,QACd;AAAA,MACA;AAAA,MACM,QAAQ;AAAA,QACN;AAAA,UACE,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,YACJ,OAAO;AAAA,cACL,IAAI;AAAA,cACJ,IAAI;AAAA,YAClB;AAAA,UACA;AAAA,UACU,WAAW,MAAM;AAAA;AAAA,YAA+C;AAAA,UAAkC;AAAA,QAC5G;AAAA,QACQ;AAAA,UACE,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,YACJ,OAAO;AAAA,cACL,IAAI;AAAA,cACJ,IAAI;AAAA,YAClB;AAAA,UACA;AAAA,UACU,WAAW,MAAM;AAAA;AAAA,YAA+C;AAAA,UAAkC;AAAA,QAC5G;AAAA,QACQ;AAAA,UACE,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,YACJ,OAAO;AAAA,cACL,IAAI;AAAA,cACJ,IAAI;AAAA,YAClB;AAAA,UACA;AAAA,UACU,aAAa,CAACA,YAA2B;AAAA,UACzC,WAAW,MAAM;AAAA;AAAA,YAA+C;AAAA,UAAqC;AAAA,QAC/G;AAAA,QACQ;AAAA,UACE,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,YACJ,OAAO;AAAA,cACL,IAAI;AAAA,cACJ,IAAI;AAAA,YAClB;AAAA,YACY,cAAc;AAAA,UAC1B;AAAA,UACU,WAAW,MAAM;AAAA;AAAA,YAAiD;AAAA,UAAiC;AAAA,QAC7G;AAAA,QACQ;AAAA,UACE,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,YACJ,OAAO;AAAA,cACL,IAAI;AAAA,cACJ,IAAI;AAAA,YAClB;AAAA,UACA;AAAA,UACU,aAAa,CAACA,YAA2B;AAAA,UACzC,WAAW,MAAM;AAAA;AAAA,YAA+C;AAAA,UAAqC;AAAA,QAC/G;AAAA,QACQ;AAAA,UACE,MAAM;AAAA,UACN,MAAM;AAAA,UACN,MAAM;AAAA,YACJ,OAAO;AAAA,cACL,IAAI;AAAA,cACJ,IAAI;AAAA,YAClB;AAAA,YACY,cAAc;AAAA,YACd,cAAc;AAAA,UAC1B;AAAA,UACU,WAAW,MAAM;AAAA;AAAA,YAAyD;AAAA,UAAgD;AAAA,UAC1H,OAAO,CAAAC,YAAU,EAAE,MAAMA,OAAM,MAAM;QAC/C;AAAA,MACA;AAAA,IACA;AAAA,EACA,CAAG;AAGD,MAAI,CAAC,QAAQ,gBAAgB;AAC3B,WAAO,KAAK;AAAA,MACV,YAAY;AAAA,MACZ,QAAQ;AAAA,QACN,UAAU,QAAQ,sBAAsB;AAAA,QACxC,iBAAiB;AAAA,QACjB,MAAM;AAAA,UACJ,OAAO;AAAA,YACL,IAAI;AAAA,YACJ,IAAI;AAAA,UAChB;AAAA,UACU,SAAS;AAAA,QACnB;AAAA,QACQ,QAAQ;AAAA,UACN;AAAA,YACE,MAAM;AAAA,YACN,MAAM;AAAA,YACN,MAAM;AAAA,cACJ,OAAO;AAAA,gBACL,IAAI;AAAA,gBACJ,IAAI;AAAA,cACpB;AAAA,YACA;AAAA,YACY,WAAW,MAAM;AAAA;AAAA,cAAqD;AAAA,YAAkC;AAAA,UACpH;AAAA,UACU;AAAA,YACE,MAAM;AAAA,YACN,MAAM;AAAA,YACN,MAAM;AAAA,cACJ,OAAO;AAAA,gBACL,IAAI;AAAA,gBACJ,IAAI;AAAA,cACpB;AAAA,YACA;AAAA,YACY,aAAa;AAAA,cACXD;AAAAA,cACA,CAAC,IAAI,MAAM,SAAS;AAClB,oBAAI,QAAQE,MAAW,OAAO,KAAK,GAAG;AACpC,uBAAI;AAAA,gBACN,OAAO;AACL,uBAAK,MAAM;AAAA,gBACb;AAAA,cACF;AAAA,YACd;AAAA,YACY,WAAW,MAAM;AAAA;AAAA,cAA0D;AAAA,YAAqC;AAAA,UAC5H;AAAA,UACU;AAAA,YACE,MAAM;AAAA,YACN,MAAM;AAAA,YACN,MAAM;AAAA,cACJ,OAAO;AAAA,gBACL,IAAI;AAAA,gBACJ,IAAI;AAAA,cACpB;AAAA,cACc,cAAc;AAAA,YAC5B;AAAA,YACY,WAAW,MAAM;AAAA;AAAA,cAA4D;AAAA,YAAiC;AAAA,UAC1H;AAAA,UACU;AAAA,YACE,MAAM;AAAA,YACN,MAAM;AAAA,YACN,MAAM;AAAA,cACJ,OAAO;AAAA,gBACL,IAAI;AAAA,gBACJ,IAAI;AAAA,cACpB;AAAA,YACA;AAAA,YACY,aAAa;AAAA,cACXF;AAAAA,cACA,CAAC,IAAI,MAAM,SAAS;AAClB,oBAAI,QAAQE,MAAW,OAAO,KAAK,GAAG;AACpC,uBAAI;AAAA,gBACN,OAAO;AACL,uBAAK,MAAM;AAAA,gBACb;AAAA,cACF;AAAA,YACd;AAAA,YACY,WAAW,MAAM;AAAA;AAAA,cAA0D;AAAA,YAAqC;AAAA,UAC5H;AAAA,QACA;AAAA,MACA;AAAA,IACA,CAAK;AAAA,EACH;AAGA,MAAI,CAAC,QAAQ,wBAAwB;AACnC,WAAO,KAAK;AAAA,MACV,YAAY;AAAA,MACZ,QAAQ;AAAA,QACN,UAAU,QAAQ,wBAAwB;AAAA,QAC1C,iBAAiB;AAAA,QACjB,MAAM;AAAA,UACJ,OAAO;AAAA,YACL,IAAI;AAAA,YACJ,IAAI;AAAA,UAChB;AAAA,UACU,SAAS;AAAA,QACnB;AAAA,QACQ,QAAQ;AAAA,UACN;AAAA,YACE,MAAM;AAAA,YACN,MAAM;AAAA,YACN,MAAM;AAAA,cACJ,OAAO;AAAA,gBACL,IAAI;AAAA,gBACJ,IAAI;AAAA,cACpB;AAAA,YACA;AAAA,YACY,WAAW,MAAM;AAAA;AAAA,cAA+C;AAAA,YAAkC;AAAA,UAC9G;AAAA,UACU;AAAA,YACE,MAAM;AAAA,YACN,MAAM;AAAA,YACN,MAAM;AAAA,cACJ,OAAO;AAAA,gBACL,IAAI;AAAA,gBACJ,IAAI;AAAA,cACpB;AAAA,YACA;AAAA,YACY,WAAW,MAAM;AAAA;AAAA,cAA+C;AAAA,YAAkC;AAAA,UAC9G;AAAA,UACU;AAAA,YACE,MAAM;AAAA,YACN,MAAM;AAAA,YACN,MAAM;AAAA,cACJ,OAAO;AAAA,gBACL,IAAI;AAAA,gBACJ,IAAI;AAAA,cACpB;AAAA,YACA;AAAA,YACY,aAAa;AAAA,cACXF;AAAAA,cACA,CAAC,IAAI,MAAM,SAAS;AAClB,oBAAI,QAAQE,MAAW,OAAO,KAAK,KAAK,UAAU,GAAG,OAAO,KAAK,YAAY,UAAUA,MAAW,UAAUA,MAAW,OAAO,KAAK,GAAG;AACpI,uBAAI;AAAA,gBACN,OAAO;AACL,uBAAK,MAAM;AAAA,gBACb;AAAA,cACF;AAAA,YACd;AAAA,YACY,WAAW,MAAM;AAAA;AAAA,cAA+C;AAAA,YAAqC;AAAA,UACjH;AAAA,UACU;AAAA,YACE,MAAM;AAAA,YACN,MAAM;AAAA,YACN,MAAM;AAAA,cACJ,OAAO;AAAA,gBACL,IAAI;AAAA,gBACJ,IAAI;AAAA,cACpB;AAAA,cACc,cAAc;AAAA,YAC5B;AAAA,YACY,WAAW,MAAM;AAAA;AAAA,cAAiD;AAAA,YAAiC;AAAA,UAC/G;AAAA,UACU;AAAA,YACE,MAAM;AAAA,YACN,MAAM;AAAA,YACN,MAAM;AAAA,cACJ,OAAO;AAAA,gBACL,IAAI;AAAA,gBACJ,IAAI;AAAA,cACpB;AAAA,YACA;AAAA,YACY,aAAa;AAAA,cACXF;AAAAA,cACA,CAAC,IAAI,MAAM,SAAS;AAClB,oBAAI,QAAQE,MAAW,OAAO,KAAK,KAAK,UAAU,GAAG,OAAO,KAAK,YAAY,QAAQA,MAAW,UAAUA,MAAW,OAAO,KAAK,GAAG;AAClI,uBAAI;AAAA,gBACN,OAAO;AACL,uBAAK,MAAM;AAAA,gBACb;AAAA,cACF;AAAA,YACd;AAAA,YACY,WAAW,MAAM;AAAA;AAAA,cAA+C;AAAA,YAAqC;AAAA,UACjH;AAAA,UACU;AAAA,YACE,MAAM;AAAA,YACN,MAAM;AAAA,YACN,MAAM;AAAA,cACJ,OAAO;AAAA,gBACL,IAAI;AAAA,gBACJ,IAAI;AAAA,cACpB;AAAA,cACc,cAAc;AAAA,cACd,cAAc;AAAA,YAC5B;AAAA,YACY,WAAW,MAAM;AAAA;AAAA,cAAyD;AAAA,YAAgD;AAAA,YAC1H,OAAO,CAAAD,YAAU,EAAE,MAAMA,OAAM,MAAM;UACjD;AAAA,QACA;AAAA,MACA;AAAA,IACA,CAAK;AAAA,EACH;AAEA,SAAO;AACT;"}
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":";;;AAWK,MAAC,QAAQ,SAAS;AAAA,EACrB,KAAK,CAAA;AAAA,EACL,SAAS;AAAA,IACP,gBAAgB;AAAA,IAChB,UAAU,CAAA;AAAA,IACV,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,YAAY,CAAA;AAAA,IACZ,QAAQ,CAAA;AAAA,IACR,OAAO,CAAA;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,cAAc,CAAA;AAAA,IACd,aAAa,CAAA;AAAA,IACb,UAAU,CAAA;AAAA,IACV,WAAW,CAAA;AAAA,IACX,UAAU;AAAA,IACV,aAAa,CAAA;AAAA,IACb,aAAa;AAAA,IACb,gBAAgB;AAAA,MACd,OAAO;AAAA,MACP,UAAU;AAAA,MACV,MAAM;AAAA,IACZ;AAAA,EACA;AAAA,EACE,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU,CAAA;AAAA,IACV,SAAS;AAAA,MACP;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,QACP,SAAS;AAAA,UACP,EAAE,OAAO,UAAU,OAAO,SAAQ;AAAA,UAClC,EAAE,OAAO,WAAW,OAAO,UAAS;AAAA,UACpC,EAAE,OAAO,QAAQ,OAAO,OAAM;AAAA,QACxC;AAAA,MACA;AAAA,IACA;AAAA,EACA;AAAA,EACE,MAAM;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,SAAS;AAAA,MACP;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,MACf;AAAA,MACM;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,MACf;AAAA,MACM;AAAA,QACE,OAAO;AAAA,QACP,OAAO;AAAA,MACf;AAAA,IACA;AAAA,EACA;AACA,CAAC;AAKI,MAAC,UAAU;AAAA,EACd,MAAM,OAAO,SAAS;AACpB,WAAO,MAAM,OAAO,KAAK,wBAAwB,OAAO,EAAE;AAAA,MACxD,cAAY;AACV,YAAI,SAAS,MAAM,SAAS;AAC5B,eAAO,QAAQ,QAAQ,SAAS,IAAI;AAAA,MACtC;AAAA,MACA,WAAS;AACP,iBAAS,KAAK;AACd,eAAO,QAAQ,OAAO,KAAK;AAAA,MAC7B;AAAA,IACN;AAAA,EACE;AAAA,EAEA,MAAM,KAAK,UAAU,IAAI;AAEvB,QAAI;AACF,YAAM,WAAW,MAAM,OAAO,IAAI,sBAAsB,EAAE,QAAQ,SAAS;AAE3E,UAAI,QAAQ,KAAK;AACf,cAAM,UAAU,EAAE,GAAG,SAAS,KAAK,CAAC,EAAC;AACrC,eAAO,QAAQ,QAAQ,SAAS,KAAK,CAAC,CAAC;AAAA,MACzC,OAAO;AACL,eAAO,QAAQ,QAAQ,SAAS,IAAI;AAAA,MACtC;AACA,aAAO,QAAQ,QAAQ,SAAS,IAAI;AAAA,IACtC,SAAS,OAAO;AACd,eAAS,KAAK;AACd,aAAO,QAAQ,OAAO,KAAK;AAAA,IAC7B;AAAA,EACF;AAAA,EAEA,MAAM,OAAO,KAAK,SAAS;AACzB,WAAO,MAAM,OAAO,KAAK,mBAAmB,KAAK,OAAO,EAAE;AAAA,MACxD,cAAY;AACV,eAAO,QAAQ,QAAQ,SAAS,IAAI;AAAA,MACtC;AAAA,MACA,WAAS;AACP,iBAAS,KAAK;AACd,eAAO,QAAQ,OAAO,KAAK;AAAA,MAC7B;AAAA,IACN;AAAA,EACE;AAAA,EAEA,MAAM,cAAc,KAAK;AACvB,WAAO,MAAM,OAAO,OAAO,mBAAmB,GAAG,EAAE;AAAA,MACjD,cAAY;AACV,eAAO,QAAQ,QAAQ,SAAS,IAAI;AAAA,MACtC;AAAA,MACA,WAAS;AACP,iBAAS,KAAK;AACd,eAAO,QAAQ,OAAO,KAAK;AAAA,MAC7B;AAAA,IACN;AAAA,EACE;AAAA,EAEA,MAAM,WAAW,aAAa,MAAM;AAClC,WAAO,OAAO,KAAK,4BAA4B,EAAE,MAAM,WAAU,CAAE,EAAE;AAAA,MACnE,cAAY;AACV,cAAM,UAAU,SAAS,KAAK;AAC9B,cAAM,QAAQ,iBAAiB,SAAS,KAAK;AAC7C,eAAO,QAAQ,QAAQ,SAAS,IAAI;AAAA,MACtC;AAAA,MACA,WAAS;AACP,iBAAS,KAAK;AACd,eAAO,QAAQ,OAAO,KAAK;AAAA,MAC7B;AAAA,IACN;AAAA,EACE;AAAA,EAEA,MAAM,gBAAgB;AACpB,WAAO,MAAM,OAAO,IAAI,oBAAoB,EAAE;AAAA,MAC5C,cAAY;AACV,cAAM,MAAM,SAAS;AACrB,eAAO,QAAQ,QAAQ,SAAS,IAAI;AAAA,MACtC;AAAA,MACA,WAAS;AACP,iBAAS,KAAK;AACd,eAAO,QAAQ,OAAO,KAAK;AAAA,MAC7B;AAAA,IACN;AAAA,EACE;AAAA,EAEA,MAAM,uBAAuB;AAC3B,WAAO,MAAM,OAAO,IAAI,uBAAuB,EAAE;AAAA,MAC/C,cAAY;AACV,cAAM,UAAU,SAAS;AACzB,eAAO,QAAQ,QAAQ,SAAS,IAAI;AAAA,MACtC;AAAA,MACA,WAAS;AACP,iBAAS,KAAK;AACd,eAAO,QAAQ,OAAO,KAAK;AAAA,MAC7B;AAAA,IACN;AAAA,EACE;AAAA,EAEA,MAAM,yBAAyB;AAC7B,WAAO,MAAM,OAAO,IAAI,eAAe,EAAE;AAAA,MACvC,cAAY;AACV,YAAI,mBAAmB,SAAS,KAAK,OAAO,SAAU,SAAS,OAAO;AACpE,iBAAO,QAAQ,WAAW;AAAA,QAC5B,CAAC;AAED,cAAM,MAAM;AACZ,cAAM,WAAW,iBAAiB,MAAK;AACvC,cAAM,gBAAgB,MAAM;AAE5B,cAAM,cAAc,KAAK,SAAU,GAAG,GAAG;AACvC,iBAAO,EAAE,MAAM,KAAK,OAAO,IAAI,EAAE,MAAM,KAAK,OAAO,IAAK,MAAM,KAAK,YAAY,IAAI,KAAM,EAAE,MAAM,KAAK,OAAO,IAAI,EAAE,MAAM,KAAK,OAAO,IAAK,MAAM,KAAK,YAAY,KAAK,IAAK;AAAA,QAC7K,CAAC;AAED,eAAO,QAAQ,QAAQ,SAAS,IAAI;AAAA,MACtC;AAAA,MACA,WAAS;AACP,iBAAS,KAAK;AACd,eAAO,QAAQ,OAAO,KAAK;AAAA,MAC7B;AAAA,IACN;AAAA,EACE;AAAA,EAEA,MAAM,sBAAsB;AAC1B,WAAO,MAAM,OAAO,IAAI,eAAe,EAAE;AAAA,MACvC,cAAY;AACV,cAAM,MAAM,SAAS,KAAK,MAAM,GAAG,CAAC;AACpC,eAAO,QAAQ,QAAQ,SAAS,KAAK,MAAM,GAAG,CAAC,CAAC;AAAA,MAClD;AAAA,MACA,WAAS;AACP,iBAAS,KAAK;AACd,eAAO,QAAQ,OAAO,KAAK;AAAA,MAC7B;AAAA,IACN;AAAA,EACE;AACF;AAEK,MAAC,YAAY;AAAA,EAChB,aAAa,SAAS;AACpB,UAAM,UAAU;AAAA,MACd,UAAU;AAAA,MACV,gBAAgB;AAAA,MAChB,UAAU,CAAA;AAAA,MACV,QAAQ;AAAA,MACR,YAAY,CAAA;AAAA,MACZ,QAAQ,CAAA;AAAA,MACR,OAAO,CAAA;AAAA,MACP,SAAS;AAAA,MACT,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,gBAAgB;AAAA,MAChB,cAAc,CAAA;AAAA,MACd,UAAU,CAAA;AAAA,MACV,aAAa,CAAA;AAAA,MACb,WAAW,CAAA;AAAA,MACX,aAAa,CAAA;AAAA,MACb,aAAa;AAAA,MACb,gBAAgB;AAAA,QACd,OAAO;AAAA,QACP,UAAU;AAAA,QACV,MAAM;AAAA,MACd;AAAA,IACA;AAAA,EACE;AACF;AAEA,SAAS,IAAI,SAAS,UAAU;AAC9B,QAAM,QAAQ,IAAI;AACpB;AAKK,MAAC,UAAU,CAAA;AAehB,MAAM,OAAO,CAAC,UAAU,aAAa;AAErC,CAAC;"}
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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"}