@ozdao/martyrs 0.2.485 → 0.2.487
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/Media-B2jWzwLB.cjs +1 -0
- package/dist/{Media-DlUBwVWs.js → Media-DZ5_ItXQ.js} +3 -3
- 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 +3 -24
- package/dist/auth.server.js +2 -23
- package/dist/{authJwt-DBB51Iql.cjs → authJwt-D35KyJlE.cjs} +31 -2
- package/dist/{authJwt-DcYNNwcr.js → authJwt-DqxhUym0.js} +31 -2
- package/dist/chats.server.cjs +1 -1
- package/dist/chats.server.js +1 -1
- package/dist/community.server.cjs +1 -1
- package/dist/community.server.js +1 -1
- package/dist/crud-BDIArc5A.cjs +1096 -0
- package/dist/crud-DJvpe0aZ.js +1097 -0
- package/dist/events.server.cjs +1 -1
- package/dist/events.server.js +1 -1
- package/dist/files.server.cjs +1 -1
- package/dist/files.server.js +1 -1
- package/dist/gallery.server.cjs +1 -1
- package/dist/gallery.server.js +1 -1
- package/dist/globals.server.cjs +3 -322
- package/dist/globals.server.js +1 -303
- package/dist/globals.websocket-DzvdIBf6.js +306 -0
- package/dist/globals.websocket-k6_B1T7k.cjs +322 -0
- package/dist/{index-CsJwdsBW.js → index-CVuQC4k1.js} +1 -1
- package/dist/{index-YNOkL1mu.cjs → index-DiSKVCaA.cjs} +1 -1
- package/dist/main-C6_DPWGX.cjs +11 -0
- package/dist/{main-CK6rC5Sz.js → main-nQmkbWsW.js} +2291 -2224
- package/dist/martyrs/src/components/Button/{Button.vue2.cjs → Button.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Button/{Button.vue2.js.map → Button.vue.cjs.map} +1 -1
- package/dist/martyrs/src/components/Button/{Button.vue2.js → Button.vue.js} +2 -2
- package/dist/martyrs/src/components/Button/Button.vue.js.map +1 -0
- package/dist/martyrs/src/components/{DatePicker → Calendar}/Calendar.vue.cjs +1 -1
- package/dist/martyrs/src/components/Calendar/Calendar.vue.cjs.map +1 -0
- package/dist/martyrs/src/components/{DatePicker → Calendar}/Calendar.vue.js +1 -1
- package/dist/martyrs/src/components/Calendar/Calendar.vue.js.map +1 -0
- package/dist/martyrs/src/components/Chips/{Chips.vue2.cjs → Chips.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Chips/Chips.vue.cjs.map +1 -0
- package/dist/martyrs/src/components/Chips/{Chips.vue2.js → Chips.vue.js} +2 -2
- package/dist/martyrs/src/components/Chips/Chips.vue.js.map +1 -0
- package/dist/martyrs/src/components/Feed/Feed.vue.cjs +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.js +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
- package/dist/martyrs/src/components/Field/{Field.vue.cjs → Field.vue2.cjs} +5 -6
- package/dist/martyrs/src/components/Field/Field.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Field/{Field.vue.js → Field.vue2.js} +5 -6
- package/dist/martyrs/src/components/Field/Field.vue2.js.map +1 -0
- package/dist/martyrs/src/components/FieldBig/FieldBig.vue.cjs +10 -9
- package/dist/martyrs/src/components/FieldBig/FieldBig.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +13 -12
- package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js.map +1 -1
- package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.cjs +1 -1
- package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.js +1 -1
- package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.js.map +1 -1
- package/dist/martyrs/src/components/FieldTags/FieldTags.vue.cjs +1 -1
- package/dist/martyrs/src/components/FieldTags/FieldTags.vue.js +1 -1
- package/dist/martyrs/src/components/Media/Media.vue.cjs +2 -2
- package/dist/martyrs/src/components/Media/Media.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Media/Media.vue.js +2 -2
- package/dist/martyrs/src/components/Media/Media.vue.js.map +1 -1
- package/dist/martyrs/src/components/Menu/{Menu.vue2.cjs → Menu.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Menu/Menu.vue.cjs.map +1 -0
- package/dist/martyrs/src/components/Menu/{Menu.vue2.js → Menu.vue.js} +2 -2
- package/dist/martyrs/src/components/Menu/Menu.vue.js.map +1 -0
- package/dist/martyrs/src/components/Popup/{Popup.vue2.cjs → Popup.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Popup/{Popup.vue2.js.map → Popup.vue.cjs.map} +1 -1
- package/dist/martyrs/src/components/Popup/{Popup.vue2.js → Popup.vue.js} +2 -2
- package/dist/martyrs/src/components/Popup/Popup.vue.js.map +1 -0
- package/dist/martyrs/src/components/Select/Select.vue.cjs +2 -2
- package/dist/martyrs/src/components/Select/Select.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Select/Select.vue.js +2 -2
- package/dist/martyrs/src/components/Select/Select.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.cjs +1 -0
- 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 +1 -0
- 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 +3 -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 +3 -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/ProfileEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.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 +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +4 -4
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +5 -5
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +4 -4
- 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/community/components/blocks/CardBlogpost.vue.cjs +1 -1
- package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs +3 -3
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +3 -3
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +4 -4
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +13 -13
- 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/events/components/blocks/CardEvent.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js +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 -3
- 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 +25 -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 +3 -3
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +16 -16
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +9 -2
- 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 +9 -2
- 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 +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.js +1 -1
- package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.cjs +1 -1
- package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.js +1 -1
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +4 -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 +4 -3
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.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 +24 -58
- 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 +24 -58
- package/dist/martyrs/src/modules/globals/views/classes/globals.store.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/AlertDialog.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/AlertDialog.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue.js +2 -2
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupAuth.vue.cjs +2 -2
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupAuth.vue.js +2 -2
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs +3 -3
- 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 +3 -3
- 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 +2 -2
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +2 -2
- 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/sections/Filters.vue2.cjs +2 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.js +2 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterOptions.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterOptions.vue.js +2 -2
- package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterPrice.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterPrice.vue.js +3 -3
- package/dist/martyrs/src/modules/globals/views/store/globals.cjs +6 -0
- package/dist/martyrs/src/modules/globals/views/store/globals.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/store/globals.js +6 -0
- package/dist/martyrs/src/modules/globals/views/store/globals.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/utils/axios-instance.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/utils/axios-instance.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/utils/query-serializer.cjs +100 -0
- package/dist/martyrs/src/modules/globals/views/utils/query-serializer.cjs.map +1 -0
- package/dist/martyrs/src/modules/globals/views/utils/query-serializer.js +100 -0
- package/dist/martyrs/src/modules/globals/views/utils/query-serializer.js.map +1 -0
- package/dist/martyrs/src/modules/icons/components/IconSearchPopup.vue.cjs +224 -0
- package/dist/martyrs/src/modules/icons/components/IconSearchPopup.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/icons/components/IconSearchPopup.vue.js +224 -0
- package/dist/martyrs/src/modules/icons/components/IconSearchPopup.vue.js.map +1 -0
- package/dist/martyrs/src/modules/icons/entities/IconAddress.vue.cjs +40 -0
- package/dist/martyrs/src/modules/icons/entities/IconAddress.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/icons/entities/IconAddress.vue.js +40 -0
- package/dist/martyrs/src/modules/icons/entities/IconAddress.vue.js.map +1 -0
- package/dist/martyrs/src/modules/icons/entities/IconDate.vue.cjs +6 -6
- package/dist/martyrs/src/modules/icons/entities/IconDate.vue.js +6 -6
- package/dist/martyrs/src/modules/icons/entities/IconEmail.vue.cjs +32 -0
- package/dist/martyrs/src/modules/icons/entities/IconEmail.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/icons/entities/IconEmail.vue.js +32 -0
- package/dist/martyrs/src/modules/icons/entities/IconEmail.vue.js.map +1 -0
- package/dist/martyrs/src/modules/icons/entities/IconMusic.vue.cjs +10 -12
- package/dist/martyrs/src/modules/icons/entities/IconMusic.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/entities/IconMusic.vue.js +11 -13
- package/dist/martyrs/src/modules/icons/entities/IconMusic.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/entities/IconPhone.vue.cjs +32 -0
- package/dist/martyrs/src/modules/icons/entities/IconPhone.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/icons/entities/IconPhone.vue.js +32 -0
- package/dist/martyrs/src/modules/icons/entities/IconPhone.vue.js.map +1 -0
- package/dist/martyrs/src/modules/icons/icons.client.cjs +48 -4
- package/dist/martyrs/src/modules/icons/icons.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/icons.client.js +172 -128
- package/dist/martyrs/src/modules/icons/icons.client.js.map +1 -1
- package/dist/martyrs/src/modules/icons/navigation/IconCross.vue.cjs +5 -7
- package/dist/martyrs/src/modules/icons/navigation/IconCross.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/navigation/IconCross.vue.js +5 -7
- package/dist/martyrs/src/modules/icons/navigation/IconCross.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/navigation/IconPause.vue.cjs +6 -11
- package/dist/martyrs/src/modules/icons/navigation/IconPause.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/navigation/IconPause.vue.js +6 -11
- package/dist/martyrs/src/modules/icons/navigation/IconPause.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/navigation/IconRefresh.vue.cjs +6 -11
- package/dist/martyrs/src/modules/icons/navigation/IconRefresh.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/navigation/IconRefresh.vue.js +6 -11
- package/dist/martyrs/src/modules/icons/navigation/IconRefresh.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.cjs +62 -6
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js +189 -133
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/socials/dribbble.vue.cjs +21 -12
- package/dist/martyrs/src/modules/icons/socials/dribbble.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/socials/dribbble.vue.js +21 -12
- package/dist/martyrs/src/modules/icons/socials/dribbble.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/socials/facebook.vue.cjs +21 -12
- package/dist/martyrs/src/modules/icons/socials/facebook.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/socials/facebook.vue.js +21 -12
- package/dist/martyrs/src/modules/icons/socials/facebook.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/socials/instagram.vue.cjs +25 -17
- package/dist/martyrs/src/modules/icons/socials/instagram.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/socials/instagram.vue.js +25 -17
- package/dist/martyrs/src/modules/icons/socials/instagram.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/socials/line.vue.cjs +23 -14
- package/dist/martyrs/src/modules/icons/socials/line.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/socials/line.vue.js +23 -14
- package/dist/martyrs/src/modules/icons/socials/line.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/socials/linkedin.vue.cjs +26 -17
- package/dist/martyrs/src/modules/icons/socials/linkedin.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/socials/linkedin.vue.js +26 -17
- package/dist/martyrs/src/modules/icons/socials/linkedin.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/socials/reddit.vue.cjs +21 -12
- package/dist/martyrs/src/modules/icons/socials/reddit.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/socials/reddit.vue.js +21 -12
- package/dist/martyrs/src/modules/icons/socials/reddit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/socials/telegram.vue.cjs +29 -20
- package/dist/martyrs/src/modules/icons/socials/telegram.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/socials/telegram.vue.js +29 -20
- package/dist/martyrs/src/modules/icons/socials/telegram.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/socials/twitter.vue.cjs +21 -12
- package/dist/martyrs/src/modules/icons/socials/twitter.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/socials/twitter.vue.js +21 -12
- package/dist/martyrs/src/modules/icons/socials/twitter.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/socials/vk.vue.cjs +21 -12
- package/dist/martyrs/src/modules/icons/socials/vk.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/socials/vk.vue.js +21 -12
- package/dist/martyrs/src/modules/icons/socials/vk.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/socials/whatsapp.vue.cjs +32 -0
- package/dist/martyrs/src/modules/icons/socials/whatsapp.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/icons/socials/whatsapp.vue.js +32 -0
- package/dist/martyrs/src/modules/icons/socials/whatsapp.vue.js.map +1 -0
- package/dist/martyrs/src/modules/icons/socials/youtube.vue.cjs +21 -12
- package/dist/martyrs/src/modules/icons/socials/youtube.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/socials/youtube.vue.js +21 -12
- package/dist/martyrs/src/modules/icons/socials/youtube.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.cjs +87 -0
- package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +87 -0
- package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.cjs +83 -0
- package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.js +83 -0
- package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.cjs +83 -0
- package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js +83 -0
- package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/cards/TrackCard.vue.cjs +68 -0
- package/dist/martyrs/src/modules/music/components/cards/TrackCard.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/cards/TrackCard.vue.js +68 -0
- package/dist/martyrs/src/modules/music/components/cards/TrackCard.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.cjs +162 -0
- package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js +162 -0
- package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.cjs +437 -0
- package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +437 -0
- package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.cjs +416 -0
- package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +416 -0
- package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.cjs +174 -0
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +174 -0
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.cjs +80 -0
- package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js +80 -0
- package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs +554 -0
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +554 -0
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.cjs +104 -0
- package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.js +104 -0
- package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs +314 -0
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +314 -0
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/AlbumCreate.vue.cjs +14 -0
- package/dist/martyrs/src/modules/music/components/pages/AlbumCreate.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/AlbumCreate.vue.js +14 -0
- package/dist/martyrs/src/modules/music/components/pages/AlbumCreate.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/AlbumEdit.vue.cjs +23 -0
- package/dist/martyrs/src/modules/music/components/pages/AlbumEdit.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/AlbumEdit.vue.js +23 -0
- package/dist/martyrs/src/modules/music/components/pages/AlbumEdit.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.cjs +467 -0
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +467 -0
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/ArtistCreate.vue.cjs +14 -0
- package/dist/martyrs/src/modules/music/components/pages/ArtistCreate.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/ArtistCreate.vue.js +14 -0
- package/dist/martyrs/src/modules/music/components/pages/ArtistCreate.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/ArtistEdit.vue.cjs +23 -0
- package/dist/martyrs/src/modules/music/components/pages/ArtistEdit.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/ArtistEdit.vue.js +23 -0
- package/dist/martyrs/src/modules/music/components/pages/ArtistEdit.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.cjs +256 -0
- package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.js +256 -0
- package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.cjs +248 -0
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +248 -0
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs +580 -0
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +580 -0
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/PlaylistCreate.vue.cjs +14 -0
- package/dist/martyrs/src/modules/music/components/pages/PlaylistCreate.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/PlaylistCreate.vue.js +14 -0
- package/dist/martyrs/src/modules/music/components/pages/PlaylistCreate.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/PlaylistEdit.vue.cjs +23 -0
- package/dist/martyrs/src/modules/music/components/pages/PlaylistEdit.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/PlaylistEdit.vue.js +23 -0
- package/dist/martyrs/src/modules/music/components/pages/PlaylistEdit.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.cjs +473 -0
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +473 -0
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs +111 -0
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +111 -0
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.cjs +28 -0
- package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.js +28 -0
- package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/TrackEdit.vue.cjs +23 -0
- package/dist/martyrs/src/modules/music/components/pages/TrackEdit.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/TrackEdit.vue.js +23 -0
- package/dist/martyrs/src/modules/music/components/pages/TrackEdit.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.cjs +227 -0
- package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js +227 -0
- package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.cjs +85 -0
- package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.js +85 -0
- package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.cjs +71 -0
- package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.js +71 -0
- package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/music.client.cjs +137 -0
- package/dist/martyrs/src/modules/music/music.client.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/music.client.js +137 -0
- package/dist/martyrs/src/modules/music/music.client.js.map +1 -0
- package/dist/martyrs/src/modules/music/router/albums.cjs +34 -0
- package/dist/martyrs/src/modules/music/router/albums.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/router/albums.js +34 -0
- package/dist/martyrs/src/modules/music/router/albums.js.map +1 -0
- package/dist/martyrs/src/modules/music/router/artists.cjs +34 -0
- package/dist/martyrs/src/modules/music/router/artists.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/router/artists.js +34 -0
- package/dist/martyrs/src/modules/music/router/artists.js.map +1 -0
- package/dist/martyrs/src/modules/music/router/music.cjs +47 -0
- package/dist/martyrs/src/modules/music/router/music.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/router/music.js +47 -0
- package/dist/martyrs/src/modules/music/router/music.js.map +1 -0
- package/dist/martyrs/src/modules/music/router/playlists.cjs +34 -0
- package/dist/martyrs/src/modules/music/router/playlists.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/router/playlists.js +34 -0
- package/dist/martyrs/src/modules/music/router/playlists.js.map +1 -0
- package/dist/martyrs/src/modules/music/router/tracks.cjs +34 -0
- package/dist/martyrs/src/modules/music/router/tracks.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/router/tracks.js +34 -0
- package/dist/martyrs/src/modules/music/router/tracks.js.map +1 -0
- package/dist/martyrs/src/modules/music/store/albums.cjs +167 -0
- package/dist/martyrs/src/modules/music/store/albums.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/store/albums.js +167 -0
- package/dist/martyrs/src/modules/music/store/albums.js.map +1 -0
- package/dist/martyrs/src/modules/music/store/artists.cjs +160 -0
- package/dist/martyrs/src/modules/music/store/artists.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/store/artists.js +160 -0
- package/dist/martyrs/src/modules/music/store/artists.js.map +1 -0
- package/dist/martyrs/src/modules/music/store/genres.cjs +123 -0
- package/dist/martyrs/src/modules/music/store/genres.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/store/genres.js +123 -0
- package/dist/martyrs/src/modules/music/store/genres.js.map +1 -0
- package/dist/martyrs/src/modules/music/store/player.cjs +297 -0
- package/dist/martyrs/src/modules/music/store/player.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/store/player.js +297 -0
- package/dist/martyrs/src/modules/music/store/player.js.map +1 -0
- package/dist/martyrs/src/modules/music/store/playlists.cjs +182 -0
- package/dist/martyrs/src/modules/music/store/playlists.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/store/playlists.js +182 -0
- package/dist/martyrs/src/modules/music/store/playlists.js.map +1 -0
- package/dist/martyrs/src/modules/music/store/search.cjs +109 -0
- package/dist/martyrs/src/modules/music/store/search.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/store/search.js +109 -0
- package/dist/martyrs/src/modules/music/store/search.js.map +1 -0
- package/dist/martyrs/src/modules/music/store/tracks.cjs +184 -0
- package/dist/martyrs/src/modules/music/store/tracks.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/store/tracks.js +184 -0
- package/dist/martyrs/src/modules/music/store/tracks.js.map +1 -0
- package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.cjs +1 -1
- package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +2 -2
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +3 -2
- 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 +3 -2
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.cjs +2 -1
- 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 +2 -1
- 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 +2 -2
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +3 -3
- package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/Socials.vue.js +16 -16
- 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/DepartmentEdit.vue.cjs +3 -3
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +16 -16
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +3 -3
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +17 -17
- package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs +3 -3
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +4 -4
- 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 +2 -1
- 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 +2 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/router/organizations.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/router/organizations.js +1 -1
- package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.cjs +2 -1
- 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 +2 -1
- 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 +2 -1
- 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 +2 -1
- 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 +2 -2
- package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +2 -2
- 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/ProductImages.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/forms/ReorderSettingsForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/forms/ReorderSettingsForm.vue.js +8 -8
- package/dist/martyrs/src/modules/products/components/forms/StockAuditForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/forms/StockAuditForm.vue.js +12 -12
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +3 -3
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +13 -13
- package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.cjs +3 -3
- package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.js +11 -11
- package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +2 -2
- 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 +2 -2
- 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 +2 -2
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +18 -18
- package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.cjs +3 -3
- package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +7 -7
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs +3 -3
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +13 -13
- package/dist/martyrs/src/modules/products/components/sections/EditIngredients.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditIngredients.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs +3 -3
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +17 -17
- package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js +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 +1 -1
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +5 -5
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs +2 -2
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +2 -2
- package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.cjs +1 -0
- 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 +1 -0
- 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 +1 -0
- 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 +1 -0
- 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/SpotEdit.vue.cjs +3 -3
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +14 -14
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.cjs +3 -3
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +9 -9
- 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 +3 -3
- package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +3 -3
- package/dist/martyrs.cjs.js +1 -1
- package/dist/martyrs.css +1 -1
- package/dist/martyrs.es.js +38 -36
- package/dist/music.server.cjs +2021 -0
- package/dist/music.server.js +2021 -0
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/utils.cjs +1 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/utils.js +1 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/utils.cjs +1 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/utils.js +1 -1
- package/dist/orders.server.cjs +1 -1
- package/dist/orders.server.js +1 -1
- package/dist/organizations.server.cjs +1 -1
- package/dist/organizations.server.js +1 -1
- package/dist/products.server.cjs +3 -1093
- package/dist/products.server.js +2 -1092
- package/dist/rents.server.cjs +1 -1
- package/dist/rents.server.js +1 -1
- package/dist/socials.schema-BOZV82Mp.js +25 -0
- package/dist/socials.schema-CtpSF9dE.cjs +24 -0
- package/dist/style.css +230 -46
- package/dist/wallet.server.cjs +1 -1
- package/dist/wallet.server.js +1 -1
- package/package.json +1 -1
- package/src/.martyrs/filemap.json +2 -2
- package/src/components/Feed/Feed.vue +1 -1
- package/src/components/Field/Field.vue +13 -8
- package/src/components/FieldBig/FieldBig.vue +3 -5
- package/src/components/FieldPhone/FieldPhone.vue +1 -1
- package/src/components/Media/Media.vue +1 -1
- package/src/components/Select/Select.vue +1 -1
- package/src/components/Status/Snack.vue +83 -0
- package/src/components/index.js +2 -0
- package/src/main.js +6 -0
- package/src/modules/auth/controllers/middlewares/authJwt.js +59 -6
- package/src/modules/events/components/pages/EditEvent.vue +1 -1
- package/src/modules/globals/views/classes/globals.store.js +31 -66
- package/src/modules/globals/views/components/blocks/PopupDateSelector.vue +1 -1
- package/src/modules/globals/views/components/partials/FooterAlt.vue +363 -0
- package/src/modules/globals/views/store/globals.js +42 -0
- package/src/modules/globals/views/utils/axios-instance.js +15 -1
- package/src/modules/globals/views/utils/query-serializer.js +182 -0
- package/src/modules/icons/components/IconSearchPopup.vue +254 -0
- package/src/modules/icons/entities/IconAddress.vue +17 -0
- package/src/modules/icons/entities/IconDate.vue +3 -3
- package/src/modules/icons/entities/IconEmail.vue +14 -0
- package/src/modules/icons/entities/IconMusic.vue +3 -3
- package/src/modules/icons/entities/IconPhone.vue +14 -0
- package/src/modules/icons/icons.client.js +85 -31
- package/src/modules/icons/icons.server.js +292 -0
- package/src/modules/icons/navigation/IconCross.vue +4 -16
- package/src/modules/icons/navigation/IconPause.vue +9 -24
- package/src/modules/icons/navigation/IconRefresh.vue +9 -24
- package/src/modules/icons/pages/IconsPage.vue +78 -2
- package/src/modules/icons/routes/icons.routes.js +81 -0
- package/src/modules/icons/socials/dribbble.vue +11 -2
- package/src/modules/icons/socials/facebook.vue +11 -2
- package/src/modules/icons/socials/instagram.vue +11 -4
- package/src/modules/icons/socials/line.vue +11 -2
- package/src/modules/icons/socials/linkedin.vue +11 -2
- package/src/modules/icons/socials/reddit.vue +10 -1
- package/src/modules/icons/socials/telegram.vue +11 -2
- package/src/modules/icons/socials/twitter.vue +11 -2
- package/src/modules/icons/socials/vk.vue +11 -2
- package/src/modules/icons/socials/whatsapp.vue +12 -0
- package/src/modules/icons/socials/youtube.vue +11 -2
- package/src/modules/music/.claude/settings.local.json +8 -0
- package/src/modules/music/CLAUDE.md +312 -0
- package/src/modules/music/components/SidebarMusic.vue +8 -8
- package/src/modules/music/components/cards/AlbumCard.vue +2 -2
- package/src/modules/music/components/cards/ArtistCard.vue +2 -2
- package/src/modules/music/components/cards/PlaylistCard.vue +2 -2
- package/src/modules/music/components/cards/TrackCard.vue +1 -1
- package/src/modules/music/components/cards/TrackListCard.vue +135 -0
- package/src/modules/music/components/forms/AlbumForm.vue +463 -0
- package/src/modules/music/components/{pages → forms}/ArtistForm.vue +127 -96
- package/src/modules/music/components/forms/PlaylistForm.vue +10 -10
- package/src/modules/music/components/forms/SearchForm.vue +1 -1
- package/src/modules/music/components/forms/TrackForm.vue +577 -0
- package/src/modules/music/components/layouts/MusicLayout.vue +35 -41
- package/src/modules/music/components/pages/{AlbumDetail.vue → Album.vue} +42 -20
- package/src/modules/music/components/pages/AlbumCreate.vue +7 -0
- package/src/modules/music/components/pages/AlbumEdit.vue +14 -0
- package/src/modules/music/components/pages/{ArtistDetail.vue → Artist.vue} +9 -9
- package/src/modules/music/components/pages/ArtistCreate.vue +7 -0
- package/src/modules/music/components/pages/ArtistEdit.vue +14 -0
- package/src/modules/music/components/pages/MusicHome.vue +86 -67
- package/src/modules/music/components/pages/MusicLibrary.vue +136 -105
- package/src/modules/music/components/pages/{PlaylistDetail.vue → Playlist.vue} +56 -34
- package/src/modules/music/components/pages/PlaylistCreate.vue +7 -0
- package/src/modules/music/components/pages/PlaylistEdit.vue +14 -0
- package/src/modules/music/components/pages/SearchResults.vue +49 -27
- package/src/modules/music/components/pages/{TrackDetail.vue → Track.vue} +36 -14
- package/src/modules/music/components/pages/TrackCreate.vue +23 -0
- package/src/modules/music/components/pages/TrackEdit.vue +14 -0
- package/src/modules/music/components/player/MusicPlayer.vue +2 -2
- package/src/modules/music/middlewares/albums.verifier.js +234 -0
- package/src/modules/music/middlewares/artists.verifier.js +213 -0
- package/src/modules/music/middlewares/genres.verifier.js +148 -0
- package/src/modules/music/middlewares/playlists.verifier.js +219 -0
- package/src/modules/music/middlewares/tracks.verifier.js +263 -0
- package/src/modules/music/music.client.js +31 -33
- package/src/modules/music/music.server.js +33 -26
- package/src/modules/music/router/albums.js +31 -0
- package/src/modules/music/router/artists.js +31 -0
- package/src/modules/music/router/music.js +14 -65
- package/src/modules/music/router/playlists.js +31 -0
- package/src/modules/music/router/tracks.js +31 -0
- package/src/modules/music/routes/albums.routes.js +126 -0
- package/src/modules/music/routes/artists.routes.js +171 -0
- package/src/modules/music/routes/genres.routes.js +118 -0
- package/src/modules/music/routes/playlists.routes.js +239 -0
- package/src/modules/music/routes/tracks.routes.js +149 -0
- package/src/modules/music/store/artists.js +17 -7
- package/src/modules/music/store/genres.js +150 -0
- package/src/modules/music/store/playlists.js +19 -6
- package/src/modules/music/store/tracks.js +9 -2
- package/src/modules/products/components/pages/Product.vue +1 -1
- package/dist/Media-ByPHBvAU.cjs +0 -1
- package/dist/main-137vO86w.cjs +0 -11
- package/dist/martyrs/src/components/Button/Button.vue2.cjs.map +0 -1
- package/dist/martyrs/src/components/Chips/Chips.vue2.cjs.map +0 -1
- package/dist/martyrs/src/components/Chips/Chips.vue2.js.map +0 -1
- package/dist/martyrs/src/components/DatePicker/Calendar.vue.cjs.map +0 -1
- package/dist/martyrs/src/components/DatePicker/Calendar.vue.js.map +0 -1
- package/dist/martyrs/src/components/Field/Field.vue.cjs.map +0 -1
- package/dist/martyrs/src/components/Field/Field.vue.js.map +0 -1
- package/dist/martyrs/src/components/Menu/Menu.vue2.cjs.map +0 -1
- package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +0 -1
- package/dist/martyrs/src/components/Popup/Popup.vue2.cjs.map +0 -1
- package/src/modules/music/components/forms/UploadForm.vue +0 -313
- package/src/modules/music/components/lists/AlbumList.vue +0 -25
- package/src/modules/music/components/lists/ArtistList.vue +0 -280
- package/src/modules/music/components/lists/PlaylistList.vue +0 -25
- package/src/modules/music/components/lists/TrackList.vue +0 -175
- package/src/modules/music/components/pages/ArtistManager.vue +0 -277
- package/src/modules/music/components/pages/MusicUpload.vue +0 -44
- package/src/modules/music/controllers/album.controller.js +0 -82
- package/src/modules/music/controllers/artist.controller.js +0 -99
- package/src/modules/music/controllers/genre.controller.js +0 -63
- package/src/modules/music/controllers/music.controller.js +0 -145
- package/src/modules/music/controllers/playlist.controller.js +0 -146
- package/src/modules/music/routes/album.routes.js +0 -28
- package/src/modules/music/routes/artist.routes.js +0 -30
- package/src/modules/music/routes/genre.routes.js +0 -28
- package/src/modules/music/routes/music.routes.js +0 -106
- package/src/modules/music/routes/playlist.routes.js +0 -47
- /package/src/components/{DatePicker → Calendar}/Calendar.vue +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ref, createElementBlock, openBlock, createElementVNode, createVNode } from "vue";
|
|
2
|
-
import
|
|
3
|
-
import _sfc_main$
|
|
2
|
+
import _sfc_main$1 from "../../../../components/Field/Field.vue2.js";
|
|
3
|
+
import _sfc_main$2 from "../../../../components/Checkbox/Checkbox.vue.js";
|
|
4
4
|
const _hoisted_1 = { class: "w-100" };
|
|
5
5
|
const _hoisted_2 = { class: "mn-b-medium" };
|
|
6
6
|
const _hoisted_3 = { class: "mn-b-small" };
|
|
@@ -37,7 +37,7 @@ const _sfc_main = {
|
|
|
37
37
|
return (_ctx, _cache) => {
|
|
38
38
|
return openBlock(), createElementBlock("div", _hoisted_1, [
|
|
39
39
|
_cache[8] || (_cache[8] = createElementVNode("p", { class: "mn-b-medium t-transp" }, " Set up automatic reordering to maintain optimal inventory levels and avoid stockouts. ", -1)),
|
|
40
|
-
createVNode(
|
|
40
|
+
createVNode(_sfc_main$1, {
|
|
41
41
|
field: threshold.value,
|
|
42
42
|
"onUpdate:field": _cache[0] || (_cache[0] = ($event) => threshold.value = $event),
|
|
43
43
|
label: "Reorder Point",
|
|
@@ -45,7 +45,7 @@ const _sfc_main = {
|
|
|
45
45
|
class: "w-100 bg-light radius-small pd-medium mn-b-small"
|
|
46
46
|
}, null, 8, ["field"]),
|
|
47
47
|
_cache[9] || (_cache[9] = createElementVNode("p", { class: "mn-b-small t-small t-transp" }, " Products will be flagged for reordering when the stock level drops below this threshold. ", -1)),
|
|
48
|
-
createVNode(
|
|
48
|
+
createVNode(_sfc_main$1, {
|
|
49
49
|
field: quantity.value,
|
|
50
50
|
"onUpdate:field": _cache[1] || (_cache[1] = ($event) => quantity.value = $event),
|
|
51
51
|
label: "Reorder Quantity",
|
|
@@ -55,19 +55,19 @@ const _sfc_main = {
|
|
|
55
55
|
createElementVNode("div", _hoisted_2, [
|
|
56
56
|
_cache[7] || (_cache[7] = createElementVNode("p", { class: "mn-b-small t-medium" }, "Notification Options", -1)),
|
|
57
57
|
createElementVNode("div", _hoisted_3, [
|
|
58
|
-
createVNode(_sfc_main$
|
|
58
|
+
createVNode(_sfc_main$2, {
|
|
59
59
|
checked: notifications.value.email,
|
|
60
60
|
"onUpdate:checked": _cache[2] || (_cache[2] = ($event) => notifications.value.email = $event),
|
|
61
61
|
label: "Email notification",
|
|
62
62
|
class: "w-100 mn-b-nano"
|
|
63
63
|
}, null, 8, ["checked"]),
|
|
64
|
-
createVNode(_sfc_main$
|
|
64
|
+
createVNode(_sfc_main$2, {
|
|
65
65
|
checked: notifications.value.push,
|
|
66
66
|
"onUpdate:checked": _cache[3] || (_cache[3] = ($event) => notifications.value.push = $event),
|
|
67
67
|
label: "Push notification",
|
|
68
68
|
class: "w-100 mn-b-nano"
|
|
69
69
|
}, null, 8, ["checked"]),
|
|
70
|
-
createVNode(_sfc_main$
|
|
70
|
+
createVNode(_sfc_main$2, {
|
|
71
71
|
checked: notifications.value.system,
|
|
72
72
|
"onUpdate:checked": _cache[4] || (_cache[4] = ($event) => notifications.value.system = $event),
|
|
73
73
|
label: "System alert",
|
|
@@ -75,7 +75,7 @@ const _sfc_main = {
|
|
|
75
75
|
}, null, 8, ["checked"])
|
|
76
76
|
])
|
|
77
77
|
]),
|
|
78
|
-
createVNode(_sfc_main$
|
|
78
|
+
createVNode(_sfc_main$2, {
|
|
79
79
|
checked: autoOrder.value,
|
|
80
80
|
"onUpdate:checked": _cache[5] || (_cache[5] = ($event) => autoOrder.value = $event),
|
|
81
81
|
label: "Enable automatic purchase order creation",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
3
|
const vue = require("vue");
|
|
4
|
-
const Field = require("../../../../components/Field/Field.
|
|
4
|
+
const Field = require("../../../../components/Field/Field.vue2.cjs");
|
|
5
5
|
const IconInfo = require("../../../icons/navigation/IconInfo.vue.cjs");
|
|
6
6
|
const _hoisted_1 = { class: "w-100" };
|
|
7
7
|
const _hoisted_2 = { class: "mn-b-medium" };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ref, computed, createElementBlock, openBlock, createElementVNode, createVNode, normalizeClass, toDisplayString, createBlock, createCommentVNode, Fragment, renderList, resolveDynamicComponent } from "vue";
|
|
2
|
-
import
|
|
3
|
-
import _sfc_main$
|
|
2
|
+
import _sfc_main$1 from "../../../../components/Field/Field.vue2.js";
|
|
3
|
+
import _sfc_main$2 from "../../../icons/navigation/IconInfo.vue.js";
|
|
4
4
|
const _hoisted_1 = { class: "w-100" };
|
|
5
5
|
const _hoisted_2 = { class: "mn-b-medium" };
|
|
6
6
|
const _hoisted_3 = { class: "mn-b-small flex-nowrap flex gap-thin" };
|
|
@@ -32,12 +32,12 @@ const _sfc_main = {
|
|
|
32
32
|
return parseInt(physicalCount.value || 0) - props.product.available;
|
|
33
33
|
});
|
|
34
34
|
const adjustmentReasons = [
|
|
35
|
-
{ label: "Damage", value: "damage", icon: _sfc_main$
|
|
36
|
-
{ label: "Expire", value: "expire", icon: _sfc_main$
|
|
37
|
-
{ label: "Misplacement", value: "misplacement", icon: _sfc_main$
|
|
38
|
-
{ label: "Theft", value: "theft", icon: _sfc_main$
|
|
39
|
-
{ label: "Stocktake", value: "stocktake", icon: _sfc_main$
|
|
40
|
-
{ label: "Custom", value: "custom", icon: _sfc_main$
|
|
35
|
+
{ label: "Damage", value: "damage", icon: _sfc_main$2 },
|
|
36
|
+
{ label: "Expire", value: "expire", icon: _sfc_main$2 },
|
|
37
|
+
{ label: "Misplacement", value: "misplacement", icon: _sfc_main$2 },
|
|
38
|
+
{ label: "Theft", value: "theft", icon: _sfc_main$2 },
|
|
39
|
+
{ label: "Stocktake", value: "stocktake", icon: _sfc_main$2 },
|
|
40
|
+
{ label: "Custom", value: "custom", icon: _sfc_main$2 }
|
|
41
41
|
];
|
|
42
42
|
function saveAdjustment() {
|
|
43
43
|
const adjustmentData = {
|
|
@@ -61,14 +61,14 @@ const _sfc_main = {
|
|
|
61
61
|
_cache[6] || (_cache[6] = createElementVNode("p", { class: "mn-b-medium t-transp" }, " Effortlessly update your inventory and track adjustments for accurate stock management. ", -1)),
|
|
62
62
|
createElementVNode("div", _hoisted_2, [
|
|
63
63
|
createElementVNode("div", _hoisted_3, [
|
|
64
|
-
createVNode(
|
|
64
|
+
createVNode(_sfc_main$1, {
|
|
65
65
|
field: physicalCount.value,
|
|
66
66
|
"onUpdate:field": _cache[0] || (_cache[0] = ($event) => physicalCount.value = $event),
|
|
67
67
|
label: "Physical Count",
|
|
68
68
|
type: "number",
|
|
69
69
|
class: "w-100 bg-light radius-small pd-medium"
|
|
70
70
|
}, null, 8, ["field"]),
|
|
71
|
-
createVNode(
|
|
71
|
+
createVNode(_sfc_main$1, {
|
|
72
72
|
field: __props.product.available,
|
|
73
73
|
label: "Available",
|
|
74
74
|
type: "text",
|
|
@@ -99,7 +99,7 @@ const _sfc_main = {
|
|
|
99
99
|
], 10, _hoisted_8);
|
|
100
100
|
}), 64))
|
|
101
101
|
]),
|
|
102
|
-
selectedReason.value === "custom" ? (openBlock(), createBlock(
|
|
102
|
+
selectedReason.value === "custom" ? (openBlock(), createBlock(_sfc_main$1, {
|
|
103
103
|
key: 0,
|
|
104
104
|
field: customReasonText.value,
|
|
105
105
|
"onUpdate:field": _cache[1] || (_cache[1] = ($event) => customReasonText.value = $event),
|
|
@@ -107,7 +107,7 @@ const _sfc_main = {
|
|
|
107
107
|
class: "w-100 bg-light radius-small pd-medium"
|
|
108
108
|
}, null, 8, ["field"])) : createCommentVNode("", true)
|
|
109
109
|
]),
|
|
110
|
-
createVNode(
|
|
110
|
+
createVNode(_sfc_main$1, {
|
|
111
111
|
field: note.value,
|
|
112
112
|
"onUpdate:field": _cache[2] || (_cache[2] = ($event) => note.value = $event),
|
|
113
113
|
label: "Note",
|
|
@@ -6,7 +6,7 @@ const globals = require("../../../globals/views/store/globals.cjs");
|
|
|
6
6
|
const auth = require("../../../auth/views/store/auth.cjs");
|
|
7
7
|
const categories = require("../../store/categories.cjs");
|
|
8
8
|
;/* empty css */
|
|
9
|
-
;/* empty css
|
|
9
|
+
;/* empty css */
|
|
10
10
|
const Block = require("../../../../components/Block/Block.vue.cjs");
|
|
11
11
|
const Feed = require("../../../../components/Feed/Feed.vue.cjs");
|
|
12
12
|
const Tree = require("../../../../components/Tree/Tree.vue.cjs");
|
|
@@ -4,7 +4,7 @@ import { state as state$1 } from "../../../globals/views/store/globals.js";
|
|
|
4
4
|
import { state } from "../../../auth/views/store/auth.js";
|
|
5
5
|
import { state as state$2, actions } from "../../store/categories.js";
|
|
6
6
|
/* empty css */
|
|
7
|
-
/* empty css
|
|
7
|
+
/* empty css */
|
|
8
8
|
import _sfc_main$2 from "../../../../components/Block/Block.vue.js";
|
|
9
9
|
import _sfc_main$3 from "../../../../components/Feed/Feed.vue.js";
|
|
10
10
|
import _sfc_main$4 from "../../../../components/Tree/Tree.vue.js";
|
|
@@ -3,15 +3,15 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
|
|
|
3
3
|
const vue = require("vue");
|
|
4
4
|
const vueRouter = require("vue-router");
|
|
5
5
|
const IconDelete = require("../../../icons/navigation/IconDelete.vue.cjs");
|
|
6
|
-
const Button = require("../../../../components/Button/Button.
|
|
6
|
+
const Button = require("../../../../components/Button/Button.vue.cjs");
|
|
7
7
|
const Select = require("../../../../components/Select/Select.vue.cjs");
|
|
8
8
|
const UploadImage = require("../../../../components/UploadImage/UploadImage.vue.cjs");
|
|
9
|
-
const Field = require("../../../../components/Field/Field.
|
|
9
|
+
const Field = require("../../../../components/Field/Field.vue2.cjs");
|
|
10
10
|
;/* empty css */
|
|
11
11
|
;/* empty css */
|
|
12
12
|
const IconCheckmark = require("../../../icons/navigation/IconCheckmark.vue.cjs");
|
|
13
13
|
;/* empty css */
|
|
14
|
-
;/* empty css
|
|
14
|
+
;/* empty css */
|
|
15
15
|
;/* empty css */
|
|
16
16
|
;/* empty css */
|
|
17
17
|
;/* empty css */
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { ref, onMounted, computed, onUnmounted, createElementBlock, createCommentVNode, openBlock, createBlock, createVNode, withCtx, createElementVNode, toDisplayString, unref, createTextVNode, Fragment, renderList } from "vue";
|
|
2
2
|
import { useRoute, useRouter } from "vue-router";
|
|
3
|
-
import _sfc_main$
|
|
4
|
-
import _sfc_main$3 from "../../../../components/Button/Button.
|
|
3
|
+
import _sfc_main$6 from "../../../icons/navigation/IconDelete.vue.js";
|
|
4
|
+
import _sfc_main$3 from "../../../../components/Button/Button.vue.js";
|
|
5
5
|
import Select from "../../../../components/Select/Select.vue.js";
|
|
6
6
|
import _sfc_main$4 from "../../../../components/UploadImage/UploadImage.vue.js";
|
|
7
|
-
import
|
|
7
|
+
import _sfc_main$5 from "../../../../components/Field/Field.vue2.js";
|
|
8
8
|
/* empty css */
|
|
9
9
|
/* empty css */
|
|
10
10
|
import _sfc_main$1 from "../../../icons/navigation/IconCheckmark.vue.js";
|
|
11
11
|
/* empty css */
|
|
12
|
-
/* empty css
|
|
12
|
+
/* empty css */
|
|
13
13
|
/* empty css */
|
|
14
14
|
/* empty css */
|
|
15
15
|
/* empty css */
|
|
@@ -126,7 +126,7 @@ const _sfc_main = {
|
|
|
126
126
|
uploadPath: "categories",
|
|
127
127
|
class: "w-8r aspect-1x1 o-hidden mn-r-small radius-extra"
|
|
128
128
|
}, null, 8, ["photo"]),
|
|
129
|
-
createVNode(
|
|
129
|
+
createVNode(_sfc_main$5, {
|
|
130
130
|
field: state.current.name,
|
|
131
131
|
"onUpdate:field": _cache[1] || (_cache[1] = ($event) => state.current.name = $event),
|
|
132
132
|
label: "Name",
|
|
@@ -135,14 +135,14 @@ const _sfc_main = {
|
|
|
135
135
|
}, null, 8, ["field"])
|
|
136
136
|
]),
|
|
137
137
|
createElementVNode("div", _hoisted_4, [
|
|
138
|
-
createVNode(
|
|
138
|
+
createVNode(_sfc_main$5, {
|
|
139
139
|
field: state.current.order,
|
|
140
140
|
"onUpdate:field": _cache[2] || (_cache[2] = ($event) => state.current.order = $event),
|
|
141
141
|
label: "Order",
|
|
142
142
|
disabled: true,
|
|
143
143
|
class: "w-40 bg-white radius-small pd-medium"
|
|
144
144
|
}, null, 8, ["field"]),
|
|
145
|
-
createVNode(
|
|
145
|
+
createVNode(_sfc_main$5, {
|
|
146
146
|
field: state.current.url,
|
|
147
147
|
"onUpdate:field": _cache[3] || (_cache[3] = ($event) => state.current.url = $event),
|
|
148
148
|
label: "URL",
|
|
@@ -175,13 +175,13 @@ const _sfc_main = {
|
|
|
175
175
|
class: "gap-thin mn-b-thin flex-nowrap flex",
|
|
176
176
|
key: index
|
|
177
177
|
}, [
|
|
178
|
-
createVNode(
|
|
178
|
+
createVNode(_sfc_main$5, {
|
|
179
179
|
field: item.locale,
|
|
180
180
|
"onUpdate:field": ($event) => item.locale = $event,
|
|
181
181
|
placeholder: "Locale",
|
|
182
182
|
class: "w-100 bg-white radius-small pd-medium"
|
|
183
183
|
}, null, 8, ["field", "onUpdate:field"]),
|
|
184
|
-
createVNode(
|
|
184
|
+
createVNode(_sfc_main$5, {
|
|
185
185
|
field: item.text,
|
|
186
186
|
"onUpdate:field": ($event) => item.text = $event,
|
|
187
187
|
placeholder: "Text",
|
|
@@ -191,7 +191,7 @@ const _sfc_main = {
|
|
|
191
191
|
onClick: () => state.current.translations.splice(index, 1),
|
|
192
192
|
class: "radius-small pd-small flex-center flex aspect-1x1 bg-red"
|
|
193
193
|
}, [
|
|
194
|
-
createVNode(_sfc_main$
|
|
194
|
+
createVNode(_sfc_main$6, { class: "i-medium" })
|
|
195
195
|
], 8, _hoisted_6)
|
|
196
196
|
]);
|
|
197
197
|
}), 128))
|
|
@@ -212,13 +212,13 @@ const _sfc_main = {
|
|
|
212
212
|
class: "gap-thin mn-b-thin flex-nowrap flex",
|
|
213
213
|
key: index
|
|
214
214
|
}, [
|
|
215
|
-
createVNode(
|
|
215
|
+
createVNode(_sfc_main$5, {
|
|
216
216
|
field: item.name,
|
|
217
217
|
"onUpdate:field": ($event) => item.name = $event,
|
|
218
218
|
placeholder: "Filter name",
|
|
219
219
|
class: "w-100 bg-white radius-small pd-medium"
|
|
220
220
|
}, null, 8, ["field", "onUpdate:field"]),
|
|
221
|
-
createVNode(
|
|
221
|
+
createVNode(_sfc_main$5, {
|
|
222
222
|
field: item.options,
|
|
223
223
|
"onUpdate:field": ($event) => item.options = $event,
|
|
224
224
|
placeholder: "Filter options divided by ,",
|
|
@@ -228,7 +228,7 @@ const _sfc_main = {
|
|
|
228
228
|
onClick: () => state.current.filters.splice(index, 1),
|
|
229
229
|
class: "radius-small pd-small flex-center flex aspect-1x1 bg-red"
|
|
230
230
|
}, [
|
|
231
|
-
createVNode(_sfc_main$
|
|
231
|
+
createVNode(_sfc_main$6, { class: "i-medium" })
|
|
232
232
|
], 8, _hoisted_7)
|
|
233
233
|
]);
|
|
234
234
|
}), 128))
|
|
@@ -2,11 +2,11 @@
|
|
|
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 Button = require("../../../../components/Button/Button.
|
|
6
|
-
const Field = require("../../../../components/Field/Field.
|
|
5
|
+
const Button = require("../../../../components/Button/Button.vue.cjs");
|
|
6
|
+
const Field = require("../../../../components/Field/Field.vue2.cjs");
|
|
7
7
|
const Feed = require("../../../../components/Feed/Feed.vue.cjs");
|
|
8
8
|
;/* empty css */
|
|
9
|
-
const Popup = require("../../../../components/Popup/Popup.
|
|
9
|
+
const Popup = require("../../../../components/Popup/Popup.vue.cjs");
|
|
10
10
|
const CardOrderItem = require("../../../orders/components/blocks/CardOrderItem.vue.cjs");
|
|
11
11
|
const CardSpot = require("../../../spots/components/blocks/CardSpot.vue.cjs");
|
|
12
12
|
const CardPosition = require("../blocks/CardPosition.vue.cjs");
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { ref, computed, onMounted, createElementBlock, openBlock, createElementVNode, createVNode, toDisplayString, unref, withCtx, Fragment, renderList, createBlock, createCommentVNode } from "vue";
|
|
2
2
|
import _sfc_main$4 from "../../../../components/Block/Block.vue.js";
|
|
3
|
-
import _sfc_main$
|
|
4
|
-
import
|
|
3
|
+
import _sfc_main$8 from "../../../../components/Button/Button.vue.js";
|
|
4
|
+
import _sfc_main$5 from "../../../../components/Field/Field.vue2.js";
|
|
5
5
|
import _sfc_main$2 from "../../../../components/Feed/Feed.vue.js";
|
|
6
6
|
/* empty css */
|
|
7
|
-
import _sfc_main$1 from "../../../../components/Popup/Popup.
|
|
7
|
+
import _sfc_main$1 from "../../../../components/Popup/Popup.vue.js";
|
|
8
8
|
import _sfc_main$3 from "../../../orders/components/blocks/CardOrderItem.vue.js";
|
|
9
9
|
import CardSpot from "../../../spots/components/blocks/CardSpot.vue.js";
|
|
10
|
-
import _sfc_main$
|
|
11
|
-
import _sfc_main$
|
|
10
|
+
import _sfc_main$6 from "../blocks/CardPosition.vue.js";
|
|
11
|
+
import _sfc_main$7 from "../elements/QuantitySelector.vue.js";
|
|
12
12
|
import { useRoute, useRouter } from "vue-router";
|
|
13
13
|
import { useGlobalMixins } from "../../../globals/views/mixins/mixins.js";
|
|
14
14
|
import { actions as actions$3 } from "../../../globals/views/store/globals.js";
|
|
@@ -223,7 +223,7 @@ const _sfc_main = {
|
|
|
223
223
|
}, 8, ["isPopupOpen"]),
|
|
224
224
|
createVNode(_sfc_main$4, { class: "mn-b-thin" }, {
|
|
225
225
|
default: withCtx(() => [
|
|
226
|
-
createVNode(
|
|
226
|
+
createVNode(_sfc_main$5, {
|
|
227
227
|
field: state.current.comment,
|
|
228
228
|
"onUpdate:field": _cache[0] || (_cache[0] = ($event) => state.current.comment = $event),
|
|
229
229
|
placeholder: "Describe details of the leftover",
|
|
@@ -279,7 +279,7 @@ const _sfc_main = {
|
|
|
279
279
|
}, {
|
|
280
280
|
default: withCtx(() => [
|
|
281
281
|
(openBlock(true), createElementBlock(Fragment, null, renderList(state.current.positions, (position, index) => {
|
|
282
|
-
return openBlock(), createBlock(_sfc_main$
|
|
282
|
+
return openBlock(), createBlock(_sfc_main$6, {
|
|
283
283
|
key: position._id || index,
|
|
284
284
|
image: position.image,
|
|
285
285
|
name: position.name,
|
|
@@ -288,7 +288,7 @@ const _sfc_main = {
|
|
|
288
288
|
subtitle: `${unref(formatPrice)(position.cost)} × ${Math.abs(position.quantity)}${position.unit} `
|
|
289
289
|
}, {
|
|
290
290
|
actions: withCtx(() => [
|
|
291
|
-
createVNode(_sfc_main$
|
|
291
|
+
createVNode(_sfc_main$7, {
|
|
292
292
|
modelValue: position.quantity,
|
|
293
293
|
"onUpdate:modelValue": ($event) => position.quantity = $event
|
|
294
294
|
}, null, 8, ["modelValue", "onUpdate:modelValue"])
|
|
@@ -303,7 +303,7 @@ const _sfc_main = {
|
|
|
303
303
|
default: withCtx(() => [
|
|
304
304
|
createElementVNode("section", _hoisted_11, [
|
|
305
305
|
createElementVNode("span", _hoisted_12, " In total: " + toDisplayString(unref(formatPrice)(totalPrice.value)), 1),
|
|
306
|
-
createVNode(_sfc_main$
|
|
306
|
+
createVNode(_sfc_main$8, {
|
|
307
307
|
submit: onSubmit,
|
|
308
308
|
class: "bg-main w-min-5r button"
|
|
309
309
|
}, {
|
|
@@ -312,7 +312,7 @@ const _sfc_main = {
|
|
|
312
312
|
])),
|
|
313
313
|
_: 1
|
|
314
314
|
}),
|
|
315
|
-
createVNode(_sfc_main$
|
|
315
|
+
createVNode(_sfc_main$8, {
|
|
316
316
|
submit: onReset,
|
|
317
317
|
class: "t-white w-min-5r bg-second button"
|
|
318
318
|
}, {
|
|
@@ -321,7 +321,7 @@ const _sfc_main = {
|
|
|
321
321
|
])),
|
|
322
322
|
_: 1
|
|
323
323
|
}),
|
|
324
|
-
unref(route).params.leftover ? (openBlock(), createBlock(_sfc_main$
|
|
324
|
+
unref(route).params.leftover ? (openBlock(), createBlock(_sfc_main$8, {
|
|
325
325
|
key: 0,
|
|
326
326
|
submit: onDelete,
|
|
327
327
|
class: "t-white w-min-5r bg-red button"
|
|
@@ -6,13 +6,13 @@ const Table = require("../../../../components/Table/Table.vue.cjs");
|
|
|
6
6
|
const Feed = require("../../../../components/Feed/Feed.vue.cjs");
|
|
7
7
|
const PlaceholderImage = require("../../../icons/placeholders/PlaceholderImage.vue.cjs");
|
|
8
8
|
const Dropdown = require("../../../../components/Dropdown/Dropdown.vue.cjs");
|
|
9
|
-
const Popup = require("../../../../components/Popup/Popup.
|
|
9
|
+
const Popup = require("../../../../components/Popup/Popup.vue.cjs");
|
|
10
10
|
const IconSettings = require("../../../icons/entities/IconSettings.vue.cjs");
|
|
11
11
|
const IconEllipsis = require("../../../icons/navigation/IconEllipsis.vue.cjs");
|
|
12
12
|
const StockAuditForm = require("../forms/StockAuditForm.vue.cjs");
|
|
13
13
|
const ReorderSettingsForm = require("../forms/ReorderSettingsForm.vue.cjs");
|
|
14
14
|
const StockHistoryView = require("../forms/StockHistoryView.vue.cjs");
|
|
15
|
-
const ColumnSettingsMenu =
|
|
15
|
+
const ColumnSettingsMenu = require("../forms/ColumnSettingsMenu.vue.cjs");
|
|
16
16
|
const products = require("../../store/products.cjs");
|
|
17
17
|
const leftovers = require("../../store/leftovers.cjs");
|
|
18
18
|
;/* empty css */
|
|
@@ -4,7 +4,7 @@ import Table from "../../../../components/Table/Table.vue.js";
|
|
|
4
4
|
import _sfc_main$1 from "../../../../components/Feed/Feed.vue.js";
|
|
5
5
|
import PlaceholderImage from "../../../icons/placeholders/PlaceholderImage.vue.js";
|
|
6
6
|
import _sfc_main$3 from "../../../../components/Dropdown/Dropdown.vue.js";
|
|
7
|
-
import _sfc_main$5 from "../../../../components/Popup/Popup.
|
|
7
|
+
import _sfc_main$5 from "../../../../components/Popup/Popup.vue.js";
|
|
8
8
|
import _sfc_main$2 from "../../../icons/entities/IconSettings.vue.js";
|
|
9
9
|
import _sfc_main$4 from "../../../icons/navigation/IconEllipsis.vue.js";
|
|
10
10
|
import _sfc_main$6 from "../forms/StockAuditForm.vue.js";
|
|
@@ -10,8 +10,8 @@ const products = require("../../store/products.cjs");
|
|
|
10
10
|
require("../../store/categories.cjs");
|
|
11
11
|
const shopcart = require("../../../orders/store/shopcart.cjs");
|
|
12
12
|
;/* empty css */
|
|
13
|
-
;/* empty css
|
|
14
|
-
;/* empty css
|
|
13
|
+
;/* empty css */
|
|
14
|
+
;/* empty css */
|
|
15
15
|
;/* empty css */
|
|
16
16
|
const IconEdit = require("../../../icons/navigation/IconEdit.vue.cjs");
|
|
17
17
|
const IconInfo = require("../../../icons/navigation/IconInfo.vue.cjs");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Product.vue.cjs","sources":["../../../../../../../src/modules/products/components/pages/Product.vue"],"sourcesContent":["<template>\n <div v-if=\"products.state.current\" class=\"w-100 mobile:pd-thin pd-small bg-white\">\n <div class=\"cols-2 mobile:cols-1 w-100 gap-medium\">\n\n <ProductImages\n :images=\"currentImages\"\n :product=\"product\"\n />\n\n <div class=\"pos-relative w-100 h-100 flex-column flex-h-center flex\">\n <!-- Edit Button -->\n <router-link\n v-if=\"hasAccess(route.params._id, 'products', 'edit', auth.state.accesses, auth.state.access.roles)\"\n :to=\"\n route.params._id \n ? { name: 'Organization_ProductEdit', params: { id: route.params._id, product: product._id } } \n : { name: 'ProductEdit', params: { product: product._id } }\n \"\n class=\"\n z-index-2\n cursor-pointer \n pos-absolute pos-t-zero pos-r-zero\n radius-extra pd-thin bg-second\n \"\n >\n <IconEdit\n class=\"i-regular\"\n classes=\"fill-white\"\n />\n </router-link>\n\n <h2 class=\"w-100 h1-product mn-b-medium\">{{ product.name }}</h2>\n\n <p v-if=\"product.description\" class=\"w-100 mn-b-medium\" style=\"white-space: pre-line;\">\n {{ product.translations?.length > 1 ? t('description') : product.description }}\n </p>\n \n <!-- Компонент выбора вариантов товара -->\n <ProductConfigurator\n v-if=\"product.variants?.length > 0\"\n :product-variants=\"product.variants\"\n :product-id=\"product._id\"\n :product-name=\"product.name\"\n :discounts=\"product.discounts\"\n :regularPrice=\"100\"\n @variant-selected=\"handleVariantSelected\"\n @add-to-cart=\"handleAddVariantToCart\"\n @update-images=\"handleUpdateImages\"\n />\n\n <div v-if=\"product.included\" class=\"mn-b-small flex-nowrap flex flex-v-center\">\n <IconList class=\"mn-r-micro i-medium\"/>\n <p class=\"t-medium \">Included</p>\n </div>\n\n <div v-if=\"product.included\" class=\"cols-1 mn-b-medium w-100 \">\n <div\n class=\"w-100 pd-small radius-small flex flex-column gap-small bg-light\"\n >\n <p class=\"t-medium\" style=\"white-space: pre-line;\" v-html=\"product.included\"></p>\n </div>\n </div>\n\n\n <div class=\"mn-b-small flex-nowrap flex flex-v-center\">\n <IconInfo class=\"mn-r-micro i-medium\"/>\n <p class=\"t-medium \">Product Details</p>\n </div>\n\n <div class=\"cols-2 mn-b-medium w-100 gap-small\">\n <div\n v-if=\"product.attributes && product.attributes.length > 0\"\n v-for=\"attributes in product.attributes\"\n class=\"w-100 pd-small radius-small bg-light product-attributes\"\n >\n <p class=\"mn-b-thin t-demi\">{{ attributes.name }}</p>\n <p>{{ attributes.value }}</p>\n </div>\n </div>\n\n <div class=\"mn-b-small flex-nowrap flex flex-v-center\">\n <IconGroups class=\"mn-r-micro i-medium\"/>\n <p class=\"t-medium \">Provided by</p>\n </div>\n\n <CardOrganization \n v-if=\"product.owner\"\n :organization=\"product.owner.target\"\n :showRating=\"true\"\n :showFollowers=\"false\"\n :showProducts=\"false\"\n class=\"bg-light w-100 o-hidden radius-medium pd-small \"\n />\n </div>\n </div>\n \n <ProductsRecommended \n v-if=\"product.recommended.length > 0\"\n :products=\"product.recommended\"\n class=\" mn-t-big h-max pos-relative\"\n />\n\n <div class=\"h-max mn-t-big pos-relative\">\n <h3 class=\"pd-b-small\">Most Popular</h3>\n <ProductsPopular class=\"mn-r-big-negative mn-l-big-negative\"/>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { computed, ref, onMounted, getCurrentInstance } from 'vue'\nimport { useRoute, useRouter } from 'vue-router'\nimport { useI18n } from 'vue-i18n'\nimport { useGlobalMixins } from \"@martyrs/src/modules/globals/views/mixins/mixins.js\"\n\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\nimport * as globals from '@martyrs/src/modules/globals/views/store/globals.js'\nimport * as products from '@martyrs/src/modules/products/store/products.js'\nimport * as categories from '@martyrs/src/modules/products/store/categories.js'\nimport * as shopcart from '@martyrs/src/modules/orders/store/shopcart.js'\n\nimport Button from '@martyrs/src/components/Button/Button.vue'\nimport Popup from '@martyrs/src/components/Popup/Popup.vue'\nimport Tab from '@martyrs/src/components/Tab/Tab.vue'\nimport Calendar from '@martyrs/src/components/DatePicker/Calendar.vue'\n\nimport IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue'\nimport IconInfo from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\n\nimport IconShopcartAdd from '@martyrs/src/modules/icons/actions/IconShopcartAdd.vue'\n\nimport IconList from '@martyrs/src/modules/icons/entities/IconList.vue';\nimport IconGroups from '@martyrs/src/modules/icons/entities/IconGroups.vue'\n\nimport ProductImages from '@martyrs/src/modules/products/components/blocks/ProductImages.vue'\nimport ProductConfigurator from '@martyrs/src/modules/products/components/sections/ProductConfigurator.vue'\nimport ProductsRecommended from '@martyrs/src/modules/products/components/sections/ProductsRecommended.vue';\nimport ProductsPopular from '@martyrs/src/modules/products/components/sections/ProductsPopular.vue'\n\nimport CardOrganization from '@martyrs/src/modules/organizations/components/blocks/CardOrganization.vue'\n\nconst route = useRoute()\nconst router = useRouter()\nconst { proxy } = getCurrentInstance()\nconst { returnCurrency, hasAccess } = useGlobalMixins()\n\nconst product = computed(() => products.state.current)\nconst productImages = computed(() => products.state.current.images || [])\n\n// Состояние для отслеживания текущих изображений (товара или варианта)\nconst currentImages = ref([])\n// Выбранный вариант товара\nconst selectedVariant = ref(null)\n\nconst text = {\n en: { addtoorder: 'Add to Cart', fastorder: 'Fast Order', description: 'Description' },\n ru: { addtoorder: 'Добавить в корзину', fastorder: 'Быстрый заказ', description: 'Описание' }\n}\n\nconst { t } = useI18n({ messages: text })\n\nconst emits = defineEmits(['page-loading', 'page-loaded']);\n\nconst recommendation = defineProps({\n recommendation: {\n type: Boolean,\n default: false\n }\n})\n \nproducts.state.current = null\n\nonMounted(async () => {\n emits('page-loading');\n \n await products.actions.read({ _id: route.params.product, lookup: ['recommended'] })\n \n // Инициализируем текущие изображения изображениями товара\n currentImages.value = [...productImages.value]\n\n if (typeof gtag === 'function') {\n gtag('event', 'view_item', {\n currency: returnCurrency(),\n value: product.value.price || 0,\n items: [{\n item_id: product.value._id,\n item_name: product.value.name,\n price: product.value.price || 0,\n item_category: product.value.category || '',\n item_brand: product.value.owner?.target?.profile.name || ''\n }]\n });\n }\n\n emits('page-loaded');\n})\n\n// Обработчик выбора варианта\nfunction handleVariantSelected(variant) {\n selectedVariant.value = variant\n}\n\n// Обработчик обновления изображений при выборе варианта\nfunction handleUpdateImages(images) {\n if (images && images.length > 0) {\n currentImages.value = [...images]\n } else {\n // Если у варианта нет изображений, возвращаем изображения товара\n currentImages.value = [...productImages.value]\n }\n}\n\n// Обработчик добавления варианта в корзину\nasync function handleAddVariantToCart(variantItem) {\n try {\n if (!shopcart.state.organization) {\n shopcart.state.organization = product.value.owner.target._id\n }\n \n // Проверка на товар с арендой\n if (product.value.listing === 'rent') {\n const selectedDates = await proxy.$dateSelector({\n product: product.value\n });\n \n if (!selectedDates) throw new Error('Date selection cancelled')\n \n variantItem.selectedDates = selectedDates\n }\n \n // Проверка на разные организации в корзине\n if (shopcart.state.organization !== product.value.owner.target._id) {\n const result = await proxy.$alert({\n title: 'Replace items in your cart?',\n message: `Your cart has items from another vendor. If you continue, we'll clear it so you can order from this one instead.`,\n actions: [\n { label: 'Cancel', value: false },\n { label: 'Replace', value: true }\n ]\n })\n\n if (!result) throw new Error('Cart replacement cancelled')\n\n shopcart.state.positions = []\n shopcart.state.organization = product.value.owner.target._id\n }\n\n // Аналитика: регистрируем добавление в корзину\n if (typeof gtag === 'function') {\n gtag('event', 'add_to_cart', {\n currency: returnCurrency(),\n value: variantItem.price || 0,\n items: [{\n item_id: variantItem._id,\n item_name: variantItem.name,\n price: variantItem.price || 0,\n quantity: 1,\n item_category: product.value.category || '',\n item_brand: product.value.owner?.target?.profile?.name || ''\n }]\n });\n }\n \n // Добавляем вариант в корзину\n await shopcart.actions.addVariantToCart(variantItem, product.value.owner.target._id)\n return true\n } catch (error) {\n console.error('Error while adding variant to cart:', error)\n throw error\n }\n}\n\n// Оригинальная функция добавления товара в корзину (для товаров без вариантов)\nasync function addToCart(product) {\n let selectedDates = null\n\n try {\n if (!shopcart.state.organization) {\n shopcart.state.organization = product.owner.target._id\n }\n if (product.listing === 'rent') {\n selectedDates = await proxy.$dateSelector({\n product: product.value\n });\n \n if (!selectedDates) throw new Error('Date selection cancelled')\n \n }\n // Если организация товара отличается от текущей в корзине\n if (shopcart.state.organization !== product.owner.target._id) {\n const result = await proxy.$alert({\n title: 'Replace items in your cart?',\n message: `Your cart has items from another vendor. If you continue, we'll clear it so you can order from this one instead.`,\n actions: [\n { label: 'Cancel', value: false },\n { label: 'Replace', value: true }\n ]\n })\n\n if (!result) throw new Error('Cart replacement cancelled')\n\n shopcart.state.positions = []\n shopcart.state.organization = product.owner.target._id\n }\n\n if (typeof gtag === 'function') {\n gtag('event', 'add_to_cart', {\n currency: returnCurrency(),\n value: product.price || 0,\n items: [{\n item_id: product._id,\n item_name: product.name,\n price: product.price || 0,\n quantity: 1,\n item_category: product.category || '',\n item_brand: product.owner?.target?.profile?.name || ''\n }]\n });\n }\n \n await shopcart.actions.addProductToCart(product, product.owner.target._id, selectedDates)\n return true\n } catch (error) {\n console.error('Error while adding product to cart:', error)\n throw error\n }\n}\n</script>"],"names":["useRoute","useRouter","getCurrentInstance","useGlobalMixins","computed","products.state","ref","useI18n","onMounted","products.actions","shopcart.state","shopcart.actions"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Product.vue.cjs","sources":["../../../../../../../src/modules/products/components/pages/Product.vue"],"sourcesContent":["<template>\n <div v-if=\"products.state.current\" class=\"w-100 mobile:pd-thin pd-small bg-white\">\n <div class=\"cols-2 mobile:cols-1 w-100 gap-medium\">\n\n <ProductImages\n :images=\"currentImages\"\n :product=\"product\"\n />\n\n <div class=\"pos-relative w-100 h-100 flex-column flex-h-center flex\">\n <!-- Edit Button -->\n <router-link\n v-if=\"hasAccess(route.params._id, 'products', 'edit', auth.state.accesses, auth.state.access.roles)\"\n :to=\"\n route.params._id \n ? { name: 'Organization_ProductEdit', params: { id: route.params._id, product: product._id } } \n : { name: 'ProductEdit', params: { product: product._id } }\n \"\n class=\"\n z-index-2\n cursor-pointer \n pos-absolute pos-t-zero pos-r-zero\n radius-extra pd-thin bg-second\n \"\n >\n <IconEdit\n class=\"i-regular\"\n classes=\"fill-white\"\n />\n </router-link>\n\n <h2 class=\"w-100 h1-product mn-b-medium\">{{ product.name }}</h2>\n\n <p v-if=\"product.description\" class=\"w-100 mn-b-medium\" style=\"white-space: pre-line;\">\n {{ product.translations?.length > 1 ? t('description') : product.description }}\n </p>\n \n <!-- Компонент выбора вариантов товара -->\n <ProductConfigurator\n v-if=\"product.variants?.length > 0\"\n :product-variants=\"product.variants\"\n :product-id=\"product._id\"\n :product-name=\"product.name\"\n :discounts=\"product.discounts\"\n :regularPrice=\"100\"\n @variant-selected=\"handleVariantSelected\"\n @add-to-cart=\"handleAddVariantToCart\"\n @update-images=\"handleUpdateImages\"\n />\n\n <div v-if=\"product.included\" class=\"mn-b-small flex-nowrap flex flex-v-center\">\n <IconList class=\"mn-r-micro i-medium\"/>\n <p class=\"t-medium \">Included</p>\n </div>\n\n <div v-if=\"product.included\" class=\"cols-1 mn-b-medium w-100 \">\n <div\n class=\"w-100 pd-small radius-small flex flex-column gap-small bg-light\"\n >\n <p class=\"t-medium\" style=\"white-space: pre-line;\" v-html=\"product.included\"></p>\n </div>\n </div>\n\n\n <div class=\"mn-b-small flex-nowrap flex flex-v-center\">\n <IconInfo class=\"mn-r-micro i-medium\"/>\n <p class=\"t-medium \">Product Details</p>\n </div>\n\n <div class=\"cols-2 mn-b-medium w-100 gap-small\">\n <div\n v-if=\"product.attributes && product.attributes.length > 0\"\n v-for=\"attributes in product.attributes\"\n class=\"w-100 pd-small radius-small bg-light product-attributes\"\n >\n <p class=\"mn-b-thin t-demi\">{{ attributes.name }}</p>\n <p>{{ attributes.value }}</p>\n </div>\n </div>\n\n <div class=\"mn-b-small flex-nowrap flex flex-v-center\">\n <IconGroups class=\"mn-r-micro i-medium\"/>\n <p class=\"t-medium \">Provided by</p>\n </div>\n\n <CardOrganization \n v-if=\"product.owner\"\n :organization=\"product.owner.target\"\n :showRating=\"true\"\n :showFollowers=\"false\"\n :showProducts=\"false\"\n class=\"bg-light w-100 o-hidden radius-medium pd-small \"\n />\n </div>\n </div>\n \n <ProductsRecommended \n v-if=\"product.recommended.length > 0\"\n :products=\"product.recommended\"\n class=\" mn-t-big h-max pos-relative\"\n />\n\n <div class=\"h-max mn-t-big pos-relative\">\n <h3 class=\"pd-b-small\">Most Popular</h3>\n <ProductsPopular class=\"mn-r-big-negative mn-l-big-negative\"/>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { computed, ref, onMounted, getCurrentInstance } from 'vue'\nimport { useRoute, useRouter } from 'vue-router'\nimport { useI18n } from 'vue-i18n'\nimport { useGlobalMixins } from \"@martyrs/src/modules/globals/views/mixins/mixins.js\"\n\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\nimport * as globals from '@martyrs/src/modules/globals/views/store/globals.js'\nimport * as products from '@martyrs/src/modules/products/store/products.js'\nimport * as categories from '@martyrs/src/modules/products/store/categories.js'\nimport * as shopcart from '@martyrs/src/modules/orders/store/shopcart.js'\n\nimport Button from '@martyrs/src/components/Button/Button.vue'\nimport Popup from '@martyrs/src/components/Popup/Popup.vue'\nimport Tab from '@martyrs/src/components/Tab/Tab.vue'\nimport Calendar from '@martyrs/src/components/Calendar/Calendar.vue'\n\nimport IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue'\nimport IconInfo from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\n\nimport IconShopcartAdd from '@martyrs/src/modules/icons/actions/IconShopcartAdd.vue'\n\nimport IconList from '@martyrs/src/modules/icons/entities/IconList.vue';\nimport IconGroups from '@martyrs/src/modules/icons/entities/IconGroups.vue'\n\nimport ProductImages from '@martyrs/src/modules/products/components/blocks/ProductImages.vue'\nimport ProductConfigurator from '@martyrs/src/modules/products/components/sections/ProductConfigurator.vue'\nimport ProductsRecommended from '@martyrs/src/modules/products/components/sections/ProductsRecommended.vue';\nimport ProductsPopular from '@martyrs/src/modules/products/components/sections/ProductsPopular.vue'\n\nimport CardOrganization from '@martyrs/src/modules/organizations/components/blocks/CardOrganization.vue'\n\nconst route = useRoute()\nconst router = useRouter()\nconst { proxy } = getCurrentInstance()\nconst { returnCurrency, hasAccess } = useGlobalMixins()\n\nconst product = computed(() => products.state.current)\nconst productImages = computed(() => products.state.current.images || [])\n\n// Состояние для отслеживания текущих изображений (товара или варианта)\nconst currentImages = ref([])\n// Выбранный вариант товара\nconst selectedVariant = ref(null)\n\nconst text = {\n en: { addtoorder: 'Add to Cart', fastorder: 'Fast Order', description: 'Description' },\n ru: { addtoorder: 'Добавить в корзину', fastorder: 'Быстрый заказ', description: 'Описание' }\n}\n\nconst { t } = useI18n({ messages: text })\n\nconst emits = defineEmits(['page-loading', 'page-loaded']);\n\nconst recommendation = defineProps({\n recommendation: {\n type: Boolean,\n default: false\n }\n})\n \nproducts.state.current = null\n\nonMounted(async () => {\n emits('page-loading');\n \n await products.actions.read({ _id: route.params.product, lookup: ['recommended'] })\n \n // Инициализируем текущие изображения изображениями товара\n currentImages.value = [...productImages.value]\n\n if (typeof gtag === 'function') {\n gtag('event', 'view_item', {\n currency: returnCurrency(),\n value: product.value.price || 0,\n items: [{\n item_id: product.value._id,\n item_name: product.value.name,\n price: product.value.price || 0,\n item_category: product.value.category || '',\n item_brand: product.value.owner?.target?.profile.name || ''\n }]\n });\n }\n\n emits('page-loaded');\n})\n\n// Обработчик выбора варианта\nfunction handleVariantSelected(variant) {\n selectedVariant.value = variant\n}\n\n// Обработчик обновления изображений при выборе варианта\nfunction handleUpdateImages(images) {\n if (images && images.length > 0) {\n currentImages.value = [...images]\n } else {\n // Если у варианта нет изображений, возвращаем изображения товара\n currentImages.value = [...productImages.value]\n }\n}\n\n// Обработчик добавления варианта в корзину\nasync function handleAddVariantToCart(variantItem) {\n try {\n if (!shopcart.state.organization) {\n shopcart.state.organization = product.value.owner.target._id\n }\n \n // Проверка на товар с арендой\n if (product.value.listing === 'rent') {\n const selectedDates = await proxy.$dateSelector({\n product: product.value\n });\n \n if (!selectedDates) throw new Error('Date selection cancelled')\n \n variantItem.selectedDates = selectedDates\n }\n \n // Проверка на разные организации в корзине\n if (shopcart.state.organization !== product.value.owner.target._id) {\n const result = await proxy.$alert({\n title: 'Replace items in your cart?',\n message: `Your cart has items from another vendor. If you continue, we'll clear it so you can order from this one instead.`,\n actions: [\n { label: 'Cancel', value: false },\n { label: 'Replace', value: true }\n ]\n })\n\n if (!result) throw new Error('Cart replacement cancelled')\n\n shopcart.state.positions = []\n shopcart.state.organization = product.value.owner.target._id\n }\n\n // Аналитика: регистрируем добавление в корзину\n if (typeof gtag === 'function') {\n gtag('event', 'add_to_cart', {\n currency: returnCurrency(),\n value: variantItem.price || 0,\n items: [{\n item_id: variantItem._id,\n item_name: variantItem.name,\n price: variantItem.price || 0,\n quantity: 1,\n item_category: product.value.category || '',\n item_brand: product.value.owner?.target?.profile?.name || ''\n }]\n });\n }\n \n // Добавляем вариант в корзину\n await shopcart.actions.addVariantToCart(variantItem, product.value.owner.target._id)\n return true\n } catch (error) {\n console.error('Error while adding variant to cart:', error)\n throw error\n }\n}\n\n// Оригинальная функция добавления товара в корзину (для товаров без вариантов)\nasync function addToCart(product) {\n let selectedDates = null\n\n try {\n if (!shopcart.state.organization) {\n shopcart.state.organization = product.owner.target._id\n }\n if (product.listing === 'rent') {\n selectedDates = await proxy.$dateSelector({\n product: product.value\n });\n \n if (!selectedDates) throw new Error('Date selection cancelled')\n \n }\n // Если организация товара отличается от текущей в корзине\n if (shopcart.state.organization !== product.owner.target._id) {\n const result = await proxy.$alert({\n title: 'Replace items in your cart?',\n message: `Your cart has items from another vendor. If you continue, we'll clear it so you can order from this one instead.`,\n actions: [\n { label: 'Cancel', value: false },\n { label: 'Replace', value: true }\n ]\n })\n\n if (!result) throw new Error('Cart replacement cancelled')\n\n shopcart.state.positions = []\n shopcart.state.organization = product.owner.target._id\n }\n\n if (typeof gtag === 'function') {\n gtag('event', 'add_to_cart', {\n currency: returnCurrency(),\n value: product.price || 0,\n items: [{\n item_id: product._id,\n item_name: product.name,\n price: product.price || 0,\n quantity: 1,\n item_category: product.category || '',\n item_brand: product.owner?.target?.profile?.name || ''\n }]\n });\n }\n \n await shopcart.actions.addProductToCart(product, product.owner.target._id, selectedDates)\n return true\n } catch (error) {\n console.error('Error while adding product to cart:', error)\n throw error\n }\n}\n</script>"],"names":["useRoute","useRouter","getCurrentInstance","useGlobalMixins","computed","products.state","ref","useI18n","onMounted","products.actions","shopcart.state","shopcart.actions"],"mappings":"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"}
|
|
@@ -8,8 +8,8 @@ import { state, actions } from "../../store/products.js";
|
|
|
8
8
|
import "../../store/categories.js";
|
|
9
9
|
import { state as state$2, actions as actions$1 } from "../../../orders/store/shopcart.js";
|
|
10
10
|
/* empty css */
|
|
11
|
-
/* empty css
|
|
12
|
-
/* empty css
|
|
11
|
+
/* empty css */
|
|
12
|
+
/* empty css */
|
|
13
13
|
/* empty css */
|
|
14
14
|
import _sfc_main$1 from "../../../icons/navigation/IconEdit.vue.js";
|
|
15
15
|
import _sfc_main$4 from "../../../icons/navigation/IconInfo.vue.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Product.vue.js","sources":["../../../../../../../src/modules/products/components/pages/Product.vue"],"sourcesContent":["<template>\n <div v-if=\"products.state.current\" class=\"w-100 mobile:pd-thin pd-small bg-white\">\n <div class=\"cols-2 mobile:cols-1 w-100 gap-medium\">\n\n <ProductImages\n :images=\"currentImages\"\n :product=\"product\"\n />\n\n <div class=\"pos-relative w-100 h-100 flex-column flex-h-center flex\">\n <!-- Edit Button -->\n <router-link\n v-if=\"hasAccess(route.params._id, 'products', 'edit', auth.state.accesses, auth.state.access.roles)\"\n :to=\"\n route.params._id \n ? { name: 'Organization_ProductEdit', params: { id: route.params._id, product: product._id } } \n : { name: 'ProductEdit', params: { product: product._id } }\n \"\n class=\"\n z-index-2\n cursor-pointer \n pos-absolute pos-t-zero pos-r-zero\n radius-extra pd-thin bg-second\n \"\n >\n <IconEdit\n class=\"i-regular\"\n classes=\"fill-white\"\n />\n </router-link>\n\n <h2 class=\"w-100 h1-product mn-b-medium\">{{ product.name }}</h2>\n\n <p v-if=\"product.description\" class=\"w-100 mn-b-medium\" style=\"white-space: pre-line;\">\n {{ product.translations?.length > 1 ? t('description') : product.description }}\n </p>\n \n <!-- Компонент выбора вариантов товара -->\n <ProductConfigurator\n v-if=\"product.variants?.length > 0\"\n :product-variants=\"product.variants\"\n :product-id=\"product._id\"\n :product-name=\"product.name\"\n :discounts=\"product.discounts\"\n :regularPrice=\"100\"\n @variant-selected=\"handleVariantSelected\"\n @add-to-cart=\"handleAddVariantToCart\"\n @update-images=\"handleUpdateImages\"\n />\n\n <div v-if=\"product.included\" class=\"mn-b-small flex-nowrap flex flex-v-center\">\n <IconList class=\"mn-r-micro i-medium\"/>\n <p class=\"t-medium \">Included</p>\n </div>\n\n <div v-if=\"product.included\" class=\"cols-1 mn-b-medium w-100 \">\n <div\n class=\"w-100 pd-small radius-small flex flex-column gap-small bg-light\"\n >\n <p class=\"t-medium\" style=\"white-space: pre-line;\" v-html=\"product.included\"></p>\n </div>\n </div>\n\n\n <div class=\"mn-b-small flex-nowrap flex flex-v-center\">\n <IconInfo class=\"mn-r-micro i-medium\"/>\n <p class=\"t-medium \">Product Details</p>\n </div>\n\n <div class=\"cols-2 mn-b-medium w-100 gap-small\">\n <div\n v-if=\"product.attributes && product.attributes.length > 0\"\n v-for=\"attributes in product.attributes\"\n class=\"w-100 pd-small radius-small bg-light product-attributes\"\n >\n <p class=\"mn-b-thin t-demi\">{{ attributes.name }}</p>\n <p>{{ attributes.value }}</p>\n </div>\n </div>\n\n <div class=\"mn-b-small flex-nowrap flex flex-v-center\">\n <IconGroups class=\"mn-r-micro i-medium\"/>\n <p class=\"t-medium \">Provided by</p>\n </div>\n\n <CardOrganization \n v-if=\"product.owner\"\n :organization=\"product.owner.target\"\n :showRating=\"true\"\n :showFollowers=\"false\"\n :showProducts=\"false\"\n class=\"bg-light w-100 o-hidden radius-medium pd-small \"\n />\n </div>\n </div>\n \n <ProductsRecommended \n v-if=\"product.recommended.length > 0\"\n :products=\"product.recommended\"\n class=\" mn-t-big h-max pos-relative\"\n />\n\n <div class=\"h-max mn-t-big pos-relative\">\n <h3 class=\"pd-b-small\">Most Popular</h3>\n <ProductsPopular class=\"mn-r-big-negative mn-l-big-negative\"/>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { computed, ref, onMounted, getCurrentInstance } from 'vue'\nimport { useRoute, useRouter } from 'vue-router'\nimport { useI18n } from 'vue-i18n'\nimport { useGlobalMixins } from \"@martyrs/src/modules/globals/views/mixins/mixins.js\"\n\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\nimport * as globals from '@martyrs/src/modules/globals/views/store/globals.js'\nimport * as products from '@martyrs/src/modules/products/store/products.js'\nimport * as categories from '@martyrs/src/modules/products/store/categories.js'\nimport * as shopcart from '@martyrs/src/modules/orders/store/shopcart.js'\n\nimport Button from '@martyrs/src/components/Button/Button.vue'\nimport Popup from '@martyrs/src/components/Popup/Popup.vue'\nimport Tab from '@martyrs/src/components/Tab/Tab.vue'\nimport Calendar from '@martyrs/src/components/DatePicker/Calendar.vue'\n\nimport IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue'\nimport IconInfo from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\n\nimport IconShopcartAdd from '@martyrs/src/modules/icons/actions/IconShopcartAdd.vue'\n\nimport IconList from '@martyrs/src/modules/icons/entities/IconList.vue';\nimport IconGroups from '@martyrs/src/modules/icons/entities/IconGroups.vue'\n\nimport ProductImages from '@martyrs/src/modules/products/components/blocks/ProductImages.vue'\nimport ProductConfigurator from '@martyrs/src/modules/products/components/sections/ProductConfigurator.vue'\nimport ProductsRecommended from '@martyrs/src/modules/products/components/sections/ProductsRecommended.vue';\nimport ProductsPopular from '@martyrs/src/modules/products/components/sections/ProductsPopular.vue'\n\nimport CardOrganization from '@martyrs/src/modules/organizations/components/blocks/CardOrganization.vue'\n\nconst route = useRoute()\nconst router = useRouter()\nconst { proxy } = getCurrentInstance()\nconst { returnCurrency, hasAccess } = useGlobalMixins()\n\nconst product = computed(() => products.state.current)\nconst productImages = computed(() => products.state.current.images || [])\n\n// Состояние для отслеживания текущих изображений (товара или варианта)\nconst currentImages = ref([])\n// Выбранный вариант товара\nconst selectedVariant = ref(null)\n\nconst text = {\n en: { addtoorder: 'Add to Cart', fastorder: 'Fast Order', description: 'Description' },\n ru: { addtoorder: 'Добавить в корзину', fastorder: 'Быстрый заказ', description: 'Описание' }\n}\n\nconst { t } = useI18n({ messages: text })\n\nconst emits = defineEmits(['page-loading', 'page-loaded']);\n\nconst recommendation = defineProps({\n recommendation: {\n type: Boolean,\n default: false\n }\n})\n \nproducts.state.current = null\n\nonMounted(async () => {\n emits('page-loading');\n \n await products.actions.read({ _id: route.params.product, lookup: ['recommended'] })\n \n // Инициализируем текущие изображения изображениями товара\n currentImages.value = [...productImages.value]\n\n if (typeof gtag === 'function') {\n gtag('event', 'view_item', {\n currency: returnCurrency(),\n value: product.value.price || 0,\n items: [{\n item_id: product.value._id,\n item_name: product.value.name,\n price: product.value.price || 0,\n item_category: product.value.category || '',\n item_brand: product.value.owner?.target?.profile.name || ''\n }]\n });\n }\n\n emits('page-loaded');\n})\n\n// Обработчик выбора варианта\nfunction handleVariantSelected(variant) {\n selectedVariant.value = variant\n}\n\n// Обработчик обновления изображений при выборе варианта\nfunction handleUpdateImages(images) {\n if (images && images.length > 0) {\n currentImages.value = [...images]\n } else {\n // Если у варианта нет изображений, возвращаем изображения товара\n currentImages.value = [...productImages.value]\n }\n}\n\n// Обработчик добавления варианта в корзину\nasync function handleAddVariantToCart(variantItem) {\n try {\n if (!shopcart.state.organization) {\n shopcart.state.organization = product.value.owner.target._id\n }\n \n // Проверка на товар с арендой\n if (product.value.listing === 'rent') {\n const selectedDates = await proxy.$dateSelector({\n product: product.value\n });\n \n if (!selectedDates) throw new Error('Date selection cancelled')\n \n variantItem.selectedDates = selectedDates\n }\n \n // Проверка на разные организации в корзине\n if (shopcart.state.organization !== product.value.owner.target._id) {\n const result = await proxy.$alert({\n title: 'Replace items in your cart?',\n message: `Your cart has items from another vendor. If you continue, we'll clear it so you can order from this one instead.`,\n actions: [\n { label: 'Cancel', value: false },\n { label: 'Replace', value: true }\n ]\n })\n\n if (!result) throw new Error('Cart replacement cancelled')\n\n shopcart.state.positions = []\n shopcart.state.organization = product.value.owner.target._id\n }\n\n // Аналитика: регистрируем добавление в корзину\n if (typeof gtag === 'function') {\n gtag('event', 'add_to_cart', {\n currency: returnCurrency(),\n value: variantItem.price || 0,\n items: [{\n item_id: variantItem._id,\n item_name: variantItem.name,\n price: variantItem.price || 0,\n quantity: 1,\n item_category: product.value.category || '',\n item_brand: product.value.owner?.target?.profile?.name || ''\n }]\n });\n }\n \n // Добавляем вариант в корзину\n await shopcart.actions.addVariantToCart(variantItem, product.value.owner.target._id)\n return true\n } catch (error) {\n console.error('Error while adding variant to cart:', error)\n throw error\n }\n}\n\n// Оригинальная функция добавления товара в корзину (для товаров без вариантов)\nasync function addToCart(product) {\n let selectedDates = null\n\n try {\n if (!shopcart.state.organization) {\n shopcart.state.organization = product.owner.target._id\n }\n if (product.listing === 'rent') {\n selectedDates = await proxy.$dateSelector({\n product: product.value\n });\n \n if (!selectedDates) throw new Error('Date selection cancelled')\n \n }\n // Если организация товара отличается от текущей в корзине\n if (shopcart.state.organization !== product.owner.target._id) {\n const result = await proxy.$alert({\n title: 'Replace items in your cart?',\n message: `Your cart has items from another vendor. If you continue, we'll clear it so you can order from this one instead.`,\n actions: [\n { label: 'Cancel', value: false },\n { label: 'Replace', value: true }\n ]\n })\n\n if (!result) throw new Error('Cart replacement cancelled')\n\n shopcart.state.positions = []\n shopcart.state.organization = product.owner.target._id\n }\n\n if (typeof gtag === 'function') {\n gtag('event', 'add_to_cart', {\n currency: returnCurrency(),\n value: product.price || 0,\n items: [{\n item_id: product._id,\n item_name: product.name,\n price: product.price || 0,\n quantity: 1,\n item_category: product.category || '',\n item_brand: product.owner?.target?.profile?.name || ''\n }]\n });\n }\n \n await shopcart.actions.addProductToCart(product, product.owner.target._id, selectedDates)\n return true\n } catch (error) {\n console.error('Error while adding product to cart:', error)\n throw error\n }\n}\n</script>"],"names":["products.state","products.actions","shopcart.state","shopcart.actions"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Product.vue.js","sources":["../../../../../../../src/modules/products/components/pages/Product.vue"],"sourcesContent":["<template>\n <div v-if=\"products.state.current\" class=\"w-100 mobile:pd-thin pd-small bg-white\">\n <div class=\"cols-2 mobile:cols-1 w-100 gap-medium\">\n\n <ProductImages\n :images=\"currentImages\"\n :product=\"product\"\n />\n\n <div class=\"pos-relative w-100 h-100 flex-column flex-h-center flex\">\n <!-- Edit Button -->\n <router-link\n v-if=\"hasAccess(route.params._id, 'products', 'edit', auth.state.accesses, auth.state.access.roles)\"\n :to=\"\n route.params._id \n ? { name: 'Organization_ProductEdit', params: { id: route.params._id, product: product._id } } \n : { name: 'ProductEdit', params: { product: product._id } }\n \"\n class=\"\n z-index-2\n cursor-pointer \n pos-absolute pos-t-zero pos-r-zero\n radius-extra pd-thin bg-second\n \"\n >\n <IconEdit\n class=\"i-regular\"\n classes=\"fill-white\"\n />\n </router-link>\n\n <h2 class=\"w-100 h1-product mn-b-medium\">{{ product.name }}</h2>\n\n <p v-if=\"product.description\" class=\"w-100 mn-b-medium\" style=\"white-space: pre-line;\">\n {{ product.translations?.length > 1 ? t('description') : product.description }}\n </p>\n \n <!-- Компонент выбора вариантов товара -->\n <ProductConfigurator\n v-if=\"product.variants?.length > 0\"\n :product-variants=\"product.variants\"\n :product-id=\"product._id\"\n :product-name=\"product.name\"\n :discounts=\"product.discounts\"\n :regularPrice=\"100\"\n @variant-selected=\"handleVariantSelected\"\n @add-to-cart=\"handleAddVariantToCart\"\n @update-images=\"handleUpdateImages\"\n />\n\n <div v-if=\"product.included\" class=\"mn-b-small flex-nowrap flex flex-v-center\">\n <IconList class=\"mn-r-micro i-medium\"/>\n <p class=\"t-medium \">Included</p>\n </div>\n\n <div v-if=\"product.included\" class=\"cols-1 mn-b-medium w-100 \">\n <div\n class=\"w-100 pd-small radius-small flex flex-column gap-small bg-light\"\n >\n <p class=\"t-medium\" style=\"white-space: pre-line;\" v-html=\"product.included\"></p>\n </div>\n </div>\n\n\n <div class=\"mn-b-small flex-nowrap flex flex-v-center\">\n <IconInfo class=\"mn-r-micro i-medium\"/>\n <p class=\"t-medium \">Product Details</p>\n </div>\n\n <div class=\"cols-2 mn-b-medium w-100 gap-small\">\n <div\n v-if=\"product.attributes && product.attributes.length > 0\"\n v-for=\"attributes in product.attributes\"\n class=\"w-100 pd-small radius-small bg-light product-attributes\"\n >\n <p class=\"mn-b-thin t-demi\">{{ attributes.name }}</p>\n <p>{{ attributes.value }}</p>\n </div>\n </div>\n\n <div class=\"mn-b-small flex-nowrap flex flex-v-center\">\n <IconGroups class=\"mn-r-micro i-medium\"/>\n <p class=\"t-medium \">Provided by</p>\n </div>\n\n <CardOrganization \n v-if=\"product.owner\"\n :organization=\"product.owner.target\"\n :showRating=\"true\"\n :showFollowers=\"false\"\n :showProducts=\"false\"\n class=\"bg-light w-100 o-hidden radius-medium pd-small \"\n />\n </div>\n </div>\n \n <ProductsRecommended \n v-if=\"product.recommended.length > 0\"\n :products=\"product.recommended\"\n class=\" mn-t-big h-max pos-relative\"\n />\n\n <div class=\"h-max mn-t-big pos-relative\">\n <h3 class=\"pd-b-small\">Most Popular</h3>\n <ProductsPopular class=\"mn-r-big-negative mn-l-big-negative\"/>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { computed, ref, onMounted, getCurrentInstance } from 'vue'\nimport { useRoute, useRouter } from 'vue-router'\nimport { useI18n } from 'vue-i18n'\nimport { useGlobalMixins } from \"@martyrs/src/modules/globals/views/mixins/mixins.js\"\n\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\nimport * as globals from '@martyrs/src/modules/globals/views/store/globals.js'\nimport * as products from '@martyrs/src/modules/products/store/products.js'\nimport * as categories from '@martyrs/src/modules/products/store/categories.js'\nimport * as shopcart from '@martyrs/src/modules/orders/store/shopcart.js'\n\nimport Button from '@martyrs/src/components/Button/Button.vue'\nimport Popup from '@martyrs/src/components/Popup/Popup.vue'\nimport Tab from '@martyrs/src/components/Tab/Tab.vue'\nimport Calendar from '@martyrs/src/components/Calendar/Calendar.vue'\n\nimport IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue'\nimport IconInfo from '@martyrs/src/modules/icons/navigation/IconInfo.vue'\n\nimport IconShopcartAdd from '@martyrs/src/modules/icons/actions/IconShopcartAdd.vue'\n\nimport IconList from '@martyrs/src/modules/icons/entities/IconList.vue';\nimport IconGroups from '@martyrs/src/modules/icons/entities/IconGroups.vue'\n\nimport ProductImages from '@martyrs/src/modules/products/components/blocks/ProductImages.vue'\nimport ProductConfigurator from '@martyrs/src/modules/products/components/sections/ProductConfigurator.vue'\nimport ProductsRecommended from '@martyrs/src/modules/products/components/sections/ProductsRecommended.vue';\nimport ProductsPopular from '@martyrs/src/modules/products/components/sections/ProductsPopular.vue'\n\nimport CardOrganization from '@martyrs/src/modules/organizations/components/blocks/CardOrganization.vue'\n\nconst route = useRoute()\nconst router = useRouter()\nconst { proxy } = getCurrentInstance()\nconst { returnCurrency, hasAccess } = useGlobalMixins()\n\nconst product = computed(() => products.state.current)\nconst productImages = computed(() => products.state.current.images || [])\n\n// Состояние для отслеживания текущих изображений (товара или варианта)\nconst currentImages = ref([])\n// Выбранный вариант товара\nconst selectedVariant = ref(null)\n\nconst text = {\n en: { addtoorder: 'Add to Cart', fastorder: 'Fast Order', description: 'Description' },\n ru: { addtoorder: 'Добавить в корзину', fastorder: 'Быстрый заказ', description: 'Описание' }\n}\n\nconst { t } = useI18n({ messages: text })\n\nconst emits = defineEmits(['page-loading', 'page-loaded']);\n\nconst recommendation = defineProps({\n recommendation: {\n type: Boolean,\n default: false\n }\n})\n \nproducts.state.current = null\n\nonMounted(async () => {\n emits('page-loading');\n \n await products.actions.read({ _id: route.params.product, lookup: ['recommended'] })\n \n // Инициализируем текущие изображения изображениями товара\n currentImages.value = [...productImages.value]\n\n if (typeof gtag === 'function') {\n gtag('event', 'view_item', {\n currency: returnCurrency(),\n value: product.value.price || 0,\n items: [{\n item_id: product.value._id,\n item_name: product.value.name,\n price: product.value.price || 0,\n item_category: product.value.category || '',\n item_brand: product.value.owner?.target?.profile.name || ''\n }]\n });\n }\n\n emits('page-loaded');\n})\n\n// Обработчик выбора варианта\nfunction handleVariantSelected(variant) {\n selectedVariant.value = variant\n}\n\n// Обработчик обновления изображений при выборе варианта\nfunction handleUpdateImages(images) {\n if (images && images.length > 0) {\n currentImages.value = [...images]\n } else {\n // Если у варианта нет изображений, возвращаем изображения товара\n currentImages.value = [...productImages.value]\n }\n}\n\n// Обработчик добавления варианта в корзину\nasync function handleAddVariantToCart(variantItem) {\n try {\n if (!shopcart.state.organization) {\n shopcart.state.organization = product.value.owner.target._id\n }\n \n // Проверка на товар с арендой\n if (product.value.listing === 'rent') {\n const selectedDates = await proxy.$dateSelector({\n product: product.value\n });\n \n if (!selectedDates) throw new Error('Date selection cancelled')\n \n variantItem.selectedDates = selectedDates\n }\n \n // Проверка на разные организации в корзине\n if (shopcart.state.organization !== product.value.owner.target._id) {\n const result = await proxy.$alert({\n title: 'Replace items in your cart?',\n message: `Your cart has items from another vendor. If you continue, we'll clear it so you can order from this one instead.`,\n actions: [\n { label: 'Cancel', value: false },\n { label: 'Replace', value: true }\n ]\n })\n\n if (!result) throw new Error('Cart replacement cancelled')\n\n shopcart.state.positions = []\n shopcart.state.organization = product.value.owner.target._id\n }\n\n // Аналитика: регистрируем добавление в корзину\n if (typeof gtag === 'function') {\n gtag('event', 'add_to_cart', {\n currency: returnCurrency(),\n value: variantItem.price || 0,\n items: [{\n item_id: variantItem._id,\n item_name: variantItem.name,\n price: variantItem.price || 0,\n quantity: 1,\n item_category: product.value.category || '',\n item_brand: product.value.owner?.target?.profile?.name || ''\n }]\n });\n }\n \n // Добавляем вариант в корзину\n await shopcart.actions.addVariantToCart(variantItem, product.value.owner.target._id)\n return true\n } catch (error) {\n console.error('Error while adding variant to cart:', error)\n throw error\n }\n}\n\n// Оригинальная функция добавления товара в корзину (для товаров без вариантов)\nasync function addToCart(product) {\n let selectedDates = null\n\n try {\n if (!shopcart.state.organization) {\n shopcart.state.organization = product.owner.target._id\n }\n if (product.listing === 'rent') {\n selectedDates = await proxy.$dateSelector({\n product: product.value\n });\n \n if (!selectedDates) throw new Error('Date selection cancelled')\n \n }\n // Если организация товара отличается от текущей в корзине\n if (shopcart.state.organization !== product.owner.target._id) {\n const result = await proxy.$alert({\n title: 'Replace items in your cart?',\n message: `Your cart has items from another vendor. If you continue, we'll clear it so you can order from this one instead.`,\n actions: [\n { label: 'Cancel', value: false },\n { label: 'Replace', value: true }\n ]\n })\n\n if (!result) throw new Error('Cart replacement cancelled')\n\n shopcart.state.positions = []\n shopcart.state.organization = product.owner.target._id\n }\n\n if (typeof gtag === 'function') {\n gtag('event', 'add_to_cart', {\n currency: returnCurrency(),\n value: product.price || 0,\n items: [{\n item_id: product._id,\n item_name: product.name,\n price: product.price || 0,\n quantity: 1,\n item_category: product.category || '',\n item_brand: product.owner?.target?.profile?.name || ''\n }]\n });\n }\n \n await shopcart.actions.addProductToCart(product, product.owner.target._id, selectedDates)\n return true\n } catch (error) {\n console.error('Error while adding product to cart:', error)\n throw error\n }\n}\n</script>"],"names":["products.state","products.actions","shopcart.state","shopcart.actions"],"mappings":"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"}
|
|
@@ -4,9 +4,9 @@ const vue = require("vue");
|
|
|
4
4
|
const vueRouter = require("vue-router");
|
|
5
5
|
const Block = require("../../../../components/Block/Block.vue.cjs");
|
|
6
6
|
const Tab = require("../../../../components/Tab/Tab.vue2.cjs");
|
|
7
|
-
const Field = require("../../../../components/Field/Field.
|
|
7
|
+
const Field = require("../../../../components/Field/Field.vue2.cjs");
|
|
8
8
|
const Select = require("../../../../components/Select/Select.vue.cjs");
|
|
9
|
-
const Button = require("../../../../components/Button/Button.
|
|
9
|
+
const Button = require("../../../../components/Button/Button.vue.cjs");
|
|
10
10
|
const EditImages = require("../../../../components/EditImages/EditImages.vue2.cjs");
|
|
11
11
|
const BlockMultiselect = require("../../../globals/views/components/blocks/BlockMultiselect.vue.cjs");
|
|
12
12
|
const IconCross = require("../../../icons/navigation/IconCross.vue.cjs");
|