diff --git a/dist/assets/index-DYOtYLNc.css b/dist/assets/index-CuDfXOXi.css similarity index 92% rename from dist/assets/index-DYOtYLNc.css rename to dist/assets/index-CuDfXOXi.css index fa9c2f2..2614794 100644 --- a/dist/assets/index-DYOtYLNc.css +++ b/dist/assets/index-CuDfXOXi.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: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-fef78626]{background-color:#1d1d1d}.form-label[data-v-fef78626]{margin-top:10px}.form-button-wrapper[data-v-fef78626]{justify-content:center;display:flex}.docs-link[data-v-fef78626]{color:#45aa89}.docs-link[data-v-fef78626]:hover{color:#63e2b7}@media (width>=1024px){.sign-card[data-v-fef78626]{width:380px}}.place-block-hover[data-v-e5c8107f],.place-block[data-v-e5c8107f]{border:1px solid #444;border-radius:10px;margin:10px 0;padding:20px}.place-block-hover[data-v-e5c8107f]:hover{color:#63e2b7}.place-image-plus[data-v-e5c8107f]{justify-content:center;align-items:center;font-size:30px;display:flex}.show-editor-block[data-v-e5c8107f]{cursor:pointer}.message-content[data-v-e5c8107f]{white-space:pre-wrap}.gray-block[data-v-e5c8107f]{color:#777;margin-top:5px}.application-block[data-v-e5c8107f]{color:#deb887;margin-right:5px}.door-block[data-v-e5c8107f]{color:#eee;background-color:#222;border-radius:5px;margin:10px 5px 10px 0;padding:5px 10px;display:inline-block}.door-add-block[data-v-e5c8107f]{color:#eee;background-color:#222;border-radius:5px;padding:10px}.key-block[data-v-e5c8107f]{color:gold;margin-left:10px}.lock-icon[data-v-e5c8107f]{position:relative;top:2px}.door-field[data-v-e5c8107f]{margin-top:10px}.need-keys-text[data-v-e5c8107f]{color:gold;margin:15px 0 0;padding:0}.slot-block[data-v-e5c8107f]{margin-top:10px}.plus-minus-buttons[data-v-e5c8107f]{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-e5c8107f]:hover{cursor:pointer;color:#63e2b7}.settings-block[data-v-4cb7cc7c]{height:40px}.settings-button[data-v-4cb7cc7c]{float:right}.settings-icon[data-v-4cb7cc7c]{width:20px}.name-text[data-v-4cb7cc7c]{background-color:#ffffff1a;border-radius:3px;padding:3px}.settings-header[data-v-4cb7cc7c]{margin-top:20px}.settings-hr[data-v-4cb7cc7c]{margin:20px 0}.places-container[data-v-4cb7cc7c]{flex-flow:column;height:calc(100vh - 150px);padding:20px 0;display:flex;overflow-y:auto}@media (width>=1024px){.places-container[data-v-4cb7cc7c]{height:calc(100vh - 70px);padding:20px 250px}}.scenarios-container[data-v-42f8d954]{flex-flow:wrap;justify-content:center;height:calc(100vh - 150px);padding:20px 0;display:flex;overflow-y:auto}.scenario-block[data-v-42f8d954]{cursor:pointer;width:160px;margin:10px}.scenario-block[data-v-42f8d954]:hover{color:#63e2b7}.scenario-image-block[data-v-42f8d954]{border-radius:10px;height:160px}.scenario-image-block[data-v-42f8d954]:hover{color:#63e2b7;border:2px solid #63e2b7}.scenario-image-plus[data-v-42f8d954]{background-color:#333;justify-content:center;align-items:center;font-size:120px;display:flex}.scenario-image[data-v-42f8d954]{background-position:50%;background-size:cover}.scenario-title[data-v-42f8d954]{padding:5px 0}@media (width>=1024px){.scenarios-container[data-v-42f8d954]{height:calc(100vh - 70px)}.scenario-block[data-v-42f8d954]{width:250px}.scenario-image-block[data-v-42f8d954]{border-radius:10px;height:250px}}.users-container[data-v-4cbd9877]{padding:40px 0}.user-block[data-v-4cbd9877]{border:1px solid #444;border-radius:10px;margin:0 0 20px;padding:20px}.user-field[data-v-4cbd9877]{margin:10px} +: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: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-fef78626]{background-color:#1d1d1d}.form-label[data-v-fef78626]{margin-top:10px}.form-button-wrapper[data-v-fef78626]{justify-content:center;display:flex}.docs-link[data-v-fef78626]{color:#45aa89}.docs-link[data-v-fef78626]:hover{color:#63e2b7}@media (width>=1024px){.sign-card[data-v-fef78626]{width:380px}}.place-block-hover[data-v-e5c8107f],.place-block[data-v-e5c8107f]{border:1px solid #444;border-radius:10px;margin:10px 0;padding:20px}.place-block-hover[data-v-e5c8107f]:hover{color:#63e2b7}.place-image-plus[data-v-e5c8107f]{justify-content:center;align-items:center;font-size:30px;display:flex}.show-editor-block[data-v-e5c8107f]{cursor:pointer}.message-content[data-v-e5c8107f]{white-space:pre-wrap}.gray-block[data-v-e5c8107f]{color:#777;margin-top:5px}.application-block[data-v-e5c8107f]{color:#deb887;margin-right:5px}.door-block[data-v-e5c8107f]{color:#eee;background-color:#222;border-radius:5px;margin:10px 5px 10px 0;padding:5px 10px;display:inline-block}.door-add-block[data-v-e5c8107f]{color:#eee;background-color:#222;border-radius:5px;padding:10px}.key-block[data-v-e5c8107f]{color:gold;margin-left:10px}.lock-icon[data-v-e5c8107f]{position:relative;top:2px}.door-field[data-v-e5c8107f]{margin-top:10px}.need-keys-text[data-v-e5c8107f]{color:gold;margin:15px 0 0;padding:0}.slot-block[data-v-e5c8107f]{margin-top:10px}.plus-minus-buttons[data-v-e5c8107f]{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-e5c8107f]:hover{cursor:pointer;color:#63e2b7}.settings-block[data-v-8b928df1]{height:40px}.settings-button[data-v-8b928df1]{float:right}.settings-icon[data-v-8b928df1]{width:20px}.name-text[data-v-8b928df1]{background-color:#ffffff1a;border-radius:3px;padding:3px}.settings-header[data-v-8b928df1]{margin-top:20px}.settings-hr[data-v-8b928df1]{margin:20px 0}.places-container[data-v-8b928df1]{flex-flow:column;height:calc(100vh - 150px);padding:20px 0;display:flex;overflow-y:auto}@media (width>=1024px){.places-container[data-v-8b928df1]{height:calc(100vh - 70px);padding:20px 250px}}.scenarios-container[data-v-42f8d954]{flex-flow:wrap;justify-content:center;height:calc(100vh - 150px);padding:20px 0;display:flex;overflow-y:auto}.scenario-block[data-v-42f8d954]{cursor:pointer;width:160px;margin:10px}.scenario-block[data-v-42f8d954]:hover{color:#63e2b7}.scenario-image-block[data-v-42f8d954]{border-radius:10px;height:160px}.scenario-image-block[data-v-42f8d954]:hover{color:#63e2b7;border:2px solid #63e2b7}.scenario-image-plus[data-v-42f8d954]{background-color:#333;justify-content:center;align-items:center;font-size:120px;display:flex}.scenario-image[data-v-42f8d954]{background-position:50%;background-size:cover}.scenario-title[data-v-42f8d954]{padding:5px 0}@media (width>=1024px){.scenarios-container[data-v-42f8d954]{height:calc(100vh - 70px)}.scenario-block[data-v-42f8d954]{width:250px}.scenario-image-block[data-v-42f8d954]{border-radius:10px;height:250px}}.users-container[data-v-4cbd9877]{padding:40px 0}.user-block[data-v-4cbd9877]{border:1px solid #444;border-radius:10px;margin:0 0 20px;padding:20px}.user-field[data-v-4cbd9877]{margin:10px} diff --git a/dist/assets/index-fNO4MVHN.js b/dist/assets/index-D_LAYSBQ.js similarity index 98% rename from dist/assets/index-fNO4MVHN.js rename to dist/assets/index-D_LAYSBQ.js index 0425539..b1433ae 100644 --- a/dist/assets/index-fNO4MVHN.js +++ b/dist/assets/index-D_LAYSBQ.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=F({name:`Icon`,props:$M,setup(e,{slots:t}){let n=P(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 zr(()=>{QM()}),()=>V(a.value,{class:`xicon`,style:{color:i.value,fontSize:r.value}},[ti(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=A(null),t=A(null),n=A(null),r=A(!1),i=A(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=F({__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=A([]);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=A(!1);return(e,i)=>(I(),L(`div`,dN,[j(n).hasRole(`user`)?(I(),L(`div`,{key:0,onClick:i[0]||=e=>u.value=!u.value,class:`burger-button`},[z(j(nN),{class:`burger-icon`,size:`28`},{default:N(()=>[z(j(xM))]),_:1})])):Fa(``,!0),R(`div`,{class:he([`left-group menu-buttons-block`,u.value?``:`menu-buttons-block-active`])},[j(n).hasRole(`user`)?(I(),L(`div`,{key:0,class:he([`menu-item-block`,{active:t.active==`office`}]),onClick:i[1]||=e=>j(r).push(`/office`)},` Кабинет `,2)):Fa(``,!0),s(`games_page`)?(I(),L(`div`,{key:1,class:he([`menu-item-block`,{active:t.active==`games`}]),onClick:i[2]||=e=>j(r).push(`/games`)},` Игры `,2)):Fa(``,!0),s(`scenarios_page`)?(I(),L(`div`,{key:2,class:he([`menu-item-block`,{active:t.active==`scenarios`}]),onClick:i[3]||=e=>j(r).push(`/scenarios`)},` Мои сценарии `,2)):Fa(``,!0),s(`users_page`)?(I(),L(`div`,{key:3,class:he([`menu-item-block`,{active:t.active==`users`}]),onClick:i[4]||=e=>j(r).push(`/users`)},` Пользователи `,2)):Fa(``,!0)],2),R(`div`,fN,[t.addLogin?(I(),L(`div`,{key:0,class:`menu-item-block right`,onClick:c},` Войти `)):Fa(``,!0),t.addLogout?(I(),L(`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=F({__name:`GamesPage`,setup(e){return(e,t)=>(I(),L(ga,null,[t[0]||=R(`div`,{class:`center-block-custom content-block`},`Игры`,-1),z(hN,{"add-logout":!0,active:`games`})],64))}}),_N=F({__name:`GamesView`,setup(e){return(e,t)=>(I(),Ea(gN))}}),vN=F({__name:`HomeView`,setup(e){return(e,t)=>(I(),L(ga,null,[t[0]||=R(`div`,{class:`center-block-custom content-block center-middle-block-custom height80`},[R(`div`,null,[R(`h1`,{class:`font-text`},`Вечерний детектив`),R(`h3`,{class:`font-text`},`Дело №0`),R(`p`,{class:`content-text`},` Поиграем? `)])],-1),z(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=mN(F({__name:`LoginPage`,setup(e){let t=sN(),n=NA(),r=JE(),i=A(``),a=A(``),o=A(``),s=A(!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(`Пароль отправлен на почту`)}}return(e,n)=>(I(),L(`div`,yN,[z(j(hT),{style:{"margin-bottom":`16px`},class:`sign-card`},{default:N(()=>[z(j(jk),{type:`line`,animated:``},{default:N(()=>[z(j(Dk),{name:`signin`,tab:`Вход`},{default:N(()=>[z(j(vD),{vertical:``},{default:N(()=>[n[5]||=R(`div`,{class:`form-label`},`Почта`,-1),z(j(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[6]||=R(`div`,{class:`form-label`},`Пароль`,-1),z(j(mw),{value:o.value,"onUpdate:value":n[1]||=e=>o.value=e,type:`password`,placeholder:`********`},null,8,[`value`]),R(`div`,bN,[R(`div`,xN,[z(j(Zw),{onClick:l,disabled:a.value.length==0||o.value.length==0},{default:N(()=>[j(t).isLoading?(I(),L(`span`,CN,` Подождите... `)):(I(),L(`span`,SN,` Вход `))]),_:1},8,[`disabled`])])])]),_:1})]),_:1}),z(j(Dk),{name:`signup`,tab:`Регистрация`},{default:N(()=>[z(j(vD),{vertical:``},{default:N(()=>[n[8]||=R(`div`,{class:`form-label`},`Позывной`,-1),z(j(mw),{value:i.value,"onUpdate:value":n[2]||=e=>i.value=e,type:`text`,placeholder:`Шерлок`},null,8,[`value`]),n[9]||=R(`div`,{class:`form-label`},`Почта`,-1),z(j(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`]),R(`div`,wN,[z(j(OT),{checked:s.value,"onUpdate:checked":n[4]||=e=>s.value=e},{default:N(()=>[...n[7]||=[Pa(` Я согласен с `,-1),R(`a`,{href:`/user-agreement`,target:`_blank`,class:`docs-link`},`пользовательским соглашением`,-1),R(`br`,null,null,-1),Pa(` и `,-1),R(`a`,{href:`/privacy-policy`,target:`_blank`,class:`docs-link`},`соглашением о персональных данных`,-1)]]),_:1},8,[`checked`])]),R(`div`,TN,[R(`div`,EN,[z(j(Zw),{onClick:u,disabled:i.value.length==0||o.value.length==0||!s.value},{default:N(()=>[j(t).isLoading?(I(),L(`span`,ON,` Подождите... `)):(I(),L(`span`,DN,` Регистрация `))]),_:1},8,[`disabled`])])])]),_:1})]),_:1})]),_:1})]),_:1})]))}}),[[`__scopeId`,`data-v-fef78626`]]),AN=F({__name:`LoginView`,setup(e){return(e,t)=>(I(),Ea(kN))}}),jN={class:`center-block-custom content-block`},MN=F({__name:`OfficePage`,setup(e){let t=sN(),n=cN(),r=A([]);async function i(){r.value=[];let e=await n.GetPermissions({});r.value=e.permissions}return i(),(e,n)=>(I(),L(ga,null,[R(`div`,jN,[R(`p`,null,`Доброго времени суток, `+Se(j(t).username)+`.`,1)]),z(hN,{"add-logout":!0,active:`office`})],64))}}),NN=F({__name:`OfficeView`,setup(e){return(e,t)=>(I(),Ea(MN))}}),PN={};function FN(e,t){return`Соглашением о персональных данных`}var IN=mN(PN,[[`render`,FN]]),LN={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},RN=F({name:`Settings`,render:function(e,t){return I(),L(`svg`,LN,t[0]||=[R(`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),R(`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)])}}),zN={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 24 24`},BN=F({name:`Key24Regular`,render:function(e,t){return I(),L(`svg`,zN,t[0]||=[R(`g`,{fill:`none`},[R(`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)])}}),VN={key:1,class:`place-block`},HN={class:`message-content`},UN={class:`key-block`},WN={class:`gray-block`},GN={key:0},KN={class:`key-block`},qN={key:3,class:`place-block`},JN={style:{display:`flex`,"align-items":`center`,width:`100%`}},YN={style:{display:`flex`,"flex-direction":`column`}},XN={style:{display:`flex`,"flex-direction":`column`,width:`100%`}},ZN={class:`door-add-block`},QN={class:`door-field`},$N={style:{display:`flex`,"align-items":`center`,width:`100%`}},eP={style:{display:`flex`,"align-items":`center`,width:`100%`}},tP={class:`slot-block`},nP=mN(F({__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=Xr(`n-button`);return I(),L(ga,null,[e.mode==`mini-add`?(I(),L(`div`,{key:0,class:`place-block-hover show-editor-block`,onClick:r[0]||=e=>s(`add`)},[...r[9]||=[R(`p`,{class:`place-image-plus`},`+`,-1)]])):Fa(``,!0),e.mode==`add`?(I(),L(`div`,VN,[z(j(vD),{vertical:``},{default:N(()=>[z(j(gw),null,{default:N(()=>[z(j(mw),{style:{width:`20%`},value:e.newPlaceCode,"onUpdate:value":i,type:`text`,placeholder:`Ы-1`},null,8,[`value`]),z(j(mw),{style:{width:`80%`},value:e.newPlaceName,"onUpdate:value":a,type:`text`,placeholder:`Дом №Ы`},null,8,[`value`])]),_:1}),z(j(mw),{value:e.newPlaceText,"onUpdate:value":o,type:`textarea`,autosize:{minRows:3},placeholder:`В начале было слово...`},null,8,[`value`]),ti(t.$slots,`default`,{},void 0,!0)]),_:3})])):Fa(``,!0),e.mode==`show-editor`?(I(),L(`div`,{key:2,class:`place-block-hover show-editor-block`,onClick:r[1]||=e=>s(`edit`)},[R(`p`,null,`[`+Se(n.place.code)+`] - `+Se(n.place.name),1),R(`div`,HN,Se(n.place.text),1),(I(!0),L(ga,null,ei(n.place.doors,e=>(I(),L(`div`,{key:e.code,class:`door-block`},[Pa(Se(e.name)+` `,1),(I(!0),L(ga,null,ei(e.keys,e=>(I(),L(`span`,UN,[z(j(nN),{class:`lock-icon`},{default:N(()=>[z(j(yM))]),_:1}),Pa(` `+Se(e.name),1)]))),256))]))),128)),(I(!0),L(ga,null,ei(n.place.applications,e=>(I(),L(`div`,{key:e.name,class:`application-block`},` Приложение: `+Se(e.name),1))),128)),R(`p`,WN,[e.place.hidden?(I(),L(`span`,GN,` Скрытая точка `)):Fa(``,!0),(I(!0),L(ga,null,ei(e.place.keys,e=>(I(),L(`span`,KN,[z(j(nN),{class:`lock-icon`},{default:N(()=>[z(j(BN))]),_:1}),Pa(` `+Se(e.name),1)]))),256))])])):Fa(``,!0),e.mode==`edit`?(I(),L(`div`,qN,[z(j(vD),{vertical:``},{default:N(()=>[z(j(gw),null,{default:N(()=>[z(j(mw),{style:{width:`20%`},value:n.place.code,"onUpdate:value":r[2]||=e=>n.place.code=e,type:`text`,placeholder:`Ы-1`},null,8,[`value`]),z(j(mw),{style:{width:`80%`},value:n.place.name,"onUpdate:value":r[3]||=e=>n.place.name=e,type:`text`,placeholder:`Дом №Ы`},null,8,[`value`])]),_:1}),z(j(mw),{value:n.place.text,"onUpdate:value":r[4]||=e=>n.place.text=e,type:`textarea`,autosize:{minRows:3},placeholder:`В начале было слово...`},null,8,[`value`]),z(j(wk),{value:n.place.hidden,"onUpdate:value":r[5]||=e=>n.place.hidden=e},{checked:N(()=>[...r[10]||=[Pa(` Скрытая точка `,-1)]]),unchecked:N(()=>[...r[11]||=[Pa(` Обычная точка `,-1)]]),_:1},8,[`value`]),r[19]||=Pa(` Улики `,-1),z(j(dD),{value:n.place.applications,"onUpdate:value":r[6]||=e=>n.place.applications=e,"on-create":c},{"create-button-default":N(()=>[...r[12]||=[Pa(` Добавить улику `,-1)]]),default:N(({value:e})=>[R(`div`,JN,[z(j(mw),{value:e.name,"onUpdate:value":t=>e.name=t,type:`text`},null,8,[`value`,`onUpdate:value`])])]),_:1},8,[`value`]),r[20]||=Pa(` Действия `,-1),z(j(dD),{value:n.place.doors,"onUpdate:value":r[7]||=e=>n.place.doors=e,"on-create":l},{"create-button-default":N(()=>[...r[13]||=[Pa(` Добавить действие `,-1)]]),action:N(({index:e,create:t,remove:n})=>[R(`div`,YN,[z(d,{onClick:()=>t(e),class:`plus-minus-buttons`},{default:N(()=>[...r[14]||=[Pa(`+`,-1)]]),_:1},8,[`onClick`]),z(d,{disabled:``,onClick:()=>n(e),class:`plus-minus-buttons`},{default:N(()=>[...r[15]||=[Pa(`-`,-1)]]),_:1},8,[`onClick`])])]),default:N(({value:e})=>[R(`div`,XN,[R(`div`,ZN,[z(j(gw),null,{default:N(()=>[z(j(mw),{style:{width:`30%`},value:e.code,"onUpdate:value":t=>e.code=t,type:`text`,placeholder:`Код`},null,8,[`value`,`onUpdate:value`]),z(j(mw),{style:{width:`70%`},value:e.name,"onUpdate:value":t=>e.name=t,type:`text`,placeholder:`Название`},null,8,[`value`,`onUpdate:value`])]),_:2},1024),r[17]||=R(`p`,{class:`need-keys-text`},`Требуемые ключи`,-1),R(`div`,QN,[z(j(dD),{value:e.keys,"onUpdate:value":t=>e.keys=t,"on-create":u},{"create-button-default":N(()=>[...r[16]||=[Pa(` Добавить ключ `,-1)]]),default:N(({value:e})=>[R(`div`,$N,[z(j(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[21]||=Pa(` Получаемые ключи `,-1),z(j(dD),{value:n.place.keys,"onUpdate:value":r[8]||=e=>n.place.keys=e,"on-create":u},{"create-button-default":N(()=>[...r[18]||=[Pa(` Добавить ключ `,-1)]]),default:N(({value:e})=>[R(`div`,eP,[z(j(mw),{value:e.name,"onUpdate:value":t=>e.name=t,type:`text`,placeholder:`Название`},null,8,[`value`,`onUpdate:value`])])]),_:1},8,[`value`]),R(`div`,tP,[ti(t.$slots,`default`,{},void 0,!0)])]),_:3})])):Fa(``,!0)],64)}}}),[[`__scopeId`,`data-v-e5c8107f`]]),rP={class:`center-block-custom-big content-block`},iP={class:`places-container`},aP={class:`settings-block`},oP=mN(F({__name:`ScenariosEditorPage`,setup(e){let t=cN(),n=PA().params.id,r=A(!1),i=A(``),a=JE(),o=A([]),s=A({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}wP.push(`/scenarios`)}async function u(){let e=o.value[0].file;if(!e)return;let i=await e.arrayBuffer(),l=new Uint8Array(i),u=await t.UploadFile({filename:`scenarios_`+s.value.id+`_`+e.name,data:d(l)});if(u.error!=``){a.error(u.error);return}let f=await t.UpdateScenario({id:s.value.id,name:s.value.name,description:s.value.description,image:u.filename});if(f.error!=``){a.error(f.error);return}await c(Number(n)),r.value=!1}function d(e){let t=String.fromCharCode(...e);return btoa(t)}let f=A(``),p=A(``),m=A(``),h=A(`mini-add`);async function g(){let e=await t.AddScenarioPlace({id:s.value.id,place:{code:f.value,name:p.value,text:m.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)),f.value=``,p.value=``,m.value=``,h.value=`add`}async function _(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 v(e){await c(Number(n)),e.mode=`show-editor`}async function y(e){await _(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 b(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)=>(I(),L(ga,null,[R(`div`,rP,[R(`div`,iP,[R(`div`,aP,[Pa(` Точек: `+Se(s.value.story?.places?.length)+` `,1),z(j(Zw),{quaternary:``,onClick:t[0]||=e=>r.value=!0,class:`settings-button`},{default:N(()=>[z(j(nN),{class:`settings-icon`},{default:N(()=>[z(j(RN))]),_:1}),t[16]||=Pa(` Настройки `,-1)]),_:1})]),z(nP,{mode:h.value,"onUpdate:mode":t[3]||=e=>h.value=e,newPlaceCode:f.value,"onUpdate:newPlaceCode":t[4]||=e=>f.value=e,newPlaceName:p.value,"onUpdate:newPlaceName":t[5]||=e=>p.value=e,newPlaceText:m.value,"onUpdate:newPlaceText":t[6]||=e=>m.value=e},{default:N(()=>[z(j(TD),{justify:`end`},{default:N(()=>[z(j(Zw),{onClick:t[1]||=e=>h.value=`add`},{default:N(()=>[...t[17]||=[Pa(`Отмена`,-1)]]),_:1}),z(j(Zw),{onClick:t[2]||=e=>g(),disabled:!f.value},{default:N(()=>[...t[18]||=[Pa(`Добавить точку`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1},8,[`mode`,`newPlaceCode`,`newPlaceName`,`newPlaceText`]),(I(!0),L(ga,null,ei(s.value.story?.places,e=>(I(),Ea(nP,{place:e,mode:e.mode,"onUpdate:mode":t=>e.mode=t,key:e.code},{default:N(()=>[z(j(TD),{justify:`end`},{default:N(()=>[z(j(Zw),{onClick:t=>b(e),type:`error`,ghost:``},{default:N(()=>[...t[19]||=[Pa(`Удалить`,-1)]]),_:1},8,[`onClick`]),z(j(Zw),{onClick:t=>v(e)},{default:N(()=>[...t[20]||=[Pa(`Отмена`,-1)]]),_:1},8,[`onClick`]),z(j(Zw),{onClick:t=>y(e)},{default:N(()=>[...t[21]||=[Pa(`Сохранить`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1032,[`place`,`mode`,`onUpdate:mode`]))),128))])]),z(j(NE),{show:r.value,"onUpdate:show":t[15]||=e=>r.value=e},{default:N(()=>[z(j(hT),{style:{width:`600px`},title:`Настройки сценария`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":N(()=>[z(j(Zw),{onClick:t[7]||=e=>r.value=!1},{default:N(()=>[...t[22]||=[Pa(` x `,-1)]]),_:1})]),footer:N(()=>[...t[32]||=[]]),default:N(()=>[z(j(vD),{vertical:``},{default:N(()=>[t[28]||=R(`p`,null,`Название`,-1),z(j(mw),{value:s.value.name,"onUpdate:value":t[8]||=e=>s.value.name=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`]),t[29]||=R(`p`,{class:`settings-header`},`Описание`,-1),z(j(mw),{value:s.value.description,"onUpdate:value":t[9]||=e=>s.value.description=e,type:`textarea`,placeholder:`Убийство пастуха...`},null,8,[`value`]),t[30]||=R(`p`,{class:`settings-header`},`Картинка`,-1),z(j(mw),{value:s.value.image,"onUpdate:value":t[10]||=e=>s.value.image=e,type:`text`,placeholder:`default_scenario.png`,disabled:``},null,8,[`value`]),z(j(hA),{multiple:``,"directory-dnd":``,max:1,"file-list":o.value,"onUpdate:fileList":t[11]||=e=>o.value=e},{default:N(()=>[z(j(Bk),null,{default:N(()=>[z(j(Lk),{style:{"font-size":`16px`}},{default:N(()=>[...t[23]||=[Pa(` Щелкните или перетащите файл в эту область для загрузки `,-1)]]),_:1})]),_:1})]),_:1},8,[`file-list`]),z(j(Zw),{onClick:t[12]||=e=>u(),ghost:``},{default:N(()=>[...t[24]||=[Pa(` Сохранить изменения `,-1)]]),_:1}),t[31]||=R(`hr`,{class:`settings-hr`},null,-1),R(`p`,null,[t[25]||=Pa(` Введите название сценария `,-1),z(j(Lk),{class:`name-text`,strong:``},{default:N(()=>[Pa(Se(s.value.name),1)]),_:1}),t[26]||=Pa(` чтобы удалить его `,-1)]),z(j(mw),{value:i.value,"onUpdate:value":t[13]||=e=>i.value=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`]),z(j(Zw),{onClick:t[14]||=e=>l(s.value.id),type:`error`,ghost:``,disabled:i.value!=s.value.name},{default:N(()=>[...t[27]||=[Pa(` Удалить сценарий `,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`show`]),z(hN,{"add-logout":!0,active:`scenarios`})],64))}}),[[`__scopeId`,`data-v-4cb7cc7c`]]),sP=F({__name:`ScenariosEditorView`,setup(e){return(e,t)=>(I(),Ea(oP))}}),cP={class:`center-block-custom-big content-block`},lP={class:`scenarios-container`},uP=[`onClick`],dP={class:`scenario-title`},fP=mN(F({__name:`ScenariosPage`,setup(e){let t=cN(),n=A([]),r=NA(),i=JE(),a=A(!1),o=A(``);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)=>(I(),L(ga,null,[R(`div`,cP,[R(`div`,lP,[R(`div`,{class:`scenario-block`,onClick:t[0]||=e=>a.value=!0},[...t[5]||=[R(`div`,{class:`scenario-image-block scenario-image-plus`},`+`,-1),R(`p`,{class:`scenario-title`},`Создать новый сценарий`,-1)]]),(I(!0),L(ga,null,ei(n.value,e=>(I(),L(`div`,{class:`scenario-block`,onClick:t=>l(e.id),key:e.id},[R(`div`,{class:`scenario-image-block scenario-image`,style:ue({backgroundImage:`url(${e.image})`})},null,4),R(`p`,dP,Se(e.name),1)],8,uP))),128))])]),z(j(NE),{show:a.value,"onUpdate:show":t[4]||=e=>a.value=e},{default:N(()=>[z(j(hT),{style:{width:`600px`},title:`Создание сценария`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":N(()=>[z(j(Zw),{onClick:t[1]||=e=>a.value=!1},{default:N(()=>[...t[6]||=[Pa(` x `,-1)]]),_:1})]),footer:N(()=>[z(j(Zw),{onClick:t[3]||=e=>c(o.value),disabled:o.value.length==0},{default:N(()=>[...t[7]||=[Pa(` Создать `,-1)]]),_:1},8,[`disabled`])]),default:N(()=>[z(j(mw),{value:o.value,"onUpdate:value":t[2]||=e=>o.value=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`])]),_:1})]),_:1},8,[`show`]),z(hN,{"add-logout":!0,active:`scenarios`})],64))}}),[[`__scopeId`,`data-v-42f8d954`]]),pP=F({__name:`ScenariosView`,setup(e){return(e,t)=>(I(),Ea(fP))}}),mP={};function hP(e,t){return`Пользовательское соглашение`}var gP=mN(mP,[[`render`,hP]]),_P={class:`center-block-custom content-block`},vP={class:`users-container`},yP={class:`user-field`},bP={class:`user-field`},xP={class:`user-field`},SP=mN(F({__name:`UsersPage`,setup(e){let t=cN(),n=JE(),r=A([]);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)=>(I(),L(ga,null,[R(`div`,_P,[R(`div`,vP,[(I(!0),L(ga,null,ei(r.value,e=>(I(),L(`div`,{key:e.id,class:`user-block`},[R(`div`,yP,` Позывной: `+Se(e.username),1),R(`div`,bP,` Почта: `+Se(e.email),1),R(`div`,xP,[z(j(vD),null,{default:N(()=>[t[0]||=Pa(` Роли: `,-1),(I(!0),L(ga,null,ei(e.roles,e=>(I(),Ea(j(LC),{bordered:!1,key:e},{default:N(()=>[Pa(Se(e),1)]),_:2},1024))),128))]),_:2},1024)]),z(j(TD),{justify:`end`},{default:N(()=>[e.roles?.includes(`author`)?(I(),Ea(j(Zw),{key:1,onClick:t=>o(e.id,`author`)},{default:N(()=>[...t[2]||=[Pa(`Забрать роль автора`,-1)]]),_:1},8,[`onClick`])):(I(),Ea(j(Zw),{key:0,onClick:t=>a(e.id,`author`)},{default:N(()=>[...t[1]||=[Pa(`Сделать автором`,-1)]]),_:1},8,[`onClick`])),e.roles?.includes(`organizer`)?(I(),Ea(j(Zw),{key:3,onClick:t=>o(e.id,`organizer`)},{default:N(()=>[...t[4]||=[Pa(`Забрать роль организатора`,-1)]]),_:1},8,[`onClick`])):(I(),Ea(j(Zw),{key:2,onClick:t=>a(e.id,`organizer`)},{default:N(()=>[...t[3]||=[Pa(`Сделать организатором`,-1)]]),_:1},8,[`onClick`]))]),_:2},1024)]))),128))])]),z(hN,{"add-logout":!0,active:`users`})],64))}}),[[`__scopeId`,`data-v-4cbd9877`]]),CP=F({__name:`UsersView`,setup(e){return(e,t)=>(I(),Ea(SP))}}),wP=gM({history:Rj(`/`),routes:[{path:`/`,name:`home`,component:vN},{path:`/login`,name:`login`,component:AN},{path:`/office`,name:`office`,component:NN},{path:`/user-agreement`,name:`user-agreement`,component:gP},{path:`/privacy-policy`,name:`privacy-policy`,component:IN},{path:`/games`,name:`games`,component:_N},{path:`/scenarios`,name:`scenarios`,component:pP},{path:`/scenarios/:id`,name:`ScenariosEditorView`,component:sP},{path:`/users`,name:`users`,component:CP}]}),TP=As(_M);TP.use(Zs()),TP.use(wP),TP.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=F({name:`Icon`,props:$M,setup(e,{slots:t}){let n=P(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 zr(()=>{QM()}),()=>V(a.value,{class:`xicon`,style:{color:i.value,fontSize:r.value}},[ti(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=A(null),t=A(null),n=A(null),r=A(!1),i=A(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=F({__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=A([]);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=A(!1);return(e,i)=>(I(),L(`div`,dN,[j(n).hasRole(`user`)?(I(),L(`div`,{key:0,onClick:i[0]||=e=>u.value=!u.value,class:`burger-button`},[z(j(nN),{class:`burger-icon`,size:`28`},{default:N(()=>[z(j(xM))]),_:1})])):Fa(``,!0),R(`div`,{class:he([`left-group menu-buttons-block`,u.value?``:`menu-buttons-block-active`])},[j(n).hasRole(`user`)?(I(),L(`div`,{key:0,class:he([`menu-item-block`,{active:t.active==`office`}]),onClick:i[1]||=e=>j(r).push(`/office`)},` Кабинет `,2)):Fa(``,!0),s(`games_page`)?(I(),L(`div`,{key:1,class:he([`menu-item-block`,{active:t.active==`games`}]),onClick:i[2]||=e=>j(r).push(`/games`)},` Игры `,2)):Fa(``,!0),s(`scenarios_page`)?(I(),L(`div`,{key:2,class:he([`menu-item-block`,{active:t.active==`scenarios`}]),onClick:i[3]||=e=>j(r).push(`/scenarios`)},` Мои сценарии `,2)):Fa(``,!0),s(`users_page`)?(I(),L(`div`,{key:3,class:he([`menu-item-block`,{active:t.active==`users`}]),onClick:i[4]||=e=>j(r).push(`/users`)},` Пользователи `,2)):Fa(``,!0)],2),R(`div`,fN,[t.addLogin?(I(),L(`div`,{key:0,class:`menu-item-block right`,onClick:c},` Войти `)):Fa(``,!0),t.addLogout?(I(),L(`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=F({__name:`GamesPage`,setup(e){return(e,t)=>(I(),L(ga,null,[t[0]||=R(`div`,{class:`center-block-custom content-block`},`Игры`,-1),z(hN,{"add-logout":!0,active:`games`})],64))}}),_N=F({__name:`GamesView`,setup(e){return(e,t)=>(I(),Ea(gN))}}),vN=F({__name:`HomeView`,setup(e){return(e,t)=>(I(),L(ga,null,[t[0]||=R(`div`,{class:`center-block-custom content-block center-middle-block-custom height80`},[R(`div`,null,[R(`h1`,{class:`font-text`},`Вечерний детектив`),R(`h3`,{class:`font-text`},`Дело №0`),R(`p`,{class:`content-text`},` Поиграем? `)])],-1),z(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=mN(F({__name:`LoginPage`,setup(e){let t=sN(),n=NA(),r=JE(),i=A(``),a=A(``),o=A(``),s=A(!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(`Пароль отправлен на почту`)}}return(e,n)=>(I(),L(`div`,yN,[z(j(hT),{style:{"margin-bottom":`16px`},class:`sign-card`},{default:N(()=>[z(j(jk),{type:`line`,animated:``},{default:N(()=>[z(j(Dk),{name:`signin`,tab:`Вход`},{default:N(()=>[z(j(vD),{vertical:``},{default:N(()=>[n[5]||=R(`div`,{class:`form-label`},`Почта`,-1),z(j(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[6]||=R(`div`,{class:`form-label`},`Пароль`,-1),z(j(mw),{value:o.value,"onUpdate:value":n[1]||=e=>o.value=e,type:`password`,placeholder:`********`},null,8,[`value`]),R(`div`,bN,[R(`div`,xN,[z(j(Zw),{onClick:l,disabled:a.value.length==0||o.value.length==0},{default:N(()=>[j(t).isLoading?(I(),L(`span`,CN,` Подождите... `)):(I(),L(`span`,SN,` Вход `))]),_:1},8,[`disabled`])])])]),_:1})]),_:1}),z(j(Dk),{name:`signup`,tab:`Регистрация`},{default:N(()=>[z(j(vD),{vertical:``},{default:N(()=>[n[8]||=R(`div`,{class:`form-label`},`Позывной`,-1),z(j(mw),{value:i.value,"onUpdate:value":n[2]||=e=>i.value=e,type:`text`,placeholder:`Шерлок`},null,8,[`value`]),n[9]||=R(`div`,{class:`form-label`},`Почта`,-1),z(j(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`]),R(`div`,wN,[z(j(OT),{checked:s.value,"onUpdate:checked":n[4]||=e=>s.value=e},{default:N(()=>[...n[7]||=[Pa(` Я согласен с `,-1),R(`a`,{href:`/user-agreement`,target:`_blank`,class:`docs-link`},`пользовательским соглашением`,-1),R(`br`,null,null,-1),Pa(` и `,-1),R(`a`,{href:`/privacy-policy`,target:`_blank`,class:`docs-link`},`соглашением о персональных данных`,-1)]]),_:1},8,[`checked`])]),R(`div`,TN,[R(`div`,EN,[z(j(Zw),{onClick:u,disabled:i.value.length==0||o.value.length==0||!s.value},{default:N(()=>[j(t).isLoading?(I(),L(`span`,ON,` Подождите... `)):(I(),L(`span`,DN,` Регистрация `))]),_:1},8,[`disabled`])])])]),_:1})]),_:1})]),_:1})]),_:1})]))}}),[[`__scopeId`,`data-v-fef78626`]]),AN=F({__name:`LoginView`,setup(e){return(e,t)=>(I(),Ea(kN))}}),jN={class:`center-block-custom content-block`},MN=F({__name:`OfficePage`,setup(e){let t=sN(),n=cN(),r=A([]);async function i(){r.value=[];let e=await n.GetPermissions({});r.value=e.permissions}return i(),(e,n)=>(I(),L(ga,null,[R(`div`,jN,[R(`p`,null,`Доброго времени суток, `+Se(j(t).username)+`.`,1)]),z(hN,{"add-logout":!0,active:`office`})],64))}}),NN=F({__name:`OfficeView`,setup(e){return(e,t)=>(I(),Ea(MN))}}),PN={};function FN(e,t){return`Соглашением о персональных данных`}var IN=mN(PN,[[`render`,FN]]),LN={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 32 32`},RN=F({name:`Settings`,render:function(e,t){return I(),L(`svg`,LN,t[0]||=[R(`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),R(`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)])}}),zN={xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`,viewBox:`0 0 24 24`},BN=F({name:`Key24Regular`,render:function(e,t){return I(),L(`svg`,zN,t[0]||=[R(`g`,{fill:`none`},[R(`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)])}}),VN={key:1,class:`place-block`},HN={class:`message-content`},UN={class:`key-block`},WN={class:`gray-block`},GN={key:0},KN={class:`key-block`},qN={key:3,class:`place-block`},JN={style:{display:`flex`,"align-items":`center`,width:`100%`}},YN={style:{display:`flex`,"flex-direction":`column`}},XN={style:{display:`flex`,"flex-direction":`column`,width:`100%`}},ZN={class:`door-add-block`},QN={class:`door-field`},$N={style:{display:`flex`,"align-items":`center`,width:`100%`}},eP={style:{display:`flex`,"align-items":`center`,width:`100%`}},tP={class:`slot-block`},nP=mN(F({__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=Xr(`n-button`);return I(),L(ga,null,[e.mode==`mini-add`?(I(),L(`div`,{key:0,class:`place-block-hover show-editor-block`,onClick:r[0]||=e=>s(`add`)},[...r[9]||=[R(`p`,{class:`place-image-plus`},`+`,-1)]])):Fa(``,!0),e.mode==`add`?(I(),L(`div`,VN,[z(j(vD),{vertical:``},{default:N(()=>[z(j(gw),null,{default:N(()=>[z(j(mw),{style:{width:`20%`},value:e.newPlaceCode,"onUpdate:value":i,type:`text`,placeholder:`Ы-1`},null,8,[`value`]),z(j(mw),{style:{width:`80%`},value:e.newPlaceName,"onUpdate:value":a,type:`text`,placeholder:`Дом №Ы`},null,8,[`value`])]),_:1}),z(j(mw),{value:e.newPlaceText,"onUpdate:value":o,type:`textarea`,autosize:{minRows:3},placeholder:`В начале было слово...`},null,8,[`value`]),ti(t.$slots,`default`,{},void 0,!0)]),_:3})])):Fa(``,!0),e.mode==`show-editor`?(I(),L(`div`,{key:2,class:`place-block-hover show-editor-block`,onClick:r[1]||=e=>s(`edit`)},[R(`p`,null,`[`+Se(n.place.code)+`] - `+Se(n.place.name),1),R(`div`,HN,Se(n.place.text),1),(I(!0),L(ga,null,ei(n.place.doors,e=>(I(),L(`div`,{key:e.code,class:`door-block`},[Pa(Se(e.name)+` `,1),(I(!0),L(ga,null,ei(e.keys,e=>(I(),L(`span`,UN,[z(j(nN),{class:`lock-icon`},{default:N(()=>[z(j(yM))]),_:1}),Pa(` `+Se(e.name),1)]))),256))]))),128)),(I(!0),L(ga,null,ei(n.place.applications,e=>(I(),L(`div`,{key:e.name,class:`application-block`},` Приложение: `+Se(e.name),1))),128)),R(`p`,WN,[e.place.hidden?(I(),L(`span`,GN,` Скрытая точка `)):Fa(``,!0),(I(!0),L(ga,null,ei(e.place.keys,e=>(I(),L(`span`,KN,[z(j(nN),{class:`lock-icon`},{default:N(()=>[z(j(BN))]),_:1}),Pa(` `+Se(e.name),1)]))),256))])])):Fa(``,!0),e.mode==`edit`?(I(),L(`div`,qN,[z(j(vD),{vertical:``},{default:N(()=>[z(j(gw),null,{default:N(()=>[z(j(mw),{style:{width:`20%`},value:n.place.code,"onUpdate:value":r[2]||=e=>n.place.code=e,type:`text`,placeholder:`Ы-1`},null,8,[`value`]),z(j(mw),{style:{width:`80%`},value:n.place.name,"onUpdate:value":r[3]||=e=>n.place.name=e,type:`text`,placeholder:`Дом №Ы`},null,8,[`value`])]),_:1}),z(j(mw),{value:n.place.text,"onUpdate:value":r[4]||=e=>n.place.text=e,type:`textarea`,autosize:{minRows:3},placeholder:`В начале было слово...`},null,8,[`value`]),z(j(wk),{value:n.place.hidden,"onUpdate:value":r[5]||=e=>n.place.hidden=e},{checked:N(()=>[...r[10]||=[Pa(` Скрытая точка `,-1)]]),unchecked:N(()=>[...r[11]||=[Pa(` Обычная точка `,-1)]]),_:1},8,[`value`]),r[19]||=Pa(` Улики `,-1),z(j(dD),{value:n.place.applications,"onUpdate:value":r[6]||=e=>n.place.applications=e,"on-create":c},{"create-button-default":N(()=>[...r[12]||=[Pa(` Добавить улику `,-1)]]),default:N(({value:e})=>[R(`div`,JN,[z(j(mw),{value:e.name,"onUpdate:value":t=>e.name=t,type:`text`},null,8,[`value`,`onUpdate:value`])])]),_:1},8,[`value`]),r[20]||=Pa(` Действия `,-1),z(j(dD),{value:n.place.doors,"onUpdate:value":r[7]||=e=>n.place.doors=e,"on-create":l},{"create-button-default":N(()=>[...r[13]||=[Pa(` Добавить действие `,-1)]]),action:N(({index:e,create:t,remove:n})=>[R(`div`,YN,[z(d,{onClick:()=>t(e),class:`plus-minus-buttons`},{default:N(()=>[...r[14]||=[Pa(`+`,-1)]]),_:1},8,[`onClick`]),z(d,{disabled:``,onClick:()=>n(e),class:`plus-minus-buttons`},{default:N(()=>[...r[15]||=[Pa(`-`,-1)]]),_:1},8,[`onClick`])])]),default:N(({value:e})=>[R(`div`,XN,[R(`div`,ZN,[z(j(gw),null,{default:N(()=>[z(j(mw),{style:{width:`30%`},value:e.code,"onUpdate:value":t=>e.code=t,type:`text`,placeholder:`Код`},null,8,[`value`,`onUpdate:value`]),z(j(mw),{style:{width:`70%`},value:e.name,"onUpdate:value":t=>e.name=t,type:`text`,placeholder:`Название`},null,8,[`value`,`onUpdate:value`])]),_:2},1024),r[17]||=R(`p`,{class:`need-keys-text`},`Требуемые ключи`,-1),R(`div`,QN,[z(j(dD),{value:e.keys,"onUpdate:value":t=>e.keys=t,"on-create":u},{"create-button-default":N(()=>[...r[16]||=[Pa(` Добавить ключ `,-1)]]),default:N(({value:e})=>[R(`div`,$N,[z(j(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[21]||=Pa(` Получаемые ключи `,-1),z(j(dD),{value:n.place.keys,"onUpdate:value":r[8]||=e=>n.place.keys=e,"on-create":u},{"create-button-default":N(()=>[...r[18]||=[Pa(` Добавить ключ `,-1)]]),default:N(({value:e})=>[R(`div`,eP,[z(j(mw),{value:e.name,"onUpdate:value":t=>e.name=t,type:`text`,placeholder:`Название`},null,8,[`value`,`onUpdate:value`])])]),_:1},8,[`value`]),R(`div`,tP,[ti(t.$slots,`default`,{},void 0,!0)])]),_:3})])):Fa(``,!0)],64)}}}),[[`__scopeId`,`data-v-e5c8107f`]]),rP={class:`center-block-custom-big content-block`},iP={class:`places-container`},aP={class:`settings-block`},oP=mN(F({__name:`ScenariosEditorPage`,setup(e){let t=cN(),n=PA().params.id,r=A(!1),i=A(``),a=JE(),o=A([]),s=A({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}wP.push(`/scenarios`)}async function u(){let e=o.value[0].file;if(!e)return;let i=await e.arrayBuffer(),l=new Uint8Array(i),u=await t.UploadFile({filename:`scenarios_`+s.value.id+`_`+e.name,data:d(l)});if(u.error!=``){a.error(u.error);return}let f=await t.UpdateScenario({id:s.value.id,name:s.value.name,description:s.value.description,image:u.filename});if(f.error!=``){a.error(f.error);return}await c(Number(n)),r.value=!1}function d(e){let t=String.fromCharCode(...e);return btoa(t)}let f=A(``),p=A(``),m=A(``),h=A(`mini-add`);async function g(){let e=await t.AddScenarioPlace({id:s.value.id,place:{code:f.value,name:p.value,text:m.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)),f.value=``,p.value=``,m.value=``,h.value=`add`}async function _(){f.value=``,p.value=``,m.value=``,h.value=`mini-add`}async function v(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 y(e){await c(Number(n)),e.mode=`show-editor`}async function b(e){await v(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 x(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)=>(I(),L(ga,null,[R(`div`,rP,[R(`div`,iP,[R(`div`,aP,[Pa(` Точек: `+Se(s.value.story?.places?.length)+` `,1),z(j(Zw),{quaternary:``,onClick:t[0]||=e=>r.value=!0,class:`settings-button`},{default:N(()=>[z(j(nN),{class:`settings-icon`},{default:N(()=>[z(j(RN))]),_:1}),t[16]||=Pa(` Настройки `,-1)]),_:1})]),z(nP,{mode:h.value,"onUpdate:mode":t[3]||=e=>h.value=e,newPlaceCode:f.value,"onUpdate:newPlaceCode":t[4]||=e=>f.value=e,newPlaceName:p.value,"onUpdate:newPlaceName":t[5]||=e=>p.value=e,newPlaceText:m.value,"onUpdate:newPlaceText":t[6]||=e=>m.value=e},{default:N(()=>[z(j(TD),{justify:`end`},{default:N(()=>[z(j(Zw),{onClick:t[1]||=e=>_()},{default:N(()=>[...t[17]||=[Pa(`Отмена`,-1)]]),_:1}),z(j(Zw),{onClick:t[2]||=e=>g(),disabled:!f.value},{default:N(()=>[...t[18]||=[Pa(`Добавить точку`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1},8,[`mode`,`newPlaceCode`,`newPlaceName`,`newPlaceText`]),(I(!0),L(ga,null,ei(s.value.story?.places,e=>(I(),Ea(nP,{place:e,mode:e.mode,"onUpdate:mode":t=>e.mode=t,key:e.code},{default:N(()=>[z(j(TD),{justify:`end`},{default:N(()=>[z(j(Zw),{onClick:t=>x(e),type:`error`,ghost:``},{default:N(()=>[...t[19]||=[Pa(`Удалить`,-1)]]),_:1},8,[`onClick`]),z(j(Zw),{onClick:t=>y(e)},{default:N(()=>[...t[20]||=[Pa(`Отмена`,-1)]]),_:1},8,[`onClick`]),z(j(Zw),{onClick:t=>b(e)},{default:N(()=>[...t[21]||=[Pa(`Сохранить`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1032,[`place`,`mode`,`onUpdate:mode`]))),128))])]),z(j(NE),{show:r.value,"onUpdate:show":t[15]||=e=>r.value=e},{default:N(()=>[z(j(hT),{style:{width:`600px`},title:`Настройки сценария`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":N(()=>[z(j(Zw),{onClick:t[7]||=e=>r.value=!1},{default:N(()=>[...t[22]||=[Pa(` x `,-1)]]),_:1})]),footer:N(()=>[...t[32]||=[]]),default:N(()=>[z(j(vD),{vertical:``},{default:N(()=>[t[28]||=R(`p`,null,`Название`,-1),z(j(mw),{value:s.value.name,"onUpdate:value":t[8]||=e=>s.value.name=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`]),t[29]||=R(`p`,{class:`settings-header`},`Описание`,-1),z(j(mw),{value:s.value.description,"onUpdate:value":t[9]||=e=>s.value.description=e,type:`textarea`,placeholder:`Убийство пастуха...`},null,8,[`value`]),t[30]||=R(`p`,{class:`settings-header`},`Картинка`,-1),z(j(mw),{value:s.value.image,"onUpdate:value":t[10]||=e=>s.value.image=e,type:`text`,placeholder:`default_scenario.png`,disabled:``},null,8,[`value`]),z(j(hA),{multiple:``,"directory-dnd":``,max:1,"file-list":o.value,"onUpdate:fileList":t[11]||=e=>o.value=e},{default:N(()=>[z(j(Bk),null,{default:N(()=>[z(j(Lk),{style:{"font-size":`16px`}},{default:N(()=>[...t[23]||=[Pa(` Щелкните или перетащите файл в эту область для загрузки `,-1)]]),_:1})]),_:1})]),_:1},8,[`file-list`]),z(j(Zw),{onClick:t[12]||=e=>u(),ghost:``},{default:N(()=>[...t[24]||=[Pa(` Сохранить изменения `,-1)]]),_:1}),t[31]||=R(`hr`,{class:`settings-hr`},null,-1),R(`p`,null,[t[25]||=Pa(` Введите название сценария `,-1),z(j(Lk),{class:`name-text`,strong:``},{default:N(()=>[Pa(Se(s.value.name),1)]),_:1}),t[26]||=Pa(` чтобы удалить его `,-1)]),z(j(mw),{value:i.value,"onUpdate:value":t[13]||=e=>i.value=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`]),z(j(Zw),{onClick:t[14]||=e=>l(s.value.id),type:`error`,ghost:``,disabled:i.value!=s.value.name},{default:N(()=>[...t[27]||=[Pa(` Удалить сценарий `,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`show`]),z(hN,{"add-logout":!0,active:`scenarios`})],64))}}),[[`__scopeId`,`data-v-8b928df1`]]),sP=F({__name:`ScenariosEditorView`,setup(e){return(e,t)=>(I(),Ea(oP))}}),cP={class:`center-block-custom-big content-block`},lP={class:`scenarios-container`},uP=[`onClick`],dP={class:`scenario-title`},fP=mN(F({__name:`ScenariosPage`,setup(e){let t=cN(),n=A([]),r=NA(),i=JE(),a=A(!1),o=A(``);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)=>(I(),L(ga,null,[R(`div`,cP,[R(`div`,lP,[R(`div`,{class:`scenario-block`,onClick:t[0]||=e=>a.value=!0},[...t[5]||=[R(`div`,{class:`scenario-image-block scenario-image-plus`},`+`,-1),R(`p`,{class:`scenario-title`},`Создать новый сценарий`,-1)]]),(I(!0),L(ga,null,ei(n.value,e=>(I(),L(`div`,{class:`scenario-block`,onClick:t=>l(e.id),key:e.id},[R(`div`,{class:`scenario-image-block scenario-image`,style:ue({backgroundImage:`url(${e.image})`})},null,4),R(`p`,dP,Se(e.name),1)],8,uP))),128))])]),z(j(NE),{show:a.value,"onUpdate:show":t[4]||=e=>a.value=e},{default:N(()=>[z(j(hT),{style:{width:`600px`},title:`Создание сценария`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":N(()=>[z(j(Zw),{onClick:t[1]||=e=>a.value=!1},{default:N(()=>[...t[6]||=[Pa(` x `,-1)]]),_:1})]),footer:N(()=>[z(j(Zw),{onClick:t[3]||=e=>c(o.value),disabled:o.value.length==0},{default:N(()=>[...t[7]||=[Pa(` Создать `,-1)]]),_:1},8,[`disabled`])]),default:N(()=>[z(j(mw),{value:o.value,"onUpdate:value":t[2]||=e=>o.value=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`])]),_:1})]),_:1},8,[`show`]),z(hN,{"add-logout":!0,active:`scenarios`})],64))}}),[[`__scopeId`,`data-v-42f8d954`]]),pP=F({__name:`ScenariosView`,setup(e){return(e,t)=>(I(),Ea(fP))}}),mP={};function hP(e,t){return`Пользовательское соглашение`}var gP=mN(mP,[[`render`,hP]]),_P={class:`center-block-custom content-block`},vP={class:`users-container`},yP={class:`user-field`},bP={class:`user-field`},xP={class:`user-field`},SP=mN(F({__name:`UsersPage`,setup(e){let t=cN(),n=JE(),r=A([]);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)=>(I(),L(ga,null,[R(`div`,_P,[R(`div`,vP,[(I(!0),L(ga,null,ei(r.value,e=>(I(),L(`div`,{key:e.id,class:`user-block`},[R(`div`,yP,` Позывной: `+Se(e.username),1),R(`div`,bP,` Почта: `+Se(e.email),1),R(`div`,xP,[z(j(vD),null,{default:N(()=>[t[0]||=Pa(` Роли: `,-1),(I(!0),L(ga,null,ei(e.roles,e=>(I(),Ea(j(LC),{bordered:!1,key:e},{default:N(()=>[Pa(Se(e),1)]),_:2},1024))),128))]),_:2},1024)]),z(j(TD),{justify:`end`},{default:N(()=>[e.roles?.includes(`author`)?(I(),Ea(j(Zw),{key:1,onClick:t=>o(e.id,`author`)},{default:N(()=>[...t[2]||=[Pa(`Забрать роль автора`,-1)]]),_:1},8,[`onClick`])):(I(),Ea(j(Zw),{key:0,onClick:t=>a(e.id,`author`)},{default:N(()=>[...t[1]||=[Pa(`Сделать автором`,-1)]]),_:1},8,[`onClick`])),e.roles?.includes(`organizer`)?(I(),Ea(j(Zw),{key:3,onClick:t=>o(e.id,`organizer`)},{default:N(()=>[...t[4]||=[Pa(`Забрать роль организатора`,-1)]]),_:1},8,[`onClick`])):(I(),Ea(j(Zw),{key:2,onClick:t=>a(e.id,`organizer`)},{default:N(()=>[...t[3]||=[Pa(`Сделать организатором`,-1)]]),_:1},8,[`onClick`]))]),_:2},1024)]))),128))])]),z(hN,{"add-logout":!0,active:`users`})],64))}}),[[`__scopeId`,`data-v-4cbd9877`]]),CP=F({__name:`UsersView`,setup(e){return(e,t)=>(I(),Ea(SP))}}),wP=gM({history:Rj(`/`),routes:[{path:`/`,name:`home`,component:vN},{path:`/login`,name:`login`,component:AN},{path:`/office`,name:`office`,component:NN},{path:`/user-agreement`,name:`user-agreement`,component:gP},{path:`/privacy-policy`,name:`privacy-policy`,component:IN},{path:`/games`,name:`games`,component:_N},{path:`/scenarios`,name:`scenarios`,component:pP},{path:`/scenarios/:id`,name:`ScenariosEditorView`,component:sP},{path:`/users`,name:`users`,component:CP}]}),TP=As(_M);TP.use(Zs()),TP.use(wP),TP.mount(`#app`); \ No newline at end of file diff --git a/dist/index.html b/dist/index.html index f93de3e..587211f 100644 --- a/dist/index.html +++ b/dist/index.html @@ -5,8 +5,8 @@ Вечерний детектив - - + +
diff --git a/src/components/ScenariosEditorPage.vue b/src/components/ScenariosEditorPage.vue index 82dce84..37c2af4 100644 --- a/src/components/ScenariosEditorPage.vue +++ b/src/components/ScenariosEditorPage.vue @@ -126,6 +126,13 @@ async function addPlace() { mode.value = 'add' } +async function cancelAddPlace() { + code.value = '' + name.value = '' + text.value = '' + mode.value = 'mini-add' +} + async function addNotFoundDoors(scenario: Scenario, place: Place) { for (const door of place.doors || []) { let place = scenario.story?.places?.find((place) => { @@ -208,7 +215,7 @@ async function deletePlace(place: Place) { - Отмена + Отмена Добавить точку