@ozdao/martyrs 0.2.470 → 0.2.472
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{Media-CR0V1zvB.js → Media-DW8RLbfM.js} +1 -1
- package/dist/{Media-C4Ges_Sd.mjs → Media-y_TX6us_.mjs} +1 -1
- package/dist/_virtual/index.cjs +1 -1
- package/dist/_virtual/index.js +1 -1
- package/dist/auth.server.js +1 -1
- package/dist/auth.server.mjs +1 -1
- package/dist/chats.server.js +1 -1
- package/dist/chats.server.mjs +1 -1
- package/dist/community.server.js +1 -1
- package/dist/community.server.mjs +1 -1
- package/dist/events.server.js +1 -1
- package/dist/events.server.mjs +1 -1
- package/dist/files.server.js +1 -1
- package/dist/files.server.mjs +1 -1
- package/dist/gallery.server.js +1 -1
- package/dist/gallery.server.mjs +1 -1
- package/dist/{index-DQqZReAr.js → index-CVXl1rB5.js} +0 -1
- package/dist/{index-DICZTQ-1.mjs → index-Df8vtZx7.mjs} +0 -1
- package/dist/{main-CsZAG5Wz.js → main-CCfQH-Dd.js} +2 -2
- package/dist/{main-CTcal9qN.mjs → main-CgmHzhq5.mjs} +74 -74
- package/dist/{node_modules/.pnpm/@vue_server-renderer@3.5.13_vue@3.5.13_typescript@5.8.3_ → martyrs}/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.cjs +1 -1
- package/dist/martyrs/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.cjs.map +1 -0
- package/dist/{node_modules/.pnpm/@vue_server-renderer@3.5.13_vue@3.5.13_typescript@5.8.3_ → martyrs}/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.js +1 -1
- package/dist/martyrs/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.js.map +1 -0
- package/dist/martyrs/node_modules/@vue/shared/dist/shared.esm-bundler.cjs.map +1 -0
- package/dist/martyrs/node_modules/@vue/shared/dist/shared.esm-bundler.js.map +1 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/regex.cjs +5 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/regex.cjs.map +1 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/regex.js +5 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/regex.js.map +1 -0
- package/dist/{node_modules/.pnpm/uuid@11.1.0 → martyrs}/node_modules/uuid/dist/esm-browser/rng.cjs +4 -4
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/rng.cjs.map +1 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/rng.js +15 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/rng.js.map +1 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/stringify.cjs +17 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/stringify.cjs.map +1 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/stringify.js +17 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/stringify.js.map +1 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/v4.cjs +13 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/v4.cjs.map +1 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/v4.js +13 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/v4.js.map +1 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/validate.cjs +8 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/validate.cjs.map +1 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/validate.js +8 -0
- package/dist/martyrs/node_modules/uuid/dist/esm-browser/validate.js.map +1 -0
- package/dist/martyrs/src/components/Feed/Feed.vue.cjs +2 -2
- package/dist/martyrs/src/components/Feed/Feed.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.js +2 -2
- package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
- package/dist/martyrs/src/components/Menu/{Menu.vue.cjs → Menu.vue2.cjs} +2 -2
- package/dist/martyrs/src/components/Menu/Menu.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Menu/{Menu.vue.js → Menu.vue2.js} +2 -2
- package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +1 -0
- package/dist/martyrs/src/components/Skeleton/Skeleton.vue.cjs +5 -5
- package/dist/martyrs/src/components/Skeleton/Skeleton.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Skeleton/Skeleton.vue.js +5 -5
- package/dist/martyrs/src/components/Skeleton/Skeleton.vue.js.map +1 -1
- package/dist/martyrs/src/components/Tab/{Tab.vue2.cjs → Tab.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Tab/{Tab.vue2.js.map → Tab.vue.cjs.map} +1 -1
- 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/Tree/Tree.vue.cjs +3 -1
- package/dist/martyrs/src/components/Tree/Tree.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Tree/Tree.vue.js +3 -1
- package/dist/martyrs/src/components/Tree/Tree.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/store/auth.cjs +1 -0
- package/dist/martyrs/src/modules/auth/views/store/auth.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/store/auth.js +1 -0
- package/dist/martyrs/src/modules/auth/views/store/auth.js.map +1 -1
- package/dist/martyrs/src/modules/constructor/components/sections/Constructor.vue.cjs +1 -1
- package/dist/martyrs/src/modules/constructor/components/sections/Constructor.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/classes/globals.store.cjs +107 -21
- package/dist/martyrs/src/modules/globals/views/classes/globals.store.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/classes/globals.store.js +107 -21
- package/dist/martyrs/src/modules/globals/views/classes/globals.store.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs +10 -14
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js +12 -16
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/utils/vue-app-renderer.cjs +7 -13
- package/dist/martyrs/src/modules/globals/views/utils/vue-app-renderer.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/utils/vue-app-renderer.js +7 -13
- package/dist/martyrs/src/modules/globals/views/utils/vue-app-renderer.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs +6 -7
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +7 -8
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.cjs +11 -5
- package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.js +12 -6
- package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs +34 -13
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +35 -14
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +20 -9
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +21 -10
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +2 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +2 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/GanttChart.vue.cjs +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/GanttChart.vue.js +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.cjs +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +1 -1
- package/dist/martyrs.cjs.js +1 -1
- package/dist/martyrs.css +1 -1
- package/dist/martyrs.es.js +1 -1
- package/dist/notifications.server.js +35 -2
- package/dist/notifications.server.mjs +35 -2
- package/dist/orders.server.js +3 -3
- package/dist/orders.server.mjs +3 -3
- package/dist/organizations.server.js +1 -1
- package/dist/organizations.server.mjs +1 -1
- package/dist/products.server.js +78 -53
- package/dist/products.server.mjs +78 -53
- package/dist/rents.server.js +1 -1
- package/dist/rents.server.mjs +1 -1
- package/dist/style.css +37 -38
- package/dist/wallet.server.js +1 -1
- package/dist/wallet.server.mjs +1 -1
- package/package.json +2 -1
- package/src/components/Feed/Feed.vue +2 -7
- package/src/components/Skeleton/Skeleton.vue +4 -5
- package/src/components/Tree/Tree.vue +5 -2
- package/src/modules/auth/controllers/middlewares/authJwt.js +1 -1
- package/src/modules/auth/views/store/auth.js +2 -1
- package/src/modules/globals/controllers/classes/globals.crud.js +2 -2
- package/src/modules/globals/views/classes/globals.store.js +119 -31
- package/src/modules/globals/views/components/partials/Navigation.vue +11 -10
- package/src/modules/globals/views/utils/vue-app-renderer.js +7 -16
- package/src/modules/icons/entities/IconMusic.vue +14 -0
- package/src/modules/icons/navigation/IconCheck.vue +31 -0
- package/src/modules/icons/navigation/IconHeart.vue +26 -0
- package/src/modules/icons/navigation/IconPause.vue +31 -0
- package/src/modules/icons/navigation/IconPlay.vue +17 -0
- package/src/modules/icons/navigation/IconRefresh.vue +31 -0
- package/src/modules/icons/navigation/IconShuffle.vue +31 -0
- package/src/modules/icons/navigation/IconVolume.vue +31 -0
- package/src/modules/music/components/SidebarMusic.vue +156 -0
- package/src/modules/music/components/cards/AlbumCard.vue +107 -0
- package/src/modules/music/components/cards/ArtistCard.vue +37 -0
- package/src/modules/music/components/cards/PlaylistCard.vue +100 -0
- package/src/modules/music/components/cards/TrackCard.vue +86 -0
- package/src/modules/music/components/forms/PlaylistForm.vue +156 -0
- package/src/modules/music/components/forms/SearchForm.vue +82 -0
- package/src/modules/music/components/forms/UploadForm.vue +313 -0
- package/src/modules/music/components/layouts/MusicLayout.vue +137 -0
- package/src/modules/music/components/lists/AlbumList.vue +25 -0
- package/src/modules/music/components/lists/ArtistList.vue +25 -0
- package/src/modules/music/components/lists/PlaylistList.vue +25 -0
- package/src/modules/music/components/lists/TrackList.vue +175 -0
- package/src/modules/music/components/pages/AlbumDetail.vue +265 -0
- package/src/modules/music/components/pages/ArtistDetail.vue +247 -0
- package/src/modules/music/components/pages/MusicHome.vue +177 -0
- package/src/modules/music/components/pages/MusicLibrary.vue +192 -0
- package/src/modules/music/components/pages/MusicUpload.vue +44 -0
- package/src/modules/music/components/pages/PlaylistDetail.vue +504 -0
- package/src/modules/music/components/pages/SearchResults.vue +397 -0
- package/src/modules/music/components/pages/TrackDetail.vue +143 -0
- package/src/modules/music/components/player/MusicPlayer.vue +202 -0
- package/src/modules/music/components/player/TrackProgress.vue +110 -0
- package/src/modules/music/components/player/VolumeControl.vue +98 -0
- package/src/modules/music/controllers/album.controller.js +98 -0
- package/src/modules/music/controllers/artist.controller.js +111 -0
- package/src/modules/music/controllers/genre.controller.js +71 -0
- package/src/modules/music/controllers/music.controller.js +174 -0
- package/src/modules/music/controllers/playlist.controller.js +182 -0
- package/src/modules/music/controllers/search.controller.js +103 -0
- package/src/modules/music/controllers/stream.controller.js +106 -0
- package/src/modules/music/models/album.model.js +61 -0
- package/src/modules/music/models/artist.model.js +67 -0
- package/src/modules/music/models/genre.model.js +42 -0
- package/src/modules/music/models/play-history.model.js +51 -0
- package/src/modules/music/models/playlist.model.js +69 -0
- package/src/modules/music/models/track.model.js +94 -0
- package/src/modules/music/music.client.js +186 -0
- package/src/modules/music/music.server.js +114 -0
- package/src/modules/music/policies/music.policies.js +84 -0
- package/src/modules/music/router/music.js +77 -0
- package/src/modules/music/routes/album.routes.js +62 -0
- package/src/modules/music/routes/artist.routes.js +67 -0
- package/src/modules/music/routes/genre.routes.js +60 -0
- package/src/modules/music/routes/music.routes.js +145 -0
- package/src/modules/music/routes/playlist.routes.js +99 -0
- package/src/modules/music/routes/search.routes.js +10 -0
- package/src/modules/music/routes/stream.routes.js +38 -0
- package/src/modules/music/store/albums.js +200 -0
- package/src/modules/music/store/artists.js +180 -0
- package/src/modules/music/store/player.js +397 -0
- package/src/modules/music/store/playlists.js +211 -0
- package/src/modules/music/store/search.js +126 -0
- package/src/modules/music/store/tracks.js +230 -0
- package/src/modules/music/websocket/streaming.handler.js +151 -0
- package/src/modules/notifications/controllers/notifications.controller.js +44 -1
- package/src/modules/notifications/notifications.server.js +0 -1
- package/src/modules/notifications/routes/notifications.routes.js +3 -0
- package/src/modules/orders/components/pages/OrderCreate.vue +0 -2
- package/src/modules/products/components/blocks/CardCategory.vue +5 -4
- package/src/modules/products/components/pages/Categories.vue +38 -20
- package/src/modules/products/components/pages/CategoryEdit.vue +16 -7
- package/src/modules/products/components/pages/ProductEdit.vue +1 -0
- package/src/modules/products/controllers/categories.controller.js +155 -103
- package/dist/martyrs/src/components/Menu/Menu.vue.cjs.map +0 -1
- package/dist/martyrs/src/components/Menu/Menu.vue.js.map +0 -1
- package/dist/martyrs/src/components/Tab/Tab.vue2.cjs.map +0 -1
- package/dist/node_modules/.pnpm/@vue_server-renderer@3.5.13_vue@3.5.13_typescript@5.8.3_/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.cjs.map +0 -1
- package/dist/node_modules/.pnpm/@vue_server-renderer@3.5.13_vue@3.5.13_typescript@5.8.3_/node_modules/@vue/server-renderer/dist/server-renderer.esm-bundler.js.map +0 -1
- package/dist/node_modules/.pnpm/@vue_shared@3.5.13/node_modules/@vue/shared/dist/shared.esm-bundler.cjs.map +0 -1
- package/dist/node_modules/.pnpm/@vue_shared@3.5.13/node_modules/@vue/shared/dist/shared.esm-bundler.js.map +0 -1
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/native.cjs +0 -6
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/native.cjs.map +0 -1
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/native.js +0 -6
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/native.js.map +0 -1
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/rng.cjs.map +0 -1
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/rng.js +0 -15
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/rng.js.map +0 -1
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/stringify.cjs +0 -11
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/stringify.cjs.map +0 -1
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/stringify.js +0 -11
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/stringify.js.map +0 -1
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/v4.cjs +0 -21
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/v4.cjs.map +0 -1
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/v4.js +0 -21
- package/dist/node_modules/.pnpm/uuid@11.1.0/node_modules/uuid/dist/esm-browser/v4.js.map +0 -1
- /package/dist/{node_modules/.pnpm/@vue_shared@3.5.13 → martyrs}/node_modules/@vue/shared/dist/shared.esm-bundler.cjs +0 -0
- /package/dist/{node_modules/.pnpm/@vue_shared@3.5.13 → martyrs}/node_modules/@vue/shared/dist/shared.esm-bundler.js +0 -0
- /package/dist/{node_modules → martyrs/node_modules}/fast-deep-equal/index.cjs +0 -0
- /package/dist/{node_modules → martyrs/node_modules}/fast-deep-equal/index.cjs.map +0 -0
- /package/dist/{node_modules → martyrs/node_modules}/fast-deep-equal/index.js +0 -0
- /package/dist/{node_modules → martyrs/node_modules}/fast-deep-equal/index.js.map +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script setup>
|
|
2
2
|
import { ref, watch, computed } from 'vue'
|
|
3
|
-
import { useRouter } from 'vue-router'
|
|
3
|
+
import { useRouter, useRoute } from 'vue-router'
|
|
4
4
|
|
|
5
5
|
import IconChevronBottom from '@martyrs/src/modules/icons/navigation/IconChevronBottom.vue'
|
|
6
6
|
|
|
@@ -8,6 +8,7 @@ import * as globals from '@martyrs/src/modules/globals/views/store/globals'
|
|
|
8
8
|
import * as auth from '@martyrs/src/modules/auth/views/store/auth'
|
|
9
9
|
|
|
10
10
|
const router = useRouter()
|
|
11
|
+
const route = useRoute()
|
|
11
12
|
|
|
12
13
|
import Dropdown from '@martyrs/src/components/Dropdown/Dropdown.vue'
|
|
13
14
|
import Spoiler from '@martyrs/src/components/Spoiler/Spoiler.vue'
|
|
@@ -60,11 +61,11 @@ const isSectionExpanded = (title) => {
|
|
|
60
61
|
return expandedSections.value.includes(title)
|
|
61
62
|
}
|
|
62
63
|
|
|
63
|
-
watch(() => props.stateSidebar, (newValue) => {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
})
|
|
64
|
+
// watch(() => props.stateSidebar, (newValue) => {
|
|
65
|
+
// if (!newValue) {
|
|
66
|
+
// expandedSections.value = []
|
|
67
|
+
// }
|
|
68
|
+
// })
|
|
68
69
|
|
|
69
70
|
// Process route functions with globals and auth data
|
|
70
71
|
const processRoute = (route) => {
|
|
@@ -119,10 +120,10 @@ const processRoute = (route) => {
|
|
|
119
120
|
>
|
|
120
121
|
<button
|
|
121
122
|
class="transition-quint-out w-100 flex radius-small flex-nowrap cursor-pointer flex-v-center"
|
|
122
|
-
@click="item.route ? (isPhone ? (stateSidebar = false) : null,
|
|
123
|
+
@click="item.route ? (isPhone ? (stateSidebar = false) : null, route.path !== processRoute(item.route) ? router.push(processRoute(item.route)) : null) : null"
|
|
123
124
|
:class="[
|
|
124
125
|
horizontal ? 'pd-thin' : '',
|
|
125
|
-
item.route &&
|
|
126
|
+
item.route && route.path === processRoute(item.route) ? theme === 'light' ? 'bg-light' : 'bg-dark' : '',
|
|
126
127
|
theme === 'light' ? 'hover-bg-light' : 'hover-bg-dark'
|
|
127
128
|
]"
|
|
128
129
|
>
|
|
@@ -172,11 +173,11 @@ const processRoute = (route) => {
|
|
|
172
173
|
<li v-for="subItem in item.subItems" :key="subItem.title">
|
|
173
174
|
|
|
174
175
|
<a
|
|
175
|
-
@click="subItem.route ? (isPhone ? (stateSidebar = false) : null,
|
|
176
|
+
@click="subItem.route ? (isPhone ? (stateSidebar = false) : null, route.path !== processRoute(subItem.route) ? router.push(processRoute(subItem.route)) : null) : null"
|
|
176
177
|
href="#"
|
|
177
178
|
class="transition-quint-out flex flex-v-center flex-nowrap gap-thin pd-thin radius-small"
|
|
178
179
|
:class="[
|
|
179
|
-
subItem.route &&
|
|
180
|
+
subItem.route && route.path === processRoute(subItem.route) ? theme === 'light' ? 'bg-light' : 'bg-dark' : '',
|
|
180
181
|
theme === 'light' ? 'hover-bg-light' : 'hover-bg-dark'
|
|
181
182
|
]"
|
|
182
183
|
>
|
|
@@ -25,11 +25,15 @@ export function renderAndMountApp({ createApp }) {
|
|
|
25
25
|
store.setInitialState(initialState);
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
console.log('auth', initialState.auth)
|
|
29
|
+
if (initialState?.auth?.access?.token) {
|
|
30
|
+
setAuthToken(initialState.auth.access.token);
|
|
30
31
|
} else {
|
|
32
|
+
store.auth.actions.resetState();
|
|
33
|
+
// await store.auth.removeCookie('user');
|
|
31
34
|
await store.auth.actions.logout()
|
|
32
35
|
}
|
|
36
|
+
|
|
33
37
|
// app.config.globalProperties.$i18n.locale = router.currentRoute.value.params.locale
|
|
34
38
|
// app.config.globalProperties.$i18n.locale = router.currentRoute.value.params.locale
|
|
35
39
|
// If user browser locae supported then change locale
|
|
@@ -69,24 +73,11 @@ export async function render({ url, cookies, createApp }) {
|
|
|
69
73
|
if (cookies.user) {
|
|
70
74
|
user = JSON.parse(cookies.user)
|
|
71
75
|
}
|
|
72
|
-
|
|
73
|
-
let auth = null
|
|
74
76
|
|
|
75
77
|
if (user) {
|
|
76
78
|
await store.auth.actions.initialize(user)
|
|
77
79
|
} else {
|
|
78
|
-
|
|
79
|
-
store.auth.state.user = {
|
|
80
|
-
_id: undefined,
|
|
81
|
-
username: '',
|
|
82
|
-
email: '',
|
|
83
|
-
phone: '',
|
|
84
|
-
password: '1',
|
|
85
|
-
passwordRepeat: ''
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
store.auth.state.access = { roles: null, token: null, status: false }
|
|
89
|
-
store.auth.state.accesses = []
|
|
80
|
+
store.auth.actions.resetState();
|
|
90
81
|
}
|
|
91
82
|
|
|
92
83
|
const html = await renderToString(app, sharedContext);
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="80" height="80" viewBox="0 0 80 80" fill="none">
|
|
3
|
+
<path :fill="fill" :class="$attrs.class" d="M40.4192 33.6535H40.4231C44.2049 33.6535 47.2716 36.7242 47.2716 40.506C47.2716 44.2917 44.2049 47.3584 40.4192 47.3584C36.6374 47.3584 33.5667 44.2917 33.5667 40.506C33.5667 36.7362 36.6136 33.6774 40.3794 33.6575L40.3913 33.6535H40.3953L40.4192 33.6535ZM56.0983 44.5582H56.1063C57.0835 44.5582 58.0607 44.9316 58.8035 45.6784L68.8299 55.7049C69.4417 56.3166 69.4417 57.3057 68.8339 57.9215H68.8299C68.5241 58.2274 68.1228 58.3783 67.7217 58.3783C67.3244 58.3783 66.9312 58.2313 66.6253 57.9334H66.6174L66.6134 57.9215L56.5909 47.899V47.895C56.4559 47.76 56.2771 47.6925 56.0984 47.6925C55.9315 47.6925 55.7647 47.752 55.6336 47.8752L41.3171 62.1876C41.0112 62.4935 40.61 62.6484 40.2088 62.6484C39.8077 62.6484 39.4104 62.4935 39.1045 62.1916V62.1955L39.1006 62.1876C38.4888 61.5759 38.4888 60.5828 39.1006 59.971L40.9954 58.0761V57.9768L38.8582 55.8396C38.7232 55.7045 38.5484 55.633 38.3696 55.633C38.2028 55.633 38.0359 55.6926 37.9048 55.8158L37.9485 55.8277L37.9009 55.8158L29.3602 64.3564C29.0543 64.6623 28.6491 64.8173 28.2479 64.8173C27.8586 64.8173 27.4613 64.6663 27.1594 64.3763H27.1555L27.1396 64.3565C26.5278 63.7447 26.5278 62.7516 27.1396 62.1398L35.6644 53.619L35.6684 53.611H35.6723C36.3993 52.8881 37.3447 52.5186 38.2981 52.5028H38.314C38.3299 52.4988 38.3537 52.4988 38.3696 52.4988C39.3468 52.4988 40.328 52.8722 41.0748 53.6191L43.212 55.7563L43.3114 55.7602L53.3974 45.6742C54.1283 44.9473 55.0777 44.5739 56.0351 44.5619H56.051H56.047C56.0669 44.5579 56.0825 44.5582 56.0983 44.5582ZM52.6543 8.00019V8.00416H52.6384C52.2967 8.00416 51.9512 8.04786 51.6016 8.13922L7.01895 20.0842C7.00703 20.0882 6.99511 20.0921 6.98319 20.0961L6.97922 20.1001C4.83012 20.696 3.56291 22.9165 4.13891 25.0735L14.0818 62.1837C14.5704 64.0031 16.219 65.2028 18.0146 65.2028C18.1417 65.2028 18.2688 65.1988 18.3959 65.1869L18.4038 29.5066C18.4038 25.975 21.2203 23.099 24.732 23.0037L24.7399 23.0077C24.7955 23.0037 24.8511 22.9998 24.9067 22.9998V23.0037H59.8L56.5903 11.0191C56.1017 9.19968 54.4537 8.00019 52.6543 8.00019ZM24.9071 25.4356H24.8912H24.8713H24.8673C22.6348 25.4595 20.8354 27.2749 20.8354 29.5074V67.9243C20.8354 70.1727 22.6587 71.996 24.9071 72H71.067C73.3154 71.996 75.1348 70.1727 75.1388 67.9243V29.5074C75.1348 27.259 73.3154 25.4356 71.067 25.4356H24.9071Z"/>
|
|
4
|
+
</svg>
|
|
5
|
+
</template>
|
|
6
|
+
|
|
7
|
+
<script setup>
|
|
8
|
+
const props = defineProps({
|
|
9
|
+
fill: {
|
|
10
|
+
type: String,
|
|
11
|
+
default: 'rgb(var(--black))'
|
|
12
|
+
}
|
|
13
|
+
})
|
|
14
|
+
</script>
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<svg
|
|
3
|
+
width="19"
|
|
4
|
+
height="15"
|
|
5
|
+
viewBox="0 0 19 15"
|
|
6
|
+
fill="none"
|
|
7
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
8
|
+
>
|
|
9
|
+
<path
|
|
10
|
+
:fill="fill"
|
|
11
|
+
d="M9.97505 0.3828C10.3344 0.5453 10.5657 0.90155 10.5657 1.2953V13.2953C10.5657 13.6891 10.3344 14.0453 9.97505 14.2078C9.61567 14.3703 9.1938 14.3047 8.90005 14.0422L4.68442 10.2953H2.56567C1.46255 10.2953 0.565674 9.39843 0.565674 8.2953V6.2953C0.565674 5.19218 1.46255 4.2953 2.56567 4.2953H4.68442L8.90005 0.548425C9.1938 0.285925 9.61567 0.223425 9.97505 0.3828Z"
|
|
12
|
+
/>
|
|
13
|
+
<path
|
|
14
|
+
:fill="fill"
|
|
15
|
+
d="M15.5657 6.23301L13.8469 4.51426C13.5563 4.22051 13.0813 4.22363 12.7876 4.51426C12.4938 4.80488 12.4938 5.27988 12.7876 5.57363L14.5063 7.29238L12.7876 9.01113C12.4938 9.30176 12.4969 9.77676 12.7876 10.0705C13.0782 10.3643 13.5532 10.3643 13.8469 10.0705L15.5657 8.35176L17.2844 10.0705C17.5751 10.3643 18.0501 10.3611 18.3438 10.0705C18.6376 9.77988 18.6376 9.30488 18.3438 9.01113L16.6251 7.29238L18.3438 5.57363C18.6376 5.28301 18.6344 4.80801 18.3438 4.51426C18.0532 4.22051 17.5782 4.22051 17.2844 4.51426L15.5657 6.23301Z"
|
|
16
|
+
/>
|
|
17
|
+
</svg>
|
|
18
|
+
</template>
|
|
19
|
+
|
|
20
|
+
<script setup>
|
|
21
|
+
const props = defineProps({
|
|
22
|
+
fill: {
|
|
23
|
+
type: String,
|
|
24
|
+
default: {
|
|
25
|
+
position: 'rgb(var(--black))'
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
})
|
|
29
|
+
</script>
|
|
30
|
+
|
|
31
|
+
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<svg
|
|
3
|
+
width="26"
|
|
4
|
+
height="26"
|
|
5
|
+
viewBox="0 0 26 26"
|
|
6
|
+
fill="none"
|
|
7
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
8
|
+
>
|
|
9
|
+
<path
|
|
10
|
+
:fill="fill"
|
|
11
|
+
fill-rule="evenodd"
|
|
12
|
+
clip-rule="evenodd"
|
|
13
|
+
d="M12.9996 10.8L22.8994 0.900244L25.0993 3.1002L15.1995 13L25.0993 22.8998L22.8994 25.0998L12.9996 15.2L3.09976 25.0998L0.899801 22.8998L10.7996 13L0.899801 3.1002L3.09976 0.900244L12.9996 10.8Z"/>
|
|
14
|
+
</svg>
|
|
15
|
+
</template>
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
<script setup>
|
|
19
|
+
const props = defineProps({
|
|
20
|
+
fill: {
|
|
21
|
+
type: String,
|
|
22
|
+
default: 'rgb(var(--black))'
|
|
23
|
+
}
|
|
24
|
+
})
|
|
25
|
+
</script>
|
|
26
|
+
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<svg
|
|
3
|
+
width="19"
|
|
4
|
+
height="15"
|
|
5
|
+
viewBox="0 0 19 15"
|
|
6
|
+
fill="none"
|
|
7
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
8
|
+
>
|
|
9
|
+
<path
|
|
10
|
+
:fill="fill"
|
|
11
|
+
d="M9.97505 0.3828C10.3344 0.5453 10.5657 0.90155 10.5657 1.2953V13.2953C10.5657 13.6891 10.3344 14.0453 9.97505 14.2078C9.61567 14.3703 9.1938 14.3047 8.90005 14.0422L4.68442 10.2953H2.56567C1.46255 10.2953 0.565674 9.39843 0.565674 8.2953V6.2953C0.565674 5.19218 1.46255 4.2953 2.56567 4.2953H4.68442L8.90005 0.548425C9.1938 0.285925 9.61567 0.223425 9.97505 0.3828Z"
|
|
12
|
+
/>
|
|
13
|
+
<path
|
|
14
|
+
:fill="fill"
|
|
15
|
+
d="M15.5657 6.23301L13.8469 4.51426C13.5563 4.22051 13.0813 4.22363 12.7876 4.51426C12.4938 4.80488 12.4938 5.27988 12.7876 5.57363L14.5063 7.29238L12.7876 9.01113C12.4938 9.30176 12.4969 9.77676 12.7876 10.0705C13.0782 10.3643 13.5532 10.3643 13.8469 10.0705L15.5657 8.35176L17.2844 10.0705C17.5751 10.3643 18.0501 10.3611 18.3438 10.0705C18.6376 9.77988 18.6376 9.30488 18.3438 9.01113L16.6251 7.29238L18.3438 5.57363C18.6376 5.28301 18.6344 4.80801 18.3438 4.51426C18.0532 4.22051 17.5782 4.22051 17.2844 4.51426L15.5657 6.23301Z"
|
|
16
|
+
/>
|
|
17
|
+
</svg>
|
|
18
|
+
</template>
|
|
19
|
+
|
|
20
|
+
<script setup>
|
|
21
|
+
const props = defineProps({
|
|
22
|
+
fill: {
|
|
23
|
+
type: String,
|
|
24
|
+
default: {
|
|
25
|
+
position: 'rgb(var(--black))'
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
})
|
|
29
|
+
</script>
|
|
30
|
+
|
|
31
|
+
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="80" height="80" viewBox="0 0 80 80" fill="none">
|
|
3
|
+
<path :fill="fill" d="M25.2765 9.37509L29.0265 5.93759C30.589 4.53134 32.9327 4.68759 34.339 6.25009L63.2453 37.8126C64.339 39.0626 64.339 40.9376 63.2453 42.1876L34.339 73.7501C32.9327 75.3126 30.589 75.4689 29.0265 74.0626L25.2765 70.6251C23.714 69.3751 23.5577 66.8751 24.964 65.4689L48.4015 40.0001L24.964 14.5313C23.5577 13.1251 23.714 10.6251 25.2765 9.37509Z"/>
|
|
4
|
+
</svg>
|
|
5
|
+
</template>
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
<script>
|
|
9
|
+
export default {
|
|
10
|
+
props: {
|
|
11
|
+
fill: {
|
|
12
|
+
type: String,
|
|
13
|
+
default: 'rgb(var(--black)'
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
</script>
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<svg
|
|
3
|
+
width="19"
|
|
4
|
+
height="15"
|
|
5
|
+
viewBox="0 0 19 15"
|
|
6
|
+
fill="none"
|
|
7
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
8
|
+
>
|
|
9
|
+
<path
|
|
10
|
+
:fill="fill"
|
|
11
|
+
d="M9.97505 0.3828C10.3344 0.5453 10.5657 0.90155 10.5657 1.2953V13.2953C10.5657 13.6891 10.3344 14.0453 9.97505 14.2078C9.61567 14.3703 9.1938 14.3047 8.90005 14.0422L4.68442 10.2953H2.56567C1.46255 10.2953 0.565674 9.39843 0.565674 8.2953V6.2953C0.565674 5.19218 1.46255 4.2953 2.56567 4.2953H4.68442L8.90005 0.548425C9.1938 0.285925 9.61567 0.223425 9.97505 0.3828Z"
|
|
12
|
+
/>
|
|
13
|
+
<path
|
|
14
|
+
:fill="fill"
|
|
15
|
+
d="M15.5657 6.23301L13.8469 4.51426C13.5563 4.22051 13.0813 4.22363 12.7876 4.51426C12.4938 4.80488 12.4938 5.27988 12.7876 5.57363L14.5063 7.29238L12.7876 9.01113C12.4938 9.30176 12.4969 9.77676 12.7876 10.0705C13.0782 10.3643 13.5532 10.3643 13.8469 10.0705L15.5657 8.35176L17.2844 10.0705C17.5751 10.3643 18.0501 10.3611 18.3438 10.0705C18.6376 9.77988 18.6376 9.30488 18.3438 9.01113L16.6251 7.29238L18.3438 5.57363C18.6376 5.28301 18.6344 4.80801 18.3438 4.51426C18.0532 4.22051 17.5782 4.22051 17.2844 4.51426L15.5657 6.23301Z"
|
|
16
|
+
/>
|
|
17
|
+
</svg>
|
|
18
|
+
</template>
|
|
19
|
+
|
|
20
|
+
<script setup>
|
|
21
|
+
const props = defineProps({
|
|
22
|
+
fill: {
|
|
23
|
+
type: String,
|
|
24
|
+
default: {
|
|
25
|
+
position: 'rgb(var(--black))'
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
})
|
|
29
|
+
</script>
|
|
30
|
+
|
|
31
|
+
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<svg
|
|
3
|
+
width="19"
|
|
4
|
+
height="15"
|
|
5
|
+
viewBox="0 0 19 15"
|
|
6
|
+
fill="none"
|
|
7
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
8
|
+
>
|
|
9
|
+
<path
|
|
10
|
+
:fill="fill"
|
|
11
|
+
d="M9.97505 0.3828C10.3344 0.5453 10.5657 0.90155 10.5657 1.2953V13.2953C10.5657 13.6891 10.3344 14.0453 9.97505 14.2078C9.61567 14.3703 9.1938 14.3047 8.90005 14.0422L4.68442 10.2953H2.56567C1.46255 10.2953 0.565674 9.39843 0.565674 8.2953V6.2953C0.565674 5.19218 1.46255 4.2953 2.56567 4.2953H4.68442L8.90005 0.548425C9.1938 0.285925 9.61567 0.223425 9.97505 0.3828Z"
|
|
12
|
+
/>
|
|
13
|
+
<path
|
|
14
|
+
:fill="fill"
|
|
15
|
+
d="M15.5657 6.23301L13.8469 4.51426C13.5563 4.22051 13.0813 4.22363 12.7876 4.51426C12.4938 4.80488 12.4938 5.27988 12.7876 5.57363L14.5063 7.29238L12.7876 9.01113C12.4938 9.30176 12.4969 9.77676 12.7876 10.0705C13.0782 10.3643 13.5532 10.3643 13.8469 10.0705L15.5657 8.35176L17.2844 10.0705C17.5751 10.3643 18.0501 10.3611 18.3438 10.0705C18.6376 9.77988 18.6376 9.30488 18.3438 9.01113L16.6251 7.29238L18.3438 5.57363C18.6376 5.28301 18.6344 4.80801 18.3438 4.51426C18.0532 4.22051 17.5782 4.22051 17.2844 4.51426L15.5657 6.23301Z"
|
|
16
|
+
/>
|
|
17
|
+
</svg>
|
|
18
|
+
</template>
|
|
19
|
+
|
|
20
|
+
<script setup>
|
|
21
|
+
const props = defineProps({
|
|
22
|
+
fill: {
|
|
23
|
+
type: String,
|
|
24
|
+
default: {
|
|
25
|
+
position: 'rgb(var(--black))'
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
})
|
|
29
|
+
</script>
|
|
30
|
+
|
|
31
|
+
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<svg
|
|
3
|
+
width="19"
|
|
4
|
+
height="15"
|
|
5
|
+
viewBox="0 0 19 15"
|
|
6
|
+
fill="none"
|
|
7
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
8
|
+
>
|
|
9
|
+
<path
|
|
10
|
+
:fill="fill"
|
|
11
|
+
d="M9.97505 0.3828C10.3344 0.5453 10.5657 0.90155 10.5657 1.2953V13.2953C10.5657 13.6891 10.3344 14.0453 9.97505 14.2078C9.61567 14.3703 9.1938 14.3047 8.90005 14.0422L4.68442 10.2953H2.56567C1.46255 10.2953 0.565674 9.39843 0.565674 8.2953V6.2953C0.565674 5.19218 1.46255 4.2953 2.56567 4.2953H4.68442L8.90005 0.548425C9.1938 0.285925 9.61567 0.223425 9.97505 0.3828Z"
|
|
12
|
+
/>
|
|
13
|
+
<path
|
|
14
|
+
:fill="fill"
|
|
15
|
+
d="M15.5657 6.23301L13.8469 4.51426C13.5563 4.22051 13.0813 4.22363 12.7876 4.51426C12.4938 4.80488 12.4938 5.27988 12.7876 5.57363L14.5063 7.29238L12.7876 9.01113C12.4938 9.30176 12.4969 9.77676 12.7876 10.0705C13.0782 10.3643 13.5532 10.3643 13.8469 10.0705L15.5657 8.35176L17.2844 10.0705C17.5751 10.3643 18.0501 10.3611 18.3438 10.0705C18.6376 9.77988 18.6376 9.30488 18.3438 9.01113L16.6251 7.29238L18.3438 5.57363C18.6376 5.28301 18.6344 4.80801 18.3438 4.51426C18.0532 4.22051 17.5782 4.22051 17.2844 4.51426L15.5657 6.23301Z"
|
|
16
|
+
/>
|
|
17
|
+
</svg>
|
|
18
|
+
</template>
|
|
19
|
+
|
|
20
|
+
<script setup>
|
|
21
|
+
const props = defineProps({
|
|
22
|
+
fill: {
|
|
23
|
+
type: String,
|
|
24
|
+
default: {
|
|
25
|
+
position: 'rgb(var(--black))'
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
})
|
|
29
|
+
</script>
|
|
30
|
+
|
|
31
|
+
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
<!-- components/navigation/MusicSidebar.vue -->
|
|
2
|
+
<template>
|
|
3
|
+
<Sidebar
|
|
4
|
+
:stateSidebar="stateSidebar"
|
|
5
|
+
:theme="'dark'"
|
|
6
|
+
:width="'w-15r'"
|
|
7
|
+
:widthHidden="'w-3r'"
|
|
8
|
+
@closeSidebar="$emit('closeSidebar')"
|
|
9
|
+
class="flex-child-shrink-0"
|
|
10
|
+
>
|
|
11
|
+
<div class="pd-thin">
|
|
12
|
+
<div class="music-logo mn-b-medium">
|
|
13
|
+
<h3 class="t-white mn-b-small">Music</h3>
|
|
14
|
+
</div>
|
|
15
|
+
|
|
16
|
+
<nav class="music-nav mn-b-medium">
|
|
17
|
+
<ul class="flex flex-column gap-small">
|
|
18
|
+
<li>
|
|
19
|
+
<router-link :to="{ name: 'music-home' }"
|
|
20
|
+
class="flex-v-center flex gap-small pd-thin radius-small"
|
|
21
|
+
:class="$route.name === 'music-home' ? 'bg-dark' : 'hover-bg-dark'"
|
|
22
|
+
>
|
|
23
|
+
<IconHome class="i-medium" :fill="$route.name === 'music-home' ? 'rgb(var(--main))' : 'rgb(var(--white))'"/>
|
|
24
|
+
<span class="t-medium" :class="$route.name === 'music-home' ? 't-main' : 't-white'">Home</span>
|
|
25
|
+
</router-link>
|
|
26
|
+
</li>
|
|
27
|
+
<li>
|
|
28
|
+
<router-link :to="{ name: 'music-search' }"
|
|
29
|
+
class="flex-v-center flex gap-small pd-thin radius-small"
|
|
30
|
+
:class="$route.name === 'music-search' ? 'bg-dark' : 'hover-bg-dark'"
|
|
31
|
+
>
|
|
32
|
+
<IconSearch class="i-medium" :fill="$route.name === 'music-search' ? 'rgb(var(--main))' : 'rgb(var(--white))'"/>
|
|
33
|
+
<span class="t-medium" :class="$route.name === 'music-search' ? 't-main' : 't-white'">Search</span>
|
|
34
|
+
</router-link>
|
|
35
|
+
</li>
|
|
36
|
+
<li>
|
|
37
|
+
<router-link :to="{ name: 'music-library' }"
|
|
38
|
+
class="flex-v-center flex gap-small pd-thin radius-small"
|
|
39
|
+
:class="$route.name === 'music-library' ? 'bg-dark' : 'hover-bg-dark'"
|
|
40
|
+
>
|
|
41
|
+
<IconLibrary class="i-medium" :fill="$route.name === 'music-library' ? 'rgb(var(--main))' : 'rgb(var(--white))'"/>
|
|
42
|
+
<span class="t-medium" :class="$route.name === 'music-library' ? 't-main' : 't-white'">Your Library</span>
|
|
43
|
+
</router-link>
|
|
44
|
+
</li>
|
|
45
|
+
</ul>
|
|
46
|
+
</nav>
|
|
47
|
+
|
|
48
|
+
<div class="music-playlists" v-if="isAuthenticated">
|
|
49
|
+
<div class="flex-between flex mn-b-small">
|
|
50
|
+
<h4 class="t-grey t-medium">YOUR PLAYLISTS</h4>
|
|
51
|
+
<Button
|
|
52
|
+
@click="showCreatePlaylistModal = true"
|
|
53
|
+
class="bg-transparent cursor-pointer pd-micro radius-small hover-bg-dark"
|
|
54
|
+
:showLoader="false"
|
|
55
|
+
:showSucces="false"
|
|
56
|
+
>
|
|
57
|
+
<IconPlus class="i-small" fill="rgb(var(--white))"/>
|
|
58
|
+
</Button>
|
|
59
|
+
</div>
|
|
60
|
+
|
|
61
|
+
<Feed
|
|
62
|
+
v-if="userPlaylists.length"
|
|
63
|
+
class="mn-t-thin"
|
|
64
|
+
:skeleton="{
|
|
65
|
+
hide: true
|
|
66
|
+
}"
|
|
67
|
+
:states="{
|
|
68
|
+
empty: {
|
|
69
|
+
title: 'No playlists yet',
|
|
70
|
+
description: 'Create your first playlist to see it here'
|
|
71
|
+
}
|
|
72
|
+
}"
|
|
73
|
+
:items="userPlaylists"
|
|
74
|
+
>
|
|
75
|
+
<template #default="{ items }">
|
|
76
|
+
<li v-for="playlist in items" :key="playlist._id" class="mn-b-thin">
|
|
77
|
+
<router-link
|
|
78
|
+
:to="{ name: 'playlist-detail', params: { url: playlist.url } }"
|
|
79
|
+
class="t-white t-truncate d-block pd-thin radius-small hover-bg-dark"
|
|
80
|
+
:class="$route.params.url === playlist.url ? 'bg-dark t-main' : ''"
|
|
81
|
+
>
|
|
82
|
+
{{ playlist.title }}
|
|
83
|
+
</router-link>
|
|
84
|
+
</li>
|
|
85
|
+
</template>
|
|
86
|
+
</Feed>
|
|
87
|
+
</div>
|
|
88
|
+
</div>
|
|
89
|
+
|
|
90
|
+
<!-- Create Playlist Modal -->
|
|
91
|
+
<Popup
|
|
92
|
+
v-if="showCreatePlaylistModal"
|
|
93
|
+
@close-popup="showCreatePlaylistModal = false"
|
|
94
|
+
class="bg-dark pd-small w-m-25r radius-medium t-white"
|
|
95
|
+
>
|
|
96
|
+
<h3 class="mn-b-medium">Create Playlist</h3>
|
|
97
|
+
<PlaylistForm @created="onPlaylistCreated" />
|
|
98
|
+
</Popup>
|
|
99
|
+
</Sidebar>
|
|
100
|
+
</template>
|
|
101
|
+
|
|
102
|
+
<script setup>
|
|
103
|
+
import { ref, computed, onMounted } from 'vue';
|
|
104
|
+
import { useRouter } from 'vue-router';
|
|
105
|
+
|
|
106
|
+
// Import components from Martyrs framework
|
|
107
|
+
import Sidebar from '@martyrs/src/modules/globals/views/components/partials/Sidebar.vue';
|
|
108
|
+
import Button from '@martyrs/src/components/Button/Button.vue';
|
|
109
|
+
import Popup from '@martyrs/src/components/Popup/Popup.vue';
|
|
110
|
+
import Feed from '@martyrs/src/components/Feed/Feed.vue';
|
|
111
|
+
import PlaylistForm from '../forms/PlaylistForm.vue';
|
|
112
|
+
|
|
113
|
+
// Icons
|
|
114
|
+
import IconHome from '@martyrs/src/modules/icons/navigation/IconHome.vue';
|
|
115
|
+
import IconSearch from '@martyrs/src/modules/icons/navigation/IconSearch.vue';
|
|
116
|
+
import IconLibrary from '@martyrs/src/modules/icons/entities/IconFolder.vue';
|
|
117
|
+
import IconPlus from '@martyrs/src/modules/icons/navigation/IconPlus.vue';
|
|
118
|
+
|
|
119
|
+
// Store
|
|
120
|
+
import { state as authState } from '@martyrs/src/modules/auth/views/store/auth.js';
|
|
121
|
+
import { state as playlistsState, actions as playlistsActions } from '../../store/playlists.js';
|
|
122
|
+
|
|
123
|
+
const props = defineProps({
|
|
124
|
+
stateSidebar: {
|
|
125
|
+
type: Boolean,
|
|
126
|
+
default: true
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
const emit = defineEmits(['closeSidebar']);
|
|
131
|
+
|
|
132
|
+
const router = useRouter();
|
|
133
|
+
const showCreatePlaylistModal = ref(false);
|
|
134
|
+
|
|
135
|
+
// Auth computed property
|
|
136
|
+
const isAuthenticated = computed(() => {
|
|
137
|
+
return authState.access.status === true;
|
|
138
|
+
});
|
|
139
|
+
|
|
140
|
+
// User playlists
|
|
141
|
+
const userPlaylists = computed(() => {
|
|
142
|
+
return playlistsState.userPlaylists;
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
const onPlaylistCreated = (playlist) => {
|
|
146
|
+
showCreatePlaylistModal.value = false;
|
|
147
|
+
router.push({ name: 'playlist-detail', params: { url: playlist.url } });
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
// Fetch user playlists on component mount
|
|
151
|
+
onMounted(async () => {
|
|
152
|
+
if (isAuthenticated.value && authState.user) {
|
|
153
|
+
await playlistsActions.fetchUserPlaylists();
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
</script>
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
<!-- components/cards/AlbumCard.vue -->
|
|
2
|
+
<template>
|
|
3
|
+
<router-link
|
|
4
|
+
:to="{ name: 'album-detail', params: { url: album.url } }"
|
|
5
|
+
class="album-card d-block radius-small o-hidden"
|
|
6
|
+
>
|
|
7
|
+
<div class="album-cover pos-relative">
|
|
8
|
+
<Media
|
|
9
|
+
:url="album.coverUrl || '/assets/placeholder-album.jpg'"
|
|
10
|
+
class="w-100 aspect-1x1 object-fit-cover"
|
|
11
|
+
/>
|
|
12
|
+
<div class="album-overlay pos-absolute pos-t-0 pos-l-0 w-100 h-100 flex-center flex transition-cubic-in-out">
|
|
13
|
+
<Button
|
|
14
|
+
@click.stop="playAlbum(album)"
|
|
15
|
+
class="play-button bg-main radius-round flex-center flex aspect-1x1"
|
|
16
|
+
:showLoader="false"
|
|
17
|
+
:showSucces="false"
|
|
18
|
+
>
|
|
19
|
+
<IconPlay class="i-small" fill="rgb(var(--black))" />
|
|
20
|
+
</Button>
|
|
21
|
+
</div>
|
|
22
|
+
</div>
|
|
23
|
+
<div class="album-info pd-small bg-dark-transp-20">
|
|
24
|
+
<h3 class="t-white t-medium t-truncate">{{ album.title }}</h3>
|
|
25
|
+
<p class="t-grey t-small t-truncate">{{ albumInfo }}</p>
|
|
26
|
+
</div>
|
|
27
|
+
</router-link>
|
|
28
|
+
</template>
|
|
29
|
+
|
|
30
|
+
<script setup>
|
|
31
|
+
import { computed } from 'vue';
|
|
32
|
+
import Media from '@martyrs/src/components/Media/Media.vue';
|
|
33
|
+
import Button from '@martyrs/src/components/Button/Button.vue';
|
|
34
|
+
import IconPlay from '@martyrs/src/modules/icons/navigation/IconPlay.vue';
|
|
35
|
+
|
|
36
|
+
// Import player store & albums store
|
|
37
|
+
import { actions as playerActions } from '../../store/player.js';
|
|
38
|
+
import { state as albumsState, actions as albumsActions } from '../../store/albums.js';
|
|
39
|
+
|
|
40
|
+
const props = defineProps({
|
|
41
|
+
album: {
|
|
42
|
+
type: Object,
|
|
43
|
+
required: true
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
// Computed properties
|
|
48
|
+
const albumInfo = computed(() => {
|
|
49
|
+
const releaseYear = props.album.releaseDate ? new Date(props.album.releaseDate).getFullYear() : '';
|
|
50
|
+
let artistName = 'Unknown Artist';
|
|
51
|
+
|
|
52
|
+
if (props.album.artist?.name) {
|
|
53
|
+
artistName = props.album.artist.name;
|
|
54
|
+
} else if (typeof props.album.artist === 'string') {
|
|
55
|
+
artistName = props.album.artist;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return releaseYear ? `${artistName} • ${releaseYear}` : artistName;
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
// Methods
|
|
62
|
+
const playAlbum = async (album) => {
|
|
63
|
+
// If album tracks are already loaded in state, use those
|
|
64
|
+
if (albumsState.currentAlbum && albumsState.currentAlbum._id === album._id && albumsState.currentAlbumTracks.length > 0) {
|
|
65
|
+
playerActions.setQueue(albumsState.currentAlbumTracks);
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// Otherwise fetch tracks for this album
|
|
70
|
+
const tracks = await albumsActions.fetchAlbumTracks(album._id);
|
|
71
|
+
|
|
72
|
+
if (tracks && tracks.length > 0) {
|
|
73
|
+
playerActions.setQueue(tracks);
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
</script>
|
|
77
|
+
|
|
78
|
+
<style scoped>
|
|
79
|
+
.album-card {
|
|
80
|
+
transition: transform 0.3s ease;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.album-card:hover {
|
|
84
|
+
transform: translateY(-5px);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.album-overlay {
|
|
88
|
+
background: rgba(0, 0, 0, 0.5);
|
|
89
|
+
opacity: 0;
|
|
90
|
+
transition: opacity 0.3s ease;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.album-card:hover .album-overlay {
|
|
94
|
+
opacity: 1;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.play-button {
|
|
98
|
+
width: 48px;
|
|
99
|
+
height: 48px;
|
|
100
|
+
transform: scale(0.8);
|
|
101
|
+
transition: transform 0.3s ease;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.album-card:hover .play-button {
|
|
105
|
+
transform: scale(1);
|
|
106
|
+
}
|
|
107
|
+
</style>
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
<!-- components/cards/ArtistCard.vue -->
|
|
2
|
+
<template>
|
|
3
|
+
<router-link
|
|
4
|
+
:to="{ name: 'artist-detail', params: { url: artist.url } }"
|
|
5
|
+
class="artist-card d-block text-center"
|
|
6
|
+
>
|
|
7
|
+
<div class="artist-photo mn-b-small">
|
|
8
|
+
<Media
|
|
9
|
+
:url="artist.photoUrl || '/assets/placeholder-artist.jpg'"
|
|
10
|
+
class="w-100 aspect-1x1 object-fit-cover radius-round"
|
|
11
|
+
/>
|
|
12
|
+
</div>
|
|
13
|
+
<h3 class="t-white t-medium t-truncate">{{ artist.name }}</h3>
|
|
14
|
+
<p class="t-grey t-small">Artist</p>
|
|
15
|
+
</router-link>
|
|
16
|
+
</template>
|
|
17
|
+
|
|
18
|
+
<script setup>
|
|
19
|
+
import Media from '@martyrs/src/components/Media/Media.vue';
|
|
20
|
+
|
|
21
|
+
const props = defineProps({
|
|
22
|
+
artist: {
|
|
23
|
+
type: Object,
|
|
24
|
+
required: true
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
</script>
|
|
28
|
+
|
|
29
|
+
<style scoped>
|
|
30
|
+
.artist-card {
|
|
31
|
+
transition: transform 0.3s ease;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.artist-card:hover {
|
|
35
|
+
transform: translateY(-5px);
|
|
36
|
+
}
|
|
37
|
+
</style>
|