Files
prod/frontend/dist/assets/HeaderMenu-D82cpH44.js
T
2026-10-14 10:39:43 +07:00

1 line
4.2 KiB
JavaScript

import{Ct as e,Dt as t,Kt as n,Ln as r,Ot as i,St as a,an as o,bt as s,gn as c,kt as l,nn as u,u as d,wt as f,xn as p,xt as m,zn as h}from"./client-Cs6K6NLD.js";import{n as g,r as _,t as v}from"./es-CZESRENy.js";import{t as y}from"./_plugin-vue_export-helper-DPScEKW6.js";import{i as b,it as x,o as S,rt as C}from"./index-sJPoVwrF.js";var w={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 24 24`},T=l({name:`MenuOutlined`,render:function(e,t){return n(),f(`svg`,w,t[0]||=[m(`path`,{d:`M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z`,fill:`currentColor`},null,-1)])}}),E=C(`ui`,()=>{let e=c([]),t=c(null),n=c(!0),r=0;async function i(){let i=S(),a=i.getToken(),o=++r;e.value=[],t.value=null,n.value=!0;try{let n=await b().GetPermissions({});if(o!==r)return;a===i.getToken()&&(e.value=n.permissions||[]),(n.environment===`prod`||n.environment===`venue`)&&(t.value=n.environment)}catch(e){if(o===r)throw e}finally{o===r&&(n.value=!1)}}return{permissions:e,environment:t,isLoadingEnvironment:n,load:i}}),D={class:`menu-block`},O=[`aria-expanded`,`aria-label`],k={class:`right-group`},A=y(l({__name:`HeaderMenu`,props:{active:{}},setup(l){let y=l,b=S(),C=d(),w=E(),A=g(),{permissions:j,environment:M,isLoadingEnvironment:N}=x(w),P=s(()=>N.value?`Среда: …`:M.value===`prod`?`Сервер`:M.value===`venue`?`Локальная сеть`:`Среда: ?`);u(()=>b.user,async()=>{try{await w.load()}catch(e){A.error(`Не удалось загрузить сведения сервера`),console.error(`Failed to load server information:`,e)}},{immediate:!0});function F(e){return j.value.includes(e)}let I=()=>{C.push(`/login`)},L=()=>{b.logout(),C.push(`/login`)},R=c(!1);return(s,c)=>(n(),f(`div`,D,[m(`button`,{type:`button`,class:`burger-button`,"aria-expanded":R.value,"aria-label":R.value?`Закрыть меню`:`Открыть меню`,onClick:c[0]||=e=>R.value=!R.value},[i(p(v),{class:`burger-icon`,size:`28`},{default:o(()=>[i(p(T))]),_:1})],8,O),m(`div`,{class:r([`left-group menu-buttons-block`,R.value?``:`menu-buttons-block-active`])},[m(`button`,{type:`button`,class:r([`menu-item-block`,{active:y.active==`main`}]),onClick:c[1]||=e=>p(C).push(`/`)},` Главная `,2),p(b).hasRole(`user`)?(n(),f(`button`,{key:0,type:`button`,class:r([`menu-item-block`,{active:y.active==`office`}]),onClick:c[2]||=e=>p(C).push(`/office`)},` Кабинет `,2)):e(``,!0),F(`games_page`)?(n(),f(`button`,{key:1,type:`button`,class:r([`menu-item-block`,{active:y.active==`games`}]),onClick:c[3]||=e=>p(C).push(`/games`)},` Игры `,2)):e(``,!0),p(b).isAuthenticated?(n(),f(`button`,{key:2,type:`button`,class:`menu-item-block`,onClick:c[4]||=e=>p(C).push(`/screen`)},` Экран `)):e(``,!0),m(`button`,{type:`button`,class:r([`menu-item-block`,{active:y.active==`catalog`}]),onClick:c[5]||=e=>p(C).push(`/catalog`)},` Каталог `,2),F(`scenarios_page`)?(n(),f(`button`,{key:3,type:`button`,class:r([`menu-item-block`,{active:y.active==`scenarios`}]),onClick:c[6]||=e=>p(C).push(`/scenarios`)},` Сценарии `,2)):e(``,!0),F(`tasks_page`)?(n(),f(`button`,{key:4,type:`button`,class:r([`menu-item-block`,{active:y.active==`tasks`}]),onClick:c[7]||=e=>p(C).push(`/tasks`)},` Задачи `,2)):e(``,!0),F(`users_page`)?(n(),f(`button`,{key:5,type:`button`,class:r([`menu-item-block`,{active:y.active==`users`}]),onClick:c[8]||=e=>p(C).push(`/users`)},` Пользователи `,2)):e(``,!0),F(`reviews_page`)?(n(),f(`button`,{key:6,type:`button`,class:r([`menu-item-block`,{active:y.active==`reviews`}]),onClick:c[9]||=e=>p(C).push(`/reviews`)},` Отзывы `,2)):e(``,!0)],2),m(`div`,k,[p(b).isAuthenticated?(n(),a(p(_),{key:0,size:`small`,type:p(M)===`venue`?`warning`:`default`,title:p(M)?`Среда подключённого сервера`:`Среда сервера не определена`,role:`status`},{default:o(()=>[t(h(P.value),1)]),_:1},8,[`type`,`title`])):e(``,!0),p(b).isAuthenticated?e(``,!0):(n(),f(`button`,{key:1,type:`button`,class:`menu-item-block right`,onClick:I},` Войти `)),p(b).isAuthenticated?(n(),f(`button`,{key:2,type:`button`,class:`menu-item-block right`,onClick:L},` Выйти `)):e(``,!0)])]))}}),[[`__scopeId`,`data-v-7ac79e51`]]);export{E as n,A as t};