@ozdao/martyrs 0.2.584 → 0.2.586
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/auth.server.js +161 -96
- package/dist/{authJwt-J1csaMWA.js → authJwt-DKbMMjw0.js} +33 -0
- package/dist/builder.js +2 -0
- package/dist/chats.server.js +2 -2
- package/dist/community.server.js +1 -1
- package/dist/core.server.js +191 -2
- package/dist/{core.websocket-C2FxNmZ1.js → core.websocket-Cl76z2wT.js} +41 -5
- package/dist/{crud-q1ye5IhV.js → crud-DpOXTZep.js} +1 -1
- package/dist/events.server.js +2 -2
- package/dist/files.server.js +1 -1
- package/dist/gallery.server.js +1 -1
- package/dist/index-kvBwwb0w.js +427 -0
- package/dist/inventory.server.js +2 -2
- package/dist/{mailing-DuEFRsa3.js → mailing-DT7nbNjZ.js} +16 -3
- package/dist/{main-fmp55tJF.js → main-BIf-WirR.js} +864 -865
- package/dist/marketplace.server.js +1 -1
- package/dist/martyrs/dist/{main-fmp55tJF.js → main-BIf-WirR.js} +193 -38
- package/dist/martyrs/dist/main-BIf-WirR.js.map +1 -0
- package/dist/martyrs/dist/{web-BDuQSQKS.js → web-O7lXcjg0.js} +2 -2
- package/dist/martyrs/dist/{web-BDuQSQKS.js.map → web-O7lXcjg0.js.map} +1 -1
- package/dist/martyrs/src/components/Button/{Button.vue2.js → Button.vue.js} +8 -7
- package/dist/martyrs/src/components/Button/Button.vue.js.map +1 -0
- package/dist/martyrs/src/components/EditImages/{EditImages.vue2.js → EditImages.vue.js} +2 -2
- package/dist/martyrs/src/components/EditImages/EditImages.vue.js.map +1 -0
- package/dist/martyrs/src/components/Feed/Feed.vue.js +1 -1
- package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +1 -1
- package/dist/martyrs/src/components/Loader/Loader.vue.js +1 -1
- package/dist/martyrs/src/components/Loader/Loader.vue.js.map +1 -1
- package/dist/martyrs/src/components/Spoiler/{Spoiler.vue2.js → Spoiler.vue.js} +2 -2
- package/dist/martyrs/src/components/Spoiler/Spoiler.vue.js.map +1 -0
- package/dist/martyrs/src/components/Tab/{Tab.vue.js → Tab.vue2.js} +2 -2
- package/dist/martyrs/src/components/Tab/Tab.vue2.js.map +1 -0
- package/dist/martyrs/src/components/Tooltip/Tooltip.vue2.js +17 -22
- package/dist/martyrs/src/components/Tooltip/Tooltip.vue2.js.map +1 -1
- package/dist/martyrs/src/modules/auth/auth.client.js +18 -24
- package/dist/martyrs/src/modules/auth/auth.client.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/blocks/OtpDialog.vue.js +178 -0
- package/dist/martyrs/src/modules/auth/views/components/blocks/OtpDialog.vue.js.map +1 -0
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +104 -77
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +198 -14
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +71 -30
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +3 -3
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +87 -31
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/plugins/otp.plugin.js +100 -0
- package/dist/martyrs/src/modules/auth/views/plugins/otp.plugin.js.map +1 -0
- package/dist/martyrs/src/modules/auth/views/router/auth.router.js +2 -31
- package/dist/martyrs/src/modules/auth/views/router/auth.router.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/router/users.router.js +0 -14
- package/dist/martyrs/src/modules/auth/views/router/users.router.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/store/auth.js +1 -56
- package/dist/martyrs/src/modules/auth/views/store/auth.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/store/users.js +5 -1
- package/dist/martyrs/src/modules/auth/views/store/users.js.map +1 -1
- package/dist/martyrs/src/modules/backoffice/backoffice.client.js +3 -15
- package/dist/martyrs/src/modules/backoffice/backoffice.client.js.map +1 -1
- package/dist/martyrs/src/modules/backoffice/configs/navigation.backoffice.config.js +99 -0
- package/dist/martyrs/src/modules/backoffice/configs/navigation.backoffice.config.js.map +1 -0
- package/dist/martyrs/src/modules/backoffice/{backoffice.router.js → router/backoffice.router.js} +9 -7
- package/dist/martyrs/src/modules/backoffice/router/backoffice.router.js.map +1 -0
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +7 -1
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
- package/dist/martyrs/src/modules/core/core.client.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/classes/core.app.js +5 -1
- package/dist/martyrs/src/modules/core/views/classes/core.app.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/blocks/CardHeader.vue.js +0 -1
- package/dist/martyrs/src/modules/core/views/components/blocks/CardHeader.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/blocks/PopupAuth.vue.js +1 -1
- package/dist/martyrs/src/modules/core/views/components/blocks/PopupDateSelector.vue.js +1 -1
- package/dist/martyrs/src/modules/core/views/components/elements/OnlineIndicator.vue.js +74 -0
- package/dist/martyrs/src/modules/core/views/components/elements/OnlineIndicator.vue.js.map +1 -0
- package/dist/martyrs/src/modules/core/views/components/layouts/App.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js +77 -67
- package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/pages/404.vue.js +76 -7
- package/dist/martyrs/src/modules/core/views/components/pages/404.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/partials/Header.vue.js +1 -1
- package/dist/martyrs/src/modules/core/views/components/partials/Navigation.vue.js +1 -1
- package/dist/martyrs/src/modules/core/views/components/partials/NavigationBar.vue.js +1 -1
- package/dist/martyrs/src/modules/core/views/components/sections/{Filters.vue2.js → Filters.vue.js} +2 -2
- package/dist/martyrs/src/modules/core/views/components/sections/Filters.vue.js.map +1 -0
- package/dist/martyrs/src/modules/core/views/components/sections/SectionPageTitle.vue.js +1 -1
- package/dist/martyrs/src/modules/core/views/store/core.store.js +1 -0
- package/dist/martyrs/src/modules/core/views/store/core.store.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/utils/vue-app-renderer.js +2 -1
- package/dist/martyrs/src/modules/core/views/utils/vue-app-renderer.js.map +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.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +2 -2
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +2 -1
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/sections/EditTickets.vue.js +1 -1
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +2 -2
- package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.js +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +1 -1
- package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.js +1 -1
- package/dist/martyrs/src/modules/marketplace/views/components/pages/Marketplace.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/blocks/ActionButtons.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.js +0 -1
- package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/player/FullscreenPlayer.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/player/PlayerControls.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.js +1 -1
- package/dist/martyrs/src/modules/notifications/components/sections/NotificationPreferences.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js +1 -2
- package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +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.js +2 -2
- package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +4 -3
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +1 -2
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +1 -2
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js.map +1 -1
- package/dist/martyrs/src/modules/pages/pages.router.js +7 -5
- package/dist/martyrs/src/modules/pages/pages.router.js.map +1 -1
- package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +0 -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.js +1 -1
- package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +0 -1
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +1 -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.js +3 -3
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +4 -4
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.js +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.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +2 -2
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +2 -2
- package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +1 -1
- package/dist/martyrs.css +1 -1
- package/dist/martyrs.es.js +1 -1
- package/dist/music.server.js +1 -1
- package/dist/notifications.server.js +1 -1
- package/dist/orders.server.js +7 -6
- package/dist/organizations.server.js +2 -2
- package/dist/products.server.js +2 -2
- package/dist/profile.schema-C31Lynn3.js +21 -0
- package/dist/rents.server.js +1 -1
- package/dist/sessions.service-COcwjd0f.js +86 -0
- package/dist/style.css +183 -108
- package/dist/{tickets.controller-B7r0mK-5.js → tickets.controller-DdF85W-i.js} +1 -1
- package/dist/visitors.service-B1dhhuSo.js +83 -0
- package/dist/wallet.server.js +2 -2
- package/dist/{web-BDuQSQKS.js → web-O7lXcjg0.js} +1 -1
- package/package.json +5 -1
- package/src/builder/modes/ssr.rspack.dev.js +2 -0
- package/src/cli/commands/create.js +106 -0
- package/src/cli/index.js +25 -0
- package/src/cli/templates/app/.env.development.mustache +14 -0
- package/src/cli/templates/app/.env.production.mustache +14 -0
- package/src/cli/templates/app/Dockerfile +36 -0
- package/src/cli/templates/app/babel.config.js +14 -0
- package/src/cli/templates/app/env.js +3 -0
- package/src/cli/templates/app/index.js +46 -0
- package/src/cli/templates/app/mongodb.config.js +18 -0
- package/src/cli/templates/app/package.json.mustache +65 -0
- package/src/cli/templates/app/src/client.js +22 -0
- package/src/cli/templates/app/src/components/pages/Index.vue +11 -0
- package/src/cli/templates/app/src/configs/global.config.js.mustache +40 -0
- package/src/cli/templates/app/src/localization/extensions.js +2 -0
- package/src/cli/templates/app/src/localization/index.js +44 -0
- package/src/cli/templates/app/src/localization/overrides.js +2 -0
- package/src/cli/templates/app/src/localization/translations.js +10 -0
- package/src/cli/templates/app/src/models/index.js +9 -0
- package/src/cli/templates/app/src/router/index.js +48 -0
- package/src/cli/templates/app/src/scss/theme.scss +18 -0
- package/src/cli/templates/app/src/server.js +68 -0
- package/src/cli/templates/app/src/store/index.js +9 -0
- package/src/cli/templates/docker-compose.yaml.mustache +47 -0
- package/src/cli/templates/nginx/Dockerfile +5 -0
- package/src/cli/templates/nginx/default.conf.mustache +55 -0
- package/src/cli/templates/public/favicon/.gitkeep +0 -0
- package/src/cli/templates/start-dev.sh.mustache +131 -0
- package/src/cli/templates/start-prod.sh.mustache +12 -0
- package/src/components/Button/Button.vue +61 -15
- package/src/components/Loader/Loader.vue +1 -1
- package/src/components/Tooltip/Tooltip.vue +31 -23
- package/src/modules/TASKS.MD +30 -1
- package/src/modules/auth/CLAUDE.md +381 -0
- package/src/modules/auth/FIXES.md +0 -38
- package/src/modules/auth/auth.client.js +4 -6
- package/src/modules/auth/auth.server.js +4 -15
- package/src/modules/auth/controllers/middlewares/authJwt.js +59 -17
- package/src/modules/auth/controllers/middlewares/index.js +4 -1
- package/src/modules/auth/controllers/middlewares/otp.middleware.js +166 -0
- package/src/modules/auth/controllers/middlewares/verifySignUp.js +0 -1
- package/src/modules/auth/controllers/middlewares/verifyUser.js +58 -11
- package/src/modules/auth/controllers/routes/auth.routes.js +48 -6
- package/src/modules/auth/controllers/routes/users.routes.js +29 -8
- package/src/modules/auth/controllers/services/auth.service.js +62 -12
- package/src/modules/auth/controllers/services/otp.service.js +109 -0
- package/src/modules/auth/controllers/services/users.service.js +46 -6
- package/src/modules/auth/models/otp.model.js +20 -0
- package/src/modules/auth/views/components/blocks/OtpDialog.vue +168 -0
- package/src/modules/auth/views/components/pages/Profile.vue +51 -18
- package/src/modules/auth/views/components/pages/ProfileEditAccount.vue +199 -45
- package/src/modules/auth/views/components/pages/ResetPassword.vue +170 -132
- package/src/modules/auth/views/components/pages/SignIn.vue +2 -1
- package/src/modules/auth/views/components/pages/SignUp.vue +203 -147
- package/src/modules/auth/views/plugins/otp.plugin.js +104 -0
- package/src/modules/auth/views/router/auth.router.js +1 -24
- package/src/modules/auth/views/router/users.router.js +1 -12
- package/src/modules/auth/views/store/auth.js +0 -68
- package/src/modules/auth/views/store/users.js +6 -2
- package/src/modules/backoffice/backoffice.client.js +1 -25
- package/src/modules/backoffice/configs/navigation.backoffice.config.js +99 -0
- package/src/modules/backoffice/router/backoffice.router.js +8 -7
- package/src/modules/community/components/pages/BlogPost.vue +9 -1
- package/src/modules/core/controllers/classes/core.websocket.js +57 -6
- package/src/modules/core/controllers/middlewares/visitor.logger.js +49 -0
- package/src/modules/core/controllers/services/requests.service.js +53 -0
- package/src/modules/core/controllers/services/sessions.service.js +98 -0
- package/src/modules/core/controllers/services/visitors.service.js +102 -0
- package/src/modules/core/controllers/utils/mailing.js +16 -3
- package/src/modules/core/core.client.js +1 -0
- package/src/modules/core/core.server.js +45 -3
- package/src/modules/core/models/request.model.js +30 -0
- package/src/modules/core/models/session.model.js +43 -0
- package/src/modules/core/models/visitor.model.js +28 -0
- package/src/modules/core/views/classes/core.app.js +8 -3
- package/src/modules/core/views/components/elements/OnlineIndicator.vue +115 -0
- package/src/modules/core/views/components/layouts/App.vue +2 -2
- package/src/modules/core/views/components/layouts/Client.vue +444 -479
- package/src/modules/core/views/components/pages/404.vue +55 -3
- package/src/modules/core/views/store/core.store.js +1 -0
- package/src/modules/core/views/utils/vue-app-renderer.js +9 -1
- package/src/modules/orders/controllers/orders.controller.js +3 -3
- package/src/modules/pages/pages.router.js +4 -2
- package/src/modules/pages/views/router/pages.backoffice.router.js +4 -3
- package/src/modules/products/components/pages/Products.vue +1 -1
- package/dist/_virtual/alignment-pattern.js +0 -5
- package/dist/_virtual/alignment-pattern.js.map +0 -1
- package/dist/_virtual/browser.js +0 -8
- package/dist/_virtual/browser.js.map +0 -1
- package/dist/_virtual/browser2.js +0 -5
- package/dist/_virtual/browser2.js.map +0 -1
- package/dist/_virtual/canvas.js +0 -5
- package/dist/_virtual/canvas.js.map +0 -1
- package/dist/_virtual/dijkstra.js +0 -5
- package/dist/_virtual/dijkstra.js.map +0 -1
- package/dist/_virtual/error-correction-code.js +0 -5
- package/dist/_virtual/error-correction-code.js.map +0 -1
- package/dist/_virtual/error-correction-level.js +0 -5
- package/dist/_virtual/error-correction-level.js.map +0 -1
- package/dist/_virtual/finder-pattern.js +0 -5
- package/dist/_virtual/finder-pattern.js.map +0 -1
- package/dist/_virtual/format-info.js +0 -5
- package/dist/_virtual/format-info.js.map +0 -1
- package/dist/_virtual/galois-field.js +0 -5
- package/dist/_virtual/galois-field.js.map +0 -1
- package/dist/_virtual/mask-pattern.js +0 -5
- package/dist/_virtual/mask-pattern.js.map +0 -1
- package/dist/_virtual/mode.js +0 -5
- package/dist/_virtual/mode.js.map +0 -1
- package/dist/_virtual/polynomial.js +0 -5
- package/dist/_virtual/polynomial.js.map +0 -1
- package/dist/_virtual/qrcode.js +0 -5
- package/dist/_virtual/qrcode.js.map +0 -1
- package/dist/_virtual/regex.js +0 -5
- package/dist/_virtual/regex.js.map +0 -1
- package/dist/_virtual/segments.js +0 -5
- package/dist/_virtual/segments.js.map +0 -1
- package/dist/_virtual/svg-tag.js +0 -5
- package/dist/_virtual/svg-tag.js.map +0 -1
- package/dist/_virtual/utils.js +0 -5
- package/dist/_virtual/utils.js.map +0 -1
- package/dist/_virtual/utils2.js +0 -5
- package/dist/_virtual/utils2.js.map +0 -1
- package/dist/_virtual/version-check.js +0 -5
- package/dist/_virtual/version-check.js.map +0 -1
- package/dist/_virtual/version.js +0 -5
- package/dist/_virtual/version.js.map +0 -1
- package/dist/index-_Edcmck_.js +0 -170
- package/dist/martyrs/dist/main-fmp55tJF.js.map +0 -1
- package/dist/martyrs/node_modules/.pnpm/bignumber.js@9.1.2/node_modules/bignumber.js/bignumber.js +0 -1336
- package/dist/martyrs/node_modules/.pnpm/bignumber.js@9.1.2/node_modules/bignumber.js/bignumber.js.map +0 -1
- package/dist/martyrs/src/components/Button/Button.vue2.js.map +0 -1
- package/dist/martyrs/src/components/EditImages/EditImages.vue2.js.map +0 -1
- package/dist/martyrs/src/components/Spoiler/Spoiler.vue2.js.map +0 -1
- package/dist/martyrs/src/components/Tab/Tab.vue.js.map +0 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.js +0 -166
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.js.map +0 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +0 -118
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js.map +0 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +0 -360
- package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js.map +0 -1
- package/dist/martyrs/src/modules/auth/views/store/twofa.js +0 -40
- package/dist/martyrs/src/modules/auth/views/store/twofa.js.map +0 -1
- package/dist/martyrs/src/modules/backoffice/backoffice.router.js.map +0 -1
- package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js +0 -150
- package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js.map +0 -1
- package/dist/martyrs/src/modules/core/views/components/sections/Filters.vue2.js.map +0 -1
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CardBalanceReplenished.vue.js +0 -43
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CardBalanceReplenished.vue.js.map +0 -1
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.js +0 -47
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.js.map +0 -1
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CashDeposit.vue.js +0 -29
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CashDeposit.vue.js.map +0 -1
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +0 -89
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js.map +0 -1
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDepositProcessing.vue.js +0 -136
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDepositProcessing.vue.js.map +0 -1
- package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +0 -238
- package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js.map +0 -1
- package/dist/martyrs/src/modules/wallet/views/localization/wallet.json.js +0 -9
- package/dist/martyrs/src/modules/wallet/views/localization/wallet.json.js.map +0 -1
- package/dist/martyrs/src/modules/wallet/views/store/wallet.store.js +0 -134
- package/dist/martyrs/src/modules/wallet/views/store/wallet.store.js.map +0 -1
- package/dist/node_modules/.pnpm/dijkstrajs@1.0.3/node_modules/dijkstrajs/dijkstra.js +0 -106
- package/dist/node_modules/.pnpm/dijkstrajs@1.0.3/node_modules/dijkstrajs/dijkstra.js.map +0 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/browser.js +0 -79
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/browser.js.map +0 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/can-promise.js +0 -14
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/can-promise.js.map +0 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/alignment-pattern.js +0 -43
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/alignment-pattern.js.map +0 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/alphanumeric-data.js +0 -85
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/alphanumeric-data.js.map +0 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/bit-buffer.js +0 -40
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/bit-buffer.js.map +0 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/bit-matrix.js +0 -34
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/bit-matrix.js.map +0 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/byte-data.js +0 -36
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/byte-data.js.map +0 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/error-correction-code.js +0 -367
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/error-correction-code.js.map +0 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/error-correction-level.js +0 -52
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/error-correction-level.js.map +0 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/finder-pattern.js +0 -25
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/finder-pattern.js.map +0 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/format-info.js +0 -24
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/format-info.js.map +0 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/galois-field.js +0 -38
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/galois-field.js.map +0 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/kanji-data.js +0 -46
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/kanji-data.js.map +0 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/mask-pattern.js +0 -149
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/mask-pattern.js.map +0 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/mode.js +0 -90
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/mode.js.map +0 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/numeric-data.js +0 -41
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/numeric-data.js.map +0 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/polynomial.js +0 -44
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/polynomial.js.map +0 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/qrcode.js +0 -279
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/qrcode.js.map +0 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/reed-solomon-encoder.js +0 -38
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/reed-solomon-encoder.js.map +0 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/regex.js +0 -33
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/regex.js.map +0 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/segments.js +0 -201
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/segments.js.map +0 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/utils.js +0 -84
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/utils.js.map +0 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/version-check.js +0 -14
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/version-check.js.map +0 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/version.js +0 -107
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/version.js.map +0 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/canvas.js +0 -61
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/canvas.js.map +0 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/svg-tag.js +0 -64
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/svg-tag.js.map +0 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/utils.js +0 -87
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/utils.js.map +0 -1
- package/dist/profile.schema-CjLOfG7b.js +0 -92
- package/src/modules/auth/controllers/middlewares/visitor.logger.js +0 -75
- package/src/modules/auth/controllers/routes/twofa.routes.js +0 -8
- package/src/modules/auth/controllers/services/twofa.service.js +0 -30
- package/src/modules/auth/models/request.model.js +0 -14
- package/src/modules/auth/models/visitor.model.js +0 -11
- package/src/modules/auth/views/components/pages/EnterCode.vue +0 -204
- package/src/modules/auth/views/components/pages/EnterPassword.vue +0 -123
- package/src/modules/auth/views/components/sections/ProfileEditCredentials.vue +0 -329
- package/src/modules/auth/views/store/twofa.js +0 -70
- package/src/modules/auth//320/220/320/240/320/245/320/230/320/242/320/225/320/232/320/242/320/243/320/240/320/220.md +0 -445
- package/src/modules/backoffice/backoffice.router.js +0 -69
- package/src/modules/backoffice/components/partials/Sidebar.vue +0 -165
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { W as Rn } from "./main-
|
|
1
|
+
import { W as Rn } from "./main-BIf-WirR.js";
|
|
2
2
|
class f extends Rn {
|
|
3
3
|
constructor() {
|
|
4
4
|
super(...arguments), this.group = "CapacitorStorage";
|
|
@@ -52,4 +52,4 @@ class f extends Rn {
|
|
|
52
52
|
export {
|
|
53
53
|
f as PreferencesWeb
|
|
54
54
|
};
|
|
55
|
-
//# sourceMappingURL=web-
|
|
55
|
+
//# sourceMappingURL=web-O7lXcjg0.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-
|
|
1
|
+
{"version":3,"file":"web-O7lXcjg0.js","sources":["../../web-O7lXcjg0.js"],"sourcesContent":["import { W as p } from \"./main-BIf-WirR.js\";\nclass f extends p {\n constructor() {\n super(...arguments), this.group = \"CapacitorStorage\";\n }\n async configure({ group: e }) {\n typeof e == \"string\" && (this.group = e);\n }\n async get(e) {\n return { value: this.impl.getItem(this.applyPrefix(e.key)) };\n }\n async set(e) {\n this.impl.setItem(this.applyPrefix(e.key), e.value);\n }\n async remove(e) {\n this.impl.removeItem(this.applyPrefix(e.key));\n }\n async keys() {\n return { keys: this.rawKeys().map((t) => t.substring(this.prefix.length)) };\n }\n async clear() {\n for (const e of this.rawKeys())\n this.impl.removeItem(e);\n }\n async migrate() {\n var e;\n const t = [], s = [], n = \"_cap_\", o = Object.keys(this.impl).filter((i) => i.indexOf(n) === 0);\n for (const i of o) {\n const r = i.substring(n.length), a = (e = this.impl.getItem(i)) !== null && e !== void 0 ? e : \"\", { value: l } = await this.get({ key: r });\n typeof l == \"string\" ? s.push(r) : (await this.set({ key: r, value: a }), t.push(r));\n }\n return { migrated: t, existing: s };\n }\n async removeOld() {\n const e = \"_cap_\", t = Object.keys(this.impl).filter((s) => s.indexOf(e) === 0);\n for (const s of t)\n this.impl.removeItem(s);\n }\n get impl() {\n return window.localStorage;\n }\n get prefix() {\n return this.group === \"NativeStorage\" ? \"\" : `${this.group}.`;\n }\n rawKeys() {\n return Object.keys(this.impl).filter((e) => e.indexOf(this.prefix) === 0);\n }\n applyPrefix(e) {\n return this.prefix + e;\n }\n}\nexport {\n f as PreferencesWeb\n};\n"],"names":["p"],"mappings":";AACA,MAAM,UAAUA,GAAE;AAAA,EAChB,cAAc;AACZ,UAAM,GAAG,SAAS,GAAG,KAAK,QAAQ;AAAA,EACpC;AAAA,EACA,MAAM,UAAU,EAAE,OAAO,KAAK;AAC5B,WAAO,KAAK,aAAa,KAAK,QAAQ;AAAA,EACxC;AAAA,EACA,MAAM,IAAI,GAAG;AACX,WAAO,EAAE,OAAO,KAAK,KAAK,QAAQ,KAAK,YAAY,EAAE,GAAG,CAAC,EAAC;AAAA,EAC5D;AAAA,EACA,MAAM,IAAI,GAAG;AACX,SAAK,KAAK,QAAQ,KAAK,YAAY,EAAE,GAAG,GAAG,EAAE,KAAK;AAAA,EACpD;AAAA,EACA,MAAM,OAAO,GAAG;AACd,SAAK,KAAK,WAAW,KAAK,YAAY,EAAE,GAAG,CAAC;AAAA,EAC9C;AAAA,EACA,MAAM,OAAO;AACX,WAAO,EAAE,MAAM,KAAK,QAAO,EAAG,IAAI,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,MAAM,CAAC,EAAC;AAAA,EAC3E;AAAA,EACA,MAAM,QAAQ;AACZ,eAAW,KAAK,KAAK,QAAO;AAC1B,WAAK,KAAK,WAAW,CAAC;AAAA,EAC1B;AAAA,EACA,MAAM,UAAU;AACd,QAAI;AACJ,UAAM,IAAI,CAAA,GAAI,IAAI,CAAA,GAAI,IAAI,SAAS,IAAI,OAAO,KAAK,KAAK,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC;AAC9F,eAAW,KAAK,GAAG;AACjB,YAAM,IAAI,EAAE,UAAU,EAAE,MAAM,GAAG,KAAK,IAAI,KAAK,KAAK,QAAQ,CAAC,OAAO,QAAQ,MAAM,SAAS,IAAI,IAAI,EAAE,OAAO,MAAM,MAAM,KAAK,IAAI,EAAE,KAAK,EAAC,CAAE;AAC3I,aAAO,KAAK,WAAW,EAAE,KAAK,CAAC,KAAK,MAAM,KAAK,IAAI,EAAE,KAAK,GAAG,OAAO,EAAC,CAAE,GAAG,EAAE,KAAK,CAAC;AAAA,IACpF;AACA,WAAO,EAAE,UAAU,GAAG,UAAU,EAAC;AAAA,EACnC;AAAA,EACA,MAAM,YAAY;AAChB,UAAM,IAAI,SAAS,IAAI,OAAO,KAAK,KAAK,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC;AAC9E,eAAW,KAAK;AACd,WAAK,KAAK,WAAW,CAAC;AAAA,EAC1B;AAAA,EACA,IAAI,OAAO;AACT,WAAO,OAAO;AAAA,EAChB;AAAA,EACA,IAAI,SAAS;AACX,WAAO,KAAK,UAAU,kBAAkB,KAAK,GAAG,KAAK,KAAK;AAAA,EAC5D;AAAA,EACA,UAAU;AACR,WAAO,OAAO,KAAK,KAAK,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,KAAK,MAAM,MAAM,CAAC;AAAA,EAC1E;AAAA,EACA,YAAY,GAAG;AACb,WAAO,KAAK,SAAS;AAAA,EACvB;AACF;"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { ref, createElementBlock, openBlock, normalizeClass, withModifiers, createElementVNode, createCommentVNode, renderSlot,
|
|
2
|
-
import Loader from "../Loader/Loader.vue.js";
|
|
1
|
+
import { ref, createElementBlock, openBlock, normalizeClass, withModifiers, createElementVNode, createCommentVNode, renderSlot, createBlock, Fragment, createTextVNode, toDisplayString } from "vue";
|
|
3
2
|
import _sfc_main$1 from "../../modules/icons/navigation/IconCheckmark.vue.js";
|
|
4
3
|
import _sfc_main$2 from "../../modules/icons/navigation/IconCross.vue.js";
|
|
5
|
-
/* empty css
|
|
4
|
+
/* empty css */
|
|
6
5
|
const _hoisted_1 = ["disabled"];
|
|
7
6
|
const _hoisted_2 = {
|
|
8
7
|
key: 0,
|
|
@@ -113,9 +112,11 @@ const _sfc_main = {
|
|
|
113
112
|
], 2),
|
|
114
113
|
createElementVNode("span", {
|
|
115
114
|
class: normalizeClass(["button-loader", { "active": loading.value && __props.showLoader }])
|
|
116
|
-
}, [
|
|
117
|
-
|
|
118
|
-
|
|
115
|
+
}, _cache[0] || (_cache[0] = [
|
|
116
|
+
createElementVNode("span", { class: "dot" }, null, -1),
|
|
117
|
+
createElementVNode("span", { class: "dot" }, null, -1),
|
|
118
|
+
createElementVNode("span", { class: "dot" }, null, -1)
|
|
119
|
+
]), 2),
|
|
119
120
|
createElementVNode("span", {
|
|
120
121
|
class: normalizeClass(["button-success", { "active": finished.value && __props.showSucces }])
|
|
121
122
|
}, [
|
|
@@ -146,4 +147,4 @@ const _sfc_main = {
|
|
|
146
147
|
export {
|
|
147
148
|
_sfc_main as default
|
|
148
149
|
};
|
|
149
|
-
//# sourceMappingURL=Button.
|
|
150
|
+
//# sourceMappingURL=Button.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button.vue.js","sources":["../../../../../src/components/Button/Button.vue"],"sourcesContent":["<script setup>\nimport { ref } from 'vue'\n\nimport IconCheckmark from '@martyrs/src/modules/icons/navigation/IconCheckmark.vue';\nimport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue';\n\nconst props = defineProps({\n submit: {\n type: Function,\n default: async () => { console.log('Button click.') }\n },\n text: {\n type: Object,\n default: () => ({\n success: null,\n error: null\n })\n },\n counter: {\n type: Object\n },\n callback: {\n type: Function,\n default: async () => { console.log('Button callback.') }\n },\n callbackDelay: {\n type: Number,\n default: 750\n },\n showSucces: {\n type: Boolean,\n default: true\n },\n showLoader: {\n type: Boolean,\n default: true\n },\n validation: {\n type: Boolean,\n default: false\n },\n})\n\nconst emits = defineEmits(['error'])\n\nconst button = ref(null)\nconst error = ref(null)\nconst loading = ref(false)\nconst finished = ref(false)\n\nasync function Submit() {\n console.log('click')\n \n button.value.style['pointer-events'] = 'none'\n error.value = null\n loading.value = true\n\n // Функция для сброса состояния кнопки\n const resetButton = () => {\n if (button.value) {\n button.value.style.pointerEvents = 'auto'\n loading.value = false\n finished.value = false\n error.value = null\n }\n }\n\n try {\n await props.submit()\n\n button.value.classList.replace('bg-main', 'bg-second')\n loading.value = false\n\n // Используем функцию сброса состояния кнопки здесь\n if (props.showSucces) { \n finished.value = true\n setTimeout(() => {\n resetButton()\n button.value.classList.replace('bg-second', 'bg-main')\n }, 500)\n } else {\n resetButton()\n button.value.classList.replace('bg-second', 'bg-main')\n }\n\n // Если есть callback, мы также установим таймер для его вызова\n if (props.callback) setTimeout(() => props.callback(), props.callbackDelay)\n\n } catch (err) {\n console.error('=== BUTTON ERROR ===', err)\n emits('error', err)\n // Если возникла ошибка, мы изменяем стили и устанавливаем сообщение об ошибке\n button.value.classList.replace('bg-main', 'bg-fourth-nano')\n loading.value = false\n error.value = true\n \n // После задержки снова сбрасываем состояние кнопки\n setTimeout(() => {\n resetButton()\n // Так как класс кнопки был изменен, вернем его в исходное состояние\n button.value.classList.replace('bg-fourth-nano', 'bg-main')\n }, 1330)\n }\n}\n</script>\n\n<template>\n <button \n @click.stop=\"Submit\"\n :disabled=\"validation\"\n ref=\"button\"\n\t\tclass=\"button\"\n :class=\"{ 'button--disabled': loading || validation }\"\n >\n <span class=\"button-content\" :class=\"{ 'hidden': loading || error || finished }\">\n <slot></slot>\n </span>\n\n <span class=\"button-loader\" :class=\"{ 'active': loading && showLoader }\">\n <span class=\"dot\"></span>\n <span class=\"dot\"></span>\n <span class=\"dot\"></span>\n </span>\n\n <span class=\"button-success\" :class=\"{ 'active': finished && showSucces }\">\n <template v-if=\"text.success\">{{ text.success }}</template>\n <IconCheckmark v-else class=\"i-regular\" />\n </span>\n\n <span class=\"button-error\" :class=\"{ 'active': error }\">\n <template v-if=\"text.error\">{{ text.error }}</template>\n <IconCross v-else class=\"i-regular\" />\n </span>\n \n <!-- Counter -->\n <div v-if=\"counter\" class=\"button-counter font-second flex flex-center\">\n <span>{{ counter }}</span>\n </div>\n </button>\n</template>\n\n<style lang=\"scss\">\nbutton[disabled] {\n opacity: 0.75 !important;\n pointer-events: none !important;\n cursor: default !important;\n color: rgba(var(--dark), 0.33) !important;\n background: rgba(var(--light), 1) !important;\n}\n\na.button {\n text-box: trim-both cap alphabetic;\n}\n\n.button {\n position: relative;\n display: flex;\n padding: var(--small);\n border-radius: var(--small);\n text-box: trim-both cap alphabetic;\n transform: scale(1);\n opacity: 1;\n align-items: center;\n justify-content: center;\n color: black;\n text-align: center;\n font-size: 1rem;\n letter-spacing: 5%;\n transition: all 0.33s ease;\n\n &:hover {\n cursor: pointer;\n opacity: 0.9;\n }\n\n &:active {\n transform: scale(0.95);\n }\n\n &-small {\n padding: 0.75rem;\n border-radius: 0.5rem;\n height: fit-content;\n }\n\n .button-counter {\n position: absolute;\n right: -8px;\n bottom: -8px;\n background: yellow;\n height: 16px;\n border-radius: 16px;\n width: 16px;\n font-weight: 500;\n text-align: center;\n line-height: 16px;\n font-size: 10px;\n }\n}\n\n.button-content {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n transform: translateY(0);\n opacity: 1;\n transition:\n opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1),\n transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n\n &.hidden {\n opacity: 0;\n transform: translateY(4px);\n }\n}\n\n.button-loader {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n opacity: 0;\n transform: translateY(4px);\n transition:\n opacity 0.25s cubic-bezier(0.0, 0, 0.2, 1) 0.05s,\n transform 0.25s cubic-bezier(0.0, 0, 0.2, 1) 0.05s;\n pointer-events: none;\n\n &.active {\n opacity: 1;\n transform: translateY(0);\n }\n\n .dot {\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background: currentColor;\n animation: dot-bounce 0.8s cubic-bezier(0.4, 0, 0.2, 1) infinite;\n\n &:nth-child(1) { animation-delay: 0s; }\n &:nth-child(2) { animation-delay: 0.12s; }\n &:nth-child(3) { animation-delay: 0.24s; }\n }\n}\n\n@keyframes dot-bounce {\n 0%, 100% {\n transform: translateY(0);\n }\n 50% {\n transform: translateY(-5px);\n }\n}\n\n.button-success {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0;\n transform: translateY(4px);\n transition:\n opacity 0.2s cubic-bezier(0.0, 0, 0.2, 1),\n transform 0.2s cubic-bezier(0.0, 0, 0.2, 1);\n pointer-events: none;\n\n &.active {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.button-error {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0;\n transform: translateY(4px);\n transition:\n opacity 0.2s cubic-bezier(0.0, 0, 0.2, 1),\n transform 0.2s cubic-bezier(0.0, 0, 0.2, 1);\n pointer-events: none;\n\n &.active {\n opacity: 1;\n transform: translateY(0);\n }\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,UAAM,QAAQ;AAqCd,UAAM,QAAQ;AAEd,UAAM,SAAS,IAAI,IAAI;AACvB,UAAM,QAAQ,IAAI,IAAI;AACtB,UAAM,UAAU,IAAI,KAAK;AACzB,UAAM,WAAW,IAAI,KAAK;AAE1B,mBAAe,SAAS;AACtB,cAAQ,IAAI,OAAO;AAEnB,aAAO,MAAM,MAAM,gBAAgB,IAAI;AACvC,YAAM,QAAQ;AACd,cAAQ,QAAQ;AAGhB,YAAM,cAAc,MAAM;AACxB,YAAI,OAAO,OAAO;AAChB,iBAAO,MAAM,MAAM,gBAAgB;AACnC,kBAAQ,QAAQ;AAChB,mBAAS,QAAQ;AACjB,gBAAM,QAAQ;AAAA,QAChB;AAAA,MACF;AAEA,UAAI;AACF,cAAM,MAAM,OAAM;AAElB,eAAO,MAAM,UAAU,QAAQ,WAAW,WAAW;AACrD,gBAAQ,QAAQ;AAGhB,YAAI,MAAM,YAAY;AACpB,mBAAS,QAAQ;AACjB,qBAAW,MAAM;AACf,wBAAW;AACX,mBAAO,MAAM,UAAU,QAAQ,aAAa,SAAS;AAAA,UACvD,GAAG,GAAG;AAAA,QACR,OAAO;AACL,sBAAW;AACX,iBAAO,MAAM,UAAU,QAAQ,aAAa,SAAS;AAAA,QACvD;AAGA,YAAI,MAAM,SAAU,YAAW,MAAM,MAAM,SAAQ,GAAI,MAAM,aAAa;AAAA,MAE5E,SAAS,KAAK;AACZ,gBAAQ,MAAM,wBAAwB,GAAG;AACzC,cAAM,SAAS,GAAG;AAElB,eAAO,MAAM,UAAU,QAAQ,WAAW,gBAAgB;AAC1D,gBAAQ,QAAQ;AAChB,cAAM,QAAQ;AAGd,mBAAW,MAAM;AACf,sBAAW;AAEX,iBAAO,MAAM,UAAU,QAAQ,kBAAkB,SAAS;AAAA,QAC5D,GAAG,IAAI;AAAA,MACT;AAAA,IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -2,7 +2,7 @@ import { ref, watchEffect, createElementBlock, openBlock, createBlock, createCom
|
|
|
2
2
|
import { VueDraggableNext } from "../../../../node_modules/.pnpm/vue-draggable-next@2.2.1_sortablejs@1.15.6_vue@3.5.13_typescript@5.8.3_/node_modules/vue-draggable-next/dist/vue-draggable-next.esm-bundler.js";
|
|
3
3
|
import _sfc_main$2 from "../UploadImageMultiple/UploadImageMultiple.vue.js";
|
|
4
4
|
import _sfc_main$1 from "../../modules/icons/navigation/IconCross.vue.js";
|
|
5
|
-
/* empty css
|
|
5
|
+
/* empty css */
|
|
6
6
|
const _hoisted_1 = { class: "flex-nowrap flex gap-small" };
|
|
7
7
|
const _hoisted_2 = { class: "pos-relative" };
|
|
8
8
|
const _hoisted_3 = ["src"];
|
|
@@ -92,4 +92,4 @@ const _sfc_main = {
|
|
|
92
92
|
export {
|
|
93
93
|
_sfc_main as default
|
|
94
94
|
};
|
|
95
|
-
//# sourceMappingURL=EditImages.
|
|
95
|
+
//# sourceMappingURL=EditImages.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EditImages.vue.js","sources":["../../../../../src/components/EditImages/EditImages.vue"],"sourcesContent":["<template>\n\t<div class=\"flex-nowrap flex gap-small\">\n <VueDraggableNext v-if=\"localImages.length > 0\" class=\"gap-small flex dragArea list-group w-full\" v-model=\"localImages\" @change=\"emitChanges\">\n\t\t\t<div v-for=\"(image, index) in localImages\" class=\"pos-relative\">\n\t\t\t\t<img loading=\"lazy\" class=\"i-extra object-fit-contain bg-black-transp-5 pd-nano radius-small o-hidden\" :src=\"(FILE_SERVER_URL || '') + image\" />\n\t\t\t\t\n <IconCross \n @click=\"deleteImage(index)\" \n class=\"cursor-pointer pos-absolute t-center flex-center flex radius-extra i-medium bg-red pos-t-10-negative pos-r-10-negative pd-micro\"\n />\n\t\t\t</div>\n\t\t</VueDraggableNext>\n <div\n v-if=\"localImages.length > 0\" \n class=\"i-extra uppercase flex-center flex radius-small o-hidden br-main br-2px pd-small\"\n >\n <UploadImageMultiple \n @update:images=\"onImagesUpdate\"\n text=\"Add\"\n :options=\"{\n showText: false\n }\"\n :uploadPath=\"'photos'\"\n class=\"radius-big\"\n />\n </div>\n\n\n\t\t<UploadImageMultiple \t\n v-if=\"localImages.length < 1\" \n @update:images=\"onImagesUpdate\"\n :uploadPath=\"props.uploadPath\"\n :text=\"props.text\"\n :options=\"props.options\"\n class=\"w-100 pd-medium\"\n />\n\t</div>\t\n</template>\n\n<script setup>\nimport { ref, defineProps, watchEffect } from 'vue';\nimport { VueDraggableNext } from 'vue-draggable-next'\nimport UploadImageMultiple from \"@martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue\";\nimport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue';\n\nconst props = defineProps({\n images: Array,\n text: Object,\n options: Object,\n uploadPath: {\n type: Object,\n default: 'unsorted'\n }\n});\n\nconst emit = defineEmits(['update:images'])\n\nconst localImages = ref([...props.images])\n\nwatchEffect(() => {\n localImages.value = [...props.images]; // Обновление localImages при изменении props.images\n});\n\nconst emitChanges = () => {\n emit('update:images', localImages.value)\n}\n\nconst onImagesUpdate = (newImages) => {\n localImages.value = [...localImages.value, ...newImages]\n emitChanges()\n}\n\nconst deleteImage = (index) => {\n localImages.value.splice(index, 1)\n emitChanges()\n}\n</script>\n\n<style lang=\"scss\">\n// Your styles here\n</style>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA6CA,UAAM,QAAQ;AAUd,UAAM,OAAO;AAEb,UAAM,cAAc,IAAI,CAAC,GAAG,MAAM,MAAM,CAAC;AAEzC,gBAAY,MAAM;AAChB,kBAAY,QAAQ,CAAC,GAAG,MAAM,MAAM;AAAA,IACtC,CAAC;AAED,UAAM,cAAc,MAAM;AACxB,WAAK,iBAAiB,YAAY,KAAK;AAAA,IACzC;AAEA,UAAM,iBAAiB,CAAC,cAAc;AACpC,kBAAY,QAAQ,CAAC,GAAG,YAAY,OAAO,GAAG,SAAS;AACvD,kBAAW;AAAA,IACb;AAEA,UAAM,cAAc,CAAC,UAAU;AAC7B,kBAAY,MAAM,OAAO,OAAO,CAAC;AACjC,kBAAW;AAAA,IACb;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -7,7 +7,7 @@ import _sfc_main$2 from "../Dropdown/Dropdown.vue.js";
|
|
|
7
7
|
import Calendar from "../Calendar/Calendar.vue2.js";
|
|
8
8
|
import _sfc_main$1 from "../../modules/core/views/components/blocks/BlockSearch.vue.js";
|
|
9
9
|
import _sfc_main$5 from "../../modules/core/views/components/blocks/BlockSorting.vue.js";
|
|
10
|
-
import Filters from "../../modules/core/views/components/sections/Filters.
|
|
10
|
+
import Filters from "../../modules/core/views/components/sections/Filters.vue.js";
|
|
11
11
|
import _sfc_main$4 from "../../modules/core/views/components/elements/ButtonSort.vue.js";
|
|
12
12
|
import _sfc_main$3 from "../../modules/core/views/components/elements/ButtonDate.vue.js";
|
|
13
13
|
/* empty css */
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ref, onMounted, watchEffect, createBlock, openBlock, unref, isRef, withCtx, renderSlot, createVNode, createElementBlock, createCommentVNode, toDisplayString } from "vue";
|
|
2
2
|
import Field from "../Field/Field.vue.js";
|
|
3
|
-
import _sfc_main$1 from "../Button/Button.
|
|
3
|
+
import _sfc_main$1 from "../Button/Button.vue.js";
|
|
4
4
|
import _sfc_main$2 from "../../modules/icons/navigation/IconArrow.vue.js";
|
|
5
5
|
import { useI18n } from "vue-i18n";
|
|
6
6
|
const _hoisted_1 = {
|
|
@@ -27,7 +27,7 @@ const _hoisted_2 = {
|
|
|
27
27
|
};
|
|
28
28
|
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
29
29
|
return openBlock(), createElementBlock("div", {
|
|
30
|
-
class: normalizeClass(["circular-loader
|
|
30
|
+
class: normalizeClass(["circular-loader z-index-1 w-100 h-100 w-max-2r h-max-2r", { "circular-loader-centered": $props.centered }])
|
|
31
31
|
}, [
|
|
32
32
|
_cache[0] || (_cache[0] = createElementVNode("svg", { viewBox: "25 25 50 50" }, [
|
|
33
33
|
createElementVNode("circle", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Loader.vue.js","sources":["../../../../../src/components/Loader/Loader.vue"],"sourcesContent":["<template>\n <div class=\"circular-loader
|
|
1
|
+
{"version":3,"file":"Loader.vue.js","sources":["../../../../../src/components/Loader/Loader.vue"],"sourcesContent":["<template>\n <div class=\"circular-loader z-index-1 w-100 h-100 w-max-2r h-max-2r\" :class=\"{ 'circular-loader-centered': centered }\">\n <svg viewBox=\"25 25 50 50\">\n <circle class=\"circular-loader-fill\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" stroke-width=\"4\" stroke-miterlimit=\"10\" />\n <circle class=\"circular-loader-circle\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" stroke-width=\"4\" stroke-miterlimit=\"10\" />\n </svg>\n <div v-if=\"progress\" class=\"progress-text\">{{ progress }}</div>\n <div v-if=\"status\" class=\"uppercase fw-semi w-m-10r status-text\">{{ status }}</div>\n </div>\n</template>\n\n<script>\nexport default {\n props: {\n progress: {\n type: Number,\n default: null,\n },\n status: {\n type: String,\n default: null,\n },\n centered: {\n type: Boolean,\n default: false\n },\n },\n};\n</script>\n\n<style>\n.circular-loader-centered {\n top: calc(50% - 1rem);\n left: calc(50% - 1rem);\n}\n\n.circular-loader svg {\n animation: rotate 2s linear infinite;\n}\n\n.circular-loader-circle {\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n stroke-linecap: round;\n stroke: rgb(var(--main));\n animation: dash 1.5s ease-in-out infinite;\n}\n\n.circular-loader-fill {\n stroke-linecap: round;\n stroke: rgba(var(--black),0.2);\n}\n\n.progress-text {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-size: 0.8rem;\n color: rgb(var(--main));;\n}\n\n.status-text {\n position: absolute;\n top: 120%;\n left: calc(50% - 5rem);\n font-size: 0.8rem;\n width: 10rem !important;\n text-align: center;\n}\n\n@keyframes rotate {\n 100% {\n transform: rotate(360deg);\n }\n}\n\n@keyframes dash {\n 0% {\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 89, 200;\n stroke-dashoffset: -35;\n }\n 100% {\n stroke-dasharray: 1, 200;\n stroke-dashoffset: -124;\n }\n}\n</style>"],"names":["_createElementBlock","_normalizeClass","_createElementVNode","_toDisplayString","_createCommentVNode"],"mappings":";;;AAYA,MAAK,YAAU;AAAA,EACb,OAAO;AAAA,IACL,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA;IAEX,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA;IAEX,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA;;AAGf;;EA3BA,KAAA;AAAA,EAMyB,OAAM;;;EAN/B,KAAA;AAAA,EAOuB,OAAM;;;sBAN3BA,mBAOM,OAAA;AAAA,IAPD,OADPC,eAAA,CACa,2DAAyD,EAAA,4BAAuC,OAAA,UAAQ,CAAA;AAAA;8BACjHC,mBAGM,OAAA,EAHD,SAAQ,iBAAa;AAAA,MACxBA,mBAAkH,UAAA;AAAA,QAA1G,OAAM;AAAA,QAAuB,IAAG;AAAA,QAAK,IAAG;AAAA,QAAK,GAAE;AAAA,QAAK,MAAK;AAAA,QAAO,gBAAa;AAAA,QAAI,qBAAkB;AAAA;MAC3GA,mBAAoH,UAAA;AAAA,QAA5G,OAAM;AAAA,QAAyB,IAAG;AAAA,QAAK,IAAG;AAAA,QAAK,GAAE;AAAA,QAAK,MAAK;AAAA,QAAO,gBAAa;AAAA,QAAI,qBAAkB;AAAA;;IAEpG,OAAA,yBAAXF,mBAA+D,OAA/D,YAA+DG,gBAAjB,OAAA,QAAQ,GAAA,CAAA,KAN1DC,mBAAA,IAAA,IAAA;AAAA,IAOe,OAAA,uBAAXJ,mBAAmF,OAAnF,YAAmFG,gBAAf,OAAA,MAAM,GAAA,CAAA,KAP9EC,mBAAA,IAAA,IAAA;AAAA;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ref, onMounted, createElementBlock, openBlock, createElementVNode, createVNode, renderSlot, Transition, withCtx, withDirectives, vShow } from "vue";
|
|
2
|
-
/* empty css
|
|
2
|
+
/* empty css */
|
|
3
3
|
const _sfc_main = {
|
|
4
4
|
__name: "Spoiler",
|
|
5
5
|
props: {
|
|
@@ -70,4 +70,4 @@ const _sfc_main = {
|
|
|
70
70
|
export {
|
|
71
71
|
_sfc_main as default
|
|
72
72
|
};
|
|
73
|
-
//# sourceMappingURL=Spoiler.
|
|
73
|
+
//# sourceMappingURL=Spoiler.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Spoiler.vue.js","sources":["../../../../../src/components/Spoiler/Spoiler.vue"],"sourcesContent":["<template>\n <div>\n <div @click=\"toggleSpoiler\" class=\"flex-v-center flex-nowrap flex\">\n <slot name=\"header\" :isOpen=\"showSpoiler\"></slot>\n </div>\n <transition\n name=\"collapse\"\n @enter=\"onEnter\"\n @after-enter=\"onAfterEnter\"\n @leave=\"onLeave\"\n >\n <div v-show=\"showSpoiler\" class=\"spoiler\" ref=\"spoilerContent\">\n <slot name=\"content\"></slot>\n </div>\n </transition>\n </div>\n</template>\n<script setup>\nimport { ref, onMounted } from 'vue';\n\nconst props = defineProps({\n status: {\n type: Boolean,\n default: false\n }\n});\n\nconst showSpoiler = ref(false);\nconst spoilerContent = ref(null);\n\nonMounted(() => {\n if (props.status) {\n showSpoiler.value = props.status;\n }\n});\n\nconst toggleSpoiler = () => {\n showSpoiler.value = !showSpoiler.value;\n};\n\n// Анимация открытия\nconst onEnter = (el) => {\n el.style.height = '0';\n void el.offsetHeight; // force reflow\n el.style.height = el.scrollHeight + 'px';\n};\n\nconst onAfterEnter = (el) => {\n el.style.height = 'auto';\n};\n\n// Анимация закрытия\nconst onLeave = (el) => {\n el.style.height = el.scrollHeight + 'px';\n void el.offsetHeight; // force reflow\n el.style.height = '0';\n};\n\ndefineExpose({\n showSpoiler\n});\n</script>\n<style lang=\"scss\">\n.spoiler {\n overflow: hidden;\n transition: height 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;AAoBA,UAAM,QAAQ;AAOd,UAAM,cAAc,IAAI,KAAK;AAC7B,UAAM,iBAAiB,IAAI,IAAI;AAE/B,cAAU,MAAM;AACd,UAAI,MAAM,QAAQ;AAChB,oBAAY,QAAQ,MAAM;AAAA,MAC5B;AAAA,IACF,CAAC;AAED,UAAM,gBAAgB,MAAM;AAC1B,kBAAY,QAAQ,CAAC,YAAY;AAAA,IACnC;AAGA,UAAM,UAAU,CAAC,OAAO;AACtB,SAAG,MAAM,SAAS;AAClB,WAAK,GAAG;AACR,SAAG,MAAM,SAAS,GAAG,eAAe;AAAA,IACtC;AAEA,UAAM,eAAe,CAAC,OAAO;AAC3B,SAAG,MAAM,SAAS;AAAA,IACpB;AAGA,UAAM,UAAU,CAAC,OAAO;AACtB,SAAG,MAAM,SAAS,GAAG,eAAe;AACpC,WAAK,GAAG;AACR,SAAG,MAAM,SAAS;AAAA,IACpB;AAEA,aAAa;AAAA,MACX;AAAA,IACF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ref, watch, createElementBlock, openBlock, Fragment, renderList, normalizeStyle, normalizeClass, unref, toDisplayString } from "vue";
|
|
2
2
|
import { useGlobalMixins } from "../../modules/core/views/mixins/mixins.js";
|
|
3
|
-
/* empty css
|
|
3
|
+
/* empty css */
|
|
4
4
|
const _hoisted_1 = { class: "flex-nowrap flex-v-center flex pos-relative" };
|
|
5
5
|
const _hoisted_2 = ["onClick"];
|
|
6
6
|
const _sfc_main = {
|
|
@@ -71,4 +71,4 @@ const _sfc_main = {
|
|
|
71
71
|
export {
|
|
72
72
|
_sfc_main as default
|
|
73
73
|
};
|
|
74
|
-
//# sourceMappingURL=Tab.
|
|
74
|
+
//# sourceMappingURL=Tab.vue2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tab.vue2.js","sources":["../../../../../src/components/Tab/Tab.vue"],"sourcesContent":["<template>\n <div class=\"flex-nowrap flex-v-center flex pos-relative\">\n <button \n v-for=\"(tab, index) in tabs\" \n :key=\"index\" \n @click=\"handleTabClick(index, tab)\" \n class=\"z-index-1 t-center cursor-pointer\"\n :style=\"isSelected(index, tab) ? 'background: rgb(var(--main)) !important' : ''\"\n :class=\"[\n isSelected(index, tab) ? 'bg-main' : '',\n replaceClasses('pd-small pd-r-medium pd-l-medium w-max pd-small radius-small', classTab)\n ]\"\n >\n {{tab.name || tab.label}}\n </button>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed, watch } from 'vue'\nimport { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js';\n\nconst { replaceClasses } = useGlobalMixins();\nconst emit = defineEmits(['update:selected', 'tab-click']);\n\nconst props = defineProps({\n tabs: Array,\n classTab: String,\n selected: [String, Number],\n modelValue: [String, Number],\n callback: Function\n})\n\nconst selectedTab = ref(0)\n\n// Handle both v-model and selected prop for backward compatibility\nconst updateSelectedIndex = () => {\n if (props.modelValue !== undefined) {\n const selectedIndex = props.tabs.findIndex(tab => tab.value === props.modelValue)\n if (selectedIndex !== -1) {\n selectedTab.value = selectedIndex\n }\n } else if (props.selected !== undefined) {\n const selectedIndex = props.tabs.findIndex(tab => tab.value === props.selected)\n if (selectedIndex !== -1) {\n selectedTab.value = selectedIndex\n }\n }\n}\n\n// Initial setup\nupdateSelectedIndex()\n\n// Watch for changes in selected or modelValue props\nwatch(() => props.selected, updateSelectedIndex)\nwatch(() => props.modelValue, updateSelectedIndex)\n\n// Check if tab is selected\nconst isSelected = (index, tab) => {\n if (props.modelValue !== undefined) {\n return tab.value === props.modelValue\n } else if (props.selected !== undefined) {\n return tab.value === props.selected\n }\n return index === selectedTab.value\n}\n\n// Handle tab click\nfunction handleTabClick(index, tab) {\n selectedTab.value = index\n \n // Emit both events for flexibility\n emit('update:selected', tab.value)\n emit('tab-click', { index, tab })\n \n // For v-model support\n if (props.modelValue !== undefined) {\n emit('update:modelValue', tab.value)\n }\n \n // Call callback if provided\n if (props.callback) props.callback(tab)\n}\n</script>\n\n<style lang=\"scss\">\n.tab-selector {\n position: absolute;\n width: 50%;\n height: 100%;\n left: 0;\n top: 0;\n z-index: 0;\n transition: left 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAsBA,UAAM,EAAE,eAAc,IAAK,gBAAe;AAC1C,UAAM,OAAO;AAEb,UAAM,QAAQ;AAQd,UAAM,cAAc,IAAI,CAAC;AAGzB,UAAM,sBAAsB,MAAM;AAChC,UAAI,MAAM,eAAe,QAAW;AAClC,cAAM,gBAAgB,MAAM,KAAK,UAAU,SAAO,IAAI,UAAU,MAAM,UAAU;AAChF,YAAI,kBAAkB,IAAI;AACxB,sBAAY,QAAQ;AAAA,QACtB;AAAA,MACF,WAAW,MAAM,aAAa,QAAW;AACvC,cAAM,gBAAgB,MAAM,KAAK,UAAU,SAAO,IAAI,UAAU,MAAM,QAAQ;AAC9E,YAAI,kBAAkB,IAAI;AACxB,sBAAY,QAAQ;AAAA,QACtB;AAAA,MACF;AAAA,IACF;AAGA,wBAAmB;AAGnB,UAAM,MAAM,MAAM,UAAU,mBAAmB;AAC/C,UAAM,MAAM,MAAM,YAAY,mBAAmB;AAGjD,UAAM,aAAa,CAAC,OAAO,QAAQ;AACjC,UAAI,MAAM,eAAe,QAAW;AAClC,eAAO,IAAI,UAAU,MAAM;AAAA,MAC7B,WAAW,MAAM,aAAa,QAAW;AACvC,eAAO,IAAI,UAAU,MAAM;AAAA,MAC7B;AACA,aAAO,UAAU,YAAY;AAAA,IAC/B;AAGA,aAAS,eAAe,OAAO,KAAK;AAClC,kBAAY,QAAQ;AAGpB,WAAK,mBAAmB,IAAI,KAAK;AACjC,WAAK,aAAa,EAAE,OAAO,IAAG,CAAE;AAGhC,UAAI,MAAM,eAAe,QAAW;AAClC,aAAK,qBAAqB,IAAI,KAAK;AAAA,MACrC;AAGA,UAAI,MAAM,SAAU,OAAM,SAAS,GAAG;AAAA,IACxC;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ref,
|
|
1
|
+
import { ref, createElementBlock, openBlock, renderSlot, createVNode, Transition, withCtx, createCommentVNode, normalizeStyle, createElementVNode, toDisplayString } from "vue";
|
|
2
2
|
/* empty css */
|
|
3
3
|
const _sfc_main = {
|
|
4
4
|
__name: "Tooltip",
|
|
@@ -10,26 +10,15 @@ const _sfc_main = {
|
|
|
10
10
|
},
|
|
11
11
|
setup(__props) {
|
|
12
12
|
const visible = ref(false);
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
width: "max-content",
|
|
16
|
-
zIndex: 1e3,
|
|
17
|
-
background: "#333",
|
|
18
|
-
color: "#fff",
|
|
19
|
-
padding: "5px",
|
|
20
|
-
borderRadius: "3px",
|
|
21
|
-
fontSize: "14px",
|
|
22
|
-
display: "none"
|
|
23
|
-
});
|
|
13
|
+
const posX = ref("0px");
|
|
14
|
+
const posY = ref("0px");
|
|
24
15
|
function showTooltip(event) {
|
|
25
16
|
visible.value = true;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
tooltipStyle.display = "block";
|
|
17
|
+
posX.value = `${event.clientX / 100 + 10}px`;
|
|
18
|
+
posY.value = `${event.clientY / 100 + 10}px`;
|
|
29
19
|
}
|
|
30
20
|
function hideTooltip() {
|
|
31
21
|
visible.value = false;
|
|
32
|
-
tooltipStyle.display = "none";
|
|
33
22
|
}
|
|
34
23
|
return (_ctx, _cache) => {
|
|
35
24
|
return openBlock(), createElementBlock("div", {
|
|
@@ -38,12 +27,18 @@ const _sfc_main = {
|
|
|
38
27
|
onMouseleave: hideTooltip
|
|
39
28
|
}, [
|
|
40
29
|
renderSlot(_ctx.$slots, "default"),
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
30
|
+
createVNode(Transition, { name: "tooltip" }, {
|
|
31
|
+
default: withCtx(() => [
|
|
32
|
+
visible.value ? (openBlock(), createElementBlock("div", {
|
|
33
|
+
key: 0,
|
|
34
|
+
class: "tooltip-content",
|
|
35
|
+
style: normalizeStyle({ left: posX.value, top: posY.value })
|
|
36
|
+
}, [
|
|
37
|
+
createElementVNode("span", null, toDisplayString(__props.text), 1)
|
|
38
|
+
], 4)) : createCommentVNode("", true)
|
|
39
|
+
]),
|
|
40
|
+
_: 1
|
|
41
|
+
})
|
|
47
42
|
], 32);
|
|
48
43
|
};
|
|
49
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.vue2.js","sources":["../../../../../src/components/Tooltip/Tooltip.vue"],"sourcesContent":["<template>\n <div class=\"cursor-pointer tooltip-container\" @mouseover=\"showTooltip\" @mouseleave=\"hideTooltip\">\n <slot></slot>\n <div
|
|
1
|
+
{"version":3,"file":"Tooltip.vue2.js","sources":["../../../../../src/components/Tooltip/Tooltip.vue"],"sourcesContent":["<template>\n <div class=\"cursor-pointer tooltip-container\" @mouseover=\"showTooltip\" @mouseleave=\"hideTooltip\">\n <slot></slot>\n <Transition name=\"tooltip\">\n <div v-if=\"visible\" class=\"tooltip-content\" :style=\"{ left: posX, top: posY }\">\n <span>{{ text }}</span>\n </div>\n </Transition>\n </div>\n</template>\n\n<script setup>\nimport { ref } from 'vue';\n\ndefineProps({\n text: {\n type: String,\n required: true\n }\n});\n\nconst visible = ref(false);\nconst posX = ref('0px');\nconst posY = ref('0px');\n\nfunction showTooltip(event) {\n visible.value = true;\n posX.value = `${(event.clientX / 100) + 10}px`;\n posY.value = `${(event.clientY / 100) + 10}px`;\n}\n\nfunction hideTooltip() {\n visible.value = false;\n}\n</script>\n\n<style lang=\"scss\">\n.tooltip-container {\n position: relative;\n display: inline-block;\n}\n\n.tooltip-content {\n position: absolute;\n width: max-content;\n z-index: 1000;\n background: #333;\n color: #fff;\n padding: 5px;\n border-radius: 3px;\n font-size: 14px;\n pointer-events: none;\n}\n\n.tooltip-enter-active,\n.tooltip-leave-active {\n transition: opacity 0.2s ease;\n}\n\n.tooltip-enter-from,\n.tooltip-leave-to {\n opacity: 0;\n}\n</style>\n"],"names":[],"mappings":";;;;;;;;;;;AAqBA,UAAM,UAAU,IAAI,KAAK;AACzB,UAAM,OAAO,IAAI,KAAK;AACtB,UAAM,OAAO,IAAI,KAAK;AAEtB,aAAS,YAAY,OAAO;AAC1B,cAAQ,QAAQ;AAChB,WAAK,QAAQ,GAAI,MAAM,UAAU,MAAO,EAAE;AAC1C,WAAK,QAAQ,GAAI,MAAM,UAAU,MAAO,EAAE;AAAA,IAC5C;AAEA,aAAS,cAAc;AACrB,cAAQ,QAAQ;AAAA,IAClB;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as auth from "./views/store/auth.js";
|
|
2
|
-
import * as twofa from "./views/store/twofa.js";
|
|
3
2
|
import * as users from "./views/store/users.js";
|
|
3
|
+
import otpPlugin from "./views/plugins/otp.plugin.js";
|
|
4
4
|
import addRoutes from "../core/views/router/addRoutes.js";
|
|
5
5
|
import { getAuthRoutes } from "./views/router/auth.router.js";
|
|
6
6
|
import { getUsersRoutes } from "./views/router/users.router.js";
|
|
@@ -8,16 +8,14 @@ import * as auth_validation from "./views/middlewares/auth.validation.js";
|
|
|
8
8
|
import { i18nManager } from "../core/views/classes/i18n.manager.js";
|
|
9
9
|
import locales from "./locales/index.js";
|
|
10
10
|
import { default as default2 } from "./views/components/layouts/Auth.vue.js";
|
|
11
|
-
import { default as default3 } from "./views/components/pages/
|
|
12
|
-
import { default as default4 } from "./views/components/pages/
|
|
13
|
-
import { default as default5 } from "./views/components/pages/
|
|
14
|
-
import { default as default6 } from "./views/components/pages/
|
|
15
|
-
import { default as default7 } from "./views/components/pages/
|
|
16
|
-
import { default as default8 } from "./views/components/pages/
|
|
17
|
-
import { default as default9 } from "./views/components/
|
|
18
|
-
import { default as default10 } from "./views/components/
|
|
19
|
-
import { default as default11 } from "./views/components/sections/FeaturedUsers.vue.js";
|
|
20
|
-
import { default as default12 } from "./views/components/sections/SliderFeatures.vue.js";
|
|
11
|
+
import { default as default3 } from "./views/components/pages/Invite.vue.js";
|
|
12
|
+
import { default as default4 } from "./views/components/pages/Profile.vue.js";
|
|
13
|
+
import { default as default5 } from "./views/components/pages/ProfileEdit.vue.js";
|
|
14
|
+
import { default as default6 } from "./views/components/pages/ResetPassword.vue.js";
|
|
15
|
+
import { default as default7 } from "./views/components/pages/SignIn.vue.js";
|
|
16
|
+
import { default as default8 } from "./views/components/pages/SignUp.vue.js";
|
|
17
|
+
import { default as default9 } from "./views/components/sections/FeaturedUsers.vue.js";
|
|
18
|
+
import { default as default10 } from "./views/components/sections/SliderFeatures.vue.js";
|
|
21
19
|
performance.mark("loading-36-start");
|
|
22
20
|
console.log("[LOADING 36] Auth module import started...");
|
|
23
21
|
performance.mark("loading-36-stores-end");
|
|
@@ -33,8 +31,8 @@ function initializeAuth(app, store, router, options = {}) {
|
|
|
33
31
|
addRoutes(router, { ...authRoute.config, parentName: authRoute.parentName });
|
|
34
32
|
addRoutes(router, { ...usersRoute.config, parentName: usersRoute.parentName });
|
|
35
33
|
store.addStore("auth", auth);
|
|
36
|
-
store.addStore("twofa", twofa);
|
|
37
34
|
store.addStore("users", users);
|
|
35
|
+
app.use(otpPlugin);
|
|
38
36
|
app.provide("store", store);
|
|
39
37
|
}
|
|
40
38
|
const ModuleAuth = {
|
|
@@ -42,7 +40,6 @@ const ModuleAuth = {
|
|
|
42
40
|
views: {
|
|
43
41
|
store: {
|
|
44
42
|
storeAuth: auth,
|
|
45
|
-
storeTwofa: twofa,
|
|
46
43
|
storeUsers: users
|
|
47
44
|
},
|
|
48
45
|
router: {
|
|
@@ -60,22 +57,19 @@ const totalTime = performance.getEntriesByName("loading-36-total")[0];
|
|
|
60
57
|
console.log(`[LOADING 36] Auth module fully imported in ${totalTime?.duration?.toFixed(2)}ms`);
|
|
61
58
|
export {
|
|
62
59
|
default2 as Auth,
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
default5 as
|
|
67
|
-
default6 as
|
|
68
|
-
default7 as
|
|
69
|
-
default8 as
|
|
70
|
-
|
|
71
|
-
default10 as SignUp,
|
|
72
|
-
default12 as SliderFeatures,
|
|
60
|
+
default9 as FeaturedUsers,
|
|
61
|
+
default3 as Invite,
|
|
62
|
+
default4 as Profile,
|
|
63
|
+
default5 as ProfileEdit,
|
|
64
|
+
default6 as ResetPassword,
|
|
65
|
+
default7 as SignIn,
|
|
66
|
+
default8 as SignUp,
|
|
67
|
+
default10 as SliderFeatures,
|
|
73
68
|
ModuleAuth as default,
|
|
74
69
|
getAuthRoutes,
|
|
75
70
|
getUsersRoutes,
|
|
76
71
|
initializeAuth as initialize,
|
|
77
72
|
auth as storeAuth,
|
|
78
|
-
twofa as storeTwofa,
|
|
79
73
|
users as storeUsers,
|
|
80
74
|
auth_validation as validationAuth
|
|
81
75
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.client.js","sources":["../../../../../src/modules/auth/auth.client.js"],"sourcesContent":["// [LOADING 36] Auth module import started\nperformance.mark('loading-36-start');\nconsole.log('[LOADING 36] Auth module import started...');\n\n// Functional imports (needed for initialize function)\nimport * as storeAuth from './views/store/auth.js';\nimport * as
|
|
1
|
+
{"version":3,"file":"auth.client.js","sources":["../../../../../src/modules/auth/auth.client.js"],"sourcesContent":["// [LOADING 36] Auth module import started\nperformance.mark('loading-36-start');\nconsole.log('[LOADING 36] Auth module import started...');\n\n// Functional imports (needed for initialize function)\nimport * as storeAuth from './views/store/auth.js';\nimport * as storeUsers from './views/store/users.js';\nimport otpPlugin from './views/plugins/otp.plugin.js';\n\nperformance.mark('loading-36-stores-end');\nconst storesTime = performance.measure('loading-36-stores', 'loading-36-start', 'loading-36-stores-end');\nconsole.log(`[LOADING 36] Store imports completed in ${storesTime.duration.toFixed(2)}ms`);\n\n// Router\nimport addRoutes from '@martyrs/src/modules/core/views/router/addRoutes.js';\nimport { getAuthRoutes } from './views/router/auth.router.js';\nimport { getUsersRoutes } from './views/router/users.router.js';\n\n// Middlewares\nimport * as validationAuth from '@martyrs/src/modules/auth/views/middlewares/auth.validation.js';\n\nimport { i18nManager } from '@martyrs/src/modules/core/views/classes/i18n.manager.js';\n\nimport locales from './locales/index.js';\n\nperformance.mark('loading-36-imports-end');\nconst importsTime = performance.measure('loading-36-imports', 'loading-36-stores-end', 'loading-36-imports-end');\nconsole.log(`[LOADING 36] Router/middleware/locales imports completed in ${importsTime.duration.toFixed(2)}ms`);\n\n// Component re-exports (enables tree shaking)\nexport { default as Auth } from './views/components/layouts/Auth.vue';\nexport { default as Invite } from './views/components/pages/Invite.vue';\nexport { default as Profile } from './views/components/pages/Profile.vue';\nexport { default as ProfileEdit } from './views/components/pages/ProfileEdit.vue';\nexport { default as ResetPassword } from './views/components/pages/ResetPassword.vue';\nexport { default as SignIn } from './views/components/pages/SignIn.vue';\nexport { default as SignUp } from './views/components/pages/SignUp.vue';\nexport { default as FeaturedUsers } from './views/components/sections/FeaturedUsers.vue';\nexport { default as SliderFeatures } from './views/components/sections/SliderFeatures.vue';\n\n// Пример функции инициализации для модуля аутентификации\nfunction initializeAuth(app, store, router, options = {}) {\n i18nManager.register('auth', locales);\n\n const authRoute = getAuthRoutes(options);\n const usersRoute = getUsersRoutes(options);\n\n addRoutes(router, { ...authRoute.config, parentName: authRoute.parentName });\n addRoutes(router, { ...usersRoute.config, parentName: usersRoute.parentName });\n\n store.addStore('auth', storeAuth);\n store.addStore('users', storeUsers);\n\n // OTP plugin для challenge-response\n app.use(otpPlugin);\n\n app.provide('store', store);\n}\n\nconst ModuleAuth = {\n initialize: initializeAuth,\n views: {\n store: {\n storeAuth,\n storeUsers,\n },\n router: {\n getAuthRoutes,\n getUsersRoutes,\n },\n middlewares: {\n validationAuth,\n },\n },\n};\n\n// Functional exports\nexport {\n storeAuth,\n storeUsers,\n getAuthRoutes,\n getUsersRoutes,\n validationAuth,\n initializeAuth as initialize,\n};\n\n// [LOADING 36] Auth module import completed\nperformance.mark('loading-36-end');\nperformance.measure('loading-36-total', 'loading-36-start', 'loading-36-end');\nconst totalTime = performance.getEntriesByName('loading-36-total')[0];\nconsole.log(`[LOADING 36] Auth module fully imported in ${totalTime?.duration?.toFixed(2)}ms`);\n\nexport default ModuleAuth;\n"],"names":["storeAuth","storeUsers","validationAuth"],"mappings":";;;;;;;;;;;;;;;;;;AACA,YAAY,KAAK,kBAAkB;AACnC,QAAQ,IAAI,4CAA4C;AAOxD,YAAY,KAAK,uBAAuB;AACxC,MAAM,aAAa,YAAY,QAAQ,qBAAqB,oBAAoB,uBAAuB;AACvG,QAAQ,IAAI,2CAA2C,WAAW,SAAS,QAAQ,CAAC,CAAC,IAAI;AAczF,YAAY,KAAK,wBAAwB;AACzC,MAAM,cAAc,YAAY,QAAQ,sBAAsB,yBAAyB,wBAAwB;AAC/G,QAAQ,IAAI,+DAA+D,YAAY,SAAS,QAAQ,CAAC,CAAC,IAAI;AAc9G,SAAS,eAAe,KAAK,OAAO,QAAQ,UAAU,CAAA,GAAI;AACxD,cAAY,SAAS,QAAQ,OAAO;AAEpC,QAAM,YAAY,cAAc,OAAO;AACvC,QAAM,aAAa,eAAe,OAAO;AAEzC,YAAU,QAAQ,EAAE,GAAG,UAAU,QAAQ,YAAY,UAAU,YAAY;AAC3E,YAAU,QAAQ,EAAE,GAAG,WAAW,QAAQ,YAAY,WAAW,YAAY;AAE7E,QAAM,SAAS,QAAQA,IAAS;AAChC,QAAM,SAAS,SAASC,KAAU;AAGlC,MAAI,IAAI,SAAS;AAEjB,MAAI,QAAQ,SAAS,KAAK;AAC5B;AAEK,MAAC,aAAa;AAAA,EACjB,YAAY;AAAA,EACZ,OAAO;AAAA,IACL,OAAO;AAAA,MACX,WAAMD;AAAAA,MACN,YAAMC;AAAAA,IACN;AAAA,IACI,QAAQ;AAAA,MACN;AAAA,MACA;AAAA,IACN;AAAA,IACI,aAAa;AAAA,MACjB,gBAAMC;AAAAA,IACN;AAAA,EACA;AACA;AAaA,YAAY,KAAK,gBAAgB;AACjC,YAAY,QAAQ,oBAAoB,oBAAoB,gBAAgB;AAC5E,MAAM,YAAY,YAAY,iBAAiB,kBAAkB,EAAE,CAAC;AACpE,QAAQ,IAAI,8CAA8C,WAAW,UAAU,QAAQ,CAAC,CAAC,IAAI;"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import { ref, computed, watch, createBlock, openBlock, withCtx, createElementBlock, createElementVNode, toDisplayString, withDirectives, vModelText, Fragment, renderList, normalizeClass, createVNode, unref, createTextVNode } from "vue";
|
|
2
|
+
import _sfc_main$1 from "../../../../../components/Popup/Popup.vue.js";
|
|
3
|
+
import { b as On } from "../../../../../../dist/main-BIf-WirR.js";
|
|
4
|
+
const _hoisted_1 = {
|
|
5
|
+
key: 0,
|
|
6
|
+
class: "t-center"
|
|
7
|
+
};
|
|
8
|
+
const _hoisted_2 = { class: "mn-b-medium" };
|
|
9
|
+
const _hoisted_3 = { class: "mn-b-big t-transp" };
|
|
10
|
+
const _hoisted_4 = { class: "mn-b-small t-transp" };
|
|
11
|
+
const _hoisted_5 = { class: "d-flex flex-h-center gap-small" };
|
|
12
|
+
const _hoisted_6 = {
|
|
13
|
+
key: 1,
|
|
14
|
+
class: "t-center"
|
|
15
|
+
};
|
|
16
|
+
const _hoisted_7 = { class: "mn-b-thin t-transp" };
|
|
17
|
+
const _hoisted_8 = { class: "mn-b-small" };
|
|
18
|
+
const _hoisted_9 = ["onClick"];
|
|
19
|
+
const _hoisted_10 = ["onUpdate:modelValue", "onInput"];
|
|
20
|
+
const _hoisted_11 = { class: "d-flex flex-h-center gap-small" };
|
|
21
|
+
const _sfc_main = {
|
|
22
|
+
__name: "OtpDialog",
|
|
23
|
+
props: {
|
|
24
|
+
otpState: { type: Object, required: true },
|
|
25
|
+
closeOtp: { type: Function, required: true },
|
|
26
|
+
closeDualOtp: { type: Function, required: true },
|
|
27
|
+
cancelOtp: { type: Function, required: true }
|
|
28
|
+
},
|
|
29
|
+
setup(__props) {
|
|
30
|
+
const props = __props;
|
|
31
|
+
const inputRefs = ref(null);
|
|
32
|
+
const dualInputRefs = ref([null, null]);
|
|
33
|
+
const code = ref("");
|
|
34
|
+
const dualCodes = ref(["", ""]);
|
|
35
|
+
const bothComplete = computed(
|
|
36
|
+
() => dualCodes.value[0].length === 4 && dualCodes.value[1].length === 4
|
|
37
|
+
);
|
|
38
|
+
watch(() => props.otpState.visible, (visible) => {
|
|
39
|
+
if (visible) {
|
|
40
|
+
code.value = "";
|
|
41
|
+
dualCodes.value = ["", ""];
|
|
42
|
+
setTimeout(() => {
|
|
43
|
+
if (props.otpState.mode === "dual") {
|
|
44
|
+
dualInputRefs.value[0]?.focus();
|
|
45
|
+
} else {
|
|
46
|
+
inputRefs.value?.focus();
|
|
47
|
+
}
|
|
48
|
+
}, 100);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
function focusInput() {
|
|
52
|
+
inputRefs.value?.focus();
|
|
53
|
+
}
|
|
54
|
+
function focusDualInput(idx) {
|
|
55
|
+
dualInputRefs.value[idx]?.focus();
|
|
56
|
+
}
|
|
57
|
+
function onKeydown(e) {
|
|
58
|
+
if (!/^\d$/.test(e.key) && !["Backspace", "Delete", "ArrowLeft", "ArrowRight", "Tab"].includes(e.key) && !e.ctrlKey && !e.metaKey) {
|
|
59
|
+
e.preventDefault();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
function onInput() {
|
|
63
|
+
code.value = code.value.replace(/\D/g, "").slice(0, 4);
|
|
64
|
+
if (code.value.length === 4) {
|
|
65
|
+
props.closeOtp(code.value);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
function onDualInput(idx) {
|
|
69
|
+
dualCodes.value[idx] = dualCodes.value[idx].replace(/\D/g, "").slice(0, 4);
|
|
70
|
+
if (dualCodes.value[idx].length === 4 && idx === 0) {
|
|
71
|
+
dualInputRefs.value[1]?.focus();
|
|
72
|
+
}
|
|
73
|
+
if (bothComplete.value) {
|
|
74
|
+
submitDual();
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
function submitDual() {
|
|
78
|
+
props.closeDualOtp([dualCodes.value[0], dualCodes.value[1]]);
|
|
79
|
+
}
|
|
80
|
+
return (_ctx, _cache) => {
|
|
81
|
+
return openBlock(), createBlock(_sfc_main$1, {
|
|
82
|
+
isPopupOpen: __props.otpState.visible,
|
|
83
|
+
onClosePopup: __props.cancelOtp,
|
|
84
|
+
class: "bg-white w-min-20r w-max-30r w-max-100 radius-medium pd-medium"
|
|
85
|
+
}, {
|
|
86
|
+
default: withCtx(() => [
|
|
87
|
+
__props.otpState.mode !== "dual" ? (openBlock(), createElementBlock("section", _hoisted_1, [
|
|
88
|
+
createElementVNode("h3", _hoisted_2, toDisplayString(__props.otpState.challenge?.type === "email" ? "Verify Email" : "Verify Phone"), 1),
|
|
89
|
+
createElementVNode("p", _hoisted_3, toDisplayString(__props.otpState.challenge?.type === "email" ? "Enter the code sent to your email" : "Enter the code sent to your phone"), 1),
|
|
90
|
+
createElementVNode("p", _hoisted_4, toDisplayString(__props.otpState.challenge?.identifier), 1),
|
|
91
|
+
createElementVNode("div", {
|
|
92
|
+
class: "pos-relative mn-b-big cursor-text",
|
|
93
|
+
onClick: _cache[1] || (_cache[1] = ($event) => focusInput())
|
|
94
|
+
}, [
|
|
95
|
+
withDirectives(createElementVNode("input", {
|
|
96
|
+
ref_key: "inputRefs",
|
|
97
|
+
ref: inputRefs,
|
|
98
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => code.value = $event),
|
|
99
|
+
type: "text",
|
|
100
|
+
inputmode: "numeric",
|
|
101
|
+
pattern: "[0-9]*",
|
|
102
|
+
maxlength: "4",
|
|
103
|
+
class: "pos-absolute inset-0 w-100 h-100 opacity-0 z-1",
|
|
104
|
+
onInput,
|
|
105
|
+
onKeydown,
|
|
106
|
+
autocomplete: "one-time-code"
|
|
107
|
+
}, null, 544), [
|
|
108
|
+
[vModelText, code.value]
|
|
109
|
+
]),
|
|
110
|
+
createElementVNode("div", _hoisted_5, [
|
|
111
|
+
(openBlock(), createElementBlock(Fragment, null, renderList(4, (i) => {
|
|
112
|
+
return createElementVNode("div", {
|
|
113
|
+
key: i,
|
|
114
|
+
class: normalizeClass(["w-[60px] h-[60px] d-flex flex-center text-[28px] fw-medium bg-light radius-small br-1px ease-cubic", code.value.length === i - 1 ? "br-main" : "br-grey"])
|
|
115
|
+
}, toDisplayString(code.value[i - 1] || ""), 3);
|
|
116
|
+
}), 64))
|
|
117
|
+
])
|
|
118
|
+
])
|
|
119
|
+
])) : (openBlock(), createElementBlock("section", _hoisted_6, [
|
|
120
|
+
_cache[3] || (_cache[3] = createElementVNode("h3", { class: "mn-b-medium" }, "Verify Change", -1)),
|
|
121
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(__props.otpState.challenges, (challenge, idx) => {
|
|
122
|
+
return openBlock(), createElementBlock("div", {
|
|
123
|
+
key: idx,
|
|
124
|
+
class: "mn-b-big"
|
|
125
|
+
}, [
|
|
126
|
+
createElementVNode("p", _hoisted_7, toDisplayString(challenge.label === "old" ? "Current" : "New"), 1),
|
|
127
|
+
createElementVNode("p", _hoisted_8, toDisplayString(challenge.identifier), 1),
|
|
128
|
+
createElementVNode("div", {
|
|
129
|
+
class: "pos-relative cursor-text",
|
|
130
|
+
onClick: ($event) => focusDualInput(idx)
|
|
131
|
+
}, [
|
|
132
|
+
withDirectives(createElementVNode("input", {
|
|
133
|
+
ref_for: true,
|
|
134
|
+
ref: (el) => dualInputRefs.value[idx] = el,
|
|
135
|
+
"onUpdate:modelValue": ($event) => dualCodes.value[idx] = $event,
|
|
136
|
+
type: "text",
|
|
137
|
+
inputmode: "numeric",
|
|
138
|
+
pattern: "[0-9]*",
|
|
139
|
+
maxlength: "4",
|
|
140
|
+
class: "pos-absolute inset-0 w-100 h-100 opacity-0 z-1",
|
|
141
|
+
onInput: ($event) => onDualInput(idx),
|
|
142
|
+
onKeydown,
|
|
143
|
+
autocomplete: "one-time-code"
|
|
144
|
+
}, null, 40, _hoisted_10), [
|
|
145
|
+
[vModelText, dualCodes.value[idx]]
|
|
146
|
+
]),
|
|
147
|
+
createElementVNode("div", _hoisted_11, [
|
|
148
|
+
(openBlock(), createElementBlock(Fragment, null, renderList(4, (i) => {
|
|
149
|
+
return createElementVNode("div", {
|
|
150
|
+
key: i,
|
|
151
|
+
class: normalizeClass(["w-[48px] h-[48px] d-flex flex-center text-[24px] fw-medium bg-light radius-small br-1px ease-cubic", dualCodes.value[idx].length === i - 1 ? "br-main" : "br-grey"])
|
|
152
|
+
}, toDisplayString(dualCodes.value[idx][i - 1] || ""), 3);
|
|
153
|
+
}), 64))
|
|
154
|
+
])
|
|
155
|
+
], 8, _hoisted_9)
|
|
156
|
+
]);
|
|
157
|
+
}), 128)),
|
|
158
|
+
createVNode(unref(On), {
|
|
159
|
+
onClick: submitDual,
|
|
160
|
+
disabled: !bothComplete.value,
|
|
161
|
+
class: "w-100"
|
|
162
|
+
}, {
|
|
163
|
+
default: withCtx(() => _cache[2] || (_cache[2] = [
|
|
164
|
+
createTextVNode(" Confirm ")
|
|
165
|
+
])),
|
|
166
|
+
_: 1
|
|
167
|
+
}, 8, ["disabled"])
|
|
168
|
+
]))
|
|
169
|
+
]),
|
|
170
|
+
_: 1
|
|
171
|
+
}, 8, ["isPopupOpen", "onClosePopup"]);
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
};
|
|
175
|
+
export {
|
|
176
|
+
_sfc_main as default
|
|
177
|
+
};
|
|
178
|
+
//# sourceMappingURL=OtpDialog.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OtpDialog.vue.js","sources":["../../../../../../../../src/modules/auth/views/components/blocks/OtpDialog.vue"],"sourcesContent":["<template>\n <Popup\n :isPopupOpen=\"otpState.visible\"\n @close-popup=\"cancelOtp\"\n class=\"bg-white w-min-20r w-max-30r w-max-100 radius-medium pd-medium\"\n >\n <!-- Single mode -->\n <section v-if=\"otpState.mode !== 'dual'\" class=\"t-center\">\n <h3 class=\"mn-b-medium\">\n {{ otpState.challenge?.type === 'email' ? 'Verify Email' : 'Verify Phone' }}\n </h3>\n\n <p class=\"mn-b-big t-transp\">\n {{ otpState.challenge?.type === 'email'\n ? 'Enter the code sent to your email'\n : 'Enter the code sent to your phone' }}\n </p>\n\n <p class=\"mn-b-small t-transp\">{{ otpState.challenge?.identifier }}</p>\n\n <div class=\"pos-relative mn-b-big cursor-text\" @click=\"focusInput(0)\">\n <input\n ref=\"inputRefs\"\n v-model=\"code\"\n type=\"text\"\n inputmode=\"numeric\"\n pattern=\"[0-9]*\"\n maxlength=\"4\"\n class=\"pos-absolute inset-0 w-100 h-100 opacity-0 z-1\"\n @input=\"onInput\"\n @keydown=\"onKeydown\"\n autocomplete=\"one-time-code\"\n >\n <div class=\"d-flex flex-h-center gap-small\">\n <div\n v-for=\"i in 4\"\n :key=\"i\"\n class=\"w-[60px] h-[60px] d-flex flex-center text-[28px] fw-medium bg-light radius-small br-1px ease-cubic\"\n :class=\"code.length === i - 1 ? 'br-main' : 'br-grey'\"\n >\n {{ code[i - 1] || '' }}\n </div>\n </div>\n </div>\n </section>\n\n <!-- Dual mode -->\n <section v-else class=\"t-center\">\n <h3 class=\"mn-b-medium\">Verify Change</h3>\n\n <div v-for=\"(challenge, idx) in otpState.challenges\" :key=\"idx\" class=\"mn-b-big\">\n <p class=\"mn-b-thin t-transp\">\n {{ challenge.label === 'old' ? 'Current' : 'New' }}\n </p>\n <p class=\"mn-b-small\">{{ challenge.identifier }}</p>\n\n <div class=\"pos-relative cursor-text\" @click=\"focusDualInput(idx)\">\n <input\n :ref=\"el => dualInputRefs[idx] = el\"\n v-model=\"dualCodes[idx]\"\n type=\"text\"\n inputmode=\"numeric\"\n pattern=\"[0-9]*\"\n maxlength=\"4\"\n class=\"pos-absolute inset-0 w-100 h-100 opacity-0 z-1\"\n @input=\"onDualInput(idx)\"\n @keydown=\"onKeydown\"\n autocomplete=\"one-time-code\"\n >\n <div class=\"d-flex flex-h-center gap-small\">\n <div\n v-for=\"i in 4\"\n :key=\"i\"\n class=\"w-[48px] h-[48px] d-flex flex-center text-[24px] fw-medium bg-light radius-small br-1px ease-cubic\"\n :class=\"dualCodes[idx].length === i - 1 ? 'br-main' : 'br-grey'\"\n >\n {{ dualCodes[idx][i - 1] || '' }}\n </div>\n </div>\n </div>\n </div>\n\n <Button\n @click=\"submitDual\"\n :disabled=\"!bothComplete\"\n class=\"w-100\"\n >\n Confirm\n </Button>\n </section>\n </Popup>\n</template>\n\n<script setup>\nimport { ref, computed, watch } from 'vue'\nimport Popup from '@martyrs/src/components/Popup/Popup.vue'\nimport { Button } from '@ozdao/martyrs'\n\nconst props = defineProps({\n otpState: { type: Object, required: true },\n closeOtp: { type: Function, required: true },\n closeDualOtp: { type: Function, required: true },\n cancelOtp: { type: Function, required: true }\n})\n\nconst inputRefs = ref(null)\nconst dualInputRefs = ref([null, null])\nconst code = ref('')\nconst dualCodes = ref(['', ''])\n\nconst bothComplete = computed(() =>\n dualCodes.value[0].length === 4 && dualCodes.value[1].length === 4\n)\n\nwatch(() => props.otpState.visible, (visible) => {\n if (visible) {\n code.value = ''\n dualCodes.value = ['', '']\n setTimeout(() => {\n if (props.otpState.mode === 'dual') {\n dualInputRefs.value[0]?.focus()\n } else {\n inputRefs.value?.focus()\n }\n }, 100)\n }\n})\n\nfunction focusInput() {\n inputRefs.value?.focus()\n}\n\nfunction focusDualInput(idx) {\n dualInputRefs.value[idx]?.focus()\n}\n\nfunction onKeydown(e) {\n if (!/^\\d$/.test(e.key) && !['Backspace', 'Delete', 'ArrowLeft', 'ArrowRight', 'Tab'].includes(e.key) && !e.ctrlKey && !e.metaKey) {\n e.preventDefault()\n }\n}\n\nfunction onInput() {\n code.value = code.value.replace(/\\D/g, '').slice(0, 4)\n\n if (code.value.length === 4) {\n props.closeOtp(code.value)\n }\n}\n\nfunction onDualInput(idx) {\n dualCodes.value[idx] = dualCodes.value[idx].replace(/\\D/g, '').slice(0, 4)\n\n // Auto-focus next input when current is complete\n if (dualCodes.value[idx].length === 4 && idx === 0) {\n dualInputRefs.value[1]?.focus()\n }\n\n // Auto-submit when both are complete\n if (bothComplete.value) {\n submitDual()\n }\n}\n\nfunction submitDual() {\n props.closeDualOtp([dualCodes.value[0], dualCodes.value[1]])\n}\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkGA,UAAM,QAAQ;AAOd,UAAM,YAAY,IAAI,IAAI;AAC1B,UAAM,gBAAgB,IAAI,CAAC,MAAM,IAAI,CAAC;AACtC,UAAM,OAAO,IAAI,EAAE;AACnB,UAAM,YAAY,IAAI,CAAC,IAAI,EAAE,CAAC;AAE9B,UAAM,eAAe;AAAA,MAAS,MAC5B,UAAU,MAAM,CAAC,EAAE,WAAW,KAAK,UAAU,MAAM,CAAC,EAAE,WAAW;AAAA,IACnE;AAEA,UAAM,MAAM,MAAM,SAAS,SAAS,CAAC,YAAY;AAC/C,UAAI,SAAS;AACX,aAAK,QAAQ;AACb,kBAAU,QAAQ,CAAC,IAAI,EAAE;AACzB,mBAAW,MAAM;AACf,cAAI,MAAM,SAAS,SAAS,QAAQ;AAClC,0BAAc,MAAM,CAAC,GAAG,MAAK;AAAA,UAC/B,OAAO;AACL,sBAAU,OAAO,MAAK;AAAA,UACxB;AAAA,QACF,GAAG,GAAG;AAAA,MACR;AAAA,IACF,CAAC;AAED,aAAS,aAAa;AACpB,gBAAU,OAAO,MAAK;AAAA,IACxB;AAEA,aAAS,eAAe,KAAK;AAC3B,oBAAc,MAAM,GAAG,GAAG,MAAK;AAAA,IACjC;AAEA,aAAS,UAAU,GAAG;AACpB,UAAI,CAAC,OAAO,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC,aAAa,UAAU,aAAa,cAAc,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,EAAE,WAAW,CAAC,EAAE,SAAS;AACjI,UAAE,eAAc;AAAA,MAClB;AAAA,IACF;AAEA,aAAS,UAAU;AACjB,WAAK,QAAQ,KAAK,MAAM,QAAQ,OAAO,EAAE,EAAE,MAAM,GAAG,CAAC;AAErD,UAAI,KAAK,MAAM,WAAW,GAAG;AAC3B,cAAM,SAAS,KAAK,KAAK;AAAA,MAC3B;AAAA,IACF;AAEA,aAAS,YAAY,KAAK;AACxB,gBAAU,MAAM,GAAG,IAAI,UAAU,MAAM,GAAG,EAAE,QAAQ,OAAO,EAAE,EAAE,MAAM,GAAG,CAAC;AAGzE,UAAI,UAAU,MAAM,GAAG,EAAE,WAAW,KAAK,QAAQ,GAAG;AAClD,sBAAc,MAAM,CAAC,GAAG,MAAK;AAAA,MAC/B;AAGA,UAAI,aAAa,OAAO;AACtB,mBAAU;AAAA,MACZ;AAAA,IACF;AAEA,aAAS,aAAa;AACpB,YAAM,aAAa,CAAC,UAAU,MAAM,CAAC,GAAG,UAAU,MAAM,CAAC,CAAC,CAAC;AAAA,IAC7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ref, onMounted, createElementBlock, openBlock, createElementVNode, createVNode, withCtx } from "vue";
|
|
2
|
-
/* empty css
|
|
2
|
+
/* empty css */
|
|
3
3
|
import Field from "../../../../../components/Field/Field.vue.js";
|
|
4
|
-
import _sfc_main$1 from "../../../../../components/Button/Button.
|
|
4
|
+
import _sfc_main$1 from "../../../../../components/Button/Button.vue.js";
|
|
5
5
|
import { useRoute, useRouter } from "vue-router";
|
|
6
6
|
import { state, actions } from "../../store/auth.js";
|
|
7
7
|
import invitesStore from "../../../../organizations/store/invites.store.js";
|