2 lines
50 KiB
JavaScript
2 lines
50 KiB
JavaScript
import{_ as ks}from"./BasicMainCard-235c6a8e.js";import{_ as ws}from"./BasicModal.vue_vue_type_style_index_0_lang-6b846ddc.js";import{_ as xs}from"./BaseSwitch.vue_vue_type_script_setup_true_lang-d33f0812.js";import{_ as Cs}from"./BasicInput.vue_vue_type_style_index_0_lang-c6922e3c.js";import{_ as Ss}from"./BasicTextArea.vue_vue_type_style_index_0_lang-0c6fb77f.js";import{_ as Us}from"./button.vue_vue_type_style_index_0_lang-2b2ee941.js";import{d as qs,i as h,v as $s,u as Ts,j as G,y as tt,x as As,o as r,c,e as i,w as p,l as y,b as a,F as $,q as R,n as S,t as g,f as x,s as K,B as Ne,G as k,T as Ls,U as Ps,bK as Ms,L as je,bn as Rs,A as xt,k as Ct}from"./index-ab3b0b84.js";import{d as st}from"./updateLocale-958574f8.js";import{g as Ds,c as Ns,a as js,u as St,b as Fs,d as Bs,s as zs,e as Os,f as Hs,h as Es,i as Is,j as Ws,k as Gs,l as Ks}from"./stepChallenge-4e99ddcd.js";import{I as P}from"./Icon-b552f0cb.js";import{_ as Vs}from"./InputDatePicker.vue_vue_type_script_setup_true_lang-b35d332f.js";import{a as Js}from"./useDataTime-45198684.js";import{g as ae,e as z,a as Xs}from"./convert-2ad76038.js";import{T as Ut}from"./index-b305a6df.js";import{T as Zs}from"./dayjs-43de4565.js";import{S as le}from"./index-cbd716ee.js";import{M as qt}from"./index-34ee3839.js";import{_ as $t}from"./index-9bb4e5d4.js";import{_ as Qs}from"./index-adf5fd7f.js";import{T as Ys}from"./index-0e84975e.js";import{T as at}from"./isSymbol-5cc45ff5.js";import{U as pe}from"./index-732bfe67.js";import{_ as ea}from"./_plugin-vue_export-helper-6c5748cb.js";import"./Grid-0eb1a61b.js";import"./index-fd8a1334.js";import"./Col-48c01651.js";import"./styleChecker-558deef9.js";import"./isPlainObject-d617fbb5.js";import"./vnode-602d90c4.js";import"./usePrice-bc935b83.js";import"./index-086ff91e.js";import"./adminDb-7b8c8f5f.js";import"./supabaseTableQuery-7c1903fc.js";import"./shallowequal-39bf2166.js";import"./useState-7883cedd.js";import"./useMemo-1af73168.js";import"./FormItemContext-548f4b58.js";import"./omit-837670e8.js";import"./index-b2118e3c.js";import"./index-d5e11315.js";import"./useRefs-3f675f69.js";import"./_flatRest-289ae805.js";import"./isMobile-e2e89480.js";import"./index-c855bf3d.js";import"./DialogWrap-421034e2.js";import"./pickAttrs-1e1939a5.js";import"./toArray-78940ccb.js";import"./SearchOutlined-a36e5cce.js";import"./index-323711b8.js";import"./css-aae66f86.js";import"./index-993bd9f9.js";import"./index-75515977.js";const _=he=>(Ls("data-v-d2b5e5d3"),he=he(),Ps(),he),ta={class:"mgmt-page"},sa={class:"mgmt-layout"},aa={class:"mgmt-chapters"},la=_(()=>a("div",{class:"mgmt-chapters__title"},"فصلها",-1)),oa={key:0,class:"py-10 flex justify-center"},ia=["onClick"],na={class:"mgmt-chapters__item-label"},ua={class:"mgmt-chapters__item-count"},ra={key:0,class:"text-center text-gray-500 text-sm py-8 px-2"},ca={class:"mgmt-challenges"},da={class:"mgmt-challenges__header"},_a={class:"m-0 text-base font-semibold"},va={key:0,class:"text-center text-gray-500 py-16"},ma={key:1,class:"py-16 flex justify-center"},pa={key:2,class:"mgmt-grids"},ha={class:"mgmt-grid-block__label"},ga={class:"text-gray-400 font-normal"},fa={class:"mgmt-grid"},ba=["onClick","onKeydown"],ya=["onClick"],ka={class:"mgmt-slot__number"},wa=["title"],xa=["title"],Ca={class:"mgmt-slot__number"},Sa=_(()=>a("span",{class:"mgmt-slot__hint"},"افزودن",-1)),Ua={class:"flex justify-between items-center mb-4"},qa=_(()=>a("div",null,[a("h2",{class:"m-0"},"فصلهای نقشه ماجراجویی"),a("p",{class:"text-sm text-gray-500 m-0 mt-1"},"هر فصل دو اسلاید ۱۵تایی دارد (گرید ۵×۳، حداکثر ۳۰ چالش).")],-1)),$a={key:0,class:"py-16 flex justify-center"},Ta={key:1,class:"space-y-3"},Aa={class:"flex-1 min-w-0"},La={class:"font-semibold truncate"},Pa={class:"text-sm text-gray-500 truncate"},Ma={class:"text-xs text-gray-400 mt-1"},Ra={class:"flex gap-2 shrink-0"},Da=_(()=>a("span",null,"ویرایش",-1)),Na=_(()=>a("span",null,"حذف",-1)),ja={key:0,class:"text-center text-gray-500 py-12"},Fa={class:"mgmt-page progress-mgmt-page"},Ba={class:"mgmt-layout"},za={class:"mgmt-chapters"},Oa=_(()=>a("div",{class:"mgmt-chapters__title"},"فصلها",-1)),Ha={key:0,class:"py-10 flex justify-center"},Ea=["onClick"],Ia={class:"mgmt-chapters__item-label"},Wa={class:"mgmt-chapters__item-count"},Ga=_(()=>a("span",{class:"mgmt-chapters__item-label"},"بدون فصل",-1)),Ka={class:"mgmt-chapters__item-count"},Va={key:0,class:"text-center text-gray-500 text-sm py-8 px-2"},Ja={class:"mgmt-challenges"},Xa={class:"mgmt-challenges__header flex flex-wrap items-center justify-between gap-3"},Za={class:"m-0 text-base font-semibold"},Qa={key:0,class:"py-16 flex justify-center"},Ya={key:1,class:"text-center text-gray-500 py-16"},el={key:2,class:"mgmt-grids"},tl={class:"mgmt-grid-block__label"},sl={class:"text-gray-400 font-normal"},al={class:"mgmt-grid"},ll=["disabled","onClick"],ol={class:"progress-slot__number"},il=["title"],nl={class:"progress-slot__stats"},ul={class:"progress-slot__action"},rl={class:"progress-slot__number"},cl=_(()=>a("span",{class:"progress-slot__hint"},"خالی",-1)),dl={class:"space-y-4"},_l={class:"flex flex-wrap items-center justify-between gap-3"},vl=_(()=>a("div",null,[a("h2",{class:"m-0 text-base font-semibold"},"چالشهای پیشنهادی کاربران"),a("p",{class:"text-sm text-gray-500 m-0 mt-1"},"پیشنهادهایی که مشترکین برای کدوبلو ارسال کردهاند.")],-1)),ml={key:1,class:"suggestion-challenge-cell"},pl={class:"suggestion-challenge-cell__title-row"},hl={class:"font-medium"},gl=["title","onClick"],fl={key:0,class:"suggestion-challenge-cell__steps"},bl={class:"suggestion-challenge-cell__step-title"},yl={class:"suggestion-challenge-cell__step-desc"},kl=["onClick"],wl={key:0,class:"text-xs text-gray-400"},xl={class:"max-w-2xl space-y-4"},Cl=_(()=>a("h2",{class:"text-lg font-semibold"},"قوانین چالشهای کدوبلو",-1)),Sl=_(()=>a("p",{class:"text-sm text-gray-600"}," ویدیوی embed آپارات که در مودال «قوانین چالش کدوبلو» به کاربر نمایش داده میشود. ",-1)),Ul=_(()=>a("div",{class:"mb-1 text-sm text-gray-600"},"کد embed ویدیو قوانین",-1)),ql={class:"space-y-4 relative"},$l={key:0,class:"absolute inset-0 bg-white/60 z-10 flex items-center justify-center"},Tl=_(()=>a("div",{class:"mb-1 text-sm text-gray-600"},"عنوان چالش",-1)),Al={class:"grid grid-cols-1 sm:grid-cols-2 gap-4"},Ll=_(()=>a("div",{class:"mb-1 text-sm text-gray-600"},"تاریخ انتشار",-1)),Pl=_(()=>a("div",{class:"mb-1 text-sm text-gray-600"},"ساعت انتشار (تهران)",-1)),Ml={class:"grid grid-cols-1 sm:grid-cols-3 gap-4"},Rl={class:"sm:col-span-3"},Dl=_(()=>a("div",{class:"mb-1 text-sm text-gray-600"},"فصل (نقشه ماجراجویی)",-1)),Nl={class:"text-gray-400"},jl={class:"text-xs text-gray-400 mt-1"},Fl={key:0},Bl=_(()=>a("div",{class:"mb-1 text-sm text-gray-600"},"وضعیت نمایش",-1)),zl={class:"flex items-center gap-2 mt-2"},Ol={class:"text-sm text-gray-600"},Hl=_(()=>a("div",{class:"mb-1 text-sm text-gray-600"},"نوع دسترسی",-1)),El=_(()=>a("div",{class:"mb-1 text-sm text-gray-600"},"امتیاز اولین تکمیل",-1)),Il={class:"flex justify-center pb-2"},Wl=_(()=>a("div",{class:"mb-1 text-sm text-gray-600"},"عکس کاراکتر (کارت لیست)",-1)),Gl={key:0},Kl=_(()=>a("div",null,"آپلود تصویر",-1)),Vl={key:0,class:"mt-1"},Jl={class:"h-2 rounded bg-gray-200 overflow-hidden"},Xl=_(()=>a("div",{class:"section-divider"},null,-1)),Zl={class:"pt-2"},Ql=_(()=>a("div",{class:"mb-2 text-sm text-gray-600 font-semibold"},"مراحل چالش",-1)),Yl={class:"space-y-4"},eo={class:"flex items-center justify-between gap-3"},to={class:"font-semibold text-gray-700"},so={key:0,class:"text-emerald-600 text-sm font-normal mr-1"},ao={class:"flex items-center gap-2"},lo=_(()=>a("span",{class:"text-sm text-gray-600"},"ماموریت پایانی",-1)),oo=_(()=>a("div",{class:"mb-1 text-xs text-gray-500"},"توضیحات مرحله (اختیاری)",-1)),io={class:"grid grid-cols-2 gap-3"},no=_(()=>a("div",{class:"mb-1 text-xs text-gray-500"},"زمان لازم (دقیقه)",-1)),uo=_(()=>a("div",{class:"mb-1 text-xs text-gray-500"},"کد embed ویدیو آپارات (اختیاری)",-1)),ro={class:"space-y-2"},co=_(()=>a("div",{class:"mb-1 text-xs text-gray-500"},"وویس کدوبلو (اختیاری)",-1)),_o={key:0,class:"mt-1"},vo={class:"h-2 rounded bg-gray-200 overflow-hidden"},mo={key:1,class:"step-audio-preview"},po={class:"flex items-center justify-between mb-2"},ho=_(()=>a("div",{class:"step-audio-preview__label mb-0"},"پیشنمایش وویس کدوبلو",-1)),go=["src"],fo=_(()=>a("div",{class:"mb-1 text-xs text-gray-500"},"عکسهای مرحله (اختیاری)",-1)),bo={key:0},yo=_(()=>a("div",{class:"text-xs"},"آپلود عکس",-1)),ko=_(()=>a("div",{class:"section-divider"},null,-1)),wo={class:"step-form-box__inner"},xo=_(()=>a("div",{class:"text-xs font-semibold text-gray-600 mb-3"},"آیتمهای بعد از «بزن بریم»",-1)),Co={class:"grid grid-cols-1 sm:grid-cols-2 gap-3"},So={class:"flex items-center gap-2"},Uo=_(()=>a("span",{class:"text-sm"},"فیلد بازخورد",-1)),qo={class:"flex items-center gap-2"},$o=_(()=>a("span",{class:"text-sm"},"بازخورد اجباری",-1)),To={class:"flex items-center gap-2"},Ao=_(()=>a("span",{class:"text-sm"},"بارگذاری عکس",-1)),Lo={class:"flex items-center gap-2"},Po=_(()=>a("span",{class:"text-sm"},"عکس اجباری",-1)),Mo={class:"flex items-center gap-2"},Ro=_(()=>a("span",{class:"text-sm"},"ضبط و ارسال ویس",-1)),Do={class:"flex items-center gap-2"},No=_(()=>a("span",{class:"text-sm"},"ویس اجباری",-1)),jo={class:"flex items-center gap-2"},Fo=_(()=>a("span",{class:"text-sm"},"سوال چندگزینهای",-1)),Bo={class:"flex items-center gap-2"},zo=_(()=>a("span",{class:"text-sm"},"پاسخ MCQ اجباری",-1)),Oo={class:"flex items-center gap-2"},Ho=_(()=>a("span",{class:"text-sm"},"بخش صوت",-1)),Eo={key:0,class:"space-y-2 border rounded-lg p-3 bg-white"},Io=_(()=>a("div",{class:"mb-1 text-xs text-gray-500"},"عنوان فیلد بازخورد",-1)),Wo=_(()=>a("div",{class:"mb-1 text-xs text-gray-500"},"متن پیشفرض فیلد بازخورد",-1)),Go={key:1,class:"space-y-2 border rounded-lg p-3"},Ko=["name","checked","onChange"],Vo=_(()=>a("span",{class:"text-xs"},"صحیح",-1)),Jo={key:2,class:"space-y-2"},Xo=_(()=>a("div",{class:"mb-1 text-xs text-gray-500"},"فایل بخش صوت",-1)),Zo={key:0,class:"mt-1"},Qo={class:"h-2 rounded bg-gray-200 overflow-hidden"},Yo={key:1,class:"step-audio-preview"},ei={class:"flex items-center justify-between mb-2"},ti=_(()=>a("div",{class:"step-audio-preview__label mb-0"},"پیشنمایش بخش صوت",-1)),si=["src"],ai={class:"flex justify-end pt-1"},li=_(()=>a("span",{class:"text-[#DC2626]"},"حذف مرحله",-1)),oi=_(()=>a("span",{class:"text-gray-500"},"+ افزودن مرحله",-1)),ii={class:"space-y-4"},ni=_(()=>a("div",{class:"mb-1 text-sm text-gray-600"},"عنوان فصل",-1)),ui=_(()=>a("div",{class:"mb-1 text-sm text-gray-600"},"زیرعنوان",-1)),ri={class:"grid grid-cols-1 sm:grid-cols-2 gap-4"},ci=_(()=>a("div",{class:"mb-1 text-sm text-gray-600"},"تم رنگی جزیره",-1)),di=_(()=>a("div",{class:"mb-1 text-sm text-gray-600"},"ترتیب",-1)),_i={class:"flex items-center gap-2"},vi={class:"text-sm text-gray-600"},mi=_(()=>a("div",{class:"mb-1 text-sm text-gray-600"},"تصویر فصل (اختیاری)",-1)),pi={key:0},hi=_(()=>a("div",null,"آپلود تصویر",-1)),gi={key:0,class:"mt-1"},fi={class:"h-2 rounded bg-gray-200 overflow-hidden"},bi=_(()=>a("div",{class:"text-xs text-gray-400 mt-1"},"اگر خالی باشد، تصویر تم انتخابشده استفاده میشود.",-1)),yi={class:"text-sm text-gray-500 mb-2"},ki={class:"whitespace-pre-wrap leading-7 text-gray-800"},Fe=30,Be=15,lt=80,wi=qs({__name:"index",setup(he){const Tt=Ut,oe=Ut.TabPane,ze=$t,D=$t.Option;function ge(e){return e?e.replace(/-/g,"/"):""}function At(e){return e?e.replace(/\//g,"-"):""}function ie(){return new Intl.DateTimeFormat("en-CA",{timeZone:"Asia/Tehran"}).format(new Date)}function fe(e){const s=(e||"09:00").trim();return/^\d{2}:\d{2}$/.test(s)?s:/^\d{2}:\d{2}:\d{2}$/.test(s)?s.slice(0,5):"09:00"}function Lt(e){return st(fe(e),"HH:mm")}function Oe(){be.value=v.value.publish_time?Lt(v.value.publish_time):st("09:00","HH:mm")}function ot(e){if(!e.publish_date)return"";const s=Js(e.publish_date),l=fe(e.publish_time);return`${s} · ${l}`}const V=h(ge(ie())),be=h(st("09:00","HH:mm")),Pt=$s(),Mt=Ts(),E=h(Pt.query.tab==="progress"?"progress":"challenges"),ne=h(!1),J=h(!1),X=h(null),ye=h(null),He=h(!1),ke=h({rules_aparat_embed_code:""}),Ee=h(!1),Ie=h(""),it=h([]),ue=h(1),re=h(20),nt=h(0),Z=h({}),we=h(!1),We=h(""),Ge=h(""),Rt=[{title:"ردیف",key:"row",width:70,align:"center"},{title:"نام",dataIndex:"user_name",key:"user_name",width:160},{title:"موبایل",dataIndex:"user_phone",key:"user_phone",width:140},{title:"چالش پیشنهادی",key:"challenge"}],Dt=G(()=>({current:ue.value,pageSize:re.value,total:nt.value,showSizeChanger:!0,showTotal:e=>`${e} مورد`})),xe=h(!1),Q=h([]),N=h(null),T=h(null),Ke=h(!1),Ce=h([]),Y=h([]),ce=h({}),Ve=h({}),ee=h({}),te=h({}),A=h(0),I=h(0),Je=()=>({description:"",duration_minutes:0,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}),v=h({title:"",character_image_url:null,show:!1,access_type:"subscription",sort_order:0,completion_points:50,chapter_id:null,publish_date:ie(),publish_time:"09:00",steps:[Je()]});tt(V,e=>{v.value.publish_date=At(e||"")}),tt(be,e=>{v.value.publish_time=e?e.format("HH:mm"):""});const q=h([]),de=h(!1),_e=h({}),ve=h(!1),Se=h(!1),Ue=h(null),U=h({title:"",subtitle:"",theme_key:"meadow",cover_image_url:null,sort_order:0,show:!0}),O=h([]),B=h(0),ut={meadow:"خانه کدوبلو",cottage:"کافه پفی",forest:"باغ میلا",desert:"کارگاه پیتو",winter:"خانه آرامان",castle:"میدان شهر",tree:"درخت پیرین"};function Nt(e){return e&&e in ut?ut[e]:e||"-"}const rt=G(()=>q.value.find(e=>e.id===T.value)||null),jt=G(()=>{if(N.value===0)return"چالشهای بدون فصل";const e=q.value.find(s=>s.id===N.value);return e?`چالشهای ${e.title}`:"یک فصل انتخاب کنید"}),ct=G(()=>{const e={0:0};for(const s of q.value)s.id&&(e[s.id]=0);for(const s of Q.value){const l=s.chapter_id??0;e[l]=(e[l]||0)+1}return e}),dt=G(()=>N.value===null?[]:N.value===0?Q.value.filter(e=>e.chapter_id==null):Q.value.filter(e=>e.chapter_id===N.value)),Ft=G(()=>zt(Ce.value)),Bt=G(()=>Ot(dt.value));function zt(e){const s=Array.from({length:Fe},()=>null),l=new Set;for(const n of e){const d=Number(n.sort_order);d>=1&&d<=Fe&&!s[d-1]&&(s[d-1]=n,l.add(n.id))}for(const n of e){if(l.has(n.id))continue;const d=s.findIndex(b=>b===null);if(d<0)break;s[d]=n,l.add(n.id)}return s.map((n,d)=>({slotNumber:d+1,challenge:n}))}function Ot(e){const s=Array.from({length:Fe},()=>null),l=new Set;for(const n of e){const d=Number(n.sort_order);d>=1&&d<=Fe&&!s[d-1]&&(s[d-1]=n,l.add(n.id))}for(const n of e){if(l.has(n.id))continue;const d=s.findIndex(b=>b===null);if(d<0)break;s[d]=n,l.add(n.id)}return s.map((n,d)=>({slotNumber:d+1,challenge:n}))}function Ht(e){const s=e*Be;return Ft.value.slice(s,s+Be)}function Et(e){const s=e*Be;return Bt.value.slice(s,s+Be)}async function H(){var e;de.value=!0;try{const s=await Ds();q.value=s;const l={};await Promise.all(q.value.map(async n=>{n.id&&(l[n.id]=await Ns(n.id))})),_e.value=l,!T.value&&q.value.length?T.value=q.value[0].id:T.value&&!q.value.some(n=>n.id===T.value)&&(T.value=((e=q.value[0])==null?void 0:e.id)??null),T.value?await Xe(T.value):Ce.value=[]}catch(s){k.error(s.message||"خطا در بارگذاری فصلها")}finally{de.value=!1}}async function Xe(e){Ke.value=!0;try{Ce.value=await js(e)}catch(s){k.error(s.message||"خطا در بارگذاری چالشهای فصل"),Ce.value=[]}finally{Ke.value=!1}}async function It(e){T.value=e,await Xe(e)}function _t(e){if(e.challenge){cs(e.challenge);return}Wt(e.slotNumber)}function Wt(e){if(!T.value){k.warning("ابتدا یک فصل انتخاب کنید");return}J.value=!1,X.value=null,ye.value=null,ft(),v.value.chapter_id=T.value,v.value.sort_order=e,v.value.show=!0,v.value.publish_date=ie(),v.value.publish_time="09:00",V.value=ge(v.value.publish_date),Oe(),ne.value=!0}function vt(){U.value={title:"",subtitle:"",theme_key:"meadow",cover_image_url:null,sort_order:(q.value.length||0)+1,show:!0},O.value=[],B.value=0}function Gt(){Se.value=!1,Ue.value=null,vt(),ve.value=!0}function Kt(e){Se.value=!0,Ue.value=e.id||null,U.value={title:e.title||"",subtitle:e.subtitle||"",theme_key:e.theme_key||"meadow",cover_image_url:z(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:ae(e.cover_image_url)}]:O.value=[],B.value=0,ve.value=!0}function mt(){ve.value=!1,vt()}async function Vt(){if(!U.value.title.trim()){k.error("عنوان فصل الزامی است");return}try{const e={title:U.value.title.trim(),subtitle:U.value.subtitle.trim()||null,theme_key:U.value.theme_key,cover_image_url:U.value.cover_image_url||null,sort_order:Number(U.value.sort_order)||0,show:U.value.show};Se.value&&Ue.value?(await St(Ue.value,e),k.success("فصل ویرایش شد")):(await Fs(e),k.success("فصل اضافه شد")),mt(),await H()}catch(e){k.error(e.message||"خطا در ذخیره فصل")}}async function Jt(e){e.id&&(await St(e.id,{show:!e.show}),k.success(e.show?"فصل مخفی شد":"فصل نمایش داده میشود"),await H())}async function Xt(e){e.id&&qt.confirm({title:"حذف فصل",content:"با حذف فصل، چالشهای آن بدون فصل میمانند. ادامه میدهید؟",okText:"بله",cancelText:"خیر",onOk:async()=>{await Ws(e.id),k.success("فصل حذف شد"),await H()}})}async function Zt(e){e!=null&&e.id&&qt.confirm({title:"حذف چالش",content:`چالش «${e.title}» و تمام مراحل و پیشرفت کاربران آن حذف میشود. ادامه میدهید؟`,okText:"حذف",okType:"danger",cancelText:"انصراف",onOk:async()=>{try{await Gs(e.id),k.success("چالش حذف شد"),X.value===e.id&&Ye(),T.value&&await Xe(T.value),await H(),Q.value.length&&await Re()}catch(s){throw k.error(s.message||"خطا در حذف چالش"),s}}})}function qe(e){return{width:`${Math.max(0,Math.min(100,e))}%`}}function $e(){return Ms()||localStorage.getItem("tamin_token")||localStorage.getItem("token")||""}function Te(e){var l,n,d,b;const s=e.full_src||e.url||e.src||e.path||((l=e.data)==null?void 0:l.full_src)||((n=e.data)==null?void 0:n.url)||((d=e.data)==null?void 0:d.src)||((b=e.data)==null?void 0:b.path)||"";return z(String(s||""))}function Ae(e,s,l){const n=[...v.value.steps];n[e]={...n[e],[s]:l},v.value.steps=n}function j(e,s){return`${e}:${s}`}function Ze(e,s){return ce.value[j(e,s)]||[]}function se(e,s){return Ve.value[j(e,s)]||0}function Le(e,s,l){Ve.value[j(e,s)]=l}function Pe(e){return e?e.startsWith("http://")||e.startsWith("https://")?e:Xs(e):""}function Qt(e,s){return ee.value[j(e,s)]||""}function W(e,s){const l=j(e,s),n=ee.value[l];n&&(URL.revokeObjectURL(n),delete ee.value[l])}function Yt(){Object.values(ee.value).forEach(e=>URL.revokeObjectURL(e)),ee.value={}}function me(e,s,l){const n=Qt(e,s);if(n)return n;if(l!=null&&l.trim())return Pe(l);const d=Ze(e,s)[0];return(d==null?void 0:d.url)||""}function pt(e,s,l){return!!me(e,s,l)}function es(){Yt(),ce.value={},Ve.value={}}function ts(){te.value={}}function Qe(e){return te.value[e]||[]}function ht(){const e={};v.value.steps.forEach((s,l)=>{const n=(s.step_images||[]).filter(Boolean);n.length&&(e[l]=n.map((d,b)=>({uid:`step-image-${l}-${b}`,name:`image-${b+1}.jpg`,status:"done",url:ae(d),response:{path:z(d)||d}})))}),te.value=e}function gt(){const e={};v.value.steps.forEach((s,l)=>{s.audio_section_url&&(e[j(l,"audio_section_url")]=[{uid:`audio-section-${l}`,name:"audio-section.mp3",status:"done",url:Pe(s.audio_section_url)}]),s.kodoblu_voice_url&&(e[j(l,"kodoblu_voice_url")]=[{uid:`kodoblu-voice-${l}`,name:"kodoblu-voice.mp3",status:"done",url:Pe(s.kodoblu_voice_url)}])}),ce.value=e}function Me(e,s){W(e,s),Ae(e,s,""),ce.value[j(e,s)]=[]}function ss(e,s){var d,b;const l=z(((d=s.response)==null?void 0:d.path)||s.url||""),n=((b=v.value.steps[e])==null?void 0:b.step_images)||[];Ae(e,"step_images",n.filter(w=>z(w)!==l)),te.value[e]=(te.value[e]||[]).filter(w=>w.uid!==s.uid)}function ft(){v.value={title:"",character_image_url:null,show:!1,access_type:"subscription",sort_order:0,completion_points:50,chapter_id:null,publish_date:ie(),publish_time:"09:00",steps:[Je()]},V.value=ge(v.value.publish_date),Oe(),Y.value=[],es(),ts()}function Ye(){ne.value=!1,J.value=!1,X.value=null,ye.value=null,ft()}function as(){v.value.steps.push(Je())}function ls(e){v.value.steps.length<=1||(W(e,"kodoblu_voice_url"),W(e,"audio_section_url"),v.value.steps.splice(e,1),gt(),ht())}async function Re(){var e;xe.value=!0;try{Q.value=await Bs(),N.value===null&&(N.value=((e=q.value[0])==null?void 0:e.id)??0)}catch(s){k.error(s.message||"خطا در بارگذاری پیشرفت چالشها")}finally{xe.value=!1}}function bt(e){N.value=e}function os(){U.value.cover_image_url=null,O.value=[]}async function is(e){const{file:s,onSuccess:l,onError:n,onProgress:d}=e,b=new FormData;b.append("file",s);const w=`${je}/upload/machartaa-img`;B.value=0,A.value++,await new Promise((F,C)=>{const f=new XMLHttpRequest;f.open("POST",w),f.setRequestHeader("Authorization",`Bearer ${$e()}`),f.upload.onprogress=m=>{if(m.lengthComputable){const t=Math.round(m.loaded/m.total*100);B.value=t,d==null||d({percent:t})}},f.onload=()=>{if(B.value=100,f.status>=200&&f.status<300)try{const m=JSON.parse(f.responseText||"{}"),t=Te(m);if(!t)throw new Error("مسیر فایل از سرور دریافت نشد");const o=ae(t);U.value.cover_image_url=t,O.value=o?[{uid:`${Date.now()}`,name:"chapter.jpg",status:"done",url:o,response:{path:t}}]:[],l==null||l(m,f),k.success("تصویر فصل آپلود شد"),F()}catch(m){n==null||n(m,f),C(m)}else{const m=new Error("خطا در آپلود تصویر فصل");n==null||n(m,f),C(m)}},f.onerror=()=>{n==null||n(new Error("خطا در آپلود تصویر فصل!"),f),C(new Error("خطا در آپلود تصویر فصل!"))},f.onloadend=()=>{A.value=Math.max(0,A.value-1),B.value=0},f.send(b)})}function ns(e){Mt.push({name:"stepChallengeFeedback",params:{challengeId:e}})}function et(e){return e.type.startsWith("image/")?e.size/1024/1024<5?!0:(k.error("حجم تصویر باید کمتر از 5MB باشد!"),!1):(k.error("فقط فایلهای تصویری قابل آپلود هستند!"),!1)}async function us(e){const{file:s,onSuccess:l,onError:n,onProgress:d}=e,b=new FormData;b.append("file",s);const w=`${je}/upload/machartaa-img`;I.value=0,A.value++,await new Promise((F,C)=>{const f=new XMLHttpRequest;f.open("POST",w),f.setRequestHeader("Authorization",`Bearer ${$e()}`),f.upload.onprogress=m=>{if(m.lengthComputable){const t=Math.round(m.loaded/m.total*100);I.value=t,d==null||d({percent:t})}},f.onload=()=>{if(I.value=100,f.status>=200&&f.status<300)try{const m=JSON.parse(f.responseText||"{}"),t=Te(m);if(!t)throw new Error("مسیر فایل از سرور دریافت نشد");const o=ae(t);v.value.character_image_url=t,Y.value=o?[{uid:`${Date.now()}`,name:"image.jpg",status:"done",url:o,response:{path:t}}]:[],l==null||l(m,f),k.success("تصویر با موفقیت آپلود شد!"),F()}catch(m){n==null||n(m,f),C(m)}else{const m=new Error("خطا در آپلود تصویر");n==null||n(m,f),C(m)}},f.onerror=()=>{n==null||n(new Error("خطا در آپلود تصویر!"),f),C(new Error("خطا در آپلود تصویر!"))},f.onloadend=()=>{A.value=Math.max(0,A.value-1),I.value=0},f.send(b)})}async function rs(e,s){const{file:l,onSuccess:n,onError:d,onProgress:b}=e,w=new FormData;w.append("file",l);const F=`${je}/upload/machartaa-img`;A.value++,await new Promise((C,f)=>{const m=new XMLHttpRequest;m.open("POST",F),m.setRequestHeader("Authorization",`Bearer ${$e()}`),m.upload.onprogress=t=>{t.lengthComputable&&(b==null||b({percent:Math.round(t.loaded/t.total*100)}))},m.onload=()=>{var t;if(m.status>=200&&m.status<300)try{const o=JSON.parse(m.responseText||"{}"),u=Te(o);if(!u)throw new Error("مسیر تصویر از سرور دریافت نشد");const L=[...((t=v.value.steps[s])==null?void 0:t.step_images)||[],u];Ae(s,"step_images",L);const M={uid:`${Date.now()}-${s}`,name:l.name||"image.jpg",status:"done",url:ae(u),response:{path:u}};te.value[s]=[...Qe(s),M],n==null||n(o,m),k.success("عکس مرحله با موفقیت آپلود شد!"),C()}catch(o){d==null||d(o,m),f(o)}else{const o=new Error("خطا در آپلود عکس مرحله");d==null||d(o,m),f(o)}},m.onerror=()=>{d==null||d(new Error("خطا در آپلود عکس مرحله!"),m),f(new Error("خطا در آپلود عکس مرحله!"))},m.onloadend=()=>{A.value=Math.max(0,A.value-1)},m.send(w)})}function yt(e){return e.type.startsWith("audio/")?e.size/1024/1024<60?!0:(k.error("حجم فایل صوتی باید کمتر از 60MB باشد!"),!1):(k.error("فقط فایلهای صوتی قابل آپلود هستند!"),!1)}async function kt(e,s,l){const{file:n,onSuccess:d,onError:b,onProgress:w}=e,F=new FormData;F.append("file",n);const C=`${je}/upload/machartaa-audio`;W(s,l),ee.value[j(s,l)]=URL.createObjectURL(n),Le(s,l,0),A.value++,await new Promise((f,m)=>{const t=new XMLHttpRequest;t.open("POST",C),t.setRequestHeader("Authorization",`Bearer ${$e()}`),t.timeout=15*60*1e3,t.upload.onprogress=o=>{if(o.lengthComputable){const u=Math.round(o.loaded/o.total*100);Le(s,l,u),w==null||w({percent:u})}},t.onload=()=>{if(Le(s,l,100),t.status>=200&&t.status<300)try{const o=JSON.parse(t.responseText||"{}"),u=Te(o);if(!u)throw new Error("مسیر فایل صوتی از سرور دریافت نشد");W(s,l),Ae(s,l,u);const L=Pe(u);ce.value[j(s,l)]=L?[{uid:`${Date.now()}`,name:n.name||"audio.mp3",status:"done",url:L,response:{path:u}}]:[],d==null||d(o,t),k.success("فایل صوتی با موفقیت آپلود شد!"),f()}catch(o){b==null||b(o,t),m(o)}else{W(s,l);const o=new Error("خطا در آپلود فایل صوتی");b==null||b(o,t),m(o)}},t.onerror=()=>{W(s,l),b==null||b(new Error("خطا در آپلود فایل صوتی!"),t),m(new Error("خطا در آپلود فایل صوتی!"))},t.onloadend=()=>{A.value=Math.max(0,A.value-1),Le(s,l,0)},t.send(F)})}async function cs(e){try{const s=await Ks(e.id);J.value=!0,X.value=e.id,ye.value=s.chapter_id??null,v.value={title:s.title,character_image_url:z(s.character_image_url),show:!!s.show,access_type:s.access_type==="subscription"?"subscription":"free",sort_order:s.sort_order||0,completion_points:s.completion_points??50,chapter_id:s.chapter_id??null,publish_date:s.publish_date||ie(),publish_time:fe(s.publish_time),steps:(s.steps||[]).map(l=>({id:l.id,description:l.description||"",duration_minutes:l.duration_minutes!=null?Number(l.duration_minutes):Math.round((Number(l.duration_seconds)||0)/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}))},V.value=ge(v.value.publish_date),Oe(),s.character_image_url&&(Y.value=[{uid:`${Date.now()}`,name:"image.jpg",status:"done",url:ae(s.character_image_url)}]),gt(),ht(),ne.value=!0}catch(s){k.error(s.message||"خطا در بارگذاری چالش")}}async function ds(){var e;He.value=!0;try{await zs({rules_aparat_embed_code:((e=ke.value.rules_aparat_embed_code)==null?void 0:e.trim())||null}),k.success("تنظیمات ذخیره شد")}catch(s){k.error(s.message||"خطا در ذخیره تنظیمات")}finally{He.value=!1}}async function _s(){try{const e=await Os();ke.value.rules_aparat_embed_code=(e==null?void 0:e.rules_aparat_embed_code)||""}catch(e){k.error(e.message||"خطا در بارگذاری تنظیمات")}}function vs(e){return(ue.value-1)*re.value+e+1}function ms(e){const s=(e||"").trim();return s.length<=lt?s:`${s.slice(0,lt)}`}function ps(e){return(e||"").trim().length>lt}function hs(e){Z.value={...Z.value,[e]:!Z.value[e]}}function gs(e,s){We.value=e||"",Ge.value=s||"توضیحات کامل",we.value=!0}function fs(){we.value=!1,We.value="",Ge.value=""}async function De(){Ee.value=!0;try{const{rows:e,total:s}=await Hs({page:ue.value,pageSize:re.value,search:Ie.value});it.value=e,nt.value=s}catch(e){k.error(e.message||"خطا در بارگذاری چالشهای پیشنهادی")}finally{Ee.value=!1}}function wt(){ue.value=1,De()}function bs(e){ue.value=(e==null?void 0:e.current)||1,re.value=(e==null?void 0:e.pageSize)||re.value,De()}tt(E,e=>{e==="progress"&&(H(),Q.value.length||Re()),(e==="chapters"||e==="challenges")&&H(),e==="suggestions"&&De()}),As(()=>{_s(),H(),E.value==="progress"&&Re(),E.value==="suggestions"&&De()});async function ys(){if(!v.value.title.trim()){k.error("عنوان چالش الزامی است");return}if(!v.value.publish_date){k.error("تاریخ انتشار الزامی است");return}if(!v.value.publish_time){k.error("ساعت انتشار الزامی است");return}if(A.value>0){k.warning("لطفاً تا پایان آپلود فایلها صبر کنید");return}if(v.value.chapter_id){const e=_e.value[v.value.chapter_id]||0;if(!(J.value&&ye.value===v.value.chapter_id)&&e>=30){k.error("این فصل ظرفیت کامل دارد (حداکثر ۳۰ چالش / ۲ اسلاید)");return}}try{const e={...v.value,chapter_id:v.value.chapter_id??null,sort_order:Number(v.value.sort_order)||0,completion_points:Number(v.value.completion_points)||50,publish_date:v.value.publish_date,publish_time:fe(v.value.publish_time),steps:v.value.steps.map(s=>{var l,n;return{...s,kodoblu_voice_url:z((l=s.kodoblu_voice_url)==null?void 0:l.trim())||"",audio_section_url:z((n=s.audio_section_url)==null?void 0:n.trim())||"",step_images:(s.step_images||[]).map(d=>z(d)||d).filter(Boolean)}})};J.value&&X.value?(await Es(X.value,e),k.success("چالش ویرایش شد")):(await Is(e,null),k.success("چالش اضافه شد")),Ye(),await H()}catch(e){k.error(e.message||"خطا در ذخیره چالش")}}return(e,s)=>{const l=Us,n=Qs,d=Ys,b=Ss,w=Cs,F=Zs,C=xs,f=ws,m=ks;return r(),c("div",{class:K(["step-challenges-page",{"step-challenges-page--mgmt":E.value==="challenges"||E.value==="progress"}])},[i(m,null,{default:p(()=>[i(y(Tt),{activeKey:E.value,"onUpdate:activeKey":s[3]||(s[3]=t=>E.value=t),class:"step-challenges-tabs"},{default:p(()=>[i(y(oe),{key:"challenges",tab:"مدیریت چالشها"},{default:p(()=>[a("div",ta,[a("div",sa,[a("aside",aa,[la,de.value?(r(),c("div",oa,[i(y(le))])):(r(),c($,{key:1},[(r(!0),c($,null,R(q.value,(t,o)=>(r(),c("button",{key:t.id,type:"button",class:K(["mgmt-chapters__item",{"mgmt-chapters__item--active":T.value===t.id}]),onClick:u=>It(t.id)},[a("span",na,g(t.title||`فصل ${o+1}`),1),a("span",ua,g(_e.value[t.id]||0)+"/۳۰",1)],10,ia))),128)),q.value.length?S("",!0):(r(),c("div",ra," هنوز فصلی تعریف نشده است. از تب «مدیریت فصلها» اضافه کنید. "))],64))]),a("section",ca,[a("div",da,[a("h2",_a,g(rt.value?`چالشهای ${rt.value.title}`:"یک فصل انتخاب کنید"),1)]),T.value?Ke.value?(r(),c("div",ma,[i(y(le),{size:"large"})])):(r(),c("div",pa,[(r(),c($,null,R(2,t=>a("div",{key:t,class:"mgmt-grid-block"},[a("div",ha,[x(" اسلاید "+g(t)+" ",1),a("span",ga," (چالش "+g((t-1)*15+1)+" تا "+g(t*15)+" · ۵×۳) ",1)]),a("div",fa,[(r(!0),c($,null,R(Ht(t-1),o=>(r(),c("div",{key:o.slotNumber,class:K(["mgmt-slot",{"mgmt-slot--filled":!!o.challenge,"mgmt-slot--empty":!o.challenge}]),role:"button",tabindex:"0",onClick:u=>_t(o),onKeydown:Rs(xt(u=>_t(o),["prevent"]),["enter"])},[o.challenge?(r(),c($,{key:0},[a("button",{type:"button",class:"mgmt-slot__delete",title:"حذف چالش",onClick:xt(u=>Zt(o.challenge),["stop"])},[i(P,{icon:"vuesax-linear:trash"})],8,ya),i(P,{icon:"vuesax-linear:edit",class:"mgmt-slot__icon"}),a("span",ka,g(o.slotNumber),1),a("span",{class:"mgmt-slot__title",title:o.challenge.title},g(o.challenge.title),9,wa),o.challenge.publish_date?(r(),c("span",{key:0,class:"mgmt-slot__publish",title:ot(o.challenge)},g(ot(o.challenge)),9,xa)):S("",!0)],64)):(r(),c($,{key:1},[i(P,{icon:"vuesax-linear:add",class:"mgmt-slot__icon"}),a("span",Ca,g(o.slotNumber),1),Sa],64))],42,ba))),128))])])),64))])):(r(),c("div",va," از باکس سمت راست یک فصل را انتخاب کنید. "))])])])]),_:1}),i(y(oe),{key:"chapters",tab:"مدیریت فصلها"},{default:p(()=>[a("div",Ua,[qa,i(l,{type:"primary",onClick:Gt},{default:p(()=>[x("افزودن فصل")]),_:1})]),de.value?(r(),c("div",$a,[i(y(le),{size:"large"})])):(r(),c("div",Ta,[(r(!0),c($,null,R(q.value,t=>(r(),c("div",{key:t.id,class:"chapter-admin-card"},[a("div",Aa,[a("div",La,g(t.title),1),a("div",Pa,g(t.subtitle||"بدون زیرعنوان"),1),a("div",Ma," تم: "+g(Nt(t.theme_key))+" · ترتیب: "+g(t.sort_order??0)+" · "+g(t.show?"نمایش":"مخفی")+" · "+g(_e.value[t.id]||0)+" چالش ",1)]),a("div",Ra,[i(y(at),{class:"cursor-pointer"},{title:p(()=>[a("span",null,g(t.show?"مخفی کردن":"نمایش"),1)]),default:p(()=>[i(P,{icon:t.show?"vuesax-linear:eye-slash":"vuesax-linear:eye",color:t.show?"#F59E0B":"#16A34A",onClick:o=>Jt(t)},null,8,["icon","color","onClick"])]),_:2},1024),i(y(at),{class:"cursor-pointer"},{title:p(()=>[Da]),default:p(()=>[i(P,{icon:"vuesax-linear:edit",color:"#1D4ED8",onClick:o=>Kt(t)},null,8,["onClick"])]),_:2},1024),i(y(at),{class:"cursor-pointer"},{title:p(()=>[Na]),default:p(()=>[i(P,{icon:"vuesax-linear:trash",color:"#DC2626",onClick:o=>Xt(t)},null,8,["onClick"])]),_:2},1024)])]))),128)),q.value.length?S("",!0):(r(),c("div",ja," هنوز فصلی تعریف نشده است. "))]))]),_:1}),i(y(oe),{key:"progress",tab:"پیشرفت کاربران"},{default:p(()=>[a("div",Fa,[a("div",Ba,[a("aside",za,[Oa,de.value?(r(),c("div",Ha,[i(y(le))])):(r(),c($,{key:1},[(r(!0),c($,null,R(q.value,(t,o)=>(r(),c("button",{key:t.id,type:"button",class:K(["mgmt-chapters__item",{"mgmt-chapters__item--active":N.value===t.id}]),onClick:u=>bt(t.id)},[a("span",Ia,g(t.title||`فصل ${o+1}`),1),a("span",Wa,g(ct.value[t.id]||0),1)],10,Ea))),128)),a("button",{type:"button",class:K(["mgmt-chapters__item",{"mgmt-chapters__item--active":N.value===0}]),onClick:s[0]||(s[0]=t=>bt(0))},[Ga,a("span",Ka,g(ct.value[0]||0),1)],2),q.value.length?S("",!0):(r(),c("div",Va," هنوز فصلی تعریف نشده است. "))],64))]),a("section",Ja,[a("div",Xa,[a("h2",Za,g(jt.value),1),i(l,{type:"dashed",size:"small",loading:xe.value,onClick:Re},{default:p(()=>[x(" بروزرسانی ")]),_:1},8,["loading"])]),xe.value?(r(),c("div",Qa,[i(y(le),{size:"large"})])):dt.value.length?(r(),c("div",el,[(r(),c($,null,R(2,t=>a("div",{key:t,class:"mgmt-grid-block"},[a("div",tl,[x(" اسلاید "+g(t)+" ",1),a("span",sl," (چالش "+g((t-1)*15+1)+" تا "+g(t*15)+" · ۵×۳) ",1)]),a("div",al,[(r(!0),c($,null,R(Et(t-1),o=>(r(),c("button",{key:o.slotNumber,type:"button",class:K(["progress-slot",{"progress-slot--filled":!!o.challenge,"progress-slot--empty":!o.challenge}]),disabled:!o.challenge,onClick:u=>o.challenge&&ns(o.challenge.id)},[o.challenge?(r(),c($,{key:0},[a("span",ol,g(o.slotNumber),1),a("span",{class:"progress-slot__title",title:o.challenge.title},g(o.challenge.title),9,il),a("div",nl,[a("span",null,g(o.challenge.unique_users_count)+" کاربر",1),a("span",null,g(o.challenge.times_performed)+" بار",1)]),a("span",ul,[x(" بازخوردها "),i(P,{icon:"vuesax-linear:arrow-left"})])],64)):(r(),c($,{key:1},[a("span",rl,g(o.slotNumber),1),cl],64))],10,ll))),128))])])),64))])):(r(),c("div",Ya," چالشی در این فصل وجود ندارد. "))])])])]),_:1}),i(y(oe),{key:"suggestions",tab:"چالشهای پیشنهادی"},{default:p(()=>[a("div",dl,[a("div",_l,[vl,i(n,{value:Ie.value,"onUpdate:value":s[1]||(s[1]=t=>Ie.value=t),placeholder:"جستجو بر اساس نام، موبایل یا عنوان","allow-clear":"",class:"max-w-sm",onSearch:wt,onPressEnter:wt},null,8,["value"])]),i(d,{columns:Rt,"data-source":it.value,loading:Ee.value,pagination:Dt.value,"row-key":"id",bordered:"",size:"middle",onChange:bs},{bodyCell:p(({column:t,record:o,index:u})=>{var L;return[t.key==="row"?(r(),c($,{key:0},[x(g(vs(u)),1)],64)):t.key==="challenge"?(r(),c("div",ml,[a("div",pl,[a("span",hl,g(o.title),1),a("button",{type:"button",class:"suggestion-challenge-cell__toggle",title:Z.value[o.id]?"بستن مراحل":"نمایش مراحل",onClick:M=>hs(o.id)},[i(P,{icon:Z.value[o.id]?"vuesax-linear:arrow-up-1":"vuesax-linear:arrow-downره"},null,8,["icon"])],8,gl)]),Z.value[o.id]?(r(),c("div",fl,[(r(!0),c($,null,R(o.steps,M=>(r(),c("div",{key:M.id,class:"suggestion-challenge-cell__step"},[a("div",bl," مرحله "+g(M.step_order),1),a("div",yl,[a("span",null,g(ms(M.description)),1),ps(M.description)?(r(),c("button",{key:0,type:"button",class:"suggestion-challenge-cell__more",onClick:xi=>gs(M.description,`مرحله ${M.step_order} — ${o.title}`)}," ... ",8,kl)):S("",!0)])]))),128)),(L=o.steps)!=null&&L.length?S("",!0):(r(),c("div",wl," مرحلهای ثبت نشده است. "))])):S("",!0)])):S("",!0)]}),_:1},8,["data-source","loading","pagination"])])]),_:1}),i(y(oe),{key:"settings",tab:"تنظیمات صفحه"},{default:p(()=>[a("div",xl,[Cl,Sl,a("div",null,[Ul,i(b,{value:ke.value.rules_aparat_embed_code,"onUpdate:value":s[2]||(s[2]=t=>ke.value.rules_aparat_embed_code=t),placeholder:"کد embed از آپارات",rows:4},null,8,["value"])]),i(l,{type:"primary",loading:He.value,onClick:ds},{default:p(()=>[x(" ذخیره تنظیمات ")]),_:1},8,["loading"])])]),_:1})]),_:1},8,["activeKey"]),i(f,{visible:ne.value,"onUpdate:visible":s[12]||(s[12]=t=>ne.value=t),title:J.value?"ویرایش چالش":"افزودن چالش",onOk:ys,onCancel:Ye,width:"85%",confirmLoading:A.value>0},{default:p(()=>[a("div",ql,[A.value>0?(r(),c("div",$l,[i(y(le),{size:"large"})])):S("",!0),a("div",null,[Tl,i(w,{value:v.value.title,"onUpdate:value":s[4]||(s[4]=t=>v.value.title=t),placeholder:"عنوان چالش"},null,8,["value"])]),a("div",Al,[a("div",null,[Ll,i(Vs,{value:V.value,"onUpdate:value":s[5]||(s[5]=t=>V.value=t)},null,8,["value"])]),a("div",null,[Pl,i(F,{value:be.value,"onUpdate:value":s[6]||(s[6]=t=>be.value=t),format:"HH:mm",class:"w-full",placeholder:"انتخاب ساعت","minute-step":5},null,8,["value"])])]),a("div",Ml,[a("div",Rl,[Dl,i(y(ze),{value:v.value.chapter_id,"onUpdate:value":s[7]||(s[7]=t=>v.value.chapter_id=t),class:"w-full","allow-clear":"",placeholder:"انتخاب فصل"},{default:p(()=>[(r(!0),c($,null,R(q.value,t=>(r(),Ct(y(D),{key:t.id,value:t.id},{default:p(()=>[x(g(t.title)+" ",1),a("span",Nl," ("+g(_e.value[t.id]||0)+"/۳۰) ",1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),a("div",jl,[x(" ترتیب نمایش از جایگاه گرید (چالش ۱ تا ۳۰) مشخص میشود. "),v.value.sort_order?(r(),c("span",Fl," جایگاه فعلی: چالش "+g(v.value.sort_order),1)):S("",!0)])]),a("div",null,[Bl,a("div",zl,[i(C,{value:v.value.show,"onUpdate:value":s[8]||(s[8]=t=>v.value.show=t)},null,8,["value"]),a("span",Ol,g(v.value.show?"نمایش":"مخفی"),1)])]),a("div",null,[Hl,i(y(ze),{value:v.value.access_type,"onUpdate:value":s[9]||(s[9]=t=>v.value.access_type=t),class:"w-full"},{default:p(()=>[i(y(D),{value:"free"},{default:p(()=>[x("رایگان (همه کاربران)")]),_:1}),i(y(D),{value:"subscription"},{default:p(()=>[x("اشتراکی (فقط اشتراک فعال)")]),_:1})]),_:1},8,["value"])]),a("div",null,[El,i(w,{value:v.value.completion_points,"onUpdate:value":s[10]||(s[10]=t=>v.value.completion_points=t),type:"number",min:"0",placeholder:"50"},null,8,["value"])])]),a("div",Il,[a("div",null,[Wl,i(y(pe),{"file-list":Y.value,"onUpdate:fileList":s[11]||(s[11]=t=>Y.value=t),"before-upload":et,"custom-request":us,accept:"image/jpeg,image/png,image/webp,image/gif,image/heic,image/heif,.jpg,.jpeg,.png,.webp,.gif,.heic,.heif","max-count":1,"list-type":"picture-card"},{default:p(()=>[Y.value.length<1?(r(),c("div",Gl,[i(P,{icon:"vuesax-linear:image",class:"text-2xl mb-2"}),Kl])):S("",!0)]),_:1},8,["file-list"]),I.value>0&&I.value<100?(r(),c("div",Vl,[a("div",Jl,[a("div",{class:"h-2 bg-blue-500 transition-all",style:Ne(qe(I.value))},null,4)])])):S("",!0)])]),Xl,a("div",Zl,[Ql,a("div",Yl,[(r(!0),c($,null,R(v.value.steps,(t,o)=>(r(),c("div",{key:o,class:K(["step-form-box",{"step-form-box--final":t.is_final_step}])},[a("div",eo,[a("div",to,[x(" مرحله "+g(o+1)+" ",1),t.is_final_step?(r(),c("span",so,"(ماموریت پایانی)")):S("",!0)]),a("div",ao,[i(C,{value:t.is_final_step,"onUpdate:value":u=>t.is_final_step=u},null,8,["value","onUpdate:value"]),lo])]),a("div",null,[oo,i(b,{value:t.description,"onUpdate:value":u=>t.description=u,placeholder:"توضیحات مرحله",rows:2},null,8,["value","onUpdate:value"])]),a("div",io,[a("div",null,[no,i(w,{value:t.duration_minutes,"onUpdate:value":u=>t.duration_minutes=u,type:"number",min:"0",placeholder:"0"},null,8,["value","onUpdate:value"])])]),a("div",null,[uo,i(b,{value:t.aparat_embed_code,"onUpdate:value":u=>t.aparat_embed_code=u,placeholder:"کد embed",rows:2},null,8,["value","onUpdate:value"])]),a("div",ro,[co,i(y(pe),{"file-list":Ze(o,"kodoblu_voice_url"),"before-upload":yt,"custom-request":u=>kt(u,o,"kodoblu_voice_url"),accept:"audio/*","max-count":1,"show-upload-list":!1,onRemove:()=>Me(o,"kodoblu_voice_url")},{default:p(()=>[i(l,{type:"dashed"},{default:p(()=>[i(P,{icon:"vuesax-linear:voice-cricle",class:"ml-1"}),x(" آپلود وویس کدوبلو ")]),_:1})]),_:2},1032,["file-list","custom-request","onRemove"]),se(o,"kodoblu_voice_url")>0&&se(o,"kodoblu_voice_url")<100?(r(),c("div",_o,[a("div",vo,[a("div",{class:"h-2 bg-blue-500 transition-all",style:Ne(qe(se(o,"kodoblu_voice_url")))},null,4)])])):S("",!0),pt(o,"kodoblu_voice_url",t.kodoblu_voice_url)?(r(),c("div",mo,[a("div",po,[ho,i(l,{type:"text",danger:"",size:"small",onClick:u=>Me(o,"kodoblu_voice_url")},{default:p(()=>[x(" حذف فایل ")]),_:2},1032,["onClick"])]),(r(),c("audio",{key:me(o,"kodoblu_voice_url",t.kodoblu_voice_url),src:me(o,"kodoblu_voice_url",t.kodoblu_voice_url),controls:"",preload:"metadata",class:"w-full"},null,8,go))])):S("",!0),i(w,{value:t.kodoblu_voice_url,"onUpdate:value":u=>t.kodoblu_voice_url=u,placeholder:"مسیر وویس کدوبلو (پس از آپلود)"},null,8,["value","onUpdate:value"])]),a("div",null,[fo,i(y(pe),{"file-list":Qe(o),"list-type":"picture-card","before-upload":et,"custom-request":u=>rs(u,o),accept:"image/jpeg,image/png,image/webp,image/gif,image/heic,image/heif,.jpg,.jpeg,.png,.webp,.gif,.heic,.heif",onRemove:u=>ss(o,u)},{default:p(()=>[Qe(o).length<8?(r(),c("div",bo,[i(P,{icon:"vuesax-linear:image",class:"text-xl mb-1"}),yo])):S("",!0)]),_:2},1032,["file-list","custom-request","onRemove"])]),ko,a("div",wo,[xo,a("div",Co,[a("label",So,[i(C,{value:t.enable_feedback_text,"onUpdate:value":u=>t.enable_feedback_text=u},null,8,["value","onUpdate:value"]),Uo]),a("label",qo,[i(C,{value:t.require_feedback_text,"onUpdate:value":u=>t.require_feedback_text=u,disabled:!t.enable_feedback_text},null,8,["value","onUpdate:value","disabled"]),$o]),a("label",To,[i(C,{value:t.enable_photo_upload,"onUpdate:value":u=>t.enable_photo_upload=u},null,8,["value","onUpdate:value"]),Ao]),a("label",Lo,[i(C,{value:t.require_photo_upload,"onUpdate:value":u=>t.require_photo_upload=u,disabled:!t.enable_photo_upload},null,8,["value","onUpdate:value","disabled"]),Po]),a("label",Mo,[i(C,{value:t.enable_voice_upload,"onUpdate:value":u=>t.enable_voice_upload=u},null,8,["value","onUpdate:value"]),Ro]),a("label",Do,[i(C,{value:t.require_voice_upload,"onUpdate:value":u=>t.require_voice_upload=u,disabled:!t.enable_voice_upload},null,8,["value","onUpdate:value","disabled"]),No]),a("label",jo,[i(C,{value:t.enable_mcq,"onUpdate:value":u=>t.enable_mcq=u},null,8,["value","onUpdate:value"]),Fo]),a("label",Bo,[i(C,{value:t.require_mcq,"onUpdate:value":u=>t.require_mcq=u,disabled:!t.enable_mcq},null,8,["value","onUpdate:value","disabled"]),zo]),a("label",Oo,[i(C,{value:t.enable_audio_section,"onUpdate:value":u=>t.enable_audio_section=u},null,8,["value","onUpdate:value"]),Ho])]),t.enable_feedback_text?(r(),c("div",Eo,[a("div",null,[Io,i(w,{value:t.feedback_text_title,"onUpdate:value":u=>t.feedback_text_title=u,placeholder:"مثلاً: بازخورد این مرحله"},null,8,["value","onUpdate:value"])]),a("div",null,[Wo,i(w,{value:t.feedback_text_placeholder,"onUpdate:value":u=>t.feedback_text_placeholder=u,placeholder:"مثلاً: بازخورد خود را بنویس..."},null,8,["value","onUpdate:value"])])])):S("",!0),t.enable_mcq?(r(),c("div",Go,[i(w,{value:t.mcq_question,"onUpdate:value":u=>t.mcq_question=u,placeholder:"متن سوال"},null,8,["value","onUpdate:value"]),(r(!0),c($,null,R(t.mcq_options,(u,L)=>(r(),c("div",{key:L,class:"flex gap-2 items-center"},[i(w,{value:t.mcq_options[L],"onUpdate:value":M=>t.mcq_options[L]=M,placeholder:`گزینه ${L+1}`,class:"flex-1"},null,8,["value","onUpdate:value","placeholder"]),a("input",{type:"radio",name:`mcq-${o}`,checked:t.mcq_correct_index===L,onChange:M=>t.mcq_correct_index=L},null,40,Ko),Vo,t.mcq_options.length>2?(r(),Ct(l,{key:0,danger:"",onClick:M=>t.mcq_options.splice(L,1)},{default:p(()=>[x("×")]),_:2},1032,["onClick"])):S("",!0)]))),128)),i(l,{type:"dashed",onClick:u=>t.mcq_options.push("")},{default:p(()=>[x("+ گزینه")]),_:2},1032,["onClick"])])):S("",!0),t.enable_audio_section?(r(),c("div",Jo,[Xo,i(y(pe),{"file-list":Ze(o,"audio_section_url"),"before-upload":yt,"custom-request":u=>kt(u,o,"audio_section_url"),accept:"audio/*","max-count":1,"show-upload-list":!1,onRemove:()=>Me(o,"audio_section_url")},{default:p(()=>[i(l,{type:"dashed"},{default:p(()=>[i(P,{icon:"vuesax-linear:voice-cricle",class:"ml-1"}),x(" آپلود فایل صوتی ")]),_:1})]),_:2},1032,["file-list","custom-request","onRemove"]),se(o,"audio_section_url")>0&&se(o,"audio_section_url")<100?(r(),c("div",Zo,[a("div",Qo,[a("div",{class:"h-2 bg-blue-500 transition-all",style:Ne(qe(se(o,"audio_section_url")))},null,4)])])):S("",!0),pt(o,"audio_section_url",t.audio_section_url)?(r(),c("div",Yo,[a("div",ei,[ti,i(l,{type:"text",danger:"",size:"small",onClick:u=>Me(o,"audio_section_url")},{default:p(()=>[x(" حذف فایل ")]),_:2},1032,["onClick"])]),(r(),c("audio",{key:me(o,"audio_section_url",t.audio_section_url),src:me(o,"audio_section_url",t.audio_section_url),controls:"",preload:"metadata",class:"w-full"},null,8,si))])):S("",!0),i(w,{value:t.audio_section_url,"onUpdate:value":u=>t.audio_section_url=u,placeholder:"مسیر فایل صوتی (پس از آپلود)"},null,8,["value","onUpdate:value"])])):S("",!0)]),a("div",ai,[i(l,{type:"text",danger:"",onClick:u=>ls(o),disabled:v.value.steps.length<=1},{default:p(()=>[i(P,{icon:"vuesax-linear:trash",color:"#DC2626"}),li]),_:2},1032,["onClick","disabled"])])],2))),128)),i(l,{type:"dashed",onClick:as,class:"w-full"},{default:p(()=>[oi]),_:1})])])])]),_:1},8,["visible","title","confirmLoading"]),i(f,{visible:ve.value,"onUpdate:visible":s[19]||(s[19]=t=>ve.value=t),title:Se.value?"ویرایش فصل":"افزودن فصل",onOk:Vt,onCancel:mt,width:"560px"},{default:p(()=>[a("div",ii,[a("div",null,[ni,i(w,{value:U.value.title,"onUpdate:value":s[13]||(s[13]=t=>U.value.title=t),placeholder:"مثلاً خانه بهار"},null,8,["value"])]),a("div",null,[ui,i(w,{value:U.value.subtitle,"onUpdate:value":s[14]||(s[14]=t=>U.value.subtitle=t),placeholder:"توضیح کوتاه روی بنر فصل"},null,8,["value"])]),a("div",ri,[a("div",null,[ci,i(y(ze),{value:U.value.theme_key,"onUpdate:value":s[15]||(s[15]=t=>U.value.theme_key=t),class:"w-full"},{default:p(()=>[i(y(D),{value:"meadow"},{default:p(()=>[x("خانه کدوبلو")]),_:1}),i(y(D),{value:"cottage"},{default:p(()=>[x("کافه پفی")]),_:1}),i(y(D),{value:"forest"},{default:p(()=>[x("باغ میلا")]),_:1}),i(y(D),{value:"desert"},{default:p(()=>[x("کارگاه پیتو")]),_:1}),i(y(D),{value:"winter"},{default:p(()=>[x("خانه آرامان")]),_:1}),i(y(D),{value:"castle"},{default:p(()=>[x("میدان شهر")]),_:1}),i(y(D),{value:"tree"},{default:p(()=>[x("درخت پیرین")]),_:1})]),_:1},8,["value"])]),a("div",null,[di,i(w,{value:U.value.sort_order,"onUpdate:value":s[16]||(s[16]=t=>U.value.sort_order=t),type:"number",placeholder:"1"},null,8,["value"])])]),a("div",_i,[i(C,{value:U.value.show,"onUpdate:value":s[17]||(s[17]=t=>U.value.show=t)},null,8,["value"]),a("span",vi,g(U.value.show?"نمایش در نقشه":"مخفی"),1)]),a("div",null,[mi,i(y(pe),{"file-list":O.value,"onUpdate:fileList":s[18]||(s[18]=t=>O.value=t),"before-upload":et,"custom-request":is,accept:"image/jpeg,image/png,image/webp,image/gif,image/heic,image/heif,.jpg,.jpeg,.png,.webp,.gif,.heic,.heif","max-count":1,"list-type":"picture-card",onRemove:os},{default:p(()=>[O.value.length<1?(r(),c("div",pi,[i(P,{icon:"vuesax-linear:image",class:"text-2xl mb-2"}),hi])):S("",!0)]),_:1},8,["file-list"]),B.value>0&&B.value<100?(r(),c("div",gi,[a("div",fi,[a("div",{class:"h-2 bg-blue-500 transition-all",style:Ne(qe(B.value))},null,4)])])):S("",!0),bi])])]),_:1},8,["visible","title"]),i(f,{visible:we.value,"onUpdate:visible":s[20]||(s[20]=t=>we.value=t),title:"توضیحات کامل",footer:null,onCancel:fs,width:"560px"},{default:p(()=>[a("div",yi,g(Ge.value),1),a("div",ki,g(We.value),1)]),_:1},8,["visible"])]),_:1})],2)}}});const xn=ea(wi,[["__scopeId","data-v-d2b5e5d3"]]);export{xn as default};
|