@ozdao/martyrs 0.2.505 → 0.2.507
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/index.cjs +4 -4
- package/dist/_virtual/index.js +4 -4
- package/dist/_virtual/index2.cjs +4 -4
- package/dist/_virtual/index2.js +4 -4
- package/dist/auth.server.cjs +1 -1
- package/dist/auth.server.js +1 -1
- package/dist/builder.cjs +52 -60
- package/dist/builder.js +52 -60
- package/dist/chats.server.cjs +1 -1
- package/dist/chats.server.js +1 -1
- package/dist/events.server.cjs +1 -1
- package/dist/events.server.js +1 -1
- package/dist/{mailing-q7sR8gCV.cjs → mailing-Bs9ThyVZ.cjs} +1 -24
- package/dist/{mailing-C11EYWm-.js → mailing-DzlhsxCC.js} +1 -24
- package/dist/main-AWSb_d2P.cjs +11 -0
- package/dist/{main-CJm5myDI.js → main-Dq-UfO4G.js} +2562 -2477
- package/dist/martyrs/src/components/Button/Button.vue2.cjs +1 -1
- package/dist/martyrs/src/components/Button/Button.vue2.js +1 -1
- package/dist/martyrs/src/components/Checkbox/Checkbox.vue.cjs +3 -3
- package/dist/martyrs/src/components/Checkbox/Checkbox.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Checkbox/Checkbox.vue.js +3 -3
- package/dist/martyrs/src/components/Checkbox/Checkbox.vue.js.map +1 -1
- package/dist/martyrs/src/components/Feed/Carousel.vue.cjs +1 -1
- package/dist/martyrs/src/components/Feed/Carousel.vue.js +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.cjs +15 -46
- package/dist/martyrs/src/components/Feed/Feed.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.js +22 -53
- package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
- package/dist/martyrs/src/components/Field/Field.vue.cjs +14 -6
- package/dist/martyrs/src/components/Field/Field.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Field/Field.vue.js +14 -6
- package/dist/martyrs/src/components/Field/Field.vue.js.map +1 -1
- package/dist/martyrs/src/components/FieldBig/FieldBig.vue.cjs +58 -11
- package/dist/martyrs/src/components/FieldBig/FieldBig.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +60 -13
- package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js.map +1 -1
- package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.cjs +1 -1
- package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.js +1 -1
- package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.js.map +1 -1
- package/dist/martyrs/src/components/FieldTags/FieldTags.vue.cjs +1 -1
- package/dist/martyrs/src/components/FieldTags/FieldTags.vue.js +1 -1
- package/dist/martyrs/src/components/Loader/{Loader.vue2.cjs → Loader.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Loader/{Loader.vue2.js.map → Loader.vue.cjs.map} +1 -1
- package/dist/martyrs/src/components/Loader/{Loader.vue2.js → Loader.vue.js} +2 -2
- package/dist/martyrs/src/components/Loader/Loader.vue.js.map +1 -0
- package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue2.cjs +1 -1
- package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue2.js +1 -1
- package/dist/martyrs/src/components/Menu/{Menu.vue2.cjs → Menu.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Menu/Menu.vue.cjs.map +1 -0
- package/dist/martyrs/src/components/Menu/{Menu.vue2.js → Menu.vue.js} +2 -2
- package/dist/martyrs/src/components/Menu/Menu.vue.js.map +1 -0
- package/dist/martyrs/src/components/PhotoViewer/PhotoViewer.vue.cjs +2 -2
- package/dist/martyrs/src/components/PhotoViewer/PhotoViewer.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/PhotoViewer/PhotoViewer.vue.js +2 -2
- package/dist/martyrs/src/components/PhotoViewer/PhotoViewer.vue.js.map +1 -1
- package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.cjs +1 -1
- package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +3 -3
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +3 -3
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.cjs +42 -10
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +44 -12
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.cjs +11 -15
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +21 -25
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.cjs +12 -16
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +33 -37
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditSidebar.vue.cjs +13 -9
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditSidebar.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditSidebar.vue.js +13 -9
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditSidebar.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/router/users.cjs +0 -4
- package/dist/martyrs/src/modules/auth/views/router/users.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/router/users.js +0 -4
- package/dist/martyrs/src/modules/auth/views/router/users.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs +1 -1
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +1 -1
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/pages/Posts.vue.cjs +431 -0
- package/dist/martyrs/src/modules/community/components/pages/Posts.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/community/components/pages/Posts.vue.js +431 -0
- package/dist/martyrs/src/modules/community/components/pages/Posts.vue.js.map +1 -0
- package/dist/martyrs/src/modules/community/router/blogposts.cjs +17 -0
- package/dist/martyrs/src/modules/community/router/blogposts.cjs.map +1 -1
- package/dist/martyrs/src/modules/community/router/blogposts.js +17 -0
- package/dist/martyrs/src/modules/community/router/blogposts.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +1 -3
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +1 -3
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/sections/Feed.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/sections/Feed.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/sections/List.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/sections/List.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.js +1 -1
- package/dist/martyrs/src/modules/globals/views/classes/globals.websocket.cjs +4 -6
- package/dist/martyrs/src/modules/globals/views/classes/globals.websocket.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/classes/globals.websocket.js +4 -6
- package/dist/martyrs/src/modules/globals/views/classes/globals.websocket.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/{BlockMultiselect.vue2.cjs → BlockMultiselect.vue.cjs} +2 -2
- package/dist/martyrs/src/modules/globals/views/components/blocks/{BlockMultiselect.vue2.js.map → BlockMultiselect.vue.cjs.map} +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/{BlockMultiselect.vue2.js → BlockMultiselect.vue.js} +2 -2
- package/dist/martyrs/src/modules/globals/views/components/blocks/BlockMultiselect.vue.js.map +1 -0
- package/dist/martyrs/src/modules/globals/views/components/blocks/Card.vue.cjs +5 -2
- package/dist/martyrs/src/modules/globals/views/components/blocks/Card.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/Card.vue.js +6 -3
- package/dist/martyrs/src/modules/globals/views/components/blocks/Card.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +2 -3
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +2 -3
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.cjs +324 -0
- package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.cjs.map +1 -0
- package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.js +324 -0
- package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.js.map +1 -0
- package/dist/martyrs/src/modules/icons/entities/IconLock.vue.cjs +32 -0
- package/dist/martyrs/src/modules/icons/entities/IconLock.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/icons/entities/IconLock.vue.js +32 -0
- package/dist/martyrs/src/modules/icons/entities/IconLock.vue.js.map +1 -0
- package/dist/martyrs/src/modules/icons/icons.client.cjs +2 -0
- package/dist/martyrs/src/modules/icons/icons.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/icons.client.js +116 -114
- package/dist/martyrs/src/modules/icons/icons.client.js.map +1 -1
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.cjs +5 -3
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js +117 -115
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js.map +1 -1
- package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.cjs +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SubscribeNewsletter.vue.cjs +11 -36
- package/dist/martyrs/src/modules/landing/components/sections/SubscribeNewsletter.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SubscribeNewsletter.vue.js +11 -36
- package/dist/martyrs/src/modules/landing/components/sections/SubscribeNewsletter.vue.js.map +1 -1
- package/dist/martyrs/src/modules/landing/landing.client.cjs +3 -0
- package/dist/martyrs/src/modules/landing/landing.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/landing/landing.client.js +3 -0
- package/dist/martyrs/src/modules/landing/landing.client.js.map +1 -1
- package/dist/martyrs/src/modules/landing/locales/en.cjs +12 -0
- package/dist/martyrs/src/modules/landing/locales/en.cjs.map +1 -0
- package/dist/martyrs/src/modules/landing/locales/en.js +12 -0
- package/dist/martyrs/src/modules/landing/locales/en.js.map +1 -0
- package/dist/martyrs/src/modules/landing/locales/index.cjs +10 -0
- package/dist/martyrs/src/modules/landing/locales/index.cjs.map +1 -0
- package/dist/martyrs/src/modules/landing/locales/index.js +10 -0
- package/dist/martyrs/src/modules/landing/locales/index.js.map +1 -0
- package/dist/martyrs/src/modules/landing/locales/ru.cjs +12 -0
- package/dist/martyrs/src/modules/landing/locales/ru.cjs.map +1 -0
- package/dist/martyrs/src/modules/landing/locales/ru.js +12 -0
- package/dist/martyrs/src/modules/landing/locales/ru.js.map +1 -0
- package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.cjs +1 -1
- package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.cjs +2 -2
- package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs +2 -2
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs +2 -2
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs +2 -2
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.js +1 -1
- package/dist/martyrs/src/modules/music/router/music.cjs +2 -4
- package/dist/martyrs/src/modules/music/router/music.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/router/music.js +2 -4
- package/dist/martyrs/src/modules/music/router/music.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardApplication.vue.cjs +86 -0
- package/dist/martyrs/src/modules/orders/components/blocks/CardApplication.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/orders/components/blocks/CardApplication.vue.js +86 -0
- package/dist/martyrs/src/modules/orders/components/blocks/CardApplication.vue.js.map +1 -0
- package/dist/martyrs/src/modules/orders/components/blocks/CardCustomer.vue.cjs +103 -0
- package/dist/martyrs/src/modules/orders/components/blocks/CardCustomer.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/orders/components/blocks/CardCustomer.vue.js +103 -0
- package/dist/martyrs/src/modules/orders/components/blocks/CardCustomer.vue.js.map +1 -0
- package/dist/martyrs/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue.cjs +194 -0
- package/dist/martyrs/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue.js +194 -0
- package/dist/martyrs/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue.js.map +1 -0
- package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.cjs +138 -0
- package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +138 -0
- package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js.map +1 -0
- package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.cjs +189 -0
- package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +189 -0
- package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js.map +1 -0
- package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.cjs +173 -0
- package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js +173 -0
- package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js.map +1 -0
- package/dist/martyrs/src/modules/orders/components/pages/Applications.vue.cjs +233 -0
- package/dist/martyrs/src/modules/orders/components/pages/Applications.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/orders/components/pages/Applications.vue.js +233 -0
- package/dist/martyrs/src/modules/orders/components/pages/Applications.vue.js.map +1 -0
- package/dist/martyrs/src/modules/orders/components/pages/Customers.vue.cjs +234 -0
- package/dist/martyrs/src/modules/orders/components/pages/Customers.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/orders/components/pages/Customers.vue.js +234 -0
- package/dist/martyrs/src/modules/orders/components/pages/Customers.vue.js.map +1 -0
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs +9 -8
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +9 -8
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +8 -82
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +9 -83
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.cjs +119 -0
- package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js +119 -0
- package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js.map +1 -0
- package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.cjs +139 -0
- package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js +139 -0
- package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js.map +1 -0
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +1 -3
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +1 -3
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/locales/en.cjs +38 -0
- package/dist/martyrs/src/modules/orders/locales/en.cjs.map +1 -0
- package/dist/martyrs/src/modules/orders/locales/en.js +38 -0
- package/dist/martyrs/src/modules/orders/locales/en.js.map +1 -0
- package/dist/martyrs/src/modules/orders/locales/index.cjs +10 -0
- package/dist/martyrs/src/modules/orders/locales/index.cjs.map +1 -0
- package/dist/martyrs/src/modules/orders/locales/index.js +10 -0
- package/dist/martyrs/src/modules/orders/locales/index.js.map +1 -0
- package/dist/martyrs/src/modules/orders/locales/ru.cjs +38 -0
- package/dist/martyrs/src/modules/orders/locales/ru.cjs.map +1 -0
- package/dist/martyrs/src/modules/orders/locales/ru.js +38 -0
- package/dist/martyrs/src/modules/orders/locales/ru.js.map +1 -0
- package/dist/martyrs/src/modules/orders/orders.client.cjs +78 -3
- package/dist/martyrs/src/modules/orders/orders.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/orders.client.js +80 -5
- package/dist/martyrs/src/modules/orders/orders.client.js.map +1 -1
- package/dist/martyrs/src/modules/orders/router/applications.router.cjs +17 -0
- package/dist/martyrs/src/modules/orders/router/applications.router.cjs.map +1 -0
- package/dist/martyrs/src/modules/orders/router/applications.router.js +17 -0
- package/dist/martyrs/src/modules/orders/router/applications.router.js.map +1 -0
- package/dist/martyrs/src/modules/orders/router/customers.router.cjs +18 -0
- package/dist/martyrs/src/modules/orders/router/customers.router.cjs.map +1 -0
- package/dist/martyrs/src/modules/orders/router/customers.router.js +18 -0
- package/dist/martyrs/src/modules/orders/router/customers.router.js.map +1 -0
- package/dist/martyrs/src/modules/orders/store/applications.cjs +4 -42
- package/dist/martyrs/src/modules/orders/store/applications.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/store/applications.js +3 -41
- package/dist/martyrs/src/modules/orders/store/applications.js.map +1 -1
- package/dist/martyrs/src/modules/orders/store/models/application.cjs +20 -0
- package/dist/martyrs/src/modules/orders/store/models/application.cjs.map +1 -0
- package/dist/martyrs/src/modules/orders/store/models/application.js +20 -0
- package/dist/martyrs/src/modules/orders/store/models/application.js.map +1 -0
- package/dist/martyrs/src/modules/orders/store/models/customer.cjs +13 -1
- package/dist/martyrs/src/modules/orders/store/models/customer.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/store/models/customer.js +13 -1
- package/dist/martyrs/src/modules/orders/store/models/customer.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +18 -194
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +19 -195
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.cjs +2 -11
- package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.js +6 -15
- package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.cjs +85 -89
- package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.js +92 -96
- package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/router/organizations.cjs +5 -1
- package/dist/martyrs/src/modules/organizations/router/organizations.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/router/organizations.js +5 -1
- package/dist/martyrs/src/modules/organizations/router/organizations.js.map +1 -1
- package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.cjs +1 -1
- package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/Page.vue.cjs +3 -6
- package/dist/martyrs/src/modules/pages/views/components/pages/Page.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/Page.vue.js +3 -6
- package/dist/martyrs/src/modules/pages/views/components/pages/Page.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/elements/Image360.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/elements/Image360.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs +22 -19
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +22 -19
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +27 -18
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +27 -18
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductRecommmendation.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductRecommmendation.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs +361 -106
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +379 -124
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs +20 -6
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +20 -6
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.cjs +32 -2
- package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +33 -3
- package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/router/products.router.cjs +15 -0
- package/dist/martyrs/src/modules/products/router/products.router.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/router/products.router.js +15 -0
- package/dist/martyrs/src/modules/products/router/products.router.js.map +1 -1
- package/dist/martyrs/src/modules/products/store/categories.cjs +25 -7
- package/dist/martyrs/src/modules/products/store/categories.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/store/categories.js +25 -7
- package/dist/martyrs/src/modules/products/store/categories.js.map +1 -1
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs +1 -1
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +1 -1
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js.map +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.cjs +345 -0
- package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.js +345 -0
- package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.js.map +1 -0
- package/dist/martyrs/src/modules/spots/router/spots.cjs +17 -0
- package/dist/martyrs/src/modules/spots/router/spots.cjs.map +1 -1
- package/dist/martyrs/src/modules/spots/router/spots.js +17 -0
- package/dist/martyrs/src/modules/spots/router/spots.js.map +1 -1
- package/dist/martyrs.cjs.js +1 -1
- package/dist/martyrs.css +1 -1
- package/dist/martyrs.es.js +1 -1
- package/dist/notifications.server.cjs +1 -1
- package/dist/notifications.server.js +1 -1
- package/dist/orders.server.cjs +459 -201
- package/dist/orders.server.js +459 -201
- package/dist/organizations.server.cjs +1 -1
- package/dist/organizations.server.js +1 -1
- package/dist/products.server.cjs +439 -255
- package/dist/products.server.js +439 -255
- package/dist/style.css +115 -139
- package/dist/{tickets.controller-DQQcjyui.js → tickets.controller-C56OvH6v.js} +1 -1
- package/dist/{tickets.controller-D0V0gJCA.cjs → tickets.controller-DdnndM6c.cjs} +1 -1
- package/dist/wallet.server.cjs +1 -1
- package/dist/wallet.server.js +1 -1
- package/dist/{web-Dkk0_7TA.js → web-BXajFCU2.js} +1 -1
- package/dist/{web-stVkXd0l.cjs → web-DaBwwCQ5.cjs} +1 -1
- package/package.json +1 -1
- package/src/builder/modes/ssr.dev.js +10 -10
- package/src/builder/rspack/rspack.config.ssr.client.js +50 -50
- package/src/components/Checkbox/Checkbox.vue +3 -4
- package/src/components/Feed/Feed.old.vue +522 -0
- package/src/components/Feed/Feed.vue +4 -4
- package/src/components/Field/Field.vue +7 -1
- package/src/components/FieldBig/FieldBig.vue +62 -8
- package/src/components/FieldPhone/FieldPhone.vue +1 -1
- package/src/components/PhotoViewer/PhotoViewer.vue +1 -1
- package/src/modules/STYLES.MD +198 -0
- package/src/modules/auth/views/components/pages/Profile.vue +1 -1
- package/src/modules/auth/views/components/pages/ProfileEdit.vue +42 -8
- package/src/modules/auth/views/components/pages/ProfileEditAccount.vue +9 -11
- package/src/modules/auth/views/components/pages/ProfileEditProfile.vue +9 -11
- package/src/modules/auth/views/components/pages/ProfileEditSidebar.vue +7 -4
- package/src/modules/auth/views/router/users.js +0 -4
- package/src/modules/community/components/pages/Posts.vue +444 -0
- package/src/modules/community/router/blogposts.js +15 -0
- package/src/modules/events/components/pages/EventsBackoffice.vue +1 -1
- package/src/modules/globals/views/classes/globals.websocket.js +7 -8
- package/src/modules/globals/views/components/blocks/Card.vue +2 -1
- package/src/modules/globals/views/components/layouts/Client.vue +1 -2
- package/src/modules/globals/views/components/partials/FooterAlt.vue +161 -188
- package/src/modules/globals/views/components/sections/Filters.vue +261 -121
- package/src/modules/globals/views/components/sections/filters/FilterCheckbox.vue +78 -0
- package/src/modules/globals/views/components/sections/filters/FilterDateRange.vue +177 -0
- package/src/modules/globals/views/components/sections/filters/FilterRange.vue +51 -50
- package/src/modules/icons/entities/IconLock.vue +14 -0
- package/src/modules/icons/icons.client.js +2 -1
- package/src/modules/icons/pages/IconsPage.vue +4 -2
- package/src/modules/landing/components/sections/SubscribeNewsletter.vue +11 -61
- package/src/modules/landing/landing.client.js +6 -0
- package/src/modules/landing/locales/en.js +9 -0
- package/src/modules/landing/locales/index.js +7 -0
- package/src/modules/landing/locales/ru.js +9 -0
- package/src/modules/music/components/pages/Album.vue +1 -1
- package/src/modules/music/components/pages/Playlist.vue +1 -1
- package/src/modules/music/components/pages/Track.vue +1 -1
- package/src/modules/orders/components/blocks/CardApplication.vue +74 -0
- package/src/modules/orders/components/blocks/CardCustomer.vue +90 -0
- package/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue +199 -0
- package/src/modules/orders/components/forms/FormApplicationDetails.vue +117 -0
- package/src/modules/orders/components/forms/FormCustomerDetails.vue +165 -0
- package/src/modules/orders/components/forms/FormSelectCustomer.vue +172 -0
- package/src/modules/orders/components/pages/Applications.vue +240 -0
- package/src/modules/orders/components/pages/Customers.vue +239 -0
- package/src/modules/orders/components/pages/OrderCreate.vue +2 -2
- package/src/modules/orders/components/pages/OrderCreateBackoffice.vue +5 -76
- package/src/modules/orders/components/sections/ApplicationDetails.vue +91 -0
- package/src/modules/orders/components/sections/CustomerDetails.vue +107 -0
- package/src/modules/orders/locales/en.js +35 -0
- package/src/modules/orders/locales/index.js +7 -0
- package/src/modules/orders/locales/ru.js +35 -0
- package/src/modules/orders/middlewares/applications.verifier.js +189 -0
- package/src/modules/orders/middlewares/customers.verifier.js +251 -0
- package/src/modules/orders/models/application.model.js +21 -0
- package/src/modules/orders/models/customer.model.js +26 -0
- package/src/modules/orders/orders.client.js +86 -1
- package/src/modules/orders/orders.server.js +3 -1
- package/src/modules/orders/router/applications.router.js +15 -0
- package/src/modules/orders/router/customers.router.js +17 -0
- package/src/modules/orders/routes/applications.routes.js +124 -12
- package/src/modules/orders/routes/customers.routes.js +43 -0
- package/src/modules/orders/store/applications.js +3 -159
- package/src/modules/orders/store/models/application.js +18 -0
- package/src/modules/orders/store/models/customer.js +12 -0
- package/src/modules/organizations/components/pages/Organization.new.vue +593 -0
- package/src/modules/organizations/components/pages/Organization.vue +11 -202
- package/src/modules/organizations/components/pages/Organizations.vue +1 -1
- package/src/modules/organizations/components/sections/DetailsTabSection.vue +2 -2
- package/src/modules/organizations/configs/navigation.organization.config.js +69 -85
- package/src/modules/organizations/router/organizations.js +5 -0
- package/src/modules/pages/views/components/pages/Page.vue +1 -1
- package/src/modules/products/TASKS.MD +157 -0
- package/src/modules/products/components/blocks/CardCategory.vue +1 -1
- package/src/modules/products/components/blocks/ProductImages.vue +1 -1
- package/src/modules/products/components/pages/Categories.vue +27 -22
- package/src/modules/products/components/pages/CategoryEdit.vue +24 -13
- package/src/modules/products/components/pages/Products.vue +415 -174
- package/src/modules/products/components/sections/EditVariants.vue +14 -0
- package/src/modules/products/components/sections/ProductsRecommended.vue +46 -2
- package/src/modules/products/controllers/categories.controller.js +321 -282
- package/src/modules/products/controllers/configs/products.lookup.config.js +9 -0
- package/src/modules/products/controllers/products.controller.js +2 -1
- package/src/modules/products/controllers/queries/products.queries.js +183 -11
- package/src/modules/products/middlewares/categories.verifier.js +58 -15
- package/src/modules/products/middlewares/variants.verifier.js +12 -0
- package/src/modules/products/migrations/categories-to-materialized-path.js +433 -0
- package/src/modules/products/migrations/path-to-url.js +27 -0
- package/src/modules/products/models/category.model.js +8 -23
- package/src/modules/products/models/variant.model.js +3 -0
- package/src/modules/products/router/products.router.js +12 -0
- package/src/modules/products/store/categories.js +26 -7
- package/src/modules/rents/TASK.MD +161 -0
- package/src/modules/reports/components/sections/FormReport.vue +1 -1
- package/src/modules/spots/components/pages/Spots.vue +342 -0
- package/src/modules/spots/router/spots.js +15 -0
- package/src/styles/base/all.scss +2 -3
- package/src/styles/layout.scss +16 -0
- package/dist/main-DTaE01lg.cjs +0 -11
- package/dist/martyrs/src/components/BottomSheet/BottomSheet.vue.cjs +0 -96
- package/dist/martyrs/src/components/BottomSheet/BottomSheet.vue.cjs.map +0 -1
- package/dist/martyrs/src/components/BottomSheet/BottomSheet.vue.js +0 -96
- package/dist/martyrs/src/components/BottomSheet/BottomSheet.vue.js.map +0 -1
- package/dist/martyrs/src/components/Loader/Loader.vue2.cjs.map +0 -1
- package/dist/martyrs/src/components/Menu/Menu.vue2.cjs.map +0 -1
- package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +0 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/BlockMultiselect.vue2.cjs.map +0 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.cjs +0 -155
- package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.cjs.map +0 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.js +0 -155
- package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.js.map +0 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormCustomerDetails.vue.cjs +0 -81
- package/dist/martyrs/src/modules/orders/components/sections/FormCustomerDetails.vue.cjs.map +0 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormCustomerDetails.vue.js +0 -81
- package/dist/martyrs/src/modules/orders/components/sections/FormCustomerDetails.vue.js.map +0 -1
- package/src/modules/orders/components/sections/FormAddCustomer.vue +0 -152
- package/src/modules/orders/components/sections/FormCustomerDetails.vue +0 -67
- package/src/modules/orders/controllers/applications.controller.js +0 -122
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="
|
|
2
|
+
<div class="pos-relative">
|
|
3
3
|
<header
|
|
4
4
|
v-if="route.name !== 'Organization' && !MOBILE_APP"
|
|
5
5
|
class="pd-medium flex-v-center flex-nowrap flex"
|
|
@@ -15,97 +15,248 @@
|
|
|
15
15
|
</button>
|
|
16
16
|
</header>
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
/>
|
|
48
|
-
</div>
|
|
49
|
-
|
|
50
|
-
<div class="w-100 pd-thin h-max pos-relative o-hidden">
|
|
51
|
-
<slot></slot>
|
|
52
|
-
<div class="pos-relative w-100 z-index-3 radius-tl-big radius-tr-big">
|
|
53
|
-
<BlockSearch
|
|
54
|
-
@search="debouncedSearch"
|
|
55
|
-
placeholder="Enter product name"
|
|
56
|
-
class="bg-light mn-b-thin h-4r"
|
|
57
|
-
/>
|
|
58
|
-
</div>
|
|
59
|
-
<Feed
|
|
60
|
-
v-model:filter="products.state.filter"
|
|
61
|
-
:showLoadMore="false"
|
|
62
|
-
:states="{
|
|
63
|
-
empty: {
|
|
64
|
-
title: 'No Products Found',
|
|
65
|
-
description: 'Currently, there are no products available.'
|
|
66
|
-
}
|
|
67
|
-
}"
|
|
68
|
-
:store="{
|
|
69
|
-
read: (options) => products.actions.read(options),
|
|
70
|
-
state: products.state
|
|
71
|
-
}"
|
|
72
|
-
:options="{
|
|
73
|
-
limit: 16,
|
|
74
|
-
owner: route.params._id,
|
|
75
|
-
categories: route.query.categories,
|
|
76
|
-
filters: generateFilters(products.state.filter.selected),
|
|
77
|
-
prices: route.query.prices,
|
|
78
|
-
delivery: route.query.delivery,
|
|
79
|
-
search: route.query.search,
|
|
80
|
-
...(tabProducts !== 'all' && { status: tabProducts }),
|
|
81
|
-
lookup: ['variants']
|
|
82
|
-
// user: user
|
|
83
|
-
}"
|
|
84
|
-
v-slot="{
|
|
85
|
-
items
|
|
86
|
-
}"
|
|
87
|
-
class="cols-4 pos-relative w-100 rows-1 gap-thin"
|
|
88
|
-
|
|
89
|
-
>
|
|
90
|
-
<router-link
|
|
91
|
-
v-for="product in items"
|
|
92
|
-
:to="route.params._id ? { name: 'Organization_Product', params: { _id: route.params._id, product: product._id } } : { name: 'Product', params: { product: product._id } }"
|
|
93
|
-
class="pos-relative h-100 w-100"
|
|
18
|
+
<div class="cols-2-1_3 br-1px br-solid br-light z-index-3 pos-relative">
|
|
19
|
+
|
|
20
|
+
<div class="o-y-scroll br-r br-solid br-light pd-medium z-index-2 desktop-only h-100 pos-relative">
|
|
21
|
+
<div class="w-100 o-y-scroll h-100">
|
|
22
|
+
<!-- Категории -->
|
|
23
|
+
<div class="mn-b-medium" v-if="currentCategories.length > 0">
|
|
24
|
+
<h4 class="mn-b-small">
|
|
25
|
+
{{ route.params.categoryPath ? 'Subcategories' : 'Categories' }}
|
|
26
|
+
</h4>
|
|
27
|
+
<div class="gap-micro">
|
|
28
|
+
<div
|
|
29
|
+
v-for="category in currentCategories"
|
|
30
|
+
:key="category._id"
|
|
31
|
+
@click="selectCategory(category)"
|
|
32
|
+
class="pd-small radius-small cursor-pointer hover-bg-light transition-all"
|
|
33
|
+
>
|
|
34
|
+
{{ category.name }}
|
|
35
|
+
<br>
|
|
36
|
+
<span v-for="subcategory in category.children">{{subcategory.name}}</span>
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
39
|
+
</div>
|
|
40
|
+
|
|
41
|
+
<!-- Фильтры категории -->
|
|
42
|
+
<Spoiler
|
|
43
|
+
v-for="filter in categoryFilters"
|
|
44
|
+
:key="filter.name"
|
|
45
|
+
class="o-hidden mn-b-medium"
|
|
46
|
+
:status="true"
|
|
94
47
|
>
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
48
|
+
<template #header="{ isOpen }">
|
|
49
|
+
<div class="cursor-pointer w-100 flex-v-center flex-nowrap flex">
|
|
50
|
+
<h4 class="w-100">{{ filter.name }}</h4>
|
|
51
|
+
<div class="h-2r w-2r flex-child-auto aspect-1x1 flex-center flex bg-light radius-extra">
|
|
52
|
+
<IconChevronBottom :class="{ 'rotate-180 mn-t-micro-negative': isOpen }" fill="rgb(var(--black))" class="i-regular"/>
|
|
53
|
+
</div>
|
|
54
|
+
</div>
|
|
55
|
+
</template>
|
|
56
|
+
|
|
57
|
+
<template #content>
|
|
58
|
+
<div class="mn-t-small">
|
|
59
|
+
<Checkbox
|
|
60
|
+
v-for="option in filter.options"
|
|
61
|
+
:key="option.text || option"
|
|
62
|
+
v-model:radio="selectedFilters[filter.name]"
|
|
63
|
+
:label="option.text || option"
|
|
64
|
+
:value="option.text || option"
|
|
65
|
+
mode="checkbox"
|
|
66
|
+
class="mn-b-micro"
|
|
67
|
+
/>
|
|
68
|
+
</div>
|
|
69
|
+
</template>
|
|
70
|
+
</Spoiler>
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
<!-- Цена за сутки -->
|
|
74
|
+
<Spoiler
|
|
75
|
+
class="o-hidden mn-b-medium"
|
|
76
|
+
:status="true"
|
|
77
|
+
>
|
|
78
|
+
<template #header="{ isOpen }">
|
|
79
|
+
<div class="cursor-pointer w-100 flex-v-center flex-nowrap flex">
|
|
80
|
+
<h4 class="w-100"> Price</h4>
|
|
81
|
+
<div class="h-2r w-2r flex-child-auto aspect-1x1 flex-center flex bg-light radius-extra">
|
|
82
|
+
<IconChevronBottom :class="{ 'rotate-180 mn-t-micro-negative': isOpen }" fill="rgb(var(--black))" class="i-regular"/>
|
|
83
|
+
</div>
|
|
84
|
+
</div>
|
|
85
|
+
</template>
|
|
86
|
+
|
|
87
|
+
<template #content>
|
|
88
|
+
<div class="mn-t-small flex gap-thin">
|
|
89
|
+
<Field
|
|
90
|
+
v-model="priceRange.min"
|
|
91
|
+
placeholder="From"
|
|
92
|
+
type="number"
|
|
93
|
+
class="w-50 bg-light pd-small radius-small"
|
|
94
|
+
/>
|
|
95
|
+
<Field
|
|
96
|
+
v-model="priceRange.max"
|
|
97
|
+
placeholder="To"
|
|
98
|
+
type="number"
|
|
99
|
+
class="w-50 bg-light pd-small radius-small"
|
|
100
|
+
/>
|
|
101
|
+
</div>
|
|
102
|
+
</template>
|
|
103
|
+
</Spoiler>
|
|
104
|
+
|
|
105
|
+
<!-- Доступность -->
|
|
106
|
+
<Spoiler
|
|
107
|
+
class="o-hidden mn-b-medium"
|
|
108
|
+
:status="true"
|
|
109
|
+
>
|
|
110
|
+
<template #header="{ isOpen }">
|
|
111
|
+
<div class="cursor-pointer w-100 flex-v-center flex-nowrap flex">
|
|
112
|
+
<h4 class="w-100">Availability</h4>
|
|
113
|
+
<div class="h-2r w-2r flex-child-auto aspect-1x1 flex-center flex bg-light radius-extra">
|
|
114
|
+
<IconChevronBottom :class="{ 'rotate-180 mn-t-micro-negative': isOpen }" fill="rgb(var(--black))" class="i-regular"/>
|
|
115
|
+
</div>
|
|
116
|
+
</div>
|
|
117
|
+
</template>
|
|
118
|
+
|
|
119
|
+
<template #content>
|
|
120
|
+
<div class="mn-t-small">
|
|
121
|
+
<div
|
|
122
|
+
v-for="option in availabilityOptions"
|
|
123
|
+
:key="option.value"
|
|
124
|
+
@click="selectAvailabilityOption(option.value)"
|
|
125
|
+
:class="{ 'bg-light': selectedAvailability === option.value }"
|
|
126
|
+
class="pd-small radius-small cursor-pointer hover-bg-light transition-all mn-b-micro"
|
|
127
|
+
>
|
|
128
|
+
{{ option.label }}
|
|
129
|
+
</div>
|
|
130
|
+
|
|
131
|
+
<div
|
|
132
|
+
@click="() => { tempSelectedDates = selectedDates; showDatePickerPopup = true; }"
|
|
133
|
+
:class="{ 'bg-light': selectedAvailability === 'custom' }"
|
|
134
|
+
class="pd-small radius-small cursor-pointer hover-bg-light transition-all mn-b-micro"
|
|
135
|
+
>
|
|
136
|
+
{{ selectedDates ? `${formatDate(selectedDates.start, { dayMonth: true, language: 'en' })} - ${formatDate(selectedDates.end, { dayMonth: true, language: 'en' })}` : 'Select dates'}}
|
|
137
|
+
</div>
|
|
138
|
+
</div>
|
|
139
|
+
</template>
|
|
140
|
+
</Spoiler>
|
|
141
|
+
|
|
142
|
+
<!-- Кнопка очистки фильтров -->
|
|
143
|
+
<button
|
|
144
|
+
class="bg-main w-100 button mn-t-medium"
|
|
145
|
+
>
|
|
146
|
+
Clear Filters
|
|
147
|
+
</button>
|
|
148
|
+
</div>
|
|
149
|
+
</div>
|
|
105
150
|
|
|
151
|
+
<div class="w-100 rows-1 pd-thin pos-relative o-hidden">
|
|
152
|
+
<Filters
|
|
153
|
+
v-model:filters="availableFilters"
|
|
154
|
+
v-model:selected="selectedFilters"
|
|
155
|
+
/>
|
|
156
|
+
<slot></slot>
|
|
157
|
+
<!-- <div class="pos-relative w-100 z-index-3 radius-tl-big radius-tr-big">
|
|
158
|
+
<BlockSearch
|
|
159
|
+
@search="debouncedSearch"
|
|
160
|
+
placeholder="Enter product name"
|
|
161
|
+
class="bg-light mn-b-thin h-4r"
|
|
162
|
+
/>
|
|
163
|
+
</div> -->
|
|
164
|
+
<div class="mn-b-thin w-100 o-y-scroll scroll-hide scroll-snap-type-x-mandatory scroll-pd-regular">
|
|
165
|
+
<div class="gap-thin flex-nowrap flex">
|
|
166
|
+
<div
|
|
167
|
+
v-for="category in currentCategories"
|
|
168
|
+
:key="category._id"
|
|
169
|
+
@click="selectCategory(category)"
|
|
170
|
+
class=" flex-child-default bg-light flex t-nowrap pd-medium radius-medium cursor-pointer hover-bg-light transition-all"
|
|
171
|
+
>
|
|
172
|
+
{{ category.name }}
|
|
173
|
+
</div>
|
|
174
|
+
</div>
|
|
175
|
+
</div>
|
|
176
|
+
<Feed
|
|
177
|
+
:search="true"
|
|
178
|
+
v-model:filter="products.state.filter"
|
|
179
|
+
v-model:sort="products.state.sort"
|
|
180
|
+
:showLoadMore="false"
|
|
181
|
+
:states="{
|
|
182
|
+
empty: {
|
|
183
|
+
title: 'No Products Found',
|
|
184
|
+
description: 'Currently, there are no products available.'
|
|
185
|
+
}
|
|
186
|
+
}"
|
|
187
|
+
:store="{
|
|
188
|
+
read: (options) => products.actions.read(options),
|
|
189
|
+
state: products.state
|
|
190
|
+
}"
|
|
191
|
+
:options="{
|
|
192
|
+
limit: 16,
|
|
193
|
+
owner: route.name?.includes('Organization') ? route.params._id : null,
|
|
194
|
+
search: route.query.search,
|
|
195
|
+
lookup: ['variants','rents'],
|
|
196
|
+
categories: route.params.categoryPath ? `/${route.params.categoryPath}` : null,
|
|
197
|
+
filters: processedFilters,
|
|
198
|
+
prices: processedPrices,
|
|
199
|
+
dateStart: selectedDates?.start,
|
|
200
|
+
dateEnd: selectedDates?.end
|
|
201
|
+
}"
|
|
202
|
+
v-slot="{
|
|
203
|
+
items
|
|
204
|
+
}"
|
|
205
|
+
class="cols-4 pos-relative w-100 rows-1 gap-thin"
|
|
206
|
+
|
|
207
|
+
>
|
|
208
|
+
<router-link
|
|
209
|
+
v-for="product in items"
|
|
210
|
+
:to="route.params._id ? { name: 'Organization_Product', params: { _id: route.params._id, product: product._id } } : { name: 'Product', params: { product: product._id } }"
|
|
211
|
+
class="pos-relative h-100 w-100"
|
|
212
|
+
>
|
|
213
|
+
<CardProduct
|
|
214
|
+
:key="product._id"
|
|
215
|
+
:product="product"
|
|
216
|
+
:user="auth.state.access"
|
|
217
|
+
:organization="route.params._id"
|
|
218
|
+
:access="hasAccess(route.params._id, 'products', 'edit', auth.state.accesses, auth.state.access.roles)"
|
|
219
|
+
class="pos-relative h-100 w-100 bg-light"
|
|
220
|
+
/>
|
|
221
|
+
</router-link>
|
|
222
|
+
</Feed>
|
|
223
|
+
|
|
224
|
+
</div>
|
|
106
225
|
</div>
|
|
107
|
-
|
|
226
|
+
|
|
227
|
+
<!-- Date Picker Popup -->
|
|
228
|
+
<Popup
|
|
229
|
+
:isPopupOpen="showDatePickerPopup"
|
|
230
|
+
@close-popup="showDatePickerPopup = false"
|
|
231
|
+
class="pd-medium bg-white radius-medium"
|
|
232
|
+
style="min-width: 350px;"
|
|
233
|
+
>
|
|
234
|
+
<h3 class="mn-b-medium">Select Date Range</h3>
|
|
235
|
+
|
|
236
|
+
<Calendar
|
|
237
|
+
v-model:date="tempSelectedDates"
|
|
238
|
+
:allowRange="true"
|
|
239
|
+
:disablePastDates="true"
|
|
240
|
+
class="mn-b-medium"
|
|
241
|
+
/>
|
|
242
|
+
|
|
243
|
+
<div class="flex gap-small">
|
|
244
|
+
<button
|
|
245
|
+
@click="applyDateFilter"
|
|
246
|
+
class="bg-main button flex-child-full"
|
|
247
|
+
>
|
|
248
|
+
Apply
|
|
249
|
+
</button>
|
|
250
|
+
<button
|
|
251
|
+
@click="showDatePickerPopup = false"
|
|
252
|
+
class="bg-light button flex-child-full"
|
|
253
|
+
>
|
|
254
|
+
Cancel
|
|
255
|
+
</button>
|
|
256
|
+
</div>
|
|
257
|
+
</Popup>
|
|
108
258
|
</div>
|
|
259
|
+
|
|
109
260
|
</template>
|
|
110
261
|
|
|
111
262
|
|
|
@@ -121,40 +272,202 @@
|
|
|
121
272
|
import FilterProducts from '@martyrs/src/modules/products/components/sections/FilterProducts.vue'
|
|
122
273
|
import BlockSearch from '@martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue'
|
|
123
274
|
import BlockFilter from '@martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue'
|
|
275
|
+
import Filters from '@martyrs/src/modules/globals/views/components/sections/Filters.vue'
|
|
276
|
+
import Spoiler from "@martyrs/src/components/Spoiler/Spoiler.vue"
|
|
277
|
+
import Field from "@martyrs/src/components/Field/Field.vue"
|
|
278
|
+
import Calendar from "@martyrs/src/components/Calendar/Calendar.vue"
|
|
279
|
+
import Popup from "@martyrs/src/components/Popup/Popup.vue"
|
|
280
|
+
import Checkbox from "@martyrs/src/components/Checkbox/Checkbox.vue"
|
|
124
281
|
|
|
125
282
|
import CardProduct from '@martyrs/src/modules/products/components/blocks/CardProduct.vue'
|
|
126
283
|
|
|
127
284
|
import IconPlus from '@martyrs/src/modules/icons/navigation/IconPlus.vue'
|
|
285
|
+
import IconChevronBottom from '@martyrs/src/modules/icons/navigation/IconChevronBottom.vue'
|
|
128
286
|
|
|
129
287
|
// Accessing router and store
|
|
130
288
|
import * as auth from '@martyrs/src/modules/auth/views/store/auth.js';
|
|
131
289
|
import * as globals from '@martyrs/src/modules/globals/views/store/globals.js';
|
|
132
290
|
import * as products from '@martyrs/src/modules/products/store/products.js';
|
|
133
|
-
import * as marketplace from '@martyrs/src/modules/marketplace/views/store/marketplace.js';
|
|
134
291
|
import * as categories from '@martyrs/src/modules/products/store/categories.js';
|
|
292
|
+
import { useGlobalMixins } from '@martyrs/src/modules/globals/views/mixins/mixins.js';
|
|
135
293
|
|
|
136
294
|
const route = useRoute()
|
|
137
295
|
const router = useRouter()
|
|
296
|
+
const { generateFilters, formatDate } = useGlobalMixins()
|
|
297
|
+
|
|
298
|
+
// Категории и фильтры
|
|
299
|
+
const currentCategories = ref([]);
|
|
300
|
+
const currentCategory = ref(null);
|
|
301
|
+
const categoryFilters = ref([]);
|
|
302
|
+
// const selectedFilters = ref({});
|
|
303
|
+
|
|
304
|
+
const availableFilters = ref([
|
|
305
|
+
{
|
|
306
|
+
title: 'Price',
|
|
307
|
+
value: 'price',
|
|
308
|
+
type: 'range',
|
|
309
|
+
minPlaceholder: 'From',
|
|
310
|
+
maxPlaceholder: 'To'
|
|
311
|
+
},
|
|
312
|
+
{
|
|
313
|
+
title: 'Delivery',
|
|
314
|
+
value: 'delivery',
|
|
315
|
+
type: 'checkbox',
|
|
316
|
+
options: [
|
|
317
|
+
{ label: 'Pickup', value: 'pickup' },
|
|
318
|
+
{ label: 'Courier', value: 'courier' },
|
|
319
|
+
{ label: 'Post', value: 'post' }
|
|
320
|
+
]
|
|
321
|
+
},
|
|
322
|
+
{
|
|
323
|
+
title: 'Status',
|
|
324
|
+
value: 'status',
|
|
325
|
+
type: 'radio',
|
|
326
|
+
options: [
|
|
327
|
+
{ label: 'Available', value: 'available' },
|
|
328
|
+
{ label: 'Out of Stock', value: 'out_of_stock' },
|
|
329
|
+
{ label: 'Coming Soon', value: 'coming_soon' }
|
|
330
|
+
]
|
|
331
|
+
}
|
|
332
|
+
])
|
|
138
333
|
|
|
139
|
-
|
|
140
|
-
|
|
334
|
+
const selectedFilters = ref({
|
|
335
|
+
price: { min: '', max: '' },
|
|
336
|
+
delivery: [],
|
|
337
|
+
status: null
|
|
338
|
+
})
|
|
141
339
|
|
|
142
|
-
|
|
340
|
+
|
|
341
|
+
// Переменные фильтров
|
|
342
|
+
const availabilityOptions = ref([
|
|
343
|
+
{ label: 'Available today', value: 'today' },
|
|
344
|
+
{ label: 'This week', value: 'week' },
|
|
345
|
+
{ label: 'This month', value: 'month' }
|
|
346
|
+
]);
|
|
347
|
+
|
|
348
|
+
const selectedAvailability = ref('all');
|
|
349
|
+
const showDatePickerPopup = ref(false);
|
|
350
|
+
const selectedPeriod = ref(null);
|
|
351
|
+
const selectedDates = ref(null);
|
|
352
|
+
const tempSelectedDates = ref(null);
|
|
143
353
|
|
|
144
|
-
|
|
145
|
-
|
|
354
|
+
const priceRange = ref({
|
|
355
|
+
min: '',
|
|
356
|
+
max: ''
|
|
357
|
+
});
|
|
146
358
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
359
|
+
// Computed property for processed filters
|
|
360
|
+
const processedFilters = computed(() => {
|
|
361
|
+
return generateFilters(selectedFilters.value);
|
|
362
|
+
});
|
|
363
|
+
|
|
364
|
+
const processedPrices = computed(() => {
|
|
365
|
+
return priceRange.value.min || priceRange.value.max ? `${priceRange.value.min || 0}-${priceRange.value.max || 999999}` : null;
|
|
366
|
+
});
|
|
152
367
|
|
|
153
368
|
|
|
154
|
-
|
|
155
|
-
|
|
369
|
+
const processedLookups = computed(() => {
|
|
370
|
+
const lookups = ['variants'];
|
|
371
|
+
if (processedDates.value) {
|
|
372
|
+
lookups.push('rents');
|
|
373
|
+
}
|
|
374
|
+
return lookups;
|
|
156
375
|
});
|
|
157
376
|
|
|
377
|
+
const loadCategoryData = async () => {
|
|
378
|
+
const categoryPath = route.params.categoryPath;
|
|
379
|
+
|
|
380
|
+
try {
|
|
381
|
+
if (categoryPath) {
|
|
382
|
+
// Загружаем категорию и её прямых детей
|
|
383
|
+
const result = await categories.actions.read({
|
|
384
|
+
url: `/${categoryPath}`,
|
|
385
|
+
depth: 1,
|
|
386
|
+
tree: false
|
|
387
|
+
});
|
|
388
|
+
|
|
389
|
+
if (result.length > 0) {
|
|
390
|
+
currentCategory.value = result[0];
|
|
391
|
+
currentCategories.value = result[0].children || [];
|
|
392
|
+
categoryFilters.value = result[0].filters || [];
|
|
393
|
+
|
|
394
|
+
// Initialize selected filters object
|
|
395
|
+
const filtersObj = {};
|
|
396
|
+
(result[0].filters || []).forEach(filter => {
|
|
397
|
+
filtersObj[filter.name] = [];
|
|
398
|
+
});
|
|
399
|
+
selectedFilters.value = filtersObj;
|
|
400
|
+
}
|
|
401
|
+
} else {
|
|
402
|
+
// Загружаем только корневые категории
|
|
403
|
+
const result = await categories.actions.read({
|
|
404
|
+
root: true,
|
|
405
|
+
tree: false
|
|
406
|
+
});
|
|
407
|
+
|
|
408
|
+
currentCategories.value = result;
|
|
409
|
+
}
|
|
410
|
+
} catch (error) {
|
|
411
|
+
console.error('Error loading categories:', error);
|
|
412
|
+
currentCategories.value = [];
|
|
413
|
+
}
|
|
414
|
+
};
|
|
415
|
+
|
|
416
|
+
// Функция для выбора категории
|
|
417
|
+
const selectCategory = (category) => {
|
|
418
|
+
const categoryPath = category.url ? category.url.substring(1) : '';
|
|
419
|
+
|
|
420
|
+
if (!categoryPath) {
|
|
421
|
+
console.warn('No URL found for category:', category);
|
|
422
|
+
return;
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
// Переходим к странице категории используя wildcard роут
|
|
426
|
+
if (route.params._id) {
|
|
427
|
+
router.push(`/organizations/${route.params._id}/products/categories/${categoryPath}`);
|
|
428
|
+
} else {
|
|
429
|
+
router.push(`/products/categories/${categoryPath}`);
|
|
430
|
+
}
|
|
431
|
+
};
|
|
432
|
+
|
|
433
|
+
// Функция выбора опции доступности
|
|
434
|
+
const selectAvailabilityOption = (value) => {
|
|
435
|
+
selectedAvailability.value = value;
|
|
436
|
+
const today = new Date();
|
|
437
|
+
|
|
438
|
+
switch(value) {
|
|
439
|
+
case 'today':
|
|
440
|
+
selectedDates.value = {
|
|
441
|
+
start: today,
|
|
442
|
+
end: today
|
|
443
|
+
};
|
|
444
|
+
break;
|
|
445
|
+
case 'week':
|
|
446
|
+
const weekEnd = new Date(today);
|
|
447
|
+
weekEnd.setDate(today.getDate() + 7);
|
|
448
|
+
selectedDates.value = {
|
|
449
|
+
start: today,
|
|
450
|
+
end: weekEnd
|
|
451
|
+
};
|
|
452
|
+
break;
|
|
453
|
+
case 'month':
|
|
454
|
+
const monthEnd = new Date(today);
|
|
455
|
+
monthEnd.setMonth(today.getMonth() + 1);
|
|
456
|
+
selectedDates.value = {
|
|
457
|
+
start: today,
|
|
458
|
+
end: monthEnd
|
|
459
|
+
};
|
|
460
|
+
break;
|
|
461
|
+
}
|
|
462
|
+
};
|
|
463
|
+
|
|
464
|
+
// Функция применения фильтра дат
|
|
465
|
+
const applyDateFilter = () => {
|
|
466
|
+
selectedDates.value = tempSelectedDates.value;
|
|
467
|
+
selectedAvailability.value = 'custom';
|
|
468
|
+
showDatePickerPopup.value = false;
|
|
469
|
+
};
|
|
470
|
+
|
|
158
471
|
globals.state.navigation_bar.actions = [{
|
|
159
472
|
component: IconPlus,
|
|
160
473
|
props: {
|
|
@@ -165,85 +478,13 @@
|
|
|
165
478
|
}],
|
|
166
479
|
|
|
167
480
|
onMounted(async () => {
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
categoriesFilter = categoriesFilter.map(category => ({
|
|
171
|
-
value: category._id,
|
|
172
|
-
label: category.name
|
|
173
|
-
}));
|
|
174
|
-
|
|
175
|
-
const index = products.state.filter.options.findIndex(option => option.value === 'categories');
|
|
176
|
-
|
|
177
|
-
const categoryOption = {
|
|
178
|
-
title: 'Categories',
|
|
179
|
-
value: 'categories',
|
|
180
|
-
options: categoriesFilter
|
|
181
|
-
};
|
|
182
|
-
|
|
183
|
-
if (index !== -1) {
|
|
184
|
-
products.state.filter.options[index] = categoryOption;
|
|
185
|
-
} else {
|
|
186
|
-
products.state.filter.options.unshift(categoryOption);
|
|
187
|
-
}
|
|
481
|
+
await loadCategoryData();
|
|
188
482
|
})
|
|
189
483
|
|
|
190
484
|
onUnmounted(() => {
|
|
191
485
|
globals.state.navigation_bar.actions = [];
|
|
192
486
|
});
|
|
193
487
|
|
|
194
|
-
watch(() => products.state.sort, (newSortValue, oldSortValue) => {
|
|
195
|
-
let query = { ...route.query}
|
|
196
|
-
|
|
197
|
-
query.sortParam = newSortValue.param
|
|
198
|
-
query.sortOrder = newSortValue.order
|
|
199
|
-
|
|
200
|
-
// replace the current route
|
|
201
|
-
router.replace({ query });
|
|
202
|
-
}, { deep: true });
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
watch(() => products.state.filter.selected, (newFilterValue, oldFilterValue) => {
|
|
206
|
-
// Переводим фильтр в формат query
|
|
207
|
-
const query = { ...route.query };
|
|
208
|
-
|
|
209
|
-
// Удаляем старые значения фильтра из query
|
|
210
|
-
Object.keys(oldFilterValue).forEach(key => {
|
|
211
|
-
if (query[key]) {
|
|
212
|
-
delete query[key];
|
|
213
|
-
}
|
|
214
|
-
});
|
|
215
|
-
|
|
216
|
-
// Добавляем новые значения фильтра в query
|
|
217
|
-
const newQueryValues = Object.fromEntries(
|
|
218
|
-
Object.entries(newFilterValue)
|
|
219
|
-
.filter(([key, value]) => Array.isArray(value) && value.length > 0)
|
|
220
|
-
.map(([key, value]) => [key, value.join(',')])
|
|
221
|
-
);
|
|
222
|
-
|
|
223
|
-
delete query.options;
|
|
224
|
-
Object.assign(query, newQueryValues);
|
|
225
|
-
|
|
226
|
-
// Обновляем маршрут с новым query
|
|
227
|
-
router.replace({ query });
|
|
228
|
-
}, { deep: true })
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
function debounce(fn, delay) {
|
|
232
|
-
let timeoutId = null;
|
|
233
|
-
return (...args) => {
|
|
234
|
-
clearTimeout(timeoutId);
|
|
235
|
-
timeoutId = setTimeout(() => fn(...args), delay);
|
|
236
|
-
};
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
const debouncedSearch = debounce((search) => {
|
|
240
|
-
let query = { ...route.query}
|
|
241
|
-
|
|
242
|
-
query.search = search
|
|
243
|
-
|
|
244
|
-
router.replace({ query });
|
|
245
|
-
}, 500);
|
|
246
|
-
|
|
247
488
|
</script>
|
|
248
489
|
|
|
249
490
|
<style lang="scss">
|