2 lines
44 KiB
JavaScript
2 lines
44 KiB
JavaScript
import{_ as Et}from"./BasicMainCard-abd17be1.js";import{_ as Ht}from"./BasicModal.vue_vue_type_style_index_0_lang-a23efd75.js";import{_ as It}from"./BaseSwitch.vue_vue_type_script_setup_true_lang-2e8a6602.js";import{_ as Wt}from"./BasicInput.vue_vue_type_style_index_0_lang-e68ff48c.js";import{_ as Kt}from"./BasicTextArea.vue_vue_type_style_index_0_lang-76c247eb.js";import{_ as Jt}from"./button.vue_vue_type_style_index_0_lang-58c562e7.js";import{d as Vt,q as Xt,u as Gt,g as y,h as G,E as Qt,v as Zt,o as c,c as d,b as n,w as p,j as g,a as t,F as S,n as B,k as C,t as f,e as x,p as H,y as Ce,D as k,M as Yt,N as ea,bC as ta,I as qe,bk as aa,B as et,i as tt}from"./index-02897754.js";import{g as sa,c as la,a as oa,u as at,b as ia,d as na,s as ua,e as ra,f as ca,h as da,i as _a,j as va,k as ma}from"./stepChallenge-ec380cab.js";import{I as L}from"./Icon-2ca0951c.js";import{g as Q,e as D,a as pa}from"./convert-2ad76038.js";import{a as st}from"./index-9f87c1a7.js";import{S as Z}from"./index-644e91ea.js";import{M as lt}from"./index-4652c849.js";import{a as ot}from"./index-1d9cca6c.js";import{T as Oe}from"./isSymbol-792a2a97.js";import{U as ne}from"./index-fd46be7d.js";import{_ as ha}from"./_plugin-vue_export-helper-2dea18d7.js";import"./index-c1d1bf6d.js";import"./index-a2c53d90.js";import"./Col-880c700f.js";import"./styleChecker-ce90d19e.js";import"./isPlainObject-6a522913.js";import"./vnode-65917850.js";import"./usePrice-bc935b83.js";import"./index-b0c72faa.js";import"./FormItemContext-0ec501fb.js";import"./useState-4419625c.js";import"./useRefs-44db43e1.js";import"./_flatRest-bac800e2.js";import"./DialogWrap-b41f46aa.js";import"./pickAttrs-66d27c5c.js";import"./toArray-b84867a5.js";import"./index-a571a3ce.js";const _=ue=>(Yt("data-v-dba07e20"),ue=ue(),ea(),ue),fa={class:"mgmt-page"},ga={class:"mgmt-layout"},ba={class:"mgmt-chapters"},ya=_(()=>t("div",{class:"mgmt-chapters__title"},"فصلها",-1)),ka={key:0,class:"py-10 flex justify-center"},xa=["onClick"],wa={class:"mgmt-chapters__item-label"},Ca={class:"mgmt-chapters__item-count"},qa={key:0,class:"text-center text-gray-500 text-sm py-8 px-2"},Ua={class:"mgmt-challenges"},Sa={class:"mgmt-challenges__header"},$a={class:"m-0 text-base font-semibold"},Aa={key:0,class:"text-center text-gray-500 py-16"},La={key:1,class:"py-16 flex justify-center"},Ma={key:2,class:"mgmt-grids"},Pa={class:"mgmt-grid-block__label"},Ra={class:"text-gray-400 font-normal"},Ta={class:"mgmt-grid"},Fa=["onClick","onKeydown"],Ba=["onClick"],Na={class:"mgmt-slot__number"},Da=["title"],Oa={class:"mgmt-slot__number"},ja=_(()=>t("span",{class:"mgmt-slot__hint"},"افزودن",-1)),za={class:"flex justify-between items-center mb-4"},Ea=_(()=>t("div",null,[t("h2",{class:"m-0"},"فصلهای نقشه ماجراجویی"),t("p",{class:"text-sm text-gray-500 m-0 mt-1"},"هر فصل دو اسلاید ۱۵تایی دارد (حداکثر ۳۰ چالش).")],-1)),Ha={key:0,class:"py-16 flex justify-center"},Ia={key:1,class:"space-y-3"},Wa={class:"flex-1 min-w-0"},Ka={class:"font-semibold truncate"},Ja={class:"text-sm text-gray-500 truncate"},Va={class:"text-xs text-gray-400 mt-1"},Xa={class:"flex gap-2 shrink-0"},Ga=_(()=>t("span",null,"ویرایش",-1)),Qa=_(()=>t("span",null,"حذف",-1)),Za={key:0,class:"text-center text-gray-500 py-12"},Ya={class:"mgmt-page progress-mgmt-page"},es={class:"mgmt-layout"},ts={class:"mgmt-chapters"},as=_(()=>t("div",{class:"mgmt-chapters__title"},"فصلها",-1)),ss={key:0,class:"py-10 flex justify-center"},ls=["onClick"],os={class:"mgmt-chapters__item-label"},is={class:"mgmt-chapters__item-count"},ns=_(()=>t("span",{class:"mgmt-chapters__item-label"},"بدون فصل",-1)),us={class:"mgmt-chapters__item-count"},rs={key:0,class:"text-center text-gray-500 text-sm py-8 px-2"},cs={class:"mgmt-challenges"},ds={class:"mgmt-challenges__header flex flex-wrap items-center justify-between gap-3"},_s={class:"m-0 text-base font-semibold"},vs={key:0,class:"py-16 flex justify-center"},ms={key:1,class:"text-center text-gray-500 py-16"},ps={key:2,class:"mgmt-grids"},hs={class:"mgmt-grid-block__label"},fs={class:"text-gray-400 font-normal"},gs={class:"mgmt-grid"},bs=["disabled","onClick"],ys={class:"progress-slot__number"},ks=["title"],xs={class:"progress-slot__stats"},ws={class:"progress-slot__action"},Cs={class:"progress-slot__number"},qs=_(()=>t("span",{class:"progress-slot__hint"},"خالی",-1)),Us={class:"max-w-2xl space-y-4"},Ss=_(()=>t("h2",{class:"text-lg font-semibold"},"قوانین چالشهای کدوبلو",-1)),$s=_(()=>t("p",{class:"text-sm text-gray-600"}," ویدیوی embed آپارات که در مودال «قوانین چالش کدوبلو» به کاربر نمایش داده میشود. ",-1)),As=_(()=>t("div",{class:"mb-1 text-sm text-gray-600"},"کد embed ویدیو قوانین",-1)),Ls={class:"space-y-4 relative"},Ms={key:0,class:"absolute inset-0 bg-white/60 z-10 flex items-center justify-center"},Ps=_(()=>t("div",{class:"mb-1 text-sm text-gray-600"},"عنوان چالش",-1)),Rs={class:"grid grid-cols-1 sm:grid-cols-3 gap-4"},Ts={class:"sm:col-span-3"},Fs=_(()=>t("div",{class:"mb-1 text-sm text-gray-600"},"فصل (نقشه ماجراجویی)",-1)),Bs={class:"text-gray-400"},Ns={class:"text-xs text-gray-400 mt-1"},Ds={key:0},Os=_(()=>t("div",{class:"mb-1 text-sm text-gray-600"},"وضعیت نمایش",-1)),js={class:"flex items-center gap-2 mt-2"},zs={class:"text-sm text-gray-600"},Es=_(()=>t("div",{class:"mb-1 text-sm text-gray-600"},"نوع دسترسی",-1)),Hs=_(()=>t("div",{class:"mb-1 text-sm text-gray-600"},"امتیاز اولین تکمیل",-1)),Is={class:"flex justify-center pb-2"},Ws=_(()=>t("div",{class:"mb-1 text-sm text-gray-600"},"عکس کاراکتر (کارت لیست)",-1)),Ks={key:0},Js=_(()=>t("div",null,"آپلود تصویر",-1)),Vs={key:0,class:"mt-1"},Xs={class:"h-2 rounded bg-gray-200 overflow-hidden"},Gs=_(()=>t("div",{class:"section-divider"},null,-1)),Qs={class:"pt-2"},Zs=_(()=>t("div",{class:"mb-2 text-sm text-gray-600 font-semibold"},"مراحل چالش",-1)),Ys={class:"space-y-4"},el={class:"flex items-center justify-between gap-3"},tl={class:"font-semibold text-gray-700"},al={key:0,class:"text-emerald-600 text-sm font-normal mr-1"},sl={class:"flex items-center gap-2"},ll=_(()=>t("span",{class:"text-sm text-gray-600"},"ماموریت پایانی",-1)),ol=_(()=>t("div",{class:"mb-1 text-xs text-gray-500"},"توضیحات مرحله (اختیاری)",-1)),il={class:"grid grid-cols-2 gap-3"},nl=_(()=>t("div",{class:"mb-1 text-xs text-gray-500"},"زمان لازم (دقیقه)",-1)),ul=_(()=>t("div",{class:"mb-1 text-xs text-gray-500"},"کد embed ویدیو آپارات (اختیاری)",-1)),rl={class:"space-y-2"},cl=_(()=>t("div",{class:"mb-1 text-xs text-gray-500"},"وویس کدوبلو (اختیاری)",-1)),dl={key:0,class:"mt-1"},_l={class:"h-2 rounded bg-gray-200 overflow-hidden"},vl={key:1,class:"step-audio-preview"},ml={class:"flex items-center justify-between mb-2"},pl=_(()=>t("div",{class:"step-audio-preview__label mb-0"},"پیشنمایش وویس کدوبلو",-1)),hl=["src"],fl=_(()=>t("div",{class:"mb-1 text-xs text-gray-500"},"عکسهای مرحله (اختیاری)",-1)),gl={key:0},bl=_(()=>t("div",{class:"text-xs"},"آپلود عکس",-1)),yl=_(()=>t("div",{class:"section-divider"},null,-1)),kl={class:"step-form-box__inner"},xl=_(()=>t("div",{class:"text-xs font-semibold text-gray-600 mb-3"},"آیتمهای بعد از «بزن بریم»",-1)),wl={class:"grid grid-cols-1 sm:grid-cols-2 gap-3"},Cl={class:"flex items-center gap-2"},ql=_(()=>t("span",{class:"text-sm"},"فیلد بازخورد",-1)),Ul={class:"flex items-center gap-2"},Sl=_(()=>t("span",{class:"text-sm"},"بازخورد اجباری",-1)),$l={class:"flex items-center gap-2"},Al=_(()=>t("span",{class:"text-sm"},"بارگذاری عکس",-1)),Ll={class:"flex items-center gap-2"},Ml=_(()=>t("span",{class:"text-sm"},"عکس اجباری",-1)),Pl={class:"flex items-center gap-2"},Rl=_(()=>t("span",{class:"text-sm"},"ضبط و ارسال ویس",-1)),Tl={class:"flex items-center gap-2"},Fl=_(()=>t("span",{class:"text-sm"},"ویس اجباری",-1)),Bl={class:"flex items-center gap-2"},Nl=_(()=>t("span",{class:"text-sm"},"سوال چندگزینهای",-1)),Dl={class:"flex items-center gap-2"},Ol=_(()=>t("span",{class:"text-sm"},"پاسخ MCQ اجباری",-1)),jl={class:"flex items-center gap-2"},zl=_(()=>t("span",{class:"text-sm"},"بخش صوت",-1)),El={key:0,class:"space-y-2 border rounded-lg p-3 bg-white"},Hl=_(()=>t("div",{class:"mb-1 text-xs text-gray-500"},"عنوان فیلد بازخورد",-1)),Il=_(()=>t("div",{class:"mb-1 text-xs text-gray-500"},"متن پیشفرض فیلد بازخورد",-1)),Wl={key:1,class:"space-y-2 border rounded-lg p-3"},Kl=["name","checked","onChange"],Jl=_(()=>t("span",{class:"text-xs"},"صحیح",-1)),Vl={key:2,class:"space-y-2"},Xl=_(()=>t("div",{class:"mb-1 text-xs text-gray-500"},"فایل بخش صوت",-1)),Gl={key:0,class:"mt-1"},Ql={class:"h-2 rounded bg-gray-200 overflow-hidden"},Zl={key:1,class:"step-audio-preview"},Yl={class:"flex items-center justify-between mb-2"},eo=_(()=>t("div",{class:"step-audio-preview__label mb-0"},"پیشنمایش بخش صوت",-1)),to=["src"],ao={class:"flex justify-end pt-1"},so=_(()=>t("span",{class:"text-[#DC2626]"},"حذف مرحله",-1)),lo=_(()=>t("span",{class:"text-gray-500"},"+ افزودن مرحله",-1)),oo={class:"space-y-4"},io=_(()=>t("div",{class:"mb-1 text-sm text-gray-600"},"عنوان فصل",-1)),no=_(()=>t("div",{class:"mb-1 text-sm text-gray-600"},"زیرعنوان",-1)),uo={class:"grid grid-cols-1 sm:grid-cols-2 gap-4"},ro=_(()=>t("div",{class:"mb-1 text-sm text-gray-600"},"تم رنگی جزیره",-1)),co=_(()=>t("div",{class:"mb-1 text-sm text-gray-600"},"ترتیب",-1)),_o={class:"flex items-center gap-2"},vo={class:"text-sm text-gray-600"},mo=_(()=>t("div",{class:"mb-1 text-sm text-gray-600"},"تصویر فصل (اختیاری)",-1)),po={key:0},ho=_(()=>t("div",null,"آپلود تصویر",-1)),fo={key:0,class:"mt-1"},go={class:"h-2 rounded bg-gray-200 overflow-hidden"},bo=_(()=>t("div",{class:"text-xs text-gray-400 mt-1"},"اگر خالی باشد، تصویر تم انتخابشده استفاده میشود.",-1)),Ue=30,Se=15,yo=Vt({__name:"index",setup(ue){const it=st,re=st.TabPane,$e=ot,P=ot.Option,nt=Xt(),ut=Gt(),I=y(nt.query.tab==="progress"?"progress":"challenges"),Y=y(!1),ee=y(!1),te=y(null),Ae=y(null),Le=y(!1),ce=y({rules_aparat_embed_code:""}),de=y(!1),W=y([]),R=y(null),$=y(null),Me=y(!1),_e=y([]),K=y([]),ae=y({}),Pe=y({}),J=y({}),V=y({}),A=y(0),z=y(0),Re=()=>({description:"",duration_minutes:1,aparat_embed_code:"",kodoblu_voice_url:"",step_images:[],is_final_step:!1,enable_feedback_text:!1,require_feedback_text:!1,feedback_text_title:"بازخورد این مرحله",feedback_text_placeholder:"بازخورد خود را بنویس...",enable_photo_upload:!1,require_photo_upload:!1,enable_voice_upload:!1,require_voice_upload:!1,enable_mcq:!1,require_mcq:!1,mcq_question:"",mcq_options:["",""],mcq_correct_index:0,enable_audio_section:!1,audio_section_url:"",punishment_description:"",requires_photo_upload:!1}),h=y({title:"",character_image_url:null,show:!1,access_type:"subscription",sort_order:0,completion_points:50,chapter_id:null,steps:[Re()]}),q=y([]),se=y(!1),le=y({}),oe=y(!1),ve=y(!1),me=y(null),w=y({title:"",subtitle:"",theme_key:"meadow",cover_image_url:null,sort_order:0,show:!0}),O=y([]),N=y(0),je={meadow:"خانه کدوبلو",cottage:"کافه پفی",forest:"باغ میلا",desert:"کارگاه پیتو",winter:"خانه آرامان",castle:"میدان شهر",tree:"درخت پیرین"};function rt(e){return e&&e in je?je[e]:e||"-"}const ze=G(()=>q.value.find(e=>e.id===$.value)||null),ct=G(()=>{if(R.value===0)return"چالشهای بدون فصل";const e=q.value.find(a=>a.id===R.value);return e?`چالشهای ${e.title}`:"یک فصل انتخاب کنید"}),Ee=G(()=>{const e={0:0};for(const a of q.value)a.id&&(e[a.id]=0);for(const a of W.value){const l=a.chapter_id??0;e[l]=(e[l]||0)+1}return e}),He=G(()=>R.value===null?[]:R.value===0?W.value.filter(e=>e.chapter_id==null):W.value.filter(e=>e.chapter_id===R.value)),dt=G(()=>vt(_e.value)),_t=G(()=>mt(He.value));function vt(e){const a=Array.from({length:Ue},()=>null),l=new Set;for(const u of e){const r=Number(u.sort_order);r>=1&&r<=Ue&&!a[r-1]&&(a[r-1]=u,l.add(u.id))}for(const u of e){if(l.has(u.id))continue;const r=a.findIndex(m=>m===null);if(r<0)break;a[r]=u,l.add(u.id)}return a.map((u,r)=>({slotNumber:r+1,challenge:u}))}function mt(e){const a=Array.from({length:Ue},()=>null),l=new Set;for(const u of e){const r=Number(u.sort_order);r>=1&&r<=Ue&&!a[r-1]&&(a[r-1]=u,l.add(u.id))}for(const u of e){if(l.has(u.id))continue;const r=a.findIndex(m=>m===null);if(r<0)break;a[r]=u,l.add(u.id)}return a.map((u,r)=>({slotNumber:r+1,challenge:u}))}function pt(e){const a=e*Se;return dt.value.slice(a,a+Se)}function ht(e){const a=e*Se;return _t.value.slice(a,a+Se)}async function j(){var e;se.value=!0;try{const a=await sa();q.value=a;const l={};await Promise.all(q.value.map(async u=>{u.id&&(l[u.id]=await la(u.id))})),le.value=l,!$.value&&q.value.length?$.value=q.value[0].id:$.value&&!q.value.some(u=>u.id===$.value)&&($.value=((e=q.value[0])==null?void 0:e.id)??null),$.value?await Te($.value):_e.value=[]}catch(a){k.error(a.message||"خطا در بارگذاری فصلها")}finally{se.value=!1}}async function Te(e){Me.value=!0;try{_e.value=await oa(e)}catch(a){k.error(a.message||"خطا در بارگذاری چالشهای فصل"),_e.value=[]}finally{Me.value=!1}}async function ft(e){$.value=e,await Te(e)}function Ie(e){if(e.challenge){Nt(e.challenge);return}gt(e.slotNumber)}function gt(e){if(!$.value){k.warning("ابتدا یک فصل انتخاب کنید");return}ee.value=!1,te.value=null,Ae.value=null,Ge(),h.value.chapter_id=$.value,h.value.sort_order=e,h.value.show=!0,Y.value=!0}function We(){w.value={title:"",subtitle:"",theme_key:"meadow",cover_image_url:null,sort_order:(q.value.length||0)+1,show:!0},O.value=[],N.value=0}function bt(){ve.value=!1,me.value=null,We(),oe.value=!0}function yt(e){ve.value=!0,me.value=e.id||null,w.value={title:e.title||"",subtitle:e.subtitle||"",theme_key:e.theme_key||"meadow",cover_image_url:D(e.cover_image_url)||null,sort_order:e.sort_order||0,show:e.show!==!1},e.cover_image_url?O.value=[{uid:`${Date.now()}`,name:"chapter.jpg",status:"done",url:Q(e.cover_image_url)}]:O.value=[],N.value=0,oe.value=!0}function Ke(){oe.value=!1,We()}async function kt(){if(!w.value.title.trim()){k.error("عنوان فصل الزامی است");return}try{const e={title:w.value.title.trim(),subtitle:w.value.subtitle.trim()||null,theme_key:w.value.theme_key,cover_image_url:w.value.cover_image_url||null,sort_order:Number(w.value.sort_order)||0,show:w.value.show};ve.value&&me.value?(await at(me.value,e),k.success("فصل ویرایش شد")):(await ia(e),k.success("فصل اضافه شد")),Ke(),await j()}catch(e){k.error(e.message||"خطا در ذخیره فصل")}}async function xt(e){e.id&&(await at(e.id,{show:!e.show}),k.success(e.show?"فصل مخفی شد":"فصل نمایش داده میشود"),await j())}async function wt(e){e.id&<.confirm({title:"حذف فصل",content:"با حذف فصل، چالشهای آن بدون فصل میمانند. ادامه میدهید؟",okText:"بله",cancelText:"خیر",onOk:async()=>{await _a(e.id),k.success("فصل حذف شد"),await j()}})}async function Ct(e){e!=null&&e.id&<.confirm({title:"حذف چالش",content:`چالش «${e.title}» و تمام مراحل و پیشرفت کاربران آن حذف میشود. ادامه میدهید؟`,okText:"حذف",okType:"danger",cancelText:"انصراف",onOk:async()=>{try{await va(e.id),k.success("چالش حذف شد"),te.value===e.id&&Ne(),$.value&&await Te($.value),await j(),W.value.length&&await xe()}catch(a){throw k.error(a.message||"خطا در حذف چالش"),a}}})}function pe(e){return{width:`${Math.max(0,Math.min(100,e))}%`}}function he(){return ta()||localStorage.getItem("tamin_token")||localStorage.getItem("token")||""}function fe(e){var l,u,r,m;const a=e.full_src||e.url||e.src||e.path||((l=e.data)==null?void 0:l.full_src)||((u=e.data)==null?void 0:u.url)||((r=e.data)==null?void 0:r.src)||((m=e.data)==null?void 0:m.path)||"";return D(String(a||""))}function ge(e,a,l){const u=[...h.value.steps];u[e]={...u[e],[a]:l},h.value.steps=u}function T(e,a){return`${e}:${a}`}function Fe(e,a){return ae.value[T(e,a)]||[]}function X(e,a){return Pe.value[T(e,a)]||0}function be(e,a,l){Pe.value[T(e,a)]=l}function ye(e){return e?e.startsWith("http://")||e.startsWith("https://")?e:pa(e):""}function qt(e,a){return J.value[T(e,a)]||""}function E(e,a){const l=T(e,a),u=J.value[l];u&&(URL.revokeObjectURL(u),delete J.value[l])}function Ut(){Object.values(J.value).forEach(e=>URL.revokeObjectURL(e)),J.value={}}function ie(e,a,l){const u=qt(e,a);if(u)return u;if(l!=null&&l.trim())return ye(l);const r=Fe(e,a)[0];return(r==null?void 0:r.url)||""}function Je(e,a,l){return!!ie(e,a,l)}function St(){Ut(),ae.value={},Pe.value={}}function $t(){V.value={}}function Be(e){return V.value[e]||[]}function Ve(){const e={};h.value.steps.forEach((a,l)=>{const u=(a.step_images||[]).filter(Boolean);u.length&&(e[l]=u.map((r,m)=>({uid:`step-image-${l}-${m}`,name:`image-${m+1}.jpg`,status:"done",url:Q(r),response:{path:D(r)||r}})))}),V.value=e}function Xe(){const e={};h.value.steps.forEach((a,l)=>{a.audio_section_url&&(e[T(l,"audio_section_url")]=[{uid:`audio-section-${l}`,name:"audio-section.mp3",status:"done",url:ye(a.audio_section_url)}]),a.kodoblu_voice_url&&(e[T(l,"kodoblu_voice_url")]=[{uid:`kodoblu-voice-${l}`,name:"kodoblu-voice.mp3",status:"done",url:ye(a.kodoblu_voice_url)}])}),ae.value=e}function ke(e,a){E(e,a),ge(e,a,""),ae.value[T(e,a)]=[]}function At(e,a){var r,m;const l=D(((r=a.response)==null?void 0:r.path)||a.url||""),u=((m=h.value.steps[e])==null?void 0:m.step_images)||[];ge(e,"step_images",u.filter(U=>D(U)!==l)),V.value[e]=(V.value[e]||[]).filter(U=>U.uid!==a.uid)}function Ge(){h.value={title:"",character_image_url:null,show:!1,access_type:"subscription",sort_order:0,completion_points:50,chapter_id:null,steps:[Re()]},K.value=[],St(),$t()}function Ne(){Y.value=!1,Ge()}function Lt(){h.value.steps.push(Re())}function Mt(e){h.value.steps.length<=1||(E(e,"kodoblu_voice_url"),E(e,"audio_section_url"),h.value.steps.splice(e,1),Xe(),Ve())}async function xe(){var e;de.value=!0;try{W.value=await na(),R.value===null&&(R.value=((e=q.value[0])==null?void 0:e.id)??0)}catch(a){k.error(a.message||"خطا در بارگذاری پیشرفت چالشها")}finally{de.value=!1}}function Qe(e){R.value=e}function Pt(){w.value.cover_image_url=null,O.value=[]}async function Rt(e){const{file:a,onSuccess:l,onError:u,onProgress:r}=e,m=new FormData;m.append("file",a);const U=`${qe}/upload/machartaa-img`;N.value=0,A.value++,await new Promise((F,s)=>{const i=new XMLHttpRequest;i.open("POST",U),i.setRequestHeader("Authorization",`Bearer ${he()}`),i.upload.onprogress=o=>{if(o.lengthComputable){const v=Math.round(o.loaded/o.total*100);N.value=v,r==null||r({percent:v})}},i.onload=()=>{if(N.value=100,i.status>=200&&i.status<300)try{const o=JSON.parse(i.responseText||"{}"),v=fe(o);if(!v)throw new Error("مسیر فایل از سرور دریافت نشد");const b=Q(v);w.value.cover_image_url=v,O.value=b?[{uid:`${Date.now()}`,name:"chapter.jpg",status:"done",url:b,response:{path:v}}]:[],l==null||l(o,i),k.success("تصویر فصل آپلود شد"),F()}catch(o){u==null||u(o,i),s(o)}else{const o=new Error("خطا در آپلود تصویر فصل");u==null||u(o,i),s(o)}},i.onerror=()=>{u==null||u(new Error("خطا در آپلود تصویر فصل!"),i),s(new Error("خطا در آپلود تصویر فصل!"))},i.onloadend=()=>{A.value=Math.max(0,A.value-1),N.value=0},i.send(m)})}function Tt(e){ut.push({name:"stepChallengeFeedback",params:{challengeId:e}})}function De(e){return e.type.startsWith("image/")?e.size/1024/1024<5?!0:(k.error("حجم تصویر باید کمتر از 5MB باشد!"),!1):(k.error("فقط فایلهای تصویری قابل آپلود هستند!"),!1)}async function Ft(e){const{file:a,onSuccess:l,onError:u,onProgress:r}=e,m=new FormData;m.append("file",a);const U=`${qe}/upload/machartaa-img`;z.value=0,A.value++,await new Promise((F,s)=>{const i=new XMLHttpRequest;i.open("POST",U),i.setRequestHeader("Authorization",`Bearer ${he()}`),i.upload.onprogress=o=>{if(o.lengthComputable){const v=Math.round(o.loaded/o.total*100);z.value=v,r==null||r({percent:v})}},i.onload=()=>{if(z.value=100,i.status>=200&&i.status<300)try{const o=JSON.parse(i.responseText||"{}"),v=fe(o);if(!v)throw new Error("مسیر فایل از سرور دریافت نشد");const b=Q(v);h.value.character_image_url=v,K.value=b?[{uid:`${Date.now()}`,name:"image.jpg",status:"done",url:b,response:{path:v}}]:[],l==null||l(o,i),k.success("تصویر با موفقیت آپلود شد!"),F()}catch(o){u==null||u(o,i),s(o)}else{const o=new Error("خطا در آپلود تصویر");u==null||u(o,i),s(o)}},i.onerror=()=>{u==null||u(new Error("خطا در آپلود تصویر!"),i),s(new Error("خطا در آپلود تصویر!"))},i.onloadend=()=>{A.value=Math.max(0,A.value-1),z.value=0},i.send(m)})}async function Bt(e,a){const{file:l,onSuccess:u,onError:r,onProgress:m}=e,U=new FormData;U.append("file",l);const F=`${qe}/upload/machartaa-img`;A.value++,await new Promise((s,i)=>{const o=new XMLHttpRequest;o.open("POST",F),o.setRequestHeader("Authorization",`Bearer ${he()}`),o.upload.onprogress=v=>{v.lengthComputable&&(m==null||m({percent:Math.round(v.loaded/v.total*100)}))},o.onload=()=>{var v;if(o.status>=200&&o.status<300)try{const b=JSON.parse(o.responseText||"{}"),M=fe(b);if(!M)throw new Error("مسیر تصویر از سرور دریافت نشد");const we=[...((v=h.value.steps[a])==null?void 0:v.step_images)||[],M];ge(a,"step_images",we);const zt={uid:`${Date.now()}-${a}`,name:l.name||"image.jpg",status:"done",url:Q(M),response:{path:M}};V.value[a]=[...Be(a),zt],u==null||u(b,o),k.success("عکس مرحله با موفقیت آپلود شد!"),s()}catch(b){r==null||r(b,o),i(b)}else{const b=new Error("خطا در آپلود عکس مرحله");r==null||r(b,o),i(b)}},o.onerror=()=>{r==null||r(new Error("خطا در آپلود عکس مرحله!"),o),i(new Error("خطا در آپلود عکس مرحله!"))},o.onloadend=()=>{A.value=Math.max(0,A.value-1)},o.send(U)})}function Ze(e){return e.type.startsWith("audio/")?e.size/1024/1024<60?!0:(k.error("حجم فایل صوتی باید کمتر از 60MB باشد!"),!1):(k.error("فقط فایلهای صوتی قابل آپلود هستند!"),!1)}async function Ye(e,a,l){const{file:u,onSuccess:r,onError:m,onProgress:U}=e,F=new FormData;F.append("file",u);const s=`${qe}/upload/machartaa-audio`;E(a,l),J.value[T(a,l)]=URL.createObjectURL(u),be(a,l,0),A.value++,await new Promise((i,o)=>{const v=new XMLHttpRequest;v.open("POST",s),v.setRequestHeader("Authorization",`Bearer ${he()}`),v.timeout=15*60*1e3,v.upload.onprogress=b=>{if(b.lengthComputable){const M=Math.round(b.loaded/b.total*100);be(a,l,M),U==null||U({percent:M})}},v.onload=()=>{if(be(a,l,100),v.status>=200&&v.status<300)try{const b=JSON.parse(v.responseText||"{}"),M=fe(b);if(!M)throw new Error("مسیر فایل صوتی از سرور دریافت نشد");E(a,l),ge(a,l,M);const we=ye(M);ae.value[T(a,l)]=we?[{uid:`${Date.now()}`,name:u.name||"audio.mp3",status:"done",url:we,response:{path:M}}]:[],r==null||r(b,v),k.success("فایل صوتی با موفقیت آپلود شد!"),i()}catch(b){m==null||m(b,v),o(b)}else{E(a,l);const b=new Error("خطا در آپلود فایل صوتی");m==null||m(b,v),o(b)}},v.onerror=()=>{E(a,l),m==null||m(new Error("خطا در آپلود فایل صوتی!"),v),o(new Error("خطا در آپلود فایل صوتی!"))},v.onloadend=()=>{A.value=Math.max(0,A.value-1),be(a,l,0)},v.send(F)})}async function Nt(e){try{const a=await ma(e.id);ee.value=!0,te.value=e.id,Ae.value=a.chapter_id??null,h.value={title:a.title,character_image_url:D(a.character_image_url),show:!!a.show,access_type:a.access_type==="subscription"?"subscription":"free",sort_order:a.sort_order||0,completion_points:a.completion_points??50,chapter_id:a.chapter_id??null,steps:(a.steps||[]).map(l=>({id:l.id,description:l.description||"",duration_minutes:l.duration_minutes||Math.round((l.duration_seconds||60)/60),aparat_embed_code:l.aparat_embed_code||"",kodoblu_voice_url:l.kodoblu_voice_url||"",step_images:Array.isArray(l.step_images)?[...l.step_images]:[],is_final_step:!!l.is_final_step,enable_feedback_text:!!l.enable_feedback_text,require_feedback_text:!!l.require_feedback_text,feedback_text_title:l.feedback_text_title||"بازخورد این مرحله",feedback_text_placeholder:l.feedback_text_placeholder||"بازخورد خود را بنویس...",enable_photo_upload:!!(l.enable_photo_upload??l.requires_photo_upload),require_photo_upload:l.require_photo_upload!=null?!!l.require_photo_upload:!l.enable_photo_upload&&!!l.requires_photo_upload,enable_voice_upload:!!l.enable_voice_upload,require_voice_upload:!!l.require_voice_upload,enable_mcq:!!l.enable_mcq,require_mcq:!!l.require_mcq,mcq_question:l.mcq_question||"",mcq_options:Array.isArray(l.mcq_options)&&l.mcq_options.length?[...l.mcq_options]:["",""],mcq_correct_index:Number(l.mcq_correct_index??0),enable_audio_section:!!l.enable_audio_section,audio_section_url:l.audio_section_url||"",punishment_description:l.punishment_description||"",requires_photo_upload:l.require_photo_upload!=null?!!l.require_photo_upload:!l.enable_photo_upload&&!!l.requires_photo_upload}))},a.character_image_url&&(K.value=[{uid:`${Date.now()}`,name:"image.jpg",status:"done",url:Q(a.character_image_url)}]),Xe(),Ve(),Y.value=!0}catch(a){k.error(a.message||"خطا در بارگذاری چالش")}}async function Dt(){var e;Le.value=!0;try{await ua({rules_aparat_embed_code:((e=ce.value.rules_aparat_embed_code)==null?void 0:e.trim())||null}),k.success("تنظیمات ذخیره شد")}catch(a){k.error(a.message||"خطا در ذخیره تنظیمات")}finally{Le.value=!1}}async function Ot(){try{const e=await ra();ce.value.rules_aparat_embed_code=(e==null?void 0:e.rules_aparat_embed_code)||""}catch(e){k.error(e.message||"خطا در بارگذاری تنظیمات")}}Qt(I,e=>{e==="progress"&&(j(),W.value.length||xe()),(e==="chapters"||e==="challenges")&&j()}),Zt(()=>{Ot(),j(),I.value==="progress"&&xe()});async function jt(){if(!h.value.title.trim()){k.error("عنوان چالش الزامی است");return}if(A.value>0){k.warning("لطفاً تا پایان آپلود فایلها صبر کنید");return}if(h.value.chapter_id){const e=le.value[h.value.chapter_id]||0;if(!(ee.value&&Ae.value===h.value.chapter_id)&&e>=30){k.error("این فصل ظرفیت کامل دارد (حداکثر ۳۰ چالش / ۲ اسلاید)");return}}try{const e={...h.value,chapter_id:h.value.chapter_id??null,sort_order:Number(h.value.sort_order)||0,completion_points:Number(h.value.completion_points)||50,steps:h.value.steps.map(a=>{var l,u;return{...a,kodoblu_voice_url:D((l=a.kodoblu_voice_url)==null?void 0:l.trim())||"",audio_section_url:D((u=a.audio_section_url)==null?void 0:u.trim())||"",step_images:(a.step_images||[]).map(r=>D(r)||r).filter(Boolean)}})};ee.value&&te.value?(await ca(te.value,e),k.success("چالش ویرایش شد")):(await da(e,null),k.success("چالش اضافه شد")),Ne(),await j()}catch(e){k.error(e.message||"خطا در ذخیره چالش")}}return(e,a)=>{const l=Jt,u=Kt,r=Wt,m=It,U=Ht,F=Et;return c(),d("div",{class:H(["step-challenges-page",{"step-challenges-page--mgmt":I.value==="challenges"||I.value==="progress"}])},[n(F,null,{default:p(()=>[n(g(it),{activeKey:I.value,"onUpdate:activeKey":a[2]||(a[2]=s=>I.value=s),class:"step-challenges-tabs"},{default:p(()=>[n(g(re),{key:"challenges",tab:"مدیریت چالشها"},{default:p(()=>[t("div",fa,[t("div",ga,[t("aside",ba,[ya,se.value?(c(),d("div",ka,[n(g(Z))])):(c(),d(S,{key:1},[(c(!0),d(S,null,B(q.value,(s,i)=>(c(),d("button",{key:s.id,type:"button",class:H(["mgmt-chapters__item",{"mgmt-chapters__item--active":$.value===s.id}]),onClick:o=>ft(s.id)},[t("span",wa,f(s.title||`فصل ${i+1}`),1),t("span",Ca,f(le.value[s.id]||0)+"/۳۰",1)],10,xa))),128)),q.value.length?C("",!0):(c(),d("div",qa," هنوز فصلی تعریف نشده است. از تب «مدیریت فصلها» اضافه کنید. "))],64))]),t("section",Ua,[t("div",Sa,[t("h2",$a,f(ze.value?`چالشهای ${ze.value.title}`:"یک فصل انتخاب کنید"),1)]),$.value?Me.value?(c(),d("div",La,[n(g(Z),{size:"large"})])):(c(),d("div",Ma,[(c(),d(S,null,B(2,s=>t("div",{key:s,class:"mgmt-grid-block"},[t("div",Pa,[x(" اسلاید "+f(s)+" ",1),t("span",Ra," (چالش "+f((s-1)*15+1)+" تا "+f(s*15)+") ",1)]),t("div",Ta,[(c(!0),d(S,null,B(pt(s-1),i=>(c(),d("div",{key:i.slotNumber,class:H(["mgmt-slot",{"mgmt-slot--filled":!!i.challenge,"mgmt-slot--empty":!i.challenge}]),role:"button",tabindex:"0",onClick:o=>Ie(i),onKeydown:aa(et(o=>Ie(i),["prevent"]),["enter"])},[i.challenge?(c(),d(S,{key:0},[t("button",{type:"button",class:"mgmt-slot__delete",title:"حذف چالش",onClick:et(o=>Ct(i.challenge),["stop"])},[n(L,{icon:"vuesax-linear:trash"})],8,Ba),n(L,{icon:"vuesax-linear:edit",class:"mgmt-slot__icon"}),t("span",Na,"چالش "+f(i.slotNumber),1),t("span",{class:"mgmt-slot__title",title:i.challenge.title},f(i.challenge.title),9,Da)],64)):(c(),d(S,{key:1},[n(L,{icon:"vuesax-linear:add",class:"mgmt-slot__icon"}),t("span",Oa,"چالش "+f(i.slotNumber),1),ja],64))],42,Fa))),128))])])),64))])):(c(),d("div",Aa," از باکس سمت راست یک فصل را انتخاب کنید. "))])])])]),_:1}),n(g(re),{key:"chapters",tab:"مدیریت فصلها"},{default:p(()=>[t("div",za,[Ea,n(l,{type:"primary",onClick:bt},{default:p(()=>[x("افزودن فصل")]),_:1})]),se.value?(c(),d("div",Ha,[n(g(Z),{size:"large"})])):(c(),d("div",Ia,[(c(!0),d(S,null,B(q.value,s=>(c(),d("div",{key:s.id,class:"chapter-admin-card"},[t("div",Wa,[t("div",Ka,f(s.title),1),t("div",Ja,f(s.subtitle||"بدون زیرعنوان"),1),t("div",Va," تم: "+f(rt(s.theme_key))+" · ترتیب: "+f(s.sort_order??0)+" · "+f(s.show?"نمایش":"مخفی")+" · "+f(le.value[s.id]||0)+" چالش ",1)]),t("div",Xa,[n(g(Oe),{class:"cursor-pointer"},{title:p(()=>[t("span",null,f(s.show?"مخفی کردن":"نمایش"),1)]),default:p(()=>[n(L,{icon:s.show?"vuesax-linear:eye-slash":"vuesax-linear:eye",color:s.show?"#F59E0B":"#16A34A",onClick:i=>xt(s)},null,8,["icon","color","onClick"])]),_:2},1024),n(g(Oe),{class:"cursor-pointer"},{title:p(()=>[Ga]),default:p(()=>[n(L,{icon:"vuesax-linear:edit",color:"#1D4ED8",onClick:i=>yt(s)},null,8,["onClick"])]),_:2},1024),n(g(Oe),{class:"cursor-pointer"},{title:p(()=>[Qa]),default:p(()=>[n(L,{icon:"vuesax-linear:trash",color:"#DC2626",onClick:i=>wt(s)},null,8,["onClick"])]),_:2},1024)])]))),128)),q.value.length?C("",!0):(c(),d("div",Za," هنوز فصلی تعریف نشده است. "))]))]),_:1}),n(g(re),{key:"progress",tab:"پیشرفت کاربران"},{default:p(()=>[t("div",Ya,[t("div",es,[t("aside",ts,[as,se.value?(c(),d("div",ss,[n(g(Z))])):(c(),d(S,{key:1},[(c(!0),d(S,null,B(q.value,(s,i)=>(c(),d("button",{key:s.id,type:"button",class:H(["mgmt-chapters__item",{"mgmt-chapters__item--active":R.value===s.id}]),onClick:o=>Qe(s.id)},[t("span",os,f(s.title||`فصل ${i+1}`),1),t("span",is,f(Ee.value[s.id]||0),1)],10,ls))),128)),t("button",{type:"button",class:H(["mgmt-chapters__item",{"mgmt-chapters__item--active":R.value===0}]),onClick:a[0]||(a[0]=s=>Qe(0))},[ns,t("span",us,f(Ee.value[0]||0),1)],2),q.value.length?C("",!0):(c(),d("div",rs," هنوز فصلی تعریف نشده است. "))],64))]),t("section",cs,[t("div",ds,[t("h2",_s,f(ct.value),1),n(l,{type:"dashed",size:"small",loading:de.value,onClick:xe},{default:p(()=>[x(" بروزرسانی ")]),_:1},8,["loading"])]),de.value?(c(),d("div",vs,[n(g(Z),{size:"large"})])):He.value.length?(c(),d("div",ps,[(c(),d(S,null,B(2,s=>t("div",{key:s,class:"mgmt-grid-block"},[t("div",hs,[x(" اسلاید "+f(s)+" ",1),t("span",fs," (چالش "+f((s-1)*15+1)+" تا "+f(s*15)+") ",1)]),t("div",gs,[(c(!0),d(S,null,B(ht(s-1),i=>(c(),d("button",{key:i.slotNumber,type:"button",class:H(["progress-slot",{"progress-slot--filled":!!i.challenge,"progress-slot--empty":!i.challenge}]),disabled:!i.challenge,onClick:o=>i.challenge&&Tt(i.challenge.id)},[i.challenge?(c(),d(S,{key:0},[t("span",ys,"چالش "+f(i.slotNumber),1),t("span",{class:"progress-slot__title",title:i.challenge.title},f(i.challenge.title),9,ks),t("div",xs,[t("span",null,f(i.challenge.unique_users_count)+" کاربر",1),t("span",null,f(i.challenge.times_performed)+" بار",1)]),t("span",ws,[x(" بازخوردها "),n(L,{icon:"vuesax-linear:arrow-left"})])],64)):(c(),d(S,{key:1},[t("span",Cs,"چالش "+f(i.slotNumber),1),qs],64))],10,bs))),128))])])),64))])):(c(),d("div",ms," چالشی در این فصل وجود ندارد. "))])])])]),_:1}),n(g(re),{key:"settings",tab:"تنظیمات صفحه"},{default:p(()=>[t("div",Us,[Ss,$s,t("div",null,[As,n(u,{value:ce.value.rules_aparat_embed_code,"onUpdate:value":a[1]||(a[1]=s=>ce.value.rules_aparat_embed_code=s),placeholder:"کد embed از آپارات",rows:4},null,8,["value"])]),n(l,{type:"primary",loading:Le.value,onClick:Dt},{default:p(()=>[x(" ذخیره تنظیمات ")]),_:1},8,["loading"])])]),_:1})]),_:1},8,["activeKey"]),n(U,{visible:Y.value,"onUpdate:visible":a[9]||(a[9]=s=>Y.value=s),title:ee.value?"ویرایش چالش":"افزودن چالش",onOk:jt,onCancel:Ne,width:"85%",confirmLoading:A.value>0},{default:p(()=>[t("div",Ls,[A.value>0?(c(),d("div",Ms,[n(g(Z),{size:"large"})])):C("",!0),t("div",null,[Ps,n(r,{value:h.value.title,"onUpdate:value":a[3]||(a[3]=s=>h.value.title=s),placeholder:"عنوان چالش"},null,8,["value"])]),t("div",Rs,[t("div",Ts,[Fs,n(g($e),{value:h.value.chapter_id,"onUpdate:value":a[4]||(a[4]=s=>h.value.chapter_id=s),class:"w-full","allow-clear":"",placeholder:"انتخاب فصل"},{default:p(()=>[(c(!0),d(S,null,B(q.value,s=>(c(),tt(g(P),{key:s.id,value:s.id},{default:p(()=>[x(f(s.title)+" ",1),t("span",Bs," ("+f(le.value[s.id]||0)+"/۳۰) ",1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),t("div",Ns,[x(" ترتیب نمایش از جایگاه گرید (چالش ۱ تا ۳۰) مشخص میشود. "),h.value.sort_order?(c(),d("span",Ds," جایگاه فعلی: چالش "+f(h.value.sort_order),1)):C("",!0)])]),t("div",null,[Os,t("div",js,[n(m,{value:h.value.show,"onUpdate:value":a[5]||(a[5]=s=>h.value.show=s)},null,8,["value"]),t("span",zs,f(h.value.show?"نمایش":"مخفی"),1)])]),t("div",null,[Es,n(g($e),{value:h.value.access_type,"onUpdate:value":a[6]||(a[6]=s=>h.value.access_type=s),class:"w-full"},{default:p(()=>[n(g(P),{value:"free"},{default:p(()=>[x("رایگان (همه کاربران)")]),_:1}),n(g(P),{value:"subscription"},{default:p(()=>[x("اشتراکی (فقط اشتراک فعال)")]),_:1})]),_:1},8,["value"])]),t("div",null,[Hs,n(r,{value:h.value.completion_points,"onUpdate:value":a[7]||(a[7]=s=>h.value.completion_points=s),type:"number",min:"0",placeholder:"50"},null,8,["value"])])]),t("div",Is,[t("div",null,[Ws,n(g(ne),{"file-list":K.value,"onUpdate:fileList":a[8]||(a[8]=s=>K.value=s),"before-upload":De,"custom-request":Ft,accept:"image/*","max-count":1,"list-type":"picture-card"},{default:p(()=>[K.value.length<1?(c(),d("div",Ks,[n(L,{icon:"vuesax-linear:image",class:"text-2xl mb-2"}),Js])):C("",!0)]),_:1},8,["file-list"]),z.value>0&&z.value<100?(c(),d("div",Vs,[t("div",Xs,[t("div",{class:"h-2 bg-blue-500 transition-all",style:Ce(pe(z.value))},null,4)])])):C("",!0)])]),Gs,t("div",Qs,[Zs,t("div",Ys,[(c(!0),d(S,null,B(h.value.steps,(s,i)=>(c(),d("div",{key:i,class:H(["step-form-box",{"step-form-box--final":s.is_final_step}])},[t("div",el,[t("div",tl,[x(" مرحله "+f(i+1)+" ",1),s.is_final_step?(c(),d("span",al,"(ماموریت پایانی)")):C("",!0)]),t("div",sl,[n(m,{value:s.is_final_step,"onUpdate:value":o=>s.is_final_step=o},null,8,["value","onUpdate:value"]),ll])]),t("div",null,[ol,n(u,{value:s.description,"onUpdate:value":o=>s.description=o,placeholder:"توضیحات مرحله",rows:2},null,8,["value","onUpdate:value"])]),t("div",il,[t("div",null,[nl,n(r,{value:s.duration_minutes,"onUpdate:value":o=>s.duration_minutes=o,type:"number",min:"1",placeholder:"1"},null,8,["value","onUpdate:value"])])]),t("div",null,[ul,n(u,{value:s.aparat_embed_code,"onUpdate:value":o=>s.aparat_embed_code=o,placeholder:"کد embed",rows:2},null,8,["value","onUpdate:value"])]),t("div",rl,[cl,n(g(ne),{"file-list":Fe(i,"kodoblu_voice_url"),"before-upload":Ze,"custom-request":o=>Ye(o,i,"kodoblu_voice_url"),accept:"audio/*","max-count":1,"show-upload-list":!1,onRemove:()=>ke(i,"kodoblu_voice_url")},{default:p(()=>[n(l,{type:"dashed"},{default:p(()=>[n(L,{icon:"vuesax-linear:voice-cricle",class:"ml-1"}),x(" آپلود وویس کدوبلو ")]),_:1})]),_:2},1032,["file-list","custom-request","onRemove"]),X(i,"kodoblu_voice_url")>0&&X(i,"kodoblu_voice_url")<100?(c(),d("div",dl,[t("div",_l,[t("div",{class:"h-2 bg-blue-500 transition-all",style:Ce(pe(X(i,"kodoblu_voice_url")))},null,4)])])):C("",!0),Je(i,"kodoblu_voice_url",s.kodoblu_voice_url)?(c(),d("div",vl,[t("div",ml,[pl,n(l,{type:"text",danger:"",size:"small",onClick:o=>ke(i,"kodoblu_voice_url")},{default:p(()=>[x(" حذف فایل ")]),_:2},1032,["onClick"])]),(c(),d("audio",{key:ie(i,"kodoblu_voice_url",s.kodoblu_voice_url),src:ie(i,"kodoblu_voice_url",s.kodoblu_voice_url),controls:"",preload:"metadata",class:"w-full"},null,8,hl))])):C("",!0),n(r,{value:s.kodoblu_voice_url,"onUpdate:value":o=>s.kodoblu_voice_url=o,placeholder:"مسیر وویس کدوبلو (پس از آپلود)"},null,8,["value","onUpdate:value"])]),t("div",null,[fl,n(g(ne),{"file-list":Be(i),"list-type":"picture-card","before-upload":De,"custom-request":o=>Bt(o,i),accept:"image/*",onRemove:o=>At(i,o)},{default:p(()=>[Be(i).length<8?(c(),d("div",gl,[n(L,{icon:"vuesax-linear:image",class:"text-xl mb-1"}),bl])):C("",!0)]),_:2},1032,["file-list","custom-request","onRemove"])]),yl,t("div",kl,[xl,t("div",wl,[t("label",Cl,[n(m,{value:s.enable_feedback_text,"onUpdate:value":o=>s.enable_feedback_text=o},null,8,["value","onUpdate:value"]),ql]),t("label",Ul,[n(m,{value:s.require_feedback_text,"onUpdate:value":o=>s.require_feedback_text=o,disabled:!s.enable_feedback_text},null,8,["value","onUpdate:value","disabled"]),Sl]),t("label",$l,[n(m,{value:s.enable_photo_upload,"onUpdate:value":o=>s.enable_photo_upload=o},null,8,["value","onUpdate:value"]),Al]),t("label",Ll,[n(m,{value:s.require_photo_upload,"onUpdate:value":o=>s.require_photo_upload=o,disabled:!s.enable_photo_upload},null,8,["value","onUpdate:value","disabled"]),Ml]),t("label",Pl,[n(m,{value:s.enable_voice_upload,"onUpdate:value":o=>s.enable_voice_upload=o},null,8,["value","onUpdate:value"]),Rl]),t("label",Tl,[n(m,{value:s.require_voice_upload,"onUpdate:value":o=>s.require_voice_upload=o,disabled:!s.enable_voice_upload},null,8,["value","onUpdate:value","disabled"]),Fl]),t("label",Bl,[n(m,{value:s.enable_mcq,"onUpdate:value":o=>s.enable_mcq=o},null,8,["value","onUpdate:value"]),Nl]),t("label",Dl,[n(m,{value:s.require_mcq,"onUpdate:value":o=>s.require_mcq=o,disabled:!s.enable_mcq},null,8,["value","onUpdate:value","disabled"]),Ol]),t("label",jl,[n(m,{value:s.enable_audio_section,"onUpdate:value":o=>s.enable_audio_section=o},null,8,["value","onUpdate:value"]),zl])]),s.enable_feedback_text?(c(),d("div",El,[t("div",null,[Hl,n(r,{value:s.feedback_text_title,"onUpdate:value":o=>s.feedback_text_title=o,placeholder:"مثلاً: بازخورد این مرحله"},null,8,["value","onUpdate:value"])]),t("div",null,[Il,n(r,{value:s.feedback_text_placeholder,"onUpdate:value":o=>s.feedback_text_placeholder=o,placeholder:"مثلاً: بازخورد خود را بنویس..."},null,8,["value","onUpdate:value"])])])):C("",!0),s.enable_mcq?(c(),d("div",Wl,[n(r,{value:s.mcq_question,"onUpdate:value":o=>s.mcq_question=o,placeholder:"متن سوال"},null,8,["value","onUpdate:value"]),(c(!0),d(S,null,B(s.mcq_options,(o,v)=>(c(),d("div",{key:v,class:"flex gap-2 items-center"},[n(r,{value:s.mcq_options[v],"onUpdate:value":b=>s.mcq_options[v]=b,placeholder:`گزینه ${v+1}`,class:"flex-1"},null,8,["value","onUpdate:value","placeholder"]),t("input",{type:"radio",name:`mcq-${i}`,checked:s.mcq_correct_index===v,onChange:b=>s.mcq_correct_index=v},null,40,Kl),Jl,s.mcq_options.length>2?(c(),tt(l,{key:0,danger:"",onClick:b=>s.mcq_options.splice(v,1)},{default:p(()=>[x("×")]),_:2},1032,["onClick"])):C("",!0)]))),128)),n(l,{type:"dashed",onClick:o=>s.mcq_options.push("")},{default:p(()=>[x("+ گزینه")]),_:2},1032,["onClick"])])):C("",!0),s.enable_audio_section?(c(),d("div",Vl,[Xl,n(g(ne),{"file-list":Fe(i,"audio_section_url"),"before-upload":Ze,"custom-request":o=>Ye(o,i,"audio_section_url"),accept:"audio/*","max-count":1,"show-upload-list":!1,onRemove:()=>ke(i,"audio_section_url")},{default:p(()=>[n(l,{type:"dashed"},{default:p(()=>[n(L,{icon:"vuesax-linear:voice-cricle",class:"ml-1"}),x(" آپلود فایل صوتی ")]),_:1})]),_:2},1032,["file-list","custom-request","onRemove"]),X(i,"audio_section_url")>0&&X(i,"audio_section_url")<100?(c(),d("div",Gl,[t("div",Ql,[t("div",{class:"h-2 bg-blue-500 transition-all",style:Ce(pe(X(i,"audio_section_url")))},null,4)])])):C("",!0),Je(i,"audio_section_url",s.audio_section_url)?(c(),d("div",Zl,[t("div",Yl,[eo,n(l,{type:"text",danger:"",size:"small",onClick:o=>ke(i,"audio_section_url")},{default:p(()=>[x(" حذف فایل ")]),_:2},1032,["onClick"])]),(c(),d("audio",{key:ie(i,"audio_section_url",s.audio_section_url),src:ie(i,"audio_section_url",s.audio_section_url),controls:"",preload:"metadata",class:"w-full"},null,8,to))])):C("",!0),n(r,{value:s.audio_section_url,"onUpdate:value":o=>s.audio_section_url=o,placeholder:"مسیر فایل صوتی (پس از آپلود)"},null,8,["value","onUpdate:value"])])):C("",!0)]),t("div",ao,[n(l,{type:"text",danger:"",onClick:o=>Mt(i),disabled:h.value.steps.length<=1},{default:p(()=>[n(L,{icon:"vuesax-linear:trash",color:"#DC2626"}),so]),_:2},1032,["onClick","disabled"])])],2))),128)),n(l,{type:"dashed",onClick:Lt,class:"w-full"},{default:p(()=>[lo]),_:1})])])])]),_:1},8,["visible","title","confirmLoading"]),n(U,{visible:oe.value,"onUpdate:visible":a[16]||(a[16]=s=>oe.value=s),title:ve.value?"ویرایش فصل":"افزودن فصل",onOk:kt,onCancel:Ke,width:"560px"},{default:p(()=>[t("div",oo,[t("div",null,[io,n(r,{value:w.value.title,"onUpdate:value":a[10]||(a[10]=s=>w.value.title=s),placeholder:"مثلاً خانه بهار"},null,8,["value"])]),t("div",null,[no,n(r,{value:w.value.subtitle,"onUpdate:value":a[11]||(a[11]=s=>w.value.subtitle=s),placeholder:"توضیح کوتاه روی بنر فصل"},null,8,["value"])]),t("div",uo,[t("div",null,[ro,n(g($e),{value:w.value.theme_key,"onUpdate:value":a[12]||(a[12]=s=>w.value.theme_key=s),class:"w-full"},{default:p(()=>[n(g(P),{value:"meadow"},{default:p(()=>[x("خانه کدوبلو")]),_:1}),n(g(P),{value:"cottage"},{default:p(()=>[x("کافه پفی")]),_:1}),n(g(P),{value:"forest"},{default:p(()=>[x("باغ میلا")]),_:1}),n(g(P),{value:"desert"},{default:p(()=>[x("کارگاه پیتو")]),_:1}),n(g(P),{value:"winter"},{default:p(()=>[x("خانه آرامان")]),_:1}),n(g(P),{value:"castle"},{default:p(()=>[x("میدان شهر")]),_:1}),n(g(P),{value:"tree"},{default:p(()=>[x("درخت پیرین")]),_:1})]),_:1},8,["value"])]),t("div",null,[co,n(r,{value:w.value.sort_order,"onUpdate:value":a[13]||(a[13]=s=>w.value.sort_order=s),type:"number",placeholder:"1"},null,8,["value"])])]),t("div",_o,[n(m,{value:w.value.show,"onUpdate:value":a[14]||(a[14]=s=>w.value.show=s)},null,8,["value"]),t("span",vo,f(w.value.show?"نمایش در نقشه":"مخفی"),1)]),t("div",null,[mo,n(g(ne),{"file-list":O.value,"onUpdate:fileList":a[15]||(a[15]=s=>O.value=s),"before-upload":De,"custom-request":Rt,accept:"image/*","max-count":1,"list-type":"picture-card",onRemove:Pt},{default:p(()=>[O.value.length<1?(c(),d("div",po,[n(L,{icon:"vuesax-linear:image",class:"text-2xl mb-2"}),ho])):C("",!0)]),_:1},8,["file-list"]),N.value>0&&N.value<100?(c(),d("div",fo,[t("div",go,[t("div",{class:"h-2 bg-blue-500 transition-all",style:Ce(pe(N.value))},null,4)])])):C("",!0),bo])])]),_:1},8,["visible","title"])]),_:1})],2)}}});const ei=ha(yo,[["__scopeId","data-v-dba07e20"]]);export{ei as default};
|