@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.
- package/dist/martyrs/src/components/Button/{Button.vue2.js → Button.vue.js} +3 -3
- package/dist/martyrs/src/components/Button/Button.vue.js.map +1 -0
- package/dist/martyrs/src/components/Feed/Carousel.vue.js +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.js +1 -1
- package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +1 -1
- package/dist/martyrs/src/components/Loader/{Loader.vue.js → Loader.vue2.js} +2 -2
- package/dist/martyrs/src/components/Loader/Loader.vue2.js.map +1 -0
- package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue.js +1 -1
- package/dist/martyrs/src/components/Media/Media.vue.js +1 -1
- package/dist/martyrs/src/components/Menu/{Menu.vue.js → Menu.vue2.js} +2 -2
- package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +1 -0
- package/dist/martyrs/src/components/Select/{Select.vue.js → Select.vue2.js} +2 -2
- package/dist/martyrs/src/components/Select/Select.vue2.js.map +1 -0
- package/dist/martyrs/src/components/SelectMulti/{SelectMulti.vue2.js → SelectMulti.vue.js} +2 -2
- package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue.js.map +1 -0
- package/dist/martyrs/src/components/UploadImage/UploadImage.vue.js +1 -1
- package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +1 -1
- package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +2 -2
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
- package/dist/martyrs/src/modules/core/views/components/blocks/CardHeader.vue.js +1 -1
- package/dist/martyrs/src/modules/core/views/components/blocks/PopupAuth.vue.js +1 -1
- package/dist/martyrs/src/modules/core/views/components/blocks/PopupDateSelector.vue.js +2 -2
- package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js +8 -7
- package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/partials/Header.vue.js +2 -2
- package/dist/martyrs/src/modules/core/views/components/partials/NavigationBar.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +3 -3
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/sections/EditTickets.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/sections/Feed.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/sections/List.vue.js +1 -1
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +3 -3
- package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +2 -2
- package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.js +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +2 -2
- package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/blocks/ActionButtons.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +3 -3
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/layouts/MusicBottomPlayer.vue.js +4 -4
- package/dist/martyrs/src/modules/music/components/layouts/MusicBottomPlayer.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/player/PlayerControls.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +3 -3
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +2 -2
- package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/elements/Image360.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +3 -3
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +3 -3
- package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +25 -38
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/products.client.js +15 -21
- package/dist/martyrs/src/modules/products/products.client.js.map +1 -1
- package/dist/martyrs/src/modules/products/router/products.router.js +0 -34
- package/dist/martyrs/src/modules/products/router/products.router.js.map +1 -1
- package/dist/martyrs/src/modules/products/store/products.js +0 -15
- package/dist/martyrs/src/modules/products/store/products.js.map +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +2 -2
- package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +2 -2
- package/dist/products.server.js +1 -130
- package/dist/style.css +0 -23
- package/package.json +1 -1
- package/src/modules/core/views/components/layouts/Client.vue +12 -6
- package/src/modules/music/components/layouts/MusicBottomPlayer.vue +1 -3
- package/src/modules/products/components/sections/SectionProduct.vue +2 -9
- package/src/modules/products/controllers/products.controller.js +0 -51
- package/src/modules/products/experiments/product-recommendation/README.md +156 -0
- package/src/modules/products/experiments/product-recommendation/controllers/recommendation.controller.js +59 -0
- package/src/modules/products/experiments/product-recommendation/router/recommendation.router.js +43 -0
- package/src/modules/products/experiments/product-recommendation/routes/recommendation.routes.js +10 -0
- package/src/modules/products/experiments/product-recommendation/store/recommendation.store.js +38 -0
- package/src/modules/products/products.client.js +0 -6
- package/src/modules/products/products.router.js +0 -29
- package/src/modules/products/router/products.router.js +0 -28
- package/src/modules/products/routes/products.routes.js +0 -2
- package/src/modules/products/store/products.js +0 -16
- package/dist/martyrs/src/components/Button/Button.vue2.js.map +0 -1
- package/dist/martyrs/src/components/Loader/Loader.vue.js.map +0 -1
- package/dist/martyrs/src/components/Menu/Menu.vue.js.map +0 -1
- package/dist/martyrs/src/components/Select/Select.vue.js.map +0 -1
- package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue2.js.map +0 -1
- package/dist/martyrs/src/components/Shader/Shader.vue.js +0 -2
- package/dist/martyrs/src/components/Shader/Shader.vue.js.map +0 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductRecommmendation.vue.js +0 -106
- package/dist/martyrs/src/modules/products/components/pages/ProductRecommmendation.vue.js.map +0 -1
- package/dist/martyrs/src/modules/products/components/sections/HeroRecommendation.vue.js +0 -120
- package/dist/martyrs/src/modules/products/components/sections/HeroRecommendation.vue.js.map +0 -1
- /package/src/modules/products/{components/sections → experiments/product-recommendation/components}/HeroRecommendation.vue +0 -0
- /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$
|
|
7
|
-
import _sfc_main$
|
|
8
|
-
import _sfc_main$
|
|
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$
|
|
16
|
-
import _sfc_main$
|
|
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$
|
|
44
|
+
Price: _sfc_main$a,
|
|
47
45
|
// Blocks
|
|
48
46
|
ProductImages,
|
|
49
|
-
CardCategory: _sfc_main$
|
|
50
|
-
CardProduct: _sfc_main$
|
|
47
|
+
CardCategory: _sfc_main$9,
|
|
48
|
+
CardProduct: _sfc_main$8,
|
|
51
49
|
Image360,
|
|
52
|
-
CardPosition: _sfc_main$
|
|
50
|
+
CardPosition: _sfc_main$7,
|
|
53
51
|
// Sections
|
|
54
|
-
SectionProduct: _sfc_main$
|
|
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$
|
|
70
|
-
_sfc_main$
|
|
71
|
-
_sfc_main$
|
|
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$
|
|
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$
|
|
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
|
|
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":";;;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,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,cACXA;AAAAA,cACA,CAAC,IAAI,MAAM,SAAS;AAClB,oBAAI,QAAQC,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,cACXD;AAAAA,cACA,CAAC,IAAI,MAAM,SAAS;AAClB,oBAAI,QAAQC,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,cACXD;AAAAA,cACA,CAAC,IAAI,MAAM,SAAS;AAClB,oBAAI,QAAQC,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,cACXD;AAAAA,cACA,CAAC,IAAI,MAAM,SAAS;AAClB,oBAAI,QAAQC,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,QACA;AAAA,MACA;AAAA,IACA,CAAK;AAAA,EACH;AAEA,SAAO;AACT;"}
|
|
@@ -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.
|
|
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.
|
|
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.
|
|
4
|
-
import Select from "../../../../components/Select/Select.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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";
|
package/dist/products.server.js
CHANGED
|
@@ -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
|
}
|