@ozdao/martyrs 0.2.487 → 0.2.489
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/{authJwt-D35KyJlE.cjs → authJwt-BIZ2GIfT.cjs} +0 -27
- package/dist/{authJwt-DqxhUym0.js → authJwt-J1csaMWA.js} +0 -27
- package/dist/builder.cjs +10 -0
- package/dist/builder.js +10 -0
- package/dist/chats.server.cjs +1 -1
- package/dist/chats.server.js +1 -1
- package/dist/community.server.cjs +3 -3
- package/dist/community.server.js +3 -3
- package/dist/{crud-BDIArc5A.cjs → crud-B-kQw3Z5.cjs} +5 -4
- package/dist/{crud-DJvpe0aZ.js → crud-Cwx5VlSm.js} +5 -4
- package/dist/events.server.cjs +3 -3
- package/dist/events.server.js +3 -3
- package/dist/files.server.cjs +31 -14
- package/dist/files.server.js +31 -14
- package/dist/gallery.server.cjs +2 -2
- package/dist/gallery.server.js +2 -2
- package/dist/{globals.abac-Cm9e8Jdk.cjs → globals.abac-CPXLas7N.cjs} +1 -1
- package/dist/{globals.abac-DBV_kaOq.js → globals.abac-DNdtSYop.js} +1 -1
- package/dist/{index-DiSKVCaA.cjs → index-BFxqqmgh.cjs} +1 -1
- package/dist/{index-CVuQC4k1.js → index-_Edcmck_.js} +1 -1
- package/dist/main-CmuUC0tl.cjs +11 -0
- package/dist/{main-nQmkbWsW.js → main-IVRL6IjM.js} +2949 -2666
- package/dist/martyrs/src/components/Button/{Button.vue.cjs → Button.vue2.cjs} +3 -3
- package/dist/martyrs/src/components/Button/Button.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Button/{Button.vue.js → Button.vue2.js} +3 -3
- package/dist/martyrs/src/components/Button/{Button.vue.cjs.map → Button.vue2.js.map} +1 -1
- package/dist/martyrs/src/components/Calendar/Calendar.vue.cjs +31 -5
- package/dist/martyrs/src/components/Calendar/Calendar.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Calendar/Calendar.vue.js +32 -6
- package/dist/martyrs/src/components/Calendar/Calendar.vue.js.map +1 -1
- package/dist/martyrs/src/components/Chips/{Chips.vue.cjs → Chips.vue2.cjs} +2 -2
- package/dist/martyrs/src/components/Chips/Chips.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Chips/{Chips.vue.js → Chips.vue2.js} +2 -2
- package/dist/martyrs/src/components/Chips/Chips.vue2.js.map +1 -0
- package/dist/martyrs/src/components/Countdown/Countdown.vue.cjs +4 -4
- package/dist/martyrs/src/components/Countdown/Countdown.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Countdown/Countdown.vue.js +4 -4
- package/dist/martyrs/src/components/Countdown/Countdown.vue.js.map +1 -1
- package/dist/martyrs/src/components/DatePicker/DatePicker.vue.cjs +28 -19
- package/dist/martyrs/src/components/DatePicker/DatePicker.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/DatePicker/DatePicker.vue.js +29 -20
- package/dist/martyrs/src/components/DatePicker/DatePicker.vue.js.map +1 -1
- package/dist/martyrs/src/components/Feed/Carousel.vue.cjs +20 -9
- package/dist/martyrs/src/components/Feed/Carousel.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Feed/Carousel.vue.js +22 -11
- package/dist/martyrs/src/components/Feed/Carousel.vue.js.map +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.cjs +29 -26
- package/dist/martyrs/src/components/Feed/Feed.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.js +45 -42
- package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
- package/dist/martyrs/src/components/Field/{Field.vue2.cjs → Field.vue.cjs} +15 -9
- package/dist/martyrs/src/components/Field/Field.vue.cjs.map +1 -0
- package/dist/martyrs/src/components/Field/{Field.vue2.js → Field.vue.js} +16 -10
- package/dist/martyrs/src/components/Field/Field.vue.js.map +1 -0
- package/dist/martyrs/src/components/FieldBig/FieldBig.vue.cjs +25 -24
- package/dist/martyrs/src/components/FieldBig/FieldBig.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +27 -26
- package/dist/martyrs/src/components/FieldBig/FieldBig.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 +1 -1
- package/dist/martyrs/src/components/Loader/Loader.vue2.cjs.map +1 -1
- package/dist/martyrs/src/components/Loader/Loader.vue2.js +1 -1
- package/dist/martyrs/src/components/Loader/Loader.vue2.js.map +1 -1
- package/dist/martyrs/src/components/Menu/MenuItem.vue.cjs +1 -1
- package/dist/martyrs/src/components/Menu/MenuItem.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Menu/MenuItem.vue.js +1 -1
- package/dist/martyrs/src/components/Menu/MenuItem.vue.js.map +1 -1
- package/dist/martyrs/src/components/Select/Select.vue.cjs +27 -15
- package/dist/martyrs/src/components/Select/Select.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Select/Select.vue.js +28 -16
- package/dist/martyrs/src/components/Select/Select.vue.js.map +1 -1
- package/dist/martyrs/src/components/Status/Snack.vue.cjs +63 -0
- package/dist/martyrs/src/components/Status/Snack.vue.cjs.map +1 -0
- package/dist/martyrs/src/components/Status/Snack.vue.js +63 -0
- package/dist/martyrs/src/components/Status/Snack.vue.js.map +1 -0
- package/dist/martyrs/src/components/Tab/Tab.vue2.cjs +2 -2
- package/dist/martyrs/src/components/Tab/Tab.vue2.cjs.map +1 -1
- package/dist/martyrs/src/components/Tab/Tab.vue2.js +2 -2
- package/dist/martyrs/src/components/Tab/Tab.vue2.js.map +1 -1
- package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.cjs +3 -2
- package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.js +3 -2
- package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.cjs +0 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.js +0 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +5 -5
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +5 -5
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +1 -2
- 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 +1 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.cjs +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +10 -10
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.cjs +3 -3
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +5 -5
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs +3 -3
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +6 -6
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs +3 -3
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +5 -5
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/FeaturedUsers.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/FeaturedUsers.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/FeaturedUsers.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/FeaturedUsers.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.cjs +2 -2
- package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +23 -23
- package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.cjs +3 -3
- package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js +3 -3
- package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.cjs +2 -2
- package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js +2 -2
- package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/layouts/Community.vue.cjs +4 -4
- package/dist/martyrs/src/modules/community/components/layouts/Community.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +4 -4
- package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/pages/Blog.vue.cjs +1 -1
- package/dist/martyrs/src/modules/community/components/pages/Blog.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/community/components/pages/Blog.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/pages/Blog.vue.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs +2 -4
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +2 -4
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +3 -3
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +12 -12
- package/dist/martyrs/src/modules/community/components/sections/Comments.vue.cjs +1 -1
- package/dist/martyrs/src/modules/community/components/sections/Comments.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/community/components/sections/Comments.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/sections/Comments.vue.js.map +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/Card.vue.cjs +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/Card.vue.js +3 -3
- package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.cjs +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.js +2 -2
- package/dist/martyrs/src/modules/constructor/components/sections/Viewer.vue.cjs +1 -1
- package/dist/martyrs/src/modules/constructor/components/sections/Viewer.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/constructor/components/sections/Viewer.vue.js +1 -1
- package/dist/martyrs/src/modules/constructor/components/sections/Viewer.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.cjs +33 -30
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js +36 -33
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +3 -2
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +26 -25
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs +2 -2
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +15 -15
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +8 -8
- 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 +8 -8
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs +3 -3
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.js +3 -3
- package/dist/martyrs/src/modules/events/components/pages/Events.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/FeaturedEvents.vue.cjs +9 -5
- package/dist/martyrs/src/modules/events/components/sections/FeaturedEvents.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/sections/FeaturedEvents.vue.js +9 -5
- package/dist/martyrs/src/modules/events/components/sections/FeaturedEvents.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/sections/List.vue.cjs +18 -24
- package/dist/martyrs/src/modules/events/components/sections/List.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/sections/List.vue.js +19 -25
- package/dist/martyrs/src/modules/events/components/sections/List.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/sections/SelectDate.vue.cjs +3 -3
- package/dist/martyrs/src/modules/events/components/sections/SelectDate.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/sections/SelectDate.vue.js +3 -3
- package/dist/martyrs/src/modules/events/components/sections/SelectDate.vue.js.map +1 -1
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +2 -3
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +2 -3
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/locales/en.cjs +9 -1
- package/dist/martyrs/src/modules/globals/locales/en.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/locales/en.js +9 -1
- package/dist/martyrs/src/modules/globals/locales/en.js.map +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.store.cjs +5 -2
- package/dist/martyrs/src/modules/globals/views/classes/globals.store.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/classes/globals.store.js +5 -2
- package/dist/martyrs/src/modules/globals/views/classes/globals.store.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue.cjs +16 -15
- package/dist/martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue.js +17 -16
- package/dist/martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +16 -20
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +16 -20
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupAuth.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupAuth.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs +14 -7
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js +14 -7
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +11 -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 +11 -3
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/CitySelection.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/CitySelection.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/CitySelection.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/CitySelection.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/NavigationBar.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/NavigationBar.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.cjs +2 -2
- package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.js +2 -2
- package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/plugins/date-picker.plugin.cjs +17 -7
- package/dist/martyrs/src/modules/globals/views/plugins/date-picker.plugin.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/plugins/date-picker.plugin.js +18 -8
- package/dist/martyrs/src/modules/globals/views/plugins/date-picker.plugin.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/router/addRoutes.cjs +4 -1
- package/dist/martyrs/src/modules/globals/views/router/addRoutes.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/router/addRoutes.js +4 -1
- package/dist/martyrs/src/modules/globals/views/router/addRoutes.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/store/globals.cjs +30 -0
- package/dist/martyrs/src/modules/globals/views/store/globals.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/store/globals.js +30 -0
- package/dist/martyrs/src/modules/globals/views/store/globals.js.map +1 -1
- package/dist/martyrs/src/modules/icons/actions/IconOpenLink.vue.cjs +32 -0
- package/dist/martyrs/src/modules/icons/actions/IconOpenLink.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/icons/actions/IconOpenLink.vue.js +32 -0
- package/dist/martyrs/src/modules/icons/actions/IconOpenLink.vue.js.map +1 -0
- package/dist/martyrs/src/modules/icons/entities/IconInfo.vue.cjs +4 -2
- package/dist/martyrs/src/modules/icons/entities/IconInfo.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/entities/IconInfo.vue.js +5 -3
- package/dist/martyrs/src/modules/icons/entities/IconInfo.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/icons.client.cjs +4 -0
- package/dist/martyrs/src/modules/icons/icons.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/icons.client.js +108 -104
- package/dist/martyrs/src/modules/icons/icons.client.js.map +1 -1
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.cjs +3 -1
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js +138 -136
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/skeletons/SkeletonEventShort.vue.cjs +1 -1
- package/dist/martyrs/src/modules/icons/skeletons/SkeletonEventShort.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/skeletons/SkeletonEventShort.vue.js +1 -1
- package/dist/martyrs/src/modules/icons/skeletons/SkeletonEventShort.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/socials/telegram.vue.cjs +11 -7
- package/dist/martyrs/src/modules/icons/socials/telegram.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/socials/telegram.vue.js +11 -7
- package/dist/martyrs/src/modules/icons/socials/telegram.vue.js.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionEarn.vue.cjs +2 -2
- package/dist/martyrs/src/modules/landing/components/sections/SectionEarn.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionEarn.vue.js +2 -2
- package/dist/martyrs/src/modules/landing/components/sections/SectionEarn.vue.js.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionFeaturesImages.vue.cjs +2 -2
- package/dist/martyrs/src/modules/landing/components/sections/SectionFeaturesImages.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionFeaturesImages.vue.js +2 -2
- package/dist/martyrs/src/modules/landing/components/sections/SectionFeaturesImages.vue.js.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.cjs +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.js +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.js.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionHeroToken.vue.cjs +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionHeroToken.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionHeroToken.vue.js +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionHeroToken.vue.js.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionJoinUs.vue.cjs +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionJoinUs.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionJoinUs.vue.js +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionJoinUs.vue.js.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionMobileApp.vue.cjs +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionMobileApp.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionMobileApp.vue.js +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionMobileApp.vue.js.map +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SubscribeNewsletter.vue.cjs +1 -1
- 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 +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SubscribeNewsletter.vue.js.map +1 -1
- package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.cjs +0 -13
- package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.js +0 -13
- package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.cjs +2 -2
- package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +14 -14
- package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.cjs +2 -2
- package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +19 -19
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.cjs +2 -2
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +13 -13
- package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs +2 -2
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +22 -22
- package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +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/MusicLibrary.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.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.js +11 -11
- 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 +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +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/components/player/MusicPlayer.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js +1 -1
- package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.cjs +2 -2
- package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js +2 -2
- package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrder.vue.cjs +8 -8
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrder.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrder.vue.js +8 -8
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrder.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.cjs +98 -73
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.js +99 -74
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.cjs +2 -2
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/elements/PriceTotal.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/elements/PriceTotal.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/elements/PriceTotal.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/elements/PriceTotal.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +82 -57
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +82 -57
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs +22 -14
- 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 +22 -14
- 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 +205 -36
- 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 +208 -39
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.cjs +20 -11
- package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.js +20 -11
- package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.cjs +1 -2
- package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.js +1 -2
- package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormCustomerDetails.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormCustomerDetails.vue.js +5 -5
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/sections/Succes.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/Succes.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/orders.client.cjs +6 -0
- package/dist/martyrs/src/modules/orders/orders.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/orders.client.js +6 -0
- package/dist/martyrs/src/modules/orders/orders.client.js.map +1 -1
- package/dist/martyrs/src/modules/orders/store/shopcart.cjs +75 -94
- package/dist/martyrs/src/modules/orders/store/shopcart.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/store/shopcart.js +75 -94
- package/dist/martyrs/src/modules/orders/store/shopcart.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.cjs +11 -3
- package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +11 -3
- package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/Rating.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/Rating.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +2 -3
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +16 -17
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +2 -2
- 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 +2 -2
- 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 +3 -3
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +3 -3
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +16 -16
- 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 -2
- 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 +2 -2
- 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 +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +3 -3
- package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +8 -8
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +1 -2
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +1 -2
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.cjs +3 -3
- 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 +3 -3
- package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/organizations.client.cjs +0 -3
- package/dist/martyrs/src/modules/organizations/organizations.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/organizations.client.js +18 -21
- package/dist/martyrs/src/modules/organizations/organizations.client.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/router/organizations.cjs +0 -2
- package/dist/martyrs/src/modules/organizations/router/organizations.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/router/organizations.js +0 -2
- 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 -2
- package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -2
- package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js.map +1 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.cjs +1 -2
- package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -2
- package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.cjs +1 -1
- package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.cjs +7 -4
- package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.js +7 -4
- package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/ProductVariants.vue.cjs +18 -21
- package/dist/martyrs/src/modules/products/components/blocks/ProductVariants.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/ProductVariants.vue.js +19 -22
- package/dist/martyrs/src/modules/products/components/blocks/ProductVariants.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/elements/Price.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/elements/Price.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/elements/Price.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/elements/Price.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs +48 -45
- 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 +49 -46
- 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 +13 -21
- 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 +23 -31
- 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 +29 -18
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +29 -18
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +5 -7
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +21 -23
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs +3 -2
- 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 +3 -2
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +6 -6
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +12 -12
- package/dist/martyrs/src/modules/products/components/sections/EditIngredients.vue.cjs +11 -3
- package/dist/martyrs/src/modules/products/components/sections/EditIngredients.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditIngredients.vue.js +11 -3
- package/dist/martyrs/src/modules/products/components/sections/EditIngredients.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.cjs +8 -16
- package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.js +8 -16
- package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs +80 -61
- 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 +100 -81
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.cjs +3 -3
- package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.js +3 -3
- package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/HeroRecommendation.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/HeroRecommendation.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/HeroRecommendation.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/HeroRecommendation.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.cjs +8 -14
- package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js +9 -15
- package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.cjs +3 -3
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +3 -3
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/products.client.cjs +1 -13
- package/dist/martyrs/src/modules/products/products.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/products.client.js +36 -48
- package/dist/martyrs/src/modules/products/products.client.js.map +1 -1
- package/dist/martyrs/src/modules/products/store/products.cjs +4 -4
- package/dist/martyrs/src/modules/products/store/products.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/store/products.js +4 -4
- package/dist/martyrs/src/modules/products/store/products.js.map +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/GanttChart.vue.cjs +3 -3
- package/dist/martyrs/src/modules/rents/views/components/pages/GanttChart.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/GanttChart.vue.js +3 -3
- package/dist/martyrs/src/modules/rents/views/components/pages/GanttChart.vue.js.map +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.cjs +12 -4
- package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +15 -7
- package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.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.js +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs +41 -33
- package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js +42 -34
- package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js.map +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.cjs +0 -1
- package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js +0 -1
- package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js.map +1 -1
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs +0 -1
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +0 -1
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js.map +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/Map.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.cjs +2 -2
- package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.js +2 -2
- package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.js.map +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +13 -13
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +8 -8
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.js +2 -2
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +2 -2
- package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.cjs +4 -4
- package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +4 -4
- package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js.map +1 -1
- package/dist/martyrs.cjs.js +1 -1
- package/dist/martyrs.css +1 -1
- package/dist/martyrs.es.js +20 -20
- package/dist/music.server.cjs +3 -3
- package/dist/music.server.js +3 -3
- package/dist/notifications.server.cjs +1 -1
- package/dist/notifications.server.js +1 -1
- package/dist/orders.server.cjs +155 -64
- package/dist/orders.server.js +155 -64
- package/dist/organizations.server.cjs +25 -4
- package/dist/organizations.server.js +25 -4
- package/dist/{ownership.schema-CCZX5vfw.js → ownership.schema-BqH4v5vH.js} +2 -2
- package/dist/{ownership.schema-DCosqOc1.cjs → ownership.schema-D1p5XSpt.cjs} +2 -2
- package/dist/products.server.cjs +64 -288
- package/dist/products.server.js +64 -288
- package/dist/rents.server.cjs +35 -13
- package/dist/rents.server.js +35 -13
- package/dist/style.css +198 -201
- package/dist/wallet.server.cjs +1 -1
- package/dist/wallet.server.js +1 -1
- package/dist/web-BXhlxo6M.cjs +1 -0
- package/dist/web-Czi05iGG.js +54 -0
- package/package.json +1 -1
- package/src/builder/rspack/rspack.config.base.js +14 -0
- package/src/components/Breadcrumbs/Breadcrumbs.vue +200 -62
- package/src/components/Button/Button.vue +1 -1
- package/src/components/Calendar/Calendar.vue +53 -3
- package/src/components/Countdown/Countdown.vue +4 -4
- package/src/components/DatePicker/DatePicker.vue +32 -22
- package/src/components/Feed/Carousel.vue +18 -3
- package/src/components/Feed/Feed.vue +24 -31
- package/src/components/Field/Field.vue +9 -31
- package/src/components/FieldBig/FieldBig.vue +17 -18
- package/src/components/Loader/Loader.vue +1 -8
- package/src/components/Menu/MenuItem.vue +1 -1
- package/src/components/Select/Select.vue +19 -27
- package/src/components/Status/Snack.vue +4 -2
- package/src/components/Tab/Tab.vue +2 -2
- package/src/components/UploadImageMultiple/UploadImageMultiple.vue +9 -14
- package/src/main.js +2 -0
- package/src/modules/auth/controllers/middlewares/authJwt.js +0 -29
- package/src/modules/auth/views/components/pages/ResetPassword.vue +1 -1
- package/src/modules/auth/views/components/pages/SignIn.vue +1 -1
- package/src/modules/auth/views/components/pages/SignUp.vue +1 -1
- package/src/modules/auth/views/components/sections/FeaturedUsers.vue +1 -1
- package/src/modules/backoffice/components/admin/Users.vue +1 -1
- package/src/modules/backoffice/components/partials/Sidebar.vue +3 -3
- package/src/modules/community/components/blocks/CardBlogpost.vue +1 -1
- package/src/modules/community/components/layouts/Community.vue +5 -5
- package/src/modules/community/components/pages/Blog.vue +1 -1
- package/src/modules/community/components/sections/Comments.vue +1 -1
- package/src/modules/constructor/components/sections/Viewer.vue +1 -1
- package/src/modules/events/components/blocks/CardEvent.vue +35 -29
- package/src/modules/events/components/pages/Event.vue +4 -3
- package/src/modules/events/components/pages/Events.vue +3 -3
- package/src/modules/events/components/pages/EventsBackoffice.vue +1 -1
- package/src/modules/events/components/sections/FeaturedEvents.vue +8 -4
- package/src/modules/events/components/sections/List.vue +17 -18
- package/src/modules/events/components/sections/SelectDate.vue +2 -2
- package/src/modules/files/controllers/files.controller.js +14 -3
- package/src/modules/files/middlewares/server/middlewareBusboy.js +46 -17
- package/src/modules/globals/controllers/classes/crud/crud.controller.js +5 -2
- package/src/modules/globals/controllers/classes/crud/crud.js +1 -1
- package/src/modules/globals/controllers/classes/crud/crud.service.js +0 -1
- package/src/modules/globals/controllers/classes/globals.abac.js +1 -1
- package/src/modules/globals/locales/en.js +8 -0
- package/src/modules/globals/models/schemas/ownership.schema.js +2 -2
- package/src/modules/globals/views/classes/globals.store.js +8 -2
- package/src/modules/globals/views/components/blocks/BlockSearch.vue +12 -17
- package/src/modules/globals/views/components/blocks/CardHeader.vue +9 -11
- package/src/modules/globals/views/components/blocks/PopupDateSelector.vue +19 -9
- package/src/modules/globals/views/components/layouts/Client.vue +15 -9
- package/src/modules/globals/views/components/partials/CitySelection.vue +1 -1
- package/src/modules/globals/views/components/partials/FooterAlt.vue +1 -1
- package/src/modules/globals/views/components/partials/Sidebar.vue +1 -1
- package/src/modules/globals/views/components/sections/Walkthrough.vue +2 -2
- package/src/modules/globals/views/plugins/date-picker.plugin.js +17 -7
- package/src/modules/globals/views/router/addRoutes.js +4 -1
- package/src/modules/globals/views/store/globals.js +1 -1
- package/src/modules/icons/actions/IconOpenLink.vue +14 -0
- package/src/modules/icons/entities/IconInfo.vue +2 -2
- package/src/modules/icons/icons.client.js +8 -0
- package/src/modules/icons/pages/IconsPage.vue +2 -0
- package/src/modules/icons/skeletons/SkeletonEventShort.vue +2 -2
- package/src/modules/icons/socials/telegram.vue +2 -2
- package/src/modules/inventory/components/forms/AdjustmentForm.vue +225 -0
- package/src/modules/inventory/components/forms/ColumnSettingsMenu.vue +80 -0
- package/src/modules/inventory/components/forms/HistoryView.vue +134 -0
- package/src/modules/inventory/components/forms/StockAlertsForm.vue +181 -0
- package/src/modules/{products/components/pages/Leftovers.vue → inventory/components/pages/Inventory.vue} +60 -41
- package/src/modules/{products/components/pages/LeftoverEdit.vue → inventory/components/pages/InventoryEdit.vue} +131 -86
- package/src/modules/inventory/docs/README.md +291 -0
- package/src/modules/inventory/inventory.client.js +65 -0
- package/src/modules/inventory/inventory.server.js +8 -5
- package/src/modules/inventory/middlewares/stock.alerts.verifier.js +194 -0
- package/src/modules/inventory/models/stock.alerts.model.js +45 -0
- package/src/modules/inventory/models/stock.audit.model.js +60 -0
- package/src/modules/inventory/models/stock.availability.model.js +6 -6
- package/src/modules/inventory/policies/inventory.policies.js +28 -28
- package/src/modules/inventory/router/inventory.router.js +28 -0
- package/src/modules/inventory/routes/inventory.routes.js +8 -4
- package/src/modules/inventory/routes/stock.alerts.routes.js +43 -0
- package/src/modules/inventory/services/inventory.crud.js +204 -21
- package/src/modules/inventory/services/inventory.verifier.js +67 -11
- package/src/modules/inventory/store/ inventory.store.js +4 -2
- package/src/modules/inventory/store/stock.alerts.store.js +5 -0
- package/src/modules/inventory/tests/inventory.test.js +281 -0
- package/src/modules/landing/components/sections/SectionEarn.vue +1 -1
- package/src/modules/landing/components/sections/SectionFeature.vue +1 -1
- package/src/modules/landing/components/sections/SectionFeaturesImages.vue +1 -1
- package/src/modules/landing/components/sections/SectionFocus.vue +1 -1
- package/src/modules/landing/components/sections/SectionGuide.vue +1 -1
- package/src/modules/landing/components/sections/SectionHeroToken.vue +1 -1
- package/src/modules/landing/components/sections/SectionHeroVideo.vue +2 -2
- package/src/modules/landing/components/sections/SectionJoinUs.vue +1 -1
- package/src/modules/landing/components/sections/SectionMobileApp.vue +1 -1
- package/src/modules/landing/components/sections/SubscribeNewsletter.vue +1 -1
- package/src/modules/marketplace/views/components/layouts/Marketplace.vue +14 -14
- package/src/modules/notifications/components/elements/NotificationBadge.vue +1 -1
- package/src/modules/orders/components/blocks/CardOrder.vue +7 -7
- package/src/modules/orders/components/blocks/CardOrderItem.vue +96 -91
- package/src/modules/orders/components/blocks/CardOrderUser.vue +1 -1
- package/src/modules/orders/components/elements/PriceTotal.vue +1 -1
- package/src/modules/orders/components/pages/Favorites.vue +1 -1
- package/src/modules/orders/components/pages/OrderBackoffice.vue +59 -29
- package/src/modules/orders/components/pages/OrderCreate.vue +15 -7
- package/src/modules/orders/components/pages/OrderCreateBackoffice.vue +201 -16
- package/src/modules/orders/components/pages/Orders_refact.vue +3 -3
- package/src/modules/orders/components/partials/ShopCart.vue +17 -8
- package/src/modules/orders/components/sections/Succes.vue +1 -1
- package/src/modules/orders/controllers/orders.controller.js +175 -77
- package/src/modules/orders/orders.client.js +6 -0
- package/src/modules/orders/routes/orders.routes.js +15 -10
- package/src/modules/orders/store/shopcart.js +54 -131
- package/src/modules/organizations/components/blocks/CardOrganization.vue +9 -1
- package/src/modules/organizations/components/blocks/Rating.vue +1 -1
- package/src/modules/organizations/components/pages/Department.vue +1 -1
- package/src/modules/organizations/components/pages/DepartmentEdit.vue +0 -1
- package/src/modules/organizations/components/pages/Organization.vue +2 -2
- package/src/modules/organizations/components/pages/OrganizationBackoffice.vue +3 -3
- package/src/modules/organizations/components/pages/Organizations.vue +1 -1
- package/src/modules/organizations/components/sections/DetailsTabSection.vue +1 -1
- package/src/modules/organizations/configs/navigation.organization.config.js +3 -3
- package/src/modules/organizations/controllers/utils/lookupConfigs.js +22 -1
- package/src/modules/organizations/models/schemas/accesses.schema.js +1 -1
- package/src/modules/organizations/organizations.client.js +0 -3
- package/src/modules/organizations/router/organizations.js +0 -2
- package/src/modules/products/components/blocks/CardProduct.vue +1 -1
- package/src/modules/products/components/blocks/ProductVariants.vue +5 -5
- package/src/modules/products/components/elements/Price.vue +1 -1
- package/src/modules/products/components/forms/StockHistoryView.vue +4 -4
- package/src/modules/products/components/pages/Categories.vue +4 -2
- package/src/modules/products/components/pages/CategoryEdit.vue +23 -10
- package/src/modules/products/components/pages/Product.vue +28 -78
- package/src/modules/products/components/pages/ProductEdit.vue +3 -12
- package/src/modules/products/components/pages/Products.vue +3 -2
- package/src/modules/products/components/sections/EditIngredients.vue +11 -2
- package/src/modules/products/components/sections/EditRecommended.vue +3 -14
- package/src/modules/products/components/sections/EditVariants.vue +52 -25
- package/src/modules/products/components/sections/FilterProducts.vue +3 -3
- package/src/modules/products/components/sections/HeroRecommendation.vue +1 -1
- package/src/modules/products/components/sections/ProductConfigurator.vue +5 -11
- package/src/modules/products/components/sections/SectionProduct.vue +2 -2
- package/src/modules/products/controllers/configs/products.lookup.config.js +52 -80
- package/src/modules/products/controllers/products.controller.js +2 -2
- package/src/modules/products/middlewares/variants.verifier.js +1 -1
- package/src/modules/products/products.client.js +0 -12
- package/src/modules/products/products.server.js +0 -8
- package/src/modules/products/routes/variants.routes.js +0 -59
- package/src/modules/products/store/products.js +4 -4
- package/src/modules/rents/controllers/services/rents.services.js +41 -11
- package/src/modules/rents/models/rent.model.js +1 -0
- package/src/modules/rents/views/components/pages/GanttChart.vue +1 -1
- package/src/modules/rents/views/components/pages/RentsEdit.vue +10 -2
- package/src/modules/spots/components/blocks/CardSpot.vue +14 -11
- package/src/modules/spots/components/pages/Spot.vue +1 -1
- package/src/modules/wallet/views/components/pages/Wallet.vue +2 -2
- package/src/styles/base/all.scss +10 -1
- package/src/styles/base/borders.scss +234 -155
- package/src/styles/layout.scss +36 -0
- package/src/styles/typography.scss +12 -4
- package/dist/Media-B2jWzwLB.cjs +0 -1
- package/dist/Media-DZ5_ItXQ.js +0 -111
- package/dist/main-C6_DPWGX.cjs +0 -11
- package/dist/martyrs/src/components/Button/Button.vue.js.map +0 -1
- package/dist/martyrs/src/components/Chips/Chips.vue.cjs.map +0 -1
- package/dist/martyrs/src/components/Chips/Chips.vue.js.map +0 -1
- package/dist/martyrs/src/components/Field/Field.vue2.cjs.map +0 -1
- package/dist/martyrs/src/components/Field/Field.vue2.js.map +0 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.cjs +0 -184
- package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.cjs.map +0 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.js +0 -184
- package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.js.map +0 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterOptions.vue.cjs +0 -67
- package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterOptions.vue.cjs.map +0 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterOptions.vue.js +0 -67
- package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterOptions.vue.js.map +0 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterPrice.vue.cjs +0 -91
- package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterPrice.vue.cjs.map +0 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterPrice.vue.js +0 -91
- package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterPrice.vue.js.map +0 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterRange.vue2.cjs +0 -64
- package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterRange.vue2.cjs.map +0 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterRange.vue2.js +0 -64
- package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterRange.vue2.js.map +0 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/EditArray.vue.cjs +0 -80
- package/dist/martyrs/src/modules/organizations/components/blocks/EditArray.vue.cjs.map +0 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/EditArray.vue.js +0 -80
- package/dist/martyrs/src/modules/organizations/components/blocks/EditArray.vue.js.map +0 -1
- package/dist/martyrs/src/modules/products/components/blocks/CardLeftover.vue.cjs +0 -118
- package/dist/martyrs/src/modules/products/components/blocks/CardLeftover.vue.cjs.map +0 -1
- package/dist/martyrs/src/modules/products/components/blocks/CardLeftover.vue.js +0 -118
- package/dist/martyrs/src/modules/products/components/blocks/CardLeftover.vue.js.map +0 -1
- package/dist/martyrs/src/modules/products/components/forms/ColumnSettingsMenu.vue.cjs +0 -73
- package/dist/martyrs/src/modules/products/components/forms/ColumnSettingsMenu.vue.cjs.map +0 -1
- package/dist/martyrs/src/modules/products/components/forms/ColumnSettingsMenu.vue.js +0 -73
- package/dist/martyrs/src/modules/products/components/forms/ColumnSettingsMenu.vue.js.map +0 -1
- package/dist/martyrs/src/modules/products/components/forms/ReorderSettingsForm.vue.cjs +0 -101
- package/dist/martyrs/src/modules/products/components/forms/ReorderSettingsForm.vue.cjs.map +0 -1
- package/dist/martyrs/src/modules/products/components/forms/ReorderSettingsForm.vue.js +0 -101
- package/dist/martyrs/src/modules/products/components/forms/ReorderSettingsForm.vue.js.map +0 -1
- package/dist/martyrs/src/modules/products/components/forms/StockAuditForm.vue.cjs +0 -135
- package/dist/martyrs/src/modules/products/components/forms/StockAuditForm.vue.cjs.map +0 -1
- package/dist/martyrs/src/modules/products/components/forms/StockAuditForm.vue.js +0 -135
- package/dist/martyrs/src/modules/products/components/forms/StockAuditForm.vue.js.map +0 -1
- package/dist/martyrs/src/modules/products/components/forms/StockHistoryView.vue.cjs +0 -148
- package/dist/martyrs/src/modules/products/components/forms/StockHistoryView.vue.cjs.map +0 -1
- package/dist/martyrs/src/modules/products/components/forms/StockHistoryView.vue.js +0 -148
- package/dist/martyrs/src/modules/products/components/forms/StockHistoryView.vue.js.map +0 -1
- package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.cjs +0 -345
- package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.cjs.map +0 -1
- package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.js +0 -345
- package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.js.map +0 -1
- package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.cjs +0 -316
- package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.cjs.map +0 -1
- package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.js +0 -316
- package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.js.map +0 -1
- package/dist/martyrs/src/modules/products/router/leftovers.router.cjs +0 -51
- package/dist/martyrs/src/modules/products/router/leftovers.router.cjs.map +0 -1
- package/dist/martyrs/src/modules/products/router/leftovers.router.js +0 -51
- package/dist/martyrs/src/modules/products/router/leftovers.router.js.map +0 -1
- package/dist/martyrs/src/modules/products/store/leftovers.cjs +0 -111
- package/dist/martyrs/src/modules/products/store/leftovers.cjs.map +0 -1
- package/dist/martyrs/src/modules/products/store/leftovers.js +0 -111
- package/dist/martyrs/src/modules/products/store/leftovers.js.map +0 -1
- package/src/modules/inventory/models/stock.inventory.model.js +0 -38
- package/src/modules/organizations/components/blocks/EditArray.vue +0 -147
- package/src/modules/products/components/blocks/CardLeftover.vue +0 -117
- package/src/modules/products/controllers/leftovers.controller.js +0 -117
- package/src/modules/products/models/leftover.model.js +0 -105
- package/src/modules/products/router/leftovers.router.js +0 -40
- package/src/modules/products/routes/leftovers.routes.js +0 -15
- package/src/modules/products/store/leftovers.js +0 -121
|
@@ -2,18 +2,18 @@ import { ref, onMounted, createElementBlock, createCommentVNode, unref, openBloc
|
|
|
2
2
|
import { useRoute, useRouter } from "vue-router";
|
|
3
3
|
import _sfc_main$1 from "../../../../components/Block/Block.vue.js";
|
|
4
4
|
import _sfc_main$3 from "../../../../components/Tab/Tab.vue2.js";
|
|
5
|
-
import
|
|
5
|
+
import Field from "../../../../components/Field/Field.vue.js";
|
|
6
6
|
import Select from "../../../../components/Select/Select.vue.js";
|
|
7
|
-
import _sfc_main$2 from "../../../../components/Button/Button.
|
|
7
|
+
import _sfc_main$2 from "../../../../components/Button/Button.vue2.js";
|
|
8
8
|
import _sfc_main$4 from "../../../../components/EditImages/EditImages.vue2.js";
|
|
9
9
|
import BlockMultiselect from "../../../globals/views/components/blocks/BlockMultiselect.vue.js";
|
|
10
10
|
import _sfc_main$5 from "../../../icons/navigation/IconCross.vue.js";
|
|
11
|
-
import _sfc_main$
|
|
12
|
-
import _sfc_main$
|
|
13
|
-
import _sfc_main$
|
|
14
|
-
import _sfc_main$
|
|
11
|
+
import _sfc_main$a from "../../../icons/navigation/IconDelete.vue.js";
|
|
12
|
+
import _sfc_main$7 from "../sections/EditVariants.vue.js";
|
|
13
|
+
import _sfc_main$6 from "../sections/EditAttributes.vue.js";
|
|
14
|
+
import _sfc_main$8 from "../sections/EditDiscounts.vue.js";
|
|
15
15
|
/* empty css */
|
|
16
|
-
import _sfc_main$
|
|
16
|
+
import _sfc_main$9 from "../sections/EditRecommended.vue.js";
|
|
17
17
|
import { setError } from "../../../globals/views/store/globals.js";
|
|
18
18
|
import { state as state$2 } from "../../../auth/views/store/auth.js";
|
|
19
19
|
import { mutations, actions, state } from "../../store/products.js";
|
|
@@ -95,7 +95,6 @@ const _sfc_main = {
|
|
|
95
95
|
});
|
|
96
96
|
async function onSubmit() {
|
|
97
97
|
try {
|
|
98
|
-
console.log("product is", state.current);
|
|
99
98
|
if (route.params.product) {
|
|
100
99
|
await actions.update(route.params.product, state.current);
|
|
101
100
|
} else {
|
|
@@ -129,7 +128,7 @@ const _sfc_main = {
|
|
|
129
128
|
return unref(isPageLoaded) ? (openBlock(), createElementBlock("div", _hoisted_1, [
|
|
130
129
|
!_ctx.MOBILE_APP ? (openBlock(), createBlock(_sfc_main$1, {
|
|
131
130
|
key: 0,
|
|
132
|
-
class: "flex-nowrap gap-thin flex-v-center flex"
|
|
131
|
+
class: "flex-nowrap mn-b-thin gap-thin flex-v-center flex"
|
|
133
132
|
}, {
|
|
134
133
|
default: withCtx(() => [
|
|
135
134
|
createElementVNode("h2", _hoisted_2, toDisplayString(unref(route).params.product ? state.current.name : "Create Product"), 1),
|
|
@@ -168,7 +167,8 @@ const _sfc_main = {
|
|
|
168
167
|
{ label: "Recommended", value: "recommended" },
|
|
169
168
|
{ label: "Localization", value: "localization" }
|
|
170
169
|
],
|
|
171
|
-
class: "flex-child-default bg-light radius-medium h-max pd-thin o-x-scroll"
|
|
170
|
+
class: "flex-child-default gap-micro scroll-hide bg-light radius-medium h-max pd-thin mn-b-thin o-x-scroll",
|
|
171
|
+
classTab: "bg-white"
|
|
172
172
|
}, null, 8, ["selected"])) : createCommentVNode("", true),
|
|
173
173
|
unref(activeTab) === "details" ? (openBlock(), createElementBlock("div", _hoisted_3, [
|
|
174
174
|
createVNode(_sfc_main$1, {
|
|
@@ -285,13 +285,13 @@ const _sfc_main = {
|
|
|
285
285
|
class: "pos-relative w-100 bg-white radius-small pd-medium"
|
|
286
286
|
}, null, 8, ["select"])
|
|
287
287
|
]),
|
|
288
|
-
createVNode(
|
|
288
|
+
createVNode(Field, {
|
|
289
289
|
field: state.current.name,
|
|
290
290
|
"onUpdate:field": _cache[5] || (_cache[5] = ($event) => state.current.name = $event),
|
|
291
291
|
placeholder: "Enter product name",
|
|
292
292
|
class: "w-100 mn-b-thin bg-white radius-small pd-medium"
|
|
293
293
|
}, null, 8, ["field"]),
|
|
294
|
-
createVNode(
|
|
294
|
+
createVNode(Field, {
|
|
295
295
|
field: state.current.description,
|
|
296
296
|
"onUpdate:field": _cache[6] || (_cache[6] = ($event) => state.current.description = $event),
|
|
297
297
|
placeholder: "Enter product description",
|
|
@@ -299,7 +299,7 @@ const _sfc_main = {
|
|
|
299
299
|
style: { "resize": "vertical" },
|
|
300
300
|
type: "textarea"
|
|
301
301
|
}, null, 8, ["field"]),
|
|
302
|
-
createVNode(
|
|
302
|
+
createVNode(Field, {
|
|
303
303
|
field: state.current.included,
|
|
304
304
|
"onUpdate:field": _cache[7] || (_cache[7] = ($event) => state.current.included = $event),
|
|
305
305
|
placeholder: "Enter what's inside",
|
|
@@ -310,22 +310,22 @@ const _sfc_main = {
|
|
|
310
310
|
]),
|
|
311
311
|
_: 1
|
|
312
312
|
}),
|
|
313
|
-
createVNode(_sfc_main$
|
|
313
|
+
createVNode(_sfc_main$6, {
|
|
314
314
|
attributes: state.current.attributes,
|
|
315
315
|
"onUpdate:attributes": _cache[8] || (_cache[8] = ($event) => state.current.attributes = $event)
|
|
316
316
|
}, null, 8, ["attributes"])
|
|
317
317
|
])) : createCommentVNode("", true),
|
|
318
|
-
unref(activeTab) === "variants" ? (openBlock(), createBlock(_sfc_main$
|
|
318
|
+
unref(activeTab) === "variants" ? (openBlock(), createBlock(_sfc_main$7, {
|
|
319
319
|
key: 3,
|
|
320
320
|
variants: state.current.variants,
|
|
321
321
|
"onUpdate:variants": _cache[9] || (_cache[9] = ($event) => state.current.variants = $event)
|
|
322
322
|
}, null, 8, ["variants"])) : createCommentVNode("", true),
|
|
323
|
-
unref(activeTab) === "discounts" ? (openBlock(), createBlock(_sfc_main$
|
|
323
|
+
unref(activeTab) === "discounts" ? (openBlock(), createBlock(_sfc_main$8, {
|
|
324
324
|
key: 4,
|
|
325
325
|
discounts: state.current.discounts,
|
|
326
326
|
"onUpdate:discounts": _cache[10] || (_cache[10] = ($event) => state.current.discounts = $event)
|
|
327
327
|
}, null, 8, ["discounts"])) : createCommentVNode("", true),
|
|
328
|
-
unref(activeTab) === "recommended" ? (openBlock(), createBlock(_sfc_main$
|
|
328
|
+
unref(activeTab) === "recommended" ? (openBlock(), createBlock(_sfc_main$9, {
|
|
329
329
|
key: 5,
|
|
330
330
|
recommended: state.current.recommended,
|
|
331
331
|
"onUpdate:recommended": _cache[11] || (_cache[11] = ($event) => state.current.recommended = $event),
|
|
@@ -346,26 +346,26 @@ const _sfc_main = {
|
|
|
346
346
|
class: "gap-thin mn-b-thin flex-nowrap flex",
|
|
347
347
|
key: index
|
|
348
348
|
}, [
|
|
349
|
-
createVNode(
|
|
349
|
+
createVNode(Field, {
|
|
350
350
|
field: item.locale,
|
|
351
351
|
"onUpdate:field": ($event) => item.locale = $event,
|
|
352
352
|
placeholder: "Locale (en, ru, etc.)",
|
|
353
353
|
class: "w-30 bg-white radius-small pd-medium"
|
|
354
354
|
}, null, 8, ["field", "onUpdate:field"]),
|
|
355
|
-
createVNode(
|
|
355
|
+
createVNode(Field, {
|
|
356
356
|
field: item.name,
|
|
357
357
|
"onUpdate:field": ($event) => item.name = $event,
|
|
358
358
|
placeholder: "Product name",
|
|
359
359
|
class: "w-100 bg-white radius-small pd-medium"
|
|
360
360
|
}, null, 8, ["field", "onUpdate:field"]),
|
|
361
|
-
createVNode(
|
|
361
|
+
createVNode(Field, {
|
|
362
362
|
field: item.description,
|
|
363
363
|
"onUpdate:field": ($event) => item.description = $event,
|
|
364
364
|
placeholder: "Product description",
|
|
365
365
|
class: "w-100 bg-white radius-small pd-medium"
|
|
366
366
|
}, null, 8, ["field", "onUpdate:field"]),
|
|
367
367
|
createElementVNode("div", _hoisted_13, [
|
|
368
|
-
createVNode(_sfc_main$
|
|
368
|
+
createVNode(_sfc_main$a, {
|
|
369
369
|
onClick: () => state.current.translations.splice(index, 1),
|
|
370
370
|
class: "i-medium"
|
|
371
371
|
}, null, 8, ["onClick"])
|
|
@@ -379,7 +379,6 @@ const _sfc_main = {
|
|
|
379
379
|
unref(route).params.product ? (openBlock(), createBlock(_sfc_main$2, {
|
|
380
380
|
key: 0,
|
|
381
381
|
submit: onDelete,
|
|
382
|
-
callback: redirectTo,
|
|
383
382
|
class: "bg-red t-white w-100"
|
|
384
383
|
}, {
|
|
385
384
|
default: withCtx(() => _cache[14] || (_cache[14] = [
|
|
@@ -389,7 +388,6 @@ const _sfc_main = {
|
|
|
389
388
|
})) : createCommentVNode("", true),
|
|
390
389
|
createVNode(_sfc_main$2, {
|
|
391
390
|
submit: onSubmit,
|
|
392
|
-
callback: redirectTo,
|
|
393
391
|
class: "w-100 bg-main"
|
|
394
392
|
}, {
|
|
395
393
|
default: withCtx(() => _cache[15] || (_cache[15] = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProductEdit.vue.js","sources":["../../../../../../../src/modules/products/components/pages/ProductEdit.vue"],"sourcesContent":["<template>\n <div v-if=\"isPageLoaded\" class=\"w-100 bg-white pd-thin gap-thin\">\n \n <Block v-if=\"!MOBILE_APP\" class=\"flex-nowrap gap-thin flex-v-center flex\">\n <h2 class=\"t-truncate mn-r-auto\">\n {{ route.params.product ? products.state.current.name : 'Create Product' }}\n </h2>\n\n <Button \n v-if=\"route.params.product\"\n :submit=\"onDelete\" \n :callback=\"redirectTo\"\n class=\"w-10 w-max-20r w-min-8r bg-red\"\n >\n Delete \n </Button>\n\n <Button \n :submit=\"onSubmit\" \n :callback=\"redirectTo\"\n class=\"w-10 w-max-20r w-min-8r bg-main\"\n >\n Save\n </Button>\n </Block>\n\n <!-- Tab Navigation -->\n <Tab\n v-model:selected=\"activeTab\"\n v-if=\"route.params.product\"\n :tabs=\"[\n { label: 'Details', value: 'details' },\n { label: 'Variants', value: 'variants' },\n { label: 'Discounts', value: 'discounts' },\n { label: 'Recommended', value: 'recommended' },\n { label: 'Localization', value: 'localization' }\n ]\"\n class=\"flex-child-default bg-light radius-medium h-max pd-thin o-x-scroll\"\n />\n\n <!-- Tab Content -->\n <div v-if=\"activeTab === 'details'\" class=\"cols-1 gap-thin\">\n <!-- Product Images -->\n <Block\n placeholder=\"The product doesn't have any images yet.\"\n class=\"h-min\"\n >\n <EditImages \n :images=\"products.state.current.images\"\n :uploadPath=\"'photos'\" \n @update:images=\"(imagesNew) => { products.state.current.images = imagesNew }\" \n />\n </Block>\n\n <Block title=\"Categories\">\n <BlockMultiselect\n v-model=\"products.state.current.category\"\n placeholder=\"Search categories...\"\n :multiple=\"true\"\n :transform=\"(item) => ({ _id: item._id, name: item.name })\"\n :store=\"{\n read: (options) => categories.actions.read(options),\n state: categories.state\n }\"\n :options=\"{\n rootOnly: false,\n excludeChildren: false,\n limit: 50\n }\"\n :skeleton=\"{\n hide: false,\n horizontal: true,\n class: 'radius-small',\n structure: [{ \n block: 'text', size: 'large'\n }]\n }\"\n :states=\"{\n empty: {\n title: 'No categories found',\n description: 'Try different search terms or create a new category',\n class: 'radius-small'\n }\n }\"\n key=\"_id\"\n :label=\"item => item.name\"\n classSearch=\"bg-white radius-small\"\n classSelected=\"bg-white pd-small radius-small\"\n classDropdown=\"bg-white pd-small radius-medium bs-small\"\n classItem=\"pd-small radius-small hover-bg-light cursor-pointer\"\n classFeed=\"h-max-30r gap-thin flex-column flex o-scroll\"\n >\n <!-- Слот для выбранных категорий -->\n <template #selected=\"{ item, clear }\">\n <div class=\"flex-nowrap flex-v-center flex gap-thin\">\n <span class=\"t-medium\">{{ item?.name || item }}</span>\n <button \n @click.stop=\"clear\"\n class=\"i-small pd-micro bg-red radius-extra flex-center flex aspect-1x1 hover-scale-1\"\n >\n <IconCross class=\"i-micro fill-white\" />\n </button>\n </div>\n </template>\n \n <!-- Слот для элементов в списке -->\n <template #item=\"{ item }\">\n <div class=\"flex-nowrap flex-v-center flex\">\n <img \n v-if=\"item.photo\" \n :src=\"(FILE_SERVER_URL || '') + item.photo\"\n class=\"i-medium radius-small object-fit-cover mn-r-thin\"\n />\n <div class=\"w-100\">\n <p class=\"t-medium\">{{ item.name }}</p>\n <p v-if=\"item.description\" class=\"t-small t-transp\">{{ item.description }}</p>\n </div>\n </div>\n </template>\n </BlockMultiselect>\n </Block>\n\n <!-- Product Profile -->\n <Block title=\"Profile\">\n <div class=\"mn-b-thin flex-nowrap flex gap-thin\">\n <Select \n v-model:select=\"products.state.current.status\"\n label=\"Status\"\n :options=\"[\n 'draft', \n 'published',\n 'featured',\n 'archived',\n 'removed'\n ]\"\n placeholder=\"Display product\"\n class=\"pos-relative w-100 bg-white radius-small pd-medium\"\n />\n <Select \n v-model:select=\"products.state.current.listing\"\n label=\"Type\"\n :options=\"[\n 'sale', \n 'rent',\n ]\"\n placeholder=\"Type of listing\"\n class=\"pos-relative w-100 bg-white radius-small pd-medium\"\n />\n </div>\n\n <Field \n v-model:field=\"products.state.current.name\" \n placeholder=\"Enter product name\"\n class=\"w-100 mn-b-thin bg-white radius-small pd-medium\"\n />\n <Field\n v-model:field=\"products.state.current.description\" \n placeholder=\"Enter product description\" \n class=\"w-100 bg-white radius-small mn-b-thin pd-medium\"\n style=\"resize: vertical\"\n type=\"textarea\"\n />\n <Field\n v-model:field=\"products.state.current.included\" \n placeholder=\"Enter what's inside\" \n class=\"w-100 bg-white radius-small pd-medium\"\n style=\"resize: vertical\"\n type=\"textarea\"\n />\n </Block>\n <!-- Categories -->\n \n\n\n <!-- Attributes -->\n <EditAttributes \n v-model:attributes=\"products.state.current.attributes\" \n />\n </div>\n\n <!-- Variants Tab -->\n <EditVariants\n\t\t\tv-if=\"activeTab === 'variants'\"\n v-model:variants=\"products.state.current.variants\" \n />\n\n <!-- Discounts Tab -->\n <EditDiscounts\n\t\t\tv-if=\"activeTab === 'discounts'\"\n v-model:discounts=\"products.state.current.discounts\"\n />\n <EditRecommended \n v-if=\"activeTab === 'recommended'\" \n v-model:recommended=\"products.state.current.recommended\"\n class=\"cols-1 gap-thin\"\n />\n\n <!-- Localization Tab -->\n <Block\n\t\t v-if=\"activeTab === 'localization'\"\n title=\"Localization\"\n placeholder=\"No localizations added yet\"\n :actions=\"[{\n label: '+',\n function: () => products.state.current.translations.push({locale: '', name: '', description: ''})\n }]\"\n >\n <div \n class=\"gap-thin mn-b-thin flex-nowrap flex\" \n v-for=\"(item, index) in products.state.current.translations\" \n :key=\"index\"\n > \n <Field\n v-model:field=\"item.locale\"\n placeholder=\"Locale (en, ru, etc.)\"\n class=\"w-30 bg-white radius-small pd-medium\"\n /> \n <Field\n v-model:field=\"item.name\"\n placeholder=\"Product name\"\n class=\"w-100 bg-white radius-small pd-medium\"\n />\n <Field\n v-model:field=\"item.description\"\n placeholder=\"Product description\"\n class=\"w-100 bg-white radius-small pd-medium\"\n />\n <div class=\"radius-small pd-small flex-center flex aspect-1x1 bg-red cursor-pointer hover-scale-1\">\n <IconDelete \n @click=\"() => products.state.current.translations.splice(index, 1)\" \n class=\"i-medium\"\n />\n </div>\n </div>\n </Block>\n\n <!-- Bottom Action Buttons -->\n <div class=\"flex-nowrap flex gap-thin\">\n <Button \n v-if=\"route.params.product\"\n :submit=\"onDelete\" \n :callback=\"redirectTo\"\n class=\"bg-red t-white w-100\"\n >\n Delete \n </Button>\n\n <Button \n :submit=\"onSubmit\" \n :callback=\"redirectTo\"\n class=\"w-100 bg-main\"\n >\n Save\n </Button>\n </div>\n </div>\n</template>\n\n<script setup>\n// Import libs\nimport { reactive, computed, onMounted, ref } from 'vue'\nimport { useRoute, useRouter } from 'vue-router'\n\n// Import components\nimport Block from '@martyrs/src/components/Block/Block.vue';\nimport Tab from \"@martyrs/src/components/Tab/Tab.vue\";\nimport Field from \"@martyrs/src/components/Field/Field.vue\";\nimport Select from '@martyrs/src/components/Select/Select.vue';\nimport Checkbox from \"@martyrs/src/components/Checkbox/Checkbox.vue\";\nimport Button from \"@martyrs/src/components/Button/Button.vue\";\nimport Tree from \"@martyrs/src/components/Tree/Tree.vue\";\nimport EditImages from '@martyrs/src/components/EditImages/EditImages.vue';\n\nimport BlockMultiselect from '@martyrs/src/modules/globals/views/components/blocks/BlockMultiselect.vue';\nimport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue';\nimport IconDelete from '@martyrs/src/modules/icons/navigation/IconDelete.vue';\n\nimport EditVariants from '@martyrs/src/modules/products/components/sections/EditVariants.vue';\nimport EditAttributes from '@martyrs/src/modules/products/components/sections/EditAttributes.vue';\nimport EditDiscounts from '@martyrs/src/modules/products/components/sections/EditDiscounts.vue';\nimport EditCategories from '@martyrs/src/modules/products/components/sections/EditCategories.vue';\nimport EditRecommended from '@martyrs/src/modules/products/components/sections/EditRecommended.vue';\n\n// Accessing router and store\nimport * as globals from '@martyrs/src/modules/globals/views/store/globals.js';\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\nimport * as products from '@martyrs/src/modules/products/store/products.js';\nimport * as categories from '@martyrs/src/modules/products/store/categories.js';\n\nimport { setError } from '@martyrs/src/modules/globals/views/store/globals.js'\n\nconst route = useRoute()\nconst router = useRouter()\nconst emits = defineEmits(['page-loading', 'page-loaded']);\n\nlet isPageLoaded = ref(false)\nlet activeTab = ref('details')\n\nonMounted(async() => { \n emits('page-loading');\n\n products.mutations.resetProduct();\n\n if (route.params.product) {\n await products.actions.read({ _id: route.params.product, lookup: ['variants','categories','recommended'] });\n } else {\n // Создаем дефолтный вариант для нового товара\n if (!products.state.current.variants || products.state.current.variants.length === 0) {\n products.state.current.variants = [{\n name: 'Default',\n sku: '',\n images: [],\n price: 0,\n cost: 0,\n quantity: 1,\n unit: 'pcs',\n available: 0,\n ingredients: [],\n attributes: []\n }];\n }\n }\n\n // Убедимся, что массивы инициализированы\n if (!products.state.current.translations) {\n products.state.current.translations = []\n }\n // Убедимся, что массивы инициализированы\n if (!products.state.current.recommended) {\n products.state.current.recommended = []\n }\n if (!products.state.current.discounts) {\n products.state.current.discounts = []\n }\n\n try {\n // Data prefetching\n categories.state.all = await categories.actions.read({\n user: auth.state.user._id,\n rootOnly: true,\n excludeChildren: false,\n limit: 100\n })\n } catch (error) {\n console.error('error loading categories:', error);\n }\n\n emits('page-loaded');\n isPageLoaded.value = true\n})\n\nasync function onSubmit() {\n try {\n // // Проверка на наличие хотя бы одного варианта\n // if (!products.state.current.variants || products.state.current.variants.length === 0) {\n // setError({ response: { data: { errorCode: \"PRODUCT_MUST_HAVE_VARIANT\" }} })\n // return;\n // }\n console.log('product is',products.state.current)\n if (route.params.product) {\n await products.actions.update(route.params.product, products.state.current)\n } else {\n products.state.current.owner = {\n target: route.params._id || auth.state.user._id,\n type: route.params._id ? 'organization' : 'user'\n }\n \n products.state.current.creator = {\n target: auth.state.user._id,\n type: 'user',\n hidden: false\n }\n\n await products.actions.create(products.state.current)\n }\n \n redirectTo()\n } catch (error) {\n setError({ response: { data: { errorCode: \"PRODUCT_NOT_CREATED\" }} })\n console.error('Product creation error:', error)\n }\n}\n\nfunction onDelete() {\n products.actions.deleteProduct(products.state.current._id)\n}\n\nfunction redirectTo() {\n router.push({\n name: route.params._id ? 'Organization' : 'Products', \n params: route.params._id ? { _id: route.params._id } : {}\n })\n}\n</script>"],"names":["products.mutations","products.actions","products.state","categories.state","categories.actions","auth.state"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ProductEdit.vue.js","sources":["../../../../../../../src/modules/products/components/pages/ProductEdit.vue"],"sourcesContent":["<template>\n <div v-if=\"isPageLoaded\" class=\"w-100 bg-white pd-thin gap-thin\">\n \n <Block v-if=\"!MOBILE_APP\" class=\"flex-nowrap mn-b-thin gap-thin flex-v-center flex\">\n <h2 class=\"t-truncate mn-r-auto\">\n {{ route.params.product ? products.state.current.name : 'Create Product' }}\n </h2>\n\n <Button \n v-if=\"route.params.product\"\n :submit=\"onDelete\" \n :callback=\"redirectTo\"\n class=\"w-10 w-max-20r w-min-8r bg-red\"\n >\n Delete \n </Button>\n\n <Button \n :submit=\"onSubmit\" \n :callback=\"redirectTo\"\n class=\"w-10 w-max-20r w-min-8r bg-main\"\n >\n Save\n </Button>\n </Block>\n\n <!-- Tab Navigation -->\n <Tab\n v-model:selected=\"activeTab\"\n v-if=\"route.params.product\"\n :tabs=\"[\n { label: 'Details', value: 'details' },\n { label: 'Variants', value: 'variants' },\n { label: 'Discounts', value: 'discounts' },\n { label: 'Recommended', value: 'recommended' },\n { label: 'Localization', value: 'localization' }\n ]\"\n class=\"flex-child-default gap-micro scroll-hide bg-light radius-medium h-max pd-thin mn-b-thin o-x-scroll\"\n classTab=\"bg-white\"\n />\n\n <!-- Tab Content -->\n <div v-if=\"activeTab === 'details'\" class=\"cols-1 gap-thin\">\n <!-- Product Images -->\n <Block\n placeholder=\"The product doesn't have any images yet.\"\n class=\"h-min\"\n >\n <EditImages \n :images=\"products.state.current.images\"\n :uploadPath=\"'photos'\" \n @update:images=\"(imagesNew) => { products.state.current.images = imagesNew }\" \n />\n </Block>\n\n <Block title=\"Categories\">\n <BlockMultiselect\n v-model=\"products.state.current.category\"\n placeholder=\"Search categories...\"\n :multiple=\"true\"\n :transform=\"(item) => ({ _id: item._id, name: item.name })\"\n :store=\"{\n read: (options) => categories.actions.read(options),\n state: categories.state\n }\"\n :options=\"{\n rootOnly: false,\n excludeChildren: false,\n limit: 50\n }\"\n :skeleton=\"{\n hide: false,\n horizontal: true,\n class: 'radius-small',\n structure: [{ \n block: 'text', size: 'large'\n }]\n }\"\n :states=\"{\n empty: {\n title: 'No categories found',\n description: 'Try different search terms or create a new category',\n class: 'radius-small'\n }\n }\"\n key=\"_id\"\n :label=\"item => item.name\"\n classSearch=\"bg-white radius-small\"\n classSelected=\"bg-white pd-small radius-small\"\n classDropdown=\"bg-white pd-small radius-medium bs-small\"\n classItem=\"pd-small radius-small hover-bg-light cursor-pointer\"\n classFeed=\"h-max-30r gap-thin flex-column flex o-scroll\"\n >\n <!-- Слот для выбранных категорий -->\n <template #selected=\"{ item, clear }\">\n <div class=\"flex-nowrap flex-v-center flex gap-thin\">\n <span class=\"t-medium\">{{ item?.name || item }}</span>\n <button \n @click.stop=\"clear\"\n class=\"i-small pd-micro bg-red radius-extra flex-center flex aspect-1x1 hover-scale-1\"\n >\n <IconCross class=\"i-micro fill-white\" />\n </button>\n </div>\n </template>\n \n <!-- Слот для элементов в списке -->\n <template #item=\"{ item }\">\n <div class=\"flex-nowrap flex-v-center flex\">\n <img \n v-if=\"item.photo\" \n :src=\"(FILE_SERVER_URL || '') + item.photo\"\n class=\"i-medium radius-small object-fit-cover mn-r-thin\"\n />\n <div class=\"w-100\">\n <p class=\"t-medium\">{{ item.name }}</p>\n <p v-if=\"item.description\" class=\"t-small t-transp\">{{ item.description }}</p>\n </div>\n </div>\n </template>\n </BlockMultiselect>\n </Block>\n\n <!-- Product Profile -->\n <Block title=\"Profile\">\n <div class=\"mn-b-thin flex-nowrap flex gap-thin\">\n <Select \n v-model:select=\"products.state.current.status\"\n label=\"Status\"\n :options=\"[\n 'draft', \n 'published',\n 'featured',\n 'archived',\n 'removed'\n ]\"\n placeholder=\"Display product\"\n class=\"pos-relative w-100 bg-white radius-small pd-medium\"\n />\n <Select \n v-model:select=\"products.state.current.listing\"\n label=\"Type\"\n :options=\"[\n 'sale', \n 'rent',\n ]\"\n placeholder=\"Type of listing\"\n class=\"pos-relative w-100 bg-white radius-small pd-medium\"\n />\n </div>\n\n <Field \n v-model:field=\"products.state.current.name\" \n placeholder=\"Enter product name\"\n class=\"w-100 mn-b-thin bg-white radius-small pd-medium\"\n />\n <Field\n v-model:field=\"products.state.current.description\" \n placeholder=\"Enter product description\" \n class=\"w-100 bg-white radius-small mn-b-thin pd-medium\"\n style=\"resize: vertical\"\n type=\"textarea\"\n />\n <Field\n v-model:field=\"products.state.current.included\" \n placeholder=\"Enter what's inside\" \n class=\"w-100 bg-white radius-small pd-medium\"\n style=\"resize: vertical\"\n type=\"textarea\"\n />\n </Block>\n <!-- Categories -->\n \n\n\n <!-- Attributes -->\n <EditAttributes \n v-model:attributes=\"products.state.current.attributes\" \n />\n </div>\n\n <!-- Variants Tab -->\n <EditVariants\n\t\t\tv-if=\"activeTab === 'variants'\"\n v-model:variants=\"products.state.current.variants\" \n />\n\n <!-- Discounts Tab -->\n <EditDiscounts\n\t\t\tv-if=\"activeTab === 'discounts'\"\n v-model:discounts=\"products.state.current.discounts\"\n />\n <EditRecommended \n v-if=\"activeTab === 'recommended'\" \n v-model:recommended=\"products.state.current.recommended\"\n class=\"cols-1 gap-thin\"\n />\n\n <!-- Localization Tab -->\n <Block\n\t\t v-if=\"activeTab === 'localization'\"\n title=\"Localization\"\n placeholder=\"No localizations added yet\"\n :actions=\"[{\n label: '+',\n function: () => products.state.current.translations.push({locale: '', name: '', description: ''})\n }]\"\n >\n <div \n class=\"gap-thin mn-b-thin flex-nowrap flex\" \n v-for=\"(item, index) in products.state.current.translations\" \n :key=\"index\"\n > \n <Field\n v-model:field=\"item.locale\"\n placeholder=\"Locale (en, ru, etc.)\"\n class=\"w-30 bg-white radius-small pd-medium\"\n /> \n <Field\n v-model:field=\"item.name\"\n placeholder=\"Product name\"\n class=\"w-100 bg-white radius-small pd-medium\"\n />\n <Field\n v-model:field=\"item.description\"\n placeholder=\"Product description\"\n class=\"w-100 bg-white radius-small pd-medium\"\n />\n <div class=\"radius-small pd-small flex-center flex aspect-1x1 bg-red cursor-pointer hover-scale-1\">\n <IconDelete \n @click=\"() => products.state.current.translations.splice(index, 1)\" \n class=\"i-medium\"\n />\n </div>\n </div>\n </Block>\n\n <!-- Bottom Action Buttons -->\n <div class=\"flex-nowrap flex gap-thin\">\n <Button \n v-if=\"route.params.product\"\n :submit=\"onDelete\" \n class=\"bg-red t-white w-100\"\n >\n Delete \n </Button>\n\n <Button \n :submit=\"onSubmit\" \n class=\"w-100 bg-main\"\n >\n Save\n </Button>\n </div>\n </div>\n</template>\n\n<script setup>\n// Import libs\nimport { reactive, computed, onMounted, ref } from 'vue'\nimport { useRoute, useRouter } from 'vue-router'\n\n// Import components\nimport Block from '@martyrs/src/components/Block/Block.vue';\nimport Tab from \"@martyrs/src/components/Tab/Tab.vue\";\nimport Field from \"@martyrs/src/components/Field/Field.vue\";\nimport Select from '@martyrs/src/components/Select/Select.vue';\nimport Checkbox from \"@martyrs/src/components/Checkbox/Checkbox.vue\";\nimport Button from \"@martyrs/src/components/Button/Button.vue\";\nimport Tree from \"@martyrs/src/components/Tree/Tree.vue\";\nimport EditImages from '@martyrs/src/components/EditImages/EditImages.vue';\n\nimport BlockMultiselect from '@martyrs/src/modules/globals/views/components/blocks/BlockMultiselect.vue';\nimport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue';\nimport IconDelete from '@martyrs/src/modules/icons/navigation/IconDelete.vue';\n\nimport EditVariants from '@martyrs/src/modules/products/components/sections/EditVariants.vue';\nimport EditAttributes from '@martyrs/src/modules/products/components/sections/EditAttributes.vue';\nimport EditDiscounts from '@martyrs/src/modules/products/components/sections/EditDiscounts.vue';\nimport EditCategories from '@martyrs/src/modules/products/components/sections/EditCategories.vue';\nimport EditRecommended from '@martyrs/src/modules/products/components/sections/EditRecommended.vue';\n\n// Accessing router and store\nimport * as globals from '@martyrs/src/modules/globals/views/store/globals.js';\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\nimport * as products from '@martyrs/src/modules/products/store/products.js';\nimport * as categories from '@martyrs/src/modules/products/store/categories.js';\n\nimport { setError } from '@martyrs/src/modules/globals/views/store/globals.js'\n\nconst route = useRoute()\nconst router = useRouter()\nconst emits = defineEmits(['page-loading', 'page-loaded']);\n\nlet isPageLoaded = ref(false)\nlet activeTab = ref('details')\n\nonMounted(async() => { \n emits('page-loading');\n\n products.mutations.resetProduct();\n\n if (route.params.product) {\n await products.actions.read({ _id: route.params.product, lookup: ['variants','categories','recommended'] });\n } else {\n // Создаем дефолтный вариант для нового товара\n if (!products.state.current.variants || products.state.current.variants.length === 0) {\n products.state.current.variants = [{\n name: 'Default',\n sku: '',\n images: [],\n price: 0,\n cost: 0,\n quantity: 1,\n unit: 'pcs',\n available: 0,\n ingredients: [],\n attributes: []\n }];\n }\n }\n\n // Убедимся, что массивы инициализированы\n if (!products.state.current.translations) {\n products.state.current.translations = []\n }\n // Убедимся, что массивы инициализированы\n if (!products.state.current.recommended) {\n products.state.current.recommended = []\n }\n if (!products.state.current.discounts) {\n products.state.current.discounts = []\n }\n\n try {\n // Data prefetching\n categories.state.all = await categories.actions.read({\n user: auth.state.user._id,\n rootOnly: true,\n excludeChildren: false,\n limit: 100\n })\n } catch (error) {\n console.error('error loading categories:', error);\n }\n\n emits('page-loaded');\n isPageLoaded.value = true\n})\n\nasync function onSubmit() {\n try {\n if (route.params.product) {\n await products.actions.update(route.params.product, products.state.current)\n } else {\n products.state.current.owner = {\n target: route.params._id || auth.state.user._id,\n type: route.params._id ? 'organization' : 'user'\n }\n products.state.current.creator = {\n target: auth.state.user._id,\n type: 'user',\n hidden: false\n }\n await products.actions.create(products.state.current)\n }\n \n redirectTo()\n } catch (error) {\n setError({ response: { data: { errorCode: \"PRODUCT_NOT_CREATED\" }} })\n console.error('Product creation error:', error)\n }\n}\n\nfunction onDelete() {\n products.actions.deleteProduct(products.state.current._id)\n}\n\nfunction redirectTo() {\n router.push({\n name: route.params._id ? 'Organization' : 'Products', \n params: route.params._id ? { _id: route.params._id } : {}\n })\n}\n</script>"],"names":["products.mutations","products.actions","products.state","categories.state","categories.actions","auth.state"],"mappings":"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"}
|
|
@@ -130,7 +130,7 @@ const _sfc_main = {
|
|
|
130
130
|
],
|
|
131
131
|
style: { "flex": "0 0 auto" },
|
|
132
132
|
class: "p-medium br-t br-solid br-light bg-white gap-micro pd-medium pd-t-thin pd-b-thin z-index-1",
|
|
133
|
-
|
|
133
|
+
classTab: "bg-light uppercase pd-small radius-small w-100"
|
|
134
134
|
}, null, 8, ["selected"])) : vue.createCommentVNode("", true),
|
|
135
135
|
vue.createElementVNode("div", _hoisted_3, [
|
|
136
136
|
vue.createElementVNode("div", _hoisted_4, [
|
|
@@ -172,7 +172,8 @@ const _sfc_main = {
|
|
|
172
172
|
prices: vue.unref(route).query.prices,
|
|
173
173
|
delivery: vue.unref(route).query.delivery,
|
|
174
174
|
search: vue.unref(route).query.search,
|
|
175
|
-
...tabProducts.value !== "all" && { status: tabProducts.value }
|
|
175
|
+
...tabProducts.value !== "all" && { status: tabProducts.value },
|
|
176
|
+
lookup: ["variants"]
|
|
176
177
|
// user: user
|
|
177
178
|
},
|
|
178
179
|
class: "cols-4 pos-relative w-100 rows-1 gap-thin"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Products.vue.cjs","sources":["../../../../../../../src/modules/products/components/pages/Products.vue"],"sourcesContent":["<template>\n <div class=\"h-100 pos-relative\">\n <header \n v-if=\"route.name !== 'Organization' && !MOBILE_APP\"\n class=\"pd-medium flex-v-center flex-nowrap flex\"\n >\n <h2 class=\"mn-r-medium\">Products</h2>\n <button \n v-if=\"hasAccess(route.params._id, 'products', 'create', auth.state.accesses, auth.state.access.roles)\"\n @click=\"$router.push({\n name: route.params?._id ? 'Organization_ProductAdd' : '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' && isAdmin\"\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 style=\"flex: 0 0 auto\"\n class=\"\n\n p-medium\n br-t br-solid br-light \n bg-white\n gap-micro pd-medium pd-t-thin pd-b-thin\n z-index-1\n\n \"\n tabClass=\"bg-light uppercase pd-small radius-small w-100\"\n />\n\n <div class=\"cols-2-1_3 br-1px br-solid br-light h-100 z-index-3 pos-relative radius-medium\">\n\n <div class=\"o-y-scroll br-r br-solid br-light pd-medium z-index-2 desktop-only h-100 pos-relative\">\n <BlockFilter\n v-model:filter=\"products.state.filter\"\n :options=\"products.state.filter.options\"\n class=\"h-100 w-100\"\n />\n </div>\n\n <div class=\"w-100 pd-thin h-max pos-relative o-hidden\">\n <slot></slot>\n <div class=\"pos-relative w-100 z-index-3 radius-tl-big radius-tr-big\">\n <BlockSearch \n @search=\"debouncedSearch\"\n placeholder=\"Enter product name\"\n class=\"bg-light mn-b-thin h-4r\"\n />\n </div>\n <Feed\n v-model:filter=\"products.state.filter\"\n :showLoadMore=\"false\"\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: 16,\n owner: route.params._id,\n categories: route.query.categories,\n filters: generateFilters(products.state.filter.selected),\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 pos-relative w-100 rows-1 gap-thin\"\n \n >\n <router-link \n v-for=\"product in items\" \n :to=\"route.params._id ? { name: 'Organization_Product', params: { _id: route.params._id, product: product._id } } : { name: 'Product', params: { product: product._id } }\"\n class=\"pos-relative h-100 w-100\"\n >\n <CardProduct\n :key=\"product._id\"\n :product=\"product\"\n :user=\"auth.state.access\"\n :organization=\"route.params._id\"\n :access=\"hasAccess(route.params._id, 'products', 'edit', auth.state.accesses, auth.state.access.roles)\"\n class=\"pos-relative h-100 w-100 bg-light\"\n />\n </router-link>\n </Feed>\n\n </div>\n </div>\n</div>\n</template>\n\n\n<script setup=\"props\">\n // Import libs\n import { ref, computed, watch, onMounted, onUnmounted } from 'vue'\n import { useRoute, useRouter } from 'vue-router'\n\n // Import components\n import Tab from '@martyrs/src/components/Tab/Tab.vue'\n import Feed from '@martyrs/src/components/Feed/Feed.vue'\n\n import FilterProducts from '@martyrs/src/modules/products/components/sections/FilterProducts.vue'\n import BlockSearch from '@martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue'\n import BlockFilter from '@martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue'\n\n import CardProduct from '@martyrs/src/modules/products/components/blocks/CardProduct.vue'\n\n import IconPlus from '@martyrs/src/modules/icons/navigation/IconPlus.vue'\n\n // Accessing router and store\n import * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\n import * as globals from '@martyrs/src/modules/globals/views/store/globals.js';\n import * as products from '@martyrs/src/modules/products/store/products.js';\n import * as marketplace from '@martyrs/src/modules/marketplace/views/store/marketplace.js';\n import * as categories from '@martyrs/src/modules/products/store/categories.js';\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 products.state.filter.selected.categories = query.categories ? query.categories.split(',') : [];\n products.state.filter.selected.prices = query.prices ? query.prices.split(',') : [];\n products.state.filter.selected.delivery = query.delivery ? query.delivery.split(',') : [];\n products.state.filter.selected.brand = query.brand ? query.brand.split(',') : [];\n }\n\n\n watch(tabProducts, (newValue) => {\n if (route.name !== 'Organization') router.replace({ query: { ...route.query, tabProducts: newValue } });\n });\n\n globals.state.navigation_bar.actions = [{\n component: IconPlus,\n props: {\n fill: \"rgb(var(--main))\" \n },\n condition: () => auth.state.user && auth.state.user._id,\n action: () => route.params._id ? router.push({ name: 'Organization_ProductAdd', params: { _id: route.params._id} }) : router.push({ name: 'ProductAdd' })\n }],\n\n onMounted(async () => {\n let categoriesFilter = await categories.actions.read({rootOnly:true});\n\n categoriesFilter = categoriesFilter.map(category => ({\n value: category._id,\n label: category.name\n }));\n\n const index = products.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 products.state.filter.options[index] = categoryOption;\n } else {\n products.state.filter.options.unshift(categoryOption);\n }\n })\n\n onUnmounted(() => {\n globals.state.navigation_bar.actions = [];\n });\n\n watch(() => products.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(() => products.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\nfunction debounce(fn, delay) {\n let timeoutId = null;\n return (...args) => {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => fn(...args), delay);\n };\n}\n\nconst debouncedSearch = debounce((search) => {\n let query = { ...route.query}\n \n query.search = search\n \n router.replace({ query });\n}, 500);\n\n</script>\n\n<style lang=\"scss\">\n\n\n</style>\n"],"names":["useRoute","useRouter","ref","products.state","watch","globals.state","IconPlus","auth.state","onMounted","categories.actions","onUnmounted"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Products.vue.cjs","sources":["../../../../../../../src/modules/products/components/pages/Products.vue"],"sourcesContent":["<template>\n <div class=\"h-100 pos-relative\">\n <header \n v-if=\"route.name !== 'Organization' && !MOBILE_APP\"\n class=\"pd-medium flex-v-center flex-nowrap flex\"\n >\n <h2 class=\"mn-r-medium\">Products</h2>\n <button \n v-if=\"hasAccess(route.params._id, 'products', 'create', auth.state.accesses, auth.state.access.roles)\"\n @click=\"$router.push({\n name: route.params?._id ? 'Organization_ProductAdd' : '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' && isAdmin\"\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 style=\"flex: 0 0 auto\"\n class=\"\n\n p-medium\n br-t br-solid br-light \n bg-white\n gap-micro pd-medium pd-t-thin pd-b-thin\n z-index-1\n\n \"\n classTab=\"bg-light uppercase pd-small radius-small w-100\"\n />\n\n <div class=\"cols-2-1_3 br-1px br-solid br-light h-100 z-index-3 pos-relative radius-medium\">\n\n <div class=\"o-y-scroll br-r br-solid br-light pd-medium z-index-2 desktop-only h-100 pos-relative\">\n <BlockFilter\n v-model:filter=\"products.state.filter\"\n :options=\"products.state.filter.options\"\n class=\"h-100 w-100\"\n />\n </div>\n\n <div class=\"w-100 pd-thin h-max pos-relative o-hidden\">\n <slot></slot>\n <div class=\"pos-relative w-100 z-index-3 radius-tl-big radius-tr-big\">\n <BlockSearch \n @search=\"debouncedSearch\"\n placeholder=\"Enter product name\"\n class=\"bg-light mn-b-thin h-4r\"\n />\n </div>\n <Feed\n v-model:filter=\"products.state.filter\"\n :showLoadMore=\"false\"\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: 16,\n owner: route.params._id,\n categories: route.query.categories,\n filters: generateFilters(products.state.filter.selected),\n prices: route.query.prices,\n delivery: route.query.delivery,\n search: route.query.search,\n ...(tabProducts !== 'all' && { status: tabProducts }),\n lookup: ['variants']\n // user: user\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"cols-4 pos-relative w-100 rows-1 gap-thin\"\n \n >\n <router-link \n v-for=\"product in items\" \n :to=\"route.params._id ? { name: 'Organization_Product', params: { _id: route.params._id, product: product._id } } : { name: 'Product', params: { product: product._id } }\"\n class=\"pos-relative h-100 w-100\"\n >\n <CardProduct\n :key=\"product._id\"\n :product=\"product\"\n :user=\"auth.state.access\"\n :organization=\"route.params._id\"\n :access=\"hasAccess(route.params._id, 'products', 'edit', auth.state.accesses, auth.state.access.roles)\"\n class=\"pos-relative h-100 w-100 bg-light\"\n />\n </router-link>\n </Feed>\n\n </div>\n </div>\n</div>\n</template>\n\n\n<script setup=\"props\">\n // Import libs\n import { ref, computed, watch, onMounted, onUnmounted } from 'vue'\n import { useRoute, useRouter } from 'vue-router'\n\n // Import components\n import Tab from '@martyrs/src/components/Tab/Tab.vue'\n import Feed from '@martyrs/src/components/Feed/Feed.vue'\n\n import FilterProducts from '@martyrs/src/modules/products/components/sections/FilterProducts.vue'\n import BlockSearch from '@martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue'\n import BlockFilter from '@martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue'\n\n import CardProduct from '@martyrs/src/modules/products/components/blocks/CardProduct.vue'\n\n import IconPlus from '@martyrs/src/modules/icons/navigation/IconPlus.vue'\n\n // Accessing router and store\n import * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\n import * as globals from '@martyrs/src/modules/globals/views/store/globals.js';\n import * as products from '@martyrs/src/modules/products/store/products.js';\n import * as marketplace from '@martyrs/src/modules/marketplace/views/store/marketplace.js';\n import * as categories from '@martyrs/src/modules/products/store/categories.js';\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 products.state.filter.selected.categories = query.categories ? query.categories.split(',') : [];\n products.state.filter.selected.prices = query.prices ? query.prices.split(',') : [];\n products.state.filter.selected.delivery = query.delivery ? query.delivery.split(',') : [];\n products.state.filter.selected.brand = query.brand ? query.brand.split(',') : [];\n }\n\n\n watch(tabProducts, (newValue) => {\n if (route.name !== 'Organization') router.replace({ query: { ...route.query, tabProducts: newValue } });\n });\n\n globals.state.navigation_bar.actions = [{\n component: IconPlus,\n props: {\n fill: \"rgb(var(--main))\" \n },\n condition: () => auth.state.user && auth.state.user._id,\n action: () => route.params._id ? router.push({ name: 'Organization_ProductAdd', params: { _id: route.params._id} }) : router.push({ name: 'ProductAdd' })\n }],\n\n onMounted(async () => {\n let categoriesFilter = await categories.actions.read({rootOnly:true});\n\n categoriesFilter = categoriesFilter.map(category => ({\n value: category._id,\n label: category.name\n }));\n\n const index = products.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 products.state.filter.options[index] = categoryOption;\n } else {\n products.state.filter.options.unshift(categoryOption);\n }\n })\n\n onUnmounted(() => {\n globals.state.navigation_bar.actions = [];\n });\n\n watch(() => products.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(() => products.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\nfunction debounce(fn, delay) {\n let timeoutId = null;\n return (...args) => {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => fn(...args), delay);\n };\n}\n\nconst debouncedSearch = debounce((search) => {\n let query = { ...route.query}\n \n query.search = search\n \n router.replace({ query });\n}, 500);\n\n</script>\n\n<style lang=\"scss\">\n\n\n</style>\n"],"names":["useRoute","useRouter","ref","products.state","watch","globals.state","IconPlus","auth.state","onMounted","categories.actions","onUnmounted"],"mappings":"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"}
|
|
@@ -128,7 +128,7 @@ const _sfc_main = {
|
|
|
128
128
|
],
|
|
129
129
|
style: { "flex": "0 0 auto" },
|
|
130
130
|
class: "p-medium br-t br-solid br-light bg-white gap-micro pd-medium pd-t-thin pd-b-thin z-index-1",
|
|
131
|
-
|
|
131
|
+
classTab: "bg-light uppercase pd-small radius-small w-100"
|
|
132
132
|
}, null, 8, ["selected"])) : createCommentVNode("", true),
|
|
133
133
|
createElementVNode("div", _hoisted_3, [
|
|
134
134
|
createElementVNode("div", _hoisted_4, [
|
|
@@ -170,7 +170,8 @@ const _sfc_main = {
|
|
|
170
170
|
prices: unref(route).query.prices,
|
|
171
171
|
delivery: unref(route).query.delivery,
|
|
172
172
|
search: unref(route).query.search,
|
|
173
|
-
...tabProducts.value !== "all" && { status: tabProducts.value }
|
|
173
|
+
...tabProducts.value !== "all" && { status: tabProducts.value },
|
|
174
|
+
lookup: ["variants"]
|
|
174
175
|
// user: user
|
|
175
176
|
},
|
|
176
177
|
class: "cols-4 pos-relative w-100 rows-1 gap-thin"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Products.vue.js","sources":["../../../../../../../src/modules/products/components/pages/Products.vue"],"sourcesContent":["<template>\n <div class=\"h-100 pos-relative\">\n <header \n v-if=\"route.name !== 'Organization' && !MOBILE_APP\"\n class=\"pd-medium flex-v-center flex-nowrap flex\"\n >\n <h2 class=\"mn-r-medium\">Products</h2>\n <button \n v-if=\"hasAccess(route.params._id, 'products', 'create', auth.state.accesses, auth.state.access.roles)\"\n @click=\"$router.push({\n name: route.params?._id ? 'Organization_ProductAdd' : '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' && isAdmin\"\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 style=\"flex: 0 0 auto\"\n class=\"\n\n p-medium\n br-t br-solid br-light \n bg-white\n gap-micro pd-medium pd-t-thin pd-b-thin\n z-index-1\n\n \"\n tabClass=\"bg-light uppercase pd-small radius-small w-100\"\n />\n\n <div class=\"cols-2-1_3 br-1px br-solid br-light h-100 z-index-3 pos-relative radius-medium\">\n\n <div class=\"o-y-scroll br-r br-solid br-light pd-medium z-index-2 desktop-only h-100 pos-relative\">\n <BlockFilter\n v-model:filter=\"products.state.filter\"\n :options=\"products.state.filter.options\"\n class=\"h-100 w-100\"\n />\n </div>\n\n <div class=\"w-100 pd-thin h-max pos-relative o-hidden\">\n <slot></slot>\n <div class=\"pos-relative w-100 z-index-3 radius-tl-big radius-tr-big\">\n <BlockSearch \n @search=\"debouncedSearch\"\n placeholder=\"Enter product name\"\n class=\"bg-light mn-b-thin h-4r\"\n />\n </div>\n <Feed\n v-model:filter=\"products.state.filter\"\n :showLoadMore=\"false\"\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: 16,\n owner: route.params._id,\n categories: route.query.categories,\n filters: generateFilters(products.state.filter.selected),\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 pos-relative w-100 rows-1 gap-thin\"\n \n >\n <router-link \n v-for=\"product in items\" \n :to=\"route.params._id ? { name: 'Organization_Product', params: { _id: route.params._id, product: product._id } } : { name: 'Product', params: { product: product._id } }\"\n class=\"pos-relative h-100 w-100\"\n >\n <CardProduct\n :key=\"product._id\"\n :product=\"product\"\n :user=\"auth.state.access\"\n :organization=\"route.params._id\"\n :access=\"hasAccess(route.params._id, 'products', 'edit', auth.state.accesses, auth.state.access.roles)\"\n class=\"pos-relative h-100 w-100 bg-light\"\n />\n </router-link>\n </Feed>\n\n </div>\n </div>\n</div>\n</template>\n\n\n<script setup=\"props\">\n // Import libs\n import { ref, computed, watch, onMounted, onUnmounted } from 'vue'\n import { useRoute, useRouter } from 'vue-router'\n\n // Import components\n import Tab from '@martyrs/src/components/Tab/Tab.vue'\n import Feed from '@martyrs/src/components/Feed/Feed.vue'\n\n import FilterProducts from '@martyrs/src/modules/products/components/sections/FilterProducts.vue'\n import BlockSearch from '@martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue'\n import BlockFilter from '@martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue'\n\n import CardProduct from '@martyrs/src/modules/products/components/blocks/CardProduct.vue'\n\n import IconPlus from '@martyrs/src/modules/icons/navigation/IconPlus.vue'\n\n // Accessing router and store\n import * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\n import * as globals from '@martyrs/src/modules/globals/views/store/globals.js';\n import * as products from '@martyrs/src/modules/products/store/products.js';\n import * as marketplace from '@martyrs/src/modules/marketplace/views/store/marketplace.js';\n import * as categories from '@martyrs/src/modules/products/store/categories.js';\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 products.state.filter.selected.categories = query.categories ? query.categories.split(',') : [];\n products.state.filter.selected.prices = query.prices ? query.prices.split(',') : [];\n products.state.filter.selected.delivery = query.delivery ? query.delivery.split(',') : [];\n products.state.filter.selected.brand = query.brand ? query.brand.split(',') : [];\n }\n\n\n watch(tabProducts, (newValue) => {\n if (route.name !== 'Organization') router.replace({ query: { ...route.query, tabProducts: newValue } });\n });\n\n globals.state.navigation_bar.actions = [{\n component: IconPlus,\n props: {\n fill: \"rgb(var(--main))\" \n },\n condition: () => auth.state.user && auth.state.user._id,\n action: () => route.params._id ? router.push({ name: 'Organization_ProductAdd', params: { _id: route.params._id} }) : router.push({ name: 'ProductAdd' })\n }],\n\n onMounted(async () => {\n let categoriesFilter = await categories.actions.read({rootOnly:true});\n\n categoriesFilter = categoriesFilter.map(category => ({\n value: category._id,\n label: category.name\n }));\n\n const index = products.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 products.state.filter.options[index] = categoryOption;\n } else {\n products.state.filter.options.unshift(categoryOption);\n }\n })\n\n onUnmounted(() => {\n globals.state.navigation_bar.actions = [];\n });\n\n watch(() => products.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(() => products.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\nfunction debounce(fn, delay) {\n let timeoutId = null;\n return (...args) => {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => fn(...args), delay);\n };\n}\n\nconst debouncedSearch = debounce((search) => {\n let query = { ...route.query}\n \n query.search = search\n \n router.replace({ query });\n}, 500);\n\n</script>\n\n<style lang=\"scss\">\n\n\n</style>\n"],"names":["products.state","globals.state","IconPlus","auth.state","categories.actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsIE,UAAM,QAAQ,SAAQ;AACtB,UAAM,SAAS,UAAS;AAGxB,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,YAAe,OAAO,SAAS,aAAa,MAAM,aAAa,MAAM,WAAW,MAAM,GAAG,IAAI,CAAE;AAC/FA,YAAe,OAAO,SAAS,SAAS,MAAM,SAAS,MAAM,OAAO,MAAM,GAAG,IAAI,CAAE;AACnFA,YAAe,OAAO,SAAS,WAAW,MAAM,WAAW,MAAM,SAAS,MAAM,GAAG,IAAI,CAAE;AACzFA,YAAe,OAAO,SAAS,QAAQ,MAAM,QAAQ,MAAM,MAAM,MAAM,GAAG,IAAI,CAAE;AAAA,IACpF;AAGE,UAAM,aAAa,CAAC,aAAa;AAC/B,UAAI,MAAM,SAAS,eAAgB,QAAO,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,aAAa,SAAU,EAAA,CAAE;AAAA,IAC1G,CAAG;AAEDC,YAAc,eAAe,UAAU,CAAC;AAAA,MACtC,WAAWC;AAAAA,MACX,OAAO;AAAA,QACL,MAAM;AAAA,MACP;AAAA,MACD,WAAW,MAAMC,QAAW,QAAQA,QAAW,KAAK;AAAA,MACpD,QAAQ,MAAM,MAAM,OAAO,MAAM,OAAO,KAAK,EAAE,MAAM,2BAA2B,QAAQ,EAAE,KAAK,MAAM,OAAO,IAAG,EAAG,CAAA,IAAI,OAAO,KAAK,EAAE,MAAM,aAAc,CAAA;AAAA,IAC5J,CAAG,GAED,UAAU,YAAY;AACpB,UAAI,mBAAmB,MAAMC,QAAmB,KAAK,EAAC,UAAS,KAAI,CAAC;AAEpE,yBAAmB,iBAAiB,IAAI,eAAa;AAAA,QACnD,OAAO,SAAS;AAAA,QAChB,OAAO,SAAS;AAAA,MACtB,EAAM;AAEF,YAAM,QAAQJ,MAAe,OAAO,QAAQ,UAAU,YAAU,OAAO,UAAU,YAAY;AAE7F,YAAM,iBAAiB;AAAA,QACrB,OAAO;AAAA,QACP,OAAO;AAAA,QACP,SAAS;AAAA,MACV;AAED,UAAI,UAAU,IAAI;AACdA,cAAe,OAAO,QAAQ,KAAK,IAAI;AAAA,MAC/C,OAAW;AACHA,cAAe,OAAO,QAAQ,QAAQ,cAAc;AAAA,MAC5D;AAAA,IACG,CAAA;AAED,gBAAY,MAAM;AAChBC,cAAc,eAAe,UAAU,CAAE;AAAA,IAC7C,CAAG;AAED,UAAM,MAAMD,MAAe,MAAM,CAAC,cAAc,iBAAiB;AAC/D,UAAI,QAAQ,EAAE,GAAG,MAAM,MAAK;AAE5B,YAAM,YAAY,aAAa;AAC/B,YAAM,YAAY,aAAa;AAG/B,aAAO,QAAQ,EAAE,OAAO;AAAA,IAC5B,GAAK,EAAE,MAAM,MAAM;AAGjB,UAAM,MAAMA,MAAe,OAAO,UAAU,CAAC,gBAAgB,mBAAmB;AAE9E,YAAM,QAAQ,EAAE,GAAG,MAAM,MAAO;AAGhC,aAAO,KAAK,cAAc,EAAE,QAAQ,SAAO;AACzC,YAAI,MAAM,GAAG,GAAG;AACd,iBAAO,MAAM,GAAG;AAAA,QACxB;AAAA,MACA,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,MAChD;AAED,aAAO,MAAM;AACb,aAAO,OAAO,OAAO,cAAc;AAGnC,aAAO,QAAQ,EAAE,OAAO;AAAA,IAC5B,GAAK,EAAE,MAAM,KAAM,CAAA;AAGnB,aAAS,SAAS,IAAI,OAAO;AAC3B,UAAI,YAAY;AAChB,aAAO,IAAI,SAAS;AAClB,qBAAa,SAAS;AACtB,oBAAY,WAAW,MAAM,GAAG,GAAG,IAAI,GAAG,KAAK;AAAA,MAChD;AAAA,IACH;AAEA,UAAM,kBAAkB,SAAS,CAAC,WAAW;AAC5C,UAAI,QAAQ,EAAE,GAAG,MAAM,MAAK;AAE3B,YAAM,SAAS;AAEf,aAAO,QAAQ,EAAE,OAAO;AAAA,IAC1B,GAAG,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"Products.vue.js","sources":["../../../../../../../src/modules/products/components/pages/Products.vue"],"sourcesContent":["<template>\n <div class=\"h-100 pos-relative\">\n <header \n v-if=\"route.name !== 'Organization' && !MOBILE_APP\"\n class=\"pd-medium flex-v-center flex-nowrap flex\"\n >\n <h2 class=\"mn-r-medium\">Products</h2>\n <button \n v-if=\"hasAccess(route.params._id, 'products', 'create', auth.state.accesses, auth.state.access.roles)\"\n @click=\"$router.push({\n name: route.params?._id ? 'Organization_ProductAdd' : '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' && isAdmin\"\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 style=\"flex: 0 0 auto\"\n class=\"\n\n p-medium\n br-t br-solid br-light \n bg-white\n gap-micro pd-medium pd-t-thin pd-b-thin\n z-index-1\n\n \"\n classTab=\"bg-light uppercase pd-small radius-small w-100\"\n />\n\n <div class=\"cols-2-1_3 br-1px br-solid br-light h-100 z-index-3 pos-relative radius-medium\">\n\n <div class=\"o-y-scroll br-r br-solid br-light pd-medium z-index-2 desktop-only h-100 pos-relative\">\n <BlockFilter\n v-model:filter=\"products.state.filter\"\n :options=\"products.state.filter.options\"\n class=\"h-100 w-100\"\n />\n </div>\n\n <div class=\"w-100 pd-thin h-max pos-relative o-hidden\">\n <slot></slot>\n <div class=\"pos-relative w-100 z-index-3 radius-tl-big radius-tr-big\">\n <BlockSearch \n @search=\"debouncedSearch\"\n placeholder=\"Enter product name\"\n class=\"bg-light mn-b-thin h-4r\"\n />\n </div>\n <Feed\n v-model:filter=\"products.state.filter\"\n :showLoadMore=\"false\"\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: 16,\n owner: route.params._id,\n categories: route.query.categories,\n filters: generateFilters(products.state.filter.selected),\n prices: route.query.prices,\n delivery: route.query.delivery,\n search: route.query.search,\n ...(tabProducts !== 'all' && { status: tabProducts }),\n lookup: ['variants']\n // user: user\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"cols-4 pos-relative w-100 rows-1 gap-thin\"\n \n >\n <router-link \n v-for=\"product in items\" \n :to=\"route.params._id ? { name: 'Organization_Product', params: { _id: route.params._id, product: product._id } } : { name: 'Product', params: { product: product._id } }\"\n class=\"pos-relative h-100 w-100\"\n >\n <CardProduct\n :key=\"product._id\"\n :product=\"product\"\n :user=\"auth.state.access\"\n :organization=\"route.params._id\"\n :access=\"hasAccess(route.params._id, 'products', 'edit', auth.state.accesses, auth.state.access.roles)\"\n class=\"pos-relative h-100 w-100 bg-light\"\n />\n </router-link>\n </Feed>\n\n </div>\n </div>\n</div>\n</template>\n\n\n<script setup=\"props\">\n // Import libs\n import { ref, computed, watch, onMounted, onUnmounted } from 'vue'\n import { useRoute, useRouter } from 'vue-router'\n\n // Import components\n import Tab from '@martyrs/src/components/Tab/Tab.vue'\n import Feed from '@martyrs/src/components/Feed/Feed.vue'\n\n import FilterProducts from '@martyrs/src/modules/products/components/sections/FilterProducts.vue'\n import BlockSearch from '@martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue'\n import BlockFilter from '@martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue'\n\n import CardProduct from '@martyrs/src/modules/products/components/blocks/CardProduct.vue'\n\n import IconPlus from '@martyrs/src/modules/icons/navigation/IconPlus.vue'\n\n // Accessing router and store\n import * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\n import * as globals from '@martyrs/src/modules/globals/views/store/globals.js';\n import * as products from '@martyrs/src/modules/products/store/products.js';\n import * as marketplace from '@martyrs/src/modules/marketplace/views/store/marketplace.js';\n import * as categories from '@martyrs/src/modules/products/store/categories.js';\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 products.state.filter.selected.categories = query.categories ? query.categories.split(',') : [];\n products.state.filter.selected.prices = query.prices ? query.prices.split(',') : [];\n products.state.filter.selected.delivery = query.delivery ? query.delivery.split(',') : [];\n products.state.filter.selected.brand = query.brand ? query.brand.split(',') : [];\n }\n\n\n watch(tabProducts, (newValue) => {\n if (route.name !== 'Organization') router.replace({ query: { ...route.query, tabProducts: newValue } });\n });\n\n globals.state.navigation_bar.actions = [{\n component: IconPlus,\n props: {\n fill: \"rgb(var(--main))\" \n },\n condition: () => auth.state.user && auth.state.user._id,\n action: () => route.params._id ? router.push({ name: 'Organization_ProductAdd', params: { _id: route.params._id} }) : router.push({ name: 'ProductAdd' })\n }],\n\n onMounted(async () => {\n let categoriesFilter = await categories.actions.read({rootOnly:true});\n\n categoriesFilter = categoriesFilter.map(category => ({\n value: category._id,\n label: category.name\n }));\n\n const index = products.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 products.state.filter.options[index] = categoryOption;\n } else {\n products.state.filter.options.unshift(categoryOption);\n }\n })\n\n onUnmounted(() => {\n globals.state.navigation_bar.actions = [];\n });\n\n watch(() => products.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(() => products.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\nfunction debounce(fn, delay) {\n let timeoutId = null;\n return (...args) => {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => fn(...args), delay);\n };\n}\n\nconst debouncedSearch = debounce((search) => {\n let query = { ...route.query}\n \n query.search = search\n \n router.replace({ query });\n}, 500);\n\n</script>\n\n<style lang=\"scss\">\n\n\n</style>\n"],"names":["products.state","globals.state","IconPlus","auth.state","categories.actions"],"mappings":"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"}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
3
|
const vue = require("vue");
|
|
4
4
|
const Block = require("../../../../components/Block/Block.vue.cjs");
|
|
5
|
-
const Field = require("../../../../components/Field/Field.
|
|
6
|
-
const Button = require("../../../../components/Button/Button.
|
|
5
|
+
const Field = require("../../../../components/Field/Field.vue.cjs");
|
|
6
|
+
const Button = require("../../../../components/Button/Button.vue2.cjs");
|
|
7
7
|
const Popup = require("../../../../components/Popup/Popup.vue.cjs");
|
|
8
8
|
const IconEdit = require("../../../icons/navigation/IconEdit.vue.cjs");
|
|
9
9
|
const IconDelete = require("../../../icons/navigation/IconDelete.vue.cjs");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useModel, ref, reactive, createElementBlock, openBlock, Fragment, createVNode, withCtx, createCommentVNode, renderList, createElementVNode, toDisplayString, createTextVNode } from "vue";
|
|
2
2
|
import _sfc_main$1 from "../../../../components/Block/Block.vue.js";
|
|
3
|
-
import
|
|
4
|
-
import _sfc_main$
|
|
3
|
+
import Field from "../../../../components/Field/Field.vue.js";
|
|
4
|
+
import _sfc_main$5 from "../../../../components/Button/Button.vue2.js";
|
|
5
5
|
import _sfc_main$4 from "../../../../components/Popup/Popup.vue.js";
|
|
6
6
|
import _sfc_main$2 from "../../../icons/navigation/IconEdit.vue.js";
|
|
7
7
|
import _sfc_main$3 from "../../../icons/navigation/IconDelete.vue.js";
|
|
@@ -118,14 +118,14 @@ const _sfc_main = {
|
|
|
118
118
|
}, {
|
|
119
119
|
default: withCtx(() => [
|
|
120
120
|
createElementVNode("div", _hoisted_8, [
|
|
121
|
-
createVNode(
|
|
121
|
+
createVNode(Field, {
|
|
122
122
|
field: currentAttribute.name,
|
|
123
123
|
"onUpdate:field": _cache[0] || (_cache[0] = ($event) => currentAttribute.name = $event),
|
|
124
124
|
label: "Name",
|
|
125
125
|
placeholder: "Parameter Name",
|
|
126
126
|
class: "w-100 bg-light radius-small pd-small"
|
|
127
127
|
}, null, 8, ["field"]),
|
|
128
|
-
createVNode(
|
|
128
|
+
createVNode(Field, {
|
|
129
129
|
field: currentAttribute.value,
|
|
130
130
|
"onUpdate:field": _cache[1] || (_cache[1] = ($event) => currentAttribute.value = $event),
|
|
131
131
|
label: "Value",
|
|
@@ -133,7 +133,7 @@ const _sfc_main = {
|
|
|
133
133
|
class: "w-100 bg-light radius-small pd-small"
|
|
134
134
|
}, null, 8, ["field"]),
|
|
135
135
|
createElementVNode("div", _hoisted_9, [
|
|
136
|
-
createVNode(_sfc_main$
|
|
136
|
+
createVNode(_sfc_main$5, {
|
|
137
137
|
showSuccess: false,
|
|
138
138
|
showLoader: false,
|
|
139
139
|
class: "bg-red t-white w-100",
|
|
@@ -144,7 +144,7 @@ const _sfc_main = {
|
|
|
144
144
|
])),
|
|
145
145
|
_: 1
|
|
146
146
|
}),
|
|
147
|
-
createVNode(_sfc_main$
|
|
147
|
+
createVNode(_sfc_main$5, {
|
|
148
148
|
class: "bg-main w-100",
|
|
149
149
|
onClick: saveAttribute
|
|
150
150
|
}, {
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
3
|
const vue = require("vue");
|
|
4
4
|
const Block = require("../../../../components/Block/Block.vue.cjs");
|
|
5
|
-
const Field = require("../../../../components/Field/Field.
|
|
6
|
-
const Button = require("../../../../components/Button/Button.
|
|
5
|
+
const Field = require("../../../../components/Field/Field.vue.cjs");
|
|
6
|
+
const Button = require("../../../../components/Button/Button.vue2.cjs");
|
|
7
7
|
const Popup = require("../../../../components/Popup/Popup.vue.cjs");
|
|
8
8
|
const Select = require("../../../../components/Select/Select.vue.cjs");
|
|
9
9
|
const IconEdit = require("../../../icons/navigation/IconEdit.vue.cjs");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useModel, ref, reactive, createElementBlock, openBlock, Fragment, createVNode, withCtx, createCommentVNode, renderList, createElementVNode, toDisplayString, createTextVNode } from "vue";
|
|
2
2
|
import _sfc_main$1 from "../../../../components/Block/Block.vue.js";
|
|
3
|
-
import
|
|
4
|
-
import _sfc_main$
|
|
3
|
+
import Field from "../../../../components/Field/Field.vue.js";
|
|
4
|
+
import _sfc_main$5 from "../../../../components/Button/Button.vue2.js";
|
|
5
5
|
import _sfc_main$4 from "../../../../components/Popup/Popup.vue.js";
|
|
6
6
|
import Select from "../../../../components/Select/Select.vue.js";
|
|
7
7
|
import _sfc_main$2 from "../../../icons/navigation/IconEdit.vue.js";
|
|
@@ -203,14 +203,14 @@ const _sfc_main = {
|
|
|
203
203
|
}, {
|
|
204
204
|
default: withCtx(() => [
|
|
205
205
|
createElementVNode("div", _hoisted_9, [
|
|
206
|
-
createVNode(
|
|
206
|
+
createVNode(Field, {
|
|
207
207
|
field: currentDiscount.name,
|
|
208
208
|
"onUpdate:field": _cache[0] || (_cache[0] = ($event) => currentDiscount.name = $event),
|
|
209
209
|
label: "Name",
|
|
210
210
|
placeholder: "Discount Name",
|
|
211
211
|
class: "w-100 bg-light radius-small pd-small"
|
|
212
212
|
}, null, 8, ["field"]),
|
|
213
|
-
createVNode(
|
|
213
|
+
createVNode(Field, {
|
|
214
214
|
field: currentDiscount.description,
|
|
215
215
|
"onUpdate:field": _cache[1] || (_cache[1] = ($event) => currentDiscount.description = $event),
|
|
216
216
|
label: "Description",
|
|
@@ -218,7 +218,7 @@ const _sfc_main = {
|
|
|
218
218
|
placeholder: "Discount Description",
|
|
219
219
|
class: "w-100 bg-light radius-small pd-small"
|
|
220
220
|
}, null, 8, ["field"]),
|
|
221
|
-
createVNode(
|
|
221
|
+
createVNode(Field, {
|
|
222
222
|
field: currentDiscount.value,
|
|
223
223
|
"onUpdate:field": _cache[3] || (_cache[3] = ($event) => currentDiscount.value = $event),
|
|
224
224
|
label: currentDiscount.type === "special_price" ? "Special Price" : "Discount",
|
|
@@ -241,7 +241,7 @@ const _sfc_main = {
|
|
|
241
241
|
]),
|
|
242
242
|
_: 1
|
|
243
243
|
}, 8, ["field", "label", "placeholder"]),
|
|
244
|
-
createVNode(
|
|
244
|
+
createVNode(Field, {
|
|
245
245
|
field: currentDiscount.quantity,
|
|
246
246
|
"onUpdate:field": _cache[4] || (_cache[4] = ($event) => currentDiscount.quantity = $event),
|
|
247
247
|
label: "Quantity",
|
|
@@ -251,14 +251,14 @@ const _sfc_main = {
|
|
|
251
251
|
}, null, 8, ["field"]),
|
|
252
252
|
_cache[11] || (_cache[11] = createElementVNode("div", { class: "t-medium mn-t-micro mn-b-micro" }, "Date Range", -1)),
|
|
253
253
|
createElementVNode("div", _hoisted_10, [
|
|
254
|
-
createVNode(
|
|
254
|
+
createVNode(Field, {
|
|
255
255
|
field: currentDiscount.date.start,
|
|
256
256
|
"onUpdate:field": _cache[5] || (_cache[5] = ($event) => currentDiscount.date.start = $event),
|
|
257
257
|
label: "Start Date",
|
|
258
258
|
type: "date",
|
|
259
259
|
class: "w-100 bg-light radius-small pd-small"
|
|
260
260
|
}, null, 8, ["field"]),
|
|
261
|
-
createVNode(
|
|
261
|
+
createVNode(Field, {
|
|
262
262
|
field: currentDiscount.date.end,
|
|
263
263
|
"onUpdate:field": _cache[6] || (_cache[6] = ($event) => currentDiscount.date.end = $event),
|
|
264
264
|
label: "End Date",
|
|
@@ -268,14 +268,14 @@ const _sfc_main = {
|
|
|
268
268
|
]),
|
|
269
269
|
_cache[12] || (_cache[12] = createElementVNode("div", { class: "t-medium mn-t-micro mn-b-micro" }, "Time Range", -1)),
|
|
270
270
|
createElementVNode("div", _hoisted_11, [
|
|
271
|
-
createVNode(
|
|
271
|
+
createVNode(Field, {
|
|
272
272
|
field: currentDiscount.time.start,
|
|
273
273
|
"onUpdate:field": _cache[7] || (_cache[7] = ($event) => currentDiscount.time.start = $event),
|
|
274
274
|
label: "Start Time",
|
|
275
275
|
type: "time",
|
|
276
276
|
class: "w-100 bg-light radius-small pd-small"
|
|
277
277
|
}, null, 8, ["field"]),
|
|
278
|
-
createVNode(
|
|
278
|
+
createVNode(Field, {
|
|
279
279
|
field: currentDiscount.time.end,
|
|
280
280
|
"onUpdate:field": _cache[8] || (_cache[8] = ($event) => currentDiscount.time.end = $event),
|
|
281
281
|
label: "End Time",
|
|
@@ -284,7 +284,7 @@ const _sfc_main = {
|
|
|
284
284
|
}, null, 8, ["field"])
|
|
285
285
|
]),
|
|
286
286
|
createElementVNode("div", _hoisted_12, [
|
|
287
|
-
createVNode(_sfc_main$
|
|
287
|
+
createVNode(_sfc_main$5, {
|
|
288
288
|
showSuccess: false,
|
|
289
289
|
showLoader: false,
|
|
290
290
|
class: "bg-red t-white w-100",
|
|
@@ -295,7 +295,7 @@ const _sfc_main = {
|
|
|
295
295
|
])),
|
|
296
296
|
_: 1
|
|
297
297
|
}),
|
|
298
|
-
createVNode(_sfc_main$
|
|
298
|
+
createVNode(_sfc_main$5, {
|
|
299
299
|
class: "bg-main w-100",
|
|
300
300
|
onClick: saveDiscount
|
|
301
301
|
}, {
|
|
@@ -112,9 +112,17 @@ const _sfc_main = {
|
|
|
112
112
|
default: vue.withCtx(({ items }) => [
|
|
113
113
|
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(items, (product, index) => {
|
|
114
114
|
return vue.openBlock(), vue.createBlock(CardOrderItem.default, {
|
|
115
|
-
key: product._id
|
|
115
|
+
key: `${product._id}_${product.variant || "no-variant"}_${index}`,
|
|
116
116
|
editable: false,
|
|
117
|
-
product,
|
|
117
|
+
productId: product._id,
|
|
118
|
+
variantId: product.variant,
|
|
119
|
+
images: product.images,
|
|
120
|
+
name: product.name,
|
|
121
|
+
quantity: product.quantity || 1,
|
|
122
|
+
unit: product.unit,
|
|
123
|
+
dates: product.date,
|
|
124
|
+
listing: product.listing,
|
|
125
|
+
price: product.price,
|
|
118
126
|
onClick: () => {
|
|
119
127
|
let p = { ...product };
|
|
120
128
|
p.quantity = 1;
|
|
@@ -123,7 +131,7 @@ const _sfc_main = {
|
|
|
123
131
|
closeIngredientPopup();
|
|
124
132
|
},
|
|
125
133
|
class: "bg-white pd-thin radius-medium w-100 mn-b-thin"
|
|
126
|
-
}, null, 8, ["
|
|
134
|
+
}, null, 8, ["productId", "variantId", "images", "name", "quantity", "unit", "dates", "listing", "price", "onClick"]);
|
|
127
135
|
}), 128))
|
|
128
136
|
]),
|
|
129
137
|
_: 1
|