import{E as e,Et as t,S as n,T as r,U as i,V as a,W as o,Z as s,a as c,b as l,ct as u,p as d,rt as f,v as p,w as m,x as h,y as g}from"./vue-router-CyfP71JJ.js";import{t as _}from"./Input-DZU-Go3a.js";import{t as v}from"./Modal-CNI9T3gF.js";import{n as y,t as ee}from"./use-message-BogQuslR.js";import{n as te,t as ne}from"./Upload-B27p2tkz.js";import{t as re}from"./Card-DLG50fM0.js";import{n as b,t as x}from"./PlaceBlock-DZefW4Qc.js";import{t as S}from"./Tag-B7XapiC1.js";import{t as C}from"./Alert-BIy5vvGu.js";import{t as w}from"./Space-BvgvIjkZ.js";import{t as T}from"./Flex-DDWM9KY-.js";import{t as E}from"./text-BQdtX5-W.js";import{t as D}from"./index-CIGUcMwT.js";import{a as ie,i as ae,n as O,r as oe,t as se}from"./HeaderMenu-BCz0PYuC.js";import{t as k}from"./Settings-BX8XQBVz.js";import{t as A}from"./IntroBlock-BhD3IrgD.js";import{t as j}from"./archive_client-CRY_AwSZ.js";var M={key:1,class:`place-block`},N={class:`message-header`},P={class:`message-content`},F={key:0},I={key:1,class:`intro-empty`},L={key:3,class:`place-block`},R={class:`slot-block`},z=O(e({__name:`QuestionBlock`,props:{newQuestionCode:{type:String},newQuestionText:{type:String},newQuestionAnswer:{type:String},question:{type:Object},mode:{type:String,required:!0}},emits:[`update:newQuestionCode`,`update:newQuestionText`,`update:newQuestionAnswer`,`update:mode`],setup(e,{emit:i}){let c=e,l=i,f=e=>{l(`update:newQuestionCode`,e)},p=e=>{l(`update:newQuestionText`,e)},v=e=>{l(`update:newQuestionAnswer`,e)},y=e=>{l(`update:mode`,e)};return(i,l)=>(a(),n(d,null,[e.mode==`mini-add`?(a(),n(`div`,{key:0,class:`place-block-hover show-editor-block`,onClick:l[0]||=e=>y(`add`)},[...l[5]||=[g(`p`,{class:`place-image-plus`},`+`,-1)]])):h(``,!0),e.mode==`add`?(a(),n(`div`,M,[r(u(w),{vertical:``},{default:s(()=>[r(u(b),null,{default:s(()=>[r(u(_),{style:{width:`25%`},value:e.newQuestionCode,"onUpdate:value":f,type:`text`,placeholder:`В-1`},null,8,[`value`]),r(u(_),{style:{width:`75%`},value:e.newQuestionText,"onUpdate:value":p,type:`text`,placeholder:`Кто украл пастуха?`},null,8,[`value`])]),_:1}),r(u(_),{value:e.newQuestionAnswer,"onUpdate:value":v,type:`textarea`,autosize:{minRows:2},placeholder:`Правильный ответ (виден только автору и организаторам)`},null,8,[`value`]),o(i.$slots,`default`,{},void 0,!0)]),_:3})])):h(``,!0),e.mode==`show-editor`?(a(),n(`div`,{key:2,class:`place-block-hover show-editor-block`,onClick:l[1]||=e=>y(`edit`)},[g(`div`,N,t(c.question?.code)+`: `+t(c.question?.text),1),l[6]||=g(`hr`,{class:`hr`},null,-1),g(`div`,P,[c.question?.answer?(a(),n(`span`,F,`Ответ: `+t(c.question.answer),1)):(a(),n(`span`,I,`Ответ не задан`))])])):h(``,!0),e.mode==`edit`?(a(),n(`div`,L,[r(u(w),{vertical:``},{default:s(()=>[r(u(b),null,{default:s(()=>[r(u(_),{style:{width:`25%`},value:c.question.code,"onUpdate:value":l[2]||=e=>c.question.code=e,type:`text`,placeholder:`В-1`},null,8,[`value`]),r(u(_),{style:{width:`75%`},value:c.question.text,"onUpdate:value":l[3]||=e=>c.question.text=e,type:`text`,placeholder:`Кто украл пастуха?`},null,8,[`value`])]),_:1}),l[8]||=g(`p`,{class:`settings-header`},`Правильный ответ`,-1),r(u(_),{value:c.question.answer,"onUpdate:value":l[4]||=e=>c.question.answer=e,type:`textarea`,autosize:{minRows:2},placeholder:`Правильный ответ (виден только автору и организаторам)`},null,8,[`value`]),r(u(E),{class:`hint`,depth:`3`},{default:s(()=>[...l[7]||=[m(` Смена кода вопроса не переносит ответы команд, отправленные под старым кодом. `,-1)]]),_:1}),g(`div`,R,[o(i.$slots,`default`,{},void 0,!0)])]),_:3})])):h(``,!0)],64))}}),[[`__scopeId`,`data-v-610ec2d2`]]),ce={class:`center-block-custom`},le={class:`width700`},ue={class:`places-container`},de={class:`settings-block`},B=O(e({__name:`ScenariosEditorPage`,setup(e){let o=ie(),b=ae(),O=j(),M=c().params.id,N=f(!1),P=f(``),F=f(``),I=f(!1),L=ee(),R=f([]),B=f({id:void 0,name:void 0,story:void 0,author:void 0,status:void 0,updatedAt:void 0,createdAt:void 0,publishedAt:void 0}),V=f({text:``,audio:``}),H=f(`show-editor`),fe=p(()=>B.value.story?.places||[]),pe=p(()=>B.value.story?.questions||[]);async function U(e){let t=await b.GetFullScenario({id:e});if(t.error!=``){L.error(t.error);return}B.value=t.scenario,B.value.story?.places?.forEach(e=>{let t=e;t.oldCode=t.code,t.mode=`show-editor`}),B.value.story?.questions?.forEach(e=>{let t=e;t.oldCode=t.code,t.mode=`show-editor`}),V.value=B.value.story?.introduction||{text:``,audio:``},H.value=`show-editor`}U(Number(M));async function me(e){let t=await b.DeleteScenario({id:e});if(t.error!=``){L.error(t.error);return}D.push(`/scenarios`)}async function he(e){let t=await b.PublicScenario({id:e});if(t.error!=``){L.error(t.error);return}await U(Number(M)),P.value=``,N.value=!1}async function ge(e,t){let n=new Date().toISOString(),r=await b.AddGame({name:(`Тестовая игра: `+e).trim(),description:`Тестовая игра`,startAt:n,scenarioId:t});if(r.error!=``){L.error(r.error);return}let i=await b.AddTeam({name:`Тестовая команда`,gameId:r.id});if(i.error!=``){L.error(i.error);return}D.push(`/team-story/`+i.id+`?password=`+i.password)}async function _e(e){let t=await b.DraftScenario({id:e});if(t.error!=``){L.error(t.error);return}await U(Number(M)),P.value=``,N.value=!1}async function ve(){I.value=!0;try{let{blob:e,filename:t}=await O.downloadScenarioArchive(B.value.id),n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,document.body.appendChild(r),r.click(),r.remove(),setTimeout(()=>URL.revokeObjectURL(n),1e3),L.success(`Архив сценария скачан`)}catch(e){L.error(e instanceof Error?e.message:`Не удалось скачать архив`)}finally{I.value=!1}}async function W(e,t){if(!e)return{filename:``,fileType:``};let n=await e.arrayBuffer(),r=new Uint8Array(n),i=await b.UploadFile({filename:t,data:be(r)});return i.error==``?{filename:i.filename||``,fileType:i.file_type||``}:(L.error(i.error),{filename:``,fileType:``})}async function ye(){let e=``;if(R.value&&R.value.length>0){let t=R.value[0].file||null;if(t==null)return;let n=await W(t,`scenarios_`+B.value.id+`_`+t.name);if(n.filename===``)return;e=n.filename}let t=await b.UpdateScenario({id:B.value.id,name:B.value.name,description:B.value.description,image:e});if(t.error!=``){L.error(t.error);return}await U(Number(M)),N.value=!1}function be(e){let t=xe(e);return btoa(t)}function xe(e){let t=``;for(let n=0;ne.code==n.code)==null){let t=await b.AddScenarioPlace({id:e.id,place:{code:n.code,name:n.name,text:void 0,image:void 0,hidden:!0,applications:void 0,doors:void 0,keys:void 0}});if(t.error!=``){L.error(t.error);return}}}async function Te(e){await U(Number(M)),e.mode=`show-editor`}async function Ee(e){if(e.fileList&&e.fileList.length>0){let t=e.fileList[0].file||null;if(t==null)return;let n=await W(t,`scenarios_`+B.value.id+`_place_`+e.code+`_`+t.name);if(n.filename===``)return;e.image=n.filename}let t=e.applications||[];for(let n of t){if(!n.fileList||n.fileList.length==0)continue;let t=n.fileList[0].file||null;if(t==null)continue;let r=await W(t,`scenarios_`+B.value.id+`_place_`+e.code+`_app_`+t.name);if(r.filename===``)return;n.image=r.filename,n.file_type=r.fileType}await we(B.value,e);let n=await b.UpdateScenarioPlace({id:B.value.id,code:e.oldCode,place:e});if(n.error!=``){L.error(n.error);return}await U(Number(M)),e.mode=`show-editor`}async function De(e){let t=await b.DeleteScenarioPlace({id:B.value.id,code:e.oldCode});if(t.error!=``){L.error(t.error);return}await U(Number(M))}let Y=f(``),X=f(``),Z=f(``),Q=f(`mini-add`);async function Oe(){let e=await b.AddScenarioQuestion({id:B.value.id,question:{code:Y.value,text:X.value,answer:Z.value}});if(e.error!=``){L.error(e.error);return}await U(Number(M)),Y.value=``,X.value=``,Z.value=``,Q.value=`add`}async function ke(){Y.value=``,X.value=``,Z.value=``,Q.value=`mini-add`}async function Ae(e){let t=await b.UpdateScenarioQuestion({id:B.value.id,code:e.oldCode,question:{code:e.code,text:e.text,answer:e.answer}});if(t.error!=``){L.error(t.error);return}await U(Number(M)),e.mode=`show-editor`}async function $(e){await U(Number(M)),e.mode=`show-editor`}async function je(e){let t=await b.DeleteScenarioQuestion({id:B.value.id,code:e.oldCode});if(t.error!=``){L.error(t.error);return}await U(Number(M))}function Me(e){return e&&e.split(`/`).pop()||``}async function Ne(){let e=``;if(V.value.fileList&&V.value.fileList.length>0){let t=V.value.fileList[0].file||null;if(t==null||(e=(await W(t,`scenarios_`+B.value.id+`_intro_`+t.name)).filename,e===``))return}else e=Me(V.value.audio);let t=await b.UpdateScenarioIntro({id:B.value.id,introduction:{text:V.value.text,audio:e}});if(t.error!=``){L.error(t.error);return}await U(Number(M))}async function Pe(){await U(Number(M))}function Fe(){let e=[{text:`Настя, ты просто ослепительна сегодня!`,nameForm:`Настя`},{text:`У Насти невероятный вкус!`,nameForm:`Насти`},{text:`Настенька, твоя улыбка делает мир ярче.`,nameForm:`Настенька`},{text:`С Настей всегда интересно общаться.`,nameForm:`Настей`},{text:`Настя, ты — источник вдохновения для всех вокруг.`,nameForm:`Настя`},{text:`Мне нравится, как Настя смотрит на мир.`,nameForm:`Настя`},{text:`Настюха, ты супер!`,nameForm:`Настюха`},{text:`Талант Насти поражает!`,nameForm:`Насти`},{text:`Настя, твоя энергия заряжает батарейки!`,nameForm:`Настя`},{text:`С Настей хочется проводить каждую минуту.`,nameForm:`Настей`},{text:`Настенька, ты — самое красивое, что случилось в этом мире.`,nameForm:`Настенька`},{text:`У Насти золотое сердце.`,nameForm:`Насти`}];return e[Math.floor(Math.random()*e.length)].text}return(e,c)=>(a(),n(d,null,[g(`div`,ce,[g(`div`,le,[g(`div`,ue,[B.value.status==`public`?(a(),l(u(C),{key:0,title:`Сценарий опубликован`,type:`warning`,style:{"margin-bottom":`20px`}},{default:s(()=>[...c[30]||=[m(` Не рекомендуется редактировать сценарий когда он опубликован. `,-1)]]),_:1})):h(``,!0),u(o).user?.id==2?(a(),l(u(C),{key:1,title:Fe(),type:`info`,style:{"margin-bottom":`20px`}},null,8,[`title`])):h(``,!0),g(`div`,de,[m(` Точек: `+t(B.value.story?.places?.length)+`, Вопросов: `+t(B.value.story?.questions?.length)+` `,1),r(u(y),{quaternary:``,onClick:c[0]||=e=>N.value=!0,class:`settings-button`},{default:s(()=>[r(u(oe),{class:`settings-icon`},{default:s(()=>[r(u(k))]),_:1}),c[31]||=m(` Настройки `,-1)]),_:1})]),r(A,{introduction:V.value,mode:H.value,"onUpdate:mode":c[3]||=e=>H.value=e},{default:s(()=>[r(u(T),{justify:`end`},{default:s(()=>[r(u(y),{onClick:c[1]||=e=>Pe()},{default:s(()=>[...c[32]||=[m(`Отмена`,-1)]]),_:1}),r(u(y),{onClick:c[2]||=e=>Ne()},{default:s(()=>[...c[33]||=[m(`Сохранить вступление`,-1)]]),_:1})]),_:1})]),_:1},8,[`introduction`,`mode`]),c[44]||=g(`div`,{class:`questions-header`},`Вопросы дела`,-1),r(z,{mode:Q.value,"onUpdate:mode":c[6]||=e=>Q.value=e,newQuestionCode:Y.value,"onUpdate:newQuestionCode":c[7]||=e=>Y.value=e,newQuestionText:X.value,"onUpdate:newQuestionText":c[8]||=e=>X.value=e,newQuestionAnswer:Z.value,"onUpdate:newQuestionAnswer":c[9]||=e=>Z.value=e},{default:s(()=>[r(u(T),{justify:`end`},{default:s(()=>[r(u(y),{onClick:c[4]||=e=>ke()},{default:s(()=>[...c[34]||=[m(`Отмена`,-1)]]),_:1}),r(u(y),{onClick:c[5]||=e=>Oe(),disabled:!Y.value},{default:s(()=>[...c[35]||=[m(`Добавить вопрос`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1},8,[`mode`,`newQuestionCode`,`newQuestionText`,`newQuestionAnswer`]),(a(!0),n(d,null,i(pe.value,e=>(a(),l(z,{question:e,mode:e.mode,"onUpdate:mode":t=>e.mode=t,key:e.oldCode??e.code??``},{default:s(()=>[r(u(T),{justify:`end`},{default:s(()=>[r(u(y),{onClick:t=>je(e),type:`error`,ghost:``},{default:s(()=>[...c[36]||=[m(`Удалить`,-1)]]),_:1},8,[`onClick`]),r(u(y),{onClick:t=>$(e)},{default:s(()=>[...c[37]||=[m(`Отмена`,-1)]]),_:1},8,[`onClick`]),r(u(y),{onClick:t=>Ae(e),disabled:e.code==``},{default:s(()=>[...c[38]||=[m(`Сохранить`,-1)]]),_:1},8,[`onClick`,`disabled`])]),_:2},1024)]),_:2},1032,[`question`,`mode`,`onUpdate:mode`]))),128)),r(x,{mode:J.value,"onUpdate:mode":c[12]||=e=>J.value=e,newPlaceCode:G.value,"onUpdate:newPlaceCode":c[13]||=e=>G.value=e,newPlaceName:K.value,"onUpdate:newPlaceName":c[14]||=e=>K.value=e,newPlaceText:q.value,"onUpdate:newPlaceText":c[15]||=e=>q.value=e},{default:s(()=>[r(u(T),{justify:`end`},{default:s(()=>[r(u(y),{onClick:c[10]||=e=>Ce()},{default:s(()=>[...c[39]||=[m(`Отмена`,-1)]]),_:1}),r(u(y),{onClick:c[11]||=e=>Se(),disabled:!G.value},{default:s(()=>[...c[40]||=[m(`Добавить точку`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1},8,[`mode`,`newPlaceCode`,`newPlaceName`,`newPlaceText`]),(a(!0),n(d,null,i(fe.value,e=>(a(),l(x,{place:e,mode:e.mode,"onUpdate:mode":t=>e.mode=t,key:e.oldCode??e.code??``},{default:s(()=>[r(u(T),{justify:`end`},{default:s(()=>[r(u(y),{onClick:t=>De(e),type:`error`,ghost:``},{default:s(()=>[...c[41]||=[m(`Удалить`,-1)]]),_:1},8,[`onClick`]),r(u(y),{onClick:t=>Te(e)},{default:s(()=>[...c[42]||=[m(`Отмена`,-1)]]),_:1},8,[`onClick`]),r(u(y),{onClick:t=>Ee(e),disabled:e.code==``},{default:s(()=>[...c[43]||=[m(`Сохранить`,-1)]]),_:1},8,[`onClick`,`disabled`])]),_:2},1024)]),_:2},1032,[`place`,`mode`,`onUpdate:mode`]))),128))])])]),r(u(v),{show:N.value,"onUpdate:show":c[29]||=e=>N.value=e},{default:s(()=>[r(u(re),{style:{width:`600px`},title:`Настройки сценария`,bordered:!1,size:`huge`,role:`dialog`,"aria-modal":`true`},{"header-extra":s(()=>[r(u(y),{onClick:c[16]||=e=>N.value=!1},{default:s(()=>[...c[45]||=[m(` x `,-1)]]),_:1})]),footer:s(()=>[...c[69]||=[]]),default:s(()=>[r(u(w),{vertical:``},{default:s(()=>[c[58]||=g(`p`,null,`Название`,-1),r(u(_),{value:B.value.name,"onUpdate:value":c[17]||=e=>B.value.name=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`]),c[59]||=g(`p`,{class:`settings-header`},`Описание`,-1),r(u(_),{value:B.value.description,"onUpdate:value":c[18]||=e=>B.value.description=e,type:`textarea`,placeholder:`Убийство пастуха...`},null,8,[`value`]),c[60]||=g(`p`,{class:`settings-header`},`Картинка`,-1),r(u(_),{value:B.value.image,"onUpdate:value":c[19]||=e=>B.value.image=e,type:`text`,placeholder:`default_scenario.png`,disabled:``},null,8,[`value`]),r(u(ne),{"directory-dnd":``,max:1,"file-list":R.value,"onUpdate:fileList":c[20]||=e=>R.value=e},{default:s(()=>[r(u(te),null,{default:s(()=>[r(u(E),{style:{"font-size":`16px`}},{default:s(()=>[...c[46]||=[m(` Щелкните или перетащите файл в эту область для загрузки `,-1)]]),_:1})]),_:1})]),_:1},8,[`file-list`]),r(u(y),{onClick:c[21]||=e=>ye(),ghost:``},{default:s(()=>[...c[47]||=[m(` Сохранить изменения `,-1)]]),_:1}),c[61]||=g(`hr`,{class:`settings-hr`},null,-1),c[62]||=g(`p`,{class:`settings-header`},`Архив сценария`,-1),c[63]||=g(`p`,{class:`settings-hint`},` Скачайте сценарий ZIP-архивом (scenario.json + изображения) и импортируйте его в другом аккаунте. `,-1),r(u(y),{loading:I.value,disabled:!B.value.id,ghost:``,onClick:c[22]||=e=>ve()},{default:s(()=>[...c[48]||=[m(` Скачать архив (.zip) `,-1)]]),_:1},8,[`loading`,`disabled`]),c[64]||=g(`hr`,{class:`settings-hr`},null,-1),c[65]||=g(`p`,null,`Создать тестовую игру`,-1),r(u(y),{onClick:c[23]||=e=>ge(B.value.name||``,B.value.id),ghost:``},{default:s(()=>[...c[49]||=[m(` Создать игру `,-1)]]),_:1}),c[66]||=g(`hr`,{class:`settings-hr`},null,-1),c[67]||=g(`p`,null,`Публикация`,-1),g(`p`,null,[B.value.status==`public`?(a(),l(u(S),{key:0,bordered:!1,type:`success`,class:`status-block`},{default:s(()=>[...c[50]||=[m(` Опубликовано `,-1)]]),_:1})):h(``,!0),B.value.status==`draft`?(a(),l(u(S),{key:1,bordered:!1,type:`warning`,class:`status-block`},{default:s(()=>[...c[51]||=[m(` В разработке `,-1)]]),_:1})):h(``,!0)]),g(`p`,null,[c[52]||=m(` Введите название сценария `,-1),r(u(E),{class:`name-text`,strong:``},{default:s(()=>[m(t(B.value.name),1)]),_:1})]),r(u(_),{value:P.value,"onUpdate:value":c[24]||=e=>P.value=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`]),B.value.status==`public`?h(``,!0):(a(),l(u(y),{key:0,onClick:c[25]||=e=>he(B.value.id),ghost:``,disabled:P.value!=B.value.name},{default:s(()=>[...c[53]||=[m(` Опубликовать сценарий `,-1)]]),_:1},8,[`disabled`])),B.value.status==`draft`?h(``,!0):(a(),l(u(y),{key:1,onClick:c[26]||=e=>_e(B.value.id),ghost:``,disabled:P.value!=B.value.name},{default:s(()=>[...c[54]||=[m(` Снять сценарий с публикации `,-1)]]),_:1},8,[`disabled`])),c[68]||=g(`hr`,{class:`settings-hr`},null,-1),g(`p`,null,[c[55]||=m(` Введите название сценария `,-1),r(u(E),{class:`name-text`,strong:``},{default:s(()=>[m(t(B.value.name),1)]),_:1}),c[56]||=m(` чтобы удалить его `,-1)]),r(u(_),{value:F.value,"onUpdate:value":c[27]||=e=>F.value=e,type:`text`,placeholder:`Дело №0 "Следствие ведут овечки"`},null,8,[`value`]),r(u(y),{onClick:c[28]||=e=>me(B.value.id),type:`error`,ghost:``,disabled:F.value!=B.value.name},{default:s(()=>[...c[57]||=[m(` Удалить сценарий `,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`show`]),r(se,{active:`scenarios`})],64))}}),[[`__scopeId`,`data-v-07f1e670`]]),V=e({__name:`ScenariosEditorView`,setup(e){return(e,t)=>(a(),l(B))}});export{V as default};