@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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Media.vue.cjs","sources":["../../../../../src/components/Media/Media.vue"],"sourcesContent":["<template>\n <div class=\"media-container\">\n <!-- Изображение с ленивой загрузкой и placeholder -->\n <img\n v-if=\"isImage\"\n :src=\"isIntersecting ? url : ''\"\n :data-src=\"url\"\n :alt=\"options?.alt || 'Image'\"\n class=\"media-item\"\n :class=\"{ 'loading': !isLoaded }\"\n loading=\"lazy\"\n @load=\"handleLoad\"\n v-bind=\"options\"\n ref=\"imageElement\"\n />\n \n <!-- Видео с предварительной загрузкой -->\n <video\n v-else-if=\"isVideo\"\n ref=\"videoElement\"\n :class=\"{ 'loading': !isLoaded }\"\n class=\"media-item\"\n :controls=\"!options?.hideControls\"\n :loop=\"options?.loop !== false\"\n :muted=\"options?.muted !== false\"\n :autoplay=\"options?.autoplay\"\n :playsinline=\"options?.playsinline !== false\"\n :preload=\"options?.preload || 'metadata'\"\n @loadeddata=\"handleLoad\"\n v-bind=\"options\"\n >\n <source :src=\"url\" :type=\"videoType\">\n </video>\n \n <!-- Плейсхолдер во время загрузки -->\n <div v-if=\"!isLoaded\" class=\"media-placeholder\">\n Loading...\n </div>\n \n <!-- Сообщение об ошибке -->\n <div v-if=\"error\" class=\"media-error\">\n {{ error }}\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, onMounted, computed, onUnmounted } from 'vue'\n\nconst props = defineProps({\n url: {\n type: String,\n required: true\n },\n options: {\n type: Object,\n default: () => ({\n muted: true,\n loop: true,\n playsinline: true,\n preload: 'metadata' // 'none' | 'metadata' | 'auto'\n })\n }\n})\n\n// Refs\nconst videoElement = ref(null)\nconst imageElement = ref(null)\nconst isLoaded = ref(false)\nconst error = ref(null)\nconst isIntersecting = ref(false)\nlet observer = null\nlet isPlaying = false\n\n// Определяем тип медиа\nconst fileExtension = computed(() => {\n return props.url?.split('.')?.pop()?.toLowerCase()\n})\n\nconst isImage = computed(() => {\n const imageExtensions = ['jpg', 'jpeg', 'png', 'gif', 'webp', 'svg', 'avif']\n return imageExtensions.includes(fileExtension.value)\n})\n\nconst isVideo = computed(() => {\n const videoExtensions = ['mp4', 'webm', 'ogg']\n return videoExtensions.includes(fileExtension.value)\n})\n\n// Определяем MIME-тип для видео\nconst videoType = computed(() => {\n const types = {\n 'mp4': 'video/mp4',\n 'webm': 'video/webm',\n 'ogg': 'video/ogg'\n }\n return types[fileExtension.value] || ''\n})\n\n// Обработчик загрузки медиа\nfunction handleLoad() {\n isLoaded.value = true\n}\n\n// Обработка ошибок\nfunction handleError(err) {\n error.value = `Ошибка загрузки медиа: ${err.message}`\n isLoaded.value = false\n}\n\n// Управление видео с обработкой ошибок\nasync function playVideo() {\n if (!videoElement.value) return\n \n try {\n if (videoElement.value.paused && !isPlaying) {\n await videoElement.value.play()\n isPlaying = true\n }\n } catch (err) {\n handleError(err)\n }\n}\n\nfunction checkAndPlayVideo() {\n if (!videoElement.value) return\n \n videoElement.value.onplaying = () => {\n isPlaying = true\n }\n \n videoElement.value.onpause = () => {\n isPlaying = false\n }\n \n videoElement.value.onerror = handleError\n}\n\n// Intersection Observer для ленивой загрузки\nfunction setupIntersectionObserver() {\n const options = {\n root: null,\n rootMargin: '50px',\n threshold: 0.1\n }\n \n observer = new IntersectionObserver((entries) => {\n entries.forEach(entry => {\n isIntersecting.value = entry.isIntersecting\n \n if (entry.isIntersecting) {\n if (isVideo.value && props.options?.autoplay) {\n playVideo()\n }\n // Отключаем observer после первой загрузки\n observer.disconnect()\n }\n })\n }, options)\n \n // Наблюдаем за элементом в зависимости от типа медиа\n const element = isImage.value ? imageElement.value : videoElement.value\n if (element) {\n observer.observe(element)\n }\n}\n\n// Lifecycle hooks\nonMounted(() => {\n setupIntersectionObserver()\n})\n\nonUnmounted(() => {\n if (observer) {\n observer.disconnect()\n }\n})\n</script>\n\n<style scoped>\n.media-container {\n}\n\n.media-item {\n all: inherit;\n opacity: 1;\n transition: opacity 0.3s ease;\n}\n\n.media-item.loading {\n opacity: 0;\n}\n\n.media-placeholder {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: #f5f5f5;\n}\n\n.media-error {\n color: #ff4444;\n padding: 1rem;\n text-align: center;\n}\n</style>"],"names":["ref","computed","onMounted","onUnmounted"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiDA,UAAM,QAAQ;AAiBd,UAAM,eAAeA,IAAG,IAAC,IAAI;AAC7B,UAAM,eAAeA,IAAG,IAAC,IAAI;AAC7B,UAAM,WAAWA,IAAG,IAAC,KAAK;AAC1B,UAAM,QAAQA,IAAG,IAAC,IAAI;AACtB,UAAM,iBAAiBA,IAAG,IAAC,KAAK;AAChC,QAAI,WAAW;AACf,QAAI,YAAY;AAGhB,UAAM,gBAAgBC,IAAQ,SAAC,MAAM;;AACnC,cAAO,uBAAM,QAAN,mBAAW,MAAM,SAAjB,mBAAuB,UAAvB,mBAA8B;AAAA,IACvC,CAAC;AAED,UAAM,UAAUA,IAAQ,SAAC,MAAM;AAC7B,YAAM,kBAAkB,CAAC,OAAO,QAAQ,OAAO,OAAO,QAAQ,OAAO,MAAM;AAC3E,aAAO,gBAAgB,SAAS,cAAc,KAAK;AAAA,IACrD,CAAC;AAED,UAAM,UAAUA,IAAQ,SAAC,MAAM;AAC7B,YAAM,kBAAkB,CAAC,OAAO,QAAQ,KAAK;AAC7C,aAAO,gBAAgB,SAAS,cAAc,KAAK;AAAA,IACrD,CAAC;AAGD,UAAM,YAAYA,IAAQ,SAAC,MAAM;AAC/B,YAAM,QAAQ;AAAA,QACZ,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,OAAO;AAAA,MACX;AACE,aAAO,MAAM,cAAc,KAAK,KAAK;AAAA,IACvC,CAAC;AAGD,aAAS,aAAa;AACpB,eAAS,QAAQ;AAAA,IACnB;AAGA,aAAS,YAAY,KAAK;AACxB,YAAM,QAAQ,0BAA0B,IAAI,OAAO;AACnD,eAAS,QAAQ;AAAA,IACnB;AAGA,mBAAe,YAAY;AACzB,UAAI,CAAC,aAAa,MAAO;AAEzB,UAAI;AACF,YAAI,aAAa,MAAM,UAAU,CAAC,WAAW;AAC3C,gBAAM,aAAa,MAAM,KAAI;AAC7B,sBAAY;AAAA,QAClB;AAAA,MACG,SAAQ,KAAK;AACZ,oBAAY,GAAG;AAAA,MACnB;AAAA,IACA;AAiBA,aAAS,4BAA4B;AACnC,YAAM,UAAU;AAAA,QACd,MAAM;AAAA,QACN,YAAY;AAAA,QACZ,WAAW;AAAA,MACf;AAEE,iBAAW,IAAI,qBAAqB,CAAC,YAAY;AAC/C,gBAAQ,QAAQ,WAAS;;AACvB,yBAAe,QAAQ,MAAM;AAE7B,cAAI,MAAM,gBAAgB;AACxB,gBAAI,QAAQ,WAAS,WAAM,YAAN,mBAAe,WAAU;AAC5C,wBAAS;AAAA,YACnB;AAEQ,qBAAS,WAAU;AAAA,UAC3B;AAAA,QACK,CAAA;AAAA,MACL,GAAK,OAAO;AAGV,YAAM,UAAU,QAAQ,QAAQ,aAAa,QAAQ,aAAa;AAClE,UAAI,SAAS;AACX,iBAAS,QAAQ,OAAO;AAAA,MAC5B;AAAA,IACA;AAGAC,QAAAA,UAAU,MAAM;AACd,gCAAyB;AAAA,IAC3B,CAAC;AAEDC,QAAAA,YAAY,MAAM;AAChB,UAAI,UAAU;AACZ,iBAAS,WAAU;AAAA,MACvB;AAAA,IACA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"Media.vue.cjs","sources":["../../../../../src/components/Media/Media.vue"],"sourcesContent":["<template>\n <div class=\"media-container pos-relative\">\n <!-- Изображение с ленивой загрузкой и placeholder -->\n <img\n v-if=\"isImage\"\n :src=\"isIntersecting ? url : ''\"\n :data-src=\"url\"\n :alt=\"options?.alt || 'Image'\"\n class=\"media-item\"\n :class=\"{ 'loading': !isLoaded }\"\n loading=\"lazy\"\n @load=\"handleLoad\"\n v-bind=\"options\"\n ref=\"imageElement\"\n />\n \n <!-- Видео с предварительной загрузкой -->\n <video\n v-else-if=\"isVideo\"\n ref=\"videoElement\"\n :class=\"{ 'loading': !isLoaded }\"\n class=\"media-item\"\n :controls=\"!options?.hideControls\"\n :loop=\"options?.loop !== false\"\n :muted=\"options?.muted !== false\"\n :autoplay=\"options?.autoplay\"\n :playsinline=\"options?.playsinline !== false\"\n :preload=\"options?.preload || 'metadata'\"\n @loadeddata=\"handleLoad\"\n v-bind=\"options\"\n >\n <source :src=\"url\" :type=\"videoType\">\n </video>\n \n <!-- Плейсхолдер во время загрузки -->\n <div v-if=\"!isLoaded\" class=\"media-placeholder\">\n Loading...\n </div>\n \n <!-- Сообщение об ошибке -->\n <div v-if=\"error\" class=\"media-error\">\n {{ error }}\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, onMounted, computed, onUnmounted } from 'vue'\n\nconst props = defineProps({\n url: {\n type: String,\n required: true\n },\n options: {\n type: Object,\n default: () => ({\n muted: true,\n loop: true,\n playsinline: true,\n preload: 'metadata' // 'none' | 'metadata' | 'auto'\n })\n }\n})\n\n// Refs\nconst videoElement = ref(null)\nconst imageElement = ref(null)\nconst isLoaded = ref(false)\nconst error = ref(null)\nconst isIntersecting = ref(false)\nlet observer = null\nlet isPlaying = false\n\n// Определяем тип медиа\nconst fileExtension = computed(() => {\n return props.url?.split('.')?.pop()?.toLowerCase()\n})\n\nconst isImage = computed(() => {\n const imageExtensions = ['jpg', 'jpeg', 'png', 'gif', 'webp', 'svg', 'avif']\n return imageExtensions.includes(fileExtension.value)\n})\n\nconst isVideo = computed(() => {\n const videoExtensions = ['mp4', 'webm', 'ogg']\n return videoExtensions.includes(fileExtension.value)\n})\n\n// Определяем MIME-тип для видео\nconst videoType = computed(() => {\n const types = {\n 'mp4': 'video/mp4',\n 'webm': 'video/webm',\n 'ogg': 'video/ogg'\n }\n return types[fileExtension.value] || ''\n})\n\n// Обработчик загрузки медиа\nfunction handleLoad() {\n isLoaded.value = true\n}\n\n// Обработка ошибок\nfunction handleError(err) {\n error.value = `Ошибка загрузки медиа: ${err.message}`\n isLoaded.value = false\n}\n\n// Управление видео с обработкой ошибок\nasync function playVideo() {\n if (!videoElement.value) return\n \n try {\n if (videoElement.value.paused && !isPlaying) {\n await videoElement.value.play()\n isPlaying = true\n }\n } catch (err) {\n handleError(err)\n }\n}\n\nfunction checkAndPlayVideo() {\n if (!videoElement.value) return\n \n videoElement.value.onplaying = () => {\n isPlaying = true\n }\n \n videoElement.value.onpause = () => {\n isPlaying = false\n }\n \n videoElement.value.onerror = handleError\n}\n\n// Intersection Observer для ленивой загрузки\nfunction setupIntersectionObserver() {\n const options = {\n root: null,\n rootMargin: '50px',\n threshold: 0.1\n }\n \n observer = new IntersectionObserver((entries) => {\n entries.forEach(entry => {\n isIntersecting.value = entry.isIntersecting\n \n if (entry.isIntersecting) {\n if (isVideo.value && props.options?.autoplay) {\n playVideo()\n }\n // Отключаем observer после первой загрузки\n observer.disconnect()\n }\n })\n }, options)\n \n // Наблюдаем за элементом в зависимости от типа медиа\n const element = isImage.value ? imageElement.value : videoElement.value\n if (element) {\n observer.observe(element)\n }\n}\n\n// Lifecycle hooks\nonMounted(() => {\n setupIntersectionObserver()\n})\n\nonUnmounted(() => {\n if (observer) {\n observer.disconnect()\n }\n})\n</script>\n\n<style scoped>\n.media-container {\n}\n\n.media-item {\n all: inherit;\n opacity: 1;\n transition: opacity 0.3s ease;\n}\n\n.media-item.loading {\n opacity: 0;\n}\n\n.media-placeholder {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: #f5f5f5;\n}\n\n.media-error {\n color: #ff4444;\n padding: 1rem;\n text-align: center;\n}\n</style>"],"names":["ref","computed","onMounted","onUnmounted"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiDA,UAAM,QAAQ;AAiBd,UAAM,eAAeA,IAAG,IAAC,IAAI;AAC7B,UAAM,eAAeA,IAAG,IAAC,IAAI;AAC7B,UAAM,WAAWA,IAAG,IAAC,KAAK;AAC1B,UAAM,QAAQA,IAAG,IAAC,IAAI;AACtB,UAAM,iBAAiBA,IAAG,IAAC,KAAK;AAChC,QAAI,WAAW;AACf,QAAI,YAAY;AAGhB,UAAM,gBAAgBC,IAAQ,SAAC,MAAM;;AACnC,cAAO,uBAAM,QAAN,mBAAW,MAAM,SAAjB,mBAAuB,UAAvB,mBAA8B;AAAA,IACvC,CAAC;AAED,UAAM,UAAUA,IAAQ,SAAC,MAAM;AAC7B,YAAM,kBAAkB,CAAC,OAAO,QAAQ,OAAO,OAAO,QAAQ,OAAO,MAAM;AAC3E,aAAO,gBAAgB,SAAS,cAAc,KAAK;AAAA,IACrD,CAAC;AAED,UAAM,UAAUA,IAAQ,SAAC,MAAM;AAC7B,YAAM,kBAAkB,CAAC,OAAO,QAAQ,KAAK;AAC7C,aAAO,gBAAgB,SAAS,cAAc,KAAK;AAAA,IACrD,CAAC;AAGD,UAAM,YAAYA,IAAQ,SAAC,MAAM;AAC/B,YAAM,QAAQ;AAAA,QACZ,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,OAAO;AAAA,MACX;AACE,aAAO,MAAM,cAAc,KAAK,KAAK;AAAA,IACvC,CAAC;AAGD,aAAS,aAAa;AACpB,eAAS,QAAQ;AAAA,IACnB;AAGA,aAAS,YAAY,KAAK;AACxB,YAAM,QAAQ,0BAA0B,IAAI,OAAO;AACnD,eAAS,QAAQ;AAAA,IACnB;AAGA,mBAAe,YAAY;AACzB,UAAI,CAAC,aAAa,MAAO;AAEzB,UAAI;AACF,YAAI,aAAa,MAAM,UAAU,CAAC,WAAW;AAC3C,gBAAM,aAAa,MAAM,KAAI;AAC7B,sBAAY;AAAA,QAClB;AAAA,MACG,SAAQ,KAAK;AACZ,oBAAY,GAAG;AAAA,MACnB;AAAA,IACA;AAiBA,aAAS,4BAA4B;AACnC,YAAM,UAAU;AAAA,QACd,MAAM;AAAA,QACN,YAAY;AAAA,QACZ,WAAW;AAAA,MACf;AAEE,iBAAW,IAAI,qBAAqB,CAAC,YAAY;AAC/C,gBAAQ,QAAQ,WAAS;;AACvB,yBAAe,QAAQ,MAAM;AAE7B,cAAI,MAAM,gBAAgB;AACxB,gBAAI,QAAQ,WAAS,WAAM,YAAN,mBAAe,WAAU;AAC5C,wBAAS;AAAA,YACnB;AAEQ,qBAAS,WAAU;AAAA,UAC3B;AAAA,QACK,CAAA;AAAA,MACL,GAAK,OAAO;AAGV,YAAM,UAAU,QAAQ,QAAQ,aAAa,QAAQ,aAAa;AAClE,UAAI,SAAS;AACX,iBAAS,QAAQ,OAAO;AAAA,MAC5B;AAAA,IACA;AAGAC,QAAAA,UAAU,MAAM;AACd,gCAAyB;AAAA,IAC3B,CAAC;AAEDC,QAAAA,YAAY,MAAM;AAChB,UAAI,UAAU;AACZ,iBAAS,WAAU;AAAA,MACvB;AAAA,IACA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ref, computed, onMounted, onUnmounted, createElementBlock, openBlock, createCommentVNode, mergeProps, createElementVNode, toDisplayString } from "vue";
|
|
2
2
|
import _export_sfc from "../../../../_virtual/_plugin-vue_export-helper.js";
|
|
3
|
-
const _hoisted_1 = { class: "media-container" };
|
|
3
|
+
const _hoisted_1 = { class: "media-container pos-relative" };
|
|
4
4
|
const _hoisted_2 = ["src", "data-src", "alt"];
|
|
5
5
|
const _hoisted_3 = ["controls", "loop", "muted", "autoplay", "playsinline", "preload"];
|
|
6
6
|
const _hoisted_4 = ["src", "type"];
|
|
@@ -146,7 +146,7 @@ const _sfc_main = {
|
|
|
146
146
|
};
|
|
147
147
|
}
|
|
148
148
|
};
|
|
149
|
-
const Media = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
149
|
+
const Media = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-b5d5974f"]]);
|
|
150
150
|
export {
|
|
151
151
|
Media as default
|
|
152
152
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Media.vue.js","sources":["../../../../../src/components/Media/Media.vue"],"sourcesContent":["<template>\n <div class=\"media-container\">\n <!-- Изображение с ленивой загрузкой и placeholder -->\n <img\n v-if=\"isImage\"\n :src=\"isIntersecting ? url : ''\"\n :data-src=\"url\"\n :alt=\"options?.alt || 'Image'\"\n class=\"media-item\"\n :class=\"{ 'loading': !isLoaded }\"\n loading=\"lazy\"\n @load=\"handleLoad\"\n v-bind=\"options\"\n ref=\"imageElement\"\n />\n \n <!-- Видео с предварительной загрузкой -->\n <video\n v-else-if=\"isVideo\"\n ref=\"videoElement\"\n :class=\"{ 'loading': !isLoaded }\"\n class=\"media-item\"\n :controls=\"!options?.hideControls\"\n :loop=\"options?.loop !== false\"\n :muted=\"options?.muted !== false\"\n :autoplay=\"options?.autoplay\"\n :playsinline=\"options?.playsinline !== false\"\n :preload=\"options?.preload || 'metadata'\"\n @loadeddata=\"handleLoad\"\n v-bind=\"options\"\n >\n <source :src=\"url\" :type=\"videoType\">\n </video>\n \n <!-- Плейсхолдер во время загрузки -->\n <div v-if=\"!isLoaded\" class=\"media-placeholder\">\n Loading...\n </div>\n \n <!-- Сообщение об ошибке -->\n <div v-if=\"error\" class=\"media-error\">\n {{ error }}\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, onMounted, computed, onUnmounted } from 'vue'\n\nconst props = defineProps({\n url: {\n type: String,\n required: true\n },\n options: {\n type: Object,\n default: () => ({\n muted: true,\n loop: true,\n playsinline: true,\n preload: 'metadata' // 'none' | 'metadata' | 'auto'\n })\n }\n})\n\n// Refs\nconst videoElement = ref(null)\nconst imageElement = ref(null)\nconst isLoaded = ref(false)\nconst error = ref(null)\nconst isIntersecting = ref(false)\nlet observer = null\nlet isPlaying = false\n\n// Определяем тип медиа\nconst fileExtension = computed(() => {\n return props.url?.split('.')?.pop()?.toLowerCase()\n})\n\nconst isImage = computed(() => {\n const imageExtensions = ['jpg', 'jpeg', 'png', 'gif', 'webp', 'svg', 'avif']\n return imageExtensions.includes(fileExtension.value)\n})\n\nconst isVideo = computed(() => {\n const videoExtensions = ['mp4', 'webm', 'ogg']\n return videoExtensions.includes(fileExtension.value)\n})\n\n// Определяем MIME-тип для видео\nconst videoType = computed(() => {\n const types = {\n 'mp4': 'video/mp4',\n 'webm': 'video/webm',\n 'ogg': 'video/ogg'\n }\n return types[fileExtension.value] || ''\n})\n\n// Обработчик загрузки медиа\nfunction handleLoad() {\n isLoaded.value = true\n}\n\n// Обработка ошибок\nfunction handleError(err) {\n error.value = `Ошибка загрузки медиа: ${err.message}`\n isLoaded.value = false\n}\n\n// Управление видео с обработкой ошибок\nasync function playVideo() {\n if (!videoElement.value) return\n \n try {\n if (videoElement.value.paused && !isPlaying) {\n await videoElement.value.play()\n isPlaying = true\n }\n } catch (err) {\n handleError(err)\n }\n}\n\nfunction checkAndPlayVideo() {\n if (!videoElement.value) return\n \n videoElement.value.onplaying = () => {\n isPlaying = true\n }\n \n videoElement.value.onpause = () => {\n isPlaying = false\n }\n \n videoElement.value.onerror = handleError\n}\n\n// Intersection Observer для ленивой загрузки\nfunction setupIntersectionObserver() {\n const options = {\n root: null,\n rootMargin: '50px',\n threshold: 0.1\n }\n \n observer = new IntersectionObserver((entries) => {\n entries.forEach(entry => {\n isIntersecting.value = entry.isIntersecting\n \n if (entry.isIntersecting) {\n if (isVideo.value && props.options?.autoplay) {\n playVideo()\n }\n // Отключаем observer после первой загрузки\n observer.disconnect()\n }\n })\n }, options)\n \n // Наблюдаем за элементом в зависимости от типа медиа\n const element = isImage.value ? imageElement.value : videoElement.value\n if (element) {\n observer.observe(element)\n }\n}\n\n// Lifecycle hooks\nonMounted(() => {\n setupIntersectionObserver()\n})\n\nonUnmounted(() => {\n if (observer) {\n observer.disconnect()\n }\n})\n</script>\n\n<style scoped>\n.media-container {\n}\n\n.media-item {\n all: inherit;\n opacity: 1;\n transition: opacity 0.3s ease;\n}\n\n.media-item.loading {\n opacity: 0;\n}\n\n.media-placeholder {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: #f5f5f5;\n}\n\n.media-error {\n color: #ff4444;\n padding: 1rem;\n text-align: center;\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiDA,UAAM,QAAQ;AAiBd,UAAM,eAAe,IAAI,IAAI;AAC7B,UAAM,eAAe,IAAI,IAAI;AAC7B,UAAM,WAAW,IAAI,KAAK;AAC1B,UAAM,QAAQ,IAAI,IAAI;AACtB,UAAM,iBAAiB,IAAI,KAAK;AAChC,QAAI,WAAW;AACf,QAAI,YAAY;AAGhB,UAAM,gBAAgB,SAAS,MAAM;;AACnC,cAAO,uBAAM,QAAN,mBAAW,MAAM,SAAjB,mBAAuB,UAAvB,mBAA8B;AAAA,IACvC,CAAC;AAED,UAAM,UAAU,SAAS,MAAM;AAC7B,YAAM,kBAAkB,CAAC,OAAO,QAAQ,OAAO,OAAO,QAAQ,OAAO,MAAM;AAC3E,aAAO,gBAAgB,SAAS,cAAc,KAAK;AAAA,IACrD,CAAC;AAED,UAAM,UAAU,SAAS,MAAM;AAC7B,YAAM,kBAAkB,CAAC,OAAO,QAAQ,KAAK;AAC7C,aAAO,gBAAgB,SAAS,cAAc,KAAK;AAAA,IACrD,CAAC;AAGD,UAAM,YAAY,SAAS,MAAM;AAC/B,YAAM,QAAQ;AAAA,QACZ,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,OAAO;AAAA,MACX;AACE,aAAO,MAAM,cAAc,KAAK,KAAK;AAAA,IACvC,CAAC;AAGD,aAAS,aAAa;AACpB,eAAS,QAAQ;AAAA,IACnB;AAGA,aAAS,YAAY,KAAK;AACxB,YAAM,QAAQ,0BAA0B,IAAI,OAAO;AACnD,eAAS,QAAQ;AAAA,IACnB;AAGA,mBAAe,YAAY;AACzB,UAAI,CAAC,aAAa,MAAO;AAEzB,UAAI;AACF,YAAI,aAAa,MAAM,UAAU,CAAC,WAAW;AAC3C,gBAAM,aAAa,MAAM,KAAI;AAC7B,sBAAY;AAAA,QAClB;AAAA,MACG,SAAQ,KAAK;AACZ,oBAAY,GAAG;AAAA,MACnB;AAAA,IACA;AAiBA,aAAS,4BAA4B;AACnC,YAAM,UAAU;AAAA,QACd,MAAM;AAAA,QACN,YAAY;AAAA,QACZ,WAAW;AAAA,MACf;AAEE,iBAAW,IAAI,qBAAqB,CAAC,YAAY;AAC/C,gBAAQ,QAAQ,WAAS;;AACvB,yBAAe,QAAQ,MAAM;AAE7B,cAAI,MAAM,gBAAgB;AACxB,gBAAI,QAAQ,WAAS,WAAM,YAAN,mBAAe,WAAU;AAC5C,wBAAS;AAAA,YACnB;AAEQ,qBAAS,WAAU;AAAA,UAC3B;AAAA,QACK,CAAA;AAAA,MACL,GAAK,OAAO;AAGV,YAAM,UAAU,QAAQ,QAAQ,aAAa,QAAQ,aAAa;AAClE,UAAI,SAAS;AACX,iBAAS,QAAQ,OAAO;AAAA,MAC5B;AAAA,IACA;AAGA,cAAU,MAAM;AACd,gCAAyB;AAAA,IAC3B,CAAC;AAED,gBAAY,MAAM;AAChB,UAAI,UAAU;AACZ,iBAAS,WAAU;AAAA,MACvB;AAAA,IACA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"Media.vue.js","sources":["../../../../../src/components/Media/Media.vue"],"sourcesContent":["<template>\n <div class=\"media-container pos-relative\">\n <!-- Изображение с ленивой загрузкой и placeholder -->\n <img\n v-if=\"isImage\"\n :src=\"isIntersecting ? url : ''\"\n :data-src=\"url\"\n :alt=\"options?.alt || 'Image'\"\n class=\"media-item\"\n :class=\"{ 'loading': !isLoaded }\"\n loading=\"lazy\"\n @load=\"handleLoad\"\n v-bind=\"options\"\n ref=\"imageElement\"\n />\n \n <!-- Видео с предварительной загрузкой -->\n <video\n v-else-if=\"isVideo\"\n ref=\"videoElement\"\n :class=\"{ 'loading': !isLoaded }\"\n class=\"media-item\"\n :controls=\"!options?.hideControls\"\n :loop=\"options?.loop !== false\"\n :muted=\"options?.muted !== false\"\n :autoplay=\"options?.autoplay\"\n :playsinline=\"options?.playsinline !== false\"\n :preload=\"options?.preload || 'metadata'\"\n @loadeddata=\"handleLoad\"\n v-bind=\"options\"\n >\n <source :src=\"url\" :type=\"videoType\">\n </video>\n \n <!-- Плейсхолдер во время загрузки -->\n <div v-if=\"!isLoaded\" class=\"media-placeholder\">\n Loading...\n </div>\n \n <!-- Сообщение об ошибке -->\n <div v-if=\"error\" class=\"media-error\">\n {{ error }}\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, onMounted, computed, onUnmounted } from 'vue'\n\nconst props = defineProps({\n url: {\n type: String,\n required: true\n },\n options: {\n type: Object,\n default: () => ({\n muted: true,\n loop: true,\n playsinline: true,\n preload: 'metadata' // 'none' | 'metadata' | 'auto'\n })\n }\n})\n\n// Refs\nconst videoElement = ref(null)\nconst imageElement = ref(null)\nconst isLoaded = ref(false)\nconst error = ref(null)\nconst isIntersecting = ref(false)\nlet observer = null\nlet isPlaying = false\n\n// Определяем тип медиа\nconst fileExtension = computed(() => {\n return props.url?.split('.')?.pop()?.toLowerCase()\n})\n\nconst isImage = computed(() => {\n const imageExtensions = ['jpg', 'jpeg', 'png', 'gif', 'webp', 'svg', 'avif']\n return imageExtensions.includes(fileExtension.value)\n})\n\nconst isVideo = computed(() => {\n const videoExtensions = ['mp4', 'webm', 'ogg']\n return videoExtensions.includes(fileExtension.value)\n})\n\n// Определяем MIME-тип для видео\nconst videoType = computed(() => {\n const types = {\n 'mp4': 'video/mp4',\n 'webm': 'video/webm',\n 'ogg': 'video/ogg'\n }\n return types[fileExtension.value] || ''\n})\n\n// Обработчик загрузки медиа\nfunction handleLoad() {\n isLoaded.value = true\n}\n\n// Обработка ошибок\nfunction handleError(err) {\n error.value = `Ошибка загрузки медиа: ${err.message}`\n isLoaded.value = false\n}\n\n// Управление видео с обработкой ошибок\nasync function playVideo() {\n if (!videoElement.value) return\n \n try {\n if (videoElement.value.paused && !isPlaying) {\n await videoElement.value.play()\n isPlaying = true\n }\n } catch (err) {\n handleError(err)\n }\n}\n\nfunction checkAndPlayVideo() {\n if (!videoElement.value) return\n \n videoElement.value.onplaying = () => {\n isPlaying = true\n }\n \n videoElement.value.onpause = () => {\n isPlaying = false\n }\n \n videoElement.value.onerror = handleError\n}\n\n// Intersection Observer для ленивой загрузки\nfunction setupIntersectionObserver() {\n const options = {\n root: null,\n rootMargin: '50px',\n threshold: 0.1\n }\n \n observer = new IntersectionObserver((entries) => {\n entries.forEach(entry => {\n isIntersecting.value = entry.isIntersecting\n \n if (entry.isIntersecting) {\n if (isVideo.value && props.options?.autoplay) {\n playVideo()\n }\n // Отключаем observer после первой загрузки\n observer.disconnect()\n }\n })\n }, options)\n \n // Наблюдаем за элементом в зависимости от типа медиа\n const element = isImage.value ? imageElement.value : videoElement.value\n if (element) {\n observer.observe(element)\n }\n}\n\n// Lifecycle hooks\nonMounted(() => {\n setupIntersectionObserver()\n})\n\nonUnmounted(() => {\n if (observer) {\n observer.disconnect()\n }\n})\n</script>\n\n<style scoped>\n.media-container {\n}\n\n.media-item {\n all: inherit;\n opacity: 1;\n transition: opacity 0.3s ease;\n}\n\n.media-item.loading {\n opacity: 0;\n}\n\n.media-placeholder {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: #f5f5f5;\n}\n\n.media-error {\n color: #ff4444;\n padding: 1rem;\n text-align: center;\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiDA,UAAM,QAAQ;AAiBd,UAAM,eAAe,IAAI,IAAI;AAC7B,UAAM,eAAe,IAAI,IAAI;AAC7B,UAAM,WAAW,IAAI,KAAK;AAC1B,UAAM,QAAQ,IAAI,IAAI;AACtB,UAAM,iBAAiB,IAAI,KAAK;AAChC,QAAI,WAAW;AACf,QAAI,YAAY;AAGhB,UAAM,gBAAgB,SAAS,MAAM;;AACnC,cAAO,uBAAM,QAAN,mBAAW,MAAM,SAAjB,mBAAuB,UAAvB,mBAA8B;AAAA,IACvC,CAAC;AAED,UAAM,UAAU,SAAS,MAAM;AAC7B,YAAM,kBAAkB,CAAC,OAAO,QAAQ,OAAO,OAAO,QAAQ,OAAO,MAAM;AAC3E,aAAO,gBAAgB,SAAS,cAAc,KAAK;AAAA,IACrD,CAAC;AAED,UAAM,UAAU,SAAS,MAAM;AAC7B,YAAM,kBAAkB,CAAC,OAAO,QAAQ,KAAK;AAC7C,aAAO,gBAAgB,SAAS,cAAc,KAAK;AAAA,IACrD,CAAC;AAGD,UAAM,YAAY,SAAS,MAAM;AAC/B,YAAM,QAAQ;AAAA,QACZ,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,OAAO;AAAA,MACX;AACE,aAAO,MAAM,cAAc,KAAK,KAAK;AAAA,IACvC,CAAC;AAGD,aAAS,aAAa;AACpB,eAAS,QAAQ;AAAA,IACnB;AAGA,aAAS,YAAY,KAAK;AACxB,YAAM,QAAQ,0BAA0B,IAAI,OAAO;AACnD,eAAS,QAAQ;AAAA,IACnB;AAGA,mBAAe,YAAY;AACzB,UAAI,CAAC,aAAa,MAAO;AAEzB,UAAI;AACF,YAAI,aAAa,MAAM,UAAU,CAAC,WAAW;AAC3C,gBAAM,aAAa,MAAM,KAAI;AAC7B,sBAAY;AAAA,QAClB;AAAA,MACG,SAAQ,KAAK;AACZ,oBAAY,GAAG;AAAA,MACnB;AAAA,IACA;AAiBA,aAAS,4BAA4B;AACnC,YAAM,UAAU;AAAA,QACd,MAAM;AAAA,QACN,YAAY;AAAA,QACZ,WAAW;AAAA,MACf;AAEE,iBAAW,IAAI,qBAAqB,CAAC,YAAY;AAC/C,gBAAQ,QAAQ,WAAS;;AACvB,yBAAe,QAAQ,MAAM;AAE7B,cAAI,MAAM,gBAAgB;AACxB,gBAAI,QAAQ,WAAS,WAAM,YAAN,mBAAe,WAAU;AAC5C,wBAAS;AAAA,YACnB;AAEQ,qBAAS,WAAU;AAAA,UAC3B;AAAA,QACK,CAAA;AAAA,MACL,GAAK,OAAO;AAGV,YAAM,UAAU,QAAQ,QAAQ,aAAa,QAAQ,aAAa;AAClE,UAAI,SAAS;AACX,iBAAS,QAAQ,OAAO;AAAA,MAC5B;AAAA,IACA;AAGA,cAAU,MAAM;AACd,gCAAyB;AAAA,IAC3B,CAAC;AAED,gBAAY,MAAM;AAChB,UAAI,UAAU;AACZ,iBAAS,WAAU;AAAA,MACvB;AAAA,IACA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -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
|
-
;/* empty css
|
|
4
|
+
;/* empty css */
|
|
5
5
|
const _hoisted_1 = { class: "mobile-menu-section pd-r-zero pd-t-thin pd-b-thin pd-medium radius-medium" };
|
|
6
6
|
const _sfc_main = {
|
|
7
7
|
__name: "Menu",
|
|
@@ -14,4 +14,4 @@ const _sfc_main = {
|
|
|
14
14
|
}
|
|
15
15
|
};
|
|
16
16
|
exports.default = _sfc_main;
|
|
17
|
-
//# sourceMappingURL=Menu.
|
|
17
|
+
//# sourceMappingURL=Menu.vue.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Menu.vue.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createElementBlock, openBlock, renderSlot } from "vue";
|
|
2
|
-
/* empty css
|
|
2
|
+
/* empty css */
|
|
3
3
|
const _hoisted_1 = { class: "mobile-menu-section pd-r-zero pd-t-thin pd-b-thin pd-medium radius-medium" };
|
|
4
4
|
const _sfc_main = {
|
|
5
5
|
__name: "Menu",
|
|
@@ -14,4 +14,4 @@ const _sfc_main = {
|
|
|
14
14
|
export {
|
|
15
15
|
_sfc_main as default
|
|
16
16
|
};
|
|
17
|
-
//# sourceMappingURL=Menu.
|
|
17
|
+
//# sourceMappingURL=Menu.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Menu.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
|
|
|
3
3
|
const vue = require("vue");
|
|
4
4
|
const vueRouter = require("vue-router");
|
|
5
5
|
const IconCross = require("../../modules/icons/navigation/IconCross.vue.cjs");
|
|
6
|
-
;/* empty css
|
|
6
|
+
;/* empty css */
|
|
7
7
|
const _hoisted_1 = {
|
|
8
8
|
key: 0,
|
|
9
9
|
class: "mn-b-medium"
|
|
@@ -101,4 +101,4 @@ const _sfc_main = {
|
|
|
101
101
|
}
|
|
102
102
|
};
|
|
103
103
|
exports.default = _sfc_main;
|
|
104
|
-
//# sourceMappingURL=Popup.
|
|
104
|
+
//# sourceMappingURL=Popup.vue.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Popup.
|
|
1
|
+
{"version":3,"file":"Popup.vue.cjs","sources":["../../../../../src/components/Popup/Popup.vue"],"sourcesContent":["<template>\n <transition name=\"moveFromTop\">\n <teleport to=\"body\" v-if=\"isPopupOpen\">\n <div v-if=\"isPopupOpen\" key=\"popup-content\" class=\"z-index-6 popup-wrapper\"\n :class=\"{\n 'pd-t-extra': MOBILE_APP === 'ios',\n [alignClass]: true\n }\"\n >\n <transition name=\"TransitionTranslateY\" mode=\"out-in\">\n <section class=\"h-max-100 o-y-scroll pos-relative z-index-4\" v-bind=\"$attrs\" :class=\"$attrs.class\">\n <h4 v-if=\"title\" class=\"mn-b-medium\">{{title}}</h4>\n <IconCross :fill=\"'rgb(var(--white))'\" @click=\"closePopup()\" class=\"cursor-pointer bg-second pd-micro radius-extra pos-absolute pos-t-0 pos-r-0 mn-t-medium mn-r-medium hover-scale-1 i-medium z-index-5\"/>\n <slot></slot>\n </section> \n </transition>\n\n <div \n @click=\"closePopup()\" \n :class=\"{'active':isPopupOpen === true}\" \n class=\"color-overlay z-index-3\">\n </div>\n </div>\n </teleport>\n </transition>\n</template>\n\n<script setup>\nimport { computed, watch, onMounted, ref, nextTick } from 'vue';\n// Import libs\nimport { useRoute, useRouter } from 'vue-router'\n// import { useI18n } from 'vue-i18n'\n// Icons\nimport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue';\n// Define props\nconst props = defineProps({\n isPopupOpen: {\n type: Boolean,\n default: false\n },\n style: String,\n title: String,\n align: {\n type: String,\n default: 'center center',\n validator: (value) => {\n const validAlignments = [\n 'top left', 'top center', 'top right',\n 'center left', 'center center', 'center right',\n 'bottom left', 'bottom center', 'bottom right'\n ];\n return validAlignments.includes(value);\n }\n }\n});\n\nconst emits = defineEmits(['close-popup'])\n\n// Compute the alignment class from the align prop\nconst alignClass = computed(() => {\n return `align-${props.align.replace(/\\s+/g, '-')}`;\n});\n\nfunction closePopup() {\n emits(\"close-popup\");\n} \n\nwatch(() => props.isPopupOpen, (newVal) => {\n if (newVal) {\n document.body.classList.add('no-scroll');\n } else {\n document.body.classList.remove('no-scroll');\n }\n});\n\n// Accessing router and store\nconst route = useRoute()\nconst router = useRouter()\n// Localization\nconst text = {\n messages: {\n en: {},\n ru: {}\n }\n}\n// const { t } = useI18n(text)\n</script>\n\n<style lang=\"scss\">\n .no-scroll {\n overflow: hidden;\n\n #view {\n overflow: hidden;\n }\n }\n\n .popup-wrapper {\n display: flex;\n position: fixed;\n width: 100%;\n height: 100%;\n left: 0;\n top: 0;\n z-index: 40;\n\n /* Default alignment - center center */\n &.align-center-center {\n align-items: center;\n justify-content: center;\n }\n\n /* Top alignments */\n &.align-top-left {\n align-items: flex-start;\n justify-content: flex-start;\n }\n \n &.align-top-center {\n align-items: flex-start;\n justify-content: center;\n }\n \n &.align-top-right {\n align-items: flex-start;\n justify-content: flex-end;\n }\n\n /* Center alignments */\n &.align-center-left {\n align-items: center;\n justify-content: flex-start;\n }\n \n &.align-center-right {\n align-items: center;\n justify-content: flex-end;\n }\n\n /* Bottom alignments */\n &.align-bottom-left {\n align-items: flex-end;\n justify-content: flex-start;\n }\n \n &.align-bottom-center {\n align-items: flex-end;\n justify-content: center;\n }\n \n &.align-bottom-right {\n align-items: flex-end;\n justify-content: flex-end;\n }\n\n .popup {\n position: absolute;\n height: auto;\n padding: 2rem;\n min-width: 24rem;\n border-radius: 2rem;\n overflow: hidden;\n color: white;\n background: black;\n z-index: 40;\n }\n }\n\n .color-overlay {\n display: block;\n position: fixed;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n background: rgba(0,0,0,0.0);\n pointer-events: none;\n transform: scale(1.5);\n transition: all 0.5s cubic-bezier(.31,.79,.24,.92);\n \n &.active {\n background: rgba(#000,0.25);\n pointer-events: all;\n }\n }\n</style>"],"names":["computed","watch","useRoute","useRouter"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCA,UAAM,QAAQ;AAqBd,UAAM,QAAQ;AAGd,UAAM,aAAaA,IAAQ,SAAC,MAAM;AAChC,aAAO,SAAS,MAAM,MAAM,QAAQ,QAAQ,GAAG,CAAC;AAAA,IAClD,CAAC;AAED,aAAS,aAAa;AACpB,YAAM,aAAa;AAAA,IACrB;AAEAC,QAAK,MAAC,MAAM,MAAM,aAAa,CAAC,WAAW;AACzC,UAAI,QAAQ;AACV,iBAAS,KAAK,UAAU,IAAI,WAAW;AAAA,MAC3C,OAAS;AACL,iBAAS,KAAK,UAAU,OAAO,WAAW;AAAA,MAC9C;AAAA,IACA,CAAC;AAGaC,cAAQ,SAAA;AACPC,cAAS,UAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { computed, watch, createBlock, openBlock, Transition, withCtx, createCommentVNode, Teleport, createElementBlock, normalizeClass, createVNode, createElementVNode, mergeProps, renderSlot, toDisplayString } from "vue";
|
|
2
2
|
import { useRoute, useRouter } from "vue-router";
|
|
3
3
|
import _sfc_main$1 from "../../modules/icons/navigation/IconCross.vue.js";
|
|
4
|
-
/* empty css
|
|
4
|
+
/* empty css */
|
|
5
5
|
const _hoisted_1 = {
|
|
6
6
|
key: 0,
|
|
7
7
|
class: "mn-b-medium"
|
|
@@ -101,4 +101,4 @@ const _sfc_main = {
|
|
|
101
101
|
export {
|
|
102
102
|
_sfc_main as default
|
|
103
103
|
};
|
|
104
|
-
//# sourceMappingURL=Popup.
|
|
104
|
+
//# sourceMappingURL=Popup.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Popup.vue.js","sources":["../../../../../src/components/Popup/Popup.vue"],"sourcesContent":["<template>\n <transition name=\"moveFromTop\">\n <teleport to=\"body\" v-if=\"isPopupOpen\">\n <div v-if=\"isPopupOpen\" key=\"popup-content\" class=\"z-index-6 popup-wrapper\"\n :class=\"{\n 'pd-t-extra': MOBILE_APP === 'ios',\n [alignClass]: true\n }\"\n >\n <transition name=\"TransitionTranslateY\" mode=\"out-in\">\n <section class=\"h-max-100 o-y-scroll pos-relative z-index-4\" v-bind=\"$attrs\" :class=\"$attrs.class\">\n <h4 v-if=\"title\" class=\"mn-b-medium\">{{title}}</h4>\n <IconCross :fill=\"'rgb(var(--white))'\" @click=\"closePopup()\" class=\"cursor-pointer bg-second pd-micro radius-extra pos-absolute pos-t-0 pos-r-0 mn-t-medium mn-r-medium hover-scale-1 i-medium z-index-5\"/>\n <slot></slot>\n </section> \n </transition>\n\n <div \n @click=\"closePopup()\" \n :class=\"{'active':isPopupOpen === true}\" \n class=\"color-overlay z-index-3\">\n </div>\n </div>\n </teleport>\n </transition>\n</template>\n\n<script setup>\nimport { computed, watch, onMounted, ref, nextTick } from 'vue';\n// Import libs\nimport { useRoute, useRouter } from 'vue-router'\n// import { useI18n } from 'vue-i18n'\n// Icons\nimport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue';\n// Define props\nconst props = defineProps({\n isPopupOpen: {\n type: Boolean,\n default: false\n },\n style: String,\n title: String,\n align: {\n type: String,\n default: 'center center',\n validator: (value) => {\n const validAlignments = [\n 'top left', 'top center', 'top right',\n 'center left', 'center center', 'center right',\n 'bottom left', 'bottom center', 'bottom right'\n ];\n return validAlignments.includes(value);\n }\n }\n});\n\nconst emits = defineEmits(['close-popup'])\n\n// Compute the alignment class from the align prop\nconst alignClass = computed(() => {\n return `align-${props.align.replace(/\\s+/g, '-')}`;\n});\n\nfunction closePopup() {\n emits(\"close-popup\");\n} \n\nwatch(() => props.isPopupOpen, (newVal) => {\n if (newVal) {\n document.body.classList.add('no-scroll');\n } else {\n document.body.classList.remove('no-scroll');\n }\n});\n\n// Accessing router and store\nconst route = useRoute()\nconst router = useRouter()\n// Localization\nconst text = {\n messages: {\n en: {},\n ru: {}\n }\n}\n// const { t } = useI18n(text)\n</script>\n\n<style lang=\"scss\">\n .no-scroll {\n overflow: hidden;\n\n #view {\n overflow: hidden;\n }\n }\n\n .popup-wrapper {\n display: flex;\n position: fixed;\n width: 100%;\n height: 100%;\n left: 0;\n top: 0;\n z-index: 40;\n\n /* Default alignment - center center */\n &.align-center-center {\n align-items: center;\n justify-content: center;\n }\n\n /* Top alignments */\n &.align-top-left {\n align-items: flex-start;\n justify-content: flex-start;\n }\n \n &.align-top-center {\n align-items: flex-start;\n justify-content: center;\n }\n \n &.align-top-right {\n align-items: flex-start;\n justify-content: flex-end;\n }\n\n /* Center alignments */\n &.align-center-left {\n align-items: center;\n justify-content: flex-start;\n }\n \n &.align-center-right {\n align-items: center;\n justify-content: flex-end;\n }\n\n /* Bottom alignments */\n &.align-bottom-left {\n align-items: flex-end;\n justify-content: flex-start;\n }\n \n &.align-bottom-center {\n align-items: flex-end;\n justify-content: center;\n }\n \n &.align-bottom-right {\n align-items: flex-end;\n justify-content: flex-end;\n }\n\n .popup {\n position: absolute;\n height: auto;\n padding: 2rem;\n min-width: 24rem;\n border-radius: 2rem;\n overflow: hidden;\n color: white;\n background: black;\n z-index: 40;\n }\n }\n\n .color-overlay {\n display: block;\n position: fixed;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n background: rgba(0,0,0,0.0);\n pointer-events: none;\n transform: scale(1.5);\n transition: all 0.5s cubic-bezier(.31,.79,.24,.92);\n \n &.active {\n background: rgba(#000,0.25);\n pointer-events: all;\n }\n }\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCA,UAAM,QAAQ;AAqBd,UAAM,QAAQ;AAGd,UAAM,aAAa,SAAS,MAAM;AAChC,aAAO,SAAS,MAAM,MAAM,QAAQ,QAAQ,GAAG,CAAC;AAAA,IAClD,CAAC;AAED,aAAS,aAAa;AACpB,YAAM,aAAa;AAAA,IACrB;AAEA,UAAM,MAAM,MAAM,aAAa,CAAC,WAAW;AACzC,UAAI,QAAQ;AACV,iBAAS,KAAK,UAAU,IAAI,WAAW;AAAA,MAC3C,OAAS;AACL,iBAAS,KAAK,UAAU,OAAO,WAAW;AAAA,MAC9C;AAAA,IACA,CAAC;AAGa,aAAQ;AACP,cAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -74,7 +74,7 @@ const _sfc_main = {
|
|
|
74
74
|
return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [
|
|
75
75
|
vue.withDirectives((vue.openBlock(), vue.createElementBlock("div", {
|
|
76
76
|
onClick: vue.withModifiers(toggleMenu, ["stop"]),
|
|
77
|
-
class: vue.normalizeClass([_ctx.$attrs.class, "cursor-pointer flex-v-center flex-nowrap flex pos-relative"])
|
|
77
|
+
class: vue.normalizeClass([_ctx.$attrs.class, "cursor-pointer field-wrapper flex-v-center flex-nowrap flex pos-relative"])
|
|
78
78
|
}, [
|
|
79
79
|
__props.label ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_1, vue.toDisplayString(__props.label), 1)) : vue.createCommentVNode("", true),
|
|
80
80
|
vue.createElementVNode("span", null, vue.toDisplayString(optionsSelected.value ? optionsSelected.value.name || optionsSelected.value[props.value] || optionsSelected.value : __props.placeholder), 1),
|
|
@@ -117,6 +117,6 @@ const _sfc_main = {
|
|
|
117
117
|
};
|
|
118
118
|
}
|
|
119
119
|
};
|
|
120
|
-
const Select = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-
|
|
120
|
+
const Select = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-d73e3595"]]);
|
|
121
121
|
exports.default = Select;
|
|
122
122
|
//# sourceMappingURL=Select.vue.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.vue.cjs","sources":["../../../../../src/components/Select/Select.vue"],"sourcesContent":["<template>\n <!-- Input Wrapper -->\n <div \n @click.stop=\"toggleMenu\" \n v-click-outside=\"clickedOutside\" \n :class=\"$attrs.class\" \n class=\"cursor-pointer flex-v-center flex-nowrap flex pos-relative\"\n >\n <!-- Label -->\n <span v-if=\"label\" class=\"t-transp mn-r-small\">{{label}}</span>\n \n <!-- Input -->\n <span>\n {{ optionsSelected ? (optionsSelected.name || optionsSelected[props.value] || optionsSelected) : placeholder }}\n </span>\n\n <!-- Dropdown menu -->\n <transition mode=\"out-in\" name=\"TransitionTranslateY\">\n <ul \n v-show=\"showMenu\" \n :class=\"$attrs.class\"\n class=\"bs-black pos-absolute pos-t-100 pos-l-0 z-index-5 w-100 mn-t-thin\"\n style=\"min-width: max-content;\"\n >\n <li @click.stop=\"selectOption(option)\" v-for=\"option in optionsListed\" class=\"text-box-trim\">\n <span v-if=\"option\" class=\"w-100\">\n\n {{ option.name || option[props.value] || option }}\n </span>\n </li>\n </ul>\n </transition>\n </div>\n\n <!-- Validation -->\n <transition mode=\"out-in\" name=\"fade\">\n <div v-if=\"validation\" class=\"mn-t-thin invalid-feedback\">\n * {{validation.message}}\n </div>\n </transition>\n</template>\n\n<script setup>\nimport { ref, computed, watch } from 'vue'\n\nimport clickOutside from '../FieldPhone/click-outside.js';\n\nlet vClickOutside = clickOutside\n\nconst emit = defineEmits([\n 'update:select', \n 'focus', \n 'blur'\n])\n\nconst props = defineProps({\n label: String,\n placeholder: { type: String, default: 'Please select an item' },\n select: [String, Object],\n property: String,\n value: String,\n options: { type: Array, default: () => [] },\n validation: Boolean,\n})\n\nconst showMenu = ref(false)\n\nconst optionsSelected = ref(\n props.property \n ? findObjectByValue(props.select, props.property, props.options) \n : props.select\n)\n\nconst optionsListed = computed(() => {\n return props.select \n ? props.options.filter(option => option !== props.select) \n : props.options\n})\n\nwatch(() => props.select, (newSelect) => {\n optionsSelected.value = \n props.property \n ? findObjectByValue(props.select, props.property, props.options) \n : props.select;\n});\n\nconst toggleMenu = () => {\n showMenu.value = !showMenu.value\n\n emit(showMenu.value ? 'focus' : 'blur')\n}\n\nfunction clickedOutside () {\n showMenu.value = false\n}\n\nconst selectOption = option => {\n optionsSelected.value = option\n \n toggleMenu()\n\n if (props.property) { \n emit('update:select', optionsSelected.value[props.property])\n } else {\n emit('update:select', optionsSelected.value)\n }\n}\n\nfunction findObjectByValue (value, property, objects) {\n for (const object of objects) {\n if (object[property] === value || object === value) {\n return object;\n }\n }\n return null;\n}\n</script>\n\n<style lang=\"scss\" scoped>\n li {\n list-style-type: none;\n }\n\n ul li {\n line-height: 2;\n }\n</style>\n"],"names":["clickOutside","ref","computed","watch"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CA,QAAI,gBAAgBA,aAAAA;AAEpB,UAAM,OAAO;AAMb,UAAM,QAAQ;AAUd,UAAM,WAAWC,IAAG,IAAC,KAAK;AAE1B,UAAM,kBAAkBA,IAAG;AAAA,MACzB,MAAM,WACJ,kBAAkB,MAAM,QAAQ,MAAM,UAAU,MAAM,OAAO,IAC7D,MAAM;AAAA,IACV;AAEA,UAAM,gBAAgBC,IAAQ,SAAC,MAAM;AACnC,aAAO,MAAM,SACX,MAAM,QAAQ,OAAO,YAAU,WAAW,MAAM,MAAM,IACtD,MAAM;AAAA,IACV,CAAC;AAEDC,QAAK,MAAC,MAAM,MAAM,QAAQ,CAAC,cAAc;AACvC,sBAAgB,QAChB,MAAM,WACJ,kBAAkB,MAAM,QAAQ,MAAM,UAAU,MAAM,OAAO,IAC7D,MAAM;AAAA,IACV,CAAC;AAED,UAAM,aAAa,MAAM;AACvB,eAAS,QAAQ,CAAC,SAAS;AAE3B,WAAK,SAAS,QAAQ,UAAU,MAAM;AAAA,IACxC;AAEA,aAAS,iBAAkB;AACzB,eAAS,QAAQ;AAAA,IACnB;AAEA,UAAM,eAAe,YAAU;AAC7B,sBAAgB,QAAQ;AAExB,iBAAU;AAEV,UAAI,MAAM,UAAU;AAClB,aAAK,iBAAiB,gBAAgB,MAAM,MAAM,QAAQ,CAAC;AAAA,MAC/D,OAAS;AACL,aAAK,iBAAiB,gBAAgB,KAAK;AAAA,MAC/C;AAAA,IACA;AAEA,aAAS,kBAAmB,OAAO,UAAU,SAAS;AACpD,iBAAW,UAAU,SAAS;AAC5B,YAAI,OAAO,QAAQ,MAAM,SAAS,WAAW,OAAO;AAClD,iBAAO;AAAA,QACb;AAAA,MACA;AACE,aAAO;AAAA,IACT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"Select.vue.cjs","sources":["../../../../../src/components/Select/Select.vue"],"sourcesContent":["<template>\n <!-- Input Wrapper -->\n <div \n @click.stop=\"toggleMenu\" \n v-click-outside=\"clickedOutside\" \n :class=\"$attrs.class\" \n class=\"cursor-pointer field-wrapper flex-v-center flex-nowrap flex pos-relative\"\n >\n <!-- Label -->\n <span v-if=\"label\" class=\"t-transp mn-r-small\">{{label}}</span>\n \n <!-- Input -->\n <span>\n {{ optionsSelected ? (optionsSelected.name || optionsSelected[props.value] || optionsSelected) : placeholder }}\n </span>\n\n <!-- Dropdown menu -->\n <transition mode=\"out-in\" name=\"TransitionTranslateY\">\n <ul \n v-show=\"showMenu\" \n :class=\"$attrs.class\"\n class=\"bs-black pos-absolute pos-t-100 pos-l-0 z-index-5 w-100 mn-t-thin\"\n style=\"min-width: max-content;\"\n >\n <li @click.stop=\"selectOption(option)\" v-for=\"option in optionsListed\" class=\"text-box-trim\">\n <span v-if=\"option\" class=\"w-100\">\n\n {{ option.name || option[props.value] || option }}\n </span>\n </li>\n </ul>\n </transition>\n </div>\n\n <!-- Validation -->\n <transition mode=\"out-in\" name=\"fade\">\n <div v-if=\"validation\" class=\"mn-t-thin invalid-feedback\">\n * {{validation.message}}\n </div>\n </transition>\n</template>\n\n<script setup>\nimport { ref, computed, watch } from 'vue'\n\nimport clickOutside from '../FieldPhone/click-outside.js';\n\nlet vClickOutside = clickOutside\n\nconst emit = defineEmits([\n 'update:select', \n 'focus', \n 'blur'\n])\n\nconst props = defineProps({\n label: String,\n placeholder: { type: String, default: 'Please select an item' },\n select: [String, Object],\n property: String,\n value: String,\n options: { type: Array, default: () => [] },\n validation: Boolean,\n})\n\nconst showMenu = ref(false)\n\nconst optionsSelected = ref(\n props.property \n ? findObjectByValue(props.select, props.property, props.options) \n : props.select\n)\n\nconst optionsListed = computed(() => {\n return props.select \n ? props.options.filter(option => option !== props.select) \n : props.options\n})\n\nwatch(() => props.select, (newSelect) => {\n optionsSelected.value = \n props.property \n ? findObjectByValue(props.select, props.property, props.options) \n : props.select;\n});\n\nconst toggleMenu = () => {\n showMenu.value = !showMenu.value\n\n emit(showMenu.value ? 'focus' : 'blur')\n}\n\nfunction clickedOutside () {\n showMenu.value = false\n}\n\nconst selectOption = option => {\n optionsSelected.value = option\n \n toggleMenu()\n\n if (props.property) { \n emit('update:select', optionsSelected.value[props.property])\n } else {\n emit('update:select', optionsSelected.value)\n }\n}\n\nfunction findObjectByValue (value, property, objects) {\n for (const object of objects) {\n if (object[property] === value || object === value) {\n return object;\n }\n }\n return null;\n}\n</script>\n\n<style lang=\"scss\" scoped>\n li {\n list-style-type: none;\n }\n\n ul li {\n line-height: 2;\n }\n</style>\n"],"names":["clickOutside","ref","computed","watch"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CA,QAAI,gBAAgBA,aAAAA;AAEpB,UAAM,OAAO;AAMb,UAAM,QAAQ;AAUd,UAAM,WAAWC,IAAG,IAAC,KAAK;AAE1B,UAAM,kBAAkBA,IAAG;AAAA,MACzB,MAAM,WACJ,kBAAkB,MAAM,QAAQ,MAAM,UAAU,MAAM,OAAO,IAC7D,MAAM;AAAA,IACV;AAEA,UAAM,gBAAgBC,IAAQ,SAAC,MAAM;AACnC,aAAO,MAAM,SACX,MAAM,QAAQ,OAAO,YAAU,WAAW,MAAM,MAAM,IACtD,MAAM;AAAA,IACV,CAAC;AAEDC,QAAK,MAAC,MAAM,MAAM,QAAQ,CAAC,cAAc;AACvC,sBAAgB,QAChB,MAAM,WACJ,kBAAkB,MAAM,QAAQ,MAAM,UAAU,MAAM,OAAO,IAC7D,MAAM;AAAA,IACV,CAAC;AAED,UAAM,aAAa,MAAM;AACvB,eAAS,QAAQ,CAAC,SAAS;AAE3B,WAAK,SAAS,QAAQ,UAAU,MAAM;AAAA,IACxC;AAEA,aAAS,iBAAkB;AACzB,eAAS,QAAQ;AAAA,IACnB;AAEA,UAAM,eAAe,YAAU;AAC7B,sBAAgB,QAAQ;AAExB,iBAAU;AAEV,UAAI,MAAM,UAAU;AAClB,aAAK,iBAAiB,gBAAgB,MAAM,MAAM,QAAQ,CAAC;AAAA,MAC/D,OAAS;AACL,aAAK,iBAAiB,gBAAgB,KAAK;AAAA,MAC/C;AAAA,IACA;AAEA,aAAS,kBAAmB,OAAO,UAAU,SAAS;AACpD,iBAAW,UAAU,SAAS;AAC5B,YAAI,OAAO,QAAQ,MAAM,SAAS,WAAW,OAAO;AAClD,iBAAO;AAAA,QACb;AAAA,MACA;AACE,aAAO;AAAA,IACT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -72,7 +72,7 @@ const _sfc_main = {
|
|
|
72
72
|
return openBlock(), createElementBlock(Fragment, null, [
|
|
73
73
|
withDirectives((openBlock(), createElementBlock("div", {
|
|
74
74
|
onClick: withModifiers(toggleMenu, ["stop"]),
|
|
75
|
-
class: normalizeClass([_ctx.$attrs.class, "cursor-pointer flex-v-center flex-nowrap flex pos-relative"])
|
|
75
|
+
class: normalizeClass([_ctx.$attrs.class, "cursor-pointer field-wrapper flex-v-center flex-nowrap flex pos-relative"])
|
|
76
76
|
}, [
|
|
77
77
|
__props.label ? (openBlock(), createElementBlock("span", _hoisted_1, toDisplayString(__props.label), 1)) : createCommentVNode("", true),
|
|
78
78
|
createElementVNode("span", null, toDisplayString(optionsSelected.value ? optionsSelected.value.name || optionsSelected.value[props.value] || optionsSelected.value : __props.placeholder), 1),
|
|
@@ -115,7 +115,7 @@ const _sfc_main = {
|
|
|
115
115
|
};
|
|
116
116
|
}
|
|
117
117
|
};
|
|
118
|
-
const Select = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
118
|
+
const Select = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-d73e3595"]]);
|
|
119
119
|
export {
|
|
120
120
|
Select as default
|
|
121
121
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.vue.js","sources":["../../../../../src/components/Select/Select.vue"],"sourcesContent":["<template>\n <!-- Input Wrapper -->\n <div \n @click.stop=\"toggleMenu\" \n v-click-outside=\"clickedOutside\" \n :class=\"$attrs.class\" \n class=\"cursor-pointer flex-v-center flex-nowrap flex pos-relative\"\n >\n <!-- Label -->\n <span v-if=\"label\" class=\"t-transp mn-r-small\">{{label}}</span>\n \n <!-- Input -->\n <span>\n {{ optionsSelected ? (optionsSelected.name || optionsSelected[props.value] || optionsSelected) : placeholder }}\n </span>\n\n <!-- Dropdown menu -->\n <transition mode=\"out-in\" name=\"TransitionTranslateY\">\n <ul \n v-show=\"showMenu\" \n :class=\"$attrs.class\"\n class=\"bs-black pos-absolute pos-t-100 pos-l-0 z-index-5 w-100 mn-t-thin\"\n style=\"min-width: max-content;\"\n >\n <li @click.stop=\"selectOption(option)\" v-for=\"option in optionsListed\" class=\"text-box-trim\">\n <span v-if=\"option\" class=\"w-100\">\n\n {{ option.name || option[props.value] || option }}\n </span>\n </li>\n </ul>\n </transition>\n </div>\n\n <!-- Validation -->\n <transition mode=\"out-in\" name=\"fade\">\n <div v-if=\"validation\" class=\"mn-t-thin invalid-feedback\">\n * {{validation.message}}\n </div>\n </transition>\n</template>\n\n<script setup>\nimport { ref, computed, watch } from 'vue'\n\nimport clickOutside from '../FieldPhone/click-outside.js';\n\nlet vClickOutside = clickOutside\n\nconst emit = defineEmits([\n 'update:select', \n 'focus', \n 'blur'\n])\n\nconst props = defineProps({\n label: String,\n placeholder: { type: String, default: 'Please select an item' },\n select: [String, Object],\n property: String,\n value: String,\n options: { type: Array, default: () => [] },\n validation: Boolean,\n})\n\nconst showMenu = ref(false)\n\nconst optionsSelected = ref(\n props.property \n ? findObjectByValue(props.select, props.property, props.options) \n : props.select\n)\n\nconst optionsListed = computed(() => {\n return props.select \n ? props.options.filter(option => option !== props.select) \n : props.options\n})\n\nwatch(() => props.select, (newSelect) => {\n optionsSelected.value = \n props.property \n ? findObjectByValue(props.select, props.property, props.options) \n : props.select;\n});\n\nconst toggleMenu = () => {\n showMenu.value = !showMenu.value\n\n emit(showMenu.value ? 'focus' : 'blur')\n}\n\nfunction clickedOutside () {\n showMenu.value = false\n}\n\nconst selectOption = option => {\n optionsSelected.value = option\n \n toggleMenu()\n\n if (props.property) { \n emit('update:select', optionsSelected.value[props.property])\n } else {\n emit('update:select', optionsSelected.value)\n }\n}\n\nfunction findObjectByValue (value, property, objects) {\n for (const object of objects) {\n if (object[property] === value || object === value) {\n return object;\n }\n }\n return null;\n}\n</script>\n\n<style lang=\"scss\" scoped>\n li {\n list-style-type: none;\n }\n\n ul li {\n line-height: 2;\n }\n</style>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CA,QAAI,gBAAgB;AAEpB,UAAM,OAAO;AAMb,UAAM,QAAQ;AAUd,UAAM,WAAW,IAAI,KAAK;AAE1B,UAAM,kBAAkB;AAAA,MACtB,MAAM,WACJ,kBAAkB,MAAM,QAAQ,MAAM,UAAU,MAAM,OAAO,IAC7D,MAAM;AAAA,IACV;AAEA,UAAM,gBAAgB,SAAS,MAAM;AACnC,aAAO,MAAM,SACX,MAAM,QAAQ,OAAO,YAAU,WAAW,MAAM,MAAM,IACtD,MAAM;AAAA,IACV,CAAC;AAED,UAAM,MAAM,MAAM,QAAQ,CAAC,cAAc;AACvC,sBAAgB,QAChB,MAAM,WACJ,kBAAkB,MAAM,QAAQ,MAAM,UAAU,MAAM,OAAO,IAC7D,MAAM;AAAA,IACV,CAAC;AAED,UAAM,aAAa,MAAM;AACvB,eAAS,QAAQ,CAAC,SAAS;AAE3B,WAAK,SAAS,QAAQ,UAAU,MAAM;AAAA,IACxC;AAEA,aAAS,iBAAkB;AACzB,eAAS,QAAQ;AAAA,IACnB;AAEA,UAAM,eAAe,YAAU;AAC7B,sBAAgB,QAAQ;AAExB,iBAAU;AAEV,UAAI,MAAM,UAAU;AAClB,aAAK,iBAAiB,gBAAgB,MAAM,MAAM,QAAQ,CAAC;AAAA,MAC/D,OAAS;AACL,aAAK,iBAAiB,gBAAgB,KAAK;AAAA,MAC/C;AAAA,IACA;AAEA,aAAS,kBAAmB,OAAO,UAAU,SAAS;AACpD,iBAAW,UAAU,SAAS;AAC5B,YAAI,OAAO,QAAQ,MAAM,SAAS,WAAW,OAAO;AAClD,iBAAO;AAAA,QACb;AAAA,MACA;AACE,aAAO;AAAA,IACT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"Select.vue.js","sources":["../../../../../src/components/Select/Select.vue"],"sourcesContent":["<template>\n <!-- Input Wrapper -->\n <div \n @click.stop=\"toggleMenu\" \n v-click-outside=\"clickedOutside\" \n :class=\"$attrs.class\" \n class=\"cursor-pointer field-wrapper flex-v-center flex-nowrap flex pos-relative\"\n >\n <!-- Label -->\n <span v-if=\"label\" class=\"t-transp mn-r-small\">{{label}}</span>\n \n <!-- Input -->\n <span>\n {{ optionsSelected ? (optionsSelected.name || optionsSelected[props.value] || optionsSelected) : placeholder }}\n </span>\n\n <!-- Dropdown menu -->\n <transition mode=\"out-in\" name=\"TransitionTranslateY\">\n <ul \n v-show=\"showMenu\" \n :class=\"$attrs.class\"\n class=\"bs-black pos-absolute pos-t-100 pos-l-0 z-index-5 w-100 mn-t-thin\"\n style=\"min-width: max-content;\"\n >\n <li @click.stop=\"selectOption(option)\" v-for=\"option in optionsListed\" class=\"text-box-trim\">\n <span v-if=\"option\" class=\"w-100\">\n\n {{ option.name || option[props.value] || option }}\n </span>\n </li>\n </ul>\n </transition>\n </div>\n\n <!-- Validation -->\n <transition mode=\"out-in\" name=\"fade\">\n <div v-if=\"validation\" class=\"mn-t-thin invalid-feedback\">\n * {{validation.message}}\n </div>\n </transition>\n</template>\n\n<script setup>\nimport { ref, computed, watch } from 'vue'\n\nimport clickOutside from '../FieldPhone/click-outside.js';\n\nlet vClickOutside = clickOutside\n\nconst emit = defineEmits([\n 'update:select', \n 'focus', \n 'blur'\n])\n\nconst props = defineProps({\n label: String,\n placeholder: { type: String, default: 'Please select an item' },\n select: [String, Object],\n property: String,\n value: String,\n options: { type: Array, default: () => [] },\n validation: Boolean,\n})\n\nconst showMenu = ref(false)\n\nconst optionsSelected = ref(\n props.property \n ? findObjectByValue(props.select, props.property, props.options) \n : props.select\n)\n\nconst optionsListed = computed(() => {\n return props.select \n ? props.options.filter(option => option !== props.select) \n : props.options\n})\n\nwatch(() => props.select, (newSelect) => {\n optionsSelected.value = \n props.property \n ? findObjectByValue(props.select, props.property, props.options) \n : props.select;\n});\n\nconst toggleMenu = () => {\n showMenu.value = !showMenu.value\n\n emit(showMenu.value ? 'focus' : 'blur')\n}\n\nfunction clickedOutside () {\n showMenu.value = false\n}\n\nconst selectOption = option => {\n optionsSelected.value = option\n \n toggleMenu()\n\n if (props.property) { \n emit('update:select', optionsSelected.value[props.property])\n } else {\n emit('update:select', optionsSelected.value)\n }\n}\n\nfunction findObjectByValue (value, property, objects) {\n for (const object of objects) {\n if (object[property] === value || object === value) {\n return object;\n }\n }\n return null;\n}\n</script>\n\n<style lang=\"scss\" scoped>\n li {\n list-style-type: none;\n }\n\n ul li {\n line-height: 2;\n }\n</style>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CA,QAAI,gBAAgB;AAEpB,UAAM,OAAO;AAMb,UAAM,QAAQ;AAUd,UAAM,WAAW,IAAI,KAAK;AAE1B,UAAM,kBAAkB;AAAA,MACtB,MAAM,WACJ,kBAAkB,MAAM,QAAQ,MAAM,UAAU,MAAM,OAAO,IAC7D,MAAM;AAAA,IACV;AAEA,UAAM,gBAAgB,SAAS,MAAM;AACnC,aAAO,MAAM,SACX,MAAM,QAAQ,OAAO,YAAU,WAAW,MAAM,MAAM,IACtD,MAAM;AAAA,IACV,CAAC;AAED,UAAM,MAAM,MAAM,QAAQ,CAAC,cAAc;AACvC,sBAAgB,QAChB,MAAM,WACJ,kBAAkB,MAAM,QAAQ,MAAM,UAAU,MAAM,OAAO,IAC7D,MAAM;AAAA,IACV,CAAC;AAED,UAAM,aAAa,MAAM;AACvB,eAAS,QAAQ,CAAC,SAAS;AAE3B,WAAK,SAAS,QAAQ,UAAU,MAAM;AAAA,IACxC;AAEA,aAAS,iBAAkB;AACzB,eAAS,QAAQ;AAAA,IACnB;AAEA,UAAM,eAAe,YAAU;AAC7B,sBAAgB,QAAQ;AAExB,iBAAU;AAEV,UAAI,MAAM,UAAU;AAClB,aAAK,iBAAiB,gBAAgB,MAAM,MAAM,QAAQ,CAAC;AAAA,MAC/D,OAAS;AACL,aAAK,iBAAiB,gBAAgB,KAAK;AAAA,MAC/C;AAAA,IACA;AAEA,aAAS,kBAAmB,OAAO,UAAU,SAAS;AACpD,iBAAW,UAAU,SAAS;AAC5B,YAAI,OAAO,QAAQ,MAAM,SAAS,WAAW,OAAO;AAClD,iBAAO;AAAA,QACb;AAAA,MACA;AACE,aAAO;AAAA,IACT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,6 +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
|
+
;/* empty css */
|
|
4
5
|
const vueRouter = require("vue-router");
|
|
5
6
|
const vueI18n = require("vue-i18n");
|
|
6
7
|
const auth = require("../../store/auth.cjs");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnterCode.vue.cjs","sources":["../../../../../../../../src/modules/auth/views/components/pages/EnterCode.vue"],"sourcesContent":["<template>\n\t<section class=\"t-center pd-medium\">\n\t\t<!-- <img loading=\"lazy\" src=\"@/assets/icons/message1.png\" class=\"i-extra mn-b-small\"> -->\n\n\t\t<h3 class=\"mn-b-medium\">\n\t\t\t{{ t('auth.enterCode.verifyNumberTitle') }}\n\t\t</h3>\n\n\t\t<p class=\"mn-b-big t-transp\">{{ t('auth.enterCode.instructions') }}</p>\n\n\t\t<div class=\"w-100 mn-b-big flex-nowrap flex\">\n \t\t<input \n \t\t\ttype=\"number\" \n \t\t\tv-model=\"state.digits[0]\" \n \t\t\tref=\"firstInput\" \n \t\t\tmaxlength=\"1\" \n \t\t\t@input=\"onInput(0)\" \n \t\t\t@paste=\"($event) => onPaste($event, 0)\" \n \t\t\t@keydown=\"($event) => onKeyDown($event, 0)\" \n \t\t\tclass=\"w-100 h1 pd-small t-center bg-light radius-small mn-r-small\"\n \t\t>\n\t\t\t<input \n\t\t\t\ttype=\"number\" \n\t\t\t\tv-model=\"state.digits[1]\" \n\t\t\t\tmaxlength=\"1\" \n\t\t\t\t@input=\"onInput(1)\" \n\t\t\t\t@paste=\"($event) => onPaste($event, 1)\" \n\t\t\t\t@keydown=\"($event) => onKeyDown($event, 1)\" \n\t\t\t\tclass=\"w-100 h1 pd-small t-center bg-light radius-small mn-r-small\"\n\t\t\t>\n\t\t\t<input \n\t\t\t\ttype=\"number\" \n\t\t\t\tv-model=\"state.digits[2]\" \n\t\t\t\tmaxlength=\"1\" \n\t\t\t\t@input=\"onInput(2)\" \n\t\t\t\t@paste=\"($event) => onPaste($event, 2)\" \n\t\t\t\t@keydown=\"($event) => onKeyDown($event, 2)\" \n\t\t\t\tclass=\"w-100 h1 pd-small t-center bg-light radius-small mn-r-small\"\n\t\t\t>\n\t\t\t<input \n\t\t\t\ttype=\"number\" \n\t\t\t\tv-model=\"state.digits[3]\" \n\t\t\t\tmaxlength=\"1\" \n\t\t\t\t@input=\"onInput(3)\" \n\t\t\t\t@paste=\"($event) => onPaste($event, 3)\" \n\t\t\t\t@keydown=\"($event) => onKeyDown($event, 3)\" \n\t\t\t\tclass=\"w-100 h1 pd-small t-center bg-light radius-small\"\n\t\t\t>\n \t</div>\n\n\t\t<a v-if=\"resendTimer < 1\" @click=\"sendAgain\" class=\"t-blue\">\n\t\t\t{{ t('auth.enterCode.resendCode') }}\n\t\t</a>\n\n\t\t<span v-else>\n\t\t\t{{resendTimer}} {{ t('auth.enterCode.secondsResend') }}\n\t\t</span>\n\t</section>\n</template>\n\n<script setup>\n\t// Import components\n\timport Field from '@martyrs/src/components/Field/Field.vue'\n\t// Import libs\n\timport { computed,reactive,ref, onMounted, onBeforeMount, watch } from 'vue'\n\timport { useRoute,useRouter } from 'vue-router'\n\timport { useI18n } from 'vue-i18n'\n\t// Import state\n\timport * as auth \tfrom '@martyrs/src/modules/auth/views/store/auth.js'\n\timport * as twofa \tfrom '@martyrs/src/modules/auth/views/store/twofa.js'\n\timport { setError } from '@martyrs/src/modules/globals/views/store/globals.js'\n\t\n\tconst route = useRoute()\n\tconst router = useRouter()\n\n\t// Localization\n\t// Localization\n\tconst { t } = useI18n({\n\t\tuseScope: 'global', \n\t})\n\t\n\tconst state = reactive({\n\t digits: ['', '', '', ''],\n\t error: null,\n\t});\n\n\twatch(\n\t () => state.digits[0],\n\t (newVal) => {\n\t if (newVal && String(newVal).length > 1) {\n\t let newValArray = String(newVal).split('');\n\t console.log(newValArray);\n\n\t let newDigits = [...state.digits];\n\t newValArray.forEach((digit, i) => {\n\t console.log(i);\n\t console.log(newDigits[i]);\n\t console.log(digit);\n\t newDigits[i] = digit;\n\t });\n\n\t state.digits = newDigits;\n\n\t onInput(3);\n\t }\n\t }\n\t);\n\n\tconst firstInput = ref(null);\n\n\tconst resendTimer = ref(0);\n\n\tasync function sendAgain () {\n\t\ttry {\n\t\t \tawait twofa.sendCode(\n\t\t \t\tauth.state.user, \n\t\t \t\troute.query.method, \n\t\t \t\troute.query.type, \n\t\t \t)\n\n\t\t \tresendTimer.value = 30;\n\n\t \t// Start the timer using `setInterval()`\n\t \tconst timer = setInterval(() => {\n\t\t if (resendTimer.value > 0) {\n\t\t // Decrement the timer by 1 second\n\t\t resendTimer.value -= 1;\n\t\t } else {\n\t\t // Stop the timer when it reaches 0 seconds\n\t\t clearInterval(timer);\n\t\t }\n\t\t }, 1000);\n\t } catch (error) {\n\t\t\tsetError({ response: {data: { errorCode: \"CODE_NOT_SENT\"}}})\n\t\t}\n\t}\n\n\n\tconst onKeyDown = (event, index) => {\n\t if (event.key === \"Backspace\" && (state.digits[index] === null || state.digits[index] === undefined || state.digits[index] === '')) {\n\t event.preventDefault();\n\n\t const inputs = document.querySelectorAll('input');\n\t const prevInput = index > 0 ? inputs[index - 1] : null;\n\n\t if (prevInput) {\n\t prevInput.focus();\n\t prevInput.setSelectionRange(prevInput.value.length, prevInput.value.length);\n\t }\n\t }\n\t};\n\n\t// const onPaste = (event, index) => {\n\t// event.preventDefault();\n\t// const pastedData = event.clipboardData.getData('text/plain');\n\t \n\t// // Проверим, что вставленный текст состоит только из 4 цифр\n\t// if (/^\\d{4}$/.test(pastedData)) {\n\t// for (let i = 0; i < 4; i++) {\n\t// state.digits[index + i] = pastedData[i];\n\t// }\n\t// onInput(index + 3); // Вызываем обработчик onInput для последнего инпута, чтобы обработать логику ввода\n\t// } else {\n\t// \tsetError({ response: {data: { errorCode: \"INPUT_ERROR\"}}})\n\t// }\n\t// };\n\n\tconst onInput = (index) => {\n\t const inputs = document.querySelectorAll('input');\n\t const nextInput = inputs[index + 1];\n\t const prevInput = index > 0 ? inputs[index - 1] : null;\n\n\t // Переход на следующий инпут\n\t if (state.digits[index] !== '' && state.digits[index] !== null && state.digits[index] !== undefined && index < 4) {\n\t if (index < 3) nextInput.focus();\n\t else firstInput.value.focus();\n\t }\n\n\t // Переход на предыдущий инпут при удалении\n\t if ((state.digits[index] === null || state.digits[index] === undefined || state.digits[index] === '') && index > 0) {\n\t prevInput.focus();\n\t }\n\n\t // Проверка введенного кода\n\t if (state.digits.every(digit => digit !== '')) {\n\t const enteredCode = state.digits.join('');\n\t const correctCode = twofa.state.code.code.toString();\n\n\t if (enteredCode === correctCode) {\n\t twofa.state.code.isValid = true;\n\n\t router.push({\n\t path: '/auth/enter-password',\n\t query: { type: twofa.state.code.type, method: route.query.method, returnUrl: route.query.returnUrl }\n\t });\n\n\t } else {\n\t setError({ response: {data: { errorCode: \"WRONG_CODE\"}}})\n\t firstInput.value.focus()\n\t state.digits = ['', '', '', ''];\n\t }\n\t }\n\t};\n</script>"],"names":["useRoute","useRouter","useI18n","reactive","watch","ref","twofa.sendCode","auth.state","setError","twofa.state"],"mappings":"
|
|
1
|
+
{"version":3,"file":"EnterCode.vue.cjs","sources":["../../../../../../../../src/modules/auth/views/components/pages/EnterCode.vue"],"sourcesContent":["<template>\n\t<section class=\"t-center pd-medium\">\n\t\t<!-- <img loading=\"lazy\" src=\"@/assets/icons/message1.png\" class=\"i-extra mn-b-small\"> -->\n\n\t\t<h3 class=\"mn-b-medium\">\n\t\t\t{{ t('auth.enterCode.verifyNumberTitle') }}\n\t\t</h3>\n\n\t\t<p class=\"mn-b-big t-transp\">{{ t('auth.enterCode.instructions') }}</p>\n\n\t\t<div class=\"w-100 mn-b-big flex-nowrap flex\">\n \t\t<input \n \t\t\ttype=\"number\" \n \t\t\tv-model=\"state.digits[0]\" \n \t\t\tref=\"firstInput\" \n \t\t\tmaxlength=\"1\" \n \t\t\t@input=\"onInput(0)\" \n \t\t\t@paste=\"($event) => onPaste($event, 0)\" \n \t\t\t@keydown=\"($event) => onKeyDown($event, 0)\" \n \t\t\tclass=\"w-100 h1 pd-small t-center bg-light radius-small mn-r-small\"\n \t\t>\n\t\t\t<input \n\t\t\t\ttype=\"number\" \n\t\t\t\tv-model=\"state.digits[1]\" \n\t\t\t\tmaxlength=\"1\" \n\t\t\t\t@input=\"onInput(1)\" \n\t\t\t\t@paste=\"($event) => onPaste($event, 1)\" \n\t\t\t\t@keydown=\"($event) => onKeyDown($event, 1)\" \n\t\t\t\tclass=\"w-100 h1 pd-small t-center bg-light radius-small mn-r-small\"\n\t\t\t>\n\t\t\t<input \n\t\t\t\ttype=\"number\" \n\t\t\t\tv-model=\"state.digits[2]\" \n\t\t\t\tmaxlength=\"1\" \n\t\t\t\t@input=\"onInput(2)\" \n\t\t\t\t@paste=\"($event) => onPaste($event, 2)\" \n\t\t\t\t@keydown=\"($event) => onKeyDown($event, 2)\" \n\t\t\t\tclass=\"w-100 h1 pd-small t-center bg-light radius-small mn-r-small\"\n\t\t\t>\n\t\t\t<input \n\t\t\t\ttype=\"number\" \n\t\t\t\tv-model=\"state.digits[3]\" \n\t\t\t\tmaxlength=\"1\" \n\t\t\t\t@input=\"onInput(3)\" \n\t\t\t\t@paste=\"($event) => onPaste($event, 3)\" \n\t\t\t\t@keydown=\"($event) => onKeyDown($event, 3)\" \n\t\t\t\tclass=\"w-100 h1 pd-small t-center bg-light radius-small\"\n\t\t\t>\n \t</div>\n\n\t\t<a v-if=\"resendTimer < 1\" @click=\"sendAgain\" class=\"t-blue\">\n\t\t\t{{ t('auth.enterCode.resendCode') }}\n\t\t</a>\n\n\t\t<span v-else>\n\t\t\t{{resendTimer}} {{ t('auth.enterCode.secondsResend') }}\n\t\t</span>\n\t</section>\n</template>\n\n<script setup>\n\t// Import components\n\timport Field from '@martyrs/src/components/Field/Field.vue'\n\t// Import libs\n\timport { computed,reactive,ref, onMounted, onBeforeMount, watch } from 'vue'\n\timport { useRoute,useRouter } from 'vue-router'\n\timport { useI18n } from 'vue-i18n'\n\t// Import state\n\timport * as auth \tfrom '@martyrs/src/modules/auth/views/store/auth.js'\n\timport * as twofa \tfrom '@martyrs/src/modules/auth/views/store/twofa.js'\n\timport { setError } from '@martyrs/src/modules/globals/views/store/globals.js'\n\t\n\tconst route = useRoute()\n\tconst router = useRouter()\n\n\t// Localization\n\t// Localization\n\tconst { t } = useI18n({\n\t\tuseScope: 'global', \n\t})\n\t\n\tconst state = reactive({\n\t digits: ['', '', '', ''],\n\t error: null,\n\t});\n\n\twatch(\n\t () => state.digits[0],\n\t (newVal) => {\n\t if (newVal && String(newVal).length > 1) {\n\t let newValArray = String(newVal).split('');\n\t console.log(newValArray);\n\n\t let newDigits = [...state.digits];\n\t newValArray.forEach((digit, i) => {\n\t console.log(i);\n\t console.log(newDigits[i]);\n\t console.log(digit);\n\t newDigits[i] = digit;\n\t });\n\n\t state.digits = newDigits;\n\n\t onInput(3);\n\t }\n\t }\n\t);\n\n\tconst firstInput = ref(null);\n\n\tconst resendTimer = ref(0);\n\n\tasync function sendAgain () {\n\t\ttry {\n\t\t \tawait twofa.sendCode(\n\t\t \t\tauth.state.user, \n\t\t \t\troute.query.method, \n\t\t \t\troute.query.type, \n\t\t \t)\n\n\t\t \tresendTimer.value = 30;\n\n\t \t// Start the timer using `setInterval()`\n\t \tconst timer = setInterval(() => {\n\t\t if (resendTimer.value > 0) {\n\t\t // Decrement the timer by 1 second\n\t\t resendTimer.value -= 1;\n\t\t } else {\n\t\t // Stop the timer when it reaches 0 seconds\n\t\t clearInterval(timer);\n\t\t }\n\t\t }, 1000);\n\t } catch (error) {\n\t\t\tsetError({ response: {data: { errorCode: \"CODE_NOT_SENT\"}}})\n\t\t}\n\t}\n\n\n\tconst onKeyDown = (event, index) => {\n\t if (event.key === \"Backspace\" && (state.digits[index] === null || state.digits[index] === undefined || state.digits[index] === '')) {\n\t event.preventDefault();\n\n\t const inputs = document.querySelectorAll('input');\n\t const prevInput = index > 0 ? inputs[index - 1] : null;\n\n\t if (prevInput) {\n\t prevInput.focus();\n\t prevInput.setSelectionRange(prevInput.value.length, prevInput.value.length);\n\t }\n\t }\n\t};\n\n\t// const onPaste = (event, index) => {\n\t// event.preventDefault();\n\t// const pastedData = event.clipboardData.getData('text/plain');\n\t \n\t// // Проверим, что вставленный текст состоит только из 4 цифр\n\t// if (/^\\d{4}$/.test(pastedData)) {\n\t// for (let i = 0; i < 4; i++) {\n\t// state.digits[index + i] = pastedData[i];\n\t// }\n\t// onInput(index + 3); // Вызываем обработчик onInput для последнего инпута, чтобы обработать логику ввода\n\t// } else {\n\t// \tsetError({ response: {data: { errorCode: \"INPUT_ERROR\"}}})\n\t// }\n\t// };\n\n\tconst onInput = (index) => {\n\t const inputs = document.querySelectorAll('input');\n\t const nextInput = inputs[index + 1];\n\t const prevInput = index > 0 ? inputs[index - 1] : null;\n\n\t // Переход на следующий инпут\n\t if (state.digits[index] !== '' && state.digits[index] !== null && state.digits[index] !== undefined && index < 4) {\n\t if (index < 3) nextInput.focus();\n\t else firstInput.value.focus();\n\t }\n\n\t // Переход на предыдущий инпут при удалении\n\t if ((state.digits[index] === null || state.digits[index] === undefined || state.digits[index] === '') && index > 0) {\n\t prevInput.focus();\n\t }\n\n\t // Проверка введенного кода\n\t if (state.digits.every(digit => digit !== '')) {\n\t const enteredCode = state.digits.join('');\n\t const correctCode = twofa.state.code.code.toString();\n\n\t if (enteredCode === correctCode) {\n\t twofa.state.code.isValid = true;\n\n\t router.push({\n\t path: '/auth/enter-password',\n\t query: { type: twofa.state.code.type, method: route.query.method, returnUrl: route.query.returnUrl }\n\t });\n\n\t } else {\n\t setError({ response: {data: { errorCode: \"WRONG_CODE\"}}})\n\t firstInput.value.focus()\n\t state.digits = ['', '', '', ''];\n\t }\n\t }\n\t};\n</script>"],"names":["useRoute","useRouter","useI18n","reactive","watch","ref","twofa.sendCode","auth.state","setError","twofa.state"],"mappings":";;;;;;;;;;;;;;;;;AAwEC,UAAM,QAAQA,UAAQ,SAAA;AACtB,UAAM,SAASC,UAAS,UAAA;AAIxB,UAAM,EAAE,EAAG,IAAGC,gBAAQ;AAAA,MACrB,UAAU;AAAA,IACV,CAAA;AAED,UAAM,QAAQC,IAAAA,SAAS;AAAA,MACrB,QAAQ,CAAC,IAAI,IAAI,IAAI,EAAE;AAAA,MACvB,OAAO;AAAA,IACV,CAAE;AAEDC,QAAK;AAAA,MACD,MAAM,MAAM,OAAO,CAAC;AAAA,MACpB,CAAC,WAAW;AACR,YAAI,UAAU,OAAO,MAAM,EAAE,SAAS,GAAG;AACrC,cAAI,cAAc,OAAO,MAAM,EAAE,MAAM,EAAE;AACzC,kBAAQ,IAAI,WAAW;AAEvB,cAAI,YAAY,CAAC,GAAG,MAAM,MAAM;AAChC,sBAAY,QAAQ,CAAC,OAAO,MAAM;AAC9B,oBAAQ,IAAI,CAAC;AACb,oBAAQ,IAAI,UAAU,CAAC,CAAC;AACxB,oBAAQ,IAAI,KAAK;AACjB,sBAAU,CAAC,IAAI;AAAA,UAChC,CAAc;AAED,gBAAM,SAAS;AAEf,kBAAQ,CAAC;AAAA,QACtB;AAAA,MACA;AAAA,IACE;AAED,UAAM,aAAaC,IAAG,IAAC,IAAI;AAE3B,UAAM,cAAcA,IAAG,IAAC,CAAC;AAEzB,mBAAe,YAAa;AAC3B,UAAI;AACD,cAAMC,MAAc;AAAA,UACnBC,KAAAA,MAAW;AAAA,UACX,MAAM,MAAM;AAAA,UACZ,MAAM,MAAM;AAAA,QAClB;AAEK,oBAAY,QAAQ;AAGjB,cAAM,QAAQ,YAAY,MAAM;AAC9B,cAAI,YAAY,QAAQ,GAAG;AAEzB,wBAAY,SAAS;AAAA,UACjC,OAAiB;AAEL,0BAAc,KAAK;AAAA,UAC/B;AAAA,QACQ,GAAE,GAAI;AAAA,MACV,SAAQ,OAAO;AAChBC,gBAAQ,SAAC,EAAE,UAAU,EAAC,MAAM,EAAE,WAAW,gBAAe,EAAC,EAAC,CAAC;AAAA,MAC9D;AAAA,IACA;AAGC,UAAM,YAAY,CAAC,OAAO,UAAU;AAChC,UAAI,MAAM,QAAQ,gBAAgB,MAAM,OAAO,KAAK,MAAM,QAAQ,MAAM,OAAO,KAAK,MAAM,UAAa,MAAM,OAAO,KAAK,MAAM,KAAK;AAChI,cAAM,eAAgB;AAEtB,cAAM,SAAS,SAAS,iBAAiB,OAAO;AAChD,cAAM,YAAY,QAAQ,IAAI,OAAO,QAAQ,CAAC,IAAI;AAElD,YAAI,WAAW;AACX,oBAAU,MAAO;AACjB,oBAAU,kBAAkB,UAAU,MAAM,QAAQ,UAAU,MAAM,MAAM;AAAA,QACvF;AAAA,MACA;AAAA,IACE;AAiBD,UAAM,UAAU,CAAC,UAAU;AACvB,YAAM,SAAS,SAAS,iBAAiB,OAAO;AAChD,YAAM,YAAY,OAAO,QAAQ,CAAC;AAClC,YAAM,YAAY,QAAQ,IAAI,OAAO,QAAQ,CAAC,IAAI;AAGlD,UAAI,MAAM,OAAO,KAAK,MAAM,MAAM,MAAM,OAAO,KAAK,MAAM,QAAQ,MAAM,OAAO,KAAK,MAAM,UAAa,QAAQ,GAAG;AAC9G,YAAI,QAAQ,EAAG,WAAU,MAAO;AAAA,YAC3B,YAAW,MAAM,MAAO;AAAA,MACtC;AAGK,WAAK,MAAM,OAAO,KAAK,MAAM,QAAQ,MAAM,OAAO,KAAK,MAAM,UAAa,MAAM,OAAO,KAAK,MAAM,OAAO,QAAQ,GAAG;AAChH,kBAAU,MAAO;AAAA,MAC1B;AAGK,UAAI,MAAM,OAAO,MAAM,WAAS,UAAU,EAAE,GAAG;AAC3C,cAAM,cAAc,MAAM,OAAO,KAAK,EAAE;AACxC,cAAM,cAAcC,MAAW,MAAC,KAAK,KAAK,SAAU;AAEpD,YAAI,gBAAgB,aAAa;AAC7BA,sBAAY,KAAK,UAAU;AAE3B,iBAAO,KAAK;AAAA,YACR,MAAM;AAAA,YACN,OAAO,EAAE,MAAMA,YAAY,KAAK,MAAM,QAAQ,MAAM,MAAM,QAAQ,WAAW,MAAM,MAAM,UAAS;AAAA,UACnH,CAAc;AAAA,QAEd,OAAgB;AACHD,kBAAQ,SAAC,EAAE,UAAU,EAAC,MAAM,EAAE,WAAW,aAAY,EAAC,EAAC,CAAC;AACxD,qBAAW,MAAM,MAAK;AACtB,gBAAM,SAAS,CAAC,IAAI,IAAI,IAAI,EAAE;AAAA,QAC3C;AAAA,MACA;AAAA,IACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { reactive, watch, ref, createElementBlock, openBlock, createElementVNode, toDisplayString, unref, withDirectives, vModelText } from "vue";
|
|
2
|
+
/* empty css */
|
|
2
3
|
import { useRoute, useRouter } from "vue-router";
|
|
3
4
|
import { useI18n } from "vue-i18n";
|
|
4
5
|
import { state as state$1 } from "../../store/auth.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnterCode.vue.js","sources":["../../../../../../../../src/modules/auth/views/components/pages/EnterCode.vue"],"sourcesContent":["<template>\n\t<section class=\"t-center pd-medium\">\n\t\t<!-- <img loading=\"lazy\" src=\"@/assets/icons/message1.png\" class=\"i-extra mn-b-small\"> -->\n\n\t\t<h3 class=\"mn-b-medium\">\n\t\t\t{{ t('auth.enterCode.verifyNumberTitle') }}\n\t\t</h3>\n\n\t\t<p class=\"mn-b-big t-transp\">{{ t('auth.enterCode.instructions') }}</p>\n\n\t\t<div class=\"w-100 mn-b-big flex-nowrap flex\">\n \t\t<input \n \t\t\ttype=\"number\" \n \t\t\tv-model=\"state.digits[0]\" \n \t\t\tref=\"firstInput\" \n \t\t\tmaxlength=\"1\" \n \t\t\t@input=\"onInput(0)\" \n \t\t\t@paste=\"($event) => onPaste($event, 0)\" \n \t\t\t@keydown=\"($event) => onKeyDown($event, 0)\" \n \t\t\tclass=\"w-100 h1 pd-small t-center bg-light radius-small mn-r-small\"\n \t\t>\n\t\t\t<input \n\t\t\t\ttype=\"number\" \n\t\t\t\tv-model=\"state.digits[1]\" \n\t\t\t\tmaxlength=\"1\" \n\t\t\t\t@input=\"onInput(1)\" \n\t\t\t\t@paste=\"($event) => onPaste($event, 1)\" \n\t\t\t\t@keydown=\"($event) => onKeyDown($event, 1)\" \n\t\t\t\tclass=\"w-100 h1 pd-small t-center bg-light radius-small mn-r-small\"\n\t\t\t>\n\t\t\t<input \n\t\t\t\ttype=\"number\" \n\t\t\t\tv-model=\"state.digits[2]\" \n\t\t\t\tmaxlength=\"1\" \n\t\t\t\t@input=\"onInput(2)\" \n\t\t\t\t@paste=\"($event) => onPaste($event, 2)\" \n\t\t\t\t@keydown=\"($event) => onKeyDown($event, 2)\" \n\t\t\t\tclass=\"w-100 h1 pd-small t-center bg-light radius-small mn-r-small\"\n\t\t\t>\n\t\t\t<input \n\t\t\t\ttype=\"number\" \n\t\t\t\tv-model=\"state.digits[3]\" \n\t\t\t\tmaxlength=\"1\" \n\t\t\t\t@input=\"onInput(3)\" \n\t\t\t\t@paste=\"($event) => onPaste($event, 3)\" \n\t\t\t\t@keydown=\"($event) => onKeyDown($event, 3)\" \n\t\t\t\tclass=\"w-100 h1 pd-small t-center bg-light radius-small\"\n\t\t\t>\n \t</div>\n\n\t\t<a v-if=\"resendTimer < 1\" @click=\"sendAgain\" class=\"t-blue\">\n\t\t\t{{ t('auth.enterCode.resendCode') }}\n\t\t</a>\n\n\t\t<span v-else>\n\t\t\t{{resendTimer}} {{ t('auth.enterCode.secondsResend') }}\n\t\t</span>\n\t</section>\n</template>\n\n<script setup>\n\t// Import components\n\timport Field from '@martyrs/src/components/Field/Field.vue'\n\t// Import libs\n\timport { computed,reactive,ref, onMounted, onBeforeMount, watch } from 'vue'\n\timport { useRoute,useRouter } from 'vue-router'\n\timport { useI18n } from 'vue-i18n'\n\t// Import state\n\timport * as auth \tfrom '@martyrs/src/modules/auth/views/store/auth.js'\n\timport * as twofa \tfrom '@martyrs/src/modules/auth/views/store/twofa.js'\n\timport { setError } from '@martyrs/src/modules/globals/views/store/globals.js'\n\t\n\tconst route = useRoute()\n\tconst router = useRouter()\n\n\t// Localization\n\t// Localization\n\tconst { t } = useI18n({\n\t\tuseScope: 'global', \n\t})\n\t\n\tconst state = reactive({\n\t digits: ['', '', '', ''],\n\t error: null,\n\t});\n\n\twatch(\n\t () => state.digits[0],\n\t (newVal) => {\n\t if (newVal && String(newVal).length > 1) {\n\t let newValArray = String(newVal).split('');\n\t console.log(newValArray);\n\n\t let newDigits = [...state.digits];\n\t newValArray.forEach((digit, i) => {\n\t console.log(i);\n\t console.log(newDigits[i]);\n\t console.log(digit);\n\t newDigits[i] = digit;\n\t });\n\n\t state.digits = newDigits;\n\n\t onInput(3);\n\t }\n\t }\n\t);\n\n\tconst firstInput = ref(null);\n\n\tconst resendTimer = ref(0);\n\n\tasync function sendAgain () {\n\t\ttry {\n\t\t \tawait twofa.sendCode(\n\t\t \t\tauth.state.user, \n\t\t \t\troute.query.method, \n\t\t \t\troute.query.type, \n\t\t \t)\n\n\t\t \tresendTimer.value = 30;\n\n\t \t// Start the timer using `setInterval()`\n\t \tconst timer = setInterval(() => {\n\t\t if (resendTimer.value > 0) {\n\t\t // Decrement the timer by 1 second\n\t\t resendTimer.value -= 1;\n\t\t } else {\n\t\t // Stop the timer when it reaches 0 seconds\n\t\t clearInterval(timer);\n\t\t }\n\t\t }, 1000);\n\t } catch (error) {\n\t\t\tsetError({ response: {data: { errorCode: \"CODE_NOT_SENT\"}}})\n\t\t}\n\t}\n\n\n\tconst onKeyDown = (event, index) => {\n\t if (event.key === \"Backspace\" && (state.digits[index] === null || state.digits[index] === undefined || state.digits[index] === '')) {\n\t event.preventDefault();\n\n\t const inputs = document.querySelectorAll('input');\n\t const prevInput = index > 0 ? inputs[index - 1] : null;\n\n\t if (prevInput) {\n\t prevInput.focus();\n\t prevInput.setSelectionRange(prevInput.value.length, prevInput.value.length);\n\t }\n\t }\n\t};\n\n\t// const onPaste = (event, index) => {\n\t// event.preventDefault();\n\t// const pastedData = event.clipboardData.getData('text/plain');\n\t \n\t// // Проверим, что вставленный текст состоит только из 4 цифр\n\t// if (/^\\d{4}$/.test(pastedData)) {\n\t// for (let i = 0; i < 4; i++) {\n\t// state.digits[index + i] = pastedData[i];\n\t// }\n\t// onInput(index + 3); // Вызываем обработчик onInput для последнего инпута, чтобы обработать логику ввода\n\t// } else {\n\t// \tsetError({ response: {data: { errorCode: \"INPUT_ERROR\"}}})\n\t// }\n\t// };\n\n\tconst onInput = (index) => {\n\t const inputs = document.querySelectorAll('input');\n\t const nextInput = inputs[index + 1];\n\t const prevInput = index > 0 ? inputs[index - 1] : null;\n\n\t // Переход на следующий инпут\n\t if (state.digits[index] !== '' && state.digits[index] !== null && state.digits[index] !== undefined && index < 4) {\n\t if (index < 3) nextInput.focus();\n\t else firstInput.value.focus();\n\t }\n\n\t // Переход на предыдущий инпут при удалении\n\t if ((state.digits[index] === null || state.digits[index] === undefined || state.digits[index] === '') && index > 0) {\n\t prevInput.focus();\n\t }\n\n\t // Проверка введенного кода\n\t if (state.digits.every(digit => digit !== '')) {\n\t const enteredCode = state.digits.join('');\n\t const correctCode = twofa.state.code.code.toString();\n\n\t if (enteredCode === correctCode) {\n\t twofa.state.code.isValid = true;\n\n\t router.push({\n\t path: '/auth/enter-password',\n\t query: { type: twofa.state.code.type, method: route.query.method, returnUrl: route.query.returnUrl }\n\t });\n\n\t } else {\n\t setError({ response: {data: { errorCode: \"WRONG_CODE\"}}})\n\t firstInput.value.focus()\n\t state.digits = ['', '', '', ''];\n\t }\n\t }\n\t};\n</script>"],"names":["state","twofa.sendCode","auth.state","twofa.state"],"mappings":"
|
|
1
|
+
{"version":3,"file":"EnterCode.vue.js","sources":["../../../../../../../../src/modules/auth/views/components/pages/EnterCode.vue"],"sourcesContent":["<template>\n\t<section class=\"t-center pd-medium\">\n\t\t<!-- <img loading=\"lazy\" src=\"@/assets/icons/message1.png\" class=\"i-extra mn-b-small\"> -->\n\n\t\t<h3 class=\"mn-b-medium\">\n\t\t\t{{ t('auth.enterCode.verifyNumberTitle') }}\n\t\t</h3>\n\n\t\t<p class=\"mn-b-big t-transp\">{{ t('auth.enterCode.instructions') }}</p>\n\n\t\t<div class=\"w-100 mn-b-big flex-nowrap flex\">\n \t\t<input \n \t\t\ttype=\"number\" \n \t\t\tv-model=\"state.digits[0]\" \n \t\t\tref=\"firstInput\" \n \t\t\tmaxlength=\"1\" \n \t\t\t@input=\"onInput(0)\" \n \t\t\t@paste=\"($event) => onPaste($event, 0)\" \n \t\t\t@keydown=\"($event) => onKeyDown($event, 0)\" \n \t\t\tclass=\"w-100 h1 pd-small t-center bg-light radius-small mn-r-small\"\n \t\t>\n\t\t\t<input \n\t\t\t\ttype=\"number\" \n\t\t\t\tv-model=\"state.digits[1]\" \n\t\t\t\tmaxlength=\"1\" \n\t\t\t\t@input=\"onInput(1)\" \n\t\t\t\t@paste=\"($event) => onPaste($event, 1)\" \n\t\t\t\t@keydown=\"($event) => onKeyDown($event, 1)\" \n\t\t\t\tclass=\"w-100 h1 pd-small t-center bg-light radius-small mn-r-small\"\n\t\t\t>\n\t\t\t<input \n\t\t\t\ttype=\"number\" \n\t\t\t\tv-model=\"state.digits[2]\" \n\t\t\t\tmaxlength=\"1\" \n\t\t\t\t@input=\"onInput(2)\" \n\t\t\t\t@paste=\"($event) => onPaste($event, 2)\" \n\t\t\t\t@keydown=\"($event) => onKeyDown($event, 2)\" \n\t\t\t\tclass=\"w-100 h1 pd-small t-center bg-light radius-small mn-r-small\"\n\t\t\t>\n\t\t\t<input \n\t\t\t\ttype=\"number\" \n\t\t\t\tv-model=\"state.digits[3]\" \n\t\t\t\tmaxlength=\"1\" \n\t\t\t\t@input=\"onInput(3)\" \n\t\t\t\t@paste=\"($event) => onPaste($event, 3)\" \n\t\t\t\t@keydown=\"($event) => onKeyDown($event, 3)\" \n\t\t\t\tclass=\"w-100 h1 pd-small t-center bg-light radius-small\"\n\t\t\t>\n \t</div>\n\n\t\t<a v-if=\"resendTimer < 1\" @click=\"sendAgain\" class=\"t-blue\">\n\t\t\t{{ t('auth.enterCode.resendCode') }}\n\t\t</a>\n\n\t\t<span v-else>\n\t\t\t{{resendTimer}} {{ t('auth.enterCode.secondsResend') }}\n\t\t</span>\n\t</section>\n</template>\n\n<script setup>\n\t// Import components\n\timport Field from '@martyrs/src/components/Field/Field.vue'\n\t// Import libs\n\timport { computed,reactive,ref, onMounted, onBeforeMount, watch } from 'vue'\n\timport { useRoute,useRouter } from 'vue-router'\n\timport { useI18n } from 'vue-i18n'\n\t// Import state\n\timport * as auth \tfrom '@martyrs/src/modules/auth/views/store/auth.js'\n\timport * as twofa \tfrom '@martyrs/src/modules/auth/views/store/twofa.js'\n\timport { setError } from '@martyrs/src/modules/globals/views/store/globals.js'\n\t\n\tconst route = useRoute()\n\tconst router = useRouter()\n\n\t// Localization\n\t// Localization\n\tconst { t } = useI18n({\n\t\tuseScope: 'global', \n\t})\n\t\n\tconst state = reactive({\n\t digits: ['', '', '', ''],\n\t error: null,\n\t});\n\n\twatch(\n\t () => state.digits[0],\n\t (newVal) => {\n\t if (newVal && String(newVal).length > 1) {\n\t let newValArray = String(newVal).split('');\n\t console.log(newValArray);\n\n\t let newDigits = [...state.digits];\n\t newValArray.forEach((digit, i) => {\n\t console.log(i);\n\t console.log(newDigits[i]);\n\t console.log(digit);\n\t newDigits[i] = digit;\n\t });\n\n\t state.digits = newDigits;\n\n\t onInput(3);\n\t }\n\t }\n\t);\n\n\tconst firstInput = ref(null);\n\n\tconst resendTimer = ref(0);\n\n\tasync function sendAgain () {\n\t\ttry {\n\t\t \tawait twofa.sendCode(\n\t\t \t\tauth.state.user, \n\t\t \t\troute.query.method, \n\t\t \t\troute.query.type, \n\t\t \t)\n\n\t\t \tresendTimer.value = 30;\n\n\t \t// Start the timer using `setInterval()`\n\t \tconst timer = setInterval(() => {\n\t\t if (resendTimer.value > 0) {\n\t\t // Decrement the timer by 1 second\n\t\t resendTimer.value -= 1;\n\t\t } else {\n\t\t // Stop the timer when it reaches 0 seconds\n\t\t clearInterval(timer);\n\t\t }\n\t\t }, 1000);\n\t } catch (error) {\n\t\t\tsetError({ response: {data: { errorCode: \"CODE_NOT_SENT\"}}})\n\t\t}\n\t}\n\n\n\tconst onKeyDown = (event, index) => {\n\t if (event.key === \"Backspace\" && (state.digits[index] === null || state.digits[index] === undefined || state.digits[index] === '')) {\n\t event.preventDefault();\n\n\t const inputs = document.querySelectorAll('input');\n\t const prevInput = index > 0 ? inputs[index - 1] : null;\n\n\t if (prevInput) {\n\t prevInput.focus();\n\t prevInput.setSelectionRange(prevInput.value.length, prevInput.value.length);\n\t }\n\t }\n\t};\n\n\t// const onPaste = (event, index) => {\n\t// event.preventDefault();\n\t// const pastedData = event.clipboardData.getData('text/plain');\n\t \n\t// // Проверим, что вставленный текст состоит только из 4 цифр\n\t// if (/^\\d{4}$/.test(pastedData)) {\n\t// for (let i = 0; i < 4; i++) {\n\t// state.digits[index + i] = pastedData[i];\n\t// }\n\t// onInput(index + 3); // Вызываем обработчик onInput для последнего инпута, чтобы обработать логику ввода\n\t// } else {\n\t// \tsetError({ response: {data: { errorCode: \"INPUT_ERROR\"}}})\n\t// }\n\t// };\n\n\tconst onInput = (index) => {\n\t const inputs = document.querySelectorAll('input');\n\t const nextInput = inputs[index + 1];\n\t const prevInput = index > 0 ? inputs[index - 1] : null;\n\n\t // Переход на следующий инпут\n\t if (state.digits[index] !== '' && state.digits[index] !== null && state.digits[index] !== undefined && index < 4) {\n\t if (index < 3) nextInput.focus();\n\t else firstInput.value.focus();\n\t }\n\n\t // Переход на предыдущий инпут при удалении\n\t if ((state.digits[index] === null || state.digits[index] === undefined || state.digits[index] === '') && index > 0) {\n\t prevInput.focus();\n\t }\n\n\t // Проверка введенного кода\n\t if (state.digits.every(digit => digit !== '')) {\n\t const enteredCode = state.digits.join('');\n\t const correctCode = twofa.state.code.code.toString();\n\n\t if (enteredCode === correctCode) {\n\t twofa.state.code.isValid = true;\n\n\t router.push({\n\t path: '/auth/enter-password',\n\t query: { type: twofa.state.code.type, method: route.query.method, returnUrl: route.query.returnUrl }\n\t });\n\n\t } else {\n\t setError({ response: {data: { errorCode: \"WRONG_CODE\"}}})\n\t firstInput.value.focus()\n\t state.digits = ['', '', '', ''];\n\t }\n\t }\n\t};\n</script>"],"names":["state","twofa.sendCode","auth.state","twofa.state"],"mappings":";;;;;;;;;;;;;;;AAwEC,UAAM,QAAQ,SAAQ;AACtB,UAAM,SAAS,UAAS;AAIxB,UAAM,EAAE,EAAG,IAAG,QAAQ;AAAA,MACrB,UAAU;AAAA,IACV,CAAA;AAED,UAAMA,UAAQ,SAAS;AAAA,MACrB,QAAQ,CAAC,IAAI,IAAI,IAAI,EAAE;AAAA,MACvB,OAAO;AAAA,IACV,CAAE;AAED;AAAA,MACI,MAAMA,QAAM,OAAO,CAAC;AAAA,MACpB,CAAC,WAAW;AACR,YAAI,UAAU,OAAO,MAAM,EAAE,SAAS,GAAG;AACrC,cAAI,cAAc,OAAO,MAAM,EAAE,MAAM,EAAE;AACzC,kBAAQ,IAAI,WAAW;AAEvB,cAAI,YAAY,CAAC,GAAGA,QAAM,MAAM;AAChC,sBAAY,QAAQ,CAAC,OAAO,MAAM;AAC9B,oBAAQ,IAAI,CAAC;AACb,oBAAQ,IAAI,UAAU,CAAC,CAAC;AACxB,oBAAQ,IAAI,KAAK;AACjB,sBAAU,CAAC,IAAI;AAAA,UAChC,CAAc;AAEDA,kBAAM,SAAS;AAEf,kBAAQ,CAAC;AAAA,QACtB;AAAA,MACA;AAAA,IACE;AAED,UAAM,aAAa,IAAI,IAAI;AAE3B,UAAM,cAAc,IAAI,CAAC;AAEzB,mBAAe,YAAa;AAC3B,UAAI;AACD,cAAMC;AAAAA,UACLC,QAAW;AAAA,UACX,MAAM,MAAM;AAAA,UACZ,MAAM,MAAM;AAAA,QAClB;AAEK,oBAAY,QAAQ;AAGjB,cAAM,QAAQ,YAAY,MAAM;AAC9B,cAAI,YAAY,QAAQ,GAAG;AAEzB,wBAAY,SAAS;AAAA,UACjC,OAAiB;AAEL,0BAAc,KAAK;AAAA,UAC/B;AAAA,QACQ,GAAE,GAAI;AAAA,MACV,SAAQ,OAAO;AAChB,iBAAS,EAAE,UAAU,EAAC,MAAM,EAAE,WAAW,gBAAe,EAAC,EAAC,CAAC;AAAA,MAC9D;AAAA,IACA;AAGC,UAAM,YAAY,CAAC,OAAO,UAAU;AAChC,UAAI,MAAM,QAAQ,gBAAgBF,QAAM,OAAO,KAAK,MAAM,QAAQA,QAAM,OAAO,KAAK,MAAM,UAAaA,QAAM,OAAO,KAAK,MAAM,KAAK;AAChI,cAAM,eAAgB;AAEtB,cAAM,SAAS,SAAS,iBAAiB,OAAO;AAChD,cAAM,YAAY,QAAQ,IAAI,OAAO,QAAQ,CAAC,IAAI;AAElD,YAAI,WAAW;AACX,oBAAU,MAAO;AACjB,oBAAU,kBAAkB,UAAU,MAAM,QAAQ,UAAU,MAAM,MAAM;AAAA,QACvF;AAAA,MACA;AAAA,IACE;AAiBD,UAAM,UAAU,CAAC,UAAU;AACvB,YAAM,SAAS,SAAS,iBAAiB,OAAO;AAChD,YAAM,YAAY,OAAO,QAAQ,CAAC;AAClC,YAAM,YAAY,QAAQ,IAAI,OAAO,QAAQ,CAAC,IAAI;AAGlD,UAAIA,QAAM,OAAO,KAAK,MAAM,MAAMA,QAAM,OAAO,KAAK,MAAM,QAAQA,QAAM,OAAO,KAAK,MAAM,UAAa,QAAQ,GAAG;AAC9G,YAAI,QAAQ,EAAG,WAAU,MAAO;AAAA,YAC3B,YAAW,MAAM,MAAO;AAAA,MACtC;AAGK,WAAKA,QAAM,OAAO,KAAK,MAAM,QAAQA,QAAM,OAAO,KAAK,MAAM,UAAaA,QAAM,OAAO,KAAK,MAAM,OAAO,QAAQ,GAAG;AAChH,kBAAU,MAAO;AAAA,MAC1B;AAGK,UAAIA,QAAM,OAAO,MAAM,WAAS,UAAU,EAAE,GAAG;AAC3C,cAAM,cAAcA,QAAM,OAAO,KAAK,EAAE;AACxC,cAAM,cAAcG,MAAY,KAAK,KAAK,SAAU;AAEpD,YAAI,gBAAgB,aAAa;AAC7BA,gBAAY,KAAK,UAAU;AAE3B,iBAAO,KAAK;AAAA,YACR,MAAM;AAAA,YACN,OAAO,EAAE,MAAMA,MAAY,KAAK,MAAM,QAAQ,MAAM,MAAM,QAAQ,WAAW,MAAM,MAAM,UAAS;AAAA,UACnH,CAAc;AAAA,QAEd,OAAgB;AACH,mBAAS,EAAE,UAAU,EAAC,MAAM,EAAE,WAAW,aAAY,EAAC,EAAC,CAAC;AACxD,qBAAW,MAAM,MAAK;AACtBH,kBAAM,SAAS,CAAC,IAAI,IAAI,IAAI,EAAE;AAAA,QAC3C;AAAA,MACA;AAAA,IACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
3
|
const vue = require("vue");
|
|
4
4
|
;/* empty css */
|
|
5
|
-
const Field = require("../../../../../components/Field/Field.
|
|
6
|
-
const Button = require("../../../../../components/Button/Button.
|
|
5
|
+
const Field = require("../../../../../components/Field/Field.vue2.cjs");
|
|
6
|
+
const Button = require("../../../../../components/Button/Button.vue.cjs");
|
|
7
7
|
const vueRouter = require("vue-router");
|
|
8
8
|
const vueI18n = require("vue-i18n");
|
|
9
9
|
const auth = require("../../store/auth.cjs");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ref, createElementBlock, openBlock, createElementVNode, createCommentVNode, createVNode, toDisplayString, unref, createTextVNode, withCtx } from "vue";
|
|
2
2
|
/* empty css */
|
|
3
|
-
import
|
|
4
|
-
import _sfc_main$
|
|
3
|
+
import _sfc_main$1 from "../../../../../components/Field/Field.vue2.js";
|
|
4
|
+
import _sfc_main$2 from "../../../../../components/Button/Button.vue.js";
|
|
5
5
|
import { useRoute, useRouter } from "vue-router";
|
|
6
6
|
import { useI18n } from "vue-i18n";
|
|
7
7
|
import { state, actions } from "../../store/auth.js";
|
|
@@ -73,7 +73,7 @@ const _sfc_main = {
|
|
|
73
73
|
createElementVNode("h3", _hoisted_2, toDisplayString(unref(t)("auth.enterPassword.almostDone")), 1),
|
|
74
74
|
unref(route).query.method === "reset-password" ? (openBlock(), createElementBlock("p", _hoisted_3, toDisplayString(unref(t)("auth.enterPassword.newPasswordPrompt")), 1)) : (openBlock(), createElementBlock("p", _hoisted_4, toDisplayString(unref(t)("auth.enterPassword.registrationPasswordPrompt")), 1)),
|
|
75
75
|
createElementVNode("div", _hoisted_5, [
|
|
76
|
-
createVNode(
|
|
76
|
+
createVNode(_sfc_main$1, {
|
|
77
77
|
field: state.user.password,
|
|
78
78
|
"onUpdate:field": _cache[0] || (_cache[0] = ($event) => state.user.password = $event),
|
|
79
79
|
type: "password",
|
|
@@ -81,7 +81,7 @@ const _sfc_main = {
|
|
|
81
81
|
placeholder: unref(t)("auth.enterPassword.passwordPlaceholder"),
|
|
82
82
|
class: "bg-light pd-small radius-small mn-b-thin"
|
|
83
83
|
}, null, 8, ["field", "validation", "placeholder"]),
|
|
84
|
-
createVNode(
|
|
84
|
+
createVNode(_sfc_main$1, {
|
|
85
85
|
field: state.user.passwordRepeat,
|
|
86
86
|
"onUpdate:field": _cache[1] || (_cache[1] = ($event) => state.user.passwordRepeat = $event),
|
|
87
87
|
type: "password",
|
|
@@ -98,7 +98,7 @@ const _sfc_main = {
|
|
|
98
98
|
rel: "noopener noreferrer"
|
|
99
99
|
}, "End User License Agreement (EULA)", -1)
|
|
100
100
|
]))) : createCommentVNode("", true),
|
|
101
|
-
createVNode(_sfc_main$
|
|
101
|
+
createVNode(_sfc_main$2, {
|
|
102
102
|
submit: onSubmit,
|
|
103
103
|
callback: redirectTo,
|
|
104
104
|
class: "w-100 bg-main mn-b-big"
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
3
|
const vue = require("vue");
|
|
4
4
|
;/* empty css */
|
|
5
|
-
const Field = require("../../../../../components/Field/Field.
|
|
6
|
-
const Button = require("../../../../../components/Button/Button.
|
|
5
|
+
const Field = require("../../../../../components/Field/Field.vue2.cjs");
|
|
6
|
+
const Button = require("../../../../../components/Button/Button.vue.cjs");
|
|
7
7
|
const vueRouter = require("vue-router");
|
|
8
8
|
const auth = require("../../store/auth.cjs");
|
|
9
9
|
const invites = require("../../../../organizations/store/invites.cjs");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ref, onMounted, createElementBlock, openBlock, createElementVNode, createVNode, withCtx } from "vue";
|
|
2
2
|
/* empty css */
|
|
3
|
-
import
|
|
4
|
-
import _sfc_main$
|
|
3
|
+
import _sfc_main$1 from "../../../../../components/Field/Field.vue2.js";
|
|
4
|
+
import _sfc_main$2 from "../../../../../components/Button/Button.vue.js";
|
|
5
5
|
import { useRoute, useRouter } from "vue-router";
|
|
6
6
|
import { state, actions as actions$1 } from "../../store/auth.js";
|
|
7
7
|
import { actions } from "../../../../organizations/store/invites.js";
|
|
@@ -51,7 +51,7 @@ const _sfc_main = {
|
|
|
51
51
|
_cache[3] || (_cache[3] = createElementVNode("h3", { class: "mn-b-small" }, "You have been invited to the organization", -1)),
|
|
52
52
|
_cache[4] || (_cache[4] = createElementVNode("p", { class: "mn-b-semi t-transp" }, "Please provide a password to complete the registration.", -1)),
|
|
53
53
|
createElementVNode("div", _hoisted_2, [
|
|
54
|
-
createVNode(
|
|
54
|
+
createVNode(_sfc_main$1, {
|
|
55
55
|
field: state.user.password,
|
|
56
56
|
"onUpdate:field": _cache[0] || (_cache[0] = ($event) => state.user.password = $event),
|
|
57
57
|
type: "password",
|
|
@@ -60,7 +60,7 @@ const _sfc_main = {
|
|
|
60
60
|
placeholder: "******",
|
|
61
61
|
class: "mn-b-thin bg-light pd-medium radius-small"
|
|
62
62
|
}, null, 8, ["field", "validation"]),
|
|
63
|
-
createVNode(
|
|
63
|
+
createVNode(_sfc_main$1, {
|
|
64
64
|
field: state.user.passwordRepeat,
|
|
65
65
|
"onUpdate:field": _cache[1] || (_cache[1] = ($event) => state.user.passwordRepeat = $event),
|
|
66
66
|
type: "password",
|
|
@@ -69,7 +69,7 @@ const _sfc_main = {
|
|
|
69
69
|
class: "bg-light pd-medium radius-small"
|
|
70
70
|
}, null, 8, ["field"])
|
|
71
71
|
]),
|
|
72
|
-
createVNode(_sfc_main$
|
|
72
|
+
createVNode(_sfc_main$2, {
|
|
73
73
|
submit: onSubmit,
|
|
74
74
|
callback: redirectTo,
|
|
75
75
|
class: "w-100 bg-main mn-b-big"
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
3
|
const vue = require("vue");
|
|
4
|
+
;/* empty css */
|
|
4
5
|
;/* empty css */
|
|
5
|
-
;/* empty css
|
|
6
|
+
;/* empty css */
|
|
6
7
|
const Dropdown = require("../../../../../components/Dropdown/Dropdown.vue.cjs");
|
|
7
|
-
const Menu = require("../../../../../components/Menu/Menu.
|
|
8
|
+
const Menu = require("../../../../../components/Menu/Menu.vue.cjs");
|
|
8
9
|
const MenuItem = require("../../../../../components/Menu/MenuItem.vue.cjs");
|
|
9
10
|
const ButtonToggleMembership = require("../../../../organizations/components/elements/ButtonToggleMembership.vue.cjs");
|
|
10
11
|
const FormReport = require("../../../../reports/components/sections/FormReport.vue.cjs");
|