From e1753fd4504d86fe134a77295fd153d344823e79 Mon Sep 17 00:00:00 2001 From: Fedorov Vladimir Date: Sat, 25 Jul 2026 23:27:04 +0700 Subject: [PATCH] fix image --- dist/assets/{index-CjBYIuuQ.js => index-CGIEdu3F.js} | 2 +- dist/assets/{index-BlF9CL1O.css => index-RcOLieKE.css} | 2 +- dist/index.html | 4 ++-- src/components/PlaceBlock.vue | 1 + 4 files changed, 5 insertions(+), 4 deletions(-) rename dist/assets/{index-CjBYIuuQ.js => index-CGIEdu3F.js} (99%) rename dist/assets/{index-BlF9CL1O.css => index-RcOLieKE.css} (53%) diff --git a/dist/assets/index-CjBYIuuQ.js b/dist/assets/index-CGIEdu3F.js similarity index 99% rename from dist/assets/index-CjBYIuuQ.js rename to dist/assets/index-CGIEdu3F.js index 58c53fe..e440a02 100644 --- a/dist/assets/index-CjBYIuuQ.js +++ b/dist/assets/index-CGIEdu3F.js @@ -2334,4 +2334,4 @@ `);return}e=wM(e),t!=null&&o.push(` ${e}${TM(t)}`)}),e&&o.push(`}`),o.join(` `)}function OM(e,t,n){e&&e.forEach(e=>{if(Array.isArray(e))OM(e,t,n);else if(typeof e==`function`){let r=e(t);Array.isArray(r)?OM(r,t,n):r&&n(r)}else e&&n(e)})}function kM(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=SM(t),c=DM(s,e.props,r,i);a&&c&&a.insertRule(c),!a&&c.length&&n.push(c),e.children&&OM(e.children,{context:r.context,props:i},e=>{if(typeof e==`string`){let t=DM(s,{raw:e},r,i);a?a.insertRule(t):n.push(t)}else kM(e,t,n,r,i,a)}),t.pop(),o&&o.after&&o.after(r.context)}function AM(e,t,n,r=!1){let i=[];return kM(e,[],i,t,n,r?e.instance.__styleSheet:void 0),r?``:i.join(` -`)}function jM(e){if(!e)return;let t=e.parentElement;t&&t.removeChild(e)}function MM(e){return document.querySelector(`style[cssr-id="${e}"]`)}function NM(e){let t=document.createElement(`style`);return t.setAttribute(`cssr-id`,e),t}window&&(window.__cssrContext={});function PM(e){let t=e.getAttribute(`mount-count`);return t===null?null:Number(t)}function FM(e,t){e.setAttribute(`mount-count`,String(t))}function IM(e,t,n,r){let{els:i}=t;if(n===void 0)i.forEach(jM),t.els=[];else{let e=MM(n);if(e&&i.includes(e)){let a=PM(e);r?a===null?console.error(`[css-render/unmount]: The style with target='${n}' is mounted in count mode.`):a<=1?(jM(e),t.els=i.filter(t=>t!==e)):FM(e,a-1):a===null?(jM(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 LM(e,t){e.push(t)}function RM(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,AM(t,e,r,o));return}let l,{els:u}=t,d;if(n===void 0&&(d=t.render(r),n=Ec(d)),c){c(n,d??t.render(r));return}let f=MM(n);if(s||f===null){if(l=f===null?NM(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&&FM(l,1),LM(u,l)}else{let e=PM(f);a?e===null?console.error(`[css-render/mount]: The style with id='${n}' has been mounted in no-count mode.`):FM(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 zM(e){return AM(this,this.instance,e)}function BM(e={}){let{target:t,id:n,ssr:r,props:i,count:a=!1,head:o=!1,boost:s=!1,force:c=!1}=e;return RM(this.instance,this,n??t,i,o,a,s,c,r)}function VM(e={}){let{id:t,target:n,delay:r=0,count:i=!1}=e;r===0?IM(this.instance,this,t??n,i):setTimeout(()=>IM(this.instance,this,t??n,i),r)}var HM=function(e,t,n,r){return{instance:e,$:t,props:n,children:r,els:[],render:zM,mount:BM,unmount:VM}},UM=function(e,t,n,r){return Array.isArray(t)?HM(e,{$:null},null,t):Array.isArray(n)?HM(e,t,null,n):Array.isArray(r)?HM(e,t,n,r):HM(e,t,n,null)};function WM(e={}){let t=null,n={c:((...e)=>UM(n,...e)),use:(e,...t)=>e.install(n,...t),find:MM,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:GM}=WM(),KM=GM(`.xicon`,{width:`1em`,height:`1em`,display:`inline-flex`},[GM(`svg`,{width:`1em`,height:`1em`}),GM(`svg:not([fill])`,{fill:`currentColor`})]),qM=()=>{KM.mount({id:`xicons-icon`})},JM={size:[String,Number],color:String,tag:String},YM=Symbol(`IconConfigInjection`),XM=`span`,ZM=P({name:`Icon`,props:JM,setup(e,{slots:t}){let n=N(YM,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??XM:t});return Br(()=>{qM()}),()=>V(a.value,{class:`xicon`,style:{color:i.value,fontSize:r.value}},[Qr(t,`default`)])}});function QM(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 $M(e){return QM(eN(e))}function eN(e){return async t=>{let n=`${tN()}/${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 tN(){return`https://evening-detective.crabs-games.art`}var nN=oc(`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 $M(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 $M(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 $M(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 $M(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 $M(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 rN(){let e=nN();return iN(e.refreshTokenAction,e.getToken)}function iN(e,t){return QM(aN(e,eN(t)))}function aN(e,t){return async n=>{try{return await t(n)}catch{return await e(),await t(n)}}}var oN={class:`menu-block`},sN={class:`right-group`},cN=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=nN();n.initFromStorage();let r=OA(),i=rN(),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`,oN,[A(n).hasRole(`user`)?(F(),I(`div`,{key:0,onClick:i[0]||=e=>u.value=!u.value,class:`burger-button`},[R(A(ZM),{class:`burger-icon`,size:`28`},{default:M(()=>[R(A(gM))]),_:1})])):ja(``,!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)):ja(``,!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)):ja(``,!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)):ja(``,!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)):ja(``,!0)],2),L(`div`,sN,[t.addLogin?(F(),I(`div`,{key:0,class:`menu-item-block right`,onClick:c},` Войти `)):ja(``,!0),t.addLogout?(F(),I(`div`,{key:1,class:`menu-item-block right`,onClick:l},`Выйти`)):ja(``,!0)])]))}}),lN=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},uN=lN(cN,[[`__scopeId`,`data-v-39cfef67`]]),dN=P({__name:`GamesPage`,setup(e){return(e,t)=>(F(),I(pa,null,[t[0]||=L(`div`,{class:`center-block-custom content-block`},`Игры`,-1),R(uN,{"add-logout":!0,active:`games`})],64))}}),fN=P({__name:`GamesView`,setup(e){return(e,t)=>(F(),Ca(dN))}}),pN=P({__name:`HomeView`,setup(e){return(e,t)=>(F(),I(pa,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(uN,{"add-login":!0})],64))}}),mN={class:`center-block-custom content-block center-middle-block-custom height80`},hN={class:`form-button-wrapper`},gN={class:`form-label`},_N={key:0},vN={key:1},yN={class:`form-label`},bN={class:`form-button-wrapper`},xN={class:`form-label`},SN={key:0},CN={key:1},wN={class:`form-button-wrapper`},TN={class:`form-label`},EN={key:0},DN={key:1},ON=lN(P({__name:`LoginPage`,setup(e){let t=nN(),n=OA(),r=UE(),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`,mN,[R(A(uT),{style:{"margin-bottom":`16px`},class:`sign-card`},{default:M(()=>[R(A(Ek),{type:`line`,animated:``},{default:M(()=>[R(A(Sk),{name:`signin`,tab:`Вход`},{default:M(()=>[R(A(pD),{vertical:``},{default:M(()=>[n[6]||=L(`div`,{class:`form-label`},`Почта`,-1),R(A(xw),{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(lw),{value:o.value,"onUpdate:value":n[1]||=e=>o.value=e,type:`password`,placeholder:`********`},null,8,[`value`]),L(`div`,hN,[L(`div`,gN,[R(A(Kw),{onClick:l,disabled:a.value.length==0||o.value.length==0},{default:M(()=>[A(t).isLoading?(F(),I(`span`,vN,` Подождите... `)):(F(),I(`span`,_N,` Вход `))]),_:1},8,[`disabled`])])])]),_:1})]),_:1}),R(A(Sk),{name:`signup`,tab:`Регистрация`},{default:M(()=>[R(A(pD),{vertical:``},{default:M(()=>[n[9]||=L(`div`,{class:`form-label`},`Позывной`,-1),R(A(lw),{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(xw),{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`,yN,[R(A(CT),{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`,bN,[L(`div`,xN,[R(A(Kw),{onClick:u,disabled:i.value.length==0||o.value.length==0||!s.value},{default:M(()=>[A(t).isLoading?(F(),I(`span`,CN,` Подождите... `)):(F(),I(`span`,SN,` Регистрация `))]),_:1},8,[`disabled`])])])]),_:1})]),_:1}),R(A(Sk),{name:`new-password`,tab:`Новый пароль`},{default:M(()=>[R(A(pD),{vertical:``},{default:M(()=>[n[11]||=L(`div`,{class:`form-label`},`Почта`,-1),R(A(xw),{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`,wN,[L(`div`,TN,[R(A(Kw),{onClick:d,disabled:a.value.length==0},{default:M(()=>[A(t).isLoading?(F(),I(`span`,DN,` Подождите... `)):(F(),I(`span`,EN,` Прислать новый пароль `))]),_:1},8,[`disabled`])])])]),_:1})]),_:1})]),_:1})]),_:1})]))}}),[[`__scopeId`,`data-v-c1fd645b`]]),kN=P({__name:`LoginView`,setup(e){return(e,t)=>(F(),Ca(ON))}}),AN={class:`center-block-custom content-block`},jN=P({__name:`OfficePage`,setup(e){let t=nN(),n=rN(),r=k([]);async function i(){r.value=[];let e=await n.GetPermissions({});r.value=e.permissions}return i(),(e,n)=>(F(),I(pa,null,[L(`div`,AN,[L(`p`,null,`Доброго времени суток, `+Ce(A(t).username)+`.`,1)]),R(uN,{"add-logout":!0,active:`office`})],64))}}),MN=P({__name:`OfficeView`,setup(e){return(e,t)=>(F(),Ca(jN))}}),NN={};function PN(e,t){return`Соглашением о персональных данных`}var FN=lN(NN,[[`render`,PN]]),IN={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},LN=P({name:`Settings`,render:function(e,t){return F(),I(`svg`,IN,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)])}}),RN={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 24 24`},zN=P({name:`Key24Regular`,render:function(e,t){return F(),I(`svg`,RN,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)])}}),BN={key:1,class:`place-block`},VN={class:`message-header`},HN={class:`message-content`},UN={key:0},WN={class:`message-image-border`},GN=[`src`],KN={class:`key-block`},qN={key:0,class:`hr`},JN={class:`gray-block`},YN={key:0},XN={class:`key-block`},ZN={key:3,class:`place-block`},QN=[`src`],$N={style:{display:`flex`,"align-items":`center`,width:`100%`}},eP={style:{display:`flex`,"flex-direction":`column`}},tP={style:{display:`flex`,"flex-direction":`column`,width:`100%`}},nP={class:`door-add-block`},rP={class:`door-field`},iP={style:{display:`flex`,"align-items":`center`,width:`100%`}},aP={style:{display:`flex`,"align-items":`center`,width:`100%`}},oP={class:`slot-block`},sP=lN(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)=>(F(),I(pa,null,[e.mode==`mini-add`?(F(),I(`div`,{key:0,class:`place-block-hover show-editor-block`,onClick:r[0]||=e=>s(`add`)},[...r[12]||=[L(`p`,{class:`place-image-plus`},`+`,-1)]])):ja(``,!0),e.mode==`add`?(F(),I(`div`,BN,[R(A(pD),{vertical:``},{default:M(()=>[R(A(dw),null,{default:M(()=>[R(A(lw),{style:{width:`20%`},value:e.newPlaceCode,"onUpdate:value":i,type:`text`,placeholder:`Ы-1`},null,8,[`value`]),R(A(lw),{style:{width:`80%`},value:e.newPlaceName,"onUpdate:value":a,type:`text`,placeholder:`Дом №Ы`},null,8,[`value`])]),_:1}),R(A(lw),{value:e.newPlaceText,"onUpdate:value":o,type:`textarea`,autosize:{minRows:3},placeholder:`В начале было слово...`},null,8,[`value`]),Qr(t.$slots,`default`,{},void 0,!0)]),_:3})])):ja(``,!0),e.mode==`show-editor`?(F(),I(`div`,{key:2,class:`place-block-hover show-editor-block`,onClick:r[1]||=e=>s(`edit`)},[L(`div`,VN,Ce(n.place.code)+`: `+Ce(n.place.name),1),r[13]||=L(`hr`,{class:`hr`},null,-1),L(`div`,HN,[n.place.image?(F(),I(`div`,UN,[L(`div`,WN,[L(`img`,{src:n.place.image,class:`message-image`},null,8,GN)])])):ja(``,!0),z(` `+Ce(n.place.text),1)]),(F(!0),I(pa,null,Zr(n.place.doors,e=>(F(),I(`div`,{key:e.code,class:`door-block`},[z(Ce(e.name)+` `,1),(F(!0),I(pa,null,Zr(e.keys,e=>(F(),I(`span`,KN,[R(A(ZM),{class:`lock-icon`},{default:M(()=>[R(A(mM))]),_:1}),z(` `+Ce(e.name),1)]))),256))]))),128)),n.place.applications.length?(F(),I(`hr`,qN)):ja(``,!0),(F(!0),I(pa,null,Zr(n.place.applications,e=>(F(),I(`div`,{class:`message-footer application-block`,key:e.name},` Приложение: `+Ce(e.name),1))),128)),L(`p`,JN,[e.place.hidden?(F(),I(`span`,YN,` Скрытая точка `)):ja(``,!0),(F(!0),I(pa,null,Zr(e.place.keys,e=>(F(),I(`span`,XN,[R(A(ZM),{class:`lock-icon`},{default:M(()=>[R(A(zN))]),_:1}),z(` `+Ce(e.name),1)]))),256))])])):ja(``,!0),e.mode==`edit`?(F(),I(`div`,ZN,[R(A(pD),{vertical:``},{default:M(()=>[R(A(dw),null,{default:M(()=>[R(A(lw),{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(lw),{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(lw),{value:n.place.text,"onUpdate:value":r[4]||=e=>n.place.text=e,type:`textarea`,autosize:{minRows:3},placeholder:`В начале было слово...`},null,8,[`value`]),r[25]||=L(`p`,{class:`settings-header`},`Картинка`,-1),L(`div`,null,[R(A(pD),null,{default:M(()=>[R(A(pD),{vertical:``},{default:M(()=>[L(`img`,{src:n.place.image,class:`message-edit-image`},null,8,QN),R(A(Kw),{onClick:r[5]||=e=>(n.place.image=``,n.place.fileList=null)},{default:M(()=>[...r[14]||=[z(`Убрать картинку`,-1)]]),_:1})]),_:1}),R(A(pD),{vertical:``},{default:M(()=>[R(A(lw),{value:n.place.image,"onUpdate:value":r[6]||=e=>n.place.image=e,type:`text`,placeholder:`Не задано`,disabled:``},null,8,[`value`]),R(A(uA),{"directory-dnd":``,max:1,"file-list":n.place.fileList,"onUpdate:fileList":r[7]||=e=>n.place.fileList=e},{default:M(()=>[R(A(Fk),null,{default:M(()=>[R(A(Mk),{style:{"font-size":`16px`}},{default:M(()=>[...r[15]||=[z(` Щелкните или перетащите файл в эту область для загрузки `,-1)]]),_:1})]),_:1})]),_:1},8,[`file-list`])]),_:1})]),_:1})]),r[26]||=L(`p`,{class:`settings-header`},`Видимость точки`,-1),R(A(yk),{value:n.place.hidden,"onUpdate:value":r[8]||=e=>n.place.hidden=e},{checked:M(()=>[...r[16]||=[z(` Скрытая точка `,-1)]]),unchecked:M(()=>[...r[17]||=[z(` Обычная точка `,-1)]]),_:1},8,[`value`]),r[27]||=z(` Улики `,-1),R(A(oD),{value:n.place.applications,"onUpdate:value":r[9]||=e=>n.place.applications=e,"on-create":c},{"create-button-default":M(()=>[...r[18]||=[z(` Добавить улику `,-1)]]),default:M(({value:e})=>[L(`div`,$N,[R(A(lw),{value:e.name,"onUpdate:value":t=>e.name=t,type:`text`,placeholder:`Название`},null,8,[`value`,`onUpdate:value`])])]),_:1},8,[`value`]),r[28]||=z(` Действия `,-1),R(A(oD),{value:n.place.doors,"onUpdate:value":r[10]||=e=>n.place.doors=e,"on-create":l},{"create-button-default":M(()=>[...r[19]||=[z(` Добавить действие `,-1)]]),action:M(({index:e,create:t,remove:n})=>[L(`div`,eP,[R(A(Kw),{onClick:()=>t(e),class:`plus-minus-buttons`},{default:M(()=>[...r[20]||=[z(`+`,-1)]]),_:1},8,[`onClick`]),R(A(Kw),{disabled:``,onClick:()=>n(e),class:`plus-minus-buttons`},{default:M(()=>[...r[21]||=[z(`-`,-1)]]),_:1},8,[`onClick`])])]),default:M(({value:e})=>[L(`div`,tP,[L(`div`,nP,[R(A(dw),null,{default:M(()=>[R(A(lw),{style:{width:`30%`},value:e.code,"onUpdate:value":t=>e.code=t,type:`text`,placeholder:`Код`},null,8,[`value`,`onUpdate:value`]),R(A(lw),{style:{width:`70%`},value:e.name,"onUpdate:value":t=>e.name=t,type:`text`,placeholder:`Название`},null,8,[`value`,`onUpdate:value`])]),_:2},1024),r[23]||=L(`p`,{class:`need-keys-text`},`Требуемые ключи`,-1),L(`div`,rP,[R(A(oD),{value:e.keys,"onUpdate:value":t=>e.keys=t,"on-create":u},{"create-button-default":M(()=>[...r[22]||=[z(` Добавить ключ `,-1)]]),default:M(({value:e})=>[L(`div`,iP,[R(A(lw),{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[29]||=z(` Получаемые ключи `,-1),R(A(oD),{value:n.place.keys,"onUpdate:value":r[11]||=e=>n.place.keys=e,"on-create":u},{"create-button-default":M(()=>[...r[24]||=[z(` Добавить ключ `,-1)]]),default:M(({value:e})=>[L(`div`,aP,[R(A(lw),{value:e.name,"onUpdate:value":t=>e.name=t,type:`text`,placeholder:`Название`},null,8,[`value`,`onUpdate:value`])])]),_:1},8,[`value`]),L(`div`,oP,[Qr(t.$slots,`default`,{},void 0,!0)])]),_:3})])):ja(``,!0)],64))}}),[[`__scopeId`,`data-v-4d7284a2`]]),cP={class:`center-block-custom-big`},lP={class:`places-container`},uP={class:`settings-block`},dP=lN(P({__name:`ScenariosEditorPage`,setup(e){let t=rN(),n=kA().params.id,r=k(!1),i=k(``),a=UE(),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}kP.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(pa,null,[L(`div`,cP,[L(`div`,lP,[L(`div`,uP,[z(` Точек: `+Ce(s.value.story?.places?.length)+` `,1),R(A(Kw),{quaternary:``,onClick:t[0]||=e=>r.value=!0,class:`settings-button`},{default:M(()=>[R(A(ZM),{class:`settings-icon`},{default:M(()=>[R(A(LN))]),_:1}),t[16]||=z(` Настройки `,-1)]),_:1})]),R(sP,{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(bD),{justify:`end`},{default:M(()=>[R(A(Kw),{onClick:t[1]||=e=>v()},{default:M(()=>[...t[17]||=[z(`Отмена`,-1)]]),_:1}),R(A(Kw),{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(pa,null,Zr(s.value.story?.places,e=>(F(),Ca(sP,{place:e,mode:e.mode,"onUpdate:mode":t=>e.mode=t,key:e.code},{default:M(()=>[R(A(bD),{justify:`end`},{default:M(()=>[R(A(Kw),{onClick:t=>S(e),type:`error`,ghost:``},{default:M(()=>[...t[19]||=[z(`Удалить`,-1)]]),_:1},8,[`onClick`]),R(A(Kw),{onClick:t=>b(e)},{default:M(()=>[...t[20]||=[z(`Отмена`,-1)]]),_:1},8,[`onClick`]),R(A(Kw),{onClick:t=>x(e)},{default:M(()=>[...t[21]||=[z(`Сохранить`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1032,[`place`,`mode`,`onUpdate:mode`]))),128))])]),R(A(OE),{show:r.value,"onUpdate:show":t[15]||=e=>r.value=e},{default:M(()=>[R(A(uT),{style:{width:`600px`},title:`Настройки сценария`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":M(()=>[R(A(Kw),{onClick:t[7]||=e=>r.value=!1},{default:M(()=>[...t[22]||=[z(` x `,-1)]]),_:1})]),footer:M(()=>[...t[32]||=[]]),default:M(()=>[R(A(pD),{vertical:``},{default:M(()=>[t[28]||=L(`p`,null,`Название`,-1),R(A(lw),{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(lw),{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(lw),{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(uA),{"directory-dnd":``,max:1,"file-list":o.value,"onUpdate:fileList":t[11]||=e=>o.value=e},{default:M(()=>[R(A(Fk),null,{default:M(()=>[R(A(Mk),{style:{"font-size":`16px`}},{default:M(()=>[...t[23]||=[z(` Щелкните или перетащите файл в эту область для загрузки `,-1)]]),_:1})]),_:1})]),_:1},8,[`file-list`]),R(A(Kw),{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(Mk),{class:`name-text`,strong:``},{default:M(()=>[z(Ce(s.value.name),1)]),_:1}),t[26]||=z(` чтобы удалить его `,-1)]),R(A(lw),{value:i.value,"onUpdate:value":t[13]||=e=>i.value=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`]),R(A(Kw),{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(uN,{"add-logout":!0,active:`scenarios`})],64))}}),[[`__scopeId`,`data-v-810fc02a`]]),fP=P({__name:`ScenariosEditorView`,setup(e){return(e,t)=>(F(),Ca(dP))}}),pP={class:`center-block-custom-big content-block`},mP={class:`scenarios-container`},hP=[`onClick`],gP={class:`scenario-title`},_P=lN(P({__name:`ScenariosPage`,setup(e){let t=rN(),n=k([]),r=OA(),i=UE(),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(pa,null,[L(`div`,pP,[L(`div`,mP,[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(pa,null,Zr(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`,gP,Ce(e.name),1)],8,hP))),128))])]),R(A(OE),{show:a.value,"onUpdate:show":t[4]||=e=>a.value=e},{default:M(()=>[R(A(uT),{style:{width:`600px`},title:`Создание сценария`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":M(()=>[R(A(Kw),{onClick:t[1]||=e=>a.value=!1},{default:M(()=>[...t[6]||=[z(` x `,-1)]]),_:1})]),footer:M(()=>[R(A(Kw),{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(lw),{value:o.value,"onUpdate:value":t[2]||=e=>o.value=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`])]),_:1})]),_:1},8,[`show`]),R(uN,{"add-logout":!0,active:`scenarios`})],64))}}),[[`__scopeId`,`data-v-b389c9aa`]]),vP=P({__name:`ScenariosView`,setup(e){return(e,t)=>(F(),Ca(_P))}}),yP={};function bP(e,t){return`Пользовательское соглашение`}var xP=lN(yP,[[`render`,bP]]),SP={class:`center-block-custom content-block`},CP={class:`users-container`},wP={class:`user-field`},TP={class:`user-field`},EP={class:`user-field`},DP=lN(P({__name:`UsersPage`,setup(e){let t=rN(),n=UE(),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(pa,null,[L(`div`,SP,[L(`div`,CP,[(F(!0),I(pa,null,Zr(r.value,e=>(F(),I(`div`,{key:e.id,class:`user-block`},[L(`div`,wP,` Позывной: `+Ce(e.username),1),L(`div`,TP,` Почта: `+Ce(e.email),1),L(`div`,EP,[R(A(pD),null,{default:M(()=>[t[0]||=z(` Роли: `,-1),(F(!0),I(pa,null,Zr(e.roles,e=>(F(),Ca(A(MC),{bordered:!1,key:e},{default:M(()=>[z(Ce(e),1)]),_:2},1024))),128))]),_:2},1024)]),R(A(bD),{justify:`end`,class:`roles-buttons-block`},{default:M(()=>[e.roles?.includes(`author`)?(F(),Ca(A(Kw),{key:1,onClick:t=>o(e.id,`author`)},{default:M(()=>[...t[2]||=[z(`Забрать роль автора`,-1)]]),_:1},8,[`onClick`])):(F(),Ca(A(Kw),{key:0,onClick:t=>a(e.id,`author`)},{default:M(()=>[...t[1]||=[z(`Сделать автором`,-1)]]),_:1},8,[`onClick`])),e.roles?.includes(`organizer`)?(F(),Ca(A(Kw),{key:3,onClick:t=>o(e.id,`organizer`)},{default:M(()=>[...t[4]||=[z(`Забрать роль организатора`,-1)]]),_:1},8,[`onClick`])):(F(),Ca(A(Kw),{key:2,onClick:t=>a(e.id,`organizer`)},{default:M(()=>[...t[3]||=[z(`Сделать организатором`,-1)]]),_:1},8,[`onClick`]))]),_:2},1024)]))),128))])]),R(uN,{"add-logout":!0,active:`users`})],64))}}),[[`__scopeId`,`data-v-475b5dbd`]]),OP=P({__name:`UsersView`,setup(e){return(e,t)=>(F(),Ca(DP))}}),kP=dM({history:Nj(`/`),routes:[{path:`/`,name:`home`,component:pN},{path:`/login`,name:`login`,component:kN},{path:`/office`,name:`office`,component:MN},{path:`/user-agreement`,name:`user-agreement`,component:xP},{path:`/privacy-policy`,name:`privacy-policy`,component:FN},{path:`/games`,name:`games`,component:fN},{path:`/scenarios`,name:`scenarios`,component:vP},{path:`/scenarios/:id`,name:`ScenariosEditorView`,component:fP},{path:`/users`,name:`users`,component:OP}]}),AP=Ts(fM);AP.use(Ks()),AP.use(kP),AP.mount(`#app`); \ No newline at end of file +`)}function jM(e){if(!e)return;let t=e.parentElement;t&&t.removeChild(e)}function MM(e){return document.querySelector(`style[cssr-id="${e}"]`)}function NM(e){let t=document.createElement(`style`);return t.setAttribute(`cssr-id`,e),t}window&&(window.__cssrContext={});function PM(e){let t=e.getAttribute(`mount-count`);return t===null?null:Number(t)}function FM(e,t){e.setAttribute(`mount-count`,String(t))}function IM(e,t,n,r){let{els:i}=t;if(n===void 0)i.forEach(jM),t.els=[];else{let e=MM(n);if(e&&i.includes(e)){let a=PM(e);r?a===null?console.error(`[css-render/unmount]: The style with target='${n}' is mounted in count mode.`):a<=1?(jM(e),t.els=i.filter(t=>t!==e)):FM(e,a-1):a===null?(jM(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 LM(e,t){e.push(t)}function RM(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,AM(t,e,r,o));return}let l,{els:u}=t,d;if(n===void 0&&(d=t.render(r),n=Ec(d)),c){c(n,d??t.render(r));return}let f=MM(n);if(s||f===null){if(l=f===null?NM(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&&FM(l,1),LM(u,l)}else{let e=PM(f);a?e===null?console.error(`[css-render/mount]: The style with id='${n}' has been mounted in no-count mode.`):FM(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 zM(e){return AM(this,this.instance,e)}function BM(e={}){let{target:t,id:n,ssr:r,props:i,count:a=!1,head:o=!1,boost:s=!1,force:c=!1}=e;return RM(this.instance,this,n??t,i,o,a,s,c,r)}function VM(e={}){let{id:t,target:n,delay:r=0,count:i=!1}=e;r===0?IM(this.instance,this,t??n,i):setTimeout(()=>IM(this.instance,this,t??n,i),r)}var HM=function(e,t,n,r){return{instance:e,$:t,props:n,children:r,els:[],render:zM,mount:BM,unmount:VM}},UM=function(e,t,n,r){return Array.isArray(t)?HM(e,{$:null},null,t):Array.isArray(n)?HM(e,t,null,n):Array.isArray(r)?HM(e,t,n,r):HM(e,t,n,null)};function WM(e={}){let t=null,n={c:((...e)=>UM(n,...e)),use:(e,...t)=>e.install(n,...t),find:MM,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:GM}=WM(),KM=GM(`.xicon`,{width:`1em`,height:`1em`,display:`inline-flex`},[GM(`svg`,{width:`1em`,height:`1em`}),GM(`svg:not([fill])`,{fill:`currentColor`})]),qM=()=>{KM.mount({id:`xicons-icon`})},JM={size:[String,Number],color:String,tag:String},YM=Symbol(`IconConfigInjection`),XM=`span`,ZM=P({name:`Icon`,props:JM,setup(e,{slots:t}){let n=N(YM,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??XM:t});return Br(()=>{qM()}),()=>V(a.value,{class:`xicon`,style:{color:i.value,fontSize:r.value}},[Qr(t,`default`)])}});function QM(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 $M(e){return QM(eN(e))}function eN(e){return async t=>{let n=`${tN()}/${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 tN(){return`https://evening-detective.crabs-games.art`}var nN=oc(`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 $M(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 $M(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 $M(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 $M(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 $M(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 rN(){let e=nN();return iN(e.refreshTokenAction,e.getToken)}function iN(e,t){return QM(aN(e,eN(t)))}function aN(e,t){return async n=>{try{return await t(n)}catch{return await e(),await t(n)}}}var oN={class:`menu-block`},sN={class:`right-group`},cN=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=nN();n.initFromStorage();let r=OA(),i=rN(),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`,oN,[A(n).hasRole(`user`)?(F(),I(`div`,{key:0,onClick:i[0]||=e=>u.value=!u.value,class:`burger-button`},[R(A(ZM),{class:`burger-icon`,size:`28`},{default:M(()=>[R(A(gM))]),_:1})])):ja(``,!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)):ja(``,!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)):ja(``,!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)):ja(``,!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)):ja(``,!0)],2),L(`div`,sN,[t.addLogin?(F(),I(`div`,{key:0,class:`menu-item-block right`,onClick:c},` Войти `)):ja(``,!0),t.addLogout?(F(),I(`div`,{key:1,class:`menu-item-block right`,onClick:l},`Выйти`)):ja(``,!0)])]))}}),lN=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},uN=lN(cN,[[`__scopeId`,`data-v-39cfef67`]]),dN=P({__name:`GamesPage`,setup(e){return(e,t)=>(F(),I(pa,null,[t[0]||=L(`div`,{class:`center-block-custom content-block`},`Игры`,-1),R(uN,{"add-logout":!0,active:`games`})],64))}}),fN=P({__name:`GamesView`,setup(e){return(e,t)=>(F(),Ca(dN))}}),pN=P({__name:`HomeView`,setup(e){return(e,t)=>(F(),I(pa,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(uN,{"add-login":!0})],64))}}),mN={class:`center-block-custom content-block center-middle-block-custom height80`},hN={class:`form-button-wrapper`},gN={class:`form-label`},_N={key:0},vN={key:1},yN={class:`form-label`},bN={class:`form-button-wrapper`},xN={class:`form-label`},SN={key:0},CN={key:1},wN={class:`form-button-wrapper`},TN={class:`form-label`},EN={key:0},DN={key:1},ON=lN(P({__name:`LoginPage`,setup(e){let t=nN(),n=OA(),r=UE(),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`,mN,[R(A(uT),{style:{"margin-bottom":`16px`},class:`sign-card`},{default:M(()=>[R(A(Ek),{type:`line`,animated:``},{default:M(()=>[R(A(Sk),{name:`signin`,tab:`Вход`},{default:M(()=>[R(A(pD),{vertical:``},{default:M(()=>[n[6]||=L(`div`,{class:`form-label`},`Почта`,-1),R(A(xw),{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(lw),{value:o.value,"onUpdate:value":n[1]||=e=>o.value=e,type:`password`,placeholder:`********`},null,8,[`value`]),L(`div`,hN,[L(`div`,gN,[R(A(Kw),{onClick:l,disabled:a.value.length==0||o.value.length==0},{default:M(()=>[A(t).isLoading?(F(),I(`span`,vN,` Подождите... `)):(F(),I(`span`,_N,` Вход `))]),_:1},8,[`disabled`])])])]),_:1})]),_:1}),R(A(Sk),{name:`signup`,tab:`Регистрация`},{default:M(()=>[R(A(pD),{vertical:``},{default:M(()=>[n[9]||=L(`div`,{class:`form-label`},`Позывной`,-1),R(A(lw),{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(xw),{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`,yN,[R(A(CT),{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`,bN,[L(`div`,xN,[R(A(Kw),{onClick:u,disabled:i.value.length==0||o.value.length==0||!s.value},{default:M(()=>[A(t).isLoading?(F(),I(`span`,CN,` Подождите... `)):(F(),I(`span`,SN,` Регистрация `))]),_:1},8,[`disabled`])])])]),_:1})]),_:1}),R(A(Sk),{name:`new-password`,tab:`Новый пароль`},{default:M(()=>[R(A(pD),{vertical:``},{default:M(()=>[n[11]||=L(`div`,{class:`form-label`},`Почта`,-1),R(A(xw),{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`,wN,[L(`div`,TN,[R(A(Kw),{onClick:d,disabled:a.value.length==0},{default:M(()=>[A(t).isLoading?(F(),I(`span`,DN,` Подождите... `)):(F(),I(`span`,EN,` Прислать новый пароль `))]),_:1},8,[`disabled`])])])]),_:1})]),_:1})]),_:1})]),_:1})]))}}),[[`__scopeId`,`data-v-c1fd645b`]]),kN=P({__name:`LoginView`,setup(e){return(e,t)=>(F(),Ca(ON))}}),AN={class:`center-block-custom content-block`},jN=P({__name:`OfficePage`,setup(e){let t=nN(),n=rN(),r=k([]);async function i(){r.value=[];let e=await n.GetPermissions({});r.value=e.permissions}return i(),(e,n)=>(F(),I(pa,null,[L(`div`,AN,[L(`p`,null,`Доброго времени суток, `+Ce(A(t).username)+`.`,1)]),R(uN,{"add-logout":!0,active:`office`})],64))}}),MN=P({__name:`OfficeView`,setup(e){return(e,t)=>(F(),Ca(jN))}}),NN={};function PN(e,t){return`Соглашением о персональных данных`}var FN=lN(NN,[[`render`,PN]]),IN={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},LN=P({name:`Settings`,render:function(e,t){return F(),I(`svg`,IN,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)])}}),RN={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 24 24`},zN=P({name:`Key24Regular`,render:function(e,t){return F(),I(`svg`,RN,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)])}}),BN={key:1,class:`place-block`},VN={class:`message-header`},HN={class:`message-content`},UN={key:0},WN={class:`message-image-border`},GN=[`src`],KN={class:`key-block`},qN={key:0,class:`hr`},JN={class:`gray-block`},YN={key:0},XN={class:`key-block`},ZN={key:3,class:`place-block`},QN=[`src`],$N={style:{display:`flex`,"align-items":`center`,width:`100%`}},eP={style:{display:`flex`,"flex-direction":`column`}},tP={style:{display:`flex`,"flex-direction":`column`,width:`100%`}},nP={class:`door-add-block`},rP={class:`door-field`},iP={style:{display:`flex`,"align-items":`center`,width:`100%`}},aP={style:{display:`flex`,"align-items":`center`,width:`100%`}},oP={class:`slot-block`},sP=lN(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)=>(F(),I(pa,null,[e.mode==`mini-add`?(F(),I(`div`,{key:0,class:`place-block-hover show-editor-block`,onClick:r[0]||=e=>s(`add`)},[...r[12]||=[L(`p`,{class:`place-image-plus`},`+`,-1)]])):ja(``,!0),e.mode==`add`?(F(),I(`div`,BN,[R(A(pD),{vertical:``},{default:M(()=>[R(A(dw),null,{default:M(()=>[R(A(lw),{style:{width:`20%`},value:e.newPlaceCode,"onUpdate:value":i,type:`text`,placeholder:`Ы-1`},null,8,[`value`]),R(A(lw),{style:{width:`80%`},value:e.newPlaceName,"onUpdate:value":a,type:`text`,placeholder:`Дом №Ы`},null,8,[`value`])]),_:1}),R(A(lw),{value:e.newPlaceText,"onUpdate:value":o,type:`textarea`,autosize:{minRows:3},placeholder:`В начале было слово...`},null,8,[`value`]),Qr(t.$slots,`default`,{},void 0,!0)]),_:3})])):ja(``,!0),e.mode==`show-editor`?(F(),I(`div`,{key:2,class:`place-block-hover show-editor-block`,onClick:r[1]||=e=>s(`edit`)},[L(`div`,VN,Ce(n.place.code)+`: `+Ce(n.place.name),1),r[13]||=L(`hr`,{class:`hr`},null,-1),L(`div`,HN,[n.place.image?(F(),I(`div`,UN,[L(`div`,WN,[L(`img`,{src:n.place.image,class:`message-image`},null,8,GN)])])):ja(``,!0),z(` `+Ce(n.place.text),1)]),(F(!0),I(pa,null,Zr(n.place.doors,e=>(F(),I(`div`,{key:e.code,class:`door-block`},[z(Ce(e.name)+` `,1),(F(!0),I(pa,null,Zr(e.keys,e=>(F(),I(`span`,KN,[R(A(ZM),{class:`lock-icon`},{default:M(()=>[R(A(mM))]),_:1}),z(` `+Ce(e.name),1)]))),256))]))),128)),n.place.applications.length?(F(),I(`hr`,qN)):ja(``,!0),(F(!0),I(pa,null,Zr(n.place.applications,e=>(F(),I(`div`,{class:`message-footer application-block`,key:e.name},` Приложение: `+Ce(e.name),1))),128)),L(`p`,JN,[e.place.hidden?(F(),I(`span`,YN,` Скрытая точка `)):ja(``,!0),(F(!0),I(pa,null,Zr(e.place.keys,e=>(F(),I(`span`,XN,[R(A(ZM),{class:`lock-icon`},{default:M(()=>[R(A(zN))]),_:1}),z(` `+Ce(e.name),1)]))),256))])])):ja(``,!0),e.mode==`edit`?(F(),I(`div`,ZN,[R(A(pD),{vertical:``},{default:M(()=>[R(A(dw),null,{default:M(()=>[R(A(lw),{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(lw),{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(lw),{value:n.place.text,"onUpdate:value":r[4]||=e=>n.place.text=e,type:`textarea`,autosize:{minRows:3},placeholder:`В начале было слово...`},null,8,[`value`]),r[25]||=L(`p`,{class:`settings-header`},`Картинка`,-1),L(`div`,null,[R(A(pD),null,{default:M(()=>[R(A(pD),{vertical:``},{default:M(()=>[L(`img`,{src:n.place.image,class:`message-edit-image`},null,8,QN),R(A(Kw),{onClick:r[5]||=e=>(n.place.image=``,n.place.fileList=null)},{default:M(()=>[...r[14]||=[z(`Убрать картинку`,-1)]]),_:1})]),_:1}),R(A(pD),{vertical:``},{default:M(()=>[R(A(lw),{value:n.place.image,"onUpdate:value":r[6]||=e=>n.place.image=e,type:`text`,placeholder:`Не задано`,disabled:``},null,8,[`value`]),R(A(uA),{"directory-dnd":``,max:1,"file-list":n.place.fileList,"onUpdate:fileList":r[7]||=e=>n.place.fileList=e},{default:M(()=>[R(A(Fk),null,{default:M(()=>[R(A(Mk),{style:{"font-size":`16px`}},{default:M(()=>[...r[15]||=[z(` Щелкните или перетащите файл в эту область для загрузки `,-1)]]),_:1})]),_:1})]),_:1},8,[`file-list`])]),_:1})]),_:1})]),r[26]||=L(`p`,{class:`settings-header`},`Видимость точки`,-1),R(A(yk),{value:n.place.hidden,"onUpdate:value":r[8]||=e=>n.place.hidden=e},{checked:M(()=>[...r[16]||=[z(` Скрытая точка `,-1)]]),unchecked:M(()=>[...r[17]||=[z(` Обычная точка `,-1)]]),_:1},8,[`value`]),r[27]||=z(` Улики `,-1),R(A(oD),{value:n.place.applications,"onUpdate:value":r[9]||=e=>n.place.applications=e,"on-create":c},{"create-button-default":M(()=>[...r[18]||=[z(` Добавить улику `,-1)]]),default:M(({value:e})=>[L(`div`,$N,[R(A(lw),{value:e.name,"onUpdate:value":t=>e.name=t,type:`text`,placeholder:`Название`},null,8,[`value`,`onUpdate:value`])])]),_:1},8,[`value`]),r[28]||=z(` Действия `,-1),R(A(oD),{value:n.place.doors,"onUpdate:value":r[10]||=e=>n.place.doors=e,"on-create":l},{"create-button-default":M(()=>[...r[19]||=[z(` Добавить действие `,-1)]]),action:M(({index:e,create:t,remove:n})=>[L(`div`,eP,[R(A(Kw),{onClick:()=>t(e),class:`plus-minus-buttons`},{default:M(()=>[...r[20]||=[z(`+`,-1)]]),_:1},8,[`onClick`]),R(A(Kw),{disabled:``,onClick:()=>n(e),class:`plus-minus-buttons`},{default:M(()=>[...r[21]||=[z(`-`,-1)]]),_:1},8,[`onClick`])])]),default:M(({value:e})=>[L(`div`,tP,[L(`div`,nP,[R(A(dw),null,{default:M(()=>[R(A(lw),{style:{width:`30%`},value:e.code,"onUpdate:value":t=>e.code=t,type:`text`,placeholder:`Код`},null,8,[`value`,`onUpdate:value`]),R(A(lw),{style:{width:`70%`},value:e.name,"onUpdate:value":t=>e.name=t,type:`text`,placeholder:`Название`},null,8,[`value`,`onUpdate:value`])]),_:2},1024),r[23]||=L(`p`,{class:`need-keys-text`},`Требуемые ключи`,-1),L(`div`,rP,[R(A(oD),{value:e.keys,"onUpdate:value":t=>e.keys=t,"on-create":u},{"create-button-default":M(()=>[...r[22]||=[z(` Добавить ключ `,-1)]]),default:M(({value:e})=>[L(`div`,iP,[R(A(lw),{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[29]||=z(` Получаемые ключи `,-1),R(A(oD),{value:n.place.keys,"onUpdate:value":r[11]||=e=>n.place.keys=e,"on-create":u},{"create-button-default":M(()=>[...r[24]||=[z(` Добавить ключ `,-1)]]),default:M(({value:e})=>[L(`div`,aP,[R(A(lw),{value:e.name,"onUpdate:value":t=>e.name=t,type:`text`,placeholder:`Название`},null,8,[`value`,`onUpdate:value`])])]),_:1},8,[`value`]),L(`div`,oP,[Qr(t.$slots,`default`,{},void 0,!0)])]),_:3})])):ja(``,!0)],64))}}),[[`__scopeId`,`data-v-19e95c2c`]]),cP={class:`center-block-custom-big`},lP={class:`places-container`},uP={class:`settings-block`},dP=lN(P({__name:`ScenariosEditorPage`,setup(e){let t=rN(),n=kA().params.id,r=k(!1),i=k(``),a=UE(),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}kP.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(pa,null,[L(`div`,cP,[L(`div`,lP,[L(`div`,uP,[z(` Точек: `+Ce(s.value.story?.places?.length)+` `,1),R(A(Kw),{quaternary:``,onClick:t[0]||=e=>r.value=!0,class:`settings-button`},{default:M(()=>[R(A(ZM),{class:`settings-icon`},{default:M(()=>[R(A(LN))]),_:1}),t[16]||=z(` Настройки `,-1)]),_:1})]),R(sP,{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(bD),{justify:`end`},{default:M(()=>[R(A(Kw),{onClick:t[1]||=e=>v()},{default:M(()=>[...t[17]||=[z(`Отмена`,-1)]]),_:1}),R(A(Kw),{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(pa,null,Zr(s.value.story?.places,e=>(F(),Ca(sP,{place:e,mode:e.mode,"onUpdate:mode":t=>e.mode=t,key:e.code},{default:M(()=>[R(A(bD),{justify:`end`},{default:M(()=>[R(A(Kw),{onClick:t=>S(e),type:`error`,ghost:``},{default:M(()=>[...t[19]||=[z(`Удалить`,-1)]]),_:1},8,[`onClick`]),R(A(Kw),{onClick:t=>b(e)},{default:M(()=>[...t[20]||=[z(`Отмена`,-1)]]),_:1},8,[`onClick`]),R(A(Kw),{onClick:t=>x(e)},{default:M(()=>[...t[21]||=[z(`Сохранить`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1032,[`place`,`mode`,`onUpdate:mode`]))),128))])]),R(A(OE),{show:r.value,"onUpdate:show":t[15]||=e=>r.value=e},{default:M(()=>[R(A(uT),{style:{width:`600px`},title:`Настройки сценария`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":M(()=>[R(A(Kw),{onClick:t[7]||=e=>r.value=!1},{default:M(()=>[...t[22]||=[z(` x `,-1)]]),_:1})]),footer:M(()=>[...t[32]||=[]]),default:M(()=>[R(A(pD),{vertical:``},{default:M(()=>[t[28]||=L(`p`,null,`Название`,-1),R(A(lw),{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(lw),{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(lw),{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(uA),{"directory-dnd":``,max:1,"file-list":o.value,"onUpdate:fileList":t[11]||=e=>o.value=e},{default:M(()=>[R(A(Fk),null,{default:M(()=>[R(A(Mk),{style:{"font-size":`16px`}},{default:M(()=>[...t[23]||=[z(` Щелкните или перетащите файл в эту область для загрузки `,-1)]]),_:1})]),_:1})]),_:1},8,[`file-list`]),R(A(Kw),{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(Mk),{class:`name-text`,strong:``},{default:M(()=>[z(Ce(s.value.name),1)]),_:1}),t[26]||=z(` чтобы удалить его `,-1)]),R(A(lw),{value:i.value,"onUpdate:value":t[13]||=e=>i.value=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`]),R(A(Kw),{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(uN,{"add-logout":!0,active:`scenarios`})],64))}}),[[`__scopeId`,`data-v-810fc02a`]]),fP=P({__name:`ScenariosEditorView`,setup(e){return(e,t)=>(F(),Ca(dP))}}),pP={class:`center-block-custom-big content-block`},mP={class:`scenarios-container`},hP=[`onClick`],gP={class:`scenario-title`},_P=lN(P({__name:`ScenariosPage`,setup(e){let t=rN(),n=k([]),r=OA(),i=UE(),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(pa,null,[L(`div`,pP,[L(`div`,mP,[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(pa,null,Zr(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`,gP,Ce(e.name),1)],8,hP))),128))])]),R(A(OE),{show:a.value,"onUpdate:show":t[4]||=e=>a.value=e},{default:M(()=>[R(A(uT),{style:{width:`600px`},title:`Создание сценария`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":M(()=>[R(A(Kw),{onClick:t[1]||=e=>a.value=!1},{default:M(()=>[...t[6]||=[z(` x `,-1)]]),_:1})]),footer:M(()=>[R(A(Kw),{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(lw),{value:o.value,"onUpdate:value":t[2]||=e=>o.value=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`])]),_:1})]),_:1},8,[`show`]),R(uN,{"add-logout":!0,active:`scenarios`})],64))}}),[[`__scopeId`,`data-v-b389c9aa`]]),vP=P({__name:`ScenariosView`,setup(e){return(e,t)=>(F(),Ca(_P))}}),yP={};function bP(e,t){return`Пользовательское соглашение`}var xP=lN(yP,[[`render`,bP]]),SP={class:`center-block-custom content-block`},CP={class:`users-container`},wP={class:`user-field`},TP={class:`user-field`},EP={class:`user-field`},DP=lN(P({__name:`UsersPage`,setup(e){let t=rN(),n=UE(),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(pa,null,[L(`div`,SP,[L(`div`,CP,[(F(!0),I(pa,null,Zr(r.value,e=>(F(),I(`div`,{key:e.id,class:`user-block`},[L(`div`,wP,` Позывной: `+Ce(e.username),1),L(`div`,TP,` Почта: `+Ce(e.email),1),L(`div`,EP,[R(A(pD),null,{default:M(()=>[t[0]||=z(` Роли: `,-1),(F(!0),I(pa,null,Zr(e.roles,e=>(F(),Ca(A(MC),{bordered:!1,key:e},{default:M(()=>[z(Ce(e),1)]),_:2},1024))),128))]),_:2},1024)]),R(A(bD),{justify:`end`,class:`roles-buttons-block`},{default:M(()=>[e.roles?.includes(`author`)?(F(),Ca(A(Kw),{key:1,onClick:t=>o(e.id,`author`)},{default:M(()=>[...t[2]||=[z(`Забрать роль автора`,-1)]]),_:1},8,[`onClick`])):(F(),Ca(A(Kw),{key:0,onClick:t=>a(e.id,`author`)},{default:M(()=>[...t[1]||=[z(`Сделать автором`,-1)]]),_:1},8,[`onClick`])),e.roles?.includes(`organizer`)?(F(),Ca(A(Kw),{key:3,onClick:t=>o(e.id,`organizer`)},{default:M(()=>[...t[4]||=[z(`Забрать роль организатора`,-1)]]),_:1},8,[`onClick`])):(F(),Ca(A(Kw),{key:2,onClick:t=>a(e.id,`organizer`)},{default:M(()=>[...t[3]||=[z(`Сделать организатором`,-1)]]),_:1},8,[`onClick`]))]),_:2},1024)]))),128))])]),R(uN,{"add-logout":!0,active:`users`})],64))}}),[[`__scopeId`,`data-v-475b5dbd`]]),OP=P({__name:`UsersView`,setup(e){return(e,t)=>(F(),Ca(DP))}}),kP=dM({history:Nj(`/`),routes:[{path:`/`,name:`home`,component:pN},{path:`/login`,name:`login`,component:kN},{path:`/office`,name:`office`,component:MN},{path:`/user-agreement`,name:`user-agreement`,component:xP},{path:`/privacy-policy`,name:`privacy-policy`,component:FN},{path:`/games`,name:`games`,component:fN},{path:`/scenarios`,name:`scenarios`,component:vP},{path:`/scenarios/:id`,name:`ScenariosEditorView`,component:fP},{path:`/users`,name:`users`,component:OP}]}),AP=Ts(fM);AP.use(Ks()),AP.use(kP),AP.mount(`#app`); \ No newline at end of file diff --git a/dist/assets/index-BlF9CL1O.css b/dist/assets/index-RcOLieKE.css similarity index 53% rename from dist/assets/index-BlF9CL1O.css rename to dist/assets/index-RcOLieKE.css index aedcd07..58822e1 100644 --- a/dist/assets/index-BlF9CL1O.css +++ b/dist/assets/index-RcOLieKE.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;--main-color:#22323c;--second-color:burlywood;--main-back-color:#f0f0f0;--main-back-item-color:#fefefe;--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}}.hr[data-v-4d7284a2]{border:1px dashed #eee;margin:10px 0}.place-block-hover[data-v-4d7284a2],.place-block[data-v-4d7284a2]{border:1px solid #444;border-radius:10px;margin:10px 0;padding:20px}.place-block-hover[data-v-4d7284a2]:hover{color:#63e2b7}.place-image-plus[data-v-4d7284a2]{justify-content:center;align-items:center;font-size:30px;display:flex}.show-editor-block[data-v-4d7284a2]{cursor:pointer}.message-content[data-v-4d7284a2]{white-space:pre-wrap;font-weight:500}.gray-block[data-v-4d7284a2]{color:#777;margin-top:5px}.application-block[data-v-4d7284a2]{color:#deb887;margin-right:5px}.door-block[data-v-4d7284a2]{color:#eee;background-color:#222;border-radius:5px;margin:10px 5px 10px 0;padding:5px 10px;display:inline-block}.door-add-block[data-v-4d7284a2]{color:#eee;background-color:#222;border-radius:5px;padding:10px}.key-block[data-v-4d7284a2]{color:gold;margin-left:10px}.lock-icon[data-v-4d7284a2]{position:relative;top:2px}.door-field[data-v-4d7284a2]{margin-top:10px}.need-keys-text[data-v-4d7284a2]{color:gold;margin:15px 0 0;padding:0}.slot-block[data-v-4d7284a2]{margin-top:10px}.plus-minus-buttons[data-v-4d7284a2]{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-4d7284a2]:hover{cursor:pointer;color:#63e2b7}.message-image-border[data-v-4d7284a2]{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-4d7284a2]{width:100%}.message-edit-image[data-v-4d7284a2]{width:135px;height:135px}.message-header[data-v-4d7284a2]{padding-right:50px;font-size:20px}.message-footer[data-v-4d7284a2]{color:var(--second-color);padding-right:50px;font-weight:400;position:relative}.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} +: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;--main-color:#22323c;--second-color:burlywood;--main-back-color:#f0f0f0;--main-back-item-color:#fefefe;--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}}.hr[data-v-19e95c2c]{border:1px dashed #eee;margin:10px 0}.place-block-hover[data-v-19e95c2c],.place-block[data-v-19e95c2c]{border:1px solid #444;border-radius:10px;margin:10px 0;padding:20px}.place-block-hover[data-v-19e95c2c]:hover{color:#63e2b7}.place-image-plus[data-v-19e95c2c]{justify-content:center;align-items:center;font-size:30px;display:flex}.show-editor-block[data-v-19e95c2c]{cursor:pointer}.message-content[data-v-19e95c2c]{white-space:pre-wrap;font-weight:500}.gray-block[data-v-19e95c2c]{color:#777;margin-top:5px}.application-block[data-v-19e95c2c]{color:#deb887;margin-right:5px}.door-block[data-v-19e95c2c]{color:#eee;background-color:#222;border-radius:5px;margin:10px 5px 10px 0;padding:5px 10px;display:inline-block}.door-add-block[data-v-19e95c2c]{color:#eee;background-color:#222;border-radius:5px;padding:10px}.key-block[data-v-19e95c2c]{color:gold;margin-left:10px}.lock-icon[data-v-19e95c2c]{position:relative;top:2px}.door-field[data-v-19e95c2c]{margin-top:10px}.need-keys-text[data-v-19e95c2c]{color:gold;margin:15px 0 0;padding:0}.slot-block[data-v-19e95c2c]{margin-top:10px}.plus-minus-buttons[data-v-19e95c2c]{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-19e95c2c]:hover{cursor:pointer;color:#63e2b7}.message-image-border[data-v-19e95c2c]{float:left;background-image:url(/assets/paper_white-ZSlTzOTx.jpg);background-size:cover;width:40%;max-width:200px;margin-right:15px;padding:7px;transform:rotate(-3deg);box-shadow:0 3px 15px #626262}.message-image[data-v-19e95c2c]{width:100%}.message-edit-image[data-v-19e95c2c]{width:135px;height:135px}.message-header[data-v-19e95c2c]{padding-right:50px;font-size:20px}.message-footer[data-v-19e95c2c]{color:var(--second-color);padding-right:50px;font-weight:400;position:relative}.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 beff614..42db1c8 100644 --- a/dist/index.html +++ b/dist/index.html @@ -5,8 +5,8 @@ Вечерний детектив - - + +
diff --git a/src/components/PlaceBlock.vue b/src/components/PlaceBlock.vue index 0e9142d..44bb97c 100644 --- a/src/components/PlaceBlock.vue +++ b/src/components/PlaceBlock.vue @@ -329,6 +329,7 @@ function onCreateKey(): Key { .message-image-border { width: 40%; + max-width: 200px; float: left; padding: 7px; margin-right: 15px;