Files
machartaa_admin_dist/dist/assets/index-24186e85.js
T
2026-07-14 12:58:42 +03:30

15 lines
44 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import{_ as _t}from"./BasicMainCard-9c458ce7.js";import{_ as Fe}from"./BasicModal.vue_vue_type_style_index_0_lang-5bce5515.js";import{_ as dt,a as pt,u as Re}from"./useBaseTable-3b2d0853.js";import{_ as mt}from"./BasicInput.vue_vue_type_style_index_0_lang-cee0843c.js";import{_ as ft}from"./BasicTextArea.vue_vue_type_style_index_0_lang-ec68dcd2.js";import{_ as Ee}from"./button.vue_vue_type_style_index_0_lang-95946c23.js";import{G as D,_ as vt,d as Oe,g as E,h as ht,E as gt,o as k,i as Ne,w,a as e,b as r,e as F,c as S,j as B,t as N,k as L,F as we,n as ke,D as T,p as ze,v as bt,H as Le,y as ye,M as yt,N as xt,bC as wt,I as xe}from"./index-20d5dab1.js";import{f as Me,b as kt,c as qt,d as St,e as $t,t as Ut,M as je,g as At}from"./supabaseTableQuery-95762ff3.js";import{e as H,a as He,g as le}from"./convert-2ad76038.js";import{t as fe}from"./useDataTime-c147e135.js";import{S as We}from"./index-38a2f111.js";import{_ as Ct}from"./index-a59299a1.js";import{I as G}from"./Icon-06d3f751.js";import{a as De}from"./index-4284a867.js";import{M as It}from"./index-4f6342fa.js";import{a as Be}from"./updateLocale-6ea9ed84.js";import{T as pe}from"./isSymbol-f04930e1.js";import{U as me}from"./index-44ec8c49.js";import{_ as Pt}from"./_plugin-vue_export-helper-26f60d29.js";import"./index-857151a7.js";import"./index-0d016563.js";import"./Col-6ec89065.js";import"./styleChecker-6ae1ce26.js";import"./isPlainObject-769b8c03.js";import"./vnode-18b1f518.js";import"./useState-3cc4a0be.js";import"./FormItemContext-28b30746.js";import"./lodash-28ee46da.js";import"./index-f6eb678e.js";import"./css-0bca533a.js";import"./DialogWrap-a4cda90f.js";import"./pickAttrs-93039156.js";import"./index-f75dc027.js";import"./toArray-fb96c8b9.js";import"./usePrice-bc935b83.js";import"./useRefs-03151dab.js";import"./_flatRest-12208321.js";import"./index-84af5005.js";function Rt(n){if(Array.isArray(n))return n.map(String).filter(Boolean);if(typeof n=="string")try{const l=JSON.parse(n);if(Array.isArray(l))return l.map(String).filter(Boolean)}catch{return n.trim()?[n]:[]}return[]}function Lt(n){return{...n,duration_minutes:Math.round((Number(n.duration_seconds)||60)/60),kodoblu_voice_url:H(n.kodoblu_voice_url)||"",audio_section_url:H(n.audio_section_url)||"",step_images:Rt(n.step_images).map(l=>H(l)||l)}}function Je(n,l,p){var v,u,b,P,q;return{challenge_id:n,step_order:p,description:l.description||"",duration_seconds:Math.max(1,Math.round(Number(l.duration_minutes)*60)),aparat_embed_code:((v=l.aparat_embed_code)==null?void 0:v.trim())||null,kodoblu_voice_url:H((u=l.kodoblu_voice_url)==null?void 0:u.trim())||null,step_images:(l.step_images||[]).map(h=>H(h)||h).filter(Boolean),is_final_step:!!l.is_final_step,enable_feedback_text:!!l.enable_feedback_text,require_feedback_text:!!l.require_feedback_text,feedback_text_title:((b=l.feedback_text_title)==null?void 0:b.trim())||null,feedback_text_placeholder:((P=l.feedback_text_placeholder)==null?void 0:P.trim())||null,enable_photo_upload:!!(l.enable_photo_upload||l.requires_photo_upload),require_photo_upload:!!(l.require_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||null,mcq_options:(l.mcq_options||[]).filter(h=>h.trim()),mcq_correct_index:l.enable_mcq?Number(l.mcq_correct_index??0):null,enable_audio_section:!!l.enable_audio_section,audio_section_url:H((q=l.audio_section_url)==null?void 0:q.trim())||null,punishment_description:l.punishment_description||"",requires_photo_upload:!!(l.enable_photo_upload||l.requires_photo_upload),updated_at:new Date().toISOString()}}function Mt(n,l){return l.map((p,v)=>Je(n,p,v+1))}async function Dt(n){const{data:l,error:p}=await D.from("step_challenges").select("*").eq("id",n).single();if(p)throw p;const{data:v,error:u}=await D.from("step_challenge_steps").select("*").eq("challenge_id",n).order("step_order",{ascending:!0});if(u)throw u;return{...l,steps:(v||[]).map(b=>Lt(b))}}async function Bt(n,l){const p={title:n.title,character_image_url:n.character_image_url,show:n.show??!1,access_type:n.access_type??"free",sort_order:n.sort_order??0,completion_points:Number(n.completion_points)||50};l&&(p.owner_id=l);const{data:v,error:u}=await D.from("step_challenges").insert([p]).select().single();if(u)throw u;const b=Mt(v.id,n.steps),{error:P}=await D.from("step_challenge_steps").insert(b);if(P)throw P;return v}async function Tt(n,l){const{error:p}=await D.from("step_challenges").update({title:l.title,character_image_url:l.character_image_url,show:l.show??!1,access_type:l.access_type??"free",sort_order:l.sort_order??0,completion_points:Number(l.completion_points)||50,updated_at:new Date().toISOString()}).eq("id",n);if(p)throw p;const{data:v,error:u}=await D.from("step_challenge_steps").select("id").eq("challenge_id",n);if(u)throw u;const b=new Set((v||[]).map(h=>h.id)),P=l.steps.map(h=>h.id).filter(h=>typeof h=="number"&&b.has(h)),q=[...b].filter(h=>!P.includes(h));if(q.length){const{error:h}=await D.from("user_step_challenge_steps").delete().in("step_id",q);if(h)throw h;const{error:_}=await D.from("step_challenge_steps").delete().in("id",q);if(_)throw _}for(const h of P){const{error:_}=await D.from("step_challenge_steps").update({step_order:-h,updated_at:new Date().toISOString()}).eq("id",h);if(_)throw _}for(let h=0;h<l.steps.length;h++){const _=l.steps[h],d=Je(n,_,h+1);if(_.id&&b.has(_.id)){const{error:A}=await D.from("step_challenge_steps").update(d).eq("id",_.id);if(A)throw A;continue}const{error:I}=await D.from("step_challenge_steps").insert(d);if(I)throw I}return{id:n}}async function Ft(n){const{error:l}=await D.from("step_challenges").delete().eq("id",n);if(l)throw l}async function Et(n,l){const{data:p,error:v}=await D.from("step_challenges").update({...l,updated_at:new Date().toISOString()}).eq("id",n).select();if(v)throw v;return p}async function Ot(n){const{TableEngineRequest:l}=await vt(()=>import("./buildSupabaseQuery-4c9afa46.js"),["assets/buildSupabaseQuery-4c9afa46.js","assets/index-20d5dab1.js","assets/index-2b0c085a.css","assets/supabaseTableQuery-95762ff3.js"]),p={...n};!p.sort&&!p.order&&(p.order="-id");const v=await l(p,"step_challenges");try{if(Array.isArray(v==null?void 0:v.rows)){const u=v.rows,b=u.map(I=>I.id).filter(Boolean);let P={};if(b.length>0){const{data:I}=await D.from("step_challenge_steps").select("id, challenge_id, step_order, duration_seconds").in("challenge_id",b);P=(I||[]).reduce((A,j)=>(A[j.challenge_id]||(A[j.challenge_id]=[]),A[j.challenge_id].push(j),A),{})}const q=p.page||1,h=p.limit||20,_=(q-1)*h,d=u.map((I,A)=>{const j=P[I.id]||[],Z=j.reduce((ae,V)=>ae+Math.round((V.duration_seconds||0)/60),0);return{...I,index:_+A,steps_count:j.length,total_minutes:Z}});return{...v,rows:d}}}catch(u){console.log("[getStepChallengesTable] normalize error:",u)}return v}const Nt=new Set(["status","current_step_order","started_at","completed_at","created_at","challenge_id"]);async function Te(n){const l=n.trim();if(!l)return[];const{data:p,error:v}=await D.from("step_challenges").select("id").ilike("title",Ut(l)).limit(je);if(v)throw v;return(p||[]).map(u=>u.id)}function zt(n,l,p){const v=At(["status"],n,l).split(","),u=[...new Set(p)].slice(0,je);return u.length&&v.push(`challenge_id.in.(${u.join(",")})`),v.join(",")}async function jt(n){const{limit:l=20,page:p=1,search:v,filters:u}=n;let b=D.from("user_step_challenges").select("*, step_challenges(title), users(name, phone, first_name, last_name)",{count:"exact"});if(v!=null&&v.trim()){const[_,d]=await Promise.all([Me(D,v),Te(v)]);b=b.or(zt(v,_,d))}if(u!=null&&u.length){for(const _ of u)if(!(_.hidden||!_.field)){if(_.field==="challenge_title"){if(["eq","has","like"].includes(_.op)){const d=await Te(String(_.value));d.length?b=b.in("challenge_id",d):b=b.eq("challenge_id",-1)}continue}if(_.field==="user_name"||_.field==="user_phone"){if(["eq","has","like"].includes(_.op)){const d=await Me(D,String(_.value));d.length?b=b.in("user_id",d):b=b.eq("user_id","00000000-0000-0000-0000-000000000000")}continue}Nt.has(_.field)&&(b=kt(b,_))}}b=qt(b,n,"-created_at",["created_at","status","current_step_order"]),b=St(b,p,l);const{data:P,error:q,count:h}=await b;if(q)throw q;return $t(P,h,n,_=>{const d=Array.isArray(_.users)?_.users[0]:_.users,I=Array.isArray(_.step_challenges)?_.step_challenges[0]:_.step_challenges;let A="نامشخص";return d!=null&&d.name?A=d.name:d!=null&&d.first_name||d!=null&&d.last_name?A=`${d.first_name||""} ${d.last_name||""}`.trim():d!=null&&d.phone&&(A=d.phone),{..._,challenge_title:(I==null?void 0:I.title)||"",user_name:A,user_phone:(d==null?void 0:d.phone)||""}})}async function Ht(n){const{data:l,error:p}=await D.from("user_step_challenges").select("*, step_challenges(title), users(name, phone, first_name, last_name)").eq("id",n).single();if(p)throw p;const{data:v,error:u}=await D.from("user_step_challenge_steps").select(`
*,
step_challenge_steps (
step_order,
description,
is_final_step,
enable_mcq,
mcq_question,
mcq_options,
enable_feedback_text,
enable_photo_upload,
enable_voice_upload
)
`).eq("user_challenge_id",n).order("id",{ascending:!0});if(u)throw u;const b=(v||[]).map(h=>{const _=Array.isArray(h.step_challenge_steps)?h.step_challenge_steps[0]:h.step_challenge_steps;let d=[];const I=_==null?void 0:_.mcq_options;if(Array.isArray(I))d=I.map(String);else if(typeof I=="string")try{const A=JSON.parse(I);Array.isArray(A)&&(d=A.map(String))}catch{d=[]}return{...h,step_challenge_steps:_?{..._,mcq_options:d}:null}});b.sort((h,_)=>{var A,j;const d=((A=h.step_challenge_steps)==null?void 0:A.step_order)??999,I=((j=_.step_challenge_steps)==null?void 0:j.step_order)??999;return d-I});const P=Array.isArray(l.step_challenges)?l.step_challenges[0]:l.step_challenges,q=Array.isArray(l.users)?l.users[0]:l.users;return{...l,challenge_title:(P==null?void 0:P.title)||"",user_name:(q==null?void 0:q.name)||[q==null?void 0:q.first_name,q==null?void 0:q.last_name].filter(Boolean).join(" ")||(q==null?void 0:q.phone)||"نامشخص",user_phone:(q==null?void 0:q.phone)||"",steps_progress:b}}async function Wt(){const{data:n,error:l}=await D.from("step_challenge_config").select("*").eq("id",1).maybeSingle();if(l)throw l;return n||{id:1,rules_aparat_embed_code:null}}async function Jt(n){const{data:l,error:p}=await D.from("step_challenge_config").upsert({id:1,rules_aparat_embed_code:n.rules_aparat_embed_code||null,updated_at:new Date().toISOString()}).select().single();if(p)throw p;return l}const Vt=[{title:"ردیف",dataIndex:"id",key:"id",filterable:!1,width:70,align:"center",customRender:n=>n.record.index+1},{title:"عنوان",dataIndex:"title",key:"title"},{title:"مراحل",dataIndex:"steps_count",key:"steps_count",customRender:n=>{const l=n.record.steps_count||0,p=n.record.total_minutes||0;return l?`${l} مرحله / ${p} دقیقه`:"-"}},{title:"نمایش",dataIndex:"show",key:"show",customRender:n=>n.record.show?"فعال":"مخفی"},{title:"نوع",dataIndex:"access_type",key:"access_type",width:100,align:"center",customRender:n=>n.record.access_type==="subscription"?"اشتراکی":"رایگان"},{title:"ترتیب",dataIndex:"sort_order",key:"sort_order",width:80,align:"center"},{title:"زمان ایجاد",dataIndex:"created_at",key:"created_at",customRender:n=>fe(n.record.created_at)},{title:"عملیات",dataIndex:"action",key:"action",slot:"action",filterable:!1,align:"center"}],Kt={in_progress:"در حال انجام",completed:"تکمیل شده",abandoned:"رها شده"},Xt=[{title:"ردیف",dataIndex:"id",key:"id",filterable:!1,width:70,align:"center",customRender:n=>n.record.index+1},{title:"چالش",dataIndex:"challenge_title",key:"challenge_title",filterField:"challenge_title"},{title:"کاربر",dataIndex:"user_name",key:"user_name",filterField:"user_name"},{title:"موبایل",dataIndex:"user_phone",key:"user_phone",filterField:"user_phone"},{title:"وضعیت",dataIndex:"status",key:"status",customRender:n=>Kt[n.record.status]||n.record.status},{title:"مرحله فعلی",dataIndex:"current_step_order",key:"current_step_order",align:"center"},{title:"شروع",dataIndex:"started_at",key:"started_at",customRender:n=>fe(n.record.started_at)},{title:"پایان",dataIndex:"completed_at",key:"completed_at",customRender:n=>n.record.completed_at?fe(n.record.completed_at):"-"},{title:"عملیات",dataIndex:"action",key:"action",slot:"action",filterable:!1,align:"center",width:90}],Gt={key:0,class:"py-16 flex justify-center"},Qt={key:1,class:"space-y-4 max-h-[70vh] overflow-y-auto pr-1"},Yt={class:"grid grid-cols-1 sm:grid-cols-2 gap-3 text-sm"},Zt=e("span",{class:"text-gray-500"},"چالش:",-1),es={class:"font-600"},ts=e("span",{class:"text-gray-500"},"کاربر:",-1),ss={class:"font-600"},as=e("span",{class:"text-gray-500"},"موبایل:",-1),os={class:"font-600"},ls=e("span",{class:"text-gray-500"},"وضعیت:",-1),ns={class:"font-600"},is=e("span",{class:"text-gray-500"},"شروع:",-1),rs={class:"font-600"},cs=e("span",{class:"text-gray-500"},"پایان:",-1),us={class:"font-600"},_s={key:0},ds=e("span",{class:"text-gray-500"},"امتیاز:",-1),ps={class:"font-600"},ms={key:0,class:"rounded-xl border border-gray-200 bg-gray-50 p-3"},fs=e("div",{class:"text-sm font-700 mb-1"},"بازخورد پایان چالش",-1),vs={class:"text-sm whitespace-pre-wrap leading-7"},hs={key:1,class:"text-center text-gray-500 py-8"},gs={class:"flex flex-wrap items-center justify-between gap-2"},bs={class:"font-700 text-[#120d31]"},ys={key:0,class:"text-sm text-gray-600 leading-7"},xs={key:1,class:"rounded-lg bg-blue-50 p-3"},ws=e("div",{class:"text-xs font-700 text-gray-600 mb-1"},"بازخورد متنی",-1),ks={class:"text-sm whitespace-pre-wrap leading-7"},qs={key:2,class:"space-y-2"},Ss=e("div",{class:"text-xs font-700 text-gray-600"},"عکس ارسالی",-1),$s={key:3,class:"space-y-2"},Us=e("div",{class:"text-xs font-700 text-gray-600"},"ویس ارسالی",-1),As=["src"],Cs={key:4,class:"rounded-lg bg-amber-50 p-3"},Is=e("div",{class:"text-xs font-700 text-gray-600 mb-1"},"پاسخ چندگزینه‌ای",-1),Ps={key:0,class:"text-sm text-gray-600 mb-1"},Rs={class:"text-sm font-600"},Ls={key:5,class:"text-xs text-gray-400"},Ms={class:"flex justify-end"},Ds=Oe({__name:"StepChallengeProgressDetailModal",props:{visible:{type:Boolean},userChallengeId:{}},emits:["update:visible"],setup(n,{emit:l}){const p=n,v=E(!1),u=E(null),b=ht({get:()=>p.visible,set:m=>l("update:visible",m)}),P={in_progress:"در حال انجام",completed:"تکمیل شده",abandoned:"رها شده"},q={pending:"شروع نشده",running:"در حال انجام",completed:"انجام شده",failed:"ناموفق"};function h(m){return m?fe(m):"—"}function _(m){return P[m||""]||m||"—"}function d(m){return q[m||""]||m||"—"}function I(m){return m==="completed"?"bg-green-50 border-green-200 text-green-800":m==="running"?"bg-yellow-50 border-yellow-200 text-yellow-800":m==="failed"?"bg-red-50 border-red-200 text-red-800":"bg-gray-50 border-gray-200 text-gray-600"}function A(m){return m?m.match(/\.(mp3|wav|ogg|m4a|aac|webm)$/i)?He(m):le(m):""}function j(m){const C=m.step_challenge_steps;return C!=null&&C.is_final_step?"ماموریت پایانی":C!=null&&C.step_order?`مرحله ${C.step_order}`:`مرحله ${m.id}`}function Z(m){var O;const C=m.mcq_answer,J=((O=m.step_challenge_steps)==null?void 0:O.mcq_options)||[];return typeof C=="number"&&J[C]?J[C]:typeof C=="number"?`گزینه ${C+1}`:"—"}function ae(m){var C;return!!((C=m.feedback_text)!=null&&C.trim()||m.photo_url||m.voice_url||m.mcq_answer!==null&&m.mcq_answer!==void 0)}async function V(){if(p.userChallengeId){v.value=!0,u.value=null;try{u.value=await Ht(p.userChallengeId)}catch(m){T.error((m==null?void 0:m.message)||"خطا در بارگذاری جزئیات"),l("update:visible",!1)}finally{v.value=!1}}}function Q(){l("update:visible",!1)}return gt(()=>[p.visible,p.userChallengeId],([m,C])=>{m&&C&&V(),m||(u.value=null)}),(m,C)=>{const J=Ee,O=Fe;return k(),Ne(O,{visible:b.value,"onUpdate:visible":C[0]||(C[0]=W=>b.value=W),title:"جزئیات ارسال‌های کاربر",width:"88%","custom-footer":!0,onCancel:Q},{footer:w(()=>[e("div",Ms,[r(J,{onClick:Q},{default:w(()=>[F("بستن")]),_:1})])]),default:w(()=>{var W;return[v.value?(k(),S("div",Gt,[r(B(We),{size:"large"})])):u.value?(k(),S("div",Qt,[e("div",Yt,[e("div",null,[Zt,F(),e("span",es,N(u.value.challenge_title),1)]),e("div",null,[ts,F(),e("span",ss,N(u.value.user_name),1)]),e("div",null,[as,F(),e("span",os,N(u.value.user_phone||"—"),1)]),e("div",null,[ls,F(),e("span",ns,N(_(u.value.status)),1)]),e("div",null,[is,F(),e("span",rs,N(h(u.value.started_at)),1)]),e("div",null,[cs,F(),e("span",us,N(u.value.completed_at?h(u.value.completed_at):"—"),1)]),u.value.points_awarded?(k(),S("div",_s,[ds,F(),e("span",ps,N(u.value.points_awarded),1)])):L("",!0)]),u.value.completion_feedback?(k(),S("div",ms,[fs,e("div",vs,N(u.value.completion_feedback),1)])):L("",!0),(W=u.value.steps_progress)!=null&&W.length?L("",!0):(k(),S("div",hs," هنوز ارسالی برای این چالش ثبت نشده است. ")),(k(!0),S(we,null,ke(u.value.steps_progress,(M,U)=>{var ne,ie,te;return k(),S("div",{key:M.id,class:"rounded-xl border border-gray-200 p-4 space-y-3"},[e("div",gs,[e("div",bs,N(j(M)),1),e("span",{class:ze(["text-xs font-600 px-2 py-1 rounded-full border",I(M.status)])},N(d(M.status)),3)]),(ne=M.step_challenge_steps)!=null&&ne.description?(k(),S("div",ys,N(M.step_challenge_steps.description),1)):L("",!0),(ie=M.feedback_text)!=null&&ie.trim()?(k(),S("div",xs,[ws,e("div",ks,N(M.feedback_text),1)])):L("",!0),M.photo_url?(k(),S("div",qs,[Ss,r(B(Ct),{src:A(M.photo_url),preview:{mask:"پیش نمایش"},class:"!max-w-xs rounded-xl border border-gray-200 overflow-hidden"},null,8,["src"])])):L("",!0),M.voice_url?(k(),S("div",$s,[Us,e("audio",{src:A(M.voice_url),controls:"",preload:"metadata",class:"w-full max-w-md"},null,8,As)])):L("",!0),M.mcq_answer!==null&&M.mcq_answer!==void 0?(k(),S("div",Cs,[Is,(te=M.step_challenge_steps)!=null&&te.mcq_question?(k(),S("div",Ps,N(M.step_challenge_steps.mcq_question),1)):L("",!0),e("div",Rs,N(Z(M)),1)])):L("",!0),ae(M)?L("",!0):(k(),S("div",Ls," ارسالی برای این مرحله ثبت نشده است. "))])}),128))])):L("",!0)]}),_:1},8,["visible"])}}}),f=n=>(yt("data-v-acc248f1"),n=n(),xt(),n),Bs={class:"flex justify-between items-center mb-4"},Ts=f(()=>e("h2",null,"چالش‌های مرحله‌ای",-1)),Fs={class:"gap-2 flex justify-center"},Es=f(()=>e("span",null,"حذف",-1)),Os=f(()=>e("span",null,"ویرایش",-1)),Ns=f(()=>e("div",{class:"mb-4"},[e("h2",null,"پیشرفت کاربران در چالش‌ها")],-1)),zs=f(()=>e("span",null,"مشاهده ارسال‌ها",-1)),js={class:"max-w-2xl space-y-4"},Hs=f(()=>e("h2",{class:"text-lg font-semibold"},"قوانین چالش‌های کدوبلو",-1)),Ws=f(()=>e("p",{class:"text-sm text-gray-600"}," ویدیوی embed آپارات که در مودال «قوانین چالش کدوبلو» به کاربر نمایش داده می‌شود. ",-1)),Js=f(()=>e("div",{class:"mb-1 text-sm text-gray-600"},"کد embed ویدیو قوانین",-1)),Vs={class:"space-y-4 relative"},Ks={key:0,class:"absolute inset-0 bg-white/60 z-10 flex items-center justify-center"},Xs=f(()=>e("div",{class:"mb-1 text-sm text-gray-600"},"عنوان چالش",-1)),Gs={class:"grid grid-cols-1 sm:grid-cols-3 gap-4"},Qs=f(()=>e("div",{class:"mb-1 text-sm text-gray-600"},"ترتیب نمایش",-1)),Ys=f(()=>e("div",{class:"mb-1 text-sm text-gray-600"},"وضعیت نمایش",-1)),Zs={class:"flex items-center gap-2 mt-2"},ea={class:"text-sm text-gray-600"},ta=f(()=>e("div",{class:"mb-1 text-sm text-gray-600"},"نوع دسترسی",-1)),sa=f(()=>e("div",{class:"mb-1 text-sm text-gray-600"},"امتیاز اولین تکمیل",-1)),aa={class:"flex justify-center pb-2"},oa=f(()=>e("div",{class:"mb-1 text-sm text-gray-600"},"عکس کاراکتر (کارت لیست)",-1)),la={key:0},na=f(()=>e("div",null,"آپلود تصویر",-1)),ia={key:0,class:"mt-1"},ra={class:"h-2 rounded bg-gray-200 overflow-hidden"},ca=f(()=>e("div",{class:"section-divider"},null,-1)),ua={class:"pt-2"},_a=f(()=>e("div",{class:"mb-2 text-sm text-gray-600 font-semibold"},"مراحل چالش",-1)),da={class:"space-y-4"},pa={class:"flex items-center justify-between gap-3"},ma={class:"font-semibold text-gray-700"},fa={key:0,class:"text-emerald-600 text-sm font-normal mr-1"},va={class:"flex items-center gap-2"},ha=f(()=>e("span",{class:"text-sm text-gray-600"},"ماموریت پایانی",-1)),ga=f(()=>e("div",{class:"mb-1 text-xs text-gray-500"},"توضیحات مرحله (اختیاری)",-1)),ba={class:"grid grid-cols-2 gap-3"},ya=f(()=>e("div",{class:"mb-1 text-xs text-gray-500"},"زمان لازم (دقیقه)",-1)),xa=f(()=>e("div",{class:"mb-1 text-xs text-gray-500"},"کد embed ویدیو آپارات (اختیاری)",-1)),wa={class:"space-y-2"},ka=f(()=>e("div",{class:"mb-1 text-xs text-gray-500"},"وویس کدوبلو (اختیاری)",-1)),qa={key:0,class:"mt-1"},Sa={class:"h-2 rounded bg-gray-200 overflow-hidden"},$a={key:1,class:"step-audio-preview"},Ua={class:"flex items-center justify-between mb-2"},Aa=f(()=>e("div",{class:"step-audio-preview__label mb-0"},"پیش‌نمایش وویس کدوبلو",-1)),Ca=["src"],Ia=f(()=>e("div",{class:"mb-1 text-xs text-gray-500"},"عکس‌های مرحله (اختیاری)",-1)),Pa={key:0},Ra=f(()=>e("div",{class:"text-xs"},"آپلود عکس",-1)),La=f(()=>e("div",{class:"section-divider"},null,-1)),Ma={class:"step-form-box__inner"},Da=f(()=>e("div",{class:"text-xs font-semibold text-gray-600 mb-3"},"آیتم‌های بعد از «بزن بریم»",-1)),Ba={class:"grid grid-cols-1 sm:grid-cols-2 gap-3"},Ta={class:"flex items-center gap-2"},Fa=f(()=>e("span",{class:"text-sm"},"فیلد بازخورد",-1)),Ea={class:"flex items-center gap-2"},Oa=f(()=>e("span",{class:"text-sm"},"بازخورد اجباری",-1)),Na={class:"flex items-center gap-2"},za=f(()=>e("span",{class:"text-sm"},"بارگذاری عکس",-1)),ja={class:"flex items-center gap-2"},Ha=f(()=>e("span",{class:"text-sm"},"عکس اجباری",-1)),Wa={class:"flex items-center gap-2"},Ja=f(()=>e("span",{class:"text-sm"},"ضبط و ارسال ویس",-1)),Va={class:"flex items-center gap-2"},Ka=f(()=>e("span",{class:"text-sm"},"ویس اجباری",-1)),Xa={class:"flex items-center gap-2"},Ga=f(()=>e("span",{class:"text-sm"},"سوال چندگزینه‌ای",-1)),Qa={class:"flex items-center gap-2"},Ya=f(()=>e("span",{class:"text-sm"},"پاسخ MCQ اجباری",-1)),Za={class:"flex items-center gap-2"},eo=f(()=>e("span",{class:"text-sm"},"بخش صوت",-1)),to={key:0,class:"space-y-2 border rounded-lg p-3 bg-white"},so=f(()=>e("div",{class:"mb-1 text-xs text-gray-500"},"عنوان فیلد بازخورد",-1)),ao=f(()=>e("div",{class:"mb-1 text-xs text-gray-500"},"متن پیش‌فرض فیلد بازخورد",-1)),oo={key:1,class:"space-y-2 border rounded-lg p-3"},lo=["name","checked","onChange"],no=f(()=>e("span",{class:"text-xs"},"صحیح",-1)),io={key:2,class:"space-y-2"},ro=f(()=>e("div",{class:"mb-1 text-xs text-gray-500"},"فایل بخش صوت",-1)),co={key:0,class:"mt-1"},uo={class:"h-2 rounded bg-gray-200 overflow-hidden"},_o={key:1,class:"step-audio-preview"},po={class:"flex items-center justify-between mb-2"},mo=f(()=>e("div",{class:"step-audio-preview__label mb-0"},"پیش‌نمایش بخش صوت",-1)),fo=["src"],vo={class:"flex justify-end pt-1"},ho=f(()=>e("span",{class:"text-[#DC2626]"},"حذف مرحله",-1)),go=f(()=>e("span",{class:"text-gray-500"},"+ افزودن مرحله",-1)),bo=Oe({__name:"index",setup(n){const l=De,p=De.TabPane,v=Be,u=Be.Option,b=E("challenges"),P=E(!1),q=E(!1),h=E(null),_=E(!1),d=E(null),I=E(!1),A=E({rules_aparat_embed_code:""}),[j,Z]=Re(),[ae]=Re(),V=E([]),Q=E({}),m=E({}),C=E({}),J=E({}),O=E(0),W=E(0),M=()=>({description:"",duration_minutes:5,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}),U=E({title:"",character_image_url:null,show:!1,access_type:"free",sort_order:0,completion_points:50,steps:[M()]}),ne={columns:Vt,api:Ot,defaultPageLimit:20},ie={columns:Xt,api:jt,defaultPageLimit:20};function te(s){return{width:`${Math.max(0,Math.min(100,s))}%`}}function ve(){return wt()||localStorage.getItem("tamin_token")||localStorage.getItem("token")||""}function he(s){var o,g,y,x;const a=s.full_src||s.url||s.src||s.path||((o=s.data)==null?void 0:o.full_src)||((g=s.data)==null?void 0:g.url)||((y=s.data)==null?void 0:y.src)||((x=s.data)==null?void 0:x.path)||"";return H(String(a||""))}function re(s,a,o){const g=[...U.value.steps];g[s]={...g[s],[a]:o},U.value.steps=g}function K(s,a){return`${s}:${a}`}function ge(s,a){return Q.value[K(s,a)]||[]}function se(s,a){return m.value[K(s,a)]||0}function ce(s,a,o){m.value[K(s,a)]=o}function ue(s){return s?s.startsWith("http://")||s.startsWith("https://")?s:He(s):""}function Ve(s,a){return C.value[K(s,a)]||""}function ee(s,a){const o=K(s,a),g=C.value[o];g&&(URL.revokeObjectURL(g),delete C.value[o])}function Ke(){Object.values(C.value).forEach(s=>URL.revokeObjectURL(s)),C.value={}}function oe(s,a,o){const g=Ve(s,a);if(g)return g;if(o!=null&&o.trim())return ue(o);const y=ge(s,a)[0];return(y==null?void 0:y.url)||""}function qe(s,a,o){return!!oe(s,a,o)}function Xe(){Ke(),Q.value={},m.value={}}function Ge(){J.value={}}function be(s){return J.value[s]||[]}function Se(){const s={};U.value.steps.forEach((a,o)=>{const g=(a.step_images||[]).filter(Boolean);g.length&&(s[o]=g.map((y,x)=>({uid:`step-image-${o}-${x}`,name:`image-${x+1}.jpg`,status:"done",url:le(y),response:{path:H(y)||y}})))}),J.value=s}function $e(){const s={};U.value.steps.forEach((a,o)=>{a.audio_section_url&&(s[K(o,"audio_section_url")]=[{uid:`audio-section-${o}`,name:"audio-section.mp3",status:"done",url:ue(a.audio_section_url)}]),a.kodoblu_voice_url&&(s[K(o,"kodoblu_voice_url")]=[{uid:`kodoblu-voice-${o}`,name:"kodoblu-voice.mp3",status:"done",url:ue(a.kodoblu_voice_url)}])}),Q.value=s}function _e(s,a){ee(s,a),re(s,a,""),Q.value[K(s,a)]=[]}function Qe(s,a){var y,x;const o=H(((y=a.response)==null?void 0:y.path)||a.url||""),g=((x=U.value.steps[s])==null?void 0:x.step_images)||[];re(s,"step_images",g.filter(R=>H(R)!==o)),J.value[s]=(J.value[s]||[]).filter(R=>R.uid!==a.uid)}function Ue(){U.value={title:"",character_image_url:null,show:!1,access_type:"free",sort_order:0,completion_points:50,steps:[M()]},V.value=[],Xe(),Ge()}function Ye(){_.value=!1,d.value=null,Ue(),P.value=!0}function Ae(){P.value=!1,Ue()}function Ze(){U.value.steps.push(M())}function et(s){U.value.steps.length<=1||(ee(s,"kodoblu_voice_url"),ee(s,"audio_section_url"),U.value.steps.splice(s,1),$e(),Se())}function tt(s){h.value=s.id,q.value=!0}function Ce(s){return s.type.startsWith("image/")?s.size/1024/1024<5?!0:(T.error("حجم تصویر باید کمتر از 5MB باشد!"),!1):(T.error("فقط فایل‌های تصویری قابل آپلود هستند!"),!1)}async function st(s){const{file:a,onSuccess:o,onError:g,onProgress:y}=s,x=new FormData;x.append("file",a);const R=`${xe}/upload/machartaa-img`;W.value=0,O.value++,await new Promise((Y,X)=>{const t=new XMLHttpRequest;t.open("POST",R),t.setRequestHeader("Authorization",`Bearer ${ve()}`),t.upload.onprogress=c=>{if(c.lengthComputable){const i=Math.round(c.loaded/c.total*100);W.value=i,y==null||y({percent:i})}},t.onload=()=>{if(W.value=100,t.status>=200&&t.status<300)try{const c=JSON.parse(t.responseText||"{}"),i=he(c);if(!i)throw new Error("مسیر فایل از سرور دریافت نشد");const $=le(i);U.value.character_image_url=i,V.value=$?[{uid:`${Date.now()}`,name:"image.jpg",status:"done",url:$,response:{path:i}}]:[],o==null||o(c,t),T.success("تصویر با موفقیت آپلود شد!"),Y()}catch(c){g==null||g(c,t),X(c)}else{const c=new Error("خطا در آپلود تصویر");g==null||g(c,t),X(c)}},t.onerror=()=>{g==null||g(new Error("خطا در آپلود تصویر!"),t),X(new Error("خطا در آپلود تصویر!"))},t.onloadend=()=>{O.value=Math.max(0,O.value-1),W.value=0},t.send(x)})}async function at(s,a){const{file:o,onSuccess:g,onError:y,onProgress:x}=s,R=new FormData;R.append("file",o);const Y=`${xe}/upload/machartaa-img`;O.value++,await new Promise((X,t)=>{const c=new XMLHttpRequest;c.open("POST",Y),c.setRequestHeader("Authorization",`Bearer ${ve()}`),c.upload.onprogress=i=>{i.lengthComputable&&(x==null||x({percent:Math.round(i.loaded/i.total*100)}))},c.onload=()=>{var i;if(c.status>=200&&c.status<300)try{const $=JSON.parse(c.responseText||"{}"),z=he($);if(!z)throw new Error("مسیر تصویر از سرور دریافت نشد");const de=[...((i=U.value.steps[a])==null?void 0:i.step_images)||[],z];re(a,"step_images",de);const ut={uid:`${Date.now()}-${a}`,name:o.name||"image.jpg",status:"done",url:le(z),response:{path:z}};J.value[a]=[...be(a),ut],g==null||g($,c),T.success("عکس مرحله با موفقیت آپلود شد!"),X()}catch($){y==null||y($,c),t($)}else{const $=new Error("خطا در آپلود عکس مرحله");y==null||y($,c),t($)}},c.onerror=()=>{y==null||y(new Error("خطا در آپلود عکس مرحله!"),c),t(new Error("خطا در آپلود عکس مرحله!"))},c.onloadend=()=>{O.value=Math.max(0,O.value-1)},c.send(R)})}function Ie(s){return s.type.startsWith("audio/")?s.size/1024/1024<60?!0:(T.error("حجم فایل صوتی باید کمتر از 60MB باشد!"),!1):(T.error("فقط فایل‌های صوتی قابل آپلود هستند!"),!1)}async function Pe(s,a,o){const{file:g,onSuccess:y,onError:x,onProgress:R}=s,Y=new FormData;Y.append("file",g);const X=`${xe}/upload/machartaa-audio`;ee(a,o),C.value[K(a,o)]=URL.createObjectURL(g),ce(a,o,0),O.value++,await new Promise((t,c)=>{const i=new XMLHttpRequest;i.open("POST",X),i.setRequestHeader("Authorization",`Bearer ${ve()}`),i.timeout=15*60*1e3,i.upload.onprogress=$=>{if($.lengthComputable){const z=Math.round($.loaded/$.total*100);ce(a,o,z),R==null||R({percent:z})}},i.onload=()=>{if(ce(a,o,100),i.status>=200&&i.status<300)try{const $=JSON.parse(i.responseText||"{}"),z=he($);if(!z)throw new Error("مسیر فایل صوتی از سرور دریافت نشد");ee(a,o),re(a,o,z);const de=ue(z);Q.value[K(a,o)]=de?[{uid:`${Date.now()}`,name:g.name||"audio.mp3",status:"done",url:de,response:{path:z}}]:[],y==null||y($,i),T.success("فایل صوتی با موفقیت آپلود شد!"),t()}catch($){x==null||x($,i),c($)}else{ee(a,o);const $=new Error("خطا در آپلود فایل صوتی");x==null||x($,i),c($)}},i.onerror=()=>{ee(a,o),x==null||x(new Error("خطا در آپلود فایل صوتی!"),i),c(new Error("خطا در آپلود فایل صوتی!"))},i.onloadend=()=>{O.value=Math.max(0,O.value-1),ce(a,o,0)},i.send(Y)})}async function ot(s){try{const a=await Dt(s.id);_.value=!0,d.value=s.id,U.value={title:a.title,character_image_url:H(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,steps:(a.steps||[]).map(o=>({id:o.id,description:o.description||"",duration_minutes:o.duration_minutes||Math.round((o.duration_seconds||60)/60),aparat_embed_code:o.aparat_embed_code||"",kodoblu_voice_url:o.kodoblu_voice_url||"",step_images:Array.isArray(o.step_images)?[...o.step_images]:[],is_final_step:!!o.is_final_step,enable_feedback_text:!!o.enable_feedback_text,require_feedback_text:!!o.require_feedback_text,feedback_text_title:o.feedback_text_title||"بازخورد این مرحله",feedback_text_placeholder:o.feedback_text_placeholder||"بازخورد خود را بنویس...",enable_photo_upload:!!(o.enable_photo_upload||o.requires_photo_upload),require_photo_upload:!!(o.require_photo_upload||o.requires_photo_upload),enable_voice_upload:!!o.enable_voice_upload,require_voice_upload:!!o.require_voice_upload,enable_mcq:!!o.enable_mcq,require_mcq:!!o.require_mcq,mcq_question:o.mcq_question||"",mcq_options:Array.isArray(o.mcq_options)&&o.mcq_options.length?[...o.mcq_options]:["",""],mcq_correct_index:Number(o.mcq_correct_index??0),enable_audio_section:!!o.enable_audio_section,audio_section_url:o.audio_section_url||"",punishment_description:o.punishment_description||"",requires_photo_upload:!!(o.enable_photo_upload||o.requires_photo_upload)}))},a.character_image_url&&(V.value=[{uid:`${Date.now()}`,name:"image.jpg",status:"done",url:le(a.character_image_url)}]),$e(),Se(),P.value=!0}catch(a){T.error(a.message||"خطا در بارگذاری چالش")}}async function lt(s){It.confirm({title:"حذف چالش",content:"آیا از حذف این چالش مطمئن هستید؟",okText:"بله",cancelText:"خیر",onOk:async()=>{await Ft(s.id),T.success("چالش حذف شد"),Z()}})}async function nt(s){await Et(s.id,{show:!s.show}),T.success(s.show?"چالش مخفی شد":"چالش نمایش داده می‌شود"),Z()}async function it(){var s;I.value=!0;try{await Jt({rules_aparat_embed_code:((s=A.value.rules_aparat_embed_code)==null?void 0:s.trim())||null}),T.success("تنظیمات ذخیره شد")}catch(a){T.error(a.message||"خطا در ذخیره تنظیمات")}finally{I.value=!1}}async function rt(){try{const s=await Wt();A.value.rules_aparat_embed_code=(s==null?void 0:s.rules_aparat_embed_code)||""}catch(s){T.error(s.message||"خطا در بارگذاری تنظیمات")}}bt(rt);async function ct(){if(!U.value.title.trim()){T.error("عنوان چالش الزامی است");return}if(O.value>0){T.warning("لطفاً تا پایان آپلود فایل‌ها صبر کنید");return}try{const s={...U.value,sort_order:Number(U.value.sort_order)||0,completion_points:Number(U.value.completion_points)||50,steps:U.value.steps.map(a=>{var o,g;return{...a,kodoblu_voice_url:H((o=a.kodoblu_voice_url)==null?void 0:o.trim())||"",audio_section_url:H((g=a.audio_section_url)==null?void 0:g.trim())||"",step_images:(a.step_images||[]).map(y=>H(y)||y).filter(Boolean)}})};_.value&&d.value?(await Tt(d.value,s),T.success("چالش ویرایش شد")):(await Bt(s,null),T.success("چالش اضافه شد")),Ae(),Z()}catch(s){T.error(s.message||"خطا در ذخیره چالش")}}return(s,a)=>{const o=Ee,g=dt,y=ft,x=mt,R=pt,Y=Fe,X=_t;return k(),S("div",null,[r(X,null,{default:w(()=>[r(B(l),{activeKey:b.value,"onUpdate:activeKey":a[1]||(a[1]=t=>b.value=t)},{default:w(()=>[r(B(p),{key:"challenges",tab:"مدیریت چالش‌ها"},{default:w(()=>[e("div",Bs,[Ts,r(o,{type:"primary",onClick:Ye},{default:w(()=>[F("افزودن چالش")]),_:1})]),r(g,Le(ne,{ref:"table",onRegister:B(j)}),{action:w(({record:t})=>[e("div",Fs,[r(B(pe),{class:"cursor-pointer"},{title:w(()=>[e("span",null,N(t.show?"مخفی کردن":"نمایش"),1)]),default:w(()=>[r(G,{icon:t.show?"vuesax-linear:eye-slash":"vuesax-linear:eye",color:t.show?"#F59E0B":"#16A34A",onClick:c=>nt(t)},null,8,["icon","color","onClick"])]),_:2},1024),r(B(pe),{class:"cursor-pointer"},{title:w(()=>[Es]),default:w(()=>[r(G,{icon:"vuesax-linear:trash",color:"#DC2626",onClick:c=>lt(t)},null,8,["onClick"])]),_:2},1024),r(B(pe),{class:"cursor-pointer"},{title:w(()=>[Os]),default:w(()=>[r(G,{icon:"vuesax-linear:edit",color:"#1D4ED8",onClick:c=>ot(t)},null,8,["onClick"])]),_:2},1024)])]),_:1},16,["onRegister"])]),_:1}),r(B(p),{key:"progress",tab:"پیشرفت کاربران"},{default:w(()=>[Ns,r(g,Le(ie,{onRegister:B(ae)}),{action:w(({record:t})=>[r(B(pe),{class:"cursor-pointer"},{title:w(()=>[zs]),default:w(()=>[r(G,{icon:"vuesax-linear:eye",color:"#1D4ED8",onClick:c=>tt(t)},null,8,["onClick"])]),_:2},1024)]),_:1},16,["onRegister"])]),_:1}),r(B(p),{key:"settings",tab:"تنظیمات صفحه"},{default:w(()=>[e("div",js,[Hs,Ws,e("div",null,[Js,r(y,{value:A.value.rules_aparat_embed_code,"onUpdate:value":a[0]||(a[0]=t=>A.value.rules_aparat_embed_code=t),placeholder:"کد embed از آپارات",rows:4},null,8,["value"])]),r(o,{type:"primary",loading:I.value,onClick:it},{default:w(()=>[F(" ذخیره تنظیمات ")]),_:1},8,["loading"])])]),_:1})]),_:1},8,["activeKey"]),r(Y,{visible:P.value,"onUpdate:visible":a[8]||(a[8]=t=>P.value=t),title:_.value?"ویرایش چالش":"افزودن چالش",onOk:ct,onCancel:Ae,width:"85%",confirmLoading:O.value>0},{default:w(()=>[e("div",Vs,[O.value>0?(k(),S("div",Ks,[r(B(We),{size:"large"})])):L("",!0),e("div",null,[Xs,r(x,{value:U.value.title,"onUpdate:value":a[2]||(a[2]=t=>U.value.title=t),placeholder:"عنوان چالش"},null,8,["value"])]),e("div",Gs,[e("div",null,[Qs,r(x,{value:U.value.sort_order,"onUpdate:value":a[3]||(a[3]=t=>U.value.sort_order=t),type:"number",placeholder:"0"},null,8,["value"])]),e("div",null,[Ys,e("div",Zs,[r(R,{value:U.value.show,"onUpdate:value":a[4]||(a[4]=t=>U.value.show=t)},null,8,["value"]),e("span",ea,N(U.value.show?"نمایش":"مخفی"),1)])]),e("div",null,[ta,r(B(v),{value:U.value.access_type,"onUpdate:value":a[5]||(a[5]=t=>U.value.access_type=t),class:"w-full"},{default:w(()=>[r(B(u),{value:"free"},{default:w(()=>[F("رایگان (همه کاربران)")]),_:1}),r(B(u),{value:"subscription"},{default:w(()=>[F("اشتراکی (فقط اشتراک فعال)")]),_:1})]),_:1},8,["value"])]),e("div",null,[sa,r(x,{value:U.value.completion_points,"onUpdate:value":a[6]||(a[6]=t=>U.value.completion_points=t),type:"number",min:"0",placeholder:"50"},null,8,["value"])])]),e("div",aa,[e("div",null,[oa,r(B(me),{"file-list":V.value,"onUpdate:fileList":a[7]||(a[7]=t=>V.value=t),"before-upload":Ce,"custom-request":st,accept:"image/*","max-count":1,"list-type":"picture-card"},{default:w(()=>[V.value.length<1?(k(),S("div",la,[r(G,{icon:"vuesax-linear:image",class:"text-2xl mb-2"}),na])):L("",!0)]),_:1},8,["file-list"]),W.value>0&&W.value<100?(k(),S("div",ia,[e("div",ra,[e("div",{class:"h-2 bg-blue-500 transition-all",style:ye(te(W.value))},null,4)])])):L("",!0)])]),ca,e("div",ua,[_a,e("div",da,[(k(!0),S(we,null,ke(U.value.steps,(t,c)=>(k(),S("div",{key:c,class:ze(["step-form-box",{"step-form-box--final":t.is_final_step}])},[e("div",pa,[e("div",ma,[F(" مرحله "+N(c+1)+" ",1),t.is_final_step?(k(),S("span",fa,"(ماموریت پایانی)")):L("",!0)]),e("div",va,[r(R,{value:t.is_final_step,"onUpdate:value":i=>t.is_final_step=i},null,8,["value","onUpdate:value"]),ha])]),e("div",null,[ga,r(y,{value:t.description,"onUpdate:value":i=>t.description=i,placeholder:"توضیحات مرحله",rows:2},null,8,["value","onUpdate:value"])]),e("div",ba,[e("div",null,[ya,r(x,{value:t.duration_minutes,"onUpdate:value":i=>t.duration_minutes=i,type:"number",min:"1",placeholder:"5"},null,8,["value","onUpdate:value"])])]),e("div",null,[xa,r(y,{value:t.aparat_embed_code,"onUpdate:value":i=>t.aparat_embed_code=i,placeholder:"کد embed",rows:2},null,8,["value","onUpdate:value"])]),e("div",wa,[ka,r(B(me),{"file-list":ge(c,"kodoblu_voice_url"),"before-upload":Ie,"custom-request":i=>Pe(i,c,"kodoblu_voice_url"),accept:"audio/*","max-count":1,"show-upload-list":!1,onRemove:()=>_e(c,"kodoblu_voice_url")},{default:w(()=>[r(o,{type:"dashed"},{default:w(()=>[r(G,{icon:"vuesax-linear:voice-cricle",class:"ml-1"}),F(" آپلود وویس کدوبلو ")]),_:1})]),_:2},1032,["file-list","custom-request","onRemove"]),se(c,"kodoblu_voice_url")>0&&se(c,"kodoblu_voice_url")<100?(k(),S("div",qa,[e("div",Sa,[e("div",{class:"h-2 bg-blue-500 transition-all",style:ye(te(se(c,"kodoblu_voice_url")))},null,4)])])):L("",!0),qe(c,"kodoblu_voice_url",t.kodoblu_voice_url)?(k(),S("div",$a,[e("div",Ua,[Aa,r(o,{type:"text",danger:"",size:"small",onClick:i=>_e(c,"kodoblu_voice_url")},{default:w(()=>[F(" حذف فایل ")]),_:2},1032,["onClick"])]),(k(),S("audio",{key:oe(c,"kodoblu_voice_url",t.kodoblu_voice_url),src:oe(c,"kodoblu_voice_url",t.kodoblu_voice_url),controls:"",preload:"metadata",class:"w-full"},null,8,Ca))])):L("",!0),r(x,{value:t.kodoblu_voice_url,"onUpdate:value":i=>t.kodoblu_voice_url=i,placeholder:"مسیر وویس کدوبلو (پس از آپلود)"},null,8,["value","onUpdate:value"])]),e("div",null,[Ia,r(B(me),{"file-list":be(c),"list-type":"picture-card","before-upload":Ce,"custom-request":i=>at(i,c),accept:"image/*",onRemove:i=>Qe(c,i)},{default:w(()=>[be(c).length<8?(k(),S("div",Pa,[r(G,{icon:"vuesax-linear:image",class:"text-xl mb-1"}),Ra])):L("",!0)]),_:2},1032,["file-list","custom-request","onRemove"])]),La,e("div",Ma,[Da,e("div",Ba,[e("label",Ta,[r(R,{value:t.enable_feedback_text,"onUpdate:value":i=>t.enable_feedback_text=i},null,8,["value","onUpdate:value"]),Fa]),e("label",Ea,[r(R,{value:t.require_feedback_text,"onUpdate:value":i=>t.require_feedback_text=i,disabled:!t.enable_feedback_text},null,8,["value","onUpdate:value","disabled"]),Oa]),e("label",Na,[r(R,{value:t.enable_photo_upload,"onUpdate:value":i=>t.enable_photo_upload=i},null,8,["value","onUpdate:value"]),za]),e("label",ja,[r(R,{value:t.require_photo_upload,"onUpdate:value":i=>t.require_photo_upload=i,disabled:!t.enable_photo_upload},null,8,["value","onUpdate:value","disabled"]),Ha]),e("label",Wa,[r(R,{value:t.enable_voice_upload,"onUpdate:value":i=>t.enable_voice_upload=i},null,8,["value","onUpdate:value"]),Ja]),e("label",Va,[r(R,{value:t.require_voice_upload,"onUpdate:value":i=>t.require_voice_upload=i,disabled:!t.enable_voice_upload},null,8,["value","onUpdate:value","disabled"]),Ka]),e("label",Xa,[r(R,{value:t.enable_mcq,"onUpdate:value":i=>t.enable_mcq=i},null,8,["value","onUpdate:value"]),Ga]),e("label",Qa,[r(R,{value:t.require_mcq,"onUpdate:value":i=>t.require_mcq=i,disabled:!t.enable_mcq},null,8,["value","onUpdate:value","disabled"]),Ya]),e("label",Za,[r(R,{value:t.enable_audio_section,"onUpdate:value":i=>t.enable_audio_section=i},null,8,["value","onUpdate:value"]),eo])]),t.enable_feedback_text?(k(),S("div",to,[e("div",null,[so,r(x,{value:t.feedback_text_title,"onUpdate:value":i=>t.feedback_text_title=i,placeholder:"مثلاً: بازخورد این مرحله"},null,8,["value","onUpdate:value"])]),e("div",null,[ao,r(x,{value:t.feedback_text_placeholder,"onUpdate:value":i=>t.feedback_text_placeholder=i,placeholder:"مثلاً: بازخورد خود را بنویس..."},null,8,["value","onUpdate:value"])])])):L("",!0),t.enable_mcq?(k(),S("div",oo,[r(x,{value:t.mcq_question,"onUpdate:value":i=>t.mcq_question=i,placeholder:"متن سوال"},null,8,["value","onUpdate:value"]),(k(!0),S(we,null,ke(t.mcq_options,(i,$)=>(k(),S("div",{key:$,class:"flex gap-2 items-center"},[r(x,{value:t.mcq_options[$],"onUpdate:value":z=>t.mcq_options[$]=z,placeholder:`گزینه ${$+1}`,class:"flex-1"},null,8,["value","onUpdate:value","placeholder"]),e("input",{type:"radio",name:`mcq-${c}`,checked:t.mcq_correct_index===$,onChange:z=>t.mcq_correct_index=$},null,40,lo),no,t.mcq_options.length>2?(k(),Ne(o,{key:0,danger:"",onClick:z=>t.mcq_options.splice($,1)},{default:w(()=>[F("×")]),_:2},1032,["onClick"])):L("",!0)]))),128)),r(o,{type:"dashed",onClick:i=>t.mcq_options.push("")},{default:w(()=>[F("+ گزینه")]),_:2},1032,["onClick"])])):L("",!0),t.enable_audio_section?(k(),S("div",io,[ro,r(B(me),{"file-list":ge(c,"audio_section_url"),"before-upload":Ie,"custom-request":i=>Pe(i,c,"audio_section_url"),accept:"audio/*","max-count":1,"show-upload-list":!1,onRemove:()=>_e(c,"audio_section_url")},{default:w(()=>[r(o,{type:"dashed"},{default:w(()=>[r(G,{icon:"vuesax-linear:voice-cricle",class:"ml-1"}),F(" آپلود فایل صوتی ")]),_:1})]),_:2},1032,["file-list","custom-request","onRemove"]),se(c,"audio_section_url")>0&&se(c,"audio_section_url")<100?(k(),S("div",co,[e("div",uo,[e("div",{class:"h-2 bg-blue-500 transition-all",style:ye(te(se(c,"audio_section_url")))},null,4)])])):L("",!0),qe(c,"audio_section_url",t.audio_section_url)?(k(),S("div",_o,[e("div",po,[mo,r(o,{type:"text",danger:"",size:"small",onClick:i=>_e(c,"audio_section_url")},{default:w(()=>[F(" حذف فایل ")]),_:2},1032,["onClick"])]),(k(),S("audio",{key:oe(c,"audio_section_url",t.audio_section_url),src:oe(c,"audio_section_url",t.audio_section_url),controls:"",preload:"metadata",class:"w-full"},null,8,fo))])):L("",!0),r(x,{value:t.audio_section_url,"onUpdate:value":i=>t.audio_section_url=i,placeholder:"مسیر فایل صوتی (پس از آپلود)"},null,8,["value","onUpdate:value"])])):L("",!0)]),e("div",vo,[r(o,{type:"text",danger:"",onClick:i=>et(c),disabled:U.value.steps.length<=1},{default:w(()=>[r(G,{icon:"vuesax-linear:trash",color:"#DC2626"}),ho]),_:2},1032,["onClick","disabled"])])],2))),128)),r(o,{type:"dashed",onClick:Ze,class:"w-full"},{default:w(()=>[go]),_:1})])])])]),_:1},8,["visible","title","confirmLoading"]),r(Ds,{visible:q.value,"onUpdate:visible":a[9]||(a[9]=t=>q.value=t),"user-challenge-id":h.value},null,8,["visible","user-challenge-id"])]),_:1})])}}});const ol=Pt(bo,[["__scopeId","data-v-acc248f1"]]);export{ol as default};