diff --git a/dist/assets/index-DSM9K1S2.js b/dist/assets/index-BLlCl_NS.js similarity index 98% rename from dist/assets/index-DSM9K1S2.js rename to dist/assets/index-BLlCl_NS.js index 3493333..2adfad4 100644 --- a/dist/assets/index-DSM9K1S2.js +++ b/dist/assets/index-BLlCl_NS.js @@ -2334,4 +2334,4 @@ `);return}e=kM(e),t!=null&&o.push(` ${e}${AM(t)}`)}),e&&o.push(`}`),o.join(` `)}function NM(e,t,n){e&&e.forEach(e=>{if(Array.isArray(e))NM(e,t,n);else if(typeof e==`function`){let r=e(t);Array.isArray(r)?NM(r,t,n):r&&n(r)}else e&&n(e)})}function PM(e,t,n,r,i,a){let o=e.$;!o||typeof o==`string`?t.push(o):typeof o==`function`?t.push(o({context:r.context,props:i})):(o.before&&o.before(r.context),!o.$||typeof o.$==`string`?t.push(o.$):o.$&&t.push(o.$({context:r.context,props:i})));let s=DM(t),c=MM(s,e.props,r,i);a&&c&&a.insertRule(c),!a&&c.length&&n.push(c),e.children&&NM(e.children,{context:r.context,props:i},e=>{if(typeof e==`string`){let t=MM(s,{raw:e},r,i);a?a.insertRule(t):n.push(t)}else PM(e,t,n,r,i,a)}),t.pop(),o&&o.after&&o.after(r.context)}function FM(e,t,n,r=!1){let i=[];return PM(e,[],i,t,n,r?e.instance.__styleSheet:void 0),r?``:i.join(` -`)}function IM(e){if(!e)return;let t=e.parentElement;t&&t.removeChild(e)}function LM(e){return document.querySelector(`style[cssr-id="${e}"]`)}function RM(e){let t=document.createElement(`style`);return t.setAttribute(`cssr-id`,e),t}window&&(window.__cssrContext={});function zM(e){let t=e.getAttribute(`mount-count`);return t===null?null:Number(t)}function BM(e,t){e.setAttribute(`mount-count`,String(t))}function VM(e,t,n,r){let{els:i}=t;if(n===void 0)i.forEach(IM),t.els=[];else{let e=LM(n);if(e&&i.includes(e)){let a=zM(e);r?a===null?console.error(`[css-render/unmount]: The style with target='${n}' is mounted in count mode.`):a<=1?(IM(e),t.els=i.filter(t=>t!==e)):BM(e,a-1):a===null?(IM(e),t.els=i.filter(t=>t!==e)):console.error(`[css-render/unmount]: The style with target='${n}' is mounted in no-count mode.`)}}}function HM(e,t){e.push(t)}function UM(e,t,n,r,i,a,o,s,c){if(o&&!c){if(n===void 0){console.error("[css-render/mount]: `id` is required in `boost` mode.");return}let i=window.__cssrContext;i[n]||(i[n]=!0,FM(t,e,r,o));return}let l,{els:u}=t,d;if(n===void 0&&(d=t.render(r),n=jc(d)),c){c(n,d??t.render(r));return}let f=LM(n);if(s||f===null){if(l=f===null?RM(n):f,d===void 0&&(d=t.render(r)),l.textContent=d,f!==null)return;if(i){let e=document.head.getElementsByTagName(`style`)[0]||null;document.head.insertBefore(l,e)}else document.head.appendChild(l);a&&BM(l,1),HM(u,l)}else{let e=zM(f);a?e===null?console.error(`[css-render/mount]: The style with id='${n}' has been mounted in no-count mode.`):BM(f,e+1):e!==null&&console.error(`[css-render/mount]: The style with id='${n}' has been mounted in count mode.`)}return f??l}function WM(e){return FM(this,this.instance,e)}function GM(e={}){let{target:t,id:n,ssr:r,props:i,count:a=!1,head:o=!1,boost:s=!1,force:c=!1}=e;return UM(this.instance,this,n??t,i,o,a,s,c,r)}function KM(e={}){let{id:t,target:n,delay:r=0,count:i=!1}=e;r===0?VM(this.instance,this,t??n,i):setTimeout(()=>VM(this.instance,this,t??n,i),r)}var qM=function(e,t,n,r){return{instance:e,$:t,props:n,children:r,els:[],render:WM,mount:GM,unmount:KM}},JM=function(e,t,n,r){return Array.isArray(t)?qM(e,{$:null},null,t):Array.isArray(n)?qM(e,t,null,n):Array.isArray(r)?qM(e,t,n,r):qM(e,t,n,null)};function YM(e={}){let t=null,n={c:((...e)=>JM(n,...e)),use:(e,...t)=>e.install(n,...t),find:LM,context:{},config:e,get __styleSheet(){if(!t){let e=document.createElement(`style`);return document.head.appendChild(e),t=document.styleSheets[document.styleSheets.length-1],t}return t}};return n}var{c:XM}=YM(),ZM=XM(`.xicon`,{width:`1em`,height:`1em`,display:`inline-flex`},[XM(`svg`,{width:`1em`,height:`1em`}),XM(`svg:not([fill])`,{fill:`currentColor`})]),QM=()=>{ZM.mount({id:`xicons-icon`})},$M={size:[String,Number],color:String,tag:String},eN=Symbol(`IconConfigInjection`),tN=`span`,nN=P({name:`Icon`,props:$M,setup(e,{slots:t}){let n=N(eN,null),r=B(()=>{let t=e.size??n?.size;if(t!==void 0)return typeof t==`number`||/^\d+$/.test(t)?`${t}px`:t}),i=B(()=>{let{color:t}=e;return t===void 0?n?n.color:void 0:t}),a=B(()=>{let{tag:t}=e;return t===void 0?n?.tag??tN:t});return Br(()=>{QM()}),()=>V(a.value,{class:`xicon`,style:{color:i.value,fontSize:r.value}},[ni(t,`default`)])}});function rN(e){return{Ping(t){let n=[],r=`api/test/ping`;return n.length>0&&(r+=`?${n.join(`&`)}`),e({path:r,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`Ping`})},Echo(t){let n=[];t.text&&n.push(`text=${encodeURIComponent(t.text.toString())}`);let r=`api/test/echo`;return n.length>0&&(r+=`?${n.join(`&`)}`),e({path:r,method:`POST`,body:null},{service:`EveningDetectiveServer`,method:`Echo`})},Signup(t){let n=JSON.stringify(t),r=[],i=`api/auth/signup`;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`POST`,body:n},{service:`EveningDetectiveServer`,method:`Signup`})},RefreshPassword(t){let n=JSON.stringify(t),r=[],i=`api/auth/refresh-password`;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`POST`,body:n},{service:`EveningDetectiveServer`,method:`RefreshPassword`})},Login(t){let n=JSON.stringify(t),r=[],i=`api/auth/login`;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`POST`,body:n},{service:`EveningDetectiveServer`,method:`Login`})},Refresh(t){let n=JSON.stringify(t),r=[],i=`api/auth/refresh`;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`POST`,body:n},{service:`EveningDetectiveServer`,method:`Refresh`})},GetUsers(t){let n=[],r=`api/users`;return n.length>0&&(r+=`?${n.join(`&`)}`),e({path:r,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`GetUsers`})},GetUserById(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/users/${t.id}`,r=[],i=n;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`GetUserById`})},GetMe(t){let n=[],r=`api/users/me`;return n.length>0&&(r+=`?${n.join(`&`)}`),e({path:r,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`GetMe`})},AddUserRole(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/users/${t.id}/role/add`,r=JSON.stringify(t),i=[],a=n;return i.length>0&&(a+=`?${i.join(`&`)}`),e({path:a,method:`POST`,body:r},{service:`EveningDetectiveServer`,method:`AddUserRole`})},DeleteUserRole(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/users/${t.id}/role/delete`,r=JSON.stringify(t),i=[],a=n;return i.length>0&&(a+=`?${i.join(`&`)}`),e({path:a,method:`POST`,body:r},{service:`EveningDetectiveServer`,method:`DeleteUserRole`})},GetPermissions(t){let n=[],r=`api/ui/permissions`;return n.length>0&&(r+=`?${n.join(`&`)}`),e({path:r,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`GetPermissions`})},UploadFile(t){let n=JSON.stringify(t),r=[],i=`api/files/upload`;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`POST`,body:n},{service:`EveningDetectiveServer`,method:`UploadFile`})},DownloadFile(t){if(!t.filename)throw Error(`missing required field request.filename`);let n=`api/files/${t.filename}`,r=[],i=n;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`DownloadFile`})},AddScenario(t){let n=JSON.stringify(t),r=[],i=`api/scenario`;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`POST`,body:n},{service:`EveningDetectiveServer`,method:`AddScenario`})},GetMyScenarios(t){let n=[],r=`api/my-scenarios`;return n.length>0&&(r+=`?${n.join(`&`)}`),e({path:r,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`GetMyScenarios`})},GetScenario(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/scenarios/${t.id}`,r=[],i=n;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`GetScenario`})},UpdateScenario(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/scenarios/${t.id}`,r=JSON.stringify(t),i=[],a=n;return i.length>0&&(a+=`?${i.join(`&`)}`),e({path:a,method:`PUT`,body:r},{service:`EveningDetectiveServer`,method:`UpdateScenario`})},DeleteScenario(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/scenarios/${t.id}`,r=[],i=n;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`DELETE`,body:null},{service:`EveningDetectiveServer`,method:`DeleteScenario`})},AddScenarioPlace(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/scenarios/${t.id}/places`,r=JSON.stringify(t),i=[],a=n;return i.length>0&&(a+=`?${i.join(`&`)}`),e({path:a,method:`POST`,body:r},{service:`EveningDetectiveServer`,method:`AddScenarioPlace`})},UpdateScenarioPlace(t){if(!t.id)throw Error(`missing required field request.id`);if(!t.code)throw Error(`missing required field request.code`);let n=`api/scenarios/${t.id}/places/${t.code}`,r=JSON.stringify(t),i=[],a=n;return i.length>0&&(a+=`?${i.join(`&`)}`),e({path:a,method:`PUT`,body:r},{service:`EveningDetectiveServer`,method:`UpdateScenarioPlace`})},DeleteScenarioPlace(t){if(!t.id)throw Error(`missing required field request.id`);if(!t.code)throw Error(`missing required field request.code`);let n=`api/scenarios/${t.id}/places/${t.code}`,r=[],i=n;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`DELETE`,body:null},{service:`EveningDetectiveServer`,method:`DeleteScenarioPlace`})}}}function iN(e){return rN(aN(e))}function aN(e){return async t=>{let n=`${oN()}/${t.path}`,r={"Content-Type":`application/json`},i=e?.();i&&(r.Authorization=`Bearer ${i}`);let a=await fetch(n,{method:t.method,headers:r,body:t.body});if(a.status==401)throw Error(`unauthorized`);return await a.json()}}function oN(){return`https://evening-detective.crabs-games.art`}var sN=dc(`auth`,()=>{let e=k(null),t=k(null),n=k(null),r=k(!1),i=k(null),a=B(()=>!!e.value),o=B(()=>n.value?.username||``),s=B(()=>n.value?.roles||[]);function c(){let n=localStorage.getItem(`accessToken`),r=localStorage.getItem(`refreshToken`);n&&(e.value=n,t.value=r,u())}function l(){return e.value}async function u(){if(e.value)try{let e=await iN(l).GetMe({});if(e.error){i.value=e.error;return}e.user&&(n.value=e.user)}catch(e){console.error(`Failed to fetch user:`,e),e instanceof Error&&e.message.includes(`401`)&&await h()}}async function d(n,a){r.value=!0,i.value=null;try{let r=await iN(l).Login({email:n,password:a});return r.error?(i.value=r.error,!1):r.accessToken?(e.value=r.accessToken,t.value=r.refreshToken||null,localStorage.setItem(`accessToken`,r.accessToken),r.refreshToken&&localStorage.setItem(`refreshToken`,r.refreshToken),await u(),!0):!1}catch(e){return i.value=e instanceof Error?e.message:`Login failed`,!1}finally{r.value=!1}}async function f(){if(!t.value)return!1;try{let n=await iN(l).Refresh({refreshToken:t.value});return n.error||!n.accessToken?!1:(e.value=n.accessToken,t.value=n.refreshToken||null,localStorage.setItem(`accessToken`,n.accessToken),n.refreshToken&&localStorage.setItem(`refreshToken`,n.refreshToken),!0)}catch{return!1}}async function p(e,t){r.value=!0,i.value=null;try{let n=await iN(l).Signup({username:e,email:t});return n.error?(i.value=n.error,!1):!0}catch(e){return i.value=e instanceof Error?e.message:`Signup failed`,!1}finally{r.value=!1}}async function m(e){r.value=!0,i.value=null;try{let t=await iN(l).RefreshPassword({email:e});return t.error?(i.value=t.error,!1):!0}catch(e){return i.value=e instanceof Error?e.message:`Password reset failed`,!1}finally{r.value=!1}}async function h(){e.value=null,t.value=null,n.value=null,i.value=null,localStorage.removeItem(`accessToken`),localStorage.removeItem(`refreshToken`)}function g(e){return s.value.includes(e)}function _(e){return e.some(e=>s.value.includes(e))}return{accessToken:e,refreshToken:t,user:n,isLoading:r,error:i,isAuthenticated:a,username:o,userRoles:s,initFromStorage:c,getToken:l,login:d,signup:p,refreshPassword:m,logout:h,fetchUser:u,refreshTokenAction:f,hasRole:g,hasAnyRole:_}});function cN(){let e=sN();return lN(e.refreshTokenAction,e.getToken)}function lN(e,t){return rN(uN(e,aN(t)))}function uN(e,t){return async n=>{try{return await t(n)}catch{return await e(),await t(n)}}}var dN={class:`menu-block`},fN={class:`right-group`},pN=P({__name:`HeaderMenu`,props:{addLogin:{type:Boolean,required:!1},addLogout:{type:Boolean,required:!1},active:{type:String,required:!1}},setup(e){let t=e,n=sN();n.initFromStorage();let r=NA(),i=cN(),a=k([]);async function o(){a.value=[];let e=await i.GetPermissions({});a.value=e.permissions}o();function s(e){return a.value.includes(e)}let c=()=>{r.push(`/login`)},l=()=>{n.logout(),r.push(`/login`)},u=k(!1);return(e,i)=>(F(),I(`div`,dN,[A(n).hasRole(`user`)?(F(),I(`div`,{key:0,onClick:i[0]||=e=>u.value=!u.value,class:`burger-button`},[R(A(nN),{class:`burger-icon`,size:`28`},{default:M(()=>[R(A(xM))]),_:1})])):Fa(``,!0),L(`div`,{class:ge([`left-group menu-buttons-block`,u.value?``:`menu-buttons-block-active`])},[A(n).hasRole(`user`)?(F(),I(`div`,{key:0,class:ge([`menu-item-block`,{active:t.active==`office`}]),onClick:i[1]||=e=>A(r).push(`/office`)},` Кабинет `,2)):Fa(``,!0),s(`games_page`)?(F(),I(`div`,{key:1,class:ge([`menu-item-block`,{active:t.active==`games`}]),onClick:i[2]||=e=>A(r).push(`/games`)},` Игры `,2)):Fa(``,!0),s(`scenarios_page`)?(F(),I(`div`,{key:2,class:ge([`menu-item-block`,{active:t.active==`scenarios`}]),onClick:i[3]||=e=>A(r).push(`/scenarios`)},` Мои сценарии `,2)):Fa(``,!0),s(`users_page`)?(F(),I(`div`,{key:3,class:ge([`menu-item-block`,{active:t.active==`users`}]),onClick:i[4]||=e=>A(r).push(`/users`)},` Пользователи `,2)):Fa(``,!0)],2),L(`div`,fN,[t.addLogin?(F(),I(`div`,{key:0,class:`menu-item-block right`,onClick:c},` Войти `)):Fa(``,!0),t.addLogout?(F(),I(`div`,{key:1,class:`menu-item-block right`,onClick:l},`Выйти`)):Fa(``,!0)])]))}}),mN=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},hN=mN(pN,[[`__scopeId`,`data-v-39cfef67`]]),gN=P({__name:`GamesPage`,setup(e){return(e,t)=>(F(),I(_a,null,[t[0]||=L(`div`,{class:`center-block-custom content-block`},`Игры`,-1),R(hN,{"add-logout":!0,active:`games`})],64))}}),_N=P({__name:`GamesView`,setup(e){return(e,t)=>(F(),Da(gN))}}),vN=P({__name:`HomeView`,setup(e){return(e,t)=>(F(),I(_a,null,[t[0]||=L(`div`,{class:`center-block-custom content-block center-middle-block-custom height80`},[L(`div`,null,[L(`h1`,{class:`font-text`},`Вечерний детектив`),L(`h3`,{class:`font-text`},`Дело №0`),L(`p`,{class:`content-text`},` Поиграем? `)])],-1),R(hN,{"add-login":!0})],64))}}),yN={class:`center-block-custom content-block center-middle-block-custom height80`},bN={class:`form-button-wrapper`},xN={class:`form-label`},SN={key:0},CN={key:1},wN={class:`form-label`},TN={class:`form-button-wrapper`},EN={class:`form-label`},DN={key:0},ON={key:1},kN={class:`form-button-wrapper`},AN={class:`form-label`},jN={key:0},MN={key:1},NN=mN(P({__name:`LoginPage`,setup(e){let t=sN(),n=NA(),r=JE(),i=k(``),a=k(``),o=k(``),s=k(!1),c=B(()=>[`@mail.ru`,`@yandex.ru`,`@gmail.com`].map(e=>{let t=a.value.split(`@`)[0];return{label:t+e,value:t+e}}));async function l(){if(!await t.login(a.value,o.value)&&t.error!=null){r.error(t.error);return}n.push(`/office`)}async function u(){if(s.value){if(!await t.signup(i.value,a.value)&&t.error!=null){r.error(t.error);return}r.info(`Пароль отправлен на почту`)}}async function d(){if(!await t.refreshPassword(a.value)&&t.error!=null){r.error(t.error);return}r.info(`Пароль отправлен на почту`)}return(e,n)=>(F(),I(`div`,yN,[R(A(hT),{style:{"margin-bottom":`16px`},class:`sign-card`},{default:M(()=>[R(A(jk),{type:`line`,animated:``},{default:M(()=>[R(A(Dk),{name:`signin`,tab:`Вход`},{default:M(()=>[R(A(vD),{vertical:``},{default:M(()=>[n[6]||=L(`div`,{class:`form-label`},`Почта`,-1),R(A(Ew),{value:a.value,"onUpdate:value":n[0]||=e=>a.value=e,"input-props":{autocomplete:`disabled`},options:c.value,placeholder:`detective@mail.ru`,clearable:``},null,8,[`value`,`options`]),n[7]||=L(`div`,{class:`form-label`},`Пароль`,-1),R(A(mw),{value:o.value,"onUpdate:value":n[1]||=e=>o.value=e,type:`password`,placeholder:`********`},null,8,[`value`]),L(`div`,bN,[L(`div`,xN,[R(A(Zw),{onClick:l,disabled:a.value.length==0||o.value.length==0},{default:M(()=>[A(t).isLoading?(F(),I(`span`,CN,` Подождите... `)):(F(),I(`span`,SN,` Вход `))]),_:1},8,[`disabled`])])])]),_:1})]),_:1}),R(A(Dk),{name:`signup`,tab:`Регистрация`},{default:M(()=>[R(A(vD),{vertical:``},{default:M(()=>[n[9]||=L(`div`,{class:`form-label`},`Позывной`,-1),R(A(mw),{value:i.value,"onUpdate:value":n[2]||=e=>i.value=e,type:`text`,placeholder:`Шерлок`},null,8,[`value`]),n[10]||=L(`div`,{class:`form-label`},`Почта`,-1),R(A(Ew),{value:a.value,"onUpdate:value":n[3]||=e=>a.value=e,"input-props":{autocomplete:`disabled`},options:c.value,placeholder:`detective@mail.ru`,clearable:``},null,8,[`value`,`options`]),L(`div`,wN,[R(A(OT),{checked:s.value,"onUpdate:checked":n[4]||=e=>s.value=e},{default:M(()=>[...n[8]||=[z(` Я согласен с `,-1),L(`a`,{href:`/user-agreement`,target:`_blank`,class:`docs-link`},`пользовательским соглашением`,-1),L(`br`,null,null,-1),z(` и `,-1),L(`a`,{href:`/privacy-policy`,target:`_blank`,class:`docs-link`},`соглашением о персональных данных`,-1)]]),_:1},8,[`checked`])]),L(`div`,TN,[L(`div`,EN,[R(A(Zw),{onClick:u,disabled:i.value.length==0||o.value.length==0||!s.value},{default:M(()=>[A(t).isLoading?(F(),I(`span`,ON,` Подождите... `)):(F(),I(`span`,DN,` Регистрация `))]),_:1},8,[`disabled`])])])]),_:1})]),_:1}),R(A(Dk),{name:`new-password`,tab:`Новый пароль`},{default:M(()=>[R(A(vD),{vertical:``},{default:M(()=>[n[11]||=L(`div`,{class:`form-label`},`Почта`,-1),R(A(Ew),{value:a.value,"onUpdate:value":n[5]||=e=>a.value=e,"input-props":{autocomplete:`disabled`},options:c.value,placeholder:`detective@mail.ru`,clearable:``},null,8,[`value`,`options`]),L(`div`,kN,[L(`div`,AN,[R(A(Zw),{onClick:d,disabled:a.value.length==0},{default:M(()=>[A(t).isLoading?(F(),I(`span`,MN,` Подождите... `)):(F(),I(`span`,jN,` Прислать новый пароль `))]),_:1},8,[`disabled`])])])]),_:1})]),_:1})]),_:1})]),_:1})]))}}),[[`__scopeId`,`data-v-c1fd645b`]]),PN=P({__name:`LoginView`,setup(e){return(e,t)=>(F(),Da(NN))}}),FN={class:`center-block-custom content-block`},IN=P({__name:`OfficePage`,setup(e){let t=sN(),n=cN(),r=k([]);async function i(){r.value=[];let e=await n.GetPermissions({});r.value=e.permissions}return i(),(e,n)=>(F(),I(_a,null,[L(`div`,FN,[L(`p`,null,`Доброго времени суток, `+Ce(A(t).username)+`.`,1)]),R(hN,{"add-logout":!0,active:`office`})],64))}}),LN=P({__name:`OfficeView`,setup(e){return(e,t)=>(F(),Da(IN))}}),RN={};function zN(e,t){return`Соглашением о персональных данных`}var BN=mN(RN,[[`render`,zN]]),VN={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},HN=P({name:`Settings`,render:function(e,t){return F(),I(`svg`,VN,t[0]||=[L(`path`,{d:`M27 16.76V16v-.77l1.92-1.68A2 2 0 0 0 29.3 11l-2.36-4a2 2 0 0 0-1.73-1a2 2 0 0 0-.64.1l-2.43.82a11.35 11.35 0 0 0-1.31-.75l-.51-2.52a2 2 0 0 0-2-1.61h-4.68a2 2 0 0 0-2 1.61l-.51 2.52a11.48 11.48 0 0 0-1.32.75l-2.38-.86A2 2 0 0 0 6.79 6a2 2 0 0 0-1.73 1L2.7 11a2 2 0 0 0 .41 2.51L5 15.24v1.53l-1.89 1.68A2 2 0 0 0 2.7 21l2.36 4a2 2 0 0 0 1.73 1a2 2 0 0 0 .64-.1l2.43-.82a11.35 11.35 0 0 0 1.31.75l.51 2.52a2 2 0 0 0 2 1.61h4.72a2 2 0 0 0 2-1.61l.51-2.52a11.48 11.48 0 0 0 1.32-.75l2.42.82a2 2 0 0 0 .64.1a2 2 0 0 0 1.73-1l2.28-4a2 2 0 0 0-.41-2.51zM25.21 24l-3.43-1.16a8.86 8.86 0 0 1-2.71 1.57L18.36 28h-4.72l-.71-3.55a9.36 9.36 0 0 1-2.7-1.57L6.79 24l-2.36-4l2.72-2.4a8.9 8.9 0 0 1 0-3.13L4.43 12l2.36-4l3.43 1.16a8.86 8.86 0 0 1 2.71-1.57L13.64 4h4.72l.71 3.55a9.36 9.36 0 0 1 2.7 1.57L25.21 8l2.36 4l-2.72 2.4a8.9 8.9 0 0 1 0 3.13L27.57 20z`,fill:`currentColor`},null,-1),L(`path`,{d:`M16 22a6 6 0 1 1 6-6a5.94 5.94 0 0 1-6 6zm0-10a3.91 3.91 0 0 0-4 4a3.91 3.91 0 0 0 4 4a3.91 3.91 0 0 0 4-4a3.91 3.91 0 0 0-4-4z`,fill:`currentColor`},null,-1)])}}),UN={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 24 24`},WN=P({name:`Key24Regular`,render:function(e,t){return F(),I(`svg`,UN,t[0]||=[L(`g`,{fill:`none`},[L(`path`,{d:`M18.25 7a1.25 1.25 0 1 1-2.5 0a1.25 1.25 0 0 1 2.5 0zM15.5 2.05A6.554 6.554 0 0 0 8.95 8.6c0 .387.05.76.11 1.104a.275.275 0 0 1-.07.244l-6.235 6.236a2.75 2.75 0 0 0-.806 1.944V20.3c0 .966.784 1.75 1.75 1.75h2.5a1.75 1.75 0 0 0 1.75-1.75v-1.25H9.7c.69 0 1.25-.56 1.25-1.25v-1.75h1.75a1.25 1.25 0 0 0 1.25-1.204c.496.128 1.02.204 1.55.204a6.554 6.554 0 0 0 6.55-6.55c0-3.631-2.953-6.45-6.55-6.45zM10.45 8.6a5.054 5.054 0 0 1 5.05-5.05c2.802 0 5.05 2.181 5.05 4.95a5.054 5.054 0 0 1-5.05 5.05c-.68 0-1.38-.171-2.005-.44a.75.75 0 0 0-1.046.69v.75H10.7c-.69 0-1.25.56-1.25 1.25v1.75H7.7c-.69 0-1.25.56-1.25 1.25v1.5a.25.25 0 0 1-.25.25H3.7a.25.25 0 0 1-.25-.25v-2.172c0-.331.132-.65.366-.884l6.236-6.235a1.774 1.774 0 0 0 .486-1.564a4.917 4.917 0 0 1-.088-.845z`,fill:`currentColor`})],-1)])}}),GN={key:1,class:`place-block`},KN={class:`message-content`},qN={key:0},JN={class:`message-image-border`},YN=[`src`],XN={class:`key-block`},ZN={class:`gray-block`},QN={key:0},$N={class:`key-block`},eP={key:3,class:`place-block`},tP={style:{display:`flex`,"align-items":`center`,width:`100%`}},nP={style:{display:`flex`,"flex-direction":`column`}},rP={style:{display:`flex`,"flex-direction":`column`,width:`100%`}},iP={class:`door-add-block`},aP={class:`door-field`},oP={style:{display:`flex`,"align-items":`center`,width:`100%`}},sP={style:{display:`flex`,"align-items":`center`,width:`100%`}},cP={class:`slot-block`},lP=mN(P({__name:`PlaceBlock`,props:{newPlaceCode:{type:String},newPlaceName:{type:String},newPlaceText:{type:String},place:{type:Object},mode:{type:String,required:!0}},emits:[`update:newPlaceCode`,`update:newPlaceName`,`update:newPlaceText`,`update:mode`],setup(e,{emit:t}){let n=e,r=t,i=e=>{r(`update:newPlaceCode`,e)},a=e=>{r(`update:newPlaceName`,e)},o=e=>{r(`update:newPlaceText`,e)},s=e=>{r(`update:mode`,e)};function c(){return{name:void 0,image:void 0}}function l(){return{code:void 0,name:void 0,keys:void 0}}function u(){return{name:void 0}}return(t,r)=>{let d=Zr(`n-button`);return F(),I(_a,null,[e.mode==`mini-add`?(F(),I(`div`,{key:0,class:`place-block-hover show-editor-block`,onClick:r[0]||=e=>s(`add`)},[...r[11]||=[L(`p`,{class:`place-image-plus`},`+`,-1)]])):Fa(``,!0),e.mode==`add`?(F(),I(`div`,GN,[R(A(vD),{vertical:``},{default:M(()=>[R(A(gw),null,{default:M(()=>[R(A(mw),{style:{width:`20%`},value:e.newPlaceCode,"onUpdate:value":i,type:`text`,placeholder:`Ы-1`},null,8,[`value`]),R(A(mw),{style:{width:`80%`},value:e.newPlaceName,"onUpdate:value":a,type:`text`,placeholder:`Дом №Ы`},null,8,[`value`])]),_:1}),R(A(mw),{value:e.newPlaceText,"onUpdate:value":o,type:`textarea`,autosize:{minRows:3},placeholder:`В начале было слово...`},null,8,[`value`]),ni(t.$slots,`default`,{},void 0,!0)]),_:3})])):Fa(``,!0),e.mode==`show-editor`?(F(),I(`div`,{key:2,class:`place-block-hover show-editor-block`,onClick:r[1]||=e=>s(`edit`)},[L(`p`,null,`[`+Ce(n.place.code)+`] - `+Ce(n.place.name),1),L(`div`,KN,[n.place.image?(F(),I(`div`,qN,[L(`div`,JN,[L(`img`,{src:n.place.image,class:`message-image`},null,8,YN)])])):Fa(``,!0),z(` `+Ce(n.place.text),1)]),(F(!0),I(_a,null,ti(n.place.doors,e=>(F(),I(`div`,{key:e.code,class:`door-block`},[z(Ce(e.name)+` `,1),(F(!0),I(_a,null,ti(e.keys,e=>(F(),I(`span`,XN,[R(A(nN),{class:`lock-icon`},{default:M(()=>[R(A(yM))]),_:1}),z(` `+Ce(e.name),1)]))),256))]))),128)),(F(!0),I(_a,null,ti(n.place.applications,e=>(F(),I(`div`,{key:e.name,class:`application-block`},` Приложение: `+Ce(e.name),1))),128)),L(`p`,ZN,[e.place.hidden?(F(),I(`span`,QN,` Скрытая точка `)):Fa(``,!0),(F(!0),I(_a,null,ti(e.place.keys,e=>(F(),I(`span`,$N,[R(A(nN),{class:`lock-icon`},{default:M(()=>[R(A(WN))]),_:1}),z(` `+Ce(e.name),1)]))),256))])])):Fa(``,!0),e.mode==`edit`?(F(),I(`div`,eP,[R(A(vD),{vertical:``},{default:M(()=>[R(A(gw),null,{default:M(()=>[R(A(mw),{style:{width:`20%`},value:n.place.code,"onUpdate:value":r[2]||=e=>n.place.code=e,type:`text`,placeholder:`Ы-1`},null,8,[`value`]),R(A(mw),{style:{width:`80%`},value:n.place.name,"onUpdate:value":r[3]||=e=>n.place.name=e,type:`text`,placeholder:`Дом №Ы`},null,8,[`value`])]),_:1}),R(A(mw),{value:n.place.text,"onUpdate:value":r[4]||=e=>n.place.text=e,type:`textarea`,autosize:{minRows:3},placeholder:`В начале было слово...`},null,8,[`value`]),r[22]||=L(`p`,{class:`settings-header`},`Картинка`,-1),R(A(mw),{value:n.place.image,"onUpdate:value":r[5]||=e=>n.place.image=e,type:`text`,placeholder:`Не задано`,disabled:``},null,8,[`value`]),R(A(hA),{"directory-dnd":``,max:1,"file-list":n.place.fileList,"onUpdate:fileList":r[6]||=e=>n.place.fileList=e},{default:M(()=>[R(A(Bk),null,{default:M(()=>[R(A(Lk),{style:{"font-size":`16px`}},{default:M(()=>[...r[12]||=[z(` Щелкните или перетащите файл в эту область для загрузки `,-1)]]),_:1})]),_:1})]),_:1},8,[`file-list`]),R(A(wk),{value:n.place.hidden,"onUpdate:value":r[7]||=e=>n.place.hidden=e},{checked:M(()=>[...r[13]||=[z(` Скрытая точка `,-1)]]),unchecked:M(()=>[...r[14]||=[z(` Обычная точка `,-1)]]),_:1},8,[`value`]),r[23]||=z(` Улики `,-1),R(A(dD),{value:n.place.applications,"onUpdate:value":r[8]||=e=>n.place.applications=e,"on-create":c},{"create-button-default":M(()=>[...r[15]||=[z(` Добавить улику `,-1)]]),default:M(({value:e})=>[L(`div`,tP,[R(A(mw),{value:e.name,"onUpdate:value":t=>e.name=t,type:`text`,placeholder:`Название`},null,8,[`value`,`onUpdate:value`])])]),_:1},8,[`value`]),r[24]||=z(` Действия `,-1),R(A(dD),{value:n.place.doors,"onUpdate:value":r[9]||=e=>n.place.doors=e,"on-create":l},{"create-button-default":M(()=>[...r[16]||=[z(` Добавить действие `,-1)]]),action:M(({index:e,create:t,remove:n})=>[L(`div`,nP,[R(d,{onClick:()=>t(e),class:`plus-minus-buttons`},{default:M(()=>[...r[17]||=[z(`+`,-1)]]),_:1},8,[`onClick`]),R(d,{disabled:``,onClick:()=>n(e),class:`plus-minus-buttons`},{default:M(()=>[...r[18]||=[z(`-`,-1)]]),_:1},8,[`onClick`])])]),default:M(({value:e})=>[L(`div`,rP,[L(`div`,iP,[R(A(gw),null,{default:M(()=>[R(A(mw),{style:{width:`30%`},value:e.code,"onUpdate:value":t=>e.code=t,type:`text`,placeholder:`Код`},null,8,[`value`,`onUpdate:value`]),R(A(mw),{style:{width:`70%`},value:e.name,"onUpdate:value":t=>e.name=t,type:`text`,placeholder:`Название`},null,8,[`value`,`onUpdate:value`])]),_:2},1024),r[20]||=L(`p`,{class:`need-keys-text`},`Требуемые ключи`,-1),L(`div`,aP,[R(A(dD),{value:e.keys,"onUpdate:value":t=>e.keys=t,"on-create":u},{"create-button-default":M(()=>[...r[19]||=[z(` Добавить ключ `,-1)]]),default:M(({value:e})=>[L(`div`,oP,[R(A(mw),{value:e.name,"onUpdate:value":t=>e.name=t,type:`text`,placeholder:`Название`},null,8,[`value`,`onUpdate:value`])])]),_:1},8,[`value`,`onUpdate:value`])])])])]),_:1},8,[`value`]),r[25]||=z(` Получаемые ключи `,-1),R(A(dD),{value:n.place.keys,"onUpdate:value":r[10]||=e=>n.place.keys=e,"on-create":u},{"create-button-default":M(()=>[...r[21]||=[z(` Добавить ключ `,-1)]]),default:M(({value:e})=>[L(`div`,sP,[R(A(mw),{value:e.name,"onUpdate:value":t=>e.name=t,type:`text`,placeholder:`Название`},null,8,[`value`,`onUpdate:value`])])]),_:1},8,[`value`]),L(`div`,cP,[ni(t.$slots,`default`,{},void 0,!0)])]),_:3})])):Fa(``,!0)],64)}}}),[[`__scopeId`,`data-v-92fb8bbd`]]),uP={class:`center-block-custom-big`},dP={class:`places-container`},fP={class:`settings-block`},pP=mN(P({__name:`ScenariosEditorPage`,setup(e){let t=cN(),n=PA().params.id,r=k(!1),i=k(``),a=JE(),o=k([]),s=k({id:void 0,name:void 0,story:void 0,author:void 0,updatedAt:void 0,createdAt:void 0,publishedAt:void 0});async function c(e){let n=await t.GetScenario({id:e});if(n.error!=``){a.error(n.error);return}s.value=n.scenario,s.value.story?.places?.forEach(e=>{e.oldCode=e.code,e.mode=`show-editor`})}c(Number(n));async function l(e){let n=await t.DeleteScenario({id:e});if(n.error!=``){a.error(n.error);return}jP.push(`/scenarios`)}async function u(e,n){if(!e)return``;let r=await e.arrayBuffer(),i=new Uint8Array(r),o=await t.UploadFile({filename:n,data:f(i)});return o.error==``?o.filename||``:(a.error(o.error),``)}async function d(){let e=``;if(o.value.length>0){let t=o.value[0].file||null;if(t==null||(e=await u(t,`scenarios_`+s.value.id+`_`+t.name),e===``))return}let i=await t.UpdateScenario({id:s.value.id,name:s.value.name,description:s.value.description,image:e});if(i.error!=``){a.error(i.error);return}await c(Number(n)),r.value=!1}function f(e){let t=String.fromCharCode(...e);return btoa(t)}let p=k(``),m=k(``),h=k(``),g=k(`mini-add`);async function _(){let e=await t.AddScenarioPlace({id:s.value.id,place:{code:p.value,name:m.value,text:h.value,image:void 0,hidden:void 0,applications:void 0,doors:void 0,keys:void 0}});if(e.error!=``){a.error(e.error);return}await c(Number(n)),p.value=``,m.value=``,h.value=``,g.value=`add`}async function v(){p.value=``,m.value=``,h.value=``,g.value=`mini-add`}async function y(e,n){for(let r of n.doors||[])if(e.story?.places?.find(e=>e.code==r.code)==null){let n=await t.AddScenarioPlace({id:e.id,place:{code:r.code,name:r.name,text:void 0,image:void 0,hidden:!0,applications:void 0,doors:void 0,keys:void 0}});if(n.error!=``){a.error(n.error);return}}}async function b(e){await c(Number(n)),e.mode=`show-editor`}async function x(e){if(e.fileList&&e.fileList.length>0){let t=e.fileList[0].file||null;if(t==null)return;let n=await u(t,`scenarios_`+s.value.id+`_place_`+e.code+`_`+t.name);if(n===``)return;e.image=n}await y(s.value,e);let r=await t.UpdateScenarioPlace({id:s.value.id,code:e.oldCode,place:e});if(r.error!=``){a.error(r.error);return}await c(Number(n)),e.mode=`show-editor`}async function S(e){let r=await t.DeleteScenarioPlace({id:s.value.id,code:e.oldCode});if(r.error!=``){a.error(r.error);return}await c(Number(n))}return(e,t)=>(F(),I(_a,null,[L(`div`,uP,[L(`div`,dP,[L(`div`,fP,[z(` Точек: `+Ce(s.value.story?.places?.length)+` `,1),R(A(Zw),{quaternary:``,onClick:t[0]||=e=>r.value=!0,class:`settings-button`},{default:M(()=>[R(A(nN),{class:`settings-icon`},{default:M(()=>[R(A(HN))]),_:1}),t[16]||=z(` Настройки `,-1)]),_:1})]),R(lP,{mode:g.value,"onUpdate:mode":t[3]||=e=>g.value=e,newPlaceCode:p.value,"onUpdate:newPlaceCode":t[4]||=e=>p.value=e,newPlaceName:m.value,"onUpdate:newPlaceName":t[5]||=e=>m.value=e,newPlaceText:h.value,"onUpdate:newPlaceText":t[6]||=e=>h.value=e},{default:M(()=>[R(A(TD),{justify:`end`},{default:M(()=>[R(A(Zw),{onClick:t[1]||=e=>v()},{default:M(()=>[...t[17]||=[z(`Отмена`,-1)]]),_:1}),R(A(Zw),{onClick:t[2]||=e=>_(),disabled:!p.value},{default:M(()=>[...t[18]||=[z(`Добавить точку`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1},8,[`mode`,`newPlaceCode`,`newPlaceName`,`newPlaceText`]),(F(!0),I(_a,null,ti(s.value.story?.places,e=>(F(),Da(lP,{place:e,mode:e.mode,"onUpdate:mode":t=>e.mode=t,key:e.code},{default:M(()=>[R(A(TD),{justify:`end`},{default:M(()=>[R(A(Zw),{onClick:t=>S(e),type:`error`,ghost:``},{default:M(()=>[...t[19]||=[z(`Удалить`,-1)]]),_:1},8,[`onClick`]),R(A(Zw),{onClick:t=>b(e)},{default:M(()=>[...t[20]||=[z(`Отмена`,-1)]]),_:1},8,[`onClick`]),R(A(Zw),{onClick:t=>x(e)},{default:M(()=>[...t[21]||=[z(`Сохранить`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1032,[`place`,`mode`,`onUpdate:mode`]))),128))])]),R(A(NE),{show:r.value,"onUpdate:show":t[15]||=e=>r.value=e},{default:M(()=>[R(A(hT),{style:{width:`600px`},title:`Настройки сценария`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":M(()=>[R(A(Zw),{onClick:t[7]||=e=>r.value=!1},{default:M(()=>[...t[22]||=[z(` x `,-1)]]),_:1})]),footer:M(()=>[...t[32]||=[]]),default:M(()=>[R(A(vD),{vertical:``},{default:M(()=>[t[28]||=L(`p`,null,`Название`,-1),R(A(mw),{value:s.value.name,"onUpdate:value":t[8]||=e=>s.value.name=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`]),t[29]||=L(`p`,{class:`settings-header`},`Описание`,-1),R(A(mw),{value:s.value.description,"onUpdate:value":t[9]||=e=>s.value.description=e,type:`textarea`,placeholder:`Убийство пастуха...`},null,8,[`value`]),t[30]||=L(`p`,{class:`settings-header`},`Картинка`,-1),R(A(mw),{value:s.value.image,"onUpdate:value":t[10]||=e=>s.value.image=e,type:`text`,placeholder:`default_scenario.png`,disabled:``},null,8,[`value`]),R(A(hA),{"directory-dnd":``,max:1,"file-list":o.value,"onUpdate:fileList":t[11]||=e=>o.value=e},{default:M(()=>[R(A(Bk),null,{default:M(()=>[R(A(Lk),{style:{"font-size":`16px`}},{default:M(()=>[...t[23]||=[z(` Щелкните или перетащите файл в эту область для загрузки `,-1)]]),_:1})]),_:1})]),_:1},8,[`file-list`]),R(A(Zw),{onClick:t[12]||=e=>d(),ghost:``},{default:M(()=>[...t[24]||=[z(` Сохранить изменения `,-1)]]),_:1}),t[31]||=L(`hr`,{class:`settings-hr`},null,-1),L(`p`,null,[t[25]||=z(` Введите название сценария `,-1),R(A(Lk),{class:`name-text`,strong:``},{default:M(()=>[z(Ce(s.value.name),1)]),_:1}),t[26]||=z(` чтобы удалить его `,-1)]),R(A(mw),{value:i.value,"onUpdate:value":t[13]||=e=>i.value=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`]),R(A(Zw),{onClick:t[14]||=e=>l(s.value.id),type:`error`,ghost:``,disabled:i.value!=s.value.name},{default:M(()=>[...t[27]||=[z(` Удалить сценарий `,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`show`]),R(hN,{"add-logout":!0,active:`scenarios`})],64))}}),[[`__scopeId`,`data-v-de7db367`]]),mP=P({__name:`ScenariosEditorView`,setup(e){return(e,t)=>(F(),Da(pP))}}),hP={class:`center-block-custom-big content-block`},gP={class:`scenarios-container`},_P=[`onClick`],vP={class:`scenario-title`},yP=mN(P({__name:`ScenariosPage`,setup(e){let t=cN(),n=k([]),r=NA(),i=JE(),a=k(!1),o=k(``);async function s(){n.value=[];let e=await t.GetMyScenarios({});n.value=e.scenarios}async function c(e){let n=await t.AddScenario({name:e});if(n.error!=``){i.error(n.error);return}await l(n.id)}async function l(e){r.push(`/scenarios/`+e)}return s(),(e,t)=>(F(),I(_a,null,[L(`div`,hP,[L(`div`,gP,[L(`div`,{class:`scenario-block`,onClick:t[0]||=e=>a.value=!0},[...t[5]||=[L(`div`,{class:`scenario-image-block scenario-image-plus`},`+`,-1),L(`p`,{class:`scenario-title`},`Создать новый сценарий`,-1)]]),(F(!0),I(_a,null,ti(n.value,e=>(F(),I(`div`,{class:`scenario-block`,onClick:t=>l(e.id),key:e.id},[L(`div`,{class:`scenario-image-block scenario-image`,style:de({backgroundImage:`url(${e.image})`})},null,4),L(`p`,vP,Ce(e.name),1)],8,_P))),128))])]),R(A(NE),{show:a.value,"onUpdate:show":t[4]||=e=>a.value=e},{default:M(()=>[R(A(hT),{style:{width:`600px`},title:`Создание сценария`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":M(()=>[R(A(Zw),{onClick:t[1]||=e=>a.value=!1},{default:M(()=>[...t[6]||=[z(` x `,-1)]]),_:1})]),footer:M(()=>[R(A(Zw),{onClick:t[3]||=e=>c(o.value),disabled:o.value.length==0},{default:M(()=>[...t[7]||=[z(` Создать `,-1)]]),_:1},8,[`disabled`])]),default:M(()=>[R(A(mw),{value:o.value,"onUpdate:value":t[2]||=e=>o.value=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`])]),_:1})]),_:1},8,[`show`]),R(hN,{"add-logout":!0,active:`scenarios`})],64))}}),[[`__scopeId`,`data-v-b389c9aa`]]),bP=P({__name:`ScenariosView`,setup(e){return(e,t)=>(F(),Da(yP))}}),xP={};function SP(e,t){return`Пользовательское соглашение`}var CP=mN(xP,[[`render`,SP]]),wP={class:`center-block-custom content-block`},TP={class:`users-container`},EP={class:`user-field`},DP={class:`user-field`},OP={class:`user-field`},kP=mN(P({__name:`UsersPage`,setup(e){let t=cN(),n=JE(),r=k([]);async function i(){let e=await t.GetUsers({});if(e.error!=``){n.error(e.error);return}r.value=e.users}i();async function a(e,r){let a=await t.AddUserRole({id:e,role:r});if(a.error!=``){n.error(a.error);return}await i()}async function o(e,r){let a=await t.DeleteUserRole({id:e,role:r});if(a.error!=``){n.error(a.error);return}await i()}return(e,t)=>(F(),I(_a,null,[L(`div`,wP,[L(`div`,TP,[(F(!0),I(_a,null,ti(r.value,e=>(F(),I(`div`,{key:e.id,class:`user-block`},[L(`div`,EP,` Позывной: `+Ce(e.username),1),L(`div`,DP,` Почта: `+Ce(e.email),1),L(`div`,OP,[R(A(vD),null,{default:M(()=>[t[0]||=z(` Роли: `,-1),(F(!0),I(_a,null,ti(e.roles,e=>(F(),Da(A(LC),{bordered:!1,key:e},{default:M(()=>[z(Ce(e),1)]),_:2},1024))),128))]),_:2},1024)]),R(A(TD),{justify:`end`,class:`roles-buttons-block`},{default:M(()=>[e.roles?.includes(`author`)?(F(),Da(A(Zw),{key:1,onClick:t=>o(e.id,`author`)},{default:M(()=>[...t[2]||=[z(`Забрать роль автора`,-1)]]),_:1},8,[`onClick`])):(F(),Da(A(Zw),{key:0,onClick:t=>a(e.id,`author`)},{default:M(()=>[...t[1]||=[z(`Сделать автором`,-1)]]),_:1},8,[`onClick`])),e.roles?.includes(`organizer`)?(F(),Da(A(Zw),{key:3,onClick:t=>o(e.id,`organizer`)},{default:M(()=>[...t[4]||=[z(`Забрать роль организатора`,-1)]]),_:1},8,[`onClick`])):(F(),Da(A(Zw),{key:2,onClick:t=>a(e.id,`organizer`)},{default:M(()=>[...t[3]||=[z(`Сделать организатором`,-1)]]),_:1},8,[`onClick`]))]),_:2},1024)]))),128))])]),R(hN,{"add-logout":!0,active:`users`})],64))}}),[[`__scopeId`,`data-v-475b5dbd`]]),AP=P({__name:`UsersView`,setup(e){return(e,t)=>(F(),Da(kP))}}),jP=gM({history:Rj(`/`),routes:[{path:`/`,name:`home`,component:vN},{path:`/login`,name:`login`,component:PN},{path:`/office`,name:`office`,component:LN},{path:`/user-agreement`,name:`user-agreement`,component:CP},{path:`/privacy-policy`,name:`privacy-policy`,component:BN},{path:`/games`,name:`games`,component:_N},{path:`/scenarios`,name:`scenarios`,component:bP},{path:`/scenarios/:id`,name:`ScenariosEditorView`,component:mP},{path:`/users`,name:`users`,component:AP}]}),MP=As(_M);MP.use(Zs()),MP.use(jP),MP.mount(`#app`); \ No newline at end of file +`)}function IM(e){if(!e)return;let t=e.parentElement;t&&t.removeChild(e)}function LM(e){return document.querySelector(`style[cssr-id="${e}"]`)}function RM(e){let t=document.createElement(`style`);return t.setAttribute(`cssr-id`,e),t}window&&(window.__cssrContext={});function zM(e){let t=e.getAttribute(`mount-count`);return t===null?null:Number(t)}function BM(e,t){e.setAttribute(`mount-count`,String(t))}function VM(e,t,n,r){let{els:i}=t;if(n===void 0)i.forEach(IM),t.els=[];else{let e=LM(n);if(e&&i.includes(e)){let a=zM(e);r?a===null?console.error(`[css-render/unmount]: The style with target='${n}' is mounted in count mode.`):a<=1?(IM(e),t.els=i.filter(t=>t!==e)):BM(e,a-1):a===null?(IM(e),t.els=i.filter(t=>t!==e)):console.error(`[css-render/unmount]: The style with target='${n}' is mounted in no-count mode.`)}}}function HM(e,t){e.push(t)}function UM(e,t,n,r,i,a,o,s,c){if(o&&!c){if(n===void 0){console.error("[css-render/mount]: `id` is required in `boost` mode.");return}let i=window.__cssrContext;i[n]||(i[n]=!0,FM(t,e,r,o));return}let l,{els:u}=t,d;if(n===void 0&&(d=t.render(r),n=jc(d)),c){c(n,d??t.render(r));return}let f=LM(n);if(s||f===null){if(l=f===null?RM(n):f,d===void 0&&(d=t.render(r)),l.textContent=d,f!==null)return;if(i){let e=document.head.getElementsByTagName(`style`)[0]||null;document.head.insertBefore(l,e)}else document.head.appendChild(l);a&&BM(l,1),HM(u,l)}else{let e=zM(f);a?e===null?console.error(`[css-render/mount]: The style with id='${n}' has been mounted in no-count mode.`):BM(f,e+1):e!==null&&console.error(`[css-render/mount]: The style with id='${n}' has been mounted in count mode.`)}return f??l}function WM(e){return FM(this,this.instance,e)}function GM(e={}){let{target:t,id:n,ssr:r,props:i,count:a=!1,head:o=!1,boost:s=!1,force:c=!1}=e;return UM(this.instance,this,n??t,i,o,a,s,c,r)}function KM(e={}){let{id:t,target:n,delay:r=0,count:i=!1}=e;r===0?VM(this.instance,this,t??n,i):setTimeout(()=>VM(this.instance,this,t??n,i),r)}var qM=function(e,t,n,r){return{instance:e,$:t,props:n,children:r,els:[],render:WM,mount:GM,unmount:KM}},JM=function(e,t,n,r){return Array.isArray(t)?qM(e,{$:null},null,t):Array.isArray(n)?qM(e,t,null,n):Array.isArray(r)?qM(e,t,n,r):qM(e,t,n,null)};function YM(e={}){let t=null,n={c:((...e)=>JM(n,...e)),use:(e,...t)=>e.install(n,...t),find:LM,context:{},config:e,get __styleSheet(){if(!t){let e=document.createElement(`style`);return document.head.appendChild(e),t=document.styleSheets[document.styleSheets.length-1],t}return t}};return n}var{c:XM}=YM(),ZM=XM(`.xicon`,{width:`1em`,height:`1em`,display:`inline-flex`},[XM(`svg`,{width:`1em`,height:`1em`}),XM(`svg:not([fill])`,{fill:`currentColor`})]),QM=()=>{ZM.mount({id:`xicons-icon`})},$M={size:[String,Number],color:String,tag:String},eN=Symbol(`IconConfigInjection`),tN=`span`,nN=P({name:`Icon`,props:$M,setup(e,{slots:t}){let n=N(eN,null),r=B(()=>{let t=e.size??n?.size;if(t!==void 0)return typeof t==`number`||/^\d+$/.test(t)?`${t}px`:t}),i=B(()=>{let{color:t}=e;return t===void 0?n?n.color:void 0:t}),a=B(()=>{let{tag:t}=e;return t===void 0?n?.tag??tN:t});return Br(()=>{QM()}),()=>V(a.value,{class:`xicon`,style:{color:i.value,fontSize:r.value}},[ni(t,`default`)])}});function rN(e){return{Ping(t){let n=[],r=`api/test/ping`;return n.length>0&&(r+=`?${n.join(`&`)}`),e({path:r,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`Ping`})},Echo(t){let n=[];t.text&&n.push(`text=${encodeURIComponent(t.text.toString())}`);let r=`api/test/echo`;return n.length>0&&(r+=`?${n.join(`&`)}`),e({path:r,method:`POST`,body:null},{service:`EveningDetectiveServer`,method:`Echo`})},Signup(t){let n=JSON.stringify(t),r=[],i=`api/auth/signup`;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`POST`,body:n},{service:`EveningDetectiveServer`,method:`Signup`})},RefreshPassword(t){let n=JSON.stringify(t),r=[],i=`api/auth/refresh-password`;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`POST`,body:n},{service:`EveningDetectiveServer`,method:`RefreshPassword`})},Login(t){let n=JSON.stringify(t),r=[],i=`api/auth/login`;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`POST`,body:n},{service:`EveningDetectiveServer`,method:`Login`})},Refresh(t){let n=JSON.stringify(t),r=[],i=`api/auth/refresh`;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`POST`,body:n},{service:`EveningDetectiveServer`,method:`Refresh`})},GetUsers(t){let n=[],r=`api/users`;return n.length>0&&(r+=`?${n.join(`&`)}`),e({path:r,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`GetUsers`})},GetUserById(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/users/${t.id}`,r=[],i=n;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`GetUserById`})},GetMe(t){let n=[],r=`api/users/me`;return n.length>0&&(r+=`?${n.join(`&`)}`),e({path:r,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`GetMe`})},AddUserRole(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/users/${t.id}/role/add`,r=JSON.stringify(t),i=[],a=n;return i.length>0&&(a+=`?${i.join(`&`)}`),e({path:a,method:`POST`,body:r},{service:`EveningDetectiveServer`,method:`AddUserRole`})},DeleteUserRole(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/users/${t.id}/role/delete`,r=JSON.stringify(t),i=[],a=n;return i.length>0&&(a+=`?${i.join(`&`)}`),e({path:a,method:`POST`,body:r},{service:`EveningDetectiveServer`,method:`DeleteUserRole`})},GetPermissions(t){let n=[],r=`api/ui/permissions`;return n.length>0&&(r+=`?${n.join(`&`)}`),e({path:r,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`GetPermissions`})},UploadFile(t){let n=JSON.stringify(t),r=[],i=`api/files/upload`;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`POST`,body:n},{service:`EveningDetectiveServer`,method:`UploadFile`})},DownloadFile(t){if(!t.filename)throw Error(`missing required field request.filename`);let n=`api/files/${t.filename}`,r=[],i=n;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`DownloadFile`})},AddScenario(t){let n=JSON.stringify(t),r=[],i=`api/scenario`;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`POST`,body:n},{service:`EveningDetectiveServer`,method:`AddScenario`})},GetMyScenarios(t){let n=[],r=`api/my-scenarios`;return n.length>0&&(r+=`?${n.join(`&`)}`),e({path:r,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`GetMyScenarios`})},GetScenario(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/scenarios/${t.id}`,r=[],i=n;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`GET`,body:null},{service:`EveningDetectiveServer`,method:`GetScenario`})},UpdateScenario(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/scenarios/${t.id}`,r=JSON.stringify(t),i=[],a=n;return i.length>0&&(a+=`?${i.join(`&`)}`),e({path:a,method:`PUT`,body:r},{service:`EveningDetectiveServer`,method:`UpdateScenario`})},DeleteScenario(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/scenarios/${t.id}`,r=[],i=n;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`DELETE`,body:null},{service:`EveningDetectiveServer`,method:`DeleteScenario`})},AddScenarioPlace(t){if(!t.id)throw Error(`missing required field request.id`);let n=`api/scenarios/${t.id}/places`,r=JSON.stringify(t),i=[],a=n;return i.length>0&&(a+=`?${i.join(`&`)}`),e({path:a,method:`POST`,body:r},{service:`EveningDetectiveServer`,method:`AddScenarioPlace`})},UpdateScenarioPlace(t){if(!t.id)throw Error(`missing required field request.id`);if(!t.code)throw Error(`missing required field request.code`);let n=`api/scenarios/${t.id}/places/${t.code}`,r=JSON.stringify(t),i=[],a=n;return i.length>0&&(a+=`?${i.join(`&`)}`),e({path:a,method:`PUT`,body:r},{service:`EveningDetectiveServer`,method:`UpdateScenarioPlace`})},DeleteScenarioPlace(t){if(!t.id)throw Error(`missing required field request.id`);if(!t.code)throw Error(`missing required field request.code`);let n=`api/scenarios/${t.id}/places/${t.code}`,r=[],i=n;return r.length>0&&(i+=`?${r.join(`&`)}`),e({path:i,method:`DELETE`,body:null},{service:`EveningDetectiveServer`,method:`DeleteScenarioPlace`})}}}function iN(e){return rN(aN(e))}function aN(e){return async t=>{let n=`${oN()}/${t.path}`,r={"Content-Type":`application/json`},i=e?.();i&&(r.Authorization=`Bearer ${i}`);let a=await fetch(n,{method:t.method,headers:r,body:t.body});if(a.status==401)throw Error(`unauthorized`);return await a.json()}}function oN(){return`https://evening-detective.crabs-games.art`}var sN=dc(`auth`,()=>{let e=k(null),t=k(null),n=k(null),r=k(!1),i=k(null),a=B(()=>!!e.value),o=B(()=>n.value?.username||``),s=B(()=>n.value?.roles||[]);function c(){let n=localStorage.getItem(`accessToken`),r=localStorage.getItem(`refreshToken`);n&&(e.value=n,t.value=r,u())}function l(){return e.value}async function u(){if(e.value)try{let e=await iN(l).GetMe({});if(e.error){i.value=e.error;return}e.user&&(n.value=e.user)}catch(e){console.error(`Failed to fetch user:`,e),e instanceof Error&&e.message.includes(`401`)&&await h()}}async function d(n,a){r.value=!0,i.value=null;try{let r=await iN(l).Login({email:n,password:a});return r.error?(i.value=r.error,!1):r.accessToken?(e.value=r.accessToken,t.value=r.refreshToken||null,localStorage.setItem(`accessToken`,r.accessToken),r.refreshToken&&localStorage.setItem(`refreshToken`,r.refreshToken),await u(),!0):!1}catch(e){return i.value=e instanceof Error?e.message:`Login failed`,!1}finally{r.value=!1}}async function f(){if(!t.value)return!1;try{let n=await iN(l).Refresh({refreshToken:t.value});return n.error||!n.accessToken?!1:(e.value=n.accessToken,t.value=n.refreshToken||null,localStorage.setItem(`accessToken`,n.accessToken),n.refreshToken&&localStorage.setItem(`refreshToken`,n.refreshToken),!0)}catch{return!1}}async function p(e,t){r.value=!0,i.value=null;try{let n=await iN(l).Signup({username:e,email:t});return n.error?(i.value=n.error,!1):!0}catch(e){return i.value=e instanceof Error?e.message:`Signup failed`,!1}finally{r.value=!1}}async function m(e){r.value=!0,i.value=null;try{let t=await iN(l).RefreshPassword({email:e});return t.error?(i.value=t.error,!1):!0}catch(e){return i.value=e instanceof Error?e.message:`Password reset failed`,!1}finally{r.value=!1}}async function h(){e.value=null,t.value=null,n.value=null,i.value=null,localStorage.removeItem(`accessToken`),localStorage.removeItem(`refreshToken`)}function g(e){return s.value.includes(e)}function _(e){return e.some(e=>s.value.includes(e))}return{accessToken:e,refreshToken:t,user:n,isLoading:r,error:i,isAuthenticated:a,username:o,userRoles:s,initFromStorage:c,getToken:l,login:d,signup:p,refreshPassword:m,logout:h,fetchUser:u,refreshTokenAction:f,hasRole:g,hasAnyRole:_}});function cN(){let e=sN();return lN(e.refreshTokenAction,e.getToken)}function lN(e,t){return rN(uN(e,aN(t)))}function uN(e,t){return async n=>{try{return await t(n)}catch{return await e(),await t(n)}}}var dN={class:`menu-block`},fN={class:`right-group`},pN=P({__name:`HeaderMenu`,props:{addLogin:{type:Boolean,required:!1},addLogout:{type:Boolean,required:!1},active:{type:String,required:!1}},setup(e){let t=e,n=sN();n.initFromStorage();let r=NA(),i=cN(),a=k([]);async function o(){a.value=[];let e=await i.GetPermissions({});a.value=e.permissions}o();function s(e){return a.value.includes(e)}let c=()=>{r.push(`/login`)},l=()=>{n.logout(),r.push(`/login`)},u=k(!1);return(e,i)=>(F(),I(`div`,dN,[A(n).hasRole(`user`)?(F(),I(`div`,{key:0,onClick:i[0]||=e=>u.value=!u.value,class:`burger-button`},[R(A(nN),{class:`burger-icon`,size:`28`},{default:M(()=>[R(A(xM))]),_:1})])):Fa(``,!0),L(`div`,{class:ge([`left-group menu-buttons-block`,u.value?``:`menu-buttons-block-active`])},[A(n).hasRole(`user`)?(F(),I(`div`,{key:0,class:ge([`menu-item-block`,{active:t.active==`office`}]),onClick:i[1]||=e=>A(r).push(`/office`)},` Кабинет `,2)):Fa(``,!0),s(`games_page`)?(F(),I(`div`,{key:1,class:ge([`menu-item-block`,{active:t.active==`games`}]),onClick:i[2]||=e=>A(r).push(`/games`)},` Игры `,2)):Fa(``,!0),s(`scenarios_page`)?(F(),I(`div`,{key:2,class:ge([`menu-item-block`,{active:t.active==`scenarios`}]),onClick:i[3]||=e=>A(r).push(`/scenarios`)},` Мои сценарии `,2)):Fa(``,!0),s(`users_page`)?(F(),I(`div`,{key:3,class:ge([`menu-item-block`,{active:t.active==`users`}]),onClick:i[4]||=e=>A(r).push(`/users`)},` Пользователи `,2)):Fa(``,!0)],2),L(`div`,fN,[t.addLogin?(F(),I(`div`,{key:0,class:`menu-item-block right`,onClick:c},` Войти `)):Fa(``,!0),t.addLogout?(F(),I(`div`,{key:1,class:`menu-item-block right`,onClick:l},`Выйти`)):Fa(``,!0)])]))}}),mN=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},hN=mN(pN,[[`__scopeId`,`data-v-39cfef67`]]),gN=P({__name:`GamesPage`,setup(e){return(e,t)=>(F(),I(_a,null,[t[0]||=L(`div`,{class:`center-block-custom content-block`},`Игры`,-1),R(hN,{"add-logout":!0,active:`games`})],64))}}),_N=P({__name:`GamesView`,setup(e){return(e,t)=>(F(),Da(gN))}}),vN=P({__name:`HomeView`,setup(e){return(e,t)=>(F(),I(_a,null,[t[0]||=L(`div`,{class:`center-block-custom content-block center-middle-block-custom height80`},[L(`div`,null,[L(`h1`,{class:`font-text`},`Вечерний детектив`),L(`h3`,{class:`font-text`},`Дело №0`),L(`p`,{class:`content-text`},` Поиграем? `)])],-1),R(hN,{"add-login":!0})],64))}}),yN={class:`center-block-custom content-block center-middle-block-custom height80`},bN={class:`form-button-wrapper`},xN={class:`form-label`},SN={key:0},CN={key:1},wN={class:`form-label`},TN={class:`form-button-wrapper`},EN={class:`form-label`},DN={key:0},ON={key:1},kN={class:`form-button-wrapper`},AN={class:`form-label`},jN={key:0},MN={key:1},NN=mN(P({__name:`LoginPage`,setup(e){let t=sN(),n=NA(),r=JE(),i=k(``),a=k(``),o=k(``),s=k(!1),c=B(()=>[`@mail.ru`,`@yandex.ru`,`@gmail.com`].map(e=>{let t=a.value.split(`@`)[0];return{label:t+e,value:t+e}}));async function l(){if(!await t.login(a.value,o.value)&&t.error!=null){r.error(t.error);return}n.push(`/office`)}async function u(){if(s.value){if(!await t.signup(i.value,a.value)&&t.error!=null){r.error(t.error);return}r.info(`Пароль отправлен на почту`)}}async function d(){if(!await t.refreshPassword(a.value)&&t.error!=null){r.error(t.error);return}r.info(`Пароль отправлен на почту`)}return(e,n)=>(F(),I(`div`,yN,[R(A(hT),{style:{"margin-bottom":`16px`},class:`sign-card`},{default:M(()=>[R(A(jk),{type:`line`,animated:``},{default:M(()=>[R(A(Dk),{name:`signin`,tab:`Вход`},{default:M(()=>[R(A(vD),{vertical:``},{default:M(()=>[n[6]||=L(`div`,{class:`form-label`},`Почта`,-1),R(A(Ew),{value:a.value,"onUpdate:value":n[0]||=e=>a.value=e,"input-props":{autocomplete:`disabled`},options:c.value,placeholder:`detective@mail.ru`,clearable:``},null,8,[`value`,`options`]),n[7]||=L(`div`,{class:`form-label`},`Пароль`,-1),R(A(mw),{value:o.value,"onUpdate:value":n[1]||=e=>o.value=e,type:`password`,placeholder:`********`},null,8,[`value`]),L(`div`,bN,[L(`div`,xN,[R(A(Zw),{onClick:l,disabled:a.value.length==0||o.value.length==0},{default:M(()=>[A(t).isLoading?(F(),I(`span`,CN,` Подождите... `)):(F(),I(`span`,SN,` Вход `))]),_:1},8,[`disabled`])])])]),_:1})]),_:1}),R(A(Dk),{name:`signup`,tab:`Регистрация`},{default:M(()=>[R(A(vD),{vertical:``},{default:M(()=>[n[9]||=L(`div`,{class:`form-label`},`Позывной`,-1),R(A(mw),{value:i.value,"onUpdate:value":n[2]||=e=>i.value=e,type:`text`,placeholder:`Шерлок`},null,8,[`value`]),n[10]||=L(`div`,{class:`form-label`},`Почта`,-1),R(A(Ew),{value:a.value,"onUpdate:value":n[3]||=e=>a.value=e,"input-props":{autocomplete:`disabled`},options:c.value,placeholder:`detective@mail.ru`,clearable:``},null,8,[`value`,`options`]),L(`div`,wN,[R(A(OT),{checked:s.value,"onUpdate:checked":n[4]||=e=>s.value=e},{default:M(()=>[...n[8]||=[z(` Я согласен с `,-1),L(`a`,{href:`/user-agreement`,target:`_blank`,class:`docs-link`},`пользовательским соглашением`,-1),L(`br`,null,null,-1),z(` и `,-1),L(`a`,{href:`/privacy-policy`,target:`_blank`,class:`docs-link`},`соглашением о персональных данных`,-1)]]),_:1},8,[`checked`])]),L(`div`,TN,[L(`div`,EN,[R(A(Zw),{onClick:u,disabled:i.value.length==0||o.value.length==0||!s.value},{default:M(()=>[A(t).isLoading?(F(),I(`span`,ON,` Подождите... `)):(F(),I(`span`,DN,` Регистрация `))]),_:1},8,[`disabled`])])])]),_:1})]),_:1}),R(A(Dk),{name:`new-password`,tab:`Новый пароль`},{default:M(()=>[R(A(vD),{vertical:``},{default:M(()=>[n[11]||=L(`div`,{class:`form-label`},`Почта`,-1),R(A(Ew),{value:a.value,"onUpdate:value":n[5]||=e=>a.value=e,"input-props":{autocomplete:`disabled`},options:c.value,placeholder:`detective@mail.ru`,clearable:``},null,8,[`value`,`options`]),L(`div`,kN,[L(`div`,AN,[R(A(Zw),{onClick:d,disabled:a.value.length==0},{default:M(()=>[A(t).isLoading?(F(),I(`span`,MN,` Подождите... `)):(F(),I(`span`,jN,` Прислать новый пароль `))]),_:1},8,[`disabled`])])])]),_:1})]),_:1})]),_:1})]),_:1})]))}}),[[`__scopeId`,`data-v-c1fd645b`]]),PN=P({__name:`LoginView`,setup(e){return(e,t)=>(F(),Da(NN))}}),FN={class:`center-block-custom content-block`},IN=P({__name:`OfficePage`,setup(e){let t=sN(),n=cN(),r=k([]);async function i(){r.value=[];let e=await n.GetPermissions({});r.value=e.permissions}return i(),(e,n)=>(F(),I(_a,null,[L(`div`,FN,[L(`p`,null,`Доброго времени суток, `+Ce(A(t).username)+`.`,1)]),R(hN,{"add-logout":!0,active:`office`})],64))}}),LN=P({__name:`OfficeView`,setup(e){return(e,t)=>(F(),Da(IN))}}),RN={};function zN(e,t){return`Соглашением о персональных данных`}var BN=mN(RN,[[`render`,zN]]),VN={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},HN=P({name:`Settings`,render:function(e,t){return F(),I(`svg`,VN,t[0]||=[L(`path`,{d:`M27 16.76V16v-.77l1.92-1.68A2 2 0 0 0 29.3 11l-2.36-4a2 2 0 0 0-1.73-1a2 2 0 0 0-.64.1l-2.43.82a11.35 11.35 0 0 0-1.31-.75l-.51-2.52a2 2 0 0 0-2-1.61h-4.68a2 2 0 0 0-2 1.61l-.51 2.52a11.48 11.48 0 0 0-1.32.75l-2.38-.86A2 2 0 0 0 6.79 6a2 2 0 0 0-1.73 1L2.7 11a2 2 0 0 0 .41 2.51L5 15.24v1.53l-1.89 1.68A2 2 0 0 0 2.7 21l2.36 4a2 2 0 0 0 1.73 1a2 2 0 0 0 .64-.1l2.43-.82a11.35 11.35 0 0 0 1.31.75l.51 2.52a2 2 0 0 0 2 1.61h4.72a2 2 0 0 0 2-1.61l.51-2.52a11.48 11.48 0 0 0 1.32-.75l2.42.82a2 2 0 0 0 .64.1a2 2 0 0 0 1.73-1l2.28-4a2 2 0 0 0-.41-2.51zM25.21 24l-3.43-1.16a8.86 8.86 0 0 1-2.71 1.57L18.36 28h-4.72l-.71-3.55a9.36 9.36 0 0 1-2.7-1.57L6.79 24l-2.36-4l2.72-2.4a8.9 8.9 0 0 1 0-3.13L4.43 12l2.36-4l3.43 1.16a8.86 8.86 0 0 1 2.71-1.57L13.64 4h4.72l.71 3.55a9.36 9.36 0 0 1 2.7 1.57L25.21 8l2.36 4l-2.72 2.4a8.9 8.9 0 0 1 0 3.13L27.57 20z`,fill:`currentColor`},null,-1),L(`path`,{d:`M16 22a6 6 0 1 1 6-6a5.94 5.94 0 0 1-6 6zm0-10a3.91 3.91 0 0 0-4 4a3.91 3.91 0 0 0 4 4a3.91 3.91 0 0 0 4-4a3.91 3.91 0 0 0-4-4z`,fill:`currentColor`},null,-1)])}}),UN={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 24 24`},WN=P({name:`Key24Regular`,render:function(e,t){return F(),I(`svg`,UN,t[0]||=[L(`g`,{fill:`none`},[L(`path`,{d:`M18.25 7a1.25 1.25 0 1 1-2.5 0a1.25 1.25 0 0 1 2.5 0zM15.5 2.05A6.554 6.554 0 0 0 8.95 8.6c0 .387.05.76.11 1.104a.275.275 0 0 1-.07.244l-6.235 6.236a2.75 2.75 0 0 0-.806 1.944V20.3c0 .966.784 1.75 1.75 1.75h2.5a1.75 1.75 0 0 0 1.75-1.75v-1.25H9.7c.69 0 1.25-.56 1.25-1.25v-1.75h1.75a1.25 1.25 0 0 0 1.25-1.204c.496.128 1.02.204 1.55.204a6.554 6.554 0 0 0 6.55-6.55c0-3.631-2.953-6.45-6.55-6.45zM10.45 8.6a5.054 5.054 0 0 1 5.05-5.05c2.802 0 5.05 2.181 5.05 4.95a5.054 5.054 0 0 1-5.05 5.05c-.68 0-1.38-.171-2.005-.44a.75.75 0 0 0-1.046.69v.75H10.7c-.69 0-1.25.56-1.25 1.25v1.75H7.7c-.69 0-1.25.56-1.25 1.25v1.5a.25.25 0 0 1-.25.25H3.7a.25.25 0 0 1-.25-.25v-2.172c0-.331.132-.65.366-.884l6.236-6.235a1.774 1.774 0 0 0 .486-1.564a4.917 4.917 0 0 1-.088-.845z`,fill:`currentColor`})],-1)])}}),GN={key:1,class:`place-block`},KN={class:`message-content`},qN={key:0},JN={class:`message-image-border`},YN=[`src`],XN={class:`key-block`},ZN={class:`gray-block`},QN={key:0},$N={class:`key-block`},eP={key:3,class:`place-block`},tP={style:{display:`flex`,"align-items":`center`,width:`100%`}},nP={style:{display:`flex`,"flex-direction":`column`}},rP={style:{display:`flex`,"flex-direction":`column`,width:`100%`}},iP={class:`door-add-block`},aP={class:`door-field`},oP={style:{display:`flex`,"align-items":`center`,width:`100%`}},sP={style:{display:`flex`,"align-items":`center`,width:`100%`}},cP={class:`slot-block`},lP=mN(P({__name:`PlaceBlock`,props:{newPlaceCode:{type:String},newPlaceName:{type:String},newPlaceText:{type:String},place:{type:Object},mode:{type:String,required:!0}},emits:[`update:newPlaceCode`,`update:newPlaceName`,`update:newPlaceText`,`update:mode`],setup(e,{emit:t}){let n=e,r=t,i=e=>{r(`update:newPlaceCode`,e)},a=e=>{r(`update:newPlaceName`,e)},o=e=>{r(`update:newPlaceText`,e)},s=e=>{r(`update:mode`,e)};function c(){return{name:void 0,image:void 0}}function l(){return{code:void 0,name:void 0,keys:void 0}}function u(){return{name:void 0}}return(t,r)=>{let d=Zr(`n-button`);return F(),I(_a,null,[e.mode==`mini-add`?(F(),I(`div`,{key:0,class:`place-block-hover show-editor-block`,onClick:r[0]||=e=>s(`add`)},[...r[11]||=[L(`p`,{class:`place-image-plus`},`+`,-1)]])):Fa(``,!0),e.mode==`add`?(F(),I(`div`,GN,[R(A(vD),{vertical:``},{default:M(()=>[R(A(gw),null,{default:M(()=>[R(A(mw),{style:{width:`20%`},value:e.newPlaceCode,"onUpdate:value":i,type:`text`,placeholder:`Ы-1`},null,8,[`value`]),R(A(mw),{style:{width:`80%`},value:e.newPlaceName,"onUpdate:value":a,type:`text`,placeholder:`Дом №Ы`},null,8,[`value`])]),_:1}),R(A(mw),{value:e.newPlaceText,"onUpdate:value":o,type:`textarea`,autosize:{minRows:3},placeholder:`В начале было слово...`},null,8,[`value`]),ni(t.$slots,`default`,{},void 0,!0)]),_:3})])):Fa(``,!0),e.mode==`show-editor`?(F(),I(`div`,{key:2,class:`place-block-hover show-editor-block`,onClick:r[1]||=e=>s(`edit`)},[L(`p`,null,`[`+Ce(n.place.code)+`] - `+Ce(n.place.name),1),L(`div`,KN,[n.place.image?(F(),I(`div`,qN,[L(`div`,JN,[L(`img`,{src:n.place.image,class:`message-image`},null,8,YN)])])):Fa(``,!0),z(` `+Ce(n.place.text),1)]),(F(!0),I(_a,null,ti(n.place.doors,e=>(F(),I(`div`,{key:e.code,class:`door-block`},[z(Ce(e.name)+` `,1),(F(!0),I(_a,null,ti(e.keys,e=>(F(),I(`span`,XN,[R(A(nN),{class:`lock-icon`},{default:M(()=>[R(A(yM))]),_:1}),z(` `+Ce(e.name),1)]))),256))]))),128)),(F(!0),I(_a,null,ti(n.place.applications,e=>(F(),I(`div`,{key:e.name,class:`application-block`},` Приложение: `+Ce(e.name),1))),128)),L(`p`,ZN,[e.place.hidden?(F(),I(`span`,QN,` Скрытая точка `)):Fa(``,!0),(F(!0),I(_a,null,ti(e.place.keys,e=>(F(),I(`span`,$N,[R(A(nN),{class:`lock-icon`},{default:M(()=>[R(A(WN))]),_:1}),z(` `+Ce(e.name),1)]))),256))])])):Fa(``,!0),e.mode==`edit`?(F(),I(`div`,eP,[R(A(vD),{vertical:``},{default:M(()=>[R(A(gw),null,{default:M(()=>[R(A(mw),{style:{width:`20%`},value:n.place.code,"onUpdate:value":r[2]||=e=>n.place.code=e,type:`text`,placeholder:`Ы-1`},null,8,[`value`]),R(A(mw),{style:{width:`80%`},value:n.place.name,"onUpdate:value":r[3]||=e=>n.place.name=e,type:`text`,placeholder:`Дом №Ы`},null,8,[`value`])]),_:1}),R(A(mw),{value:n.place.text,"onUpdate:value":r[4]||=e=>n.place.text=e,type:`textarea`,autosize:{minRows:3},placeholder:`В начале было слово...`},null,8,[`value`]),r[22]||=L(`p`,{class:`settings-header`},`Картинка`,-1),R(A(mw),{value:n.place.image,"onUpdate:value":r[5]||=e=>n.place.image=e,type:`text`,placeholder:`Не задано`,disabled:``},null,8,[`value`]),R(A(hA),{"directory-dnd":``,max:1,"file-list":n.place.fileList,"onUpdate:fileList":r[6]||=e=>n.place.fileList=e},{default:M(()=>[R(A(Bk),null,{default:M(()=>[R(A(Lk),{style:{"font-size":`16px`}},{default:M(()=>[...r[12]||=[z(` Щелкните или перетащите файл в эту область для загрузки `,-1)]]),_:1})]),_:1})]),_:1},8,[`file-list`]),R(A(wk),{value:n.place.hidden,"onUpdate:value":r[7]||=e=>n.place.hidden=e},{checked:M(()=>[...r[13]||=[z(` Скрытая точка `,-1)]]),unchecked:M(()=>[...r[14]||=[z(` Обычная точка `,-1)]]),_:1},8,[`value`]),r[23]||=z(` Улики `,-1),R(A(dD),{value:n.place.applications,"onUpdate:value":r[8]||=e=>n.place.applications=e,"on-create":c},{"create-button-default":M(()=>[...r[15]||=[z(` Добавить улику `,-1)]]),default:M(({value:e})=>[L(`div`,tP,[R(A(mw),{value:e.name,"onUpdate:value":t=>e.name=t,type:`text`,placeholder:`Название`},null,8,[`value`,`onUpdate:value`])])]),_:1},8,[`value`]),r[24]||=z(` Действия `,-1),R(A(dD),{value:n.place.doors,"onUpdate:value":r[9]||=e=>n.place.doors=e,"on-create":l},{"create-button-default":M(()=>[...r[16]||=[z(` Добавить действие `,-1)]]),action:M(({index:e,create:t,remove:n})=>[L(`div`,nP,[R(d,{onClick:()=>t(e),class:`plus-minus-buttons`},{default:M(()=>[...r[17]||=[z(`+`,-1)]]),_:1},8,[`onClick`]),R(d,{disabled:``,onClick:()=>n(e),class:`plus-minus-buttons`},{default:M(()=>[...r[18]||=[z(`-`,-1)]]),_:1},8,[`onClick`])])]),default:M(({value:e})=>[L(`div`,rP,[L(`div`,iP,[R(A(gw),null,{default:M(()=>[R(A(mw),{style:{width:`30%`},value:e.code,"onUpdate:value":t=>e.code=t,type:`text`,placeholder:`Код`},null,8,[`value`,`onUpdate:value`]),R(A(mw),{style:{width:`70%`},value:e.name,"onUpdate:value":t=>e.name=t,type:`text`,placeholder:`Название`},null,8,[`value`,`onUpdate:value`])]),_:2},1024),r[20]||=L(`p`,{class:`need-keys-text`},`Требуемые ключи`,-1),L(`div`,aP,[R(A(dD),{value:e.keys,"onUpdate:value":t=>e.keys=t,"on-create":u},{"create-button-default":M(()=>[...r[19]||=[z(` Добавить ключ `,-1)]]),default:M(({value:e})=>[L(`div`,oP,[R(A(mw),{value:e.name,"onUpdate:value":t=>e.name=t,type:`text`,placeholder:`Название`},null,8,[`value`,`onUpdate:value`])])]),_:1},8,[`value`,`onUpdate:value`])])])])]),_:1},8,[`value`]),r[25]||=z(` Получаемые ключи `,-1),R(A(dD),{value:n.place.keys,"onUpdate:value":r[10]||=e=>n.place.keys=e,"on-create":u},{"create-button-default":M(()=>[...r[21]||=[z(` Добавить ключ `,-1)]]),default:M(({value:e})=>[L(`div`,sP,[R(A(mw),{value:e.name,"onUpdate:value":t=>e.name=t,type:`text`,placeholder:`Название`},null,8,[`value`,`onUpdate:value`])])]),_:1},8,[`value`]),L(`div`,cP,[ni(t.$slots,`default`,{},void 0,!0)])]),_:3})])):Fa(``,!0)],64)}}}),[[`__scopeId`,`data-v-92fb8bbd`]]),uP={class:`center-block-custom-big`},dP={class:`places-container`},fP={class:`settings-block`},pP=mN(P({__name:`ScenariosEditorPage`,setup(e){let t=cN(),n=PA().params.id,r=k(!1),i=k(``),a=JE(),o=k([]),s=k({id:void 0,name:void 0,story:void 0,author:void 0,updatedAt:void 0,createdAt:void 0,publishedAt:void 0});async function c(e){let n=await t.GetScenario({id:e});if(n.error!=``){a.error(n.error);return}s.value=n.scenario,s.value.story?.places?.forEach(e=>{e.oldCode=e.code,e.mode=`show-editor`})}c(Number(n));async function l(e){let n=await t.DeleteScenario({id:e});if(n.error!=``){a.error(n.error);return}jP.push(`/scenarios`)}async function u(e,n){if(!e)return``;let r=await e.arrayBuffer(),i=new Uint8Array(r),o=await t.UploadFile({filename:n,data:f(i)});return o.error==``?o.filename||``:(a.error(o.error),``)}async function d(){let e=``;if(o.value&&o.value.length>0){let t=o.value[0].file||null;if(t==null||(e=await u(t,`scenarios_`+s.value.id+`_`+t.name),e===``))return}let i=await t.UpdateScenario({id:s.value.id,name:s.value.name,description:s.value.description,image:e});if(i.error!=``){a.error(i.error);return}await c(Number(n)),r.value=!1}function f(e){let t=String.fromCharCode(...e);return btoa(t)}let p=k(``),m=k(``),h=k(``),g=k(`mini-add`);async function _(){let e=await t.AddScenarioPlace({id:s.value.id,place:{code:p.value,name:m.value,text:h.value,image:void 0,hidden:void 0,applications:void 0,doors:void 0,keys:void 0}});if(e.error!=``){a.error(e.error);return}await c(Number(n)),p.value=``,m.value=``,h.value=``,g.value=`add`}async function v(){p.value=``,m.value=``,h.value=``,g.value=`mini-add`}async function y(e,n){for(let r of n.doors||[])if(e.story?.places?.find(e=>e.code==r.code)==null){let n=await t.AddScenarioPlace({id:e.id,place:{code:r.code,name:r.name,text:void 0,image:void 0,hidden:!0,applications:void 0,doors:void 0,keys:void 0}});if(n.error!=``){a.error(n.error);return}}}async function b(e){await c(Number(n)),e.mode=`show-editor`}async function x(e){if(e.fileList&&e.fileList.length>0){let t=e.fileList[0].file||null;if(t==null)return;let n=await u(t,`scenarios_`+s.value.id+`_place_`+e.code+`_`+t.name);if(n===``)return;e.image=n}await y(s.value,e);let r=await t.UpdateScenarioPlace({id:s.value.id,code:e.oldCode,place:e});if(r.error!=``){a.error(r.error);return}await c(Number(n)),e.mode=`show-editor`}async function S(e){let r=await t.DeleteScenarioPlace({id:s.value.id,code:e.oldCode});if(r.error!=``){a.error(r.error);return}await c(Number(n))}return(e,t)=>(F(),I(_a,null,[L(`div`,uP,[L(`div`,dP,[L(`div`,fP,[z(` Точек: `+Ce(s.value.story?.places?.length)+` `,1),R(A(Zw),{quaternary:``,onClick:t[0]||=e=>r.value=!0,class:`settings-button`},{default:M(()=>[R(A(nN),{class:`settings-icon`},{default:M(()=>[R(A(HN))]),_:1}),t[16]||=z(` Настройки `,-1)]),_:1})]),R(lP,{mode:g.value,"onUpdate:mode":t[3]||=e=>g.value=e,newPlaceCode:p.value,"onUpdate:newPlaceCode":t[4]||=e=>p.value=e,newPlaceName:m.value,"onUpdate:newPlaceName":t[5]||=e=>m.value=e,newPlaceText:h.value,"onUpdate:newPlaceText":t[6]||=e=>h.value=e},{default:M(()=>[R(A(TD),{justify:`end`},{default:M(()=>[R(A(Zw),{onClick:t[1]||=e=>v()},{default:M(()=>[...t[17]||=[z(`Отмена`,-1)]]),_:1}),R(A(Zw),{onClick:t[2]||=e=>_(),disabled:!p.value},{default:M(()=>[...t[18]||=[z(`Добавить точку`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1},8,[`mode`,`newPlaceCode`,`newPlaceName`,`newPlaceText`]),(F(!0),I(_a,null,ti(s.value.story?.places,e=>(F(),Da(lP,{place:e,mode:e.mode,"onUpdate:mode":t=>e.mode=t,key:e.code},{default:M(()=>[R(A(TD),{justify:`end`},{default:M(()=>[R(A(Zw),{onClick:t=>S(e),type:`error`,ghost:``},{default:M(()=>[...t[19]||=[z(`Удалить`,-1)]]),_:1},8,[`onClick`]),R(A(Zw),{onClick:t=>b(e)},{default:M(()=>[...t[20]||=[z(`Отмена`,-1)]]),_:1},8,[`onClick`]),R(A(Zw),{onClick:t=>x(e)},{default:M(()=>[...t[21]||=[z(`Сохранить`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1032,[`place`,`mode`,`onUpdate:mode`]))),128))])]),R(A(NE),{show:r.value,"onUpdate:show":t[15]||=e=>r.value=e},{default:M(()=>[R(A(hT),{style:{width:`600px`},title:`Настройки сценария`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":M(()=>[R(A(Zw),{onClick:t[7]||=e=>r.value=!1},{default:M(()=>[...t[22]||=[z(` x `,-1)]]),_:1})]),footer:M(()=>[...t[32]||=[]]),default:M(()=>[R(A(vD),{vertical:``},{default:M(()=>[t[28]||=L(`p`,null,`Название`,-1),R(A(mw),{value:s.value.name,"onUpdate:value":t[8]||=e=>s.value.name=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`]),t[29]||=L(`p`,{class:`settings-header`},`Описание`,-1),R(A(mw),{value:s.value.description,"onUpdate:value":t[9]||=e=>s.value.description=e,type:`textarea`,placeholder:`Убийство пастуха...`},null,8,[`value`]),t[30]||=L(`p`,{class:`settings-header`},`Картинка`,-1),R(A(mw),{value:s.value.image,"onUpdate:value":t[10]||=e=>s.value.image=e,type:`text`,placeholder:`default_scenario.png`,disabled:``},null,8,[`value`]),R(A(hA),{"directory-dnd":``,max:1,"file-list":o.value,"onUpdate:fileList":t[11]||=e=>o.value=e},{default:M(()=>[R(A(Bk),null,{default:M(()=>[R(A(Lk),{style:{"font-size":`16px`}},{default:M(()=>[...t[23]||=[z(` Щелкните или перетащите файл в эту область для загрузки `,-1)]]),_:1})]),_:1})]),_:1},8,[`file-list`]),R(A(Zw),{onClick:t[12]||=e=>d(),ghost:``},{default:M(()=>[...t[24]||=[z(` Сохранить изменения `,-1)]]),_:1}),t[31]||=L(`hr`,{class:`settings-hr`},null,-1),L(`p`,null,[t[25]||=z(` Введите название сценария `,-1),R(A(Lk),{class:`name-text`,strong:``},{default:M(()=>[z(Ce(s.value.name),1)]),_:1}),t[26]||=z(` чтобы удалить его `,-1)]),R(A(mw),{value:i.value,"onUpdate:value":t[13]||=e=>i.value=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`]),R(A(Zw),{onClick:t[14]||=e=>l(s.value.id),type:`error`,ghost:``,disabled:i.value!=s.value.name},{default:M(()=>[...t[27]||=[z(` Удалить сценарий `,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`show`]),R(hN,{"add-logout":!0,active:`scenarios`})],64))}}),[[`__scopeId`,`data-v-810fc02a`]]),mP=P({__name:`ScenariosEditorView`,setup(e){return(e,t)=>(F(),Da(pP))}}),hP={class:`center-block-custom-big content-block`},gP={class:`scenarios-container`},_P=[`onClick`],vP={class:`scenario-title`},yP=mN(P({__name:`ScenariosPage`,setup(e){let t=cN(),n=k([]),r=NA(),i=JE(),a=k(!1),o=k(``);async function s(){n.value=[];let e=await t.GetMyScenarios({});n.value=e.scenarios}async function c(e){let n=await t.AddScenario({name:e});if(n.error!=``){i.error(n.error);return}await l(n.id)}async function l(e){r.push(`/scenarios/`+e)}return s(),(e,t)=>(F(),I(_a,null,[L(`div`,hP,[L(`div`,gP,[L(`div`,{class:`scenario-block`,onClick:t[0]||=e=>a.value=!0},[...t[5]||=[L(`div`,{class:`scenario-image-block scenario-image-plus`},`+`,-1),L(`p`,{class:`scenario-title`},`Создать новый сценарий`,-1)]]),(F(!0),I(_a,null,ti(n.value,e=>(F(),I(`div`,{class:`scenario-block`,onClick:t=>l(e.id),key:e.id},[L(`div`,{class:`scenario-image-block scenario-image`,style:de({backgroundImage:`url(${e.image})`})},null,4),L(`p`,vP,Ce(e.name),1)],8,_P))),128))])]),R(A(NE),{show:a.value,"onUpdate:show":t[4]||=e=>a.value=e},{default:M(()=>[R(A(hT),{style:{width:`600px`},title:`Создание сценария`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":M(()=>[R(A(Zw),{onClick:t[1]||=e=>a.value=!1},{default:M(()=>[...t[6]||=[z(` x `,-1)]]),_:1})]),footer:M(()=>[R(A(Zw),{onClick:t[3]||=e=>c(o.value),disabled:o.value.length==0},{default:M(()=>[...t[7]||=[z(` Создать `,-1)]]),_:1},8,[`disabled`])]),default:M(()=>[R(A(mw),{value:o.value,"onUpdate:value":t[2]||=e=>o.value=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`])]),_:1})]),_:1},8,[`show`]),R(hN,{"add-logout":!0,active:`scenarios`})],64))}}),[[`__scopeId`,`data-v-b389c9aa`]]),bP=P({__name:`ScenariosView`,setup(e){return(e,t)=>(F(),Da(yP))}}),xP={};function SP(e,t){return`Пользовательское соглашение`}var CP=mN(xP,[[`render`,SP]]),wP={class:`center-block-custom content-block`},TP={class:`users-container`},EP={class:`user-field`},DP={class:`user-field`},OP={class:`user-field`},kP=mN(P({__name:`UsersPage`,setup(e){let t=cN(),n=JE(),r=k([]);async function i(){let e=await t.GetUsers({});if(e.error!=``){n.error(e.error);return}r.value=e.users}i();async function a(e,r){let a=await t.AddUserRole({id:e,role:r});if(a.error!=``){n.error(a.error);return}await i()}async function o(e,r){let a=await t.DeleteUserRole({id:e,role:r});if(a.error!=``){n.error(a.error);return}await i()}return(e,t)=>(F(),I(_a,null,[L(`div`,wP,[L(`div`,TP,[(F(!0),I(_a,null,ti(r.value,e=>(F(),I(`div`,{key:e.id,class:`user-block`},[L(`div`,EP,` Позывной: `+Ce(e.username),1),L(`div`,DP,` Почта: `+Ce(e.email),1),L(`div`,OP,[R(A(vD),null,{default:M(()=>[t[0]||=z(` Роли: `,-1),(F(!0),I(_a,null,ti(e.roles,e=>(F(),Da(A(LC),{bordered:!1,key:e},{default:M(()=>[z(Ce(e),1)]),_:2},1024))),128))]),_:2},1024)]),R(A(TD),{justify:`end`,class:`roles-buttons-block`},{default:M(()=>[e.roles?.includes(`author`)?(F(),Da(A(Zw),{key:1,onClick:t=>o(e.id,`author`)},{default:M(()=>[...t[2]||=[z(`Забрать роль автора`,-1)]]),_:1},8,[`onClick`])):(F(),Da(A(Zw),{key:0,onClick:t=>a(e.id,`author`)},{default:M(()=>[...t[1]||=[z(`Сделать автором`,-1)]]),_:1},8,[`onClick`])),e.roles?.includes(`organizer`)?(F(),Da(A(Zw),{key:3,onClick:t=>o(e.id,`organizer`)},{default:M(()=>[...t[4]||=[z(`Забрать роль организатора`,-1)]]),_:1},8,[`onClick`])):(F(),Da(A(Zw),{key:2,onClick:t=>a(e.id,`organizer`)},{default:M(()=>[...t[3]||=[z(`Сделать организатором`,-1)]]),_:1},8,[`onClick`]))]),_:2},1024)]))),128))])]),R(hN,{"add-logout":!0,active:`users`})],64))}}),[[`__scopeId`,`data-v-475b5dbd`]]),AP=P({__name:`UsersView`,setup(e){return(e,t)=>(F(),Da(kP))}}),jP=gM({history:Rj(`/`),routes:[{path:`/`,name:`home`,component:vN},{path:`/login`,name:`login`,component:PN},{path:`/office`,name:`office`,component:LN},{path:`/user-agreement`,name:`user-agreement`,component:CP},{path:`/privacy-policy`,name:`privacy-policy`,component:BN},{path:`/games`,name:`games`,component:_N},{path:`/scenarios`,name:`scenarios`,component:bP},{path:`/scenarios/:id`,name:`ScenariosEditorView`,component:mP},{path:`/users`,name:`users`,component:AP}]}),MP=As(_M);MP.use(Zs()),MP.use(jP),MP.mount(`#app`); \ No newline at end of file diff --git a/dist/assets/index-BTgENLBi.css b/dist/assets/index-Brba20IB.css similarity index 93% rename from dist/assets/index-BTgENLBi.css rename to dist/assets/index-Brba20IB.css index c67a260..47bd6a5 100644 --- a/dist/assets/index-BTgENLBi.css +++ b/dist/assets/index-Brba20IB.css @@ -1 +1 @@ -:root{--vt-c-white:#fff;--vt-c-white-soft:#f8f8f8;--vt-c-white-mute:#f2f2f2;--vt-c-black:#181818;--vt-c-black-soft:#222;--vt-c-black-mute:#282828;--vt-c-indigo:#2c3e50;--vt-c-divider-light-1:#3c3c3c4a;--vt-c-divider-light-2:#3c3c3c1f;--vt-c-divider-dark-1:#545454a6;--vt-c-divider-dark-2:#5454547a;--vt-c-text-light-1:var(--vt-c-indigo);--vt-c-text-light-2:#3c3c3ca8;--vt-c-text-dark-1:var(--vt-c-white);--vt-c-text-dark-2:#ebebeba3;--color-background:var(--vt-c-white);--color-background-soft:var(--vt-c-white-soft);--color-background-mute:var(--vt-c-white-mute);--color-border:var(--vt-c-divider-light-2);--color-border-hover:var(--vt-c-divider-light-1);--color-heading:var(--vt-c-text-light-1);--color-text:var(--vt-c-text-light-1);--section-gap:160px}@media (prefers-color-scheme:dark){:root{--color-background:var(--vt-c-black);--color-background-soft:var(--vt-c-black-soft);--color-background-mute:var(--vt-c-black-mute);--color-border:var(--vt-c-divider-dark-2);--color-border-hover:var(--vt-c-divider-dark-1);--color-heading:var(--vt-c-text-dark-1);--color-text:var(--vt-c-text-dark-2)}}*,:before,:after{box-sizing:border-box;margin:0;font-weight:400}body{min-height:100vh;color:#eee;background:var(--color-background);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scrollbar-width:none;background-color:#111;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:15px;line-height:1.6;transition:color .5s,background-color .5s;overflow:hidden}@font-face{font-family:font_old_typer;src:url(/assets/a_OldTyper-BsgRTrmO.ttf)}.center-message{text-align:center;justify-content:center;align-items:center;height:calc(100dvh - 100px);display:flex}.content-block{margin-top:70px;padding:20px}.height80{height:80vh}@media (width>=1024px){.center-block-custom{width:700px;margin:70px auto 0}.center-block-custom-big{width:1200px;margin:70px auto 0}.center-middle-block-custom{place-items:center;display:grid}.content-block{margin-top:70px;padding:20px 0}}.menu-block[data-v-39cfef67]{background-color:#222;justify-content:space-between;align-items:center;width:100%;height:70px;padding:20px;display:flex;position:fixed;top:0;left:0}.menu-item-block[data-v-39cfef67]{cursor:pointer;margin-left:10px;padding:5px;font-size:1.1em;display:inline-block}.menu-item-block[data-v-39cfef67]:hover{color:#63e2b7;opacity:.8}.right[data-v-39cfef67]{margin-left:auto}.active[data-v-39cfef67]{color:#63e2b7}@media (width>=1024px){.burger-button[data-v-39cfef67]{display:none}}@media (width<1024px){.menu-buttons-block[data-v-39cfef67]{background-color:#222;flex-direction:column;width:100%;padding-bottom:5px;display:flex;position:fixed;top:70px;left:0}.menu-buttons-block div[data-v-39cfef67]{padding:15px 5px}.menu-buttons-block-active[data-v-39cfef67]{position:relative;top:-1000px}.burger-icon[data-v-39cfef67]{position:relative;top:5px}}.font-text{font-family:font_old_typer}.content-text{float:right;position:relative;top:100px;right:0}@media (width>=1024px){.font-text{position:relative;left:-50px}.content-text{position:relative;top:100px;right:-50px}}.sign-card[data-v-c1fd645b]{background-color:#1d1d1d}.form-label[data-v-c1fd645b]{margin-top:10px}.form-button-wrapper[data-v-c1fd645b]{justify-content:center;display:flex}.docs-link[data-v-c1fd645b]{color:#45aa89}.docs-link[data-v-c1fd645b]:hover{color:#63e2b7}@media (width>=1024px){.sign-card[data-v-c1fd645b]{width:380px}}.place-block-hover[data-v-92fb8bbd],.place-block[data-v-92fb8bbd]{border:1px solid #444;border-radius:10px;margin:10px 0;padding:20px}.place-block-hover[data-v-92fb8bbd]:hover{color:#63e2b7}.place-image-plus[data-v-92fb8bbd]{justify-content:center;align-items:center;font-size:30px;display:flex}.show-editor-block[data-v-92fb8bbd]{cursor:pointer}.message-content[data-v-92fb8bbd]{white-space:pre-wrap}.gray-block[data-v-92fb8bbd]{color:#777;margin-top:5px}.application-block[data-v-92fb8bbd]{color:#deb887;margin-right:5px}.door-block[data-v-92fb8bbd]{color:#eee;background-color:#222;border-radius:5px;margin:10px 5px 10px 0;padding:5px 10px;display:inline-block}.door-add-block[data-v-92fb8bbd]{color:#eee;background-color:#222;border-radius:5px;padding:10px}.key-block[data-v-92fb8bbd]{color:gold;margin-left:10px}.lock-icon[data-v-92fb8bbd]{position:relative;top:2px}.door-field[data-v-92fb8bbd]{margin-top:10px}.need-keys-text[data-v-92fb8bbd]{color:gold;margin:15px 0 0;padding:0}.slot-block[data-v-92fb8bbd]{margin-top:10px}.plus-minus-buttons[data-v-92fb8bbd]{text-align:center;color:#eee;border:1px solid #444;border-radius:40px;margin:0 0 10px 5px;padding:0 13px;font-size:25px}.plus-minus-buttons[data-v-92fb8bbd]:hover{cursor:pointer;color:#63e2b7}.message-image-border[data-v-92fb8bbd]{float:left;background-image:url(/assets/paper_white-ZSlTzOTx.jpg);background-size:cover;width:40%;margin-right:15px;padding:7px;transform:rotate(-3deg);box-shadow:0 3px 15px #626262}.message-image[data-v-92fb8bbd]{width:100%}.settings-block[data-v-de7db367]{height:40px}.settings-button[data-v-de7db367]{float:right}.settings-icon[data-v-de7db367]{width:20px}.name-text[data-v-de7db367]{background-color:#ffffff1a;border-radius:3px;padding:3px}.settings-header[data-v-de7db367]{margin-top:20px}.settings-hr[data-v-de7db367]{margin:20px 0}.places-container[data-v-de7db367]{flex-flow:column;height:calc(100vh - 150px);margin-top:70px;padding:20px;display:flex;overflow-y:auto}@media (width>=1024px){.places-container[data-v-de7db367]{height:calc(100vh - 70px);padding:20px 250px}}.scenarios-container[data-v-b389c9aa]{flex-flow:wrap;justify-content:center;height:calc(100vh - 150px);padding:0;display:flex;overflow-y:auto}.scenario-block[data-v-b389c9aa]{cursor:pointer;width:160px;margin:10px}.scenario-block[data-v-b389c9aa]:hover{color:#63e2b7}.scenario-image-block[data-v-b389c9aa]{border-radius:10px;height:160px}.scenario-image-block[data-v-b389c9aa]:hover{color:#63e2b7;border:2px solid #63e2b7}.scenario-image-plus[data-v-b389c9aa]{background-color:#333;justify-content:center;align-items:center;font-size:120px;display:flex}.scenario-image[data-v-b389c9aa]{background-position:50%;background-size:cover}.scenario-title[data-v-b389c9aa]{padding:5px 0}@media (width>=1024px){.scenarios-container[data-v-b389c9aa]{height:calc(100vh - 70px)}.scenario-block[data-v-b389c9aa]{width:250px}.scenario-image-block[data-v-b389c9aa]{border-radius:10px;height:250px}}.users-container[data-v-475b5dbd]{padding-bottom:20px}.user-block[data-v-475b5dbd]{border:1px solid #444;border-radius:10px;margin:0 0 20px;padding:20px}.user-field[data-v-475b5dbd]{margin:10px}.roles-buttons-block[data-v-475b5dbd]{margin-top:20px} +:root{--vt-c-white:#fff;--vt-c-white-soft:#f8f8f8;--vt-c-white-mute:#f2f2f2;--vt-c-black:#181818;--vt-c-black-soft:#222;--vt-c-black-mute:#282828;--vt-c-indigo:#2c3e50;--vt-c-divider-light-1:#3c3c3c4a;--vt-c-divider-light-2:#3c3c3c1f;--vt-c-divider-dark-1:#545454a6;--vt-c-divider-dark-2:#5454547a;--vt-c-text-light-1:var(--vt-c-indigo);--vt-c-text-light-2:#3c3c3ca8;--vt-c-text-dark-1:var(--vt-c-white);--vt-c-text-dark-2:#ebebeba3;--color-background:var(--vt-c-white);--color-background-soft:var(--vt-c-white-soft);--color-background-mute:var(--vt-c-white-mute);--color-border:var(--vt-c-divider-light-2);--color-border-hover:var(--vt-c-divider-light-1);--color-heading:var(--vt-c-text-light-1);--color-text:var(--vt-c-text-light-1);--section-gap:160px}@media (prefers-color-scheme:dark){:root{--color-background:var(--vt-c-black);--color-background-soft:var(--vt-c-black-soft);--color-background-mute:var(--vt-c-black-mute);--color-border:var(--vt-c-divider-dark-2);--color-border-hover:var(--vt-c-divider-dark-1);--color-heading:var(--vt-c-text-dark-1);--color-text:var(--vt-c-text-dark-2)}}*,:before,:after{box-sizing:border-box;margin:0;font-weight:400}body{min-height:100vh;color:#eee;background:var(--color-background);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scrollbar-width:none;background-color:#111;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:15px;line-height:1.6;transition:color .5s,background-color .5s;overflow:hidden}@font-face{font-family:font_old_typer;src:url(/assets/a_OldTyper-BsgRTrmO.ttf)}.center-message{text-align:center;justify-content:center;align-items:center;height:calc(100dvh - 100px);display:flex}.content-block{margin-top:70px;padding:20px}.height80{height:80vh}@media (width>=1024px){.center-block-custom{width:700px;margin:70px auto 0}.center-block-custom-big{width:1200px;margin:70px auto 0}.center-middle-block-custom{place-items:center;display:grid}.content-block{margin-top:70px;padding:20px 0}}.menu-block[data-v-39cfef67]{background-color:#222;justify-content:space-between;align-items:center;width:100%;height:70px;padding:20px;display:flex;position:fixed;top:0;left:0}.menu-item-block[data-v-39cfef67]{cursor:pointer;margin-left:10px;padding:5px;font-size:1.1em;display:inline-block}.menu-item-block[data-v-39cfef67]:hover{color:#63e2b7;opacity:.8}.right[data-v-39cfef67]{margin-left:auto}.active[data-v-39cfef67]{color:#63e2b7}@media (width>=1024px){.burger-button[data-v-39cfef67]{display:none}}@media (width<1024px){.menu-buttons-block[data-v-39cfef67]{background-color:#222;flex-direction:column;width:100%;padding-bottom:5px;display:flex;position:fixed;top:70px;left:0}.menu-buttons-block div[data-v-39cfef67]{padding:15px 5px}.menu-buttons-block-active[data-v-39cfef67]{position:relative;top:-1000px}.burger-icon[data-v-39cfef67]{position:relative;top:5px}}.font-text{font-family:font_old_typer}.content-text{float:right;position:relative;top:100px;right:0}@media (width>=1024px){.font-text{position:relative;left:-50px}.content-text{position:relative;top:100px;right:-50px}}.sign-card[data-v-c1fd645b]{background-color:#1d1d1d}.form-label[data-v-c1fd645b]{margin-top:10px}.form-button-wrapper[data-v-c1fd645b]{justify-content:center;display:flex}.docs-link[data-v-c1fd645b]{color:#45aa89}.docs-link[data-v-c1fd645b]:hover{color:#63e2b7}@media (width>=1024px){.sign-card[data-v-c1fd645b]{width:380px}}.place-block-hover[data-v-92fb8bbd],.place-block[data-v-92fb8bbd]{border:1px solid #444;border-radius:10px;margin:10px 0;padding:20px}.place-block-hover[data-v-92fb8bbd]:hover{color:#63e2b7}.place-image-plus[data-v-92fb8bbd]{justify-content:center;align-items:center;font-size:30px;display:flex}.show-editor-block[data-v-92fb8bbd]{cursor:pointer}.message-content[data-v-92fb8bbd]{white-space:pre-wrap}.gray-block[data-v-92fb8bbd]{color:#777;margin-top:5px}.application-block[data-v-92fb8bbd]{color:#deb887;margin-right:5px}.door-block[data-v-92fb8bbd]{color:#eee;background-color:#222;border-radius:5px;margin:10px 5px 10px 0;padding:5px 10px;display:inline-block}.door-add-block[data-v-92fb8bbd]{color:#eee;background-color:#222;border-radius:5px;padding:10px}.key-block[data-v-92fb8bbd]{color:gold;margin-left:10px}.lock-icon[data-v-92fb8bbd]{position:relative;top:2px}.door-field[data-v-92fb8bbd]{margin-top:10px}.need-keys-text[data-v-92fb8bbd]{color:gold;margin:15px 0 0;padding:0}.slot-block[data-v-92fb8bbd]{margin-top:10px}.plus-minus-buttons[data-v-92fb8bbd]{text-align:center;color:#eee;border:1px solid #444;border-radius:40px;margin:0 0 10px 5px;padding:0 13px;font-size:25px}.plus-minus-buttons[data-v-92fb8bbd]:hover{cursor:pointer;color:#63e2b7}.message-image-border[data-v-92fb8bbd]{float:left;background-image:url(/assets/paper_white-ZSlTzOTx.jpg);background-size:cover;width:40%;margin-right:15px;padding:7px;transform:rotate(-3deg);box-shadow:0 3px 15px #626262}.message-image[data-v-92fb8bbd]{width:100%}.settings-block[data-v-810fc02a]{height:40px}.settings-button[data-v-810fc02a]{float:right}.settings-icon[data-v-810fc02a]{width:20px}.name-text[data-v-810fc02a]{background-color:#ffffff1a;border-radius:3px;padding:3px}.settings-header[data-v-810fc02a]{margin-top:20px}.settings-hr[data-v-810fc02a]{margin:20px 0}.places-container[data-v-810fc02a]{flex-flow:column;height:calc(100vh - 150px);margin-top:70px;padding:20px;display:flex;overflow-y:auto}@media (width>=1024px){.places-container[data-v-810fc02a]{height:calc(100vh - 70px);padding:20px 250px}}.scenarios-container[data-v-b389c9aa]{flex-flow:wrap;justify-content:center;height:calc(100vh - 150px);padding:0;display:flex;overflow-y:auto}.scenario-block[data-v-b389c9aa]{cursor:pointer;width:160px;margin:10px}.scenario-block[data-v-b389c9aa]:hover{color:#63e2b7}.scenario-image-block[data-v-b389c9aa]{border-radius:10px;height:160px}.scenario-image-block[data-v-b389c9aa]:hover{color:#63e2b7;border:2px solid #63e2b7}.scenario-image-plus[data-v-b389c9aa]{background-color:#333;justify-content:center;align-items:center;font-size:120px;display:flex}.scenario-image[data-v-b389c9aa]{background-position:50%;background-size:cover}.scenario-title[data-v-b389c9aa]{padding:5px 0}@media (width>=1024px){.scenarios-container[data-v-b389c9aa]{height:calc(100vh - 70px)}.scenario-block[data-v-b389c9aa]{width:250px}.scenario-image-block[data-v-b389c9aa]{border-radius:10px;height:250px}}.users-container[data-v-475b5dbd]{padding-bottom:20px}.user-block[data-v-475b5dbd]{border:1px solid #444;border-radius:10px;margin:0 0 20px;padding:20px}.user-field[data-v-475b5dbd]{margin:10px}.roles-buttons-block[data-v-475b5dbd]{margin-top:20px} diff --git a/dist/index.html b/dist/index.html index 8966515..a5342a5 100644 --- a/dist/index.html +++ b/dist/index.html @@ -5,8 +5,8 @@