@ozdao/prometheus-framework 0.2.252 → 0.2.254
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/auth.server.js +298 -14
- package/dist/auth.server.mjs +298 -14
- package/dist/builder.js +4 -4
- package/dist/builder.mjs +4 -4
- package/dist/chats.server.js +110 -0
- package/dist/chats.server.mjs +111 -0
- package/dist/community.server.js +38 -21
- package/dist/community.server.mjs +38 -21
- package/dist/events.server.js +38 -18
- package/dist/events.server.mjs +38 -17
- package/dist/files.server.js +12 -3
- package/dist/files.server.mjs +12 -3
- package/dist/gallery.server.js +17 -4
- package/dist/gallery.server.mjs +17 -4
- package/dist/organizations.server.js +43 -26
- package/dist/organizations.server.mjs +43 -26
- package/dist/products.server.js +49 -23
- package/dist/products.server.mjs +49 -22
- package/dist/prometheus-framework/src/modules/auth/auth.client.cjs +15 -3
- package/dist/prometheus-framework/src/modules/auth/auth.client.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/auth/auth.client.js +16 -4
- package/dist/prometheus-framework/src/modules/auth/auth.client.js.map +1 -1
- package/dist/prometheus-framework/src/modules/auth/views/components/blocks/CardUser.vue.cjs +95 -0
- package/dist/prometheus-framework/src/modules/auth/views/components/blocks/CardUser.vue.cjs.map +1 -0
- package/dist/prometheus-framework/src/modules/auth/views/components/blocks/CardUser.vue.js +95 -0
- package/dist/prometheus-framework/src/modules/auth/views/components/blocks/CardUser.vue.js.map +1 -0
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/Profile.vue.cjs +284 -0
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/Profile.vue.cjs.map +1 -0
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/Profile.vue.js +284 -0
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/Profile.vue.js.map +1 -0
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/Profile.vue2.cjs +2 -0
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/Profile.vue2.cjs.map +1 -0
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/Profile.vue2.js +2 -0
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/Profile.vue2.js.map +1 -0
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/ProfileBlogposts.vue.cjs +85 -0
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/ProfileBlogposts.vue.cjs.map +1 -0
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js +85 -0
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js.map +1 -0
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/ProfileEdit.vue.cjs +176 -0
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/ProfileEdit.vue.cjs.map +1 -0
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/ProfileEdit.vue.js +176 -0
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/ProfileEdit.vue.js.map +1 -0
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/ProfileEdit.vue2.cjs +2 -0
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/ProfileEdit.vue2.cjs.map +1 -0
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/ProfileEdit.vue2.js +2 -0
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/ProfileEdit.vue2.js.map +1 -0
- package/dist/prometheus-framework/src/modules/auth/views/components/sections/FeaturedUsers.vue.cjs +114 -0
- package/dist/prometheus-framework/src/modules/auth/views/components/sections/FeaturedUsers.vue.cjs.map +1 -0
- package/dist/prometheus-framework/src/modules/auth/views/components/sections/FeaturedUsers.vue.js +114 -0
- package/dist/prometheus-framework/src/modules/auth/views/components/sections/FeaturedUsers.vue.js.map +1 -0
- package/dist/prometheus-framework/src/modules/auth/views/components/sections/ProfileCompletion.vue.cjs +72 -0
- package/dist/prometheus-framework/src/modules/auth/views/components/sections/ProfileCompletion.vue.cjs.map +1 -0
- package/dist/prometheus-framework/src/modules/auth/views/components/sections/ProfileCompletion.vue.js +72 -0
- package/dist/prometheus-framework/src/modules/auth/views/components/sections/ProfileCompletion.vue.js.map +1 -0
- package/dist/prometheus-framework/src/modules/auth/views/router/users.cjs +97 -0
- package/dist/prometheus-framework/src/modules/auth/views/router/users.cjs.map +1 -0
- package/dist/prometheus-framework/src/modules/auth/views/router/users.js +97 -0
- package/dist/prometheus-framework/src/modules/auth/views/router/users.js.map +1 -0
- package/dist/prometheus-framework/src/modules/auth/views/store/users.cjs +95 -0
- package/dist/prometheus-framework/src/modules/auth/views/store/users.cjs.map +1 -0
- package/dist/prometheus-framework/src/modules/auth/views/store/users.js +95 -0
- package/dist/prometheus-framework/src/modules/auth/views/store/users.js.map +1 -0
- package/dist/prometheus-framework/src/modules/backoffice/backoffice.client.cjs +32 -2
- package/dist/prometheus-framework/src/modules/backoffice/backoffice.client.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/backoffice/backoffice.client.js +32 -2
- package/dist/prometheus-framework/src/modules/backoffice/backoffice.client.js.map +1 -1
- package/dist/prometheus-framework/src/modules/backoffice/router/backoffice.cjs +2 -2
- package/dist/prometheus-framework/src/modules/backoffice/router/backoffice.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/backoffice/router/backoffice.js +2 -2
- package/dist/prometheus-framework/src/modules/backoffice/router/backoffice.js.map +1 -1
- package/dist/prometheus-framework/src/modules/chats/chats.client.cjs +31 -0
- package/dist/prometheus-framework/src/modules/chats/chats.client.cjs.map +1 -0
- package/dist/prometheus-framework/src/modules/chats/chats.client.js +31 -0
- package/dist/prometheus-framework/src/modules/chats/chats.client.js.map +1 -0
- package/dist/prometheus-framework/src/modules/community/community.client.cjs +42 -7
- package/dist/prometheus-framework/src/modules/community/community.client.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/community/community.client.js +59 -24
- package/dist/prometheus-framework/src/modules/community/community.client.js.map +1 -1
- package/dist/prometheus-framework/src/modules/community/router/blogposts.cjs +68 -70
- package/dist/prometheus-framework/src/modules/community/router/blogposts.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/community/router/blogposts.js +68 -70
- package/dist/prometheus-framework/src/modules/community/router/blogposts.js.map +1 -1
- package/dist/prometheus-framework/src/modules/gallery/gallery.client.cjs +26 -3
- package/dist/prometheus-framework/src/modules/gallery/gallery.client.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/gallery/gallery.client.js +27 -4
- package/dist/prometheus-framework/src/modules/gallery/gallery.client.js.map +1 -1
- package/dist/prometheus-framework/src/modules/gallery/router/gallery.router.cjs +2 -2
- package/dist/prometheus-framework/src/modules/gallery/router/gallery.router.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/gallery/router/gallery.router.js +2 -2
- package/dist/prometheus-framework/src/modules/gallery/router/gallery.router.js.map +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreate.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreate.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreate.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreate.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/sections/FormAddCustomer.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/orders/components/sections/FormAddCustomer.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/sections/FormAddCustomer.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/orders/components/sections/FormAddCustomer.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/orders/orders.client.cjs +4 -1
- package/dist/prometheus-framework/src/modules/orders/orders.client.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/orders/orders.client.js +4 -1
- package/dist/prometheus-framework/src/modules/orders/orders.client.js.map +1 -1
- package/dist/prometheus-framework/src/modules/orders/store/testimonials.cjs +63 -0
- package/dist/prometheus-framework/src/modules/orders/store/testimonials.cjs.map +1 -0
- package/dist/prometheus-framework/src/modules/orders/store/testimonials.js +63 -0
- package/dist/prometheus-framework/src/modules/orders/store/testimonials.js.map +1 -0
- package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardDepartment.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardDepartment.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardDepartment.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardDepartment.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardOrganization.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardOrganization.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardOrganization.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardOrganization.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Department.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Department.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Department.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Department.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/DepartmentEdit.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/DepartmentEdit.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Members.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Members.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Members.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Members.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Organization.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Organization.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/sections/MembersAdd.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/organizations/components/sections/MembersAdd.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/sections/MembersAdd.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/organizations/components/sections/MembersAdd.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/organizations/organizations.client.cjs +60 -11
- package/dist/prometheus-framework/src/modules/organizations/organizations.client.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/organizations/organizations.client.js +95 -46
- package/dist/prometheus-framework/src/modules/organizations/organizations.client.js.map +1 -1
- package/dist/prometheus-framework/src/modules/organizations/router/organizations.cjs +6 -10
- package/dist/prometheus-framework/src/modules/organizations/router/organizations.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/organizations/router/organizations.js +8 -12
- package/dist/prometheus-framework/src/modules/organizations/router/organizations.js.map +1 -1
- package/dist/prometheus-framework/src/modules/pages/pages.client.cjs +500 -500
- package/dist/prometheus-framework/src/modules/pages/pages.client.js +500 -500
- package/dist/prometheus-framework/src/modules/products/components/layouts/Marketplace.vue.cjs +179 -0
- package/dist/prometheus-framework/src/modules/products/components/layouts/Marketplace.vue.cjs.map +1 -0
- package/dist/prometheus-framework/src/modules/products/components/layouts/Marketplace.vue.js +179 -0
- package/dist/prometheus-framework/src/modules/products/components/layouts/Marketplace.vue.js.map +1 -0
- package/dist/prometheus-framework/src/modules/products/components/pages/Catalog.vue.cjs +64 -0
- package/dist/prometheus-framework/src/modules/products/components/pages/Catalog.vue.cjs.map +1 -0
- package/dist/prometheus-framework/src/modules/products/components/pages/Catalog.vue.js +64 -0
- package/dist/prometheus-framework/src/modules/products/components/pages/Catalog.vue.js.map +1 -0
- package/dist/prometheus-framework/src/modules/products/components/pages/ProductRecommmendation.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/products/components/pages/ProductRecommmendation.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/products/components/pages/Products.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/products/components/pages/Products.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/Products.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/products/components/pages/Products.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/FilterProducts.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/FilterProducts.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/FilterProducts.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/FilterProducts.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/Filters.vue.cjs +156 -0
- package/dist/prometheus-framework/src/modules/products/components/sections/Filters.vue.cjs.map +1 -0
- package/dist/prometheus-framework/src/modules/products/components/sections/Filters.vue.js +157 -0
- package/dist/prometheus-framework/src/modules/products/components/sections/Filters.vue.js.map +1 -0
- package/dist/prometheus-framework/src/modules/products/components/sections/HeroRecommendation.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/HeroRecommendation.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/HeroRecommendation.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/HeroRecommendation.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/PopularProducts.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/PopularProducts.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/PopularProducts.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/PopularProducts.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/products/products.client.cjs +72 -7
- package/dist/prometheus-framework/src/modules/products/products.client.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/products/products.client.js +114 -49
- package/dist/prometheus-framework/src/modules/products/products.client.js.map +1 -1
- package/dist/prometheus-framework/src/modules/products/router/marketplace.router.cjs +46 -0
- package/dist/prometheus-framework/src/modules/products/router/marketplace.router.cjs.map +1 -0
- package/dist/prometheus-framework/src/modules/products/router/marketplace.router.js +46 -0
- package/dist/prometheus-framework/src/modules/products/router/marketplace.router.js.map +1 -0
- package/dist/prometheus-framework/src/modules/products/router/products.router.cjs +79 -36
- package/dist/prometheus-framework/src/modules/products/router/products.router.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/products/router/products.router.js +78 -35
- package/dist/prometheus-framework/src/modules/products/router/products.router.js.map +1 -1
- package/dist/prometheus-framework/src/modules/products/store/marketplace.cjs +57 -0
- package/dist/prometheus-framework/src/modules/products/store/marketplace.cjs.map +1 -0
- package/dist/prometheus-framework/src/modules/products/store/marketplace.js +57 -0
- package/dist/prometheus-framework/src/modules/products/store/marketplace.js.map +1 -0
- package/dist/prometheus-framework/src/modules/reports/reports.client.cjs +21 -2
- package/dist/prometheus-framework/src/modules/reports/reports.client.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/reports/reports.client.js +20 -1
- package/dist/prometheus-framework/src/modules/reports/reports.client.js.map +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/layouts/Spots.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/layouts/Spots.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/layouts/Spots.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/layouts/Spots.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/pages/Map.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/spots/components/pages/Map.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/pages/Map.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/spots/components/pages/Map.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/pages/Spot.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/spots/components/pages/Spot.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/pages/Spot.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/spots/components/pages/Spot.vue.js.map +1 -1
- package/dist/reports.server.js +21 -8
- package/dist/reports.server.mjs +21 -8
- package/package.json +9 -1
- package/src/builder/webpack/webpack.config.client.js +2 -2
- package/src/builder/webpack/webpack.config.server.js +1 -1
- package/src/builder/webpack/webpack.config.spa.js +1 -1
- package/src/builder/webpack/webpack.config.ssr.js +1 -1
- package/src/modules/auth/auth.client.js +16 -3
- package/src/modules/auth/auth.server.js +22 -1
- package/src/modules/{users → auth/controllers}/routes/users.routes.js +1 -1
- package/src/modules/auth/controllers/services/auth.service.js +0 -1
- package/src/modules/{users → auth/views}/components/pages/Profile.vue +1 -1
- package/src/modules/{users → auth/views}/components/pages/ProfileEdit.vue +2 -2
- package/src/modules/{users → auth/views}/components/sections/FeaturedUsers.vue +2 -2
- package/src/modules/auth/views/router/users.js +79 -0
- package/src/modules/backoffice/backoffice.client.js +53 -11
- package/src/modules/backoffice/router/backoffice.js +29 -2
- package/src/modules/chats/chats.client.js +48 -0
- package/src/modules/chats/chats.server.js +32 -0
- package/src/modules/community/community.client.js +56 -10
- package/src/modules/community/community.server.js +35 -14
- package/src/modules/community/models/comment.model.js +7 -7
- package/src/modules/community/models/reaction.model.js +5 -5
- package/src/modules/community/router/blogposts.js +55 -57
- package/src/modules/events/events.server.js +37 -16
- package/src/modules/events/models/ticket.model.js +6 -6
- package/src/modules/files/files.server.js +17 -7
- package/src/modules/gallery/gallery.client.js +44 -8
- package/src/modules/gallery/gallery.server.js +28 -9
- package/src/modules/gallery/router/gallery.router.js +2 -2
- package/src/modules/orders/components/pages/OrderCreate.vue +1 -1
- package/src/modules/orders/components/pages/OrderCreateBackoffice.vue +1 -1
- package/src/modules/orders/components/sections/FormAddCustomer.vue +2 -2
- package/src/modules/orders/orders.client.js +4 -1
- package/src/modules/orders/orders.server.js +1 -0
- package/src/modules/organizations/components/blocks/CardDepartment.vue +1 -1
- package/src/modules/organizations/components/blocks/CardOrganization.vue +1 -1
- package/src/modules/organizations/components/pages/Department.vue +1 -1
- package/src/modules/organizations/components/pages/DepartmentEdit.vue +1 -1
- package/src/modules/organizations/components/pages/Members.vue +1 -1
- package/src/modules/organizations/components/pages/Organization.vue +1 -1
- package/src/modules/organizations/components/sections/MembersAdd.vue +2 -2
- package/src/modules/organizations/controllers/organizations.controller.js +0 -2
- package/src/modules/organizations/models/department.model.js +7 -7
- package/src/modules/organizations/models/membership.model.js +5 -5
- package/src/modules/organizations/organizations.client.js +71 -16
- package/src/modules/organizations/organizations.server.js +43 -18
- package/src/modules/organizations/router/organizations.js +6 -13
- package/src/modules/{marketplace → products}/components/layouts/Marketplace.vue +20 -19
- package/src/modules/{marketplace → products}/components/pages/Catalog.vue +5 -5
- package/src/modules/products/components/pages/Products.vue +2 -2
- package/src/modules/products/components/sections/FilterProducts.vue +1 -1
- package/src/modules/{marketplace → products}/components/sections/Filters.vue +12 -15
- package/src/modules/products/components/sections/HeroRecommendation.vue +1 -1
- package/src/modules/products/components/sections/PopularProducts.vue +1 -1
- package/src/modules/products/models/category.model.js +3 -3
- package/src/modules/products/models/product.model.js +7 -7
- package/src/modules/products/products.client.js +93 -25
- package/src/modules/products/products.server.js +47 -16
- package/src/modules/products/router/marketplace.router.js +38 -0
- package/src/modules/products/router/products.router.js +72 -32
- package/src/modules/reports/models/report.model.js +4 -4
- package/src/modules/reports/reports.client.js +35 -14
- package/src/modules/reports/reports.server.js +27 -8
- package/src/modules/spots/components/layouts/Spots.vue +1 -1
- package/src/modules/spots/components/pages/Map.vue +1 -1
- package/src/modules/spots/components/pages/Spot.vue +1 -1
- package/src/modules/backoffice/router/admin.js +0 -51
- package/src/modules/landing/components/pages/404.vue +0 -3
- package/src/modules/landing/components/pages/Farming.vue +0 -226
- package/src/modules/landing/components/pages/Governance.vue +0 -144
- package/src/modules/landing/components/pages/Home.vue +0 -51
- package/src/modules/landing/components/pages/Hotel.vue +0 -43
- package/src/modules/landing/router/landing.js +0 -39
- package/src/modules/legal/components/pages/Legal.vue +0 -62
- package/src/modules/legal/components/pages/legal/Cookies.vue +0 -370
- package/src/modules/legal/components/pages/legal/EULA.vue +0 -2145
- package/src/modules/legal/components/pages/legal/Privacy.vue +0 -4284
- package/src/modules/legal/components/pages/legal/Terms.vue +0 -1283
- package/src/modules/legal/legal.client.js +0 -18
- package/src/modules/legal/router/legal.js +0 -59
- package/src/modules/marketplace/router/marketplace.js +0 -54
- package/src/modules/users/router/users.js +0 -90
- package/src/modules/users/users.client.js +0 -22
- package/src/modules/users/users.server.js +0 -13
- /package/src/modules/{users → auth/controllers}/middlewares/visitor.logger.js +0 -0
- /package/src/modules/{users/controllers/users.controller.js → auth/controllers/services/users.service.js} +0 -0
- /package/src/modules/{users → auth}/models/request.model.js +0 -0
- /package/src/modules/{users → auth}/models/user.model.js +0 -0
- /package/src/modules/{users → auth}/models/visitor.model.js +0 -0
- /package/src/modules/{users → auth/views}/components/blocks/CardUser.vue +0 -0
- /package/src/modules/{users → auth/views}/components/pages/ProfileBlogposts.vue +0 -0
- /package/src/modules/{users → auth/views}/components/pages/ProfileComments.vue +0 -0
- /package/src/modules/{users → auth/views}/components/pages/ProfileLikes.vue +0 -0
- /package/src/modules/{users → auth/views}/components/sections/ProfileCompletion.vue +0 -0
- /package/src/modules/{users → auth/views}/router/account.js +0 -0
- /package/src/modules/{users → auth/views}/store/users.js +0 -0
- /package/src/modules/{projects/controller → governance/controllers/factories}/projects.controller.js +0 -0
- /package/src/modules/{projects → governance/controllers}/routes/projects.routes.js +0 -0
- /package/src/modules/{projects → governance}/models/project.model.js +0 -0
- /package/src/modules/{projects → governance/views}/store/projects.js +0 -0
- /package/src/modules/{marketplace → products}/store/marketplace.js +0 -0
@@ -5,7 +5,7 @@ import _sfc_main$3 from "../../../../components/Feed/Feed.vue.js";
|
|
5
5
|
/* empty css */
|
6
6
|
import "vue-i18n";
|
7
7
|
import { actions } from "../../store/categories.js";
|
8
|
-
import { state } from "
|
8
|
+
import { state } from "../../store/marketplace.js";
|
9
9
|
/* empty css */
|
10
10
|
/* empty css */
|
11
11
|
import _sfc_main$2 from "../../../globals/views/components/blocks/BlockFilter.vue.js";
|
@@ -139,7 +139,7 @@ const _sfc_main = {
|
|
139
139
|
user: state$2.access,
|
140
140
|
class: "h-max",
|
141
141
|
onClickCapture: ($event) => _ctx.$router.push({
|
142
|
-
name: "
|
142
|
+
name: "Organization_Product",
|
143
143
|
params: {
|
144
144
|
_id: unref(route).params._id,
|
145
145
|
product: product._id
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Products.vue.js","sources":["../../../../../../../src/modules/products/components/pages/Products.vue"],"sourcesContent":["<template>\n <div>\n <header \n v-if=\"route.name !== 'Organization'\"\n class=\"mn-b-medium flex-v-center flex-nowrap flex\"\n >\n <h2 class=\"mn-r-medium\">Products</h2>\n <button \n @click=\"$router.push({\n name: 'ProductAdd'\n })\" \n class=\"radius-100 i-big hover-scale-1 cursor-pointer t-white bg-second\">\n +\n </button>\n </header>\n\n <Tab \n v-if=\"route.name !== 'Organization'\"\n v-model:selected=\"tabProducts\"\n :tabs=\"[\n { name: 'All', value: 'all' },\n { name: 'Published', value: 'published' },\n { name: 'Unpublished', value: 'unpublished' }, \n { name: 'Archivied', value: 'archivied' } \n ]\"\n class=\"mn-b-small o-hidden h5 radius-big bg-light\"\n />\n\n <div class=\"cols-2-1_3 bg-light pd-thin radius-big gap-thin\">\n\n <BlockFilter\n v-model:filter=\"marketplace.state.filter\"\n :options=\"marketplace.state.filter.options\"\n class=\"h-100 w-100 desktop-only\"\n />\n\n\n <div class=\"rows-1\">\n <!-- <BlockSearch \n @search=\"updateSearch\"\n placeholder=\"Enter product name\"\n class=\"bg-white mn-b-thin\"\n /> -->\n <Feed\n v-model:filter=\"marketplace.state.filter\"\n :search=\"true\"\n :states=\"{\n empty: {\n title: 'No Products Found',\n description: 'Currently, there are no products available.'\n }\n }\"\n :store=\"{\n read: (options) => products.actions.read(options),\n state: products.state\n }\"\n :options=\"{\n limit: 15,\n organization: route.params._id,\n categories: route.query.categories,\n prices: route.query.prices,\n delivery: route.query.delivery,\n // search: route.query.search,\n ...(tabProducts !== 'all' && { status: tabProducts })\n // user: user\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"cols-4 gap-thin\"\n >\n <CardProduct\n v-for=\"product in items\"\n :key=\"product._id\"\n :product=\"product\"\n :user=\"auth.state.access\"\n class=\"h-max\"\n @click.capture=\"$router.push({\n name: '
|
1
|
+
{"version":3,"file":"Products.vue.js","sources":["../../../../../../../src/modules/products/components/pages/Products.vue"],"sourcesContent":["<template>\n <div>\n <header \n v-if=\"route.name !== 'Organization'\"\n class=\"mn-b-medium flex-v-center flex-nowrap flex\"\n >\n <h2 class=\"mn-r-medium\">Products</h2>\n <button \n @click=\"$router.push({\n name: 'ProductAdd'\n })\" \n class=\"radius-100 i-big hover-scale-1 cursor-pointer t-white bg-second\">\n +\n </button>\n </header>\n\n <Tab \n v-if=\"route.name !== 'Organization'\"\n v-model:selected=\"tabProducts\"\n :tabs=\"[\n { name: 'All', value: 'all' },\n { name: 'Published', value: 'published' },\n { name: 'Unpublished', value: 'unpublished' }, \n { name: 'Archivied', value: 'archivied' } \n ]\"\n class=\"mn-b-small o-hidden h5 radius-big bg-light\"\n />\n\n <div class=\"cols-2-1_3 bg-light pd-thin radius-big gap-thin\">\n\n <BlockFilter\n v-model:filter=\"marketplace.state.filter\"\n :options=\"marketplace.state.filter.options\"\n class=\"h-100 w-100 desktop-only\"\n />\n\n\n <div class=\"rows-1\">\n <!-- <BlockSearch \n @search=\"updateSearch\"\n placeholder=\"Enter product name\"\n class=\"bg-white mn-b-thin\"\n /> -->\n <Feed\n v-model:filter=\"marketplace.state.filter\"\n :search=\"true\"\n :states=\"{\n empty: {\n title: 'No Products Found',\n description: 'Currently, there are no products available.'\n }\n }\"\n :store=\"{\n read: (options) => products.actions.read(options),\n state: products.state\n }\"\n :options=\"{\n limit: 15,\n organization: route.params._id,\n categories: route.query.categories,\n prices: route.query.prices,\n delivery: route.query.delivery,\n // search: route.query.search,\n ...(tabProducts !== 'all' && { status: tabProducts })\n // user: user\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"cols-4 gap-thin\"\n >\n <CardProduct\n v-for=\"product in items\"\n :key=\"product._id\"\n :product=\"product\"\n :user=\"auth.state.access\"\n class=\"h-max\"\n @click.capture=\"$router.push({\n name: 'Organization_Product', \n params: { \n _id: route.params._id, \n product: product._id \n } \n })\" \n />\n </Feed>\n </div>\n </div>\n</div>\n</template>\n\n\n<script setup=\"props\">\n // Import libs\n import { computed, watch, onMounted, ref } from 'vue'\n import { useRoute, useRouter } from 'vue-router'\n\n // Import components\n import Tab from '@pf/src/components/Tab/Tab.vue'\n import Feed from '@pf/src/components/Feed/Feed.vue'\n\n import FilterProducts from '@pf/src/modules/products/components/sections/FilterProducts.vue'\n import BlockSearch from '@pf/src/modules/globals/views/components/blocks/BlockSearch.vue'\n import BlockFilter from '@pf/src/modules/globals/views/components/blocks/BlockFilter.vue'\n\n import CardProduct from '@pf/src/modules/products/components/blocks/CardProduct.vue'\n\n // Accessing router and store\n import * as auth from '@pf/src/modules/auth/views/store/auth';\n import * as products from '@pf/src/modules/products/store/products';\n import * as marketplace from '@pf/src/modules/products/store/marketplace';\n import * as categories from '@pf/src/modules/products/store/categories';\n\n const route = useRoute()\n const router = useRouter()\n\n // Tab logic\n const tabProducts = ref(route.query.tabProducts ? route.query.tabProducts : 'all')\n\n if (route.name !== 'Organization') route.query.tabProducts = tabProducts.value\n \n if (route.query) {\n const query = route.query;\n\n marketplace.state.filter.selected.categories = query.categories ? query.categories.split(',') : [];\n marketplace.state.filter.selected.prices = query.prices ? query.prices.split(',') : [];\n marketplace.state.filter.selected.delivery = query.delivery ? query.delivery.split(',') : [];\n }\n\n\n watch(tabProducts, (newValue) => {\n if (route.name !== 'Organization') router.replace({ query: { ...route.query, tabProducts: newValue } });\n });\n\n onMounted(async () => {\n let categoriesFilter = await categories.actions.fetchCategories();\n\n categoriesFilter = categoriesFilter.map(category => ({\n value: category.url,\n label: category.name\n }));\n\n const index = marketplace.state.filter.options.findIndex(option => option.value === 'categories');\n\n const categoryOption = {\n title: 'Categories',\n value: 'categories',\n options: categoriesFilter\n };\n\n if (index !== -1) {\n marketplace.state.filter.options[index] = categoryOption;\n } else {\n marketplace.state.filter.options.unshift(categoryOption);\n }\n })\n\n watch(() => marketplace.state.sort, (newSortValue, oldSortValue) => {\n let query = { ...route.query}\n \n query.sortParam = newSortValue.param\n query.sortOrder = newSortValue.order\n \n // replace the current route\n router.replace({ query });\n }, { deep: true });\n\n\n watch(() => marketplace.state.filter.selected, (newFilterValue, oldFilterValue) => {\n // Переводим фильтр в формат query\n const query = { ...route.query };\n\n // Удаляем старые значения фильтра из query\n Object.keys(oldFilterValue).forEach(key => {\n if (query[key]) {\n delete query[key];\n }\n });\n\n // Добавляем новые значения фильтра в query\n const newQueryValues = Object.fromEntries(\n Object.entries(newFilterValue)\n .filter(([key, value]) => Array.isArray(value) && value.length > 0)\n .map(([key, value]) => [key, value.join(',')])\n );\n\n delete query.options;\n Object.assign(query, newQueryValues);\n\n // Обновляем маршрут с новым query\n router.replace({ query });\n }, { deep: true })\n\n\n\n \n function updateSearch(search) {\n let query = { ...route.query}\n \n query.search = search\n \n router.replace({ query });\n }\n</script>\n\n<style lang=\"scss\">\n\n\n</style>\n"],"names":["marketplace.state","categories.actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAiHE,UAAM,QAAQ,SAAU;AACxB,UAAM,SAAS,UAAW;AAG1B,UAAM,cAAc,IAAI,MAAM,MAAM,cAAc,MAAM,MAAM,cAAc,KAAK;AAEjF,QAAI,MAAM,SAAS,eAAgB,OAAM,MAAM,cAAc,YAAY;AAEzE,QAAI,MAAM,OAAO;AACf,YAAM,QAAQ,MAAM;AAEpBA,YAAkB,OAAO,SAAS,aAAa,MAAM,aAAa,MAAM,WAAW,MAAM,GAAG,IAAI,CAAA;AAChGA,YAAkB,OAAO,SAAS,SAAS,MAAM,SAAS,MAAM,OAAO,MAAM,GAAG,IAAI,CAAA;AACpFA,YAAkB,OAAO,SAAS,WAAW,MAAM,WAAW,MAAM,SAAS,MAAM,GAAG,IAAI,CAAA;AAAA,IAC3F;AAGD,UAAM,aAAa,CAAC,aAAa;AAC/B,UAAI,MAAM,SAAS,eAAgB,QAAO,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,aAAa,SAAQ,EAAI,CAAA;AAAA,IAC1G,CAAG;AAED,cAAU,YAAY;AACpB,UAAI,mBAAmB,MAAMC,QAAmB;AAEhD,yBAAmB,iBAAiB,IAAI,eAAa;AAAA,QACnD,OAAO,SAAS;AAAA,QAChB,OAAO,SAAS;AAAA,MACjB,EAAC;AAEF,YAAM,QAAQD,MAAkB,OAAO,QAAQ,UAAU,YAAU,OAAO,UAAU,YAAY;AAEhG,YAAM,iBAAiB;AAAA,QACrB,OAAO;AAAA,QACP,OAAO;AAAA,QACP,SAAS;AAAA,MACf;AAEI,UAAI,UAAU,IAAI;AACdA,cAAkB,OAAO,QAAQ,KAAK,IAAI;AAAA,MAClD,OAAW;AACHA,cAAkB,OAAO,QAAQ,QAAQ,cAAc;AAAA,MAC1D;AAAA,IACL,CAAG;AAED,UAAM,MAAMA,MAAkB,MAAM,CAAC,cAAc,iBAAiB;AAClE,UAAI,QAAQ,EAAE,GAAG,MAAM,MAAK;AAE5B,YAAM,YAAY,aAAa;AAC/B,YAAM,YAAY,aAAa;AAG/B,aAAO,QAAQ,EAAE,MAAK,CAAE;AAAA,IAC5B,GAAK,EAAE,MAAM,KAAI,CAAE;AAGjB,UAAM,MAAMA,MAAkB,OAAO,UAAU,CAAC,gBAAgB,mBAAmB;AAEjF,YAAM,QAAQ,EAAE,GAAG,MAAM,MAAK;AAG9B,aAAO,KAAK,cAAc,EAAE,QAAQ,SAAO;AACzC,YAAI,MAAM,GAAG,GAAG;AACd,iBAAO,MAAM,GAAG;AAAA,QACjB;AAAA,MACP,CAAK;AAGD,YAAM,iBAAiB,OAAO;AAAA,QAC5B,OAAO,QAAQ,cAAc,EAC1B,OAAO,CAAC,CAAC,KAAK,KAAK,MAAM,MAAM,QAAQ,KAAK,KAAK,MAAM,SAAS,CAAC,EACjE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,MAAM,KAAK,GAAG,CAAC,CAAC;AAAA,MACrD;AAEI,aAAO,MAAM;AACb,aAAO,OAAO,OAAO,cAAc;AAGnC,aAAO,QAAQ,EAAE,MAAK,CAAE;AAAA,IAC5B,GAAK,EAAE,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/prometheus-framework/src/modules/products/components/sections/FilterProducts.vue.cjs
CHANGED
@@ -6,7 +6,7 @@ const Checkbox = require("../../../../components/Checkbox/Checkbox.vue.cjs");
|
|
6
6
|
const vueI18n = require("vue-i18n");
|
7
7
|
const vueRouter = require("vue-router");
|
8
8
|
const categories = require("../../store/categories.cjs");
|
9
|
-
const marketplace = require("
|
9
|
+
const marketplace = require("../../store/marketplace.cjs");
|
10
10
|
;/* empty css */
|
11
11
|
const _hoisted_1 = { class: "pd-medium bg-light radius-big" };
|
12
12
|
const _hoisted_2 = { class: "cursor-pointer mn-r-auto t-medium p-big" };
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"FilterProducts.vue.cjs","sources":["../../../../../../../src/modules/products/components/sections/FilterProducts.vue"],"sourcesContent":[" <template>\n <div class=\"pd-medium bg-light radius-big\">\n <!-- Categories Filter -->\n <Spoiler \n class=\"radius-small o-hidden mn-b-small\"\n :status=\"true\"\n >\n <template #header>\n <p class=\"cursor-pointer mn-r-auto t-medium p-big\">{{ t('categoriesTitle') }}</p>\n <!-- SVG Icon -->\n </template>\n <template #content>\n <Checkbox \n v-for=\"(category, index) in categories.state.all\"\n :key=\"index\"\n :label=\"category.name\"\n :value=\"category.url\"\n class=\"w-100 mn-t-small mn-b-small bg-white radius-small pd-small\"\n :radio=\"marketplace.state.filter.categories\"\n @update:radio=\"event => marketplace.state.filter.categories = event\"\n />\n </template>\n </Spoiler>\n\n <hr class=\"mn-b-small t-transp\">\n\n <!-- Prices Filter -->\n <Spoiler \n class=\"radius-small o-hidden mn-b-small\"\n :status=\"false\"\n >\n <template #header>\n <p class=\"cursor-pointer mn-r-auto t-medium p-big\">{{ t('filters.price.title') }}</p>\n <!-- SVG Icon -->\n </template>\n <template #content>\n <Checkbox \n v-for=\"(price, index) in prices\"\n :key=\"index\"\n :label=\"price.label\"\n :value=\"price.value\"\n class=\"w-100 mn-t-small bg-white radius-small pd-small\"\n :radio=\"marketplace.state.filter.prices\"\n @update:radio=\"event => marketplace.state.filter.prices = event\"\n />\n </template>\n </Spoiler>\n\n <hr class=\"mn-b-small\">\n\n <!-- Delivery Filter -->\n <Spoiler \n class=\"radius-small o-hidden mn-b-small\"\n :status=\"false\"\n >\n <template #header>\n <p class=\"cursor-pointer mn-r-auto t-medium p-big\">Delivery</p>\n </template>\n <template #content>\n <Checkbox \n v-for=\"(deliveryOption, index) in deliveryOptions\"\n :key=\"index\"\n :label=\"deliveryOption.label\"\n :value=\"deliveryOption.value\"\n class=\"w-100 mn-t-small bg-white radius-small pd-small\"\n :radio=\"marketplace.state.filter.delivery\"\n @update:radio=\"event => marketplace.state.filter.delivery = event\"\n />\n </template>\n </Spoiler>\n\n <hr class=\"mn-b-semi\">\n\n <!-- Reset filter -->\n <button @click=\"resetFilters\" class=\"bg-main w-100 button\">{{ t('filters.reset') }}</button>\n </div>\n </template>\n\n<script setup>\nimport { ref, watch, onMounted } from 'vue'\n\nimport Spoiler from \"@pf/src/components/Spoiler/Spoiler.vue\"\nimport Checkbox from \"@pf/src/components/Checkbox/Checkbox.vue\"\n\nimport { useI18n } from 'vue-i18n'\nimport { useRoute, useRouter,onBeforeRouteLeave } from 'vue-router'\n\nconst route = useRoute()\nconst router = useRouter()\n\nimport * as categories from '@pf/src/modules/products/store/categories';\nimport * as marketplace from '@pf/src/modules/
|
1
|
+
{"version":3,"file":"FilterProducts.vue.cjs","sources":["../../../../../../../src/modules/products/components/sections/FilterProducts.vue"],"sourcesContent":[" <template>\n <div class=\"pd-medium bg-light radius-big\">\n <!-- Categories Filter -->\n <Spoiler \n class=\"radius-small o-hidden mn-b-small\"\n :status=\"true\"\n >\n <template #header>\n <p class=\"cursor-pointer mn-r-auto t-medium p-big\">{{ t('categoriesTitle') }}</p>\n <!-- SVG Icon -->\n </template>\n <template #content>\n <Checkbox \n v-for=\"(category, index) in categories.state.all\"\n :key=\"index\"\n :label=\"category.name\"\n :value=\"category.url\"\n class=\"w-100 mn-t-small mn-b-small bg-white radius-small pd-small\"\n :radio=\"marketplace.state.filter.categories\"\n @update:radio=\"event => marketplace.state.filter.categories = event\"\n />\n </template>\n </Spoiler>\n\n <hr class=\"mn-b-small t-transp\">\n\n <!-- Prices Filter -->\n <Spoiler \n class=\"radius-small o-hidden mn-b-small\"\n :status=\"false\"\n >\n <template #header>\n <p class=\"cursor-pointer mn-r-auto t-medium p-big\">{{ t('filters.price.title') }}</p>\n <!-- SVG Icon -->\n </template>\n <template #content>\n <Checkbox \n v-for=\"(price, index) in prices\"\n :key=\"index\"\n :label=\"price.label\"\n :value=\"price.value\"\n class=\"w-100 mn-t-small bg-white radius-small pd-small\"\n :radio=\"marketplace.state.filter.prices\"\n @update:radio=\"event => marketplace.state.filter.prices = event\"\n />\n </template>\n </Spoiler>\n\n <hr class=\"mn-b-small\">\n\n <!-- Delivery Filter -->\n <Spoiler \n class=\"radius-small o-hidden mn-b-small\"\n :status=\"false\"\n >\n <template #header>\n <p class=\"cursor-pointer mn-r-auto t-medium p-big\">Delivery</p>\n </template>\n <template #content>\n <Checkbox \n v-for=\"(deliveryOption, index) in deliveryOptions\"\n :key=\"index\"\n :label=\"deliveryOption.label\"\n :value=\"deliveryOption.value\"\n class=\"w-100 mn-t-small bg-white radius-small pd-small\"\n :radio=\"marketplace.state.filter.delivery\"\n @update:radio=\"event => marketplace.state.filter.delivery = event\"\n />\n </template>\n </Spoiler>\n\n <hr class=\"mn-b-semi\">\n\n <!-- Reset filter -->\n <button @click=\"resetFilters\" class=\"bg-main w-100 button\">{{ t('filters.reset') }}</button>\n </div>\n </template>\n\n<script setup>\nimport { ref, watch, onMounted } from 'vue'\n\nimport Spoiler from \"@pf/src/components/Spoiler/Spoiler.vue\"\nimport Checkbox from \"@pf/src/components/Checkbox/Checkbox.vue\"\n\nimport { useI18n } from 'vue-i18n'\nimport { useRoute, useRouter,onBeforeRouteLeave } from 'vue-router'\n\nconst route = useRoute()\nconst router = useRouter()\n\nimport * as categories from '@pf/src/modules/products/store/categories';\nimport * as marketplace from '@pf/src/modules/products/store/marketplace';\n\nlet options = {\n status: 'published'\n}\n\nlet selectedFilters = ref({\n categories: [],\n prices: [],\n delivery: [],\n extra: []\n})\n\n// Пропсы и данные, которые вы передаёте в компонент\nconst props = defineProps({\n selectedFilters: Object,\n prices: {\n type: Array,\n default: () => [\n { label: 'Under 300฿', value: '<300' },\n { label: '300฿ to 600฿', value: '300-600' },\n { label: '600฿ to 1200฿', value: '600-1200' },\n { label: '$1200 and above', value: '>1200' }\n ]\n },\n deliveryOptions: {\n type: Array,\n default: () => [\n { label: 'Pickup', value: { min: 0, max: 25 } },\n { label: 'Courier', value: { min: 25, max: 50 } },\n { label: 'Post', value: { min: 50, max: 100 } }\n ]\n }\n})\n\nwatch(() => marketplace.state.filter, (newFilterValue, oldFilterValue) => {\n // Переводим фильтр в формат query\n const query = { ...route.query };\n\n // Удаляем старые значения фильтра из query\n Object.keys(oldFilterValue).forEach(key => {\n if (query[key]) {\n delete query[key];\n }\n });\n\n // Добавляем новые значения фильтра в query\n const newQueryValues = Object.fromEntries(\n Object.entries(newFilterValue)\n .filter(([key, value]) => Array.isArray(value) && value.length > 0)\n .map(([key, value]) => [key, value.join(',')])\n );\n Object.assign(query, newQueryValues);\n\n // Обновляем маршрут с новым query\n router.repalce({ query });\n}, { deep: true })\n\nonMounted(async () => {\n await categories.actions.fetchCategories(options)\n \n if (route.query) {\n const query = route.query;\n const newFilterValue = {\n categories: query.categories ? query.categories.split(',') : [],\n prices: query.prices ? query.prices.split(',') : [],\n delivery: query.delivery ? query.delivery.split(',') : [],\n // Продолжайте этот паттерн для остальных полей фильтра\n };\n marketplace.state.filter.innerHTML = newFilterValue;\n }\n})\n\nconst emit = defineEmits(['updateFilters', 'resetFilters'])\n\nconst emitFilterChange = (filterType, value) => {\n emit('updateFilters', { filterType, value })\n}\n\nconst resetFilters = () => {\n emit('resetFilters')\n}\nconst text = {\n locale: 'en',\n messages: {\n en: {\n categoriesTitle: 'Category',\n categories: [],\n filters: {\n title: 'Filters',\n price: {\n title: 'Price',\n from: 'From',\n to: 'To'\n },\n filters: [],\n reset: 'Reset Filters'\n }\n },\n ru: {\n categoriesTitle: 'Категория',\n categories: [],\n filters: {\n title: 'Фильтры',\n price: {\n title: 'Цена',\n from: 'От',\n to: 'До'\n },\n filters: [],\n reset: 'Сбросить фильтры',\n }\n }\n }\n }\n\n categories.state.all.forEach( category => {\n category.localization.forEach( localization => {\n text.messages[localization.locale].categories.push(localization.text)\n })\n })\n\n const { t } = useI18n(text)\n \n\n\n// Добавьте свою локализацию и методы t, если они нужны\n</script>\n\n<style>\n/* Ваши стили */\n</style>\n"],"names":["useRoute","useRouter","ref","watch","marketplace.state","onMounted","categories.actions","categories.state","useI18n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuFA,UAAM,QAAQA,UAAAA,SAAU;AACxB,UAAM,SAASC,UAAAA,UAAW;AAK1B,QAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,IACV;AAEsBC,QAAAA,IAAI;AAAA,MACxB,YAAY,CAAE;AAAA,MACd,QAAQ,CAAE;AAAA,MACV,UAAU,CAAE;AAAA,MACZ,OAAO,CAAE;AAAA,IACX,CAAC;AAwBDC,QAAK,MAAC,MAAMC,YAAAA,MAAkB,QAAQ,CAAC,gBAAgB,mBAAmB;AAExE,YAAM,QAAQ,EAAE,GAAG,MAAM,MAAK;AAG9B,aAAO,KAAK,cAAc,EAAE,QAAQ,SAAO;AACzC,YAAI,MAAM,GAAG,GAAG;AACd,iBAAO,MAAM,GAAG;AAAA,QACjB;AAAA,MACL,CAAG;AAGD,YAAM,iBAAiB,OAAO;AAAA,QAC5B,OAAO,QAAQ,cAAc,EAC1B,OAAO,CAAC,CAAC,KAAK,KAAK,MAAM,MAAM,QAAQ,KAAK,KAAK,MAAM,SAAS,CAAC,EACjE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,MAAM,KAAK,GAAG,CAAC,CAAC;AAAA,MACnD;AACE,aAAO,OAAO,OAAO,cAAc;AAGnC,aAAO,QAAQ,EAAE,MAAK,CAAE;AAAA,IAC1B,GAAG,EAAE,MAAM,MAAM;AAEjBC,QAAAA,UAAU,YAAY;AACpB,YAAMC,WAAkB,QAAC,gBAAgB,OAAO;AAEhD,UAAI,MAAM,OAAO;AACf,cAAM,QAAQ,MAAM;AACpB,cAAM,iBAAiB;AAAA,UACrB,YAAY,MAAM,aAAa,MAAM,WAAW,MAAM,GAAG,IAAI,CAAE;AAAA,UAC/D,QAAQ,MAAM,SAAS,MAAM,OAAO,MAAM,GAAG,IAAI,CAAE;AAAA,UACnD,UAAU,MAAM,WAAW,MAAM,SAAS,MAAM,GAAG,IAAI,CAAE;AAAA;AAAA,QAE/D;AACIF,0BAAkB,OAAO,YAAY;AAAA,MACtC;AAAA,IACH,CAAC;AAED,UAAM,OAAO;AAMb,UAAM,eAAe,MAAM;AACzB,WAAK,cAAc;AAAA,IACrB;AACA,UAAM,OAAO;AAAA,MACT,QAAQ;AAAA,MACR,UAAU;AAAA,QACR,IAAI;AAAA,UACF,iBAAiB;AAAA,UACjB,YAAY,CAAE;AAAA,UACd,SAAS;AAAA,YACP,OAAO;AAAA,YACP,OAAO;AAAA,cACL,OAAO;AAAA,cACP,MAAM;AAAA,cACN,IAAI;AAAA,YACL;AAAA,YACD,SAAS,CAAE;AAAA,YACX,OAAO;AAAA,UACR;AAAA,QACF;AAAA,QACD,IAAI;AAAA,UACF,iBAAiB;AAAA,UACjB,YAAY,CAAE;AAAA,UACd,SAAS;AAAA,YACP,OAAO;AAAA,YACP,OAAO;AAAA,cACL,OAAO;AAAA,cACP,MAAM;AAAA,cACN,IAAI;AAAA,YACL;AAAA,YACD,SAAS,CAAE;AAAA,YACX,OAAO;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEDG,qBAAiB,IAAI,QAAS,cAAY;AACxC,eAAS,aAAa,QAAS,kBAAgB;AAC7C,aAAK,SAAS,aAAa,MAAM,EAAE,WAAW,KAAK,aAAa,IAAI;AAAA,MAC1E,CAAK;AAAA,IACL,CAAG;AAED,UAAM,EAAE,EAAC,IAAKC,QAAO,QAAC,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/prometheus-framework/src/modules/products/components/sections/FilterProducts.vue.js
CHANGED
@@ -4,7 +4,7 @@ import _sfc_main$2 from "../../../../components/Checkbox/Checkbox.vue.js";
|
|
4
4
|
import { useI18n } from "vue-i18n";
|
5
5
|
import { useRoute, useRouter } from "vue-router";
|
6
6
|
import { actions, state as state$1 } from "../../store/categories.js";
|
7
|
-
import { state } from "
|
7
|
+
import { state } from "../../store/marketplace.js";
|
8
8
|
/* empty css */
|
9
9
|
const _hoisted_1 = { class: "pd-medium bg-light radius-big" };
|
10
10
|
const _hoisted_2 = { class: "cursor-pointer mn-r-auto t-medium p-big" };
|
package/dist/prometheus-framework/src/modules/products/components/sections/FilterProducts.vue.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"FilterProducts.vue.js","sources":["../../../../../../../src/modules/products/components/sections/FilterProducts.vue"],"sourcesContent":[" <template>\n <div class=\"pd-medium bg-light radius-big\">\n <!-- Categories Filter -->\n <Spoiler \n class=\"radius-small o-hidden mn-b-small\"\n :status=\"true\"\n >\n <template #header>\n <p class=\"cursor-pointer mn-r-auto t-medium p-big\">{{ t('categoriesTitle') }}</p>\n <!-- SVG Icon -->\n </template>\n <template #content>\n <Checkbox \n v-for=\"(category, index) in categories.state.all\"\n :key=\"index\"\n :label=\"category.name\"\n :value=\"category.url\"\n class=\"w-100 mn-t-small mn-b-small bg-white radius-small pd-small\"\n :radio=\"marketplace.state.filter.categories\"\n @update:radio=\"event => marketplace.state.filter.categories = event\"\n />\n </template>\n </Spoiler>\n\n <hr class=\"mn-b-small t-transp\">\n\n <!-- Prices Filter -->\n <Spoiler \n class=\"radius-small o-hidden mn-b-small\"\n :status=\"false\"\n >\n <template #header>\n <p class=\"cursor-pointer mn-r-auto t-medium p-big\">{{ t('filters.price.title') }}</p>\n <!-- SVG Icon -->\n </template>\n <template #content>\n <Checkbox \n v-for=\"(price, index) in prices\"\n :key=\"index\"\n :label=\"price.label\"\n :value=\"price.value\"\n class=\"w-100 mn-t-small bg-white radius-small pd-small\"\n :radio=\"marketplace.state.filter.prices\"\n @update:radio=\"event => marketplace.state.filter.prices = event\"\n />\n </template>\n </Spoiler>\n\n <hr class=\"mn-b-small\">\n\n <!-- Delivery Filter -->\n <Spoiler \n class=\"radius-small o-hidden mn-b-small\"\n :status=\"false\"\n >\n <template #header>\n <p class=\"cursor-pointer mn-r-auto t-medium p-big\">Delivery</p>\n </template>\n <template #content>\n <Checkbox \n v-for=\"(deliveryOption, index) in deliveryOptions\"\n :key=\"index\"\n :label=\"deliveryOption.label\"\n :value=\"deliveryOption.value\"\n class=\"w-100 mn-t-small bg-white radius-small pd-small\"\n :radio=\"marketplace.state.filter.delivery\"\n @update:radio=\"event => marketplace.state.filter.delivery = event\"\n />\n </template>\n </Spoiler>\n\n <hr class=\"mn-b-semi\">\n\n <!-- Reset filter -->\n <button @click=\"resetFilters\" class=\"bg-main w-100 button\">{{ t('filters.reset') }}</button>\n </div>\n </template>\n\n<script setup>\nimport { ref, watch, onMounted } from 'vue'\n\nimport Spoiler from \"@pf/src/components/Spoiler/Spoiler.vue\"\nimport Checkbox from \"@pf/src/components/Checkbox/Checkbox.vue\"\n\nimport { useI18n } from 'vue-i18n'\nimport { useRoute, useRouter,onBeforeRouteLeave } from 'vue-router'\n\nconst route = useRoute()\nconst router = useRouter()\n\nimport * as categories from '@pf/src/modules/products/store/categories';\nimport * as marketplace from '@pf/src/modules/
|
1
|
+
{"version":3,"file":"FilterProducts.vue.js","sources":["../../../../../../../src/modules/products/components/sections/FilterProducts.vue"],"sourcesContent":[" <template>\n <div class=\"pd-medium bg-light radius-big\">\n <!-- Categories Filter -->\n <Spoiler \n class=\"radius-small o-hidden mn-b-small\"\n :status=\"true\"\n >\n <template #header>\n <p class=\"cursor-pointer mn-r-auto t-medium p-big\">{{ t('categoriesTitle') }}</p>\n <!-- SVG Icon -->\n </template>\n <template #content>\n <Checkbox \n v-for=\"(category, index) in categories.state.all\"\n :key=\"index\"\n :label=\"category.name\"\n :value=\"category.url\"\n class=\"w-100 mn-t-small mn-b-small bg-white radius-small pd-small\"\n :radio=\"marketplace.state.filter.categories\"\n @update:radio=\"event => marketplace.state.filter.categories = event\"\n />\n </template>\n </Spoiler>\n\n <hr class=\"mn-b-small t-transp\">\n\n <!-- Prices Filter -->\n <Spoiler \n class=\"radius-small o-hidden mn-b-small\"\n :status=\"false\"\n >\n <template #header>\n <p class=\"cursor-pointer mn-r-auto t-medium p-big\">{{ t('filters.price.title') }}</p>\n <!-- SVG Icon -->\n </template>\n <template #content>\n <Checkbox \n v-for=\"(price, index) in prices\"\n :key=\"index\"\n :label=\"price.label\"\n :value=\"price.value\"\n class=\"w-100 mn-t-small bg-white radius-small pd-small\"\n :radio=\"marketplace.state.filter.prices\"\n @update:radio=\"event => marketplace.state.filter.prices = event\"\n />\n </template>\n </Spoiler>\n\n <hr class=\"mn-b-small\">\n\n <!-- Delivery Filter -->\n <Spoiler \n class=\"radius-small o-hidden mn-b-small\"\n :status=\"false\"\n >\n <template #header>\n <p class=\"cursor-pointer mn-r-auto t-medium p-big\">Delivery</p>\n </template>\n <template #content>\n <Checkbox \n v-for=\"(deliveryOption, index) in deliveryOptions\"\n :key=\"index\"\n :label=\"deliveryOption.label\"\n :value=\"deliveryOption.value\"\n class=\"w-100 mn-t-small bg-white radius-small pd-small\"\n :radio=\"marketplace.state.filter.delivery\"\n @update:radio=\"event => marketplace.state.filter.delivery = event\"\n />\n </template>\n </Spoiler>\n\n <hr class=\"mn-b-semi\">\n\n <!-- Reset filter -->\n <button @click=\"resetFilters\" class=\"bg-main w-100 button\">{{ t('filters.reset') }}</button>\n </div>\n </template>\n\n<script setup>\nimport { ref, watch, onMounted } from 'vue'\n\nimport Spoiler from \"@pf/src/components/Spoiler/Spoiler.vue\"\nimport Checkbox from \"@pf/src/components/Checkbox/Checkbox.vue\"\n\nimport { useI18n } from 'vue-i18n'\nimport { useRoute, useRouter,onBeforeRouteLeave } from 'vue-router'\n\nconst route = useRoute()\nconst router = useRouter()\n\nimport * as categories from '@pf/src/modules/products/store/categories';\nimport * as marketplace from '@pf/src/modules/products/store/marketplace';\n\nlet options = {\n status: 'published'\n}\n\nlet selectedFilters = ref({\n categories: [],\n prices: [],\n delivery: [],\n extra: []\n})\n\n// Пропсы и данные, которые вы передаёте в компонент\nconst props = defineProps({\n selectedFilters: Object,\n prices: {\n type: Array,\n default: () => [\n { label: 'Under 300฿', value: '<300' },\n { label: '300฿ to 600฿', value: '300-600' },\n { label: '600฿ to 1200฿', value: '600-1200' },\n { label: '$1200 and above', value: '>1200' }\n ]\n },\n deliveryOptions: {\n type: Array,\n default: () => [\n { label: 'Pickup', value: { min: 0, max: 25 } },\n { label: 'Courier', value: { min: 25, max: 50 } },\n { label: 'Post', value: { min: 50, max: 100 } }\n ]\n }\n})\n\nwatch(() => marketplace.state.filter, (newFilterValue, oldFilterValue) => {\n // Переводим фильтр в формат query\n const query = { ...route.query };\n\n // Удаляем старые значения фильтра из query\n Object.keys(oldFilterValue).forEach(key => {\n if (query[key]) {\n delete query[key];\n }\n });\n\n // Добавляем новые значения фильтра в query\n const newQueryValues = Object.fromEntries(\n Object.entries(newFilterValue)\n .filter(([key, value]) => Array.isArray(value) && value.length > 0)\n .map(([key, value]) => [key, value.join(',')])\n );\n Object.assign(query, newQueryValues);\n\n // Обновляем маршрут с новым query\n router.repalce({ query });\n}, { deep: true })\n\nonMounted(async () => {\n await categories.actions.fetchCategories(options)\n \n if (route.query) {\n const query = route.query;\n const newFilterValue = {\n categories: query.categories ? query.categories.split(',') : [],\n prices: query.prices ? query.prices.split(',') : [],\n delivery: query.delivery ? query.delivery.split(',') : [],\n // Продолжайте этот паттерн для остальных полей фильтра\n };\n marketplace.state.filter.innerHTML = newFilterValue;\n }\n})\n\nconst emit = defineEmits(['updateFilters', 'resetFilters'])\n\nconst emitFilterChange = (filterType, value) => {\n emit('updateFilters', { filterType, value })\n}\n\nconst resetFilters = () => {\n emit('resetFilters')\n}\nconst text = {\n locale: 'en',\n messages: {\n en: {\n categoriesTitle: 'Category',\n categories: [],\n filters: {\n title: 'Filters',\n price: {\n title: 'Price',\n from: 'From',\n to: 'To'\n },\n filters: [],\n reset: 'Reset Filters'\n }\n },\n ru: {\n categoriesTitle: 'Категория',\n categories: [],\n filters: {\n title: 'Фильтры',\n price: {\n title: 'Цена',\n from: 'От',\n to: 'До'\n },\n filters: [],\n reset: 'Сбросить фильтры',\n }\n }\n }\n }\n\n categories.state.all.forEach( category => {\n category.localization.forEach( localization => {\n text.messages[localization.locale].categories.push(localization.text)\n })\n })\n\n const { t } = useI18n(text)\n \n\n\n// Добавьте свою локализацию и методы t, если они нужны\n</script>\n\n<style>\n/* Ваши стили */\n</style>\n"],"names":["marketplace.state","categories.actions","categories.state"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuFA,UAAM,QAAQ,SAAU;AACxB,UAAM,SAAS,UAAW;AAK1B,QAAI,UAAU;AAAA,MACZ,QAAQ;AAAA,IACV;AAEsB,QAAI;AAAA,MACxB,YAAY,CAAE;AAAA,MACd,QAAQ,CAAE;AAAA,MACV,UAAU,CAAE;AAAA,MACZ,OAAO,CAAE;AAAA,IACX,CAAC;AAwBD,UAAM,MAAMA,MAAkB,QAAQ,CAAC,gBAAgB,mBAAmB;AAExE,YAAM,QAAQ,EAAE,GAAG,MAAM,MAAK;AAG9B,aAAO,KAAK,cAAc,EAAE,QAAQ,SAAO;AACzC,YAAI,MAAM,GAAG,GAAG;AACd,iBAAO,MAAM,GAAG;AAAA,QACjB;AAAA,MACL,CAAG;AAGD,YAAM,iBAAiB,OAAO;AAAA,QAC5B,OAAO,QAAQ,cAAc,EAC1B,OAAO,CAAC,CAAC,KAAK,KAAK,MAAM,MAAM,QAAQ,KAAK,KAAK,MAAM,SAAS,CAAC,EACjE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,MAAM,KAAK,GAAG,CAAC,CAAC;AAAA,MACnD;AACE,aAAO,OAAO,OAAO,cAAc;AAGnC,aAAO,QAAQ,EAAE,MAAK,CAAE;AAAA,IAC1B,GAAG,EAAE,MAAM,MAAM;AAEjB,cAAU,YAAY;AACpB,YAAMC,QAAmB,gBAAgB,OAAO;AAEhD,UAAI,MAAM,OAAO;AACf,cAAM,QAAQ,MAAM;AACpB,cAAM,iBAAiB;AAAA,UACrB,YAAY,MAAM,aAAa,MAAM,WAAW,MAAM,GAAG,IAAI,CAAE;AAAA,UAC/D,QAAQ,MAAM,SAAS,MAAM,OAAO,MAAM,GAAG,IAAI,CAAE;AAAA,UACnD,UAAU,MAAM,WAAW,MAAM,SAAS,MAAM,GAAG,IAAI,CAAE;AAAA;AAAA,QAE/D;AACID,cAAkB,OAAO,YAAY;AAAA,MACtC;AAAA,IACH,CAAC;AAED,UAAM,OAAO;AAMb,UAAM,eAAe,MAAM;AACzB,WAAK,cAAc;AAAA,IACrB;AACA,UAAM,OAAO;AAAA,MACT,QAAQ;AAAA,MACR,UAAU;AAAA,QACR,IAAI;AAAA,UACF,iBAAiB;AAAA,UACjB,YAAY,CAAE;AAAA,UACd,SAAS;AAAA,YACP,OAAO;AAAA,YACP,OAAO;AAAA,cACL,OAAO;AAAA,cACP,MAAM;AAAA,cACN,IAAI;AAAA,YACL;AAAA,YACD,SAAS,CAAE;AAAA,YACX,OAAO;AAAA,UACR;AAAA,QACF;AAAA,QACD,IAAI;AAAA,UACF,iBAAiB;AAAA,UACjB,YAAY,CAAE;AAAA,UACd,SAAS;AAAA,YACP,OAAO;AAAA,YACP,OAAO;AAAA,cACL,OAAO;AAAA,cACP,MAAM;AAAA,cACN,IAAI;AAAA,YACL;AAAA,YACD,SAAS,CAAE;AAAA,YACX,OAAO;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEDE,YAAiB,IAAI,QAAS,cAAY;AACxC,eAAS,aAAa,QAAS,kBAAgB;AAC7C,aAAK,SAAS,aAAa,MAAM,EAAE,WAAW,KAAK,aAAa,IAAI;AAAA,MAC1E,CAAK;AAAA,IACL,CAAG;AAED,UAAM,EAAE,EAAC,IAAK,QAAQ,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
@@ -0,0 +1,156 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
3
|
+
const vue = require("vue");
|
4
|
+
const Checkbox = require("../../../../components/Checkbox/Checkbox.vue.cjs");
|
5
|
+
;/* empty css */
|
6
|
+
const Dropdown = require("../../../../components/Dropdown/Dropdown.vue.cjs");
|
7
|
+
const vueI18n = require("vue-i18n");
|
8
|
+
const marketplace = require("../../store/marketplace.cjs");
|
9
|
+
const categories = require("../../store/categories.cjs");
|
10
|
+
const _hoisted_1 = { class: "z-index-1 pos-relative radius-big bg-black t-white pd-medium flex-v-center flex-nowrap flex" };
|
11
|
+
const _hoisted_2 = { class: "mn-r-auto pd-micro gap-micro br-solid br-2px br-white radius-extra flex-nowrap flex" };
|
12
|
+
const _hoisted_3 = { class: "w-100 h-100 radius-semi o-hidden bg-black" };
|
13
|
+
const _hoisted_4 = { class: "w-100 h-100 radius-semi o-hidden bg-black" };
|
14
|
+
const _hoisted_5 = { class: "w-100 h-100 radius-semi o-hidden bg-black" };
|
15
|
+
const _sfc_main = {
|
16
|
+
__name: "Filters",
|
17
|
+
setup(__props) {
|
18
|
+
const delivery = [
|
19
|
+
{ label: "Pickup", value: "pickup" },
|
20
|
+
{ label: "Courier", value: "courier" },
|
21
|
+
{ label: "Post", value: "post" }
|
22
|
+
];
|
23
|
+
const prices = [
|
24
|
+
{ label: "Under 300฿", value: "<300" },
|
25
|
+
{ label: "300฿ to 600฿", value: "300-600" },
|
26
|
+
{ label: "600฿ to 1200฿", value: "600-1200" },
|
27
|
+
{ label: "$1200 and above", value: ">1200" }
|
28
|
+
];
|
29
|
+
const text = {
|
30
|
+
locale: "en",
|
31
|
+
messages: {
|
32
|
+
en: {
|
33
|
+
categoriesTitle: "Category",
|
34
|
+
categories: [],
|
35
|
+
sort: {
|
36
|
+
price: "By price",
|
37
|
+
newest: "By newest",
|
38
|
+
popularity: "By popularity"
|
39
|
+
},
|
40
|
+
filters: {
|
41
|
+
title: "Filters",
|
42
|
+
price: {
|
43
|
+
title: "Price",
|
44
|
+
from: "From",
|
45
|
+
to: "To"
|
46
|
+
},
|
47
|
+
filters: [],
|
48
|
+
reset: "Reset Filters"
|
49
|
+
}
|
50
|
+
},
|
51
|
+
ru: {
|
52
|
+
categoriesTitle: "Категория",
|
53
|
+
sort: {
|
54
|
+
price: "По цене",
|
55
|
+
newest: "По новизне",
|
56
|
+
popularity: "По популярности"
|
57
|
+
},
|
58
|
+
filters: {
|
59
|
+
title: "Фильтры",
|
60
|
+
price: {
|
61
|
+
title: "Цена",
|
62
|
+
from: "От",
|
63
|
+
to: "До"
|
64
|
+
},
|
65
|
+
filters: [],
|
66
|
+
reset: "Сбросить фильтры"
|
67
|
+
}
|
68
|
+
}
|
69
|
+
}
|
70
|
+
};
|
71
|
+
const { t } = vueI18n.useI18n(text);
|
72
|
+
vue.onMounted(async () => {
|
73
|
+
let options = {
|
74
|
+
status: "published"
|
75
|
+
};
|
76
|
+
await categories.actions.fetchCategories(options);
|
77
|
+
});
|
78
|
+
return (_ctx, _cache) => {
|
79
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
|
80
|
+
vue.createElementVNode("div", _hoisted_2, [
|
81
|
+
vue.createVNode(Dropdown.default, {
|
82
|
+
id: "fitlerCategory",
|
83
|
+
label: vue.unref(t)("categoriesTitle"),
|
84
|
+
class: vue.normalizeClass(["cursor-pointer pd-thin t-semi radius-extra uppercase p-medium", [
|
85
|
+
marketplace.state.filter.categories.length > 0 ? "bg-white t-black" : ""
|
86
|
+
]])
|
87
|
+
}, {
|
88
|
+
default: vue.withCtx(() => [
|
89
|
+
vue.createElementVNode("div", _hoisted_3, [
|
90
|
+
(vue.openBlock(), vue.createElementBlock(vue.Fragment, null, vue.renderList(categories, (category, index) => {
|
91
|
+
return vue.createVNode(Checkbox.default, {
|
92
|
+
label: category.name,
|
93
|
+
name: "categories",
|
94
|
+
value: category.url,
|
95
|
+
class: "cursor-pointer w-100 bg-black t-white radius-small pd-small",
|
96
|
+
radio: marketplace.state.filter.categories,
|
97
|
+
"onUpdate:radio": _cache[0] || (_cache[0] = (event) => marketplace.state.filter.categories = event)
|
98
|
+
}, null, 8, ["label", "value", "radio"]);
|
99
|
+
}), 64))
|
100
|
+
])
|
101
|
+
]),
|
102
|
+
_: 1
|
103
|
+
}, 8, ["label", "class"]),
|
104
|
+
vue.createVNode(Dropdown.default, {
|
105
|
+
id: "fitlerPrice",
|
106
|
+
label: vue.unref(t)("filters.price.title"),
|
107
|
+
class: vue.normalizeClass(["cursor-pointer pd-thin t-semi radius-extra uppercase p-medium", [
|
108
|
+
marketplace.state.filter.prices.length > 0 ? "bg-white t-black" : ""
|
109
|
+
]])
|
110
|
+
}, {
|
111
|
+
default: vue.withCtx(() => [
|
112
|
+
vue.createElementVNode("div", _hoisted_4, [
|
113
|
+
(vue.openBlock(), vue.createElementBlock(vue.Fragment, null, vue.renderList(prices, (price, index) => {
|
114
|
+
return vue.createVNode(Checkbox.default, {
|
115
|
+
label: price.label,
|
116
|
+
name: "prices",
|
117
|
+
value: price.value,
|
118
|
+
class: "cursor-pointer w-100 mn-t-small bg-black t-white radius-small pd-small",
|
119
|
+
radio: marketplace.state.filter.prices,
|
120
|
+
"onUpdate:radio": _cache[1] || (_cache[1] = (event) => marketplace.state.filter.prices = event)
|
121
|
+
}, null, 8, ["label", "value", "radio"]);
|
122
|
+
}), 64))
|
123
|
+
])
|
124
|
+
]),
|
125
|
+
_: 1
|
126
|
+
}, 8, ["label", "class"]),
|
127
|
+
vue.createVNode(Dropdown.default, {
|
128
|
+
label: "Delivery",
|
129
|
+
id: "fitlerDelivery",
|
130
|
+
class: vue.normalizeClass(["cursor-pointer pd-thin t-semi radius-extra uppercase p-medium", [
|
131
|
+
marketplace.state.filter.delivery.length > 0 ? "bg-white t-black" : ""
|
132
|
+
]])
|
133
|
+
}, {
|
134
|
+
default: vue.withCtx(() => [
|
135
|
+
vue.createElementVNode("div", _hoisted_5, [
|
136
|
+
(vue.openBlock(), vue.createElementBlock(vue.Fragment, null, vue.renderList(delivery, (delivery2, index) => {
|
137
|
+
return vue.createVNode(Checkbox.default, {
|
138
|
+
label: delivery2.label,
|
139
|
+
name: "prices",
|
140
|
+
value: delivery2.value,
|
141
|
+
class: "cursor-pointer w-100 mn-t-small bg-black t-white radius-small pd-small",
|
142
|
+
radio: marketplace.state.filter.delivery,
|
143
|
+
"onUpdate:radio": (event) => marketplace.state.filter.delivery = event
|
144
|
+
}, null, 8, ["label", "value", "radio", "onUpdate:radio"]);
|
145
|
+
}), 64))
|
146
|
+
])
|
147
|
+
]),
|
148
|
+
_: 1
|
149
|
+
}, 8, ["class"])
|
150
|
+
])
|
151
|
+
]);
|
152
|
+
};
|
153
|
+
}
|
154
|
+
};
|
155
|
+
exports.default = _sfc_main;
|
156
|
+
//# sourceMappingURL=Filters.vue.cjs.map
|
package/dist/prometheus-framework/src/modules/products/components/sections/Filters.vue.cjs.map
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Filters.vue.cjs","sources":["../../../../../../../src/modules/products/components/sections/Filters.vue"],"sourcesContent":["<template>\n\t<div class=\"z-index-1 pos-relative radius-big bg-black t-white pd-medium flex-v-center flex-nowrap flex\">\n <div class=\"mn-r-auto pd-micro gap-micro br-solid br-2px br-white radius-extra flex-nowrap flex\"\n >\n \t\t<Dropdown \n id=\"fitlerCategory\"\n \t\t\t:label=\"t('categoriesTitle')\" \n \t\t\tclass=\"cursor-pointer pd-thin t-semi radius-extra uppercase p-medium\"\n \t\t\t:class=\"[\n marketplace.state.filter.categories.length > 0 ? 'bg-white t-black' : ''\n ]\"\n \t\t>\n \t\t\t<div class=\"w-100 h-100 radius-semi o-hidden bg-black\">\n \t<Checkbox \n \t\t\t\tv-for=\"(category, index) in categories\"\n :label=\"category.name\"\n name=\"categories\"\n :value=\"category.url\"\n class=\"cursor-pointer w-100 bg-black t-white radius-small pd-small\"\n :radio=\"marketplace.state.filter.categories\"\n @update:radio=\"event => marketplace.state.filter.categories = event\"\n />\n \t</div>\n </Dropdown>\n\n <Dropdown \n id=\"fitlerPrice\"\n \t:label=\"t('filters.price.title')\" \n \tclass=\"cursor-pointer pd-thin t-semi radius-extra uppercase p-medium\"\n \t:class=\"[\n marketplace.state.filter.prices.length > 0 ? 'bg-white t-black' : ''\n ]\"\n >\n <div class=\"w-100 h-100 radius-semi o-hidden bg-black\">\n \t<Checkbox \n \t\t\t\tv-for=\"(price, index) in prices\"\n :label=\"price.label\"\n name=\"prices\"\n :value=\"price.value\"\n class=\"cursor-pointer w-100 mn-t-small bg-black t-white radius-small pd-small\"\n :radio=\"marketplace.state.filter.prices\"\n @update:radio=\"event => marketplace.state.filter.prices = event\"\n />\n </div>\n </Dropdown>\n\n <Dropdown \n \t label=\"Delivery\" \n id=\"fitlerDelivery\"\n \tclass=\"cursor-pointer pd-thin t-semi radius-extra uppercase p-medium\"\n \t:class=\"[\n marketplace.state.filter.delivery.length > 0 ? 'bg-white t-black' : ''\n ]\"\n >\n <div class=\"w-100 h-100 radius-semi o-hidden bg-black\">\n \t<Checkbox \n \t\t\t\tv-for=\"(delivery, index) in delivery\"\n :label=\"delivery.label\"\n name=\"prices\"\n :value=\"delivery.value\"\n class=\"cursor-pointer w-100 mn-t-small bg-black t-white radius-small pd-small\"\n :radio=\"marketplace.state.filter.delivery\"\n @update:radio=\"event => marketplace.state.filter.delivery = event\"\n />\n </div>\n </Dropdown>\n </div>\n </div>\n\n</template>\n\n<script setup>\n\timport { computed, onMounted, ref } from 'vue'\n\n \timport Checkbox from \"@pf/src/components/Checkbox/Checkbox.vue\";\n import Radio from \"@pf/src/components/Radio/Radio.vue\";\n \timport Select from \"@pf/src/components/Select/Select.vue\";\n \timport Dropdown from \"@pf/src/components/Dropdown/Dropdown.vue\";\n\n\timport { useI18n } from 'vue-i18n'\n\n\timport * as marketplace from '@pf/src/modules/products/store/marketplace';\n import * as categories from '@pf/src/modules/products/store/categories';\n\n\tconst delivery = [\n { label: 'Pickup',\t\t\t\t\tvalue: 'pickup' },\n { label: 'Courier',\t\t\t\t\tvalue: 'courier' },\n { label: 'Post',\t\t\t\t\t\tvalue: 'post' }\n\t]\n\n\tconst prices = [\n { label: 'Under 300฿',\t\t\t\tvalue: '<300' },\n { label: '300฿ to 600฿',\t\t\tvalue: '300-600' },\n { label: '600฿ to 1200฿',\t\t\tvalue: '600-1200' },\n { label: '$1200 and above',\t\tvalue: '>1200' }\n\t]\n\n\tconst text = {\n locale: 'en',\n messages: {\n en: {\n \tcategoriesTitle: 'Category',\n \tcategories: [],\n \tsort: {\n \t\tprice: 'By price',\n \t\tnewest: 'By newest',\n \t\tpopularity: 'By popularity'\n \t},\n \tfilters: {\n \t\ttitle: 'Filters',\n \t\tprice: {\n \t\t\ttitle: 'Price',\n \t\t\tfrom: 'From',\n \t\t\tto: 'To'\n \t\t},\n \t\tfilters: [],\n \t\treset: 'Reset Filters'\n \t}\n },\n ru: {\n \tcategoriesTitle: 'Категория',\n \tsort: {\n \t\tprice: 'По цене',\n \t\tnewest: 'По новизне',\n \t\tpopularity: 'По популярности'\n \t},\n \tfilters: {\n \t\ttitle: 'Фильтры',\n \t\tprice: {\n \t\t\ttitle: 'Цена',\n \t\t\tfrom: 'От',\n \t\t\tto: 'До'\n \t\t},\n \t\tfilters: [],\n \t\treset: 'Сбросить фильтры',\n \t}\n }\n }\n }\n\n\tconst { t } = useI18n(text)\n\n\tonMounted(async () => {\n let options = {\n status: 'published'\n }\n\n\t\tawait categories.actions.fetchCategories(options)\n\t})\n\n\t\n</script>"],"names":["useI18n","onMounted","categories.actions"],"mappings":";;;;;;;;;;;;;;;;;AAoFC,UAAM,WAAW;AAAA,MACd,EAAE,OAAO,UAAc,OAAO,SAAU;AAAA,MACxC,EAAE,OAAO,WAAe,OAAO,UAAW;AAAA,MAC1C,EAAE,OAAO,QAAa,OAAO,OAAQ;AAAA,IACvC;AAED,UAAM,SAAS;AAAA,MACZ,EAAE,OAAO,cAAiB,OAAO,OAAQ;AAAA,MACzC,EAAE,OAAO,gBAAkB,OAAO,UAAW;AAAA,MAC7C,EAAE,OAAO,iBAAmB,OAAO,WAAY;AAAA,MAC/C,EAAE,OAAO,mBAAoB,OAAO,QAAS;AAAA,IAC/C;AAED,UAAM,OAAO;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,QACR,IAAI;AAAA,UACH,iBAAiB;AAAA,UACjB,YAAY,CAAE;AAAA,UACd,MAAM;AAAA,YACL,OAAO;AAAA,YACP,QAAQ;AAAA,YACR,YAAY;AAAA,UACZ;AAAA,UACD,SAAS;AAAA,YACR,OAAO;AAAA,YACP,OAAO;AAAA,cACN,OAAO;AAAA,cACP,MAAM;AAAA,cACN,IAAI;AAAA,YACJ;AAAA,YACD,SAAS,CAAE;AAAA,YACX,OAAO;AAAA,UACP;AAAA,QACD;AAAA,QACD,IAAI;AAAA,UACH,iBAAiB;AAAA,UACjB,MAAM;AAAA,YACL,OAAO;AAAA,YACP,QAAQ;AAAA,YACR,YAAY;AAAA,UACZ;AAAA,UACD,SAAS;AAAA,YACR,OAAO;AAAA,YACP,OAAO;AAAA,cACN,OAAO;AAAA,cACP,MAAM;AAAA,cACN,IAAI;AAAA,YACJ;AAAA,YACD,SAAS,CAAE;AAAA,YACX,OAAO;AAAA,UACP;AAAA,QACD;AAAA,MACF;AAAA,IACF;AAEF,UAAM,EAAE,EAAC,IAAKA,QAAO,QAAC,IAAI;AAE1BC,QAAAA,UAAU,YAAY;AACnB,UAAI,UAAU;AAAA,QACZ,QAAQ;AAAA,MACT;AAEH,YAAMC,WAAkB,QAAC,gBAAgB,OAAO;AAAA,IAClD,CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
@@ -0,0 +1,157 @@
|
|
1
|
+
import { onMounted, openBlock, createElementBlock, createElementVNode, createVNode, unref, normalizeClass, withCtx, Fragment, renderList } from "vue";
|
2
|
+
import _sfc_main$2 from "../../../../components/Checkbox/Checkbox.vue.js";
|
3
|
+
/* empty css */
|
4
|
+
import _sfc_main$1 from "../../../../components/Dropdown/Dropdown.vue.js";
|
5
|
+
import { useI18n } from "vue-i18n";
|
6
|
+
import { state } from "../../store/marketplace.js";
|
7
|
+
import * as categories from "../../store/categories.js";
|
8
|
+
import { actions } from "../../store/categories.js";
|
9
|
+
const _hoisted_1 = { class: "z-index-1 pos-relative radius-big bg-black t-white pd-medium flex-v-center flex-nowrap flex" };
|
10
|
+
const _hoisted_2 = { class: "mn-r-auto pd-micro gap-micro br-solid br-2px br-white radius-extra flex-nowrap flex" };
|
11
|
+
const _hoisted_3 = { class: "w-100 h-100 radius-semi o-hidden bg-black" };
|
12
|
+
const _hoisted_4 = { class: "w-100 h-100 radius-semi o-hidden bg-black" };
|
13
|
+
const _hoisted_5 = { class: "w-100 h-100 radius-semi o-hidden bg-black" };
|
14
|
+
const _sfc_main = {
|
15
|
+
__name: "Filters",
|
16
|
+
setup(__props) {
|
17
|
+
const delivery = [
|
18
|
+
{ label: "Pickup", value: "pickup" },
|
19
|
+
{ label: "Courier", value: "courier" },
|
20
|
+
{ label: "Post", value: "post" }
|
21
|
+
];
|
22
|
+
const prices = [
|
23
|
+
{ label: "Under 300฿", value: "<300" },
|
24
|
+
{ label: "300฿ to 600฿", value: "300-600" },
|
25
|
+
{ label: "600฿ to 1200฿", value: "600-1200" },
|
26
|
+
{ label: "$1200 and above", value: ">1200" }
|
27
|
+
];
|
28
|
+
const text = {
|
29
|
+
locale: "en",
|
30
|
+
messages: {
|
31
|
+
en: {
|
32
|
+
categoriesTitle: "Category",
|
33
|
+
categories: [],
|
34
|
+
sort: {
|
35
|
+
price: "By price",
|
36
|
+
newest: "By newest",
|
37
|
+
popularity: "By popularity"
|
38
|
+
},
|
39
|
+
filters: {
|
40
|
+
title: "Filters",
|
41
|
+
price: {
|
42
|
+
title: "Price",
|
43
|
+
from: "From",
|
44
|
+
to: "To"
|
45
|
+
},
|
46
|
+
filters: [],
|
47
|
+
reset: "Reset Filters"
|
48
|
+
}
|
49
|
+
},
|
50
|
+
ru: {
|
51
|
+
categoriesTitle: "Категория",
|
52
|
+
sort: {
|
53
|
+
price: "По цене",
|
54
|
+
newest: "По новизне",
|
55
|
+
popularity: "По популярности"
|
56
|
+
},
|
57
|
+
filters: {
|
58
|
+
title: "Фильтры",
|
59
|
+
price: {
|
60
|
+
title: "Цена",
|
61
|
+
from: "От",
|
62
|
+
to: "До"
|
63
|
+
},
|
64
|
+
filters: [],
|
65
|
+
reset: "Сбросить фильтры"
|
66
|
+
}
|
67
|
+
}
|
68
|
+
}
|
69
|
+
};
|
70
|
+
const { t } = useI18n(text);
|
71
|
+
onMounted(async () => {
|
72
|
+
let options = {
|
73
|
+
status: "published"
|
74
|
+
};
|
75
|
+
await actions.fetchCategories(options);
|
76
|
+
});
|
77
|
+
return (_ctx, _cache) => {
|
78
|
+
return openBlock(), createElementBlock("div", _hoisted_1, [
|
79
|
+
createElementVNode("div", _hoisted_2, [
|
80
|
+
createVNode(_sfc_main$1, {
|
81
|
+
id: "fitlerCategory",
|
82
|
+
label: unref(t)("categoriesTitle"),
|
83
|
+
class: normalizeClass(["cursor-pointer pd-thin t-semi radius-extra uppercase p-medium", [
|
84
|
+
state.filter.categories.length > 0 ? "bg-white t-black" : ""
|
85
|
+
]])
|
86
|
+
}, {
|
87
|
+
default: withCtx(() => [
|
88
|
+
createElementVNode("div", _hoisted_3, [
|
89
|
+
(openBlock(), createElementBlock(Fragment, null, renderList(categories, (category, index) => {
|
90
|
+
return createVNode(_sfc_main$2, {
|
91
|
+
label: category.name,
|
92
|
+
name: "categories",
|
93
|
+
value: category.url,
|
94
|
+
class: "cursor-pointer w-100 bg-black t-white radius-small pd-small",
|
95
|
+
radio: state.filter.categories,
|
96
|
+
"onUpdate:radio": _cache[0] || (_cache[0] = (event) => state.filter.categories = event)
|
97
|
+
}, null, 8, ["label", "value", "radio"]);
|
98
|
+
}), 64))
|
99
|
+
])
|
100
|
+
]),
|
101
|
+
_: 1
|
102
|
+
}, 8, ["label", "class"]),
|
103
|
+
createVNode(_sfc_main$1, {
|
104
|
+
id: "fitlerPrice",
|
105
|
+
label: unref(t)("filters.price.title"),
|
106
|
+
class: normalizeClass(["cursor-pointer pd-thin t-semi radius-extra uppercase p-medium", [
|
107
|
+
state.filter.prices.length > 0 ? "bg-white t-black" : ""
|
108
|
+
]])
|
109
|
+
}, {
|
110
|
+
default: withCtx(() => [
|
111
|
+
createElementVNode("div", _hoisted_4, [
|
112
|
+
(openBlock(), createElementBlock(Fragment, null, renderList(prices, (price, index) => {
|
113
|
+
return createVNode(_sfc_main$2, {
|
114
|
+
label: price.label,
|
115
|
+
name: "prices",
|
116
|
+
value: price.value,
|
117
|
+
class: "cursor-pointer w-100 mn-t-small bg-black t-white radius-small pd-small",
|
118
|
+
radio: state.filter.prices,
|
119
|
+
"onUpdate:radio": _cache[1] || (_cache[1] = (event) => state.filter.prices = event)
|
120
|
+
}, null, 8, ["label", "value", "radio"]);
|
121
|
+
}), 64))
|
122
|
+
])
|
123
|
+
]),
|
124
|
+
_: 1
|
125
|
+
}, 8, ["label", "class"]),
|
126
|
+
createVNode(_sfc_main$1, {
|
127
|
+
label: "Delivery",
|
128
|
+
id: "fitlerDelivery",
|
129
|
+
class: normalizeClass(["cursor-pointer pd-thin t-semi radius-extra uppercase p-medium", [
|
130
|
+
state.filter.delivery.length > 0 ? "bg-white t-black" : ""
|
131
|
+
]])
|
132
|
+
}, {
|
133
|
+
default: withCtx(() => [
|
134
|
+
createElementVNode("div", _hoisted_5, [
|
135
|
+
(openBlock(), createElementBlock(Fragment, null, renderList(delivery, (delivery2, index) => {
|
136
|
+
return createVNode(_sfc_main$2, {
|
137
|
+
label: delivery2.label,
|
138
|
+
name: "prices",
|
139
|
+
value: delivery2.value,
|
140
|
+
class: "cursor-pointer w-100 mn-t-small bg-black t-white radius-small pd-small",
|
141
|
+
radio: state.filter.delivery,
|
142
|
+
"onUpdate:radio": (event) => state.filter.delivery = event
|
143
|
+
}, null, 8, ["label", "value", "radio", "onUpdate:radio"]);
|
144
|
+
}), 64))
|
145
|
+
])
|
146
|
+
]),
|
147
|
+
_: 1
|
148
|
+
}, 8, ["class"])
|
149
|
+
])
|
150
|
+
]);
|
151
|
+
};
|
152
|
+
}
|
153
|
+
};
|
154
|
+
export {
|
155
|
+
_sfc_main as default
|
156
|
+
};
|
157
|
+
//# sourceMappingURL=Filters.vue.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Filters.vue.js","sources":["../../../../../../../src/modules/products/components/sections/Filters.vue"],"sourcesContent":["<template>\n\t<div class=\"z-index-1 pos-relative radius-big bg-black t-white pd-medium flex-v-center flex-nowrap flex\">\n <div class=\"mn-r-auto pd-micro gap-micro br-solid br-2px br-white radius-extra flex-nowrap flex\"\n >\n \t\t<Dropdown \n id=\"fitlerCategory\"\n \t\t\t:label=\"t('categoriesTitle')\" \n \t\t\tclass=\"cursor-pointer pd-thin t-semi radius-extra uppercase p-medium\"\n \t\t\t:class=\"[\n marketplace.state.filter.categories.length > 0 ? 'bg-white t-black' : ''\n ]\"\n \t\t>\n \t\t\t<div class=\"w-100 h-100 radius-semi o-hidden bg-black\">\n \t<Checkbox \n \t\t\t\tv-for=\"(category, index) in categories\"\n :label=\"category.name\"\n name=\"categories\"\n :value=\"category.url\"\n class=\"cursor-pointer w-100 bg-black t-white radius-small pd-small\"\n :radio=\"marketplace.state.filter.categories\"\n @update:radio=\"event => marketplace.state.filter.categories = event\"\n />\n \t</div>\n </Dropdown>\n\n <Dropdown \n id=\"fitlerPrice\"\n \t:label=\"t('filters.price.title')\" \n \tclass=\"cursor-pointer pd-thin t-semi radius-extra uppercase p-medium\"\n \t:class=\"[\n marketplace.state.filter.prices.length > 0 ? 'bg-white t-black' : ''\n ]\"\n >\n <div class=\"w-100 h-100 radius-semi o-hidden bg-black\">\n \t<Checkbox \n \t\t\t\tv-for=\"(price, index) in prices\"\n :label=\"price.label\"\n name=\"prices\"\n :value=\"price.value\"\n class=\"cursor-pointer w-100 mn-t-small bg-black t-white radius-small pd-small\"\n :radio=\"marketplace.state.filter.prices\"\n @update:radio=\"event => marketplace.state.filter.prices = event\"\n />\n </div>\n </Dropdown>\n\n <Dropdown \n \t label=\"Delivery\" \n id=\"fitlerDelivery\"\n \tclass=\"cursor-pointer pd-thin t-semi radius-extra uppercase p-medium\"\n \t:class=\"[\n marketplace.state.filter.delivery.length > 0 ? 'bg-white t-black' : ''\n ]\"\n >\n <div class=\"w-100 h-100 radius-semi o-hidden bg-black\">\n \t<Checkbox \n \t\t\t\tv-for=\"(delivery, index) in delivery\"\n :label=\"delivery.label\"\n name=\"prices\"\n :value=\"delivery.value\"\n class=\"cursor-pointer w-100 mn-t-small bg-black t-white radius-small pd-small\"\n :radio=\"marketplace.state.filter.delivery\"\n @update:radio=\"event => marketplace.state.filter.delivery = event\"\n />\n </div>\n </Dropdown>\n </div>\n </div>\n\n</template>\n\n<script setup>\n\timport { computed, onMounted, ref } from 'vue'\n\n \timport Checkbox from \"@pf/src/components/Checkbox/Checkbox.vue\";\n import Radio from \"@pf/src/components/Radio/Radio.vue\";\n \timport Select from \"@pf/src/components/Select/Select.vue\";\n \timport Dropdown from \"@pf/src/components/Dropdown/Dropdown.vue\";\n\n\timport { useI18n } from 'vue-i18n'\n\n\timport * as marketplace from '@pf/src/modules/products/store/marketplace';\n import * as categories from '@pf/src/modules/products/store/categories';\n\n\tconst delivery = [\n { label: 'Pickup',\t\t\t\t\tvalue: 'pickup' },\n { label: 'Courier',\t\t\t\t\tvalue: 'courier' },\n { label: 'Post',\t\t\t\t\t\tvalue: 'post' }\n\t]\n\n\tconst prices = [\n { label: 'Under 300฿',\t\t\t\tvalue: '<300' },\n { label: '300฿ to 600฿',\t\t\tvalue: '300-600' },\n { label: '600฿ to 1200฿',\t\t\tvalue: '600-1200' },\n { label: '$1200 and above',\t\tvalue: '>1200' }\n\t]\n\n\tconst text = {\n locale: 'en',\n messages: {\n en: {\n \tcategoriesTitle: 'Category',\n \tcategories: [],\n \tsort: {\n \t\tprice: 'By price',\n \t\tnewest: 'By newest',\n \t\tpopularity: 'By popularity'\n \t},\n \tfilters: {\n \t\ttitle: 'Filters',\n \t\tprice: {\n \t\t\ttitle: 'Price',\n \t\t\tfrom: 'From',\n \t\t\tto: 'To'\n \t\t},\n \t\tfilters: [],\n \t\treset: 'Reset Filters'\n \t}\n },\n ru: {\n \tcategoriesTitle: 'Категория',\n \tsort: {\n \t\tprice: 'По цене',\n \t\tnewest: 'По новизне',\n \t\tpopularity: 'По популярности'\n \t},\n \tfilters: {\n \t\ttitle: 'Фильтры',\n \t\tprice: {\n \t\t\ttitle: 'Цена',\n \t\t\tfrom: 'От',\n \t\t\tto: 'До'\n \t\t},\n \t\tfilters: [],\n \t\treset: 'Сбросить фильтры',\n \t}\n }\n }\n }\n\n\tconst { t } = useI18n(text)\n\n\tonMounted(async () => {\n let options = {\n status: 'published'\n }\n\n\t\tawait categories.actions.fetchCategories(options)\n\t})\n\n\t\n</script>"],"names":["categories.actions"],"mappings":";;;;;;;;;;;;;;;;AAoFC,UAAM,WAAW;AAAA,MACd,EAAE,OAAO,UAAc,OAAO,SAAU;AAAA,MACxC,EAAE,OAAO,WAAe,OAAO,UAAW;AAAA,MAC1C,EAAE,OAAO,QAAa,OAAO,OAAQ;AAAA,IACvC;AAED,UAAM,SAAS;AAAA,MACZ,EAAE,OAAO,cAAiB,OAAO,OAAQ;AAAA,MACzC,EAAE,OAAO,gBAAkB,OAAO,UAAW;AAAA,MAC7C,EAAE,OAAO,iBAAmB,OAAO,WAAY;AAAA,MAC/C,EAAE,OAAO,mBAAoB,OAAO,QAAS;AAAA,IAC/C;AAED,UAAM,OAAO;AAAA,MACV,QAAQ;AAAA,MACR,UAAU;AAAA,QACR,IAAI;AAAA,UACH,iBAAiB;AAAA,UACjB,YAAY,CAAE;AAAA,UACd,MAAM;AAAA,YACL,OAAO;AAAA,YACP,QAAQ;AAAA,YACR,YAAY;AAAA,UACZ;AAAA,UACD,SAAS;AAAA,YACR,OAAO;AAAA,YACP,OAAO;AAAA,cACN,OAAO;AAAA,cACP,MAAM;AAAA,cACN,IAAI;AAAA,YACJ;AAAA,YACD,SAAS,CAAE;AAAA,YACX,OAAO;AAAA,UACP;AAAA,QACD;AAAA,QACD,IAAI;AAAA,UACH,iBAAiB;AAAA,UACjB,MAAM;AAAA,YACL,OAAO;AAAA,YACP,QAAQ;AAAA,YACR,YAAY;AAAA,UACZ;AAAA,UACD,SAAS;AAAA,YACR,OAAO;AAAA,YACP,OAAO;AAAA,cACN,OAAO;AAAA,cACP,MAAM;AAAA,cACN,IAAI;AAAA,YACJ;AAAA,YACD,SAAS,CAAE;AAAA,YACX,OAAO;AAAA,UACP;AAAA,QACD;AAAA,MACF;AAAA,IACF;AAEF,UAAM,EAAE,EAAC,IAAK,QAAQ,IAAI;AAE1B,cAAU,YAAY;AACnB,UAAI,UAAU;AAAA,QACZ,QAAQ;AAAA,MACT;AAEH,YAAMA,QAAmB,gBAAgB,OAAO;AAAA,IAClD,CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
@@ -100,7 +100,7 @@ const _sfc_main = {
|
|
100
100
|
(vue.openBlock(), vue.createElementBlock(vue.Fragment, null, vue.renderList(presets, (preset, index) => {
|
101
101
|
return vue.createElementVNode("button", {
|
102
102
|
key: preset,
|
103
|
-
onClick: vue.withModifiers(($event) => vue.unref(router).push({ name: "
|
103
|
+
onClick: vue.withModifiers(($event) => vue.unref(router).push({ name: "ProductRecommmendation", query: { mood: preset } }), ["stop"]),
|
104
104
|
class: "uppercase pd-thin t-medium flex-center flex-column flex-nowrap flex bg-dark-transp-50 bg-blur-thin radius-semi cursor-pointer transition-elastic hover-easeInOut-1"
|
105
105
|
}, [
|
106
106
|
vue.createElementVNode("img", {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"HeroRecommendation.vue.cjs","sources":["../../../../../../../src/modules/products/components/sections/HeroRecommendation.vue"],"sourcesContent":["<script setup>\n\timport { ref, onMounted } from 'vue'\n\n\timport FieldBig from \"@pf/src/components/FieldBig/FieldBig.vue\";\n\timport Shader from \"@pf/src/components/Shader/Shader.vue\";\n\n\timport { useRouter } from 'vue-router'\n\timport { useI18n } from 'vue-i18n'\n\n\timport * as products from '@pf/src/modules/products/store/products';\n\n\tconst router = useRouter()\n\n\tconst text = {\n messages: {\n \"en\": {\n\t\t \"title\": \"Increase Your High <br><b class='t-main'>Boosted by AI Budtender</b>\",\n\t\t \"description\": \"Just tell us what you're want, and Weeder will find your ideal match.\",\n\t\t \"placeholderTexts\": [\n\t\t \t'Lowest THC, please!',\n\t\t \t'Something with banana flavors?',\n\t\t \t\"I'm in the mood for trippy vibes.\"\n\t\t ],\n\t\t \"subdescription\": \"AI Curated Recommendations for Your Mood:\",\n\t\t \"presets\": {\n\t\t \"sleep\": \"sleep\",\n\t\t \"creative\": \"creative\",\n\t\t \"giggly\": \"giggly\",\n\t\t \"libido\": \"libido\",\n\t\t \"trippy\": \"trippy\",\n\t\t \"euphoric\": \"euphoric\"\n\t\t },\n\t\t \"placeholder\": \"Tell us what you're after...\",\n\t\t \"action\": \"Transmit\"\n\t\t },\n\t\t \"ru\": {\n\t\t \"title\": \"Персональный Накур,<br><b class='t-main'>Напрямую от AI</b>\",\n\t\t \"description\": \"AI на страже твоего релакса, бро. Мы подбираем самые космические товары с учетом твоего желаемого настроения:\",\n\t\t \"placeholderTexts\": [\n\t\t \t'Я хочу самый низкий THC',\n\t\t \t'Я хочу чего-нибудь бананового',\n\t\t \t'Я хочу курнуть хейза'\n\t\t ],\n\t\t \t \"presets\": {\n\t\t \"sleep\": \"сон\",\n\t\t \"creative\": \"креатив\",\n\t\t \"giggly\": \"смех\",\n\t\t \"libido\": \"либидо\",\n\t\t \"trippy\": \"трип\",\n\t\t \"euphoric\": \"кайф\"\n\t\t },\n\t\t \"subdescription\": \"Или выберите тег, и наш AI направит тебя к самым крутым вариантам:\",\n\t\t \"placeholder\": \"Опиши свой желаемый хай, bro...\",\n\t\t \"action\": \"Передать\"\n\t\t }\n\t\t}\t\n\t}\n\n\tconst { t, rt } = useI18n(text)\n\n\tlet mood = ref('')\n\n\tconst presets = ['sleep','creative','giggly','libido','trippy','euphoric'];\n\n\tasync function submitMood(presetMood = null) {\n\t\tconst moodToSend = presetMood || mood.value;\n\t\tawait products.actions.submitMood(moodToSend);\n\t}\n\n\t\n</script>\n\n<template>\n\t<div \n\t\tclass=\"pd-big bg-black t-white pos-relative o-hidden \"\n\t>\n\t\t<div class=\"flex-column flex-center flex t-center pos-relative z-index-1\">\n\t\t\t\n\t\t\t<h1 \n\t\t\t\tclass=\"mn-b-semi\" \n\t\t\t\tv-html=\"t('title')\"\n\t\t\t/>\n\n\t\t\t<p \n\t\t\t\tclass=\"mn-b-big p-big t-transp\" \n\t\t\t\tv-html=\"t('description')\"\n\t\t\t/>\n\t\t\t\n\t\t\t<FieldBig \n\t\t\t\t:input=\"mood\" \n\t\t :typingSpeed=\"100\"\n\t\t :loopTyping=\"true\"\n\t\t :enableTyping=\"true\"\n\t\t :placeholder=\"t('placeholder')\"\n\t\t :action=\"t('action')\"\n\t\t @update:input=\"mood = $event\"\n\t\t @action=\"router.push({name: 'Product Recommmendation', query: {mood: mood}})\"\n\t\t\t\tclass=\"mn-b-big pd-big bg-dark-transp-50 bg-blur-thin w-100 w-max-40r\"\n\t\t\t/>\n\n\t\t\t<p \n\t\t\t\tclass=\"w-m-60r t-transp mn-b-semi p-medium\" \n\t\t\t\tv-html=\"t('subdescription')\"\n\t\t\t/>\n\n\t\t\t<div style=\"max-width: 50rem;\" class=\"w-100 h-max gap-thin cols-6\">\n\n\t\t\t\t<button \n\t\t\t\t\tv-for=\"(preset,index) in presets\" \n\t\t\t\t\t:key=\"preset\" \n\t\t\t\t\t@click.stop=\"router.push({name: '
|
1
|
+
{"version":3,"file":"HeroRecommendation.vue.cjs","sources":["../../../../../../../src/modules/products/components/sections/HeroRecommendation.vue"],"sourcesContent":["<script setup>\n\timport { ref, onMounted } from 'vue'\n\n\timport FieldBig from \"@pf/src/components/FieldBig/FieldBig.vue\";\n\timport Shader from \"@pf/src/components/Shader/Shader.vue\";\n\n\timport { useRouter } from 'vue-router'\n\timport { useI18n } from 'vue-i18n'\n\n\timport * as products from '@pf/src/modules/products/store/products';\n\n\tconst router = useRouter()\n\n\tconst text = {\n messages: {\n \"en\": {\n\t\t \"title\": \"Increase Your High <br><b class='t-main'>Boosted by AI Budtender</b>\",\n\t\t \"description\": \"Just tell us what you're want, and Weeder will find your ideal match.\",\n\t\t \"placeholderTexts\": [\n\t\t \t'Lowest THC, please!',\n\t\t \t'Something with banana flavors?',\n\t\t \t\"I'm in the mood for trippy vibes.\"\n\t\t ],\n\t\t \"subdescription\": \"AI Curated Recommendations for Your Mood:\",\n\t\t \"presets\": {\n\t\t \"sleep\": \"sleep\",\n\t\t \"creative\": \"creative\",\n\t\t \"giggly\": \"giggly\",\n\t\t \"libido\": \"libido\",\n\t\t \"trippy\": \"trippy\",\n\t\t \"euphoric\": \"euphoric\"\n\t\t },\n\t\t \"placeholder\": \"Tell us what you're after...\",\n\t\t \"action\": \"Transmit\"\n\t\t },\n\t\t \"ru\": {\n\t\t \"title\": \"Персональный Накур,<br><b class='t-main'>Напрямую от AI</b>\",\n\t\t \"description\": \"AI на страже твоего релакса, бро. Мы подбираем самые космические товары с учетом твоего желаемого настроения:\",\n\t\t \"placeholderTexts\": [\n\t\t \t'Я хочу самый низкий THC',\n\t\t \t'Я хочу чего-нибудь бананового',\n\t\t \t'Я хочу курнуть хейза'\n\t\t ],\n\t\t \t \"presets\": {\n\t\t \"sleep\": \"сон\",\n\t\t \"creative\": \"креатив\",\n\t\t \"giggly\": \"смех\",\n\t\t \"libido\": \"либидо\",\n\t\t \"trippy\": \"трип\",\n\t\t \"euphoric\": \"кайф\"\n\t\t },\n\t\t \"subdescription\": \"Или выберите тег, и наш AI направит тебя к самым крутым вариантам:\",\n\t\t \"placeholder\": \"Опиши свой желаемый хай, bro...\",\n\t\t \"action\": \"Передать\"\n\t\t }\n\t\t}\t\n\t}\n\n\tconst { t, rt } = useI18n(text)\n\n\tlet mood = ref('')\n\n\tconst presets = ['sleep','creative','giggly','libido','trippy','euphoric'];\n\n\tasync function submitMood(presetMood = null) {\n\t\tconst moodToSend = presetMood || mood.value;\n\t\tawait products.actions.submitMood(moodToSend);\n\t}\n\n\t\n</script>\n\n<template>\n\t<div \n\t\tclass=\"pd-big bg-black t-white pos-relative o-hidden \"\n\t>\n\t\t<div class=\"flex-column flex-center flex t-center pos-relative z-index-1\">\n\t\t\t\n\t\t\t<h1 \n\t\t\t\tclass=\"mn-b-semi\" \n\t\t\t\tv-html=\"t('title')\"\n\t\t\t/>\n\n\t\t\t<p \n\t\t\t\tclass=\"mn-b-big p-big t-transp\" \n\t\t\t\tv-html=\"t('description')\"\n\t\t\t/>\n\t\t\t\n\t\t\t<FieldBig \n\t\t\t\t:input=\"mood\" \n\t\t :typingSpeed=\"100\"\n\t\t :loopTyping=\"true\"\n\t\t :enableTyping=\"true\"\n\t\t :placeholder=\"t('placeholder')\"\n\t\t :action=\"t('action')\"\n\t\t @update:input=\"mood = $event\"\n\t\t @action=\"router.push({name: 'Product Recommmendation', query: {mood: mood}})\"\n\t\t\t\tclass=\"mn-b-big pd-big bg-dark-transp-50 bg-blur-thin w-100 w-max-40r\"\n\t\t\t/>\n\n\t\t\t<p \n\t\t\t\tclass=\"w-m-60r t-transp mn-b-semi p-medium\" \n\t\t\t\tv-html=\"t('subdescription')\"\n\t\t\t/>\n\n\t\t\t<div style=\"max-width: 50rem;\" class=\"w-100 h-max gap-thin cols-6\">\n\n\t\t\t\t<button \n\t\t\t\t\tv-for=\"(preset,index) in presets\" \n\t\t\t\t\t:key=\"preset\" \n\t\t\t\t\t@click.stop=\"router.push({name: 'ProductRecommmendation', query: {mood: preset}})\"\n\t\t\t\t\tclass=\"\n\t\t\t\t\t\tuppercase \n\t\t\t\t\t\tpd-thin\n\t\t\t\t\t\tt-medium\n\t\t\t\t\t\tflex-center\n\t\t\t\t\t\tflex-column\n\t\t\t\t\t\tflex-nowrap\n\t\t\t\t\t\tflex\n\t\t\t\t\t\tbg-dark-transp-50 \n\t\t\t\t\t\tbg-blur-thin\n\t\t\t\t\t\tradius-semi\n\t\t\t\t\t\tcursor-pointer\n\t\t\t\t\t\ttransition-elastic\n\t\t\t\t\t\thover-easeInOut-1 \n\t\t\t\t\t\"\n\t\t\t\t>\n\t\t\t\t\t<img loading=\"lazy\" \n\t\t\t\t\t\t:src=\"(FILE_SERVER_URL || '') + '/icons/moods/' + preset + '.svg'\" \n\t\t\t\t\t\tclass=\"w-100\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<span class=\"t-white\"> \n\t\t\t\t\t\t{{ t(`presets.` + preset) }}\n\t\t\t\t\t</span>\n\t\t\t\t</button>\n\n\t\t\t</div>\n\n\t\t</div>\n\n\t\t<!-- <Shader class=\"w-100 h-100 flex flex-center pos-absolute pos-t-0 pos-r-0 z-index-0\"/> -->\n\n <!-- <div class=\"w-100 h-100 flex flex-center pos-absolute pos-t-0 pos-r-0 z-index-0\">\n \t <div style=\"background-image: url(/spiral.jpg)\" class=\"spiral\"></div>\n </div> -->\n\n\t</div>\n</template>\n\n<style>\n.spiral {\n\t\n background-size: cover;\n width: 100rem;\n height: 100rem;\n position: absolute;\n top: 50%;\n left: 50%;\n opacity: 0.066;\n transform: translate(-50%, -50%) rotate(0deg);\n transform-origin: center center;\n animation: spin 5s linear infinite;\n}\n\n@keyframes spin {\n 0% {\n transform: translate(-50%, -50%) rotate(0deg);\n }\n 100% {\n transform: translate(-50%, -50%) rotate(360deg);\n }\n}\n</style>"],"names":["useRouter","useI18n","ref"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAWC,UAAM,SAASA,UAAAA,UAAW;AAE1B,UAAM,OAAO;AAAA,MACV,UAAU;AAAA,QACR,MAAM;AAAA,UACN,SAAS;AAAA,UACT,eAAe;AAAA,UACf,oBAAoB;AAAA,YACnB;AAAA,YACA;AAAA,YACA;AAAA,UACA;AAAA,UACD,kBAAkB;AAAA,UAClB,WAAW;AAAA,YACT,SAAS;AAAA,YACT,YAAY;AAAA,YACZ,UAAU;AAAA,YACV,UAAU;AAAA,YACV,UAAU;AAAA,YACV,YAAY;AAAA,UACb;AAAA,UACD,eAAe;AAAA,UACf,UAAU;AAAA,QACX;AAAA,QACD,MAAM;AAAA,UACJ,SAAS;AAAA,UACT,eAAe;AAAA,UACf,oBAAoB;AAAA,YACnB;AAAA,YACA;AAAA,YACA;AAAA,UACA;AAAA,UACA,WAAW;AAAA,YACV,SAAS;AAAA,YACT,YAAY;AAAA,YACZ,UAAU;AAAA,YACV,UAAU;AAAA,YACV,UAAU;AAAA,YACV,YAAY;AAAA,UACb;AAAA,UACD,kBAAkB;AAAA,UAClB,eAAe;AAAA,UACf,UAAU;AAAA,QACX;AAAA,MACF;AAAA,IACD;AAED,UAAM,EAAE,GAAG,OAAOC,QAAAA,QAAQ,IAAI;AAE9B,QAAI,OAAOC,IAAG,IAAC,EAAE;AAEjB,UAAM,UAAU,CAAC,SAAQ,YAAW,UAAS,UAAS,UAAS,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/prometheus-framework/src/modules/products/components/sections/HeroRecommendation.vue.js
CHANGED
@@ -98,7 +98,7 @@ const _sfc_main = {
|
|
98
98
|
(openBlock(), createElementBlock(Fragment, null, renderList(presets, (preset, index) => {
|
99
99
|
return createElementVNode("button", {
|
100
100
|
key: preset,
|
101
|
-
onClick: withModifiers(($event) => unref(router).push({ name: "
|
101
|
+
onClick: withModifiers(($event) => unref(router).push({ name: "ProductRecommmendation", query: { mood: preset } }), ["stop"]),
|
102
102
|
class: "uppercase pd-thin t-medium flex-center flex-column flex-nowrap flex bg-dark-transp-50 bg-blur-thin radius-semi cursor-pointer transition-elastic hover-easeInOut-1"
|
103
103
|
}, [
|
104
104
|
createElementVNode("img", {
|