@ozdao/martyrs 0.2.602 → 0.2.603
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/{abac-BPl9Bmf9.js → abac-Blt8bUTL.js} +3 -3
- package/dist/{addUserStatusFields-Cc-JpmPo.js → addUserStatusFields-CjV_sbh7.js} +2 -2
- package/dist/auth.server.js +57 -2
- package/dist/builder.js +130 -81
- package/dist/community.server.js +11 -11
- package/dist/core.server.js +2 -2
- package/dist/{core.verifier-gPPX_jhf.js → core.verifier-DVB2a21y.js} +6 -3
- package/dist/{crud-DpOXTZep.js → crud-BT5FIvQC.js} +2 -3
- package/dist/engagement.schema-B-Cc_NsG.js +6 -0
- package/dist/events.server.js +3 -3
- package/dist/gallery.server.js +1 -1
- package/dist/governance.server.js +1632 -0
- package/dist/icons.server.js +267 -0
- package/dist/inventory.server.js +6 -6
- package/dist/martyrs/dist/martyrs.es3.js +116 -0
- package/dist/martyrs/dist/martyrs.es3.js.map +1 -0
- package/dist/martyrs/dist/martyrs.es39.js +124 -0
- package/dist/martyrs/dist/martyrs.es39.js.map +1 -0
- package/dist/martyrs/dist/martyrs.es43.js +30 -0
- package/dist/martyrs/dist/martyrs.es43.js.map +1 -0
- package/dist/martyrs/dist/martyrs.es44.js +28 -0
- package/dist/martyrs/dist/martyrs.es44.js.map +1 -0
- package/dist/martyrs/dist/martyrs.es46.js +10 -0
- package/dist/martyrs/dist/martyrs.es46.js.map +1 -0
- package/dist/martyrs/src/components/Address/{Address.vue.js → Address.vue2.js} +2 -2
- package/dist/martyrs/src/components/Address/Address.vue2.js.map +1 -0
- package/dist/martyrs/src/components/Block/Block.vue.js +1 -1
- package/dist/martyrs/src/components/Block/Block.vue.js.map +1 -1
- package/dist/martyrs/src/components/Button/{Button.vue.js → Button.vue2.js} +8 -5
- package/dist/martyrs/src/components/Button/Button.vue2.js.map +1 -0
- package/dist/martyrs/src/components/Dropdown/{Dropdown.vue2.js → Dropdown.vue.js} +2 -2
- package/dist/martyrs/src/components/Dropdown/Dropdown.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 +2 -2
- package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +4 -4
- package/dist/martyrs/src/components/LocationMarker/{LocationMarker.vue.js → LocationMarker.vue2.js} +2 -2
- package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue2.js.map +1 -0
- package/dist/martyrs/src/components/Tab/{Tab.vue2.js → Tab.vue.js} +2 -2
- package/dist/martyrs/src/components/Tab/Tab.vue.js.map +1 -0
- package/dist/martyrs/src/components/Table/StatusBadge.vue.js +19 -10
- package/dist/martyrs/src/components/Table/StatusBadge.vue.js.map +1 -1
- package/dist/martyrs/src/components/Text/Text.vue.js +1 -1
- package/dist/martyrs/src/components/Text/Text.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/blocks/OtpDialog.vue.js +2 -2
- package/dist/martyrs/src/modules/auth/views/components/blocks/PopupAuth.vue.js +3 -3
- package/dist/martyrs/src/modules/auth/views/components/blocks/PopupAuth.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +3 -3
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js +17 -21
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +13 -13
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +3 -3
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +42 -4
- 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 +3 -3
- package/dist/martyrs/src/modules/auth/views/components/pages/UserDashboard.vue.js +34 -66
- package/dist/martyrs/src/modules/auth/views/components/pages/UserDashboard.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/router/users.router.js +0 -53
- package/dist/martyrs/src/modules/auth/views/router/users.router.js.map +1 -1
- package/dist/martyrs/src/modules/backoffice/components/pages/Dashboard.vue.js +515 -103
- package/dist/martyrs/src/modules/backoffice/components/pages/Dashboard.vue.js.map +1 -1
- package/dist/martyrs/src/modules/backoffice/configs/navigation.backoffice.config.js +1 -3
- package/dist/martyrs/src/modules/backoffice/configs/navigation.backoffice.config.js.map +1 -1
- package/dist/martyrs/src/modules/backoffice/router/backoffice.router.js +1 -32
- package/dist/martyrs/src/modules/backoffice/router/backoffice.router.js.map +1 -1
- package/dist/martyrs/src/modules/community/community.client.js +49 -8
- package/dist/martyrs/src/modules/community/community.client.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js +10 -4
- package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +3 -3
- package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +2 -2
- 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 +28 -17
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/pages/Posts.vue.js +36 -28
- package/dist/martyrs/src/modules/community/components/pages/Posts.vue.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/sections/Comment.vue.js +2 -2
- package/dist/martyrs/src/modules/community/components/sections/Comment.vue.js.map +1 -1
- package/dist/martyrs/src/modules/community/router/community.backoffice.router.js +21 -0
- package/dist/martyrs/src/modules/community/router/community.backoffice.router.js.map +1 -0
- package/dist/martyrs/src/modules/community/router/community.organization.router.js +70 -0
- package/dist/martyrs/src/modules/community/router/community.organization.router.js.map +1 -0
- package/dist/martyrs/src/modules/community/router/community.router.js +73 -0
- package/dist/martyrs/src/modules/community/router/community.router.js.map +1 -0
- package/dist/martyrs/src/modules/community/router/community.user.router.js +20 -0
- package/dist/martyrs/src/modules/community/router/community.user.router.js.map +1 -0
- package/dist/martyrs/src/modules/constructor/components/elements/Textarea.vue2.js +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/Textarea.vue2.js.map +1 -1
- package/dist/martyrs/src/modules/constructor/components/sections/Constructor.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/classes/core.app.js +5 -3
- package/dist/martyrs/src/modules/core/views/classes/core.app.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/classes/i18n.manager.js +7 -2
- package/dist/martyrs/src/modules/core/views/classes/i18n.manager.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/classes/ws.manager.js +11 -5
- package/dist/martyrs/src/modules/core/views/classes/ws.manager.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/blocks/Card.vue.js +53 -18
- package/dist/martyrs/src/modules/core/views/components/blocks/Card.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/blocks/CardHeader.vue.js +2 -2
- package/dist/martyrs/src/modules/core/views/components/blocks/CardStat.vue.js +44 -0
- package/dist/martyrs/src/modules/core/views/components/blocks/CardStat.vue.js.map +1 -0
- package/dist/martyrs/src/modules/core/views/components/blocks/PopupDateSelector.vue.js +5 -5
- package/dist/martyrs/src/modules/core/views/components/layouts/App.vue.js +1 -1
- package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js +9 -6
- package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/partials/BottomNavigationBar.vue.js +5 -5
- package/dist/martyrs/src/modules/core/views/components/partials/BottomNavigationBar.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/partials/Header.vue.js +14 -14
- package/dist/martyrs/src/modules/core/views/components/partials/Header.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/partials/LocationSelection.vue.js +2 -2
- package/dist/martyrs/src/modules/core/views/components/partials/Navigation.vue.js +28 -29
- package/dist/martyrs/src/modules/core/views/components/partials/Navigation.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/components/partials/NavigationBar.vue.js +6 -6
- package/dist/martyrs/src/modules/core/views/components/partials/Sidebar.vue.js +5 -7
- package/dist/martyrs/src/modules/core/views/components/partials/Sidebar.vue.js.map +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 +28 -18
- package/dist/martyrs/src/modules/core/views/components/sections/SectionPageTitle.vue.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/mixins/mixins.js +3 -3
- package/dist/martyrs/src/modules/core/views/mixins/mixins.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/router/addRoutes.js +2 -3
- package/dist/martyrs/src/modules/core/views/router/addRoutes.js.map +1 -1
- package/dist/martyrs/src/modules/core/views/utils/vue-app-renderer.js +10 -0
- 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 +4 -4
- package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.js +2 -2
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +3 -3
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +9 -9
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +2 -2
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.js +1 -0
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js +23 -33
- package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/sections/EditTickets.vue.js +13 -13
- package/dist/martyrs/src/modules/events/components/sections/List.vue.js +2 -2
- package/dist/martyrs/src/modules/events/components/sections/List.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/events.client.js +37 -15
- package/dist/martyrs/src/modules/events/events.client.js.map +1 -1
- package/dist/martyrs/src/modules/events/router/events.backoffice.router.js +95 -0
- package/dist/martyrs/src/modules/events/router/events.backoffice.router.js.map +1 -0
- package/dist/martyrs/src/modules/events/router/events.organization.router.js +95 -0
- package/dist/martyrs/src/modules/events/router/events.organization.router.js.map +1 -0
- package/dist/martyrs/src/modules/events/router/events.router.js +73 -364
- package/dist/martyrs/src/modules/events/router/events.router.js.map +1 -1
- package/dist/martyrs/src/modules/events/router/events.user.router.js +65 -0
- package/dist/martyrs/src/modules/events/router/events.user.router.js.map +1 -0
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +4 -4
- package/dist/martyrs/src/modules/governance/configs/navigation.initiative.config.js +33 -0
- package/dist/martyrs/src/modules/governance/configs/navigation.initiative.config.js.map +1 -0
- package/dist/martyrs/src/modules/governance/governance.client.js +31 -0
- package/dist/martyrs/src/modules/governance/governance.client.js.map +1 -0
- package/dist/martyrs/src/modules/governance/views/components/blocks/CardInitiativeItem.vue.js +110 -0
- package/dist/martyrs/src/modules/governance/views/components/blocks/CardInitiativeItem.vue.js.map +1 -0
- package/dist/martyrs/src/modules/governance/views/components/blocks/CardSprintItem.vue.js +105 -0
- package/dist/martyrs/src/modules/governance/views/components/blocks/CardSprintItem.vue.js.map +1 -0
- package/dist/martyrs/src/modules/governance/views/components/blocks/CardTaskItem.vue.js +110 -0
- package/dist/martyrs/src/modules/governance/views/components/blocks/CardTaskItem.vue.js.map +1 -0
- package/dist/martyrs/src/modules/governance/views/components/blocks/CardVotingItem.vue.js +106 -0
- package/dist/martyrs/src/modules/governance/views/components/blocks/CardVotingItem.vue.js.map +1 -0
- package/dist/martyrs/src/modules/governance/views/components/pages/Governance.vue.js +52 -0
- package/dist/martyrs/src/modules/governance/views/components/pages/Governance.vue.js.map +1 -0
- package/dist/martyrs/src/modules/governance/views/components/pages/Initiative.vue.js +684 -0
- package/dist/martyrs/src/modules/governance/views/components/pages/Initiative.vue.js.map +1 -0
- package/dist/martyrs/src/modules/governance/views/components/pages/InitiativeCreate.vue.js +78 -0
- package/dist/martyrs/src/modules/governance/views/components/pages/InitiativeCreate.vue.js.map +1 -0
- package/dist/martyrs/src/modules/governance/views/components/pages/InitiativeSprints.vue.js +328 -0
- package/dist/martyrs/src/modules/governance/views/components/pages/InitiativeSprints.vue.js.map +1 -0
- package/dist/martyrs/src/modules/governance/views/components/pages/Initiatives.vue.js +145 -0
- package/dist/martyrs/src/modules/governance/views/components/pages/Initiatives.vue.js.map +1 -0
- package/dist/martyrs/src/modules/governance/views/components/pages/Sprint.vue.js +258 -0
- package/dist/martyrs/src/modules/governance/views/components/pages/Sprint.vue.js.map +1 -0
- package/dist/martyrs/src/modules/governance/views/components/pages/SprintCreate.vue.js +72 -0
- package/dist/martyrs/src/modules/governance/views/components/pages/SprintCreate.vue.js.map +1 -0
- package/dist/martyrs/src/modules/governance/views/components/pages/Task.vue.js +769 -0
- package/dist/martyrs/src/modules/governance/views/components/pages/Task.vue.js.map +1 -0
- package/dist/martyrs/src/modules/governance/views/components/pages/TaskCreate.vue.js +88 -0
- package/dist/martyrs/src/modules/governance/views/components/pages/TaskCreate.vue.js.map +1 -0
- package/dist/martyrs/src/modules/governance/views/components/pages/Tasks.vue.js +291 -0
- package/dist/martyrs/src/modules/governance/views/components/pages/Tasks.vue.js.map +1 -0
- package/dist/martyrs/src/modules/governance/views/components/pages/Voting.vue.js +267 -0
- package/dist/martyrs/src/modules/governance/views/components/pages/Voting.vue.js.map +1 -0
- package/dist/martyrs/src/modules/governance/views/components/pages/VotingCreate.vue.js +90 -0
- package/dist/martyrs/src/modules/governance/views/components/pages/VotingCreate.vue.js.map +1 -0
- package/dist/martyrs/src/modules/governance/views/components/pages/Votings.vue.js +68 -0
- package/dist/martyrs/src/modules/governance/views/components/pages/Votings.vue.js.map +1 -0
- package/dist/martyrs/src/modules/governance/views/components/partials/EmptyState.vue.js +47 -0
- package/dist/martyrs/src/modules/governance/views/components/partials/EmptyState.vue.js.map +1 -0
- package/dist/martyrs/src/modules/governance/views/components/partials/LinkedEntityCard.vue.js +164 -0
- package/dist/martyrs/src/modules/governance/views/components/partials/LinkedEntityCard.vue.js.map +1 -0
- package/dist/martyrs/src/modules/governance/views/components/partials/TaskStatusBadge.vue.js +39 -0
- package/dist/martyrs/src/modules/governance/views/components/partials/TaskStatusBadge.vue.js.map +1 -0
- package/dist/martyrs/src/modules/governance/views/components/partials/VoteForm.vue.js +112 -0
- package/dist/martyrs/src/modules/governance/views/components/partials/VoteForm.vue.js.map +1 -0
- package/dist/martyrs/src/modules/governance/views/components/partials/VotingResults.vue.js +187 -0
- package/dist/martyrs/src/modules/governance/views/components/partials/VotingResults.vue.js.map +1 -0
- package/dist/martyrs/src/modules/governance/views/components/sections/FormInitiativeDetails.vue.js +555 -0
- package/dist/martyrs/src/modules/governance/views/components/sections/FormInitiativeDetails.vue.js.map +1 -0
- package/dist/martyrs/src/modules/governance/views/components/sections/FormSprintDetails.vue.js +187 -0
- package/dist/martyrs/src/modules/governance/views/components/sections/FormSprintDetails.vue.js.map +1 -0
- package/dist/martyrs/src/modules/governance/views/components/sections/FormTaskDetails.vue.js +171 -0
- package/dist/martyrs/src/modules/governance/views/components/sections/FormTaskDetails.vue.js.map +1 -0
- package/dist/martyrs/src/modules/governance/views/components/sections/FormVotingDetails.vue.js +179 -0
- package/dist/martyrs/src/modules/governance/views/components/sections/FormVotingDetails.vue.js.map +1 -0
- package/dist/martyrs/src/modules/governance/views/router/governance.router.js +502 -0
- package/dist/martyrs/src/modules/governance/views/router/governance.router.js.map +1 -0
- package/dist/martyrs/src/modules/governance/views/store/initiatives.js +119 -0
- package/dist/martyrs/src/modules/governance/views/store/initiatives.js.map +1 -0
- package/dist/martyrs/src/modules/governance/views/store/sprints.js +99 -0
- package/dist/martyrs/src/modules/governance/views/store/sprints.js.map +1 -0
- package/dist/martyrs/src/modules/governance/views/store/tasks.js +115 -0
- package/dist/martyrs/src/modules/governance/views/store/tasks.js.map +1 -0
- package/dist/martyrs/src/modules/governance/views/store/votings.js +155 -0
- package/dist/martyrs/src/modules/governance/views/store/votings.js.map +1 -0
- package/dist/martyrs/src/modules/icons/entities/IconCash.vue.js +70 -0
- package/dist/martyrs/src/modules/icons/entities/IconCash.vue.js.map +1 -0
- package/dist/martyrs/src/modules/icons/icons.client.js +1 -1
- package/dist/martyrs/src/modules/icons/icons.client.js.map +1 -1
- package/dist/martyrs/src/modules/icons/{icons.router.js → router/icons.router.js} +1 -1
- package/dist/martyrs/src/modules/icons/router/icons.router.js.map +1 -0
- package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +3 -3
- package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.js +3 -3
- package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js +2 -2
- package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +3 -3
- package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js +1 -1
- package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +6 -6
- package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js.map +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 +9 -9
- package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +4 -4
- package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js +4 -4
- package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js +7 -7
- package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +3 -3
- package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +3 -3
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +3 -3
- package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js +4 -4
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +3 -3
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +9 -9
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +13 -13
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +10 -10
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +9 -9
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +17 -17
- package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/player/FullscreenPlayer.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js +4 -4
- package/dist/martyrs/src/modules/music/components/player/PlayerControls.vue.js +10 -10
- package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.js +6 -6
- package/dist/martyrs/src/modules/music/components/sections/PopularTracks.vue.js +63 -0
- package/dist/martyrs/src/modules/music/components/sections/PopularTracks.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/music.client.js +29 -25
- package/dist/martyrs/src/modules/music/music.client.js.map +1 -1
- package/dist/martyrs/src/modules/music/{music.router.js → router/music.router.js} +16 -16
- package/dist/martyrs/src/modules/music/router/music.router.js.map +1 -0
- package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js +26 -27
- package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js.map +1 -1
- package/dist/martyrs/src/modules/notifications/components/sections/NotificationPreferences.vue.js +118 -59
- package/dist/martyrs/src/modules/notifications/components/sections/NotificationPreferences.vue.js.map +1 -1
- package/dist/martyrs/src/modules/notifications/notifications.client.js +74 -54
- package/dist/martyrs/src/modules/notifications/notifications.client.js.map +1 -1
- package/dist/martyrs/src/modules/notifications/{notifications.router.js → router/notifications.router.js} +3 -3
- package/dist/martyrs/src/modules/notifications/router/notifications.router.js.map +1 -0
- package/dist/martyrs/src/modules/orders/components/blocks/CardApplication.vue.js +34 -44
- package/dist/martyrs/src/modules/orders/components/blocks/CardApplication.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardCustomer.vue.js +47 -57
- package/dist/martyrs/src/modules/orders/components/blocks/CardCustomer.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +3 -3
- package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +5 -5
- package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js +7 -7
- package/dist/martyrs/src/modules/orders/components/pages/Applications.vue.js +61 -54
- package/dist/martyrs/src/modules/orders/components/pages/Applications.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/Customers.vue.js +43 -31
- package/dist/martyrs/src/modules/orders/components/pages/Customers.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +13 -13
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +3 -3
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +19 -19
- package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js +7 -10
- package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js +7 -10
- package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +4 -4
- package/dist/martyrs/src/modules/orders/orders.client.js +16 -16
- package/dist/martyrs/src/modules/orders/orders.client.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +11 -4
- package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js +22 -15
- package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +63 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +9 -3
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +14 -8
- 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 +24 -30
- package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/organizations.client.js +42 -6
- package/dist/martyrs/src/modules/organizations/organizations.client.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/router/organizations.backoffice.router.js +20 -0
- package/dist/martyrs/src/modules/organizations/router/organizations.backoffice.router.js.map +1 -0
- package/dist/martyrs/src/modules/organizations/router/organizations.router.js +102 -0
- package/dist/martyrs/src/modules/organizations/router/organizations.router.js.map +1 -0
- package/dist/martyrs/src/modules/organizations/router/organizations.user.router.js +20 -0
- package/dist/martyrs/src/modules/organizations/router/organizations.user.router.js.map +1 -0
- package/dist/martyrs/src/modules/pages/pages.client.js +1 -1
- package/dist/martyrs/src/modules/pages/pages.client.js.map +1 -1
- package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +3 -3
- package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +2 -2
- package/dist/martyrs/src/modules/pages/{pages.router.js → views/router/pages.router.js} +8 -8
- package/dist/martyrs/src/modules/pages/views/router/pages.router.js.map +1 -0
- package/dist/martyrs/src/modules/products/components/blocks/CardPosition.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/CardPosition.vue.js.map +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.js +7 -7
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +21 -21
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +5 -5
- 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 +3 -3
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +3 -3
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +20 -20
- package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js +4 -4
- package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +4 -4
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +4 -4
- package/dist/martyrs/src/modules/rents/rents.client.js +1 -1
- package/dist/martyrs/src/modules/rents/rents.client.js.map +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +7 -7
- 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 +4 -4
- package/dist/martyrs/src/modules/rents/{rents.router.js → views/router/rents.router.js} +4 -4
- package/dist/martyrs/src/modules/rents/views/router/rents.router.js.map +1 -0
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +2 -2
- package/dist/martyrs/src/modules/reports/reports.client.js +1 -1
- package/dist/martyrs/src/modules/reports/reports.client.js.map +1 -1
- package/dist/martyrs/src/modules/reports/{reports.router.js → router/reports.router.js} +1 -1
- package/dist/martyrs/src/modules/reports/router/reports.router.js.map +1 -0
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js +2 -2
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +12 -12
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +21 -21
- package/dist/martyrs/src/modules/wallet/views/components/pages/Payments.vue.js +68 -0
- package/dist/martyrs/src/modules/wallet/views/components/pages/Payments.vue.js.map +1 -0
- package/dist/martyrs/src/modules/wallet/views/router/wallet.router.js +48 -0
- package/dist/martyrs/src/modules/wallet/views/router/wallet.router.js.map +1 -0
- package/dist/martyrs/src/modules/wallet/views/store/payments.store.js +59 -0
- package/dist/martyrs/src/modules/wallet/views/store/payments.store.js.map +1 -0
- package/dist/martyrs/src/modules/wallet/wallet.client.js +20 -0
- package/dist/martyrs/src/modules/wallet/wallet.client.js.map +1 -0
- package/dist/martyrs.es.js +84 -41
- package/dist/martyrs.es10.js +126 -0
- package/dist/martyrs.es100.js +33 -0
- package/dist/martyrs.es102.js +39 -0
- package/dist/martyrs.es103.js +31 -0
- package/dist/martyrs.es105.js +27 -0
- package/dist/martyrs.es106.js +8 -0
- package/dist/martyrs.es107.js +9 -0
- package/dist/martyrs.es108.js +79 -0
- package/dist/martyrs.es109.js +7 -0
- package/dist/martyrs.es11.js +49 -0
- package/dist/{web-n_ivHO3v.js → martyrs.es110.js} +1 -1
- package/dist/martyrs.es111.js +327 -0
- package/dist/martyrs.es112.js +121 -0
- package/dist/martyrs.es115.js +4 -0
- package/dist/martyrs.es116.js +25 -0
- package/dist/martyrs.es117.js +7 -0
- package/dist/martyrs.es118.js +10 -0
- package/dist/martyrs.es119.js +169 -0
- package/dist/martyrs.es12.js +94 -0
- package/dist/martyrs.es120.js +460 -0
- package/dist/martyrs.es121.js +42 -0
- package/dist/martyrs.es122.js +12 -0
- package/dist/martyrs.es123.js +52 -0
- package/dist/martyrs.es124.js +14 -0
- package/dist/martyrs.es125.js +47 -0
- package/dist/martyrs.es126.js +7 -0
- package/dist/martyrs.es127.js +131 -0
- package/dist/martyrs.es128.js +103 -0
- package/dist/martyrs.es129.js +89 -0
- package/dist/martyrs.es13.js +48 -0
- package/dist/martyrs.es130.js +40 -0
- package/dist/martyrs.es131.js +14 -0
- package/dist/martyrs.es132.js +42 -0
- package/dist/martyrs.es133.js +11 -0
- package/dist/martyrs.es134.js +6 -0
- package/dist/martyrs.es135.js +119 -0
- package/dist/martyrs.es136.js +20 -0
- package/dist/martyrs.es137.js +18 -0
- package/dist/martyrs.es138.js +35 -0
- package/dist/martyrs.es139.js +12 -0
- package/dist/martyrs.es14.js +101 -0
- package/dist/martyrs.es140.js +23 -0
- package/dist/martyrs.es141.js +12 -0
- package/dist/martyrs.es142.js +11 -0
- package/dist/martyrs.es143.js +47 -0
- package/dist/martyrs.es144.js +483 -0
- package/dist/martyrs.es145.js +8 -0
- package/dist/martyrs.es146.js +4 -0
- package/dist/martyrs.es147.js +14 -0
- package/dist/martyrs.es148.js +33 -0
- package/dist/martyrs.es149.js +19 -0
- package/dist/martyrs.es15.js +408 -0
- package/dist/martyrs.es150.js +22 -0
- package/dist/martyrs.es151.js +31 -0
- package/dist/martyrs.es152.js +23 -0
- package/dist/martyrs.es16.js +58 -0
- package/dist/martyrs.es17.js +44 -0
- package/dist/martyrs.es18.js +42 -0
- package/dist/martyrs.es19.js +27 -0
- package/dist/martyrs.es2.js +88 -0
- package/dist/martyrs.es20.js +13 -0
- package/dist/martyrs.es21.js +57 -0
- package/dist/martyrs.es22.js +104 -0
- package/dist/martyrs.es23.js +178 -0
- package/dist/martyrs.es24.js +123 -0
- package/dist/martyrs.es25.js +139 -0
- package/dist/martyrs.es26.js +21 -0
- package/dist/martyrs.es27.js +60 -0
- package/dist/martyrs.es28.js +75 -0
- package/dist/martyrs.es29.js +36 -0
- package/dist/martyrs.es3.js +116 -0
- package/dist/martyrs.es30.js +348 -0
- package/dist/martyrs.es31.js +83 -0
- package/dist/martyrs.es32.js +148 -0
- package/dist/martyrs.es33.js +175 -0
- package/dist/martyrs.es34.js +66 -0
- package/dist/martyrs.es35.js +57 -0
- package/dist/martyrs.es36.js +76 -0
- package/dist/martyrs.es37.js +101 -0
- package/dist/martyrs.es38.js +39 -0
- package/dist/martyrs.es39.js +124 -0
- package/dist/martyrs.es4.js +85 -0
- package/dist/martyrs.es40.js +120 -0
- package/dist/martyrs.es41.js +229 -0
- package/dist/martyrs.es43.js +29 -0
- package/dist/martyrs.es44.js +27 -0
- package/dist/martyrs.es46.js +9 -0
- package/dist/martyrs.es48.js +18 -0
- package/dist/martyrs.es5.js +395 -0
- package/dist/martyrs.es50.js +42 -0
- package/dist/martyrs.es52.js +255 -0
- package/dist/martyrs.es54.js +8 -0
- package/dist/martyrs.es6.js +70 -0
- package/dist/martyrs.es61.js +139 -0
- package/dist/martyrs.es65.js +28 -0
- package/dist/martyrs.es68.js +33 -0
- package/dist/martyrs.es69.js +37 -0
- package/dist/martyrs.es7.js +17 -0
- package/dist/martyrs.es71.js +114 -0
- package/dist/martyrs.es73.js +83 -0
- package/dist/martyrs.es74.js +52 -0
- package/dist/martyrs.es75.js +75 -0
- package/dist/martyrs.es76.js +176 -0
- package/dist/martyrs.es77.js +31 -0
- package/dist/martyrs.es78.js +38 -0
- package/dist/martyrs.es8.js +127 -0
- package/dist/martyrs.es81.js +32 -0
- package/dist/martyrs.es86.js +37 -0
- package/dist/martyrs.es89.js +37 -0
- package/dist/martyrs.es9.js +396 -0
- package/dist/martyrs.es91.js +63 -0
- package/dist/martyrs.es92.js +7 -0
- package/dist/martyrs.es93.js +35 -0
- package/dist/martyrs.es95.js +41 -0
- package/dist/martyrs.es96.js +59 -0
- package/dist/martyrs.es97.js +123 -0
- package/dist/martyrs.es98.js +43 -0
- package/dist/martyrs.es99.js +86 -0
- package/dist/music.server.js +11 -11
- package/dist/notifications.server.js +16 -6
- package/dist/orders.server.js +264 -145
- package/dist/organizations.server.js +22 -6
- package/dist/products.server.js +7 -7
- package/dist/rents.server.js +4 -3
- package/dist/style.css +970 -986
- package/package.json +13 -6
- package/src/builder/modes/ssr.rspack.dev.js +32 -20
- package/src/builder/rspack/rspack.config.api.js +3 -0
- package/src/builder/rspack/rspack.config.base.js +9 -1
- package/src/builder/rspack/rspack.config.ssr.client.js +8 -5
- package/src/components/Block/Block.vue +1 -1
- package/src/components/Button/Button.vue +4 -4
- package/src/components/Table/StatusBadge.vue +24 -18
- package/src/components/Text/Text.vue +1 -1
- package/src/jit/core.js +72 -35
- package/src/jit/plugin.js +4 -3
- package/src/jit/rules.js +15 -15
- package/src/modules/TASKS.MD +30 -0
- package/src/modules/TASK_ACTIVITY.md +60 -0
- package/src/modules/TASK_MODULE_ARCH.md +391 -0
- package/src/modules/auth/controllers/routes/users.routes.js +8 -0
- package/src/modules/auth/controllers/services/users.service.js +51 -1
- package/src/modules/auth/views/components/blocks/PopupAuth.vue +1 -1
- package/src/modules/auth/views/components/pages/ProfileBlogposts.vue +25 -24
- package/src/modules/auth/views/components/pages/SignIn.vue +10 -1
- package/src/modules/auth/views/components/pages/UserDashboard.vue +35 -62
- package/src/modules/auth/views/router/users.router.js +0 -44
- package/src/modules/backoffice/components/pages/Dashboard.vue +423 -120
- package/src/modules/backoffice/configs/navigation.backoffice.config.js +0 -2
- package/src/modules/backoffice/router/backoffice.router.js +0 -25
- package/src/modules/community/community.client.js +54 -9
- package/src/modules/community/components/blocks/CardBlogpost.vue +10 -3
- package/src/modules/community/components/layouts/Community.vue +3 -3
- package/src/modules/community/components/pages/BlogPost.vue +1 -1
- package/src/modules/community/components/pages/CreateBlogPost.vue +19 -20
- package/src/modules/community/components/pages/Posts.vue +43 -28
- package/src/modules/community/components/sections/Comment.vue +1 -1
- package/src/modules/community/controllers/blog.controller.js +4 -5
- package/src/modules/community/models/reaction.model.js +1 -0
- package/src/modules/community/router/community.backoffice.router.js +16 -0
- package/src/modules/community/router/community.organization.router.js +56 -0
- package/src/modules/community/router/community.router.js +58 -106
- package/src/modules/community/router/community.user.router.js +15 -0
- package/src/modules/constructor/components/elements/Textarea.vue +1 -1
- package/src/modules/constructor/components/sections/Constructor.vue +1 -1
- package/src/modules/core/controllers/classes/core.validator.js +7 -1
- package/src/modules/core/controllers/classes/core.verifier.js +0 -2
- package/src/modules/core/controllers/classes/crud/crud.controller.js +0 -4
- package/src/modules/core/controllers/classes/crud/crud.service.js +1 -0
- package/src/modules/core/models/schemas/engagement.schema.js +19 -22
- package/src/modules/core/views/classes/core.app.js +6 -4
- package/src/modules/core/views/classes/i18n.manager.js +9 -2
- package/src/modules/core/views/classes/ws.manager.js +17 -7
- package/src/modules/core/views/components/blocks/Card.vue +47 -24
- package/src/modules/core/views/components/blocks/CardStat.vue +27 -0
- package/src/modules/core/views/components/blocks/PopupAuth.vue +1 -1
- package/src/modules/core/views/components/layouts/Client.vue +5 -4
- package/src/modules/core/views/components/partials/BottomNavigationBar.vue +5 -5
- package/src/modules/core/views/components/partials/Header.vue +2 -2
- package/src/modules/core/views/components/partials/Navigation.vue +13 -14
- package/src/modules/core/views/components/partials/Sidebar.vue +4 -6
- package/src/modules/core/views/components/sections/SectionPageTitle.vue +23 -15
- package/src/modules/core/views/mixins/mixins.js +4 -3
- package/src/modules/core/views/router/addRoutes.js +1 -2
- package/src/modules/core/views/utils/vue-app-renderer.js +12 -0
- package/src/modules/events/components/pages/EditEventTickets.vue +1 -1
- package/src/modules/events/components/pages/Events.vue +1 -0
- package/src/modules/events/components/pages/EventsBackoffice.vue +23 -48
- package/src/modules/events/components/sections/List.vue +2 -2
- package/src/modules/events/events.client.js +44 -17
- package/src/modules/events/router/events.backoffice.router.js +80 -0
- package/src/modules/events/router/events.organization.router.js +80 -0
- package/src/modules/events/router/events.router.js +55 -325
- package/src/modules/events/router/events.user.router.js +49 -0
- package/src/modules/governance/TASK-TRACKER.MD +534 -39
- package/src/modules/governance/configs/navigation.initiative.config.js +30 -0
- package/src/modules/governance/controllers/routes/initiatives.routes.js +55 -8
- package/src/modules/governance/controllers/routes/{milestones.routes.js → sprints.routes.js} +22 -22
- package/src/modules/governance/controllers/routes/tasks.routes.js +2 -2
- package/src/modules/governance/governance.client.js +1 -4
- package/src/modules/governance/governance.server.js +6 -6
- package/src/modules/governance/middlewares/initiatives.verifier.js +60 -0
- package/src/modules/governance/middlewares/{milestones.verifier.js → sprints.verifier.js} +10 -10
- package/src/modules/governance/middlewares/tasks.verifier.js +4 -4
- package/src/modules/governance/middlewares/votings.verifier.js +25 -7
- package/src/modules/governance/models/{milestone.model.js → sprint.model.js} +11 -11
- package/src/modules/governance/models/task.model.js +4 -4
- package/src/modules/governance/models/voting.model.js +10 -5
- package/src/modules/governance/views/components/blocks/CardInitiativeItem.vue +8 -13
- package/src/modules/governance/views/components/blocks/{CardMilestoneItem.vue → CardSprintItem.vue} +16 -17
- package/src/modules/governance/views/components/blocks/CardTaskItem.vue +7 -9
- package/src/modules/governance/views/components/blocks/CardVotingItem.vue +7 -9
- package/src/modules/governance/views/components/pages/Governance.vue +13 -34
- package/src/modules/governance/views/components/pages/Initiative.vue +73 -154
- package/src/modules/governance/views/components/pages/InitiativeCreate.vue +44 -7
- package/src/modules/governance/views/components/pages/{Roadmap.vue → InitiativeSprints.vue} +70 -69
- package/src/modules/governance/views/components/pages/Initiatives.vue +23 -108
- package/src/modules/governance/views/components/pages/{Milestone.vue → Sprint.vue} +43 -41
- package/src/modules/governance/views/components/pages/SprintCreate.vue +55 -0
- package/src/modules/governance/views/components/pages/Task.vue +95 -88
- package/src/modules/governance/views/components/pages/TaskCreate.vue +47 -9
- package/src/modules/governance/views/components/pages/Tasks.vue +25 -21
- package/src/modules/governance/views/components/pages/Voting.vue +84 -68
- package/src/modules/governance/views/components/pages/VotingCreate.vue +48 -8
- package/src/modules/governance/views/components/pages/Votings.vue +12 -57
- package/src/modules/governance/views/components/partials/EmptyState.vue +1 -1
- package/src/modules/governance/views/components/partials/LinkedEntityCard.vue +23 -11
- package/src/modules/governance/views/components/partials/TaskStatusBadge.vue +1 -1
- package/src/modules/governance/views/components/partials/VoteForm.vue +3 -3
- package/src/modules/governance/views/components/partials/VotingResults.vue +13 -19
- package/src/modules/governance/views/components/sections/FormInitiativeDetails.vue +413 -15
- package/src/modules/governance/views/components/sections/FormSprintDetails.vue +156 -0
- package/src/modules/governance/views/components/sections/FormTaskDetails.vue +125 -21
- package/src/modules/governance/views/components/sections/FormVotingDetails.vue +136 -17
- package/src/modules/governance/views/components/sections/VoteForm.vue +2 -2
- package/src/modules/governance/views/router/governance.router.js +255 -151
- package/src/modules/governance/views/store/initiatives.js +23 -2
- package/src/modules/governance/views/store/sprints.js +102 -0
- package/src/modules/governance/views/store/tasks.js +25 -9
- package/src/modules/governance/views/store/votings.js +106 -27
- package/src/modules/icons/icons.client.js +1 -1
- package/src/modules/inventory/components/pages/InventoryEdit.vue +1 -1
- package/src/modules/music/components/sections/PopularTracks.vue +52 -0
- package/src/modules/music/music.client.js +8 -1
- package/src/modules/music/router/music.router.js +13 -1
- package/src/modules/notifications/components/elements/NotificationBadge.vue +8 -33
- package/src/modules/notifications/components/sections/NotificationPreferences.vue +110 -48
- package/src/modules/notifications/notifications.client.js +78 -57
- package/src/modules/notifications/router/notifications.router.js +32 -15
- package/src/modules/notifications/services/notification.service.js +15 -6
- package/src/modules/notifications/services/web-push.service.js +2 -0
- package/src/modules/orders/components/blocks/CardApplication.vue +20 -40
- package/src/modules/orders/components/blocks/CardCustomer.vue +35 -55
- package/src/modules/orders/components/blocks/CardOrderItem.vue +2 -2
- package/src/modules/orders/components/blocks/CardOrderUser.vue +2 -2
- package/src/modules/orders/components/forms/FormCustomerDetails.vue +2 -2
- package/src/modules/orders/components/pages/Applications.vue +59 -57
- package/src/modules/orders/components/pages/Customers.vue +40 -27
- package/src/modules/orders/components/pages/OrderCreate.vue +1 -1
- package/src/modules/orders/components/sections/ApplicationDetails.vue +1 -4
- package/src/modules/orders/components/sections/CustomerDetails.vue +1 -4
- package/src/modules/orders/controllers/orders.controller.js +113 -0
- package/src/modules/orders/middlewares/applications.verifier.js +13 -37
- package/src/modules/orders/middlewares/customers.verifier.js +44 -121
- package/src/modules/orders/models/customer.model.js +0 -1
- package/src/modules/orders/routes/applications.routes.js +108 -50
- package/src/modules/orders/routes/orders.routes.js +9 -1
- package/src/modules/organizations/components/blocks/CardOrganization.vue +12 -4
- package/src/modules/organizations/components/forms/DepartmentForm.vue +9 -4
- package/src/modules/organizations/components/pages/Members.vue +62 -1
- package/src/modules/organizations/components/pages/Organization.new.vue +17 -17
- package/src/modules/organizations/components/pages/Organization.vue +8 -1
- package/src/modules/organizations/components/pages/OrganizationBackoffice.vue +1 -1
- package/src/modules/organizations/components/pages/OrganizationEdit.vue +11 -4
- package/src/modules/organizations/components/pages/Organizations.vue +33 -46
- package/src/modules/organizations/controllers/invites.controller.js +19 -0
- package/src/modules/organizations/controllers/memberships.controller.js +1 -0
- package/src/modules/organizations/organizations.client.js +48 -7
- package/src/modules/organizations/router/organizations.backoffice.router.js +15 -0
- package/src/modules/organizations/router/organizations.router.js +72 -112
- package/src/modules/organizations/router/organizations.user.router.js +15 -0
- package/src/modules/pages/pages.client.js +1 -1
- package/src/modules/pages/views/router/pages.router.js +95 -15
- package/src/modules/products/components/blocks/CardPosition.vue +1 -1
- package/src/modules/products/components/pages/Products.vue +3 -3
- package/src/modules/rents/controllers/services/rents.services.js +1 -0
- package/src/modules/rents/rents.client.js +1 -1
- package/src/modules/rents/views/router/rents.router.js +93 -33
- package/src/modules/reports/reports.client.js +1 -1
- package/src/modules/wallet/wallet.client.js +1 -1
- package/src/styles/theme.scss +5 -3
- package/dist/engagement.schema-fh6W1fb_.js +0 -24
- package/dist/main-DQm5pwFO.js +0 -8213
- package/dist/martyrs/dist/main-DQm5pwFO.js +0 -1080
- package/dist/martyrs/dist/main-DQm5pwFO.js.map +0 -1
- package/dist/martyrs/dist/web-n_ivHO3v.js +0 -55
- package/dist/martyrs/dist/web-n_ivHO3v.js.map +0 -1
- package/dist/martyrs/src/components/Address/Address.vue.js.map +0 -1
- package/dist/martyrs/src/components/Button/Button.vue.js.map +0 -1
- package/dist/martyrs/src/components/Dropdown/Dropdown.vue2.js.map +0 -1
- package/dist/martyrs/src/components/EditImages/EditImages.vue2.js.map +0 -1
- package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue.js.map +0 -1
- package/dist/martyrs/src/components/Tab/Tab.vue2.js.map +0 -1
- package/dist/martyrs/src/modules/community/community.router.js +0 -124
- package/dist/martyrs/src/modules/community/community.router.js.map +0 -1
- package/dist/martyrs/src/modules/core/views/components/sections/Filters.vue2.js.map +0 -1
- package/dist/martyrs/src/modules/icons/icons.router.js.map +0 -1
- package/dist/martyrs/src/modules/music/music.router.js.map +0 -1
- package/dist/martyrs/src/modules/notifications/notifications.router.js.map +0 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +0 -200
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js.map +0 -1
- package/dist/martyrs/src/modules/organizations/organizations.router.js +0 -145
- package/dist/martyrs/src/modules/organizations/organizations.router.js.map +0 -1
- package/dist/martyrs/src/modules/pages/pages.router.js.map +0 -1
- package/dist/martyrs/src/modules/rents/rents.router.js.map +0 -1
- package/dist/martyrs/src/modules/reports/reports.router.js.map +0 -1
- package/dist/martyrs.css +0 -1
- package/dist/node_modules/.pnpm/@capacitor_device@7.0.1_@capacitor_core@7.4.4/node_modules/@capacitor/device/dist/esm/index.js +0 -8
- package/dist/node_modules/.pnpm/@capacitor_device@7.0.1_@capacitor_core@7.4.4/node_modules/@capacitor/device/dist/esm/index.js.map +0 -1
- package/dist/node_modules/.pnpm/@capacitor_device@7.0.1_@capacitor_core@7.4.4/node_modules/@capacitor/device/dist/esm/web.js +0 -146
- package/dist/node_modules/.pnpm/@capacitor_device@7.0.1_@capacitor_core@7.4.4/node_modules/@capacitor/device/dist/esm/web.js.map +0 -1
- package/dist/node_modules/.pnpm/@capacitor_keyboard@7.0.1_@capacitor_core@7.4.4/node_modules/@capacitor/keyboard/dist/esm/definitions.js +0 -18
- package/dist/node_modules/.pnpm/@capacitor_keyboard@7.0.1_@capacitor_core@7.4.4/node_modules/@capacitor/keyboard/dist/esm/definitions.js.map +0 -1
- package/dist/node_modules/.pnpm/@capacitor_keyboard@7.0.1_@capacitor_core@7.4.4/node_modules/@capacitor/keyboard/dist/esm/index.js +0 -9
- package/dist/node_modules/.pnpm/@capacitor_keyboard@7.0.1_@capacitor_core@7.4.4/node_modules/@capacitor/keyboard/dist/esm/index.js.map +0 -1
- package/dist/node_modules/.pnpm/@capacitor_push-notifications@7.0.3_@capacitor_core@7.4.4/node_modules/@capacitor/push-notifications/dist/esm/index.js +0 -6
- package/dist/node_modules/.pnpm/@capacitor_push-notifications@7.0.3_@capacitor_core@7.4.4/node_modules/@capacitor/push-notifications/dist/esm/index.js.map +0 -1
- package/src/jit/.claude/settings.local.json +0 -10
- package/src/modules/community/community.router.js +0 -107
- package/src/modules/governance/governance.router.js +0 -350
- package/src/modules/governance/seed-governance.js +0 -348
- package/src/modules/governance/views/components/pages/InitiativeMilestones.vue +0 -159
- package/src/modules/governance/views/router/goverance.router.js +0 -290
- package/src/modules/governance/views/store/votes.js +0 -113
- package/src/modules/icons/icons.router.js +0 -29
- package/src/modules/marketplace/marketplace.router.js +0 -66
- package/src/modules/music/.claude/settings.local.json +0 -8
- package/src/modules/music/music.router.js +0 -188
- package/src/modules/notifications/notifications.router.js +0 -47
- package/src/modules/orders/orders.router.js +0 -255
- package/src/modules/organizations/organizations.router.js +0 -123
- package/src/modules/organizations/router/backoffice.router.js +0 -27
- package/src/modules/organizations/router/departments.router.js +0 -15
- package/src/modules/organizations/router/members.router.js +0 -20
- package/src/modules/pages/pages.router.js +0 -107
- package/src/modules/rents/rents.router.js +0 -115
- package/src/modules/reports/reports.router.js +0 -33
- package/src/modules/wallet/wallet.router.js +0 -45
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Header.vue.js","sources":["../../../../../../../../src/modules/core/views/components/partials/Header.vue"],"sourcesContent":["<script setup=\"props\">\nimport { computed, onMounted, ref } from 'vue';\n\nimport { useRouter, useRoute } from 'vue-router';\nimport { useI18n } from 'vue-i18n';\nimport { useStore } from '@martyrs/src/modules/core/views/store/core.store.js';\n\nimport * as shopcart from '@martyrs/src/modules/orders/store/shopcart.js';\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\n\nimport NotificationBadge from '@martyrs/src/modules/notifications/components/elements/NotificationBadge.vue';\n// Martyrs Component\nimport Button from '@martyrs/src/components/Button/Button.vue';\nimport Select from '@martyrs/src/components/Select/Select.vue';\nimport Checkbox from '@martyrs/src/components/Checkbox/Checkbox.vue';\n// Icons module\nimport IconShopcart from '@martyrs/src/modules/icons/entities/IconShopcart.vue';\nimport IconProfile from '@martyrs/src/modules/icons/entities/IconProfile.vue';\nimport IconSearch from '@martyrs/src/modules/icons/navigation/IconSearch.vue';\nimport IconMenu from '@martyrs/src/modules/core/views/components/icons/IconMenu.vue';\n// Props\nconst props = defineProps({\n theme: {\n type: String,\n default: 'light',\n },\n logotype: {\n type: Object,\n },\n location: {\n type: Boolean,\n default: true,\n },\n theme_switcher: {\n type: Boolean,\n default: true,\n },\n headerClass: {\n type: [String, Array, Object],\n default: null,\n },\n showCart: {\n type: Boolean,\n default: true,\n },\n showProfile: {\n type: Boolean,\n default: true,\n },\n showNotifications: {\n type: Boolean,\n default: true,\n },\n});\nconst router = useRouter();\nconst route = useRoute();\nconst store = useStore();\nconst i18n = useI18n();\n\nconst { t, locale } = i18n;\n\nconst localeOptions = computed(() => {\n const localeNames = i18n.localeNames || {};\n return Object.entries(localeNames).map(([code, name]) => ({\n code,\n name,\n }));\n});\n// const search = computed(() => store.products.state.search)\n\nfunction openLocationPopup() {\n store.core.state.isOpenLocationPopup = true;\n}\n/////////////////////////////\n// MOUNTED\n/////////////////////////////\nonMounted(() => {\n shopcart.actions.setShopcart();\n});\n</script>\n\n<template>\n <header\n class=\"pd-thin gap-micro flex-justify-between flex-nowrap flex h-4r w-100 z-index-2\"\n id=\"header\"\n :class=\"[\n headerClass ?? {\n 'pos-relative pos-t-0 br-b-1px t-black br-light': theme === 'light',\n 'pos-relative pos-t-0 br-b-1px t-white br-dark': theme === 'dark',\n },\n ]\"\n >\n <div class=\"flex-nowrap flex-v-center flex-justify-start flex gap-micro\">\n <IconMenu\n :active=\"store.core.state.isOpenSidebar\"\n :theme=\"theme\"\n @click=\"store.core.state.isOpenSidebar = !store.core.state.isOpenSidebar\"\n />\n\n <!-- LOGO -->\n <component class=\"cursor-pointer h-2r\" v-if=\"logotype\" :is=\"logotype\" @click=\"router.push({ path: '/' })\" :theme=\"theme\" />\n\n <button\n class=\"cursor-pointer bg-transparent pd-micro radius-extra uppercase fw-semi br-2px ease-linear ws-nowrap\"\n v-if=\"location\"\n aria-label=\"button_location\"\n :class=\"{\n 'fill-black br-black t-black hover:bg-black hover:t-white hover:fill-white': theme === 'light',\n 'fill-white br-white t-white hover:bg-white hover:t-black hover:fill-black': theme === 'dark',\n }\"\n @click=\"openLocationPopup()\"\n >\n <svg class=\"i-small\" :fill=\"'inherit'\" xmlns=\"http://www.w3.org/2000/svg\" width=\"50\" height=\"67\" viewBox=\"0 0 50 67\" fill=\"none\">\n <path\n d=\"M25 0C11.207 0 0 11.207 0 25C0 38.793 20.832 66.668 25 66.668C29.168 66.668 50 38.793 50 25C50 11.207 38.793 0 25 0ZM25 33.332C20.418 33.332 16.668 29.582 16.668 25C16.668 20.418 20.418 16.668 25 16.668C29.582 16.668 33.332 20.418 33.332 25C33.332 29.582 29.582 33.332 25 33.332Z\"\n :fill=\"'inherit'\"\n />\n </svg>\n {{ store.core.state.position?.country ? store.core.state.position.country : 'World' }}\n </button>\n </div>\n\n <slot></slot>\n\n <div class=\"flex-justify-end flex-v-center flex-nowrap flex gap-micro\">\n <slot name=\"right\"></slot>\n\n <Button\n class=\"pd-zero bg-transparent\"\n v-if=\"router.hasRoute('Search') && route.meta.header_search\"\n aria-label=\"search\"\n :class=\"route.meta.header_search_class\"\n :submit=\"() => router.push({ name: 'Search' })\"\n :showSucces=\"false\"\n :showLoader=\"false\"\n >\n <IconSearch class=\"i-medium\" :fill=\"theme === 'light' ? 'rgb(var(--black))' : 'rgb(var(--white))'\" />\n </Button>\n\n <Button v-if=\"showCart\" class=\"pd-zero mn-r-micro\" aria-label=\"shopcart\" :submit=\"a => shopcart.actions.toggleShopcart()\" :counter=\"shopcart.getters.cartTotalAmount\" :showSucces=\"false\" :showLoader=\"false\">\n <IconShopcart class=\"i-medium\" :fill=\"theme === 'light' ? 'rgb(var(--black))' : 'rgb(var(--white))'\" />\n </Button>\n\n <
|
|
1
|
+
{"version":3,"file":"Header.vue.js","sources":["../../../../../../../../src/modules/core/views/components/partials/Header.vue"],"sourcesContent":["<script setup=\"props\">\nimport { computed, onMounted, ref } from 'vue';\n\nimport { useRouter, useRoute } from 'vue-router';\nimport { useI18n } from 'vue-i18n';\nimport { useStore } from '@martyrs/src/modules/core/views/store/core.store.js';\n\nimport * as shopcart from '@martyrs/src/modules/orders/store/shopcart.js';\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\n\nimport NotificationBadge from '@martyrs/src/modules/notifications/components/elements/NotificationBadge.vue';\n// Martyrs Component\nimport Button from '@martyrs/src/components/Button/Button.vue';\nimport Select from '@martyrs/src/components/Select/Select.vue';\nimport Checkbox from '@martyrs/src/components/Checkbox/Checkbox.vue';\n// Icons module\nimport IconShopcart from '@martyrs/src/modules/icons/entities/IconShopcart.vue';\nimport IconProfile from '@martyrs/src/modules/icons/entities/IconProfile.vue';\nimport IconSearch from '@martyrs/src/modules/icons/navigation/IconSearch.vue';\nimport IconMenu from '@martyrs/src/modules/core/views/components/icons/IconMenu.vue';\n// Props\nconst props = defineProps({\n theme: {\n type: String,\n default: 'light',\n },\n logotype: {\n type: Object,\n },\n location: {\n type: Boolean,\n default: true,\n },\n theme_switcher: {\n type: Boolean,\n default: true,\n },\n headerClass: {\n type: [String, Array, Object],\n default: null,\n },\n showCart: {\n type: Boolean,\n default: true,\n },\n showProfile: {\n type: Boolean,\n default: true,\n },\n showNotifications: {\n type: Boolean,\n default: true,\n },\n});\nconst router = useRouter();\nconst route = useRoute();\nconst store = useStore();\nconst i18n = useI18n();\n\nconst { t, locale } = i18n;\n\nconst localeOptions = computed(() => {\n const localeNames = i18n.localeNames || {};\n return Object.entries(localeNames).map(([code, name]) => ({\n code,\n name,\n }));\n});\n// const search = computed(() => store.products.state.search)\n\nfunction openLocationPopup() {\n store.core.state.isOpenLocationPopup = true;\n}\n/////////////////////////////\n// MOUNTED\n/////////////////////////////\nonMounted(() => {\n shopcart.actions.setShopcart();\n});\n</script>\n\n<template>\n <header\n class=\"pd-thin gap-micro flex-justify-between flex-nowrap flex h-4r w-100 z-index-2\"\n id=\"header\"\n :class=\"[\n headerClass ?? {\n 'pos-relative pos-t-0 br-b-1px t-black br-light': theme === 'light',\n 'pos-relative pos-t-0 br-b-1px t-white br-dark': theme === 'dark',\n },\n ]\"\n >\n <div class=\"flex-nowrap flex-v-center flex-justify-start flex gap-micro\">\n <IconMenu\n :active=\"store.core.state.isOpenSidebar\"\n :theme=\"theme\"\n @click=\"store.core.state.isOpenSidebar = !store.core.state.isOpenSidebar\"\n />\n\n <!-- LOGO -->\n <component class=\"cursor-pointer h-2r\" v-if=\"logotype\" :is=\"logotype\" @click=\"router.push({ path: '/' })\" :theme=\"theme\" />\n\n <button\n class=\"cursor-pointer bg-transparent pd-micro radius-extra uppercase fw-semi br-2px ease-linear ws-nowrap\"\n v-if=\"location\"\n aria-label=\"button_location\"\n :class=\"{\n 'fill-black br-black t-black hover:bg-black hover:t-white hover:fill-white': theme === 'light',\n 'fill-white br-white t-white hover:bg-white hover:t-black hover:fill-black': theme === 'dark',\n }\"\n @click=\"openLocationPopup()\"\n >\n <svg class=\"i-small\" :fill=\"'inherit'\" xmlns=\"http://www.w3.org/2000/svg\" width=\"50\" height=\"67\" viewBox=\"0 0 50 67\" fill=\"none\">\n <path\n d=\"M25 0C11.207 0 0 11.207 0 25C0 38.793 20.832 66.668 25 66.668C29.168 66.668 50 38.793 50 25C50 11.207 38.793 0 25 0ZM25 33.332C20.418 33.332 16.668 29.582 16.668 25C16.668 20.418 20.418 16.668 25 16.668C29.582 16.668 33.332 20.418 33.332 25C33.332 29.582 29.582 33.332 25 33.332Z\"\n :fill=\"'inherit'\"\n />\n </svg>\n {{ store.core.state.position?.country ? store.core.state.position.country : 'World' }}\n </button>\n </div>\n\n <slot></slot>\n\n <div class=\"flex-justify-end flex-v-center flex-nowrap flex gap-micro\">\n <slot name=\"right\"></slot>\n\n <Button\n class=\"pd-zero bg-transparent\"\n v-if=\"router.hasRoute('Search') && route.meta.header_search\"\n aria-label=\"search\"\n :class=\"route.meta.header_search_class\"\n :submit=\"() => router.push({ name: 'Search' })\"\n :showSucces=\"false\"\n :showLoader=\"false\"\n >\n <IconSearch class=\"i-medium\" :fill=\"theme === 'light' ? 'rgb(var(--black))' : 'rgb(var(--white))'\" />\n </Button>\n\n <NotificationBadge v-if=\"showNotifications && auth.state.user._id\" :fill=\"theme === 'light' ? 'rgb(var(--black))' : 'rgb(var(--white))'\" />\n\n <Button v-if=\"showCart\" class=\"pd-zero mn-r-micro\" aria-label=\"shopcart\" :submit=\"a => shopcart.actions.toggleShopcart()\" :counter=\"shopcart.getters.cartTotalAmount\" :showSucces=\"false\" :showLoader=\"false\">\n <IconShopcart class=\"i-medium\" :fill=\"theme === 'light' ? 'rgb(var(--black))' : 'rgb(var(--white))'\" />\n </Button>\n\n <Button\n v-if=\"showProfile\"\n class=\"pd-zero bg-transparent\"\n aria-label=\"profile\"\n :submit=\"auth.state.access.status === false ? a => router.push({ name: 'Sign In' }) : a => router.push({ name: 'User Profile', params: { _id: auth.state.user._id } })\"\n :showSucces=\"false\"\n :showLoader=\"false\"\n >\n <IconProfile class=\"i-medium\" :fill=\"theme === 'light' ? 'rgb(var(--black))' : 'rgb(var(--white))'\" />\n </Button>\n\n <Select\n class=\"pos-relative flex flex-column gap-small ws-nowrap pd-thin fw-semi radius-thin\"\n v-if=\"localeOptions.length > 1\"\n v-model:select=\"locale\"\n :options=\"localeOptions\"\n :property=\"'code'\"\n :value=\"'name'\"\n :class=\"{\n 'bg-light t-black': theme === 'light',\n 'bg-dark t-white': theme === 'dark',\n }\"\n />\n </div>\n </header>\n</template>\n\n<style lang=\"scss\">\n#header {\n transition:\n transform 0.3s cubic-bezier(0.08, 0.75, 0.77, 1.03),\n margin-top 0.3s cubic-bezier(0.08, 0.75, 0.77, 1.03),\n background 0.3s ease,\n border-color 0.3s ease,\n backdrop-filter 0.3s ease;\n\n &.header--hidden {\n transform: translateY(-100%);\n margin-top: -4rem;\n }\n}\n\n.location-button {\n &:hover {\n box-shadow: inset 0 0 0 2px rgb(var(--main));\n }\n}\n</style>\n"],"names":["shopcart.actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDA,UAAM,SAAS,UAAS;AACxB,UAAM,QAAQ,SAAQ;AACtB,UAAM,QAAQ,SAAQ;AACtB,UAAM,OAAO,QAAO;AAEpB,UAAM,EAAE,GAAG,OAAM,IAAK;AAEtB,UAAM,gBAAgB,SAAS,MAAM;AACnC,YAAM,cAAc,KAAK,eAAe,CAAA;AACxC,aAAO,OAAO,QAAQ,WAAW,EAAE,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO;AAAA,QACxD;AAAA,QACA;AAAA,MACJ,EAAI;AAAA,IACJ,CAAC;AAGD,aAAS,oBAAoB;AAC3B,YAAM,KAAK,MAAM,sBAAsB;AAAA,IACzC;AAIA,cAAU,MAAM;AACdA,cAAiB,YAAW;AAAA,IAC9B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ref, onMounted, createElementBlock, openBlock, createElementVNode, createBlock, toDisplayString, unref } from "vue";
|
|
2
|
-
import _sfc_main$1 from "../../../../../components/Address/Address.
|
|
3
|
-
import _sfc_main$2 from "../../../../../components/LocationMarker/LocationMarker.
|
|
2
|
+
import _sfc_main$1 from "../../../../../components/Address/Address.vue2.js";
|
|
3
|
+
import _sfc_main$2 from "../../../../../components/LocationMarker/LocationMarker.vue2.js";
|
|
4
4
|
import { useRoute, useRouter } from "vue-router";
|
|
5
5
|
import { useI18n } from "vue-i18n";
|
|
6
6
|
import { useStore } from "../../store/core.store.js";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { ref, createElementBlock, openBlock, normalizeClass, Fragment, renderList, withDirectives, createCommentVNode, createElementVNode, toDisplayString, createBlock, createVNode, withCtx, unref, resolveDynamicComponent, withModifiers, Transition, vShow } from "vue";
|
|
1
|
+
import { mergeModels, useModel, ref, createElementBlock, openBlock, normalizeClass, Fragment, renderList, withDirectives, createCommentVNode, createElementVNode, toDisplayString, createBlock, createVNode, withCtx, unref, resolveDynamicComponent, withModifiers, Transition, vShow } from "vue";
|
|
2
2
|
import { useRouter, useRoute } from "vue-router";
|
|
3
3
|
import IconChevronBottom from "../../../../icons/navigation/IconChevronBottom.vue.js";
|
|
4
4
|
import { useStore } from "../../store/core.store.js";
|
|
5
5
|
import { state } from "../../../../auth/views/store/auth.js";
|
|
6
|
-
import _sfc_main$1 from "../../../../../components/Dropdown/Dropdown.
|
|
6
|
+
import _sfc_main$1 from "../../../../../components/Dropdown/Dropdown.vue.js";
|
|
7
7
|
/* empty css */
|
|
8
8
|
/* empty css */
|
|
9
9
|
import _export_sfc from "../../../../../../../_virtual/_plugin-vue_export-helper.js";
|
|
@@ -38,35 +38,34 @@ const _hoisted_13 = {
|
|
|
38
38
|
const _hoisted_14 = { class: "w-100" };
|
|
39
39
|
const _sfc_main = {
|
|
40
40
|
__name: "Navigation",
|
|
41
|
-
props: {
|
|
41
|
+
props: /* @__PURE__ */ mergeModels({
|
|
42
42
|
navigationItems: Array,
|
|
43
43
|
theme: {
|
|
44
44
|
type: String,
|
|
45
45
|
default: "light"
|
|
46
46
|
},
|
|
47
|
-
stateSidebar: {
|
|
48
|
-
type: Boolean,
|
|
49
|
-
default: false
|
|
50
|
-
},
|
|
51
47
|
horizontal: {
|
|
52
48
|
type: Boolean,
|
|
53
49
|
default: false
|
|
54
50
|
}
|
|
55
|
-
},
|
|
56
|
-
|
|
57
|
-
"
|
|
58
|
-
|
|
59
|
-
|
|
51
|
+
}, {
|
|
52
|
+
"stateSidebar": { type: Boolean, default: false },
|
|
53
|
+
"stateSidebarModifiers": {}
|
|
54
|
+
}),
|
|
55
|
+
emits: ["update:stateSidebar"],
|
|
56
|
+
setup(__props) {
|
|
60
57
|
useStore();
|
|
61
58
|
const router = useRouter();
|
|
62
59
|
const route = useRoute();
|
|
63
60
|
const props = __props;
|
|
64
|
-
const
|
|
65
|
-
const expandedSections = ref(
|
|
61
|
+
const stateSidebar = useModel(__props, "stateSidebar");
|
|
62
|
+
const expandedSections = ref(
|
|
63
|
+
(props.navigationItems || []).flatMap((section) => section.items).filter((item) => item.expanded && item.subItems).map((item) => item.title)
|
|
64
|
+
);
|
|
66
65
|
const toggleSection = (title) => {
|
|
67
|
-
if (!
|
|
66
|
+
if (!stateSidebar.value) {
|
|
68
67
|
if (menuItems.value.flatMap((section) => section.items).find((item) => item.title === title && item.subItems)) {
|
|
69
|
-
|
|
68
|
+
stateSidebar.value = true;
|
|
70
69
|
setTimeout(() => {
|
|
71
70
|
expandedSections.value.push(title);
|
|
72
71
|
}, 50);
|
|
@@ -92,7 +91,7 @@ const _sfc_main = {
|
|
|
92
91
|
return (_ctx, _cache) => {
|
|
93
92
|
return openBlock(), createElementBlock("nav", {
|
|
94
93
|
class: normalizeClass(["ease-quint-out", [
|
|
95
|
-
|
|
94
|
+
stateSidebar.value ? "pd-small" : "pd-micro",
|
|
96
95
|
__props.horizontal ? "w-100 desktop-only gap-thin flex flex-center flex-nowrap o-y-visible o-x-visible" : "gap-medium flex flex-column"
|
|
97
96
|
]])
|
|
98
97
|
}, [
|
|
@@ -101,10 +100,10 @@ const _sfc_main = {
|
|
|
101
100
|
key: section.category,
|
|
102
101
|
class: normalizeClass(["ease-quint-out", [
|
|
103
102
|
__props.horizontal ? "w-max flex-child-default flex flex-nowrap" : "",
|
|
104
|
-
|
|
103
|
+
stateSidebar.value && !__props.horizontal ? "" : ""
|
|
105
104
|
]])
|
|
106
105
|
}, [
|
|
107
|
-
section.category &&
|
|
106
|
+
section.category && stateSidebar.value && !__props.horizontal ? (openBlock(), createElementBlock("div", {
|
|
108
107
|
key: 0,
|
|
109
108
|
class: normalizeClass(["uppercase fw-medium t-transp p-small", {
|
|
110
109
|
"t-black": __props.theme === "light",
|
|
@@ -130,7 +129,7 @@ const _sfc_main = {
|
|
|
130
129
|
label: withCtx(() => [
|
|
131
130
|
createElementVNode("button", {
|
|
132
131
|
class: normalizeClass(["ease-quint-out w-100 flex radius-small flex-nowrap cursor-pointer flex-v-center pd-thin", [
|
|
133
|
-
item.route && unref(route).path
|
|
132
|
+
item.route && unref(route).path.startsWith(processRoute(item.route)) ? __props.theme === "light" ? "bg-light" : "bg-dark" : "",
|
|
134
133
|
__props.theme === "light" ? "hover:bg-light" : "hover:bg-dark"
|
|
135
134
|
]]),
|
|
136
135
|
onClick: ($event) => item.route ? unref(router).push(processRoute(item.route)) : null
|
|
@@ -148,7 +147,7 @@ const _sfc_main = {
|
|
|
148
147
|
onClick: ($event) => subItem.route ? unref(router).push(processRoute(subItem.route)) : null,
|
|
149
148
|
href: "#",
|
|
150
149
|
class: normalizeClass(["group ease-quint-out flex flex-v-center flex-nowrap gap-thin pd-thin radius-small", [
|
|
151
|
-
subItem.route && unref(route).path
|
|
150
|
+
subItem.route && unref(route).path.startsWith(processRoute(subItem.route)) ? __props.theme === "light" ? "bg-light" : "bg-dark" : "",
|
|
152
151
|
__props.theme === "light" ? "hover:bg-light" : "hover:bg-dark"
|
|
153
152
|
]])
|
|
154
153
|
}, [
|
|
@@ -167,10 +166,10 @@ const _sfc_main = {
|
|
|
167
166
|
key: 1,
|
|
168
167
|
class: normalizeClass(["group ease-quint-out w-100 flex radius-small flex-nowrap cursor-pointer flex-v-center", [
|
|
169
168
|
__props.horizontal ? "pd-thin" : "",
|
|
170
|
-
item.route && unref(route).path
|
|
169
|
+
item.route && unref(route).path.startsWith(processRoute(item.route)) ? __props.theme === "light" ? "bg-light" : "bg-dark" : "",
|
|
171
170
|
__props.theme === "light" ? "hover:bg-light" : "hover:bg-dark"
|
|
172
171
|
]]),
|
|
173
|
-
onClick: ($event) => item.route ? (_ctx.isPhone ?
|
|
172
|
+
onClick: ($event) => item.route ? (_ctx.isPhone ? stateSidebar.value = false : null, unref(route).path !== processRoute(item.route) ? unref(router).push(processRoute(item.route)) : null) : null
|
|
174
173
|
}, [
|
|
175
174
|
!__props.horizontal && (item.iconComponent || item.icon) ? (openBlock(), createElementBlock("div", _hoisted_8, [
|
|
176
175
|
item.iconComponent ? (openBlock(), createBlock(resolveDynamicComponent(item.iconComponent), {
|
|
@@ -180,9 +179,9 @@ const _sfc_main = {
|
|
|
180
179
|
!item.iconComponent ? (openBlock(), createElementBlock("span", _hoisted_9, toDisplayString(item.icon), 1)) : createCommentVNode("", true)
|
|
181
180
|
])) : createCommentVNode("", true),
|
|
182
181
|
createElementVNode("span", {
|
|
183
|
-
class: normalizeClass(["ease-quint-out w-100 t-left fw-medium", { "pd-small": !__props.horizontal, "hidden": !
|
|
182
|
+
class: normalizeClass(["ease-quint-out w-100 t-left fw-medium", { "pd-small": !__props.horizontal, "hidden": !stateSidebar.value && !__props.horizontal, "visible": stateSidebar.value || __props.horizontal }])
|
|
184
183
|
}, toDisplayString(item.title), 3),
|
|
185
|
-
item.subItems &&
|
|
184
|
+
item.subItems && stateSidebar.value && !__props.horizontal ? (openBlock(), createElementBlock("span", {
|
|
186
185
|
key: 1,
|
|
187
186
|
class: normalizeClass(["mn-l-auto mn-r-small sidebar-dropdown-icon", { "rotate-180deg": isSectionExpanded(item.title) }]),
|
|
188
187
|
onClick: withModifiers(($event) => toggleSection(item.title), ["stop"])
|
|
@@ -202,16 +201,16 @@ const _sfc_main = {
|
|
|
202
201
|
"leave-to-class": "dropdown-leave-to"
|
|
203
202
|
}, {
|
|
204
203
|
default: withCtx(() => [
|
|
205
|
-
item.subItems && isSectionExpanded(item.title) &&
|
|
204
|
+
item.subItems && isSectionExpanded(item.title) && stateSidebar.value && !__props.horizontal ? (openBlock(), createElementBlock("ul", _hoisted_11, [
|
|
206
205
|
(openBlock(true), createElementBlock(Fragment, null, renderList(item.subItems, (subItem) => {
|
|
207
206
|
return openBlock(), createElementBlock("li", {
|
|
208
207
|
key: subItem.title
|
|
209
208
|
}, [
|
|
210
209
|
createElementVNode("a", {
|
|
211
|
-
onClick: ($event) => subItem.route ? (_ctx.isPhone ?
|
|
210
|
+
onClick: ($event) => subItem.route ? (_ctx.isPhone ? stateSidebar.value = false : null, unref(route).path !== processRoute(subItem.route) ? unref(router).push(processRoute(subItem.route)) : null) : null,
|
|
212
211
|
href: "#",
|
|
213
212
|
class: normalizeClass(["group ease-quint-out flex flex-v-center flex-nowrap gap-thin pd-thin radius-small", [
|
|
214
|
-
subItem.route && unref(route).path
|
|
213
|
+
subItem.route && unref(route).path.startsWith(processRoute(subItem.route)) ? __props.theme === "light" ? "bg-light" : "bg-dark" : "",
|
|
215
214
|
__props.theme === "light" ? "hover:bg-light" : "hover:bg-dark"
|
|
216
215
|
]])
|
|
217
216
|
}, [
|
|
@@ -240,7 +239,7 @@ const _sfc_main = {
|
|
|
240
239
|
};
|
|
241
240
|
}
|
|
242
241
|
};
|
|
243
|
-
const Navigation = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
242
|
+
const Navigation = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-4e5062a6"]]);
|
|
244
243
|
export {
|
|
245
244
|
Navigation as default
|
|
246
245
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Navigation.vue.js","sources":["../../../../../../../../src/modules/core/views/components/partials/Navigation.vue"],"sourcesContent":["<script setup>\nimport { ref, watch, computed } from 'vue'\nimport { useRouter, useRoute } from 'vue-router'\n\nimport IconChevronBottom from '@martyrs/src/modules/icons/navigation/IconChevronBottom.vue'\n\nimport { useStore } from '@martyrs/src/modules/core/views/store/core.store.js'\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\n\nconst store = useStore()\nconst router = useRouter()\nconst route = useRoute()\n\nimport Dropdown from '@martyrs/src/components/Dropdown/Dropdown.vue'\nimport Spoiler from '@martyrs/src/components/Spoiler/Spoiler.vue'\n\nconst props = defineProps({\n navigationItems: Array,\n theme: {\n type: String,\n default: \"light\"\n },\n stateSidebar: {\n type: Boolean,\n default: false\n },\n horizontal: {\n type: Boolean,\n default: false\n }\n})\n\nconst emits = defineEmits([\n 'closeSidebar'\n])\n\nconst expandedSections = ref([])\n\nconst toggleSection = (title) => {\n if (!props.stateSidebar) {\n if (menuItems.value.flatMap(section => section.items).find(item => item.title === title && item.subItems)) {\n emits('closeSidebar')\n setTimeout(() => {\n expandedSections.value.push(title)\n }, 50)\n }\n return\n }\n \n const index = expandedSections.value.indexOf(title)\n\n if (index === -1) {\n expandedSections.value.push(title)\n } else {\n expandedSections.value.splice(index, 1)\n }\n}\n\nconst isSectionExpanded = (title) => {\n return expandedSections.value.includes(title)\n}\n\n// Process route functions with auth data and route\nconst processRoute = (routeFn) => {\n if (typeof routeFn === 'function') {\n return routeFn(auth.state, route)\n }\n return routeFn\n}\n\n</script>\n\n<template>\n <nav\n class=\"ease-quint-out\"\n :class=\"[\n stateSidebar ? 'pd-small' : 'pd-micro',\n horizontal ? 'w-100 desktop-only gap-thin flex flex-center flex-nowrap o-y-visible o-x-visible' : 'gap-medium flex flex-column',\n ]\"\n >\n <div \n v-for=\"section in props.navigationItems\" \n v-show=\"!section.visible || (typeof section.visible === 'function' ? section.visible(auth.state, route) : true)\"\n :key=\"section.category\" \n class=\"ease-quint-out\"\n :class=\"[\n horizontal ? 'w-max flex-child-default flex flex-nowrap' : '',\n stateSidebar && !horizontal ? '' : '',\n ]\"\n >\n <div\n v-if=\"section.category && stateSidebar && !horizontal\"\n class=\"uppercase fw-medium t-transp p-small\"\n :class=\"{\n 't-black': theme === 'light',\n 't-white': theme === 'dark'\n }\"\n >\n {{ section.category }}\n </div>\n\n <ul \n :class=\"[\n horizontal ? 'w-100 gap-micro flex flex-nowrap' : 'flex flex-column gap-micro',\n ]\"\n >\n <li\n v-for=\"item in section.items\"\n v-show=\"!item.visible || (typeof item.visible === 'function' ? item.visible(auth.state, route) : true)\"\n class=\"w-100 pos-relative\"\n :key=\"item.title\"\n\n >\n <Dropdown\n v-if=\"item.subItems && horizontal\"\n class=\"w-100\"\n align=\"left\"\n trigger=\"hover\"\n >\n <template #label>\n <button\n class=\"ease-quint-out w-100 flex radius-small flex-nowrap cursor-pointer flex-v-center pd-thin\"\n @click=\"item.route ? router.push(processRoute(item.route)) : null\"\n :class=\"[\n item.route && route.path === processRoute(item.route) ? theme === 'light' ? 'bg-light' : 'bg-dark' : '',\n theme === 'light' ? 'hover:bg-light' : 'hover:bg-dark'\n ]\"\n >\n <span class=\"fw-medium\">{{ item.title }}</span>\n <!-- <IconChevronBottom :fill=\"theme === 'dark' ? 'rgb(var(--white))': 'rgb(var(--black))'\" class=\"i-small mn-l-thin\"/> -->\n </button>\n </template>\n <ul class=\"dropdown-submenu\">\n <li v-for=\"subItem in item.subItems\" :key=\"subItem.title\">\n <a\n @click=\"subItem.route ? router.push(processRoute(subItem.route)) : null\"\n href=\"#\"\n class=\"group ease-quint-out flex flex-v-center flex-nowrap gap-thin pd-thin radius-small\"\n :class=\"[\n subItem.route && route.path === processRoute(subItem.route) ? theme === 'light' ? 'bg-light' : 'bg-dark' : '',\n theme === 'light' ? 'hover:bg-light' : 'hover:bg-dark'\n ]\"\n >\n <component\n v-if=\"subItem.iconComponent\"\n :is=\"subItem.iconComponent\"\n class=\"i-medium t-black-transp-25 group-hover:t-main\"\n />\n <span v-else class=\"\">{{ subItem.icon }}</span>\n <span class=\"w-100\">{{ subItem.title }}</span>\n </a>\n </li>\n </ul>\n </Dropdown>\n <button\n v-else\n class=\"group ease-quint-out w-100 flex radius-small flex-nowrap cursor-pointer flex-v-center\"\n @click=\"item.route ? (isPhone ? (stateSidebar = false) : null, route.path !== processRoute(item.route) ? router.push(processRoute(item.route)) : null) : null\"\n :class=\"[\n horizontal ? 'pd-thin' : '',\n item.route && route.path === processRoute(item.route) ? theme === 'light' ? 'bg-light' : 'bg-dark' : '',\n theme === 'light' ? 'hover:bg-light' : 'hover:bg-dark'\n ]\"\n >\n <div v-if=\"!horizontal && (item.iconComponent || item.icon)\" class=\"w-100 flex-child-default w-max-big flex flex-center aspect-1x1\">\n <component\n v-if=\"item.iconComponent\"\n :is=\"item.iconComponent\"\n class=\"i-medium flex-child-default ease-quint-out t-black-transp-25 group-hover:t-main\"\n />\n <span\n v-if=\"!item.iconComponent \"\n class=\"p-regular\"\n >\n {{ item.icon }}\n </span>\n </div>\n\n <span\n class=\"ease-quint-out w-100 t-left fw-medium\"\n :class=\"{ 'pd-small': !horizontal, 'hidden': !stateSidebar && !horizontal, 'visible': stateSidebar || horizontal }\"\n >\n {{ item.title }}\n </span>\n\n <span\n v-if=\"item.subItems && stateSidebar && !horizontal\"\n class=\"mn-l-auto mn-r-small sidebar-dropdown-icon\"\n :class=\"{ 'rotate-180deg': isSectionExpanded(item.title) }\"\n @click.stop=\"toggleSection(item.title)\"\n >\n <IconChevronBottom :class=\"{ 'rotate-180deg mn-t-micro-negative': isOpen }\" :fill=\" theme === 'dark' ? 'rgb(var(--white))': 'rgb(var(--black))'\" class=\"i-small\"/>\n </span>\n </button>\n <transition\n enter-active-class=\"dropdown-enter\"\n leave-active-class=\"dropdown-leave\"\n enter-from-class=\"dropdown-enter-from\"\n enter-to-class=\"dropdown-enter-to\"\n leave-from-class=\"dropdown-leave-from\"\n leave-to-class=\"dropdown-leave-to\"\n >\n <ul\n v-if=\"item.subItems && isSectionExpanded(item.title) && stateSidebar && !horizontal\"\n class=\"mn-l-small mn-t-thin\"\n >\n <li v-for=\"subItem in item.subItems\" :key=\"subItem.title\">\n\n <a\n @click=\"subItem.route ? (isPhone ? (stateSidebar = false) : null, route.path !== processRoute(subItem.route) ? router.push(processRoute(subItem.route)) : null) : null\"\n href=\"#\"\n class=\"group ease-quint-out flex flex-v-center flex-nowrap gap-thin pd-thin radius-small\"\n :class=\"[\n subItem.route && route.path === processRoute(subItem.route) ? theme === 'light' ? 'bg-light' : 'bg-dark' : '',\n theme === 'light' ? 'hover:bg-light' : 'hover:bg-dark'\n ]\"\n >\n <component\n v-if=\"subItem.iconComponent\"\n :is=\"subItem.iconComponent\"\n class=\"i-medium t-black-transp-25 group-hover:t-main\"\n />\n <span v-else class=\"\">{{ subItem.icon }}</span>\n <span class=\"w-100\">{{ subItem.title }}</span>\n </a>\n </li>\n </ul>\n </transition>\n </li>\n </ul>\n </div>\n </nav>\n</template>\n\n<style scoped>\n\n.rotate-180deg {\n transform: rotate(180deg);\n}\n\n.hidden {\n/* opacity: 0;*/\n width: 0;\n display: none;\n}\n\n.visible {\n/* opacity: 1;*/\n display: block;\n}\n\n/* Dropdown animations */\n.dropdown-enter, .dropdown-leave {\n transition: all 0.3s ease-in-out;\n}\n\n.dropdown-enter-from, .dropdown-leave-to {\n opacity: 0;\n transform: translateY(-0.5rem);\n}\n\n.dropdown-enter-to, .dropdown-leave-from {\n opacity: 1;\n transform: translateY(0);\n}\n\n/* Horizontal dropdown submenu */\n.dropdown-submenu {\n list-style: none;\n padding: 0.5rem;\n margin: 0;\n min-width: 12rem;\n}\n\n.dropdown-submenu li {\n width: 100%;\n}\n\n.dropdown-submenu a {\n display: flex;\n text-decoration: none;\n white-space: nowrap;\n}\n\n/* Transition for horizontal dropdown */\n:deep(.TransitionTranslateY-enter-active),\n:deep(.TransitionTranslateY-leave-active) {\n transition: translateY 0.2s ease;\n transition: opacity 0.2s ease;\n}\n\n:deep(.TransitionTranslateY-enter-from),\n:deep(.TransitionTranslateY-leave-to) {\n opacity: 0;\n transform: translateY(-0.5rem);\n}\n\n:deep(.TransitionTranslateY-enter-to),\n:deep(.TransitionTranslateY-leave-from) {\n opacity: 1;\n transform: translateY(0);\n}\n</style>"],"names":["auth.state"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASc,aAAQ;AACtB,UAAM,SAAS,UAAS;AACxB,UAAM,QAAQ,SAAQ;AAKtB,UAAM,QAAQ;AAgBd,UAAM,QAAQ;AAId,UAAM,mBAAmB,IAAI,CAAA,CAAE;AAE/B,UAAM,gBAAgB,CAAC,UAAU;AAC/B,UAAI,CAAC,MAAM,cAAc;AACvB,YAAI,UAAU,MAAM,QAAQ,aAAW,QAAQ,KAAK,EAAE,KAAK,UAAQ,KAAK,UAAU,SAAS,KAAK,QAAQ,GAAG;AACzG,gBAAM,cAAc;AACpB,qBAAW,MAAM;AACf,6BAAiB,MAAM,KAAK,KAAK;AAAA,UACnC,GAAG,EAAE;AAAA,QACP;AACA;AAAA,MACF;AAEA,YAAM,QAAQ,iBAAiB,MAAM,QAAQ,KAAK;AAElD,UAAI,UAAU,IAAI;AAChB,yBAAiB,MAAM,KAAK,KAAK;AAAA,MACnC,OAAO;AACL,yBAAiB,MAAM,OAAO,OAAO,CAAC;AAAA,MACxC;AAAA,IACF;AAEA,UAAM,oBAAoB,CAAC,UAAU;AACnC,aAAO,iBAAiB,MAAM,SAAS,KAAK;AAAA,IAC9C;AAGA,UAAM,eAAe,CAAC,YAAY;AAChC,UAAI,OAAO,YAAY,YAAY;AACjC,eAAO,QAAQA,OAAY,KAAK;AAAA,MAClC;AACA,aAAO;AAAA,IACT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"Navigation.vue.js","sources":["../../../../../../../../src/modules/core/views/components/partials/Navigation.vue"],"sourcesContent":["<script setup>\nimport { ref, watch, computed } from 'vue'\nimport { useRouter, useRoute } from 'vue-router'\n\nimport IconChevronBottom from '@martyrs/src/modules/icons/navigation/IconChevronBottom.vue'\n\nimport { useStore } from '@martyrs/src/modules/core/views/store/core.store.js'\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\n\nconst store = useStore()\nconst router = useRouter()\nconst route = useRoute()\n\nimport Dropdown from '@martyrs/src/components/Dropdown/Dropdown.vue'\nimport Spoiler from '@martyrs/src/components/Spoiler/Spoiler.vue'\n\nconst props = defineProps({\n navigationItems: Array,\n theme: {\n type: String,\n default: \"light\"\n },\n horizontal: {\n type: Boolean,\n default: false\n }\n})\n\nconst stateSidebar = defineModel('stateSidebar', { type: Boolean, default: false })\n\nconst expandedSections = ref(\n (props.navigationItems || [])\n .flatMap(section => section.items)\n .filter(item => item.expanded && item.subItems)\n .map(item => item.title)\n)\n\nconst toggleSection = (title) => {\n if (!stateSidebar.value) {\n if (menuItems.value.flatMap(section => section.items).find(item => item.title === title && item.subItems)) {\n stateSidebar.value = true\n setTimeout(() => {\n expandedSections.value.push(title)\n }, 50)\n }\n return\n }\n \n const index = expandedSections.value.indexOf(title)\n\n if (index === -1) {\n expandedSections.value.push(title)\n } else {\n expandedSections.value.splice(index, 1)\n }\n}\n\nconst isSectionExpanded = (title) => {\n return expandedSections.value.includes(title)\n}\n\n// Process route functions with auth data and route\nconst processRoute = (routeFn) => {\n if (typeof routeFn === 'function') {\n return routeFn(auth.state, route)\n }\n return routeFn\n}\n\n</script>\n\n<template>\n <nav\n class=\"ease-quint-out\"\n :class=\"[\n stateSidebar ? 'pd-small' : 'pd-micro',\n horizontal ? 'w-100 desktop-only gap-thin flex flex-center flex-nowrap o-y-visible o-x-visible' : 'gap-medium flex flex-column',\n ]\"\n >\n <div \n v-for=\"section in props.navigationItems\" \n v-show=\"!section.visible || (typeof section.visible === 'function' ? section.visible(auth.state, route) : true)\"\n :key=\"section.category\" \n class=\"ease-quint-out\"\n :class=\"[\n horizontal ? 'w-max flex-child-default flex flex-nowrap' : '',\n stateSidebar && !horizontal ? '' : '',\n ]\"\n >\n <div\n v-if=\"section.category && stateSidebar && !horizontal\"\n class=\"uppercase fw-medium t-transp p-small\"\n :class=\"{\n 't-black': theme === 'light',\n 't-white': theme === 'dark'\n }\"\n >\n {{ section.category }}\n </div>\n\n <ul \n :class=\"[\n horizontal ? 'w-100 gap-micro flex flex-nowrap' : 'flex flex-column gap-micro',\n ]\"\n >\n <li\n v-for=\"item in section.items\"\n v-show=\"!item.visible || (typeof item.visible === 'function' ? item.visible(auth.state, route) : true)\"\n class=\"w-100 pos-relative\"\n :key=\"item.title\"\n\n >\n <Dropdown\n v-if=\"item.subItems && horizontal\"\n class=\"w-100\"\n align=\"left\"\n trigger=\"hover\"\n >\n <template #label>\n <button\n class=\"ease-quint-out w-100 flex radius-small flex-nowrap cursor-pointer flex-v-center pd-thin\"\n @click=\"item.route ? router.push(processRoute(item.route)) : null\"\n :class=\"[\n item.route && route.path.startsWith(processRoute(item.route)) ? theme === 'light' ? 'bg-light' : 'bg-dark' : '',\n theme === 'light' ? 'hover:bg-light' : 'hover:bg-dark'\n ]\"\n >\n <span class=\"fw-medium\">{{ item.title }}</span>\n <!-- <IconChevronBottom :fill=\"theme === 'dark' ? 'rgb(var(--white))': 'rgb(var(--black))'\" class=\"i-small mn-l-thin\"/> -->\n </button>\n </template>\n <ul class=\"dropdown-submenu\">\n <li v-for=\"subItem in item.subItems\" :key=\"subItem.title\">\n <a\n @click=\"subItem.route ? router.push(processRoute(subItem.route)) : null\"\n href=\"#\"\n class=\"group ease-quint-out flex flex-v-center flex-nowrap gap-thin pd-thin radius-small\"\n :class=\"[\n subItem.route && route.path.startsWith(processRoute(subItem.route)) ? theme === 'light' ? 'bg-light' : 'bg-dark' : '',\n theme === 'light' ? 'hover:bg-light' : 'hover:bg-dark'\n ]\"\n >\n <component\n v-if=\"subItem.iconComponent\"\n :is=\"subItem.iconComponent\"\n class=\"i-medium t-black-transp-25 group-hover:t-main\"\n />\n <span v-else class=\"\">{{ subItem.icon }}</span>\n <span class=\"w-100\">{{ subItem.title }}</span>\n </a>\n </li>\n </ul>\n </Dropdown>\n <button\n v-else\n class=\"group ease-quint-out w-100 flex radius-small flex-nowrap cursor-pointer flex-v-center\"\n @click=\"item.route ? (isPhone ? (stateSidebar = false) : null, route.path !== processRoute(item.route) ? router.push(processRoute(item.route)) : null) : null\"\n :class=\"[\n horizontal ? 'pd-thin' : '',\n item.route && route.path.startsWith(processRoute(item.route)) ? theme === 'light' ? 'bg-light' : 'bg-dark' : '',\n theme === 'light' ? 'hover:bg-light' : 'hover:bg-dark'\n ]\"\n >\n <div v-if=\"!horizontal && (item.iconComponent || item.icon)\" class=\"w-100 flex-child-default w-max-big flex flex-center aspect-1x1\">\n <component\n v-if=\"item.iconComponent\"\n :is=\"item.iconComponent\"\n class=\"i-medium flex-child-default ease-quint-out t-black-transp-25 group-hover:t-main\"\n />\n <span\n v-if=\"!item.iconComponent \"\n class=\"p-regular\"\n >\n {{ item.icon }}\n </span>\n </div>\n\n <span\n class=\"ease-quint-out w-100 t-left fw-medium\"\n :class=\"{ 'pd-small': !horizontal, 'hidden': !stateSidebar && !horizontal, 'visible': stateSidebar || horizontal }\"\n >\n {{ item.title }}\n </span>\n\n <span\n v-if=\"item.subItems && stateSidebar && !horizontal\"\n class=\"mn-l-auto mn-r-small sidebar-dropdown-icon\"\n :class=\"{ 'rotate-180deg': isSectionExpanded(item.title) }\"\n @click.stop=\"toggleSection(item.title)\"\n >\n <IconChevronBottom :class=\"{ 'rotate-180deg mn-t-micro-negative': isOpen }\" :fill=\" theme === 'dark' ? 'rgb(var(--white))': 'rgb(var(--black))'\" class=\"i-small\"/>\n </span>\n </button>\n <transition\n enter-active-class=\"dropdown-enter\"\n leave-active-class=\"dropdown-leave\"\n enter-from-class=\"dropdown-enter-from\"\n enter-to-class=\"dropdown-enter-to\"\n leave-from-class=\"dropdown-leave-from\"\n leave-to-class=\"dropdown-leave-to\"\n >\n <ul\n v-if=\"item.subItems && isSectionExpanded(item.title) && stateSidebar && !horizontal\"\n class=\"mn-l-small mn-t-thin\"\n >\n <li v-for=\"subItem in item.subItems\" :key=\"subItem.title\">\n\n <a\n @click=\"subItem.route ? (isPhone ? (stateSidebar = false) : null, route.path !== processRoute(subItem.route) ? router.push(processRoute(subItem.route)) : null) : null\"\n href=\"#\"\n class=\"group ease-quint-out flex flex-v-center flex-nowrap gap-thin pd-thin radius-small\"\n :class=\"[\n subItem.route && route.path.startsWith(processRoute(subItem.route)) ? theme === 'light' ? 'bg-light' : 'bg-dark' : '',\n theme === 'light' ? 'hover:bg-light' : 'hover:bg-dark'\n ]\"\n >\n <component\n v-if=\"subItem.iconComponent\"\n :is=\"subItem.iconComponent\"\n class=\"i-medium t-black-transp-25 group-hover:t-main\"\n />\n <span v-else class=\"\">{{ subItem.icon }}</span>\n <span class=\"w-100\">{{ subItem.title }}</span>\n </a>\n </li>\n </ul>\n </transition>\n </li>\n </ul>\n </div>\n </nav>\n</template>\n\n<style scoped>\n\n.rotate-180deg {\n transform: rotate(180deg);\n}\n\n.hidden {\n/* opacity: 0;*/\n width: 0;\n display: none;\n}\n\n.visible {\n/* opacity: 1;*/\n display: block;\n}\n\n/* Dropdown animations */\n.dropdown-enter, .dropdown-leave {\n transition: all 0.3s ease-in-out;\n}\n\n.dropdown-enter-from, .dropdown-leave-to {\n opacity: 0;\n transform: translateY(-0.5rem);\n}\n\n.dropdown-enter-to, .dropdown-leave-from {\n opacity: 1;\n transform: translateY(0);\n}\n\n/* Horizontal dropdown submenu */\n.dropdown-submenu {\n list-style: none;\n padding: 0.5rem;\n margin: 0;\n min-width: 12rem;\n}\n\n.dropdown-submenu li {\n width: 100%;\n}\n\n.dropdown-submenu a {\n display: flex;\n text-decoration: none;\n white-space: nowrap;\n}\n\n/* Transition for horizontal dropdown */\n:deep(.TransitionTranslateY-enter-active),\n:deep(.TransitionTranslateY-leave-active) {\n transition: translateY 0.2s ease;\n transition: opacity 0.2s ease;\n}\n\n:deep(.TransitionTranslateY-enter-from),\n:deep(.TransitionTranslateY-leave-to) {\n opacity: 0;\n transform: translateY(-0.5rem);\n}\n\n:deep(.TransitionTranslateY-enter-to),\n:deep(.TransitionTranslateY-leave-from) {\n opacity: 1;\n transform: translateY(0);\n}\n</style>"],"names":["_useModel","auth.state"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASc,aAAQ;AACtB,UAAM,SAAS,UAAS;AACxB,UAAM,QAAQ,SAAQ;AAKtB,UAAM,QAAQ;AAYd,UAAM,eAAeA,SAAW,SAAC,cAAiD;AAElF,UAAM,mBAAmB;AAAA,OACtB,MAAM,mBAAmB,CAAA,GACvB,QAAQ,aAAW,QAAQ,KAAK,EAChC,OAAO,UAAQ,KAAK,YAAY,KAAK,QAAQ,EAC7C,IAAI,UAAQ,KAAK,KAAK;AAAA,IAC3B;AAEA,UAAM,gBAAgB,CAAC,UAAU;AAC/B,UAAI,CAAC,aAAa,OAAO;AACvB,YAAI,UAAU,MAAM,QAAQ,aAAW,QAAQ,KAAK,EAAE,KAAK,UAAQ,KAAK,UAAU,SAAS,KAAK,QAAQ,GAAG;AACzG,uBAAa,QAAQ;AACrB,qBAAW,MAAM;AACf,6BAAiB,MAAM,KAAK,KAAK;AAAA,UACnC,GAAG,EAAE;AAAA,QACP;AACA;AAAA,MACF;AAEA,YAAM,QAAQ,iBAAiB,MAAM,QAAQ,KAAK;AAElD,UAAI,UAAU,IAAI;AAChB,yBAAiB,MAAM,KAAK,KAAK;AAAA,MACnC,OAAO;AACL,yBAAiB,MAAM,OAAO,OAAO,CAAC;AAAA,MACxC;AAAA,IACF;AAEA,UAAM,oBAAoB,CAAC,UAAU;AACnC,aAAO,iBAAiB,MAAM,SAAS,KAAK;AAAA,IAC9C;AAGA,UAAM,eAAe,CAAC,YAAY;AAChC,UAAI,OAAO,YAAY,YAAY;AACjC,eAAO,QAAQC,OAAY,KAAK;AAAA,MAClC;AACA,aAAO;AAAA,IACT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { computed, createElementBlock, openBlock, createVNode, createElementVNode, Transition, withCtx, createCommentVNode, unref, createBlock, resolveDynamicComponent, toDisplayString, TransitionGroup, Fragment, renderList, mergeProps } from "vue";
|
|
2
2
|
import { useRouter, useRoute } from "vue-router";
|
|
3
3
|
import { useI18n } from "vue-i18n";
|
|
4
|
-
import _sfc_main$
|
|
5
|
-
import _sfc_main$
|
|
6
|
-
import
|
|
4
|
+
import _sfc_main$1 from "../../../../icons/entities/IconShopcart.vue.js";
|
|
5
|
+
import _sfc_main$2 from "../../../../icons/entities/IconProfile.vue.js";
|
|
6
|
+
import Button from "../../../../../components/Button/Button.vue2.js";
|
|
7
7
|
import { useStore } from "../../store/core.store.js";
|
|
8
8
|
import { getters, actions } from "../../../../orders/store/shopcart.js";
|
|
9
9
|
import { state } from "../../../../auth/views/store/auth.js";
|
|
@@ -94,7 +94,7 @@ const _sfc_main = {
|
|
|
94
94
|
mode: "out-in"
|
|
95
95
|
}, {
|
|
96
96
|
default: withCtx(() => [
|
|
97
|
-
unref(route).meta.title_hide || unref(route).meta.showShopCart ? (openBlock(), createBlock(
|
|
97
|
+
unref(route).meta.title_hide || unref(route).meta.showShopCart ? (openBlock(), createBlock(Button, {
|
|
98
98
|
key: 0,
|
|
99
99
|
submit: (a) => actions.toggleShopcart(),
|
|
100
100
|
counter: getters.cartTotalAmount,
|
|
@@ -103,7 +103,7 @@ const _sfc_main = {
|
|
|
103
103
|
class: "cursor-pointer pd-zero"
|
|
104
104
|
}, {
|
|
105
105
|
default: withCtx(() => [
|
|
106
|
-
createVNode(_sfc_main$
|
|
106
|
+
createVNode(_sfc_main$1, {
|
|
107
107
|
class: "i-medium",
|
|
108
108
|
fill: "rgb(var(--main))"
|
|
109
109
|
})
|
|
@@ -139,7 +139,7 @@ const _sfc_main = {
|
|
|
139
139
|
mode: "out-in"
|
|
140
140
|
}, {
|
|
141
141
|
default: withCtx(() => [
|
|
142
|
-
unref(route).meta.title_hide ? (openBlock(), createBlock(_sfc_main$
|
|
142
|
+
unref(route).meta.title_hide ? (openBlock(), createBlock(_sfc_main$2, {
|
|
143
143
|
key: 0,
|
|
144
144
|
onClick: _cache[1] || (_cache[1] = ($event) => handleToggle()),
|
|
145
145
|
class: "cursor-pointer i-medium",
|
|
@@ -77,11 +77,11 @@ const _sfc_main = {
|
|
|
77
77
|
return (_ctx, _cache) => {
|
|
78
78
|
return openBlock(), createElementBlock("aside", {
|
|
79
79
|
"data-sidebar": "",
|
|
80
|
-
class: normalizeClass(["ease-quint-out w-min-0 o-hidden flex-child-default z-index-2 br-r-1px flex flex-column h-100", [
|
|
80
|
+
class: normalizeClass(["ease-quint-out w-min-0 o-hidden flex-child-default z-index-2 br-r-1px br-grey flex flex-column h-100", [
|
|
81
81
|
{ "mobile-opened": isManuallyOpened.value },
|
|
82
82
|
__props.stateSidebar ? `${__props.width} w-min-10 tablet:w-min-100 tablet:w-100 mobile:w-min-100 mobile:w-100` : `${__props.widthHidden} mobile:w-0`,
|
|
83
83
|
//
|
|
84
|
-
__props.theme === "light" ? "t-black bg-white
|
|
84
|
+
__props.theme === "light" ? "t-black bg-white " : "t-white bg-black"
|
|
85
85
|
]]),
|
|
86
86
|
onMouseenter: handleMouseEnter,
|
|
87
87
|
onMouseleave: handleMouseLeave
|
|
@@ -105,11 +105,9 @@ const _sfc_main = {
|
|
|
105
105
|
], -1)
|
|
106
106
|
]))) : createCommentVNode("", true),
|
|
107
107
|
createElementVNode("div", {
|
|
108
|
-
class: normalizeClass(["flex-shrink-0 w-100 br-t-1px", {
|
|
108
|
+
class: normalizeClass(["flex-shrink-0 w-100 br-t-1px br-grey", {
|
|
109
109
|
"pd-micro": !__props.stateSidebar,
|
|
110
|
-
"pd-small": __props.stateSidebar
|
|
111
|
-
"br-light": __props.theme === "light",
|
|
112
|
-
"br-dark": __props.theme === "dark"
|
|
110
|
+
"pd-small": __props.stateSidebar
|
|
113
111
|
}])
|
|
114
112
|
}, [
|
|
115
113
|
createElementVNode("button", {
|
|
@@ -129,7 +127,7 @@ const _sfc_main = {
|
|
|
129
127
|
};
|
|
130
128
|
}
|
|
131
129
|
};
|
|
132
|
-
const Sidebar = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
130
|
+
const Sidebar = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-f89a78b5"]]);
|
|
133
131
|
export {
|
|
134
132
|
Sidebar as default
|
|
135
133
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sidebar.vue.js","sources":["../../../../../../../../src/modules/core/views/components/partials/Sidebar.vue"],"sourcesContent":["<script setup>\nimport { ref, watch } from 'vue'\nimport { useRouter, useRoute } from 'vue-router'\nimport { useI18n } from 'vue-i18n'\nimport { useGlobalMixins } from \"@martyrs/src/modules/core/views/mixins/mixins.js\"\nimport { useStore } from '@martyrs/src/modules/core/views/store/core.store.js'\n\nconst { t } = useI18n()\nconst store = useStore()\n\nconst props = defineProps({\n theme: {\n type: String,\n default: \"light\"\n },\n stateSidebar: {\n type: Boolean,\n default: false\n },\n width: {\n type: String,\n default: 'w-15r'\n },\n widthHidden:{\n type: String,\n default: 'w-3r '\n },\n})\n\nconst emits = defineEmits([\n 'closeSidebar'\n])\n\nconst { isPhone, isTablet } = useGlobalMixins()\nconst router = useRouter()\nconst route = useRoute()\n\n// Отдельный флаг для клика меню на mobile\nconst isManuallyOpened = ref(false)\n\n// Синхронизируем с stateSidebar ТОЛЬКО на mobile\nwatch(() => props.stateSidebar, (newVal) => {\n if (isPhone() || isTablet()) {\n isManuallyOpened.value = newVal\n }\n})\n\nconst toggleSidebar = () => {\n isManuallyOpened.value = !isManuallyOpened.value\n if (!isManuallyOpened.value) {\n emits('closeSidebar')\n }\n}\n\nconst handleMouseEnter = () => {\n if (route.meta?.sidebar_hover && !isPhone() && !isTablet()) {\n store.core.state.isOpenSidebar = true\n }\n}\n\nconst handleMouseLeave = () => {\n if (route.meta?.sidebar_hover && !isPhone() && !isTablet()) {\n store.core.state.isOpenSidebar = false\n }\n}\n\nrouter.beforeEach((to, from) => {\n // На mobile не трогаем state через навигацию\n if (isPhone() || isTablet()) {\n emits('closeSidebar')\n return\n }\n\n\n // Desktop логика\n // Если уходим с профиля И НЕ идем на профиль - закрыть\n if (from.meta?.sidebarCloseOnLeave === true && to.meta?.sidebarOpenOnEnter !== true) {\n store.core.state.isOpenSidebar = false\n }\n\n // Если приходим на профиль - открыть\n if (to.meta?.sidebarOpenOnEnter === true) {\n store.core.state.isOpenSidebar = true\n }\n})\n</script>\n\n<template>\n <aside\n data-sidebar\n class=\"ease-quint-out w-min-0 o-hidden flex-child-default z-index-2 br-r-1px flex flex-column h-100\"\n :class=\"[\n { 'mobile-opened': isManuallyOpened },\n stateSidebar\n ? `${width} w-min-10 tablet:w-min-100 tablet:w-100 mobile:w-min-100 mobile:w-100`\n : `${widthHidden} mobile:w-0`,\n //\n theme === 'light'\n ? 't-black bg-white
|
|
1
|
+
{"version":3,"file":"Sidebar.vue.js","sources":["../../../../../../../../src/modules/core/views/components/partials/Sidebar.vue"],"sourcesContent":["<script setup>\nimport { ref, watch } from 'vue'\nimport { useRouter, useRoute } from 'vue-router'\nimport { useI18n } from 'vue-i18n'\nimport { useGlobalMixins } from \"@martyrs/src/modules/core/views/mixins/mixins.js\"\nimport { useStore } from '@martyrs/src/modules/core/views/store/core.store.js'\n\nconst { t } = useI18n()\nconst store = useStore()\n\nconst props = defineProps({\n theme: {\n type: String,\n default: \"light\"\n },\n stateSidebar: {\n type: Boolean,\n default: false\n },\n width: {\n type: String,\n default: 'w-15r'\n },\n widthHidden:{\n type: String,\n default: 'w-3r '\n },\n})\n\nconst emits = defineEmits([\n 'closeSidebar'\n])\n\nconst { isPhone, isTablet } = useGlobalMixins()\nconst router = useRouter()\nconst route = useRoute()\n\n// Отдельный флаг для клика меню на mobile\nconst isManuallyOpened = ref(false)\n\n// Синхронизируем с stateSidebar ТОЛЬКО на mobile\nwatch(() => props.stateSidebar, (newVal) => {\n if (isPhone() || isTablet()) {\n isManuallyOpened.value = newVal\n }\n})\n\nconst toggleSidebar = () => {\n isManuallyOpened.value = !isManuallyOpened.value\n if (!isManuallyOpened.value) {\n emits('closeSidebar')\n }\n}\n\nconst handleMouseEnter = () => {\n if (route.meta?.sidebar_hover && !isPhone() && !isTablet()) {\n store.core.state.isOpenSidebar = true\n }\n}\n\nconst handleMouseLeave = () => {\n if (route.meta?.sidebar_hover && !isPhone() && !isTablet()) {\n store.core.state.isOpenSidebar = false\n }\n}\n\nrouter.beforeEach((to, from) => {\n // На mobile не трогаем state через навигацию\n if (isPhone() || isTablet()) {\n emits('closeSidebar')\n return\n }\n\n\n // Desktop логика\n // Если уходим с профиля И НЕ идем на профиль - закрыть\n if (from.meta?.sidebarCloseOnLeave === true && to.meta?.sidebarOpenOnEnter !== true) {\n store.core.state.isOpenSidebar = false\n }\n\n // Если приходим на профиль - открыть\n if (to.meta?.sidebarOpenOnEnter === true) {\n store.core.state.isOpenSidebar = true\n }\n})\n</script>\n\n<template>\n <aside\n data-sidebar\n class=\"ease-quint-out w-min-0 o-hidden flex-child-default z-index-2 br-r-1px br-grey flex flex-column h-100\"\n :class=\"[\n { 'mobile-opened': isManuallyOpened },\n stateSidebar\n ? `${width} w-min-10 tablet:w-min-100 tablet:w-100 mobile:w-min-100 mobile:w-100`\n : `${widthHidden} mobile:w-0`,\n //\n theme === 'light'\n ? 't-black bg-white '\n : 't-white bg-black'\n ]\"\n @mouseenter=\"handleMouseEnter\"\n @mouseleave=\"handleMouseLeave\"\n >\n <!-- Header slot - shrink-0 -->\n <div class=\"flex-shrink-0\">\n <slot name=\"header\"></slot>\n </div>\n\n <!-- Main scrollable content - flex-1 overflow-y-auto -->\n <div class=\"flex-child-1 o-y-auto\">\n <slot></slot>\n </div>\n\n <!-- Footer slot - shrink-0 -->\n <div class=\"flex-shrink-0\">\n <slot name=\"footer\"></slot>\n </div>\n <div v-if=\"MOBILE_APP\" @click=\"() => toggleSidebar()\" class=\"flex-shrink-0 pos-relative\">\n <div class=\"bg-light radius-medium pd-medium\">\n <p class=\"fw-medium t-black-transp-60\">\n Close Menu\n </p>\n </div>\n </div>\n <div\n class=\"flex-shrink-0 w-100 br-t-1px br-grey\"\n :class=\"{ \n 'pd-micro': !stateSidebar, \n 'pd-small': stateSidebar,\n }\"\n >\n <button\n @click=\"() => store.core.actions.toggleTheme()\"\n class=\"ease-quint-out flex w-100 flex-center radius-small cursor-pointer flex-nowrap\"\n :class=\"[\n stateSidebar ? 'pd-thin justify-between' : 'w-100 justify-center',\n theme === 'light' ? 'hover:bg-light' : 'hover:bg-dark'\n ]\"\n >\n <span\n class=\"w-100 ws-nowrap ease-quint-out t-left fw-medium mn-r-thin\"\n :class=\"{ 'hidden': !stateSidebar, 'visible': stateSidebar }\"\n >\n {{ $t('core.ui.darkMode') }}\n </span>\n <span class=\"aspect-1x1 flex-child-default w-max-big w-100 flex flex-center \">\n {{ store.core.state.theme.mode === 'dark' ? '🌙' : '☀️' }}\n </span>\n </button>\n </div>\n </aside>\n</template>\n\n<style scoped>\n.hidden {\n opacity: 0;\n width: 0;\n display: none;\n}\n.visible {\n opacity: 1;\n display: block;\n}\n\n/* Mobile: ВСЕГДА скрываем, показываем ТОЛЬКО по клику меню */\n@media (max-width: 1024px) {\n aside[data-sidebar] {\n position: absolute !important;\n left: 0 !important;\n transform: translateX(-100%) !important;\n visibility: hidden !important;\n z-index: 1000 !important;\n }\n\n /* Показываем ТОЛЬКО когда manual клик (НЕ от SSR state) */\n aside[data-sidebar].mobile-opened {\n transform: translateX(0) !important;\n visibility: visible !important;\n }\n}\n\n/* Scrollbar styles */\n::-webkit-scrollbar {\n width: 6px;\n}\n::-webkit-scrollbar-track {\n background: transparent;\n}\n::-webkit-scrollbar-thumb {\n background-color: var(--grey-micro);\n border-radius: 3px;\n}\n::-webkit-scrollbar-thumb:hover {\n background-color: var(--grey-small);\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,UAAM,EAAE,EAAC,IAAK,QAAO;AACrB,UAAM,QAAQ,SAAQ;AAEtB,UAAM,QAAQ;AAmBd,UAAM,QAAQ;AAId,UAAM,EAAE,SAAS,SAAQ,IAAK,gBAAe;AAC7C,UAAM,SAAS,UAAS;AACxB,UAAM,QAAQ,SAAQ;AAGtB,UAAM,mBAAmB,IAAI,KAAK;AAGlC,UAAM,MAAM,MAAM,cAAc,CAAC,WAAW;AAC1C,UAAI,QAAO,KAAM,YAAY;AAC3B,yBAAiB,QAAQ;AAAA,MAC3B;AAAA,IACF,CAAC;AAED,UAAM,gBAAgB,MAAM;AAC1B,uBAAiB,QAAQ,CAAC,iBAAiB;AAC3C,UAAI,CAAC,iBAAiB,OAAO;AAC3B,cAAM,cAAc;AAAA,MACtB;AAAA,IACF;AAEA,UAAM,mBAAmB,MAAM;AAC7B,UAAI,MAAM,MAAM,iBAAiB,CAAC,QAAO,KAAM,CAAC,YAAY;AAC1D,cAAM,KAAK,MAAM,gBAAgB;AAAA,MACnC;AAAA,IACF;AAEA,UAAM,mBAAmB,MAAM;AAC7B,UAAI,MAAM,MAAM,iBAAiB,CAAC,QAAO,KAAM,CAAC,YAAY;AAC1D,cAAM,KAAK,MAAM,gBAAgB;AAAA,MACnC;AAAA,IACF;AAEA,WAAO,WAAW,CAAC,IAAI,SAAS;AAE9B,UAAI,QAAO,KAAM,YAAY;AAC3B,cAAM,cAAc;AACpB;AAAA,MACF;AAKA,UAAI,KAAK,MAAM,wBAAwB,QAAQ,GAAG,MAAM,uBAAuB,MAAM;AACnF,cAAM,KAAK,MAAM,gBAAgB;AAAA,MACnC;AAGA,UAAI,GAAG,MAAM,uBAAuB,MAAM;AACxC,cAAM,KAAK,MAAM,gBAAgB;AAAA,MACnC;AAAA,IACF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/martyrs/src/modules/core/views/components/sections/{Filters.vue2.js → Filters.vue.js}
RENAMED
|
@@ -10,7 +10,7 @@ import _sfc_main$2 from "../../../../icons/entities/IconCalendar.vue.js";
|
|
|
10
10
|
import _export_sfc from "../../../../../../../_virtual/_plugin-vue_export-helper.js";
|
|
11
11
|
import _sfc_main$6 from "./filters/FilterOptions.vue.js";
|
|
12
12
|
import _sfc_main$1 from "../../../../icons/navigation/IconFilter.vue.js";
|
|
13
|
-
/* empty css
|
|
13
|
+
/* empty css */
|
|
14
14
|
const _hoisted_1 = { class: "flex o-x-scroll scroll-hide ws-nowrap gap-thin" };
|
|
15
15
|
const _hoisted_2 = { key: 0 };
|
|
16
16
|
const _hoisted_3 = ["onClick"];
|
|
@@ -270,4 +270,4 @@ const Filters = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-02
|
|
|
270
270
|
export {
|
|
271
271
|
Filters as default
|
|
272
272
|
};
|
|
273
|
-
//# sourceMappingURL=Filters.
|
|
273
|
+
//# sourceMappingURL=Filters.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Filters.vue.js","sources":["../../../../../../../../src/modules/core/views/components/sections/Filters.vue"],"sourcesContent":["<template>\n <div class=\"flex o-x-scroll scroll-hide ws-nowrap gap-thin\">\n <!-- All Filters Button -->\n <button\n @click=\"showAllFilters = true\"\n class=\"pd-small radius-medium bg-light flex-v-center flex gap-micro cursor-pointer\"\n :class=\"{ 'bg-main': activeFiltersCount > 0 }\"\n >\n <IconFilter class=\"i-regular\" />\n <span class=\"h-1r\"></span>\n <span v-if=\"activeFiltersCount\">{{ activeFiltersCount }}</span>\n </button>\n\n <!-- Individual Filter Buttons -->\n <button\n v-for=\"filter in filters\"\n :key=\"filter.value\"\n @click=\"openFilter(filter.value)\"\n class=\"pd-small radius-medium bg-light cursor-pointer flex-v-center flex gap-micro\"\n :class=\"{ 'selected bg-main': isFilterActive(filter) }\"\n >\n <IconCalendar v-if=\"filter.type === 'date'\" class=\"mn-r-micro i-regular\" />\n <span class=\"ws-nowrap\">{{ filter.type === 'date' && getFilterValue(filter) ? formatFilterValue(filter) : filter.title }}</span>\n <span v-if=\"getFilterValue(filter) && filter.type !== 'date'\" class=\"mn-l-micro\">\n {{ formatFilterValue(filter) }}\n </span>\n </button>\n\n <!-- All Filters Popup -->\n <Popup\n :isPopupOpen=\"showAllFilters\"\n @close-popup=\"closeAllFilters\"\n :align=\"isPhone() ? 'bottom center' : 'center center'\"\n class=\"w-min-20r bg-white radius-medium mobile:radius-zero mobile:radius-tr-medium mobile:radius-tl-medium mobile:w-100 pd-medium\"\n >\n <FiltersGroup\n :filters=\"filters\"\n v-model:selected=\"tempSelected\"\n :immediate=\"false\"\n :showHeader=\"true\"\n :showApplyButton=\"true\"\n :showResetButton=\"true\"\n @update:selected=\"applyAllFilters\"\n />\n </Popup>\n\n <!-- Individual Filter Popups -->\n <Popup\n v-for=\"filter in filters\"\n :key=\"`popup-${filter.value}`\"\n :isPopupOpen=\"individualPopups[filter.value]\"\n @close-popup=\"cancelFilter(filter.value)\"\n :align=\"isPhone() ? 'bottom center' : 'center center'\"\n class=\"bg-white radius-medium mobile:radius-zero mobile:radius-tr-medium mobile:radius-tl-medium mobile:w-100 pd-medium\"\n >\n <h4 class=\"mn-b-medium\">{{ filter.title }}</h4>\n\n <!-- Checkbox Filter -->\n <FilterCheckbox\n v-if=\"filter.type === 'checkbox'\"\n v-model=\"tempSelected[filter.value]\"\n :options=\"filter.options\"\n />\n\n <!-- Range Filter -->\n <FilterRange\n v-else-if=\"filter.type === 'range'\"\n v-model=\"tempSelected[filter.value]\"\n :minPlaceholder=\"filter.minPlaceholder || 'Min'\"\n :maxPlaceholder=\"filter.maxPlaceholder || 'Max'\"\n :label=\"filter.label\"\n />\n\n <!-- Date Filter -->\n <div v-else-if=\"filter.type === 'date'\">\n <div class=\"mn-t-small\">\n <Calendar\n v-model:date=\"tempSelected[filter.value]\"\n :allowRange=\"true\"\n :disablePastDates=\"true\"\n class=\"bg-light radius-small\"\n />\n </div>\n </div>\n\n <!-- Radio/Options Filter -->\n <FilterOptions\n v-else-if=\"filter.type === 'radio'\"\n v-model=\"tempSelected[filter.value]\"\n :options=\"filter.options\"\n />\n\n <div class=\"flex gap-thin mn-t-medium\">\n <button\n @click=\"cancelFilter(filter.value)\"\n class=\"bg-light button flex-child-full\"\n >\n Cancel\n </button>\n <button\n @click=\"applyFilter(filter.value)\"\n class=\"bg-main w-100 button flex-child-full\"\n >\n Apply\n </button>\n </div>\n </Popup>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed, reactive, watch } from 'vue'\nimport { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js'\nimport Popup from '@martyrs/src/components/Popup/Popup.vue'\nimport Calendar from '@martyrs/src/components/Calendar/Calendar.vue'\nimport FiltersGroup from './filters/FiltersGroup.vue'\nimport FilterCheckbox from './filters/FilterCheckbox.vue'\nimport FilterRange from './filters/FilterRange.vue'\nimport FilterDateRange from './filters/FilterDateRange.vue'\nimport FilterOptions from './filters/FilterOptions.vue'\nimport IconFilter from '@martyrs/src/modules/icons/navigation/IconFilter.vue'\nimport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue'\nimport IconCalendar from '@martyrs/src/modules/icons/entities/IconCalendar.vue'\n\nconst filters = defineModel('filters', {\n type: Array,\n required: true\n})\n\nconst selected = defineModel('selected', {\n type: Object,\n default: () => ({})\n})\n\nconst emit = defineEmits(['select'])\n\nconst { formatDate, returnCurrency } = useGlobalMixins()\n\n// State\nconst showAllFilters = ref(false)\nconst individualPopups = reactive({})\nconst tempSelected = reactive({})\nconst tempDateRange = ref(null)\n\n// Initialize popups and temp values\nwatch(filters, (newFilters) => {\n newFilters.forEach(filter => {\n individualPopups[filter.value] = false\n \n if (!tempSelected[filter.value]) {\n if (filter.type === 'checkbox') {\n tempSelected[filter.value] = [...(selected.value[filter.value] || [])]\n } else if (filter.type === 'range') {\n tempSelected[filter.value] = { ...(selected.value[filter.value] || { min: '', max: '' }) }\n } else if (filter.type === 'date') {\n tempSelected[filter.value] = selected.value[filter.value] || null\n } else {\n tempSelected[filter.value] = selected.value[filter.value] || null\n }\n }\n })\n}, { immediate: true, deep: true })\n\n// Sync selected to tempSelected\nwatch(selected, (newSelected) => {\n Object.keys(newSelected).forEach(key => {\n const filter = filters.value.find(f => f.value === key)\n if (filter) {\n if (filter.type === 'checkbox') {\n tempSelected[key] = [...(newSelected[key] || [])]\n } else if (filter.type === 'range') {\n tempSelected[key] = { ...(newSelected[key] || { min: '', max: '' }) }\n } else {\n tempSelected[key] = newSelected[key]\n }\n }\n })\n}, { deep: true })\n\n// Computed\nconst activeFiltersCount = computed(() => {\n return Object.entries(selected.value).filter(([key, value]) => {\n if (Array.isArray(value)) return value.length > 0\n if (typeof value === 'object' && value !== null) {\n return value.min || value.max\n }\n return value !== null && value !== undefined\n }).length\n})\n\n// Methods\nconst openFilter = (filterValue) => {\n individualPopups[filterValue] = true\n}\n\nconst isFilterActive = (filter) => {\n const value = selected.value[filter.value]\n if (!value) return false\n if (Array.isArray(value)) return value.length > 0\n if (filter.type === 'range') return value.min || value.max\n return true\n}\n\nconst getFilterValue = (filter) => {\n const value = selected.value[filter.value]\n if (!value) return false\n \n if (filter.type === 'range') {\n return value.min || value.max\n }\n \n if (filter.type === 'date') {\n return value && value.start && value.end\n }\n \n if (Array.isArray(value)) {\n return value.length > 0\n }\n \n return value\n}\n\nconst formatFilterValue = (filter) => {\n const value = selected.value[filter.value]\n if (!value) return ''\n \n if (Array.isArray(value)) {\n return `(${value.length})`\n }\n \n if (filter.type === 'range') {\n if (!value.min && !value.max) return ''\n return `${value.min || '0'}-${value.max || '∞'}`\n }\n \n if (filter.type === 'date') {\n if (!value || !value.start || !value.end) return ''\n return `${formatDate(value.start, { dayMonth: true, language: 'en' })} - ${formatDate(value.end, { dayMonth: true, language: 'en' })}`\n }\n \n if (filter.type === 'radio') {\n const option = filter.options.find(o => o.value === value)\n return option ? `(${option.label})` : ''\n }\n \n return ''\n}\n\nconst applyFilter = (filterValue) => {\n selected.value[filterValue] = tempSelected[filterValue]\n individualPopups[filterValue] = false\n emit('select', { filter: filterValue, value: tempSelected[filterValue] })\n}\n\nconst cancelFilter = (filterValue) => {\n const filter = filters.value.find(f => f.value === filterValue)\n if (filter) {\n if (filter.type === 'checkbox') {\n tempSelected[filterValue] = [...(selected.value[filterValue] || [])]\n } else if (filter.type === 'range') {\n tempSelected[filterValue] = { ...(selected.value[filterValue] || { min: '', max: '' }) }\n } else if (filter.type === 'date') {\n tempSelected[filterValue] = selected.value[filterValue] || null\n } else {\n tempSelected[filterValue] = selected.value[filterValue] || null\n }\n }\n individualPopups[filterValue] = false\n}\n\nconst applyAllFilters = (newValues) => {\n Object.entries(newValues).forEach(([key, value]) => {\n if (selected.value[key] !== value) {\n selected.value[key] = value\n emit('select', { filter: key, value })\n }\n })\n showAllFilters.value = false\n}\n\nconst closeAllFilters = () => {\n showAllFilters.value = false\n}\n</script>\n\n<style scoped>\n.filters-content {\n max-height: 60vh;\n overflow-y: auto;\n}\n</style>"],"names":["_useModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4HA,UAAM,UAAUA,SAAW,SAAC,SAG3B;AAED,UAAM,WAAWA,SAAW,SAAC,UAG5B;AAED,UAAM,OAAO;AAEb,UAAM,EAAE,YAAY,eAAc,IAAK,gBAAe;AAGtD,UAAM,iBAAiB,IAAI,KAAK;AAChC,UAAM,mBAAmB,SAAS,CAAA,CAAE;AACpC,UAAM,eAAe,SAAS,CAAA,CAAE;AACV,QAAI,IAAI;AAG9B,UAAM,SAAS,CAAC,eAAe;AAC7B,iBAAW,QAAQ,YAAU;AAC3B,yBAAiB,OAAO,KAAK,IAAI;AAEjC,YAAI,CAAC,aAAa,OAAO,KAAK,GAAG;AAC/B,cAAI,OAAO,SAAS,YAAY;AAC9B,yBAAa,OAAO,KAAK,IAAI,CAAC,GAAI,SAAS,MAAM,OAAO,KAAK,KAAK,EAAG;AAAA,UACvE,WAAW,OAAO,SAAS,SAAS;AAClC,yBAAa,OAAO,KAAK,IAAI,EAAE,GAAI,SAAS,MAAM,OAAO,KAAK,KAAK,EAAE,KAAK,IAAI,KAAK,GAAE,EAAG;AAAA,UAC1F,WAAW,OAAO,SAAS,QAAQ;AACjC,yBAAa,OAAO,KAAK,IAAI,SAAS,MAAM,OAAO,KAAK,KAAK;AAAA,UAC/D,OAAO;AACL,yBAAa,OAAO,KAAK,IAAI,SAAS,MAAM,OAAO,KAAK,KAAK;AAAA,UAC/D;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH,GAAG,EAAE,WAAW,MAAM,MAAM,KAAI,CAAE;AAGlC,UAAM,UAAU,CAAC,gBAAgB;AAC/B,aAAO,KAAK,WAAW,EAAE,QAAQ,SAAO;AACtC,cAAM,SAAS,QAAQ,MAAM,KAAK,OAAK,EAAE,UAAU,GAAG;AACtD,YAAI,QAAQ;AACV,cAAI,OAAO,SAAS,YAAY;AAC9B,yBAAa,GAAG,IAAI,CAAC,GAAI,YAAY,GAAG,KAAK,EAAG;AAAA,UAClD,WAAW,OAAO,SAAS,SAAS;AAClC,yBAAa,GAAG,IAAI,EAAE,GAAI,YAAY,GAAG,KAAK,EAAE,KAAK,IAAI,KAAK,GAAE,EAAG;AAAA,UACrE,OAAO;AACL,yBAAa,GAAG,IAAI,YAAY,GAAG;AAAA,UACrC;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH,GAAG,EAAE,MAAM,KAAI,CAAE;AAGjB,UAAM,qBAAqB,SAAS,MAAM;AACxC,aAAO,OAAO,QAAQ,SAAS,KAAK,EAAE,OAAO,CAAC,CAAC,KAAK,KAAK,MAAM;AAC7D,YAAI,MAAM,QAAQ,KAAK,EAAG,QAAO,MAAM,SAAS;AAChD,YAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAC/C,iBAAO,MAAM,OAAO,MAAM;AAAA,QAC5B;AACA,eAAO,UAAU,QAAQ,UAAU;AAAA,MACrC,CAAC,EAAE;AAAA,IACL,CAAC;AAGD,UAAM,aAAa,CAAC,gBAAgB;AAClC,uBAAiB,WAAW,IAAI;AAAA,IAClC;AAEA,UAAM,iBAAiB,CAAC,WAAW;AACjC,YAAM,QAAQ,SAAS,MAAM,OAAO,KAAK;AACzC,UAAI,CAAC,MAAO,QAAO;AACnB,UAAI,MAAM,QAAQ,KAAK,EAAG,QAAO,MAAM,SAAS;AAChD,UAAI,OAAO,SAAS,QAAS,QAAO,MAAM,OAAO,MAAM;AACvD,aAAO;AAAA,IACT;AAEA,UAAM,iBAAiB,CAAC,WAAW;AACjC,YAAM,QAAQ,SAAS,MAAM,OAAO,KAAK;AACzC,UAAI,CAAC,MAAO,QAAO;AAEnB,UAAI,OAAO,SAAS,SAAS;AAC3B,eAAO,MAAM,OAAO,MAAM;AAAA,MAC5B;AAEA,UAAI,OAAO,SAAS,QAAQ;AAC1B,eAAO,SAAS,MAAM,SAAS,MAAM;AAAA,MACvC;AAEA,UAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,eAAO,MAAM,SAAS;AAAA,MACxB;AAEA,aAAO;AAAA,IACT;AAEA,UAAM,oBAAoB,CAAC,WAAW;AACpC,YAAM,QAAQ,SAAS,MAAM,OAAO,KAAK;AACzC,UAAI,CAAC,MAAO,QAAO;AAEnB,UAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,eAAO,IAAI,MAAM,MAAM;AAAA,MACzB;AAEA,UAAI,OAAO,SAAS,SAAS;AAC3B,YAAI,CAAC,MAAM,OAAO,CAAC,MAAM,IAAK,QAAO;AACrC,eAAO,GAAG,MAAM,OAAO,GAAG,IAAI,MAAM,OAAO,GAAG;AAAA,MAChD;AAEA,UAAI,OAAO,SAAS,QAAQ;AAC1B,YAAI,CAAC,SAAS,CAAC,MAAM,SAAS,CAAC,MAAM,IAAK,QAAO;AACjD,eAAO,GAAG,WAAW,MAAM,OAAO,EAAE,UAAU,MAAM,UAAU,KAAI,CAAE,CAAC,MAAM,WAAW,MAAM,KAAK,EAAE,UAAU,MAAM,UAAU,KAAI,CAAE,CAAC;AAAA,MACtI;AAEA,UAAI,OAAO,SAAS,SAAS;AAC3B,cAAM,SAAS,OAAO,QAAQ,KAAK,OAAK,EAAE,UAAU,KAAK;AACzD,eAAO,SAAS,IAAI,OAAO,KAAK,MAAM;AAAA,MACxC;AAEA,aAAO;AAAA,IACT;AAEA,UAAM,cAAc,CAAC,gBAAgB;AACnC,eAAS,MAAM,WAAW,IAAI,aAAa,WAAW;AACtD,uBAAiB,WAAW,IAAI;AAChC,WAAK,UAAU,EAAE,QAAQ,aAAa,OAAO,aAAa,WAAW,EAAC,CAAE;AAAA,IAC1E;AAEA,UAAM,eAAe,CAAC,gBAAgB;AACpC,YAAM,SAAS,QAAQ,MAAM,KAAK,OAAK,EAAE,UAAU,WAAW;AAC9D,UAAI,QAAQ;AACV,YAAI,OAAO,SAAS,YAAY;AAC9B,uBAAa,WAAW,IAAI,CAAC,GAAI,SAAS,MAAM,WAAW,KAAK,EAAG;AAAA,QACrE,WAAW,OAAO,SAAS,SAAS;AAClC,uBAAa,WAAW,IAAI,EAAE,GAAI,SAAS,MAAM,WAAW,KAAK,EAAE,KAAK,IAAI,KAAK,GAAE,EAAG;AAAA,QACxF,WAAW,OAAO,SAAS,QAAQ;AACjC,uBAAa,WAAW,IAAI,SAAS,MAAM,WAAW,KAAK;AAAA,QAC7D,OAAO;AACL,uBAAa,WAAW,IAAI,SAAS,MAAM,WAAW,KAAK;AAAA,QAC7D;AAAA,MACF;AACA,uBAAiB,WAAW,IAAI;AAAA,IAClC;AAEA,UAAM,kBAAkB,CAAC,cAAc;AACrC,aAAO,QAAQ,SAAS,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AAClD,YAAI,SAAS,MAAM,GAAG,MAAM,OAAO;AACjC,mBAAS,MAAM,GAAG,IAAI;AACtB,eAAK,UAAU,EAAE,QAAQ,KAAK,MAAK,CAAE;AAAA,QACvC;AAAA,MACF,CAAC;AACD,qBAAe,QAAQ;AAAA,IACzB;AAEA,UAAM,kBAAkB,MAAM;AAC5B,qBAAe,QAAQ;AAAA,IACzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { resolveComponent, createElementBlock, openBlock, createElementVNode, createBlock, createCommentVNode, toDisplayString, Fragment, renderList, normalizeClass, withCtx, createTextVNode } from "vue";
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
const
|
|
1
|
+
import { resolveComponent, createElementBlock, openBlock, createElementVNode, createBlock, createCommentVNode, toDisplayString, Fragment, renderList, resolveDynamicComponent, mergeProps, unref, normalizeClass, withCtx, createTextVNode } from "vue";
|
|
2
|
+
import { useRouter, useRoute } from "vue-router";
|
|
3
|
+
import _sfc_main$1 from "../../../../../components/Tab/Tab.vue.js";
|
|
4
|
+
const _hoisted_1 = { class: "" };
|
|
5
|
+
const _hoisted_2 = { class: "flex-v-center flex-nowrap flex" };
|
|
6
|
+
const _hoisted_3 = { class: "h2 mn-r-auto" };
|
|
7
|
+
const _hoisted_4 = ["onClick"];
|
|
6
8
|
const _sfc_main = {
|
|
7
9
|
__name: "SectionPageTitle",
|
|
8
10
|
props: {
|
|
@@ -15,19 +17,27 @@ const _sfc_main = {
|
|
|
15
17
|
"update:tabs_current"
|
|
16
18
|
],
|
|
17
19
|
setup(__props, { emit: __emit }) {
|
|
20
|
+
const $router = useRouter();
|
|
21
|
+
const $route = useRoute();
|
|
18
22
|
const emits = __emit;
|
|
19
23
|
const updateTabsCurrent = (newValue) => {
|
|
20
24
|
emits("update:tabs_current", newValue);
|
|
21
25
|
};
|
|
22
26
|
return (_ctx, _cache) => {
|
|
23
27
|
const _component_router_link = resolveComponent("router-link");
|
|
24
|
-
return openBlock(), createElementBlock("div",
|
|
25
|
-
createElementVNode("header",
|
|
26
|
-
createElementVNode("h1",
|
|
27
|
-
|
|
28
|
-
return openBlock(), createElementBlock(Fragment,
|
|
29
|
-
action.
|
|
30
|
-
key:
|
|
28
|
+
return openBlock(), createElementBlock("div", _hoisted_1, [
|
|
29
|
+
createElementVNode("header", _hoisted_2, [
|
|
30
|
+
createElementVNode("h1", _hoisted_3, toDisplayString(__props.title), 1),
|
|
31
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(__props.actions, (action, index) => {
|
|
32
|
+
return openBlock(), createElementBlock(Fragment, { key: index }, [
|
|
33
|
+
action.component && (typeof action.condition === "function" ? action.condition() : action.condition !== false) ? (openBlock(), createBlock(resolveDynamicComponent(action.component), mergeProps({
|
|
34
|
+
key: 0,
|
|
35
|
+
ref_for: true
|
|
36
|
+
}, action.props, {
|
|
37
|
+
onClick: ($event) => action.action && action.action(unref($router), unref($route)),
|
|
38
|
+
class: "i-medium cursor-pointer"
|
|
39
|
+
}), null, 16, ["onClick"])) : action.to ? (openBlock(), createBlock(_component_router_link, {
|
|
40
|
+
key: 1,
|
|
31
41
|
to: action.to,
|
|
32
42
|
class: normalizeClass(action.class || "radius-extra pd-small pd-r-medium pd-l-medium p-regular uppercase fw-medium hover:scale-[1.05] ease cursor-pointer t-white bg-second flex-center flex")
|
|
33
43
|
}, {
|
|
@@ -35,21 +45,21 @@ const _sfc_main = {
|
|
|
35
45
|
createTextVNode(toDisplayString(action.label), 1)
|
|
36
46
|
]),
|
|
37
47
|
_: 2
|
|
38
|
-
}, 1032, ["to", "class"])) :
|
|
39
|
-
|
|
40
|
-
key: 1,
|
|
48
|
+
}, 1032, ["to", "class"])) : action.method ? (openBlock(), createElementBlock("button", {
|
|
49
|
+
key: 2,
|
|
41
50
|
onClick: action.method,
|
|
42
51
|
class: normalizeClass(action.class || "radius-extra pd-thin uppercase fw-medium hover:scale-[1.05] ease cursor-pointer t-white bg-second flex-center flex")
|
|
43
|
-
}, toDisplayString(action.label), 11,
|
|
52
|
+
}, toDisplayString(action.label), 11, _hoisted_4)) : createCommentVNode("", true)
|
|
44
53
|
], 64);
|
|
45
|
-
}),
|
|
54
|
+
}), 128))
|
|
46
55
|
]),
|
|
47
56
|
__props.tabs ? (openBlock(), createBlock(_sfc_main$1, {
|
|
48
57
|
key: 0,
|
|
49
58
|
selected: __props.tabs_current,
|
|
50
59
|
"onUpdate:selected": updateTabsCurrent,
|
|
51
60
|
tabs: __props.tabs,
|
|
52
|
-
|
|
61
|
+
classTab: "bg-white",
|
|
62
|
+
class: "mn-t-small w-100 bg-light pd-thin radius-medium gap-thin"
|
|
53
63
|
}, null, 8, ["selected", "tabs"])) : createCommentVNode("", true)
|
|
54
64
|
]);
|
|
55
65
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SectionPageTitle.vue.js","sources":["../../../../../../../../src/modules/core/views/components/sections/SectionPageTitle.vue"],"sourcesContent":["<template>\n <div>\n <header class=\"flex-v-center flex-nowrap flex\">\n <h1 class=\"h2 mn-r-auto\">{{ title }}</h1>\n\n <template
|
|
1
|
+
{"version":3,"file":"SectionPageTitle.vue.js","sources":["../../../../../../../../src/modules/core/views/components/sections/SectionPageTitle.vue"],"sourcesContent":["<template>\n <div class=\"\">\n <header class=\"flex-v-center flex-nowrap flex \">\n <h1 class=\"h2 mn-r-auto\">{{ title }}</h1>\n\n <template\n v-for=\"(action, index) in actions\"\n :key=\"index\"\n >\n <component\n v-if=\"action.component && (typeof action.condition === 'function' ? action.condition() : action.condition !== false)\"\n :is=\"action.component\"\n v-bind=\"action.props\"\n @click=\"action.action && action.action($router, $route)\"\n class=\"i-medium cursor-pointer\"\n />\n\n <router-link\n v-else-if=\"action.to\"\n :to=\"action.to\"\n :class=\"action.class || 'radius-extra pd-small pd-r-medium pd-l-medium p-regular uppercase fw-medium hover:scale-[1.05] ease cursor-pointer t-white bg-second flex-center flex'\"\n >\n {{ action.label }}\n </router-link>\n\n <button\n v-else-if=\"action.method\"\n @click=\"action.method\"\n :class=\"action.class || 'radius-extra pd-thin uppercase fw-medium hover:scale-[1.05] ease cursor-pointer t-white bg-second flex-center flex'\"\n >\n {{ action.label }}\n </button>\n </template>\n </header>\n\n <Tab\n v-if=\"tabs\"\n :selected=\"tabs_current\"\n @update:selected=\"updateTabsCurrent\"\n :tabs=\"tabs\"\n classTab=\"bg-white\"\n class=\"mn-t-small w-100 bg-light pd-thin radius-medium gap-thin\"\n />\n </div>\n</template>\n\n<script setup>\nimport { useRouter, useRoute } from 'vue-router'\n\nimport Tab from '@martyrs/src/components/Tab/Tab.vue'\n\nconst $router = useRouter()\nconst $route = useRoute()\n\nconst emits = defineEmits([\n 'update:tabs_current'\n])\n\nconst props = defineProps({\n title: String,\n actions: Array,\n tabs: Array,\n tabs_current: [Object, String],\n});\n\nconst updateTabsCurrent = (newValue) => {\n emits('update:tabs_current', newValue);\n}\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAmDA,UAAM,UAAU,UAAS;AACzB,UAAM,SAAS,SAAQ;AAEvB,UAAM,QAAQ;AAWd,UAAM,oBAAoB,CAAC,aAAa;AACtC,YAAM,uBAAuB,QAAQ;AAAA,IACvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { useStore } from "../store/core.store.js";
|
|
2
|
+
import { i18nManager } from "../classes/i18n.manager.js";
|
|
2
3
|
function useGlobalMixins() {
|
|
3
4
|
const isModuleInstalled = (moduleName) => {
|
|
4
5
|
const store = useStore();
|
|
@@ -89,7 +90,7 @@ function useGlobalMixins() {
|
|
|
89
90
|
...options
|
|
90
91
|
// дополнительные настройки
|
|
91
92
|
};
|
|
92
|
-
const locale = options.language || "
|
|
93
|
+
const locale = options.language || i18nManager.i18nInstance?.global?.locale?.value || "en";
|
|
93
94
|
const dateFormatter = new Intl.DateTimeFormat(locale, formatOptions);
|
|
94
95
|
var format = {
|
|
95
96
|
dateOnly: options.dateOnly || false,
|
|
@@ -101,8 +102,7 @@ function useGlobalMixins() {
|
|
|
101
102
|
custom: options.custom || "",
|
|
102
103
|
monthName: options.monthName || false,
|
|
103
104
|
// Новый параметр для вывода названия месяца
|
|
104
|
-
language: options.language || "
|
|
105
|
-
// Язык, по умолчанию русский
|
|
105
|
+
language: options.language || i18nManager.i18nInstance?.global?.locale?.value || "en"
|
|
106
106
|
};
|
|
107
107
|
if (format.dateOnly) {
|
|
108
108
|
return dateFormatter.format(fixedDate).split(",")[0];
|