Files
machartaa_admin_dist/dist/assets/index-80fbdb2a.js
T
2026-10-20 16:52:05 +03:30

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