1 line
4.2 KiB
JavaScript
1 line
4.2 KiB
JavaScript
import{Ct as e,Dt as t,In as n,Kt as r,Ot as i,Rn as a,St as o,bn as s,bt as c,hn as l,in as u,kt as d,nn as f,u as p,wt as m,xt as h}from"./client-CAcbOpZH.js";import{n as g,r as _,t as v}from"./es-CkktpxoG.js";import{t as y}from"./_plugin-vue_export-helper-CktLkZ_U.js";import{i as b,it as x,o as S,rt as C}from"./index-7R9tWZyL.js";var w={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 24 24`},T=d({name:`MenuOutlined`,render:function(e,t){return r(),m(`svg`,w,t[0]||=[h(`path`,{d:`M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z`,fill:`currentColor`},null,-1)])}}),E=C(`ui`,()=>{let e=l([]),t=l(null),n=l(!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(d({__name:`HeaderMenu`,props:{active:{}},setup(d){let y=d,b=S(),C=p(),w=E(),A=g(),{permissions:j,environment:M,isLoadingEnvironment:N}=x(w),P=c(()=>N.value?`Среда: …`:M.value===`prod`?`Сервер`:M.value===`venue`?`Локальная сеть`:`Среда: ?`);f(()=>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=l(!1);return(c,l)=>(r(),m(`div`,D,[h(`button`,{type:`button`,class:`burger-button`,"aria-expanded":R.value,"aria-label":R.value?`Закрыть меню`:`Открыть меню`,onClick:l[0]||=e=>R.value=!R.value},[i(s(v),{class:`burger-icon`,size:`28`},{default:u(()=>[i(s(T))]),_:1})],8,O),h(`div`,{class:n([`left-group menu-buttons-block`,R.value?``:`menu-buttons-block-active`])},[h(`button`,{type:`button`,class:n([`menu-item-block`,{active:y.active==`main`}]),onClick:l[1]||=e=>s(C).push(`/`)},` Главная `,2),s(b).hasRole(`user`)?(r(),m(`button`,{key:0,type:`button`,class:n([`menu-item-block`,{active:y.active==`office`}]),onClick:l[2]||=e=>s(C).push(`/office`)},` Кабинет `,2)):e(``,!0),F(`games_page`)?(r(),m(`button`,{key:1,type:`button`,class:n([`menu-item-block`,{active:y.active==`games`}]),onClick:l[3]||=e=>s(C).push(`/games`)},` Игры `,2)):e(``,!0),s(b).isAuthenticated?(r(),m(`button`,{key:2,type:`button`,class:`menu-item-block`,onClick:l[4]||=e=>s(C).push(`/screen`)},` Экран `)):e(``,!0),h(`button`,{type:`button`,class:n([`menu-item-block`,{active:y.active==`catalog`}]),onClick:l[5]||=e=>s(C).push(`/catalog`)},` Каталог `,2),F(`scenarios_page`)?(r(),m(`button`,{key:3,type:`button`,class:n([`menu-item-block`,{active:y.active==`scenarios`}]),onClick:l[6]||=e=>s(C).push(`/scenarios`)},` Сценарии `,2)):e(``,!0),F(`tasks_page`)?(r(),m(`button`,{key:4,type:`button`,class:n([`menu-item-block`,{active:y.active==`tasks`}]),onClick:l[7]||=e=>s(C).push(`/tasks`)},` Задачи `,2)):e(``,!0),F(`users_page`)?(r(),m(`button`,{key:5,type:`button`,class:n([`menu-item-block`,{active:y.active==`users`}]),onClick:l[8]||=e=>s(C).push(`/users`)},` Пользователи `,2)):e(``,!0),F(`reviews_page`)?(r(),m(`button`,{key:6,type:`button`,class:n([`menu-item-block`,{active:y.active==`reviews`}]),onClick:l[9]||=e=>s(C).push(`/reviews`)},` Отзывы `,2)):e(``,!0)],2),h(`div`,k,[s(b).isAuthenticated?(r(),o(s(_),{key:0,size:`small`,type:s(M)===`venue`?`warning`:`default`,title:s(M)?`Среда подключённого сервера`:`Среда сервера не определена`,role:`status`},{default:u(()=>[t(a(P.value),1)]),_:1},8,[`type`,`title`])):e(``,!0),s(b).isAuthenticated?e(``,!0):(r(),m(`button`,{key:1,type:`button`,class:`menu-item-block right`,onClick:I},` Войти `)),s(b).isAuthenticated?(r(),m(`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}; |