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