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

2 lines
30 KiB
JavaScript

import{bx as De,aH as Se,G as Q,d as je,g as Y,E as ce,v as Ee,_ as de,O as me,o as j,c as W,b as D,w as q,a as o,e as oe,H as fe,j as A,t as ee,i as Fe,k as X,y as ve,D as z,I as he,bj as We}from"./index-20d5dab1.js";import{_ as Ze}from"./BasicMainCard-9c458ce7.js";import{_ as Je}from"./BasicModal.vue_vue_type_style_index_0_lang-5bce5515.js";import{_ as Ge}from"./BasicInput.vue_vue_type_style_index_0_lang-cee0843c.js";import{u as _e,_ as Xe}from"./useBaseTable-3b2d0853.js";import{_ as Ke}from"./button.vue_vue_type_style_index_0_lang-95946c23.js";import{d as Z}from"./updateLocale-6ea9ed84.js";import{I as K}from"./Icon-06d3f751.js";import{_ as pe}from"./BasicSelect.vue_vue_type_style_index_0_lang-60eaf8ef.js";import{t as ge}from"./useDataTime-c147e135.js";import{v as Qe}from"./viewersColumns-e921e67a.js";import{g as ae}from"./convert-2ad76038.js";import{g as be}from"./index-66d8608d.js";import{M as ye}from"./index-4f6342fa.js";import{S as ke}from"./index-38a2f111.js";import{D as et}from"./dayjs-cc603dae.js";import{T as te}from"./isSymbol-f04930e1.js";import{U as we}from"./index-44ec8c49.js";import"./index-857151a7.js";import"./index-4284a867.js";import"./_plugin-vue_export-helper-26f60d29.js";import"./useState-3cc4a0be.js";import"./vnode-18b1f518.js";import"./useRefs-03151dab.js";import"./_flatRest-12208321.js";import"./index-0d016563.js";import"./Col-6ec89065.js";import"./styleChecker-6ae1ce26.js";import"./isPlainObject-769b8c03.js";import"./usePrice-bc935b83.js";import"./index-f6eb678e.js";import"./FormItemContext-28b30746.js";import"./lodash-28ee46da.js";import"./css-0bca533a.js";import"./DialogWrap-a4cda90f.js";import"./pickAttrs-93039156.js";import"./index-f75dc027.js";import"./toArray-fb96c8b9.js";import"./index-84af5005.js";var Me={exports:{}};(function(d,i){(function(y,x){d.exports=x()})(Se,function(){var y="minute",x=/[+-]\d\d(?::?\d\d)?/g,U=/([+-]|\d\d)/g;return function(V,k,r){var m=k.prototype;r.utc=function(e){var t={date:e,utc:!0,args:arguments};return new k(t)},m.utc=function(e){var t=r(this.toDate(),{locale:this.$L,utc:!0});return e?t.add(this.utcOffset(),y):t},m.local=function(){return r(this.toDate(),{locale:this.$L,utc:!1})};var u=m.parse;m.parse=function(e){e.utc&&(this.$u=!0),this.$utils().u(e.$offset)||(this.$offset=e.$offset),u.call(this,e)};var L=m.init;m.init=function(){if(this.$u){var e=this.$d;this.$y=e.getUTCFullYear(),this.$M=e.getUTCMonth(),this.$D=e.getUTCDate(),this.$W=e.getUTCDay(),this.$H=e.getUTCHours(),this.$m=e.getUTCMinutes(),this.$s=e.getUTCSeconds(),this.$ms=e.getUTCMilliseconds()}else L.call(this)};var h=m.utcOffset;m.utcOffset=function(e,t){var M=this.$utils().u;if(M(e))return this.$u?0:M(this.$offset)?h.call(this):this.$offset;if(typeof e=="string"&&(e=function(B){B===void 0&&(B="");var E=B.match(x);if(!E)return null;var R=(""+E[0]).match(U)||["-",0,0],g=R[0],P=60*+R[1]+ +R[2];return P===0?0:g==="+"?P:-P}(e),e===null))return this;var c=Math.abs(e)<=16?60*e:e,v=this;if(t)return v.$offset=c,v.$u=e===0,v;if(e!==0){var O=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(v=this.local().add(c+O,y)).$offset=c,v.$x.$localOffset=O}else v=this.utc();return v};var f=m.format;m.format=function(e){var t=e||(this.$u?"YYYY-MM-DDTHH:mm:ss[Z]":"");return f.call(this,t)},m.valueOf=function(){var e=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*e},m.isUTC=function(){return!!this.$u},m.toISOString=function(){return this.toDate().toISOString()},m.toString=function(){return this.toDate().toUTCString()};var S=m.toDate;m.toDate=function(e){return e==="s"&&this.$offset?r(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate():S.call(this)};var T=m.diff;m.diff=function(e,t,M){if(e&&this.$u===e.$u)return T.call(this,e,t,M);var c=this.local(),v=r(e).local();return T.call(c,v,t,M)}}})})(Me);var tt=Me.exports;const st=De(tt);var Te={exports:{}};(function(d,i){(function(y,x){d.exports=x()})(Se,function(){var y={year:0,month:1,day:2,hour:3,minute:4,second:5},x={};return function(U,V,k){var r,m=function(f,S,T){T===void 0&&(T={});var e=new Date(f),t=function(M,c){c===void 0&&(c={});var v=c.timeZoneName||"short",O=M+"|"+v,B=x[O];return B||(B=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:M,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:v}),x[O]=B),B}(S,T);return t.formatToParts(e)},u=function(f,S){for(var T=m(f,S),e=[],t=0;t<T.length;t+=1){var M=T[t],c=M.type,v=M.value,O=y[c];O>=0&&(e[O]=parseInt(v,10))}var B=e[3],E=B===24?0:B,R=e[0]+"-"+e[1]+"-"+e[2]+" "+E+":"+e[4]+":"+e[5]+":000",g=+f;return(k.utc(R).valueOf()-(g-=g%1e3))/6e4},L=V.prototype;L.tz=function(f,S){f===void 0&&(f=r);var T=this.utcOffset(),e=this.toDate(),t=e.toLocaleString("en-US",{timeZone:f}),M=Math.round((e-new Date(t))/1e3/60),c=k(t).$set("millisecond",this.$ms).utcOffset(15*-Math.round(e.getTimezoneOffset()/15)-M,!0);if(S){var v=c.utcOffset();c=c.add(T-v,"minute")}return c.$x.$timezone=f,c},L.offsetName=function(f){var S=this.$x.$timezone||k.tz.guess(),T=m(this.valueOf(),S,{timeZoneName:f}).find(function(e){return e.type.toLowerCase()==="timezonename"});return T&&T.value};var h=L.startOf;L.startOf=function(f,S){if(!this.$x||!this.$x.$timezone)return h.call(this,f,S);var T=k(this.format("YYYY-MM-DD HH:mm:ss:SSS"));return h.call(T,f,S).tz(this.$x.$timezone,!0)},k.tz=function(f,S,T){var e=T&&S,t=T||S||r,M=u(+k(),t);if(typeof f!="string")return k(f).tz(t);var c=function(E,R,g){var P=E-60*R*1e3,C=u(P,g);if(R===C)return[P,R];var J=u(P-=60*(C-R)*1e3,g);return C===J?[P,C]:[E-60*Math.min(C,J)*1e3,Math.max(C,J)]}(k.utc(f,e).valueOf(),M,t),v=c[0],O=c[1],B=k(v).utcOffset(O);return B.$x.$timezone=t,B},k.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},k.tz.setDefault=function(f){r=f}}})})(Te);var at=Te.exports;const ot=De(at),it=[{title:"ردیف",dataIndex:"id",key:"id",filterable:!1,width:70,align:"center",customRender:d=>d.record.index+1},{title:"عنوان",dataIndex:"title",key:"title"},{title:"زیرعنوان",dataIndex:"sub_title",key:"sub_title"},{title:"کتاب مرتبط",dataIndex:"book_id",key:"book_id",align:"center",customRender:d=>{const i=d.record.book_title,y=d.record.book_id;return i||(y?`کتاب #${y}`:"-")}},{title:"زمان",dataIndex:"time",key:"time",customRender:d=>{const i=d.record.time||{minutes:0,seconds:0},y=Number(i.minutes||0),x=Number(i.seconds||0),U=V=>String(V).padStart(2,"0");return`${U(y)}:${U(x)}`}},{title:"صوت",dataIndex:"src",key:"src",customRender:d=>d.record.src?"دارد":"-"},{title:"زمان ایجاد",dataIndex:"created_at",key:"created_at",customRender:d=>ge(d.record.created_at)},{title:"زمان انتشار",dataIndex:"time_show",key:"time_show",align:"center",width:180,customRender:d=>{const i=d.record.time_show;return i?ge(i,"jYYYY/jMM/jDD HH:mm:ss"):"-"}},{title:"وضعیت نمایش",dataIndex:"show",key:"show",align:"center",width:120,customRender:d=>d.record.show===!1?"مخفی":"نمایش"},{title:"عملیات",dataIndex:"action",key:"action",slot:"action",filterable:!1,align:"center"}];async function nt(d){const{data:i,error:y}=await Q.from("storys").insert([{title:d.title,sub_title:d.sub_title,cover:d.cover,src:d.src,time:d.time,book_id:d.book_id||null,time_show:d.time_show||null}]).select();if(y)throw y;return i}async function xe(d,i){const{data:y,error:x}=await Q.from("storys").update({title:i.title,sub_title:i.sub_title,cover:i.cover,src:i.src,time:i.time,book_id:i.book_id||null,time_show:i.time_show||null}).eq("id",d).select();if(x)throw x;return y}async function lt(d,i){const{data:y,error:x}=await Q.from("storys").update({show:i}).eq("id",d).select();if(x)throw x;return y}async function rt(d){const{error:i}=await Q.from("storys").delete().eq("id",d);if(i)throw i}async function ut(d){try{const{limit:i,filters:y,page:x,sort:U,order:V,search:k}=d;let r=Q.from("storys").select("*, books!book_id(id, title, sub_title, cover)",{count:"exact"});if(k&&k.trim()){const e=`%${k.trim()}%`;r=r.or(`title.ilike.${e},sub_title.ilike.${e}`)}if(y&&Array.isArray(y)&&y.forEach(e=>{const{field:t,op:M,value:c,hidden:v}=e;if(!v)switch(M){case"eq":r=r.eq(t,c);break;case"neq":r=r.neq(t,c);break;case"gt":r=r.gt(t,c);break;case"lt":r=r.lt(t,c);break;case"gte":r=r.gte(t,c);break;case"lte":r=r.lte(t,c);break;case"has":r=r.ilike(t,`%${c}%`);break;case"like":r=r.like(t,`%${c}%`);break}}),U&&U.key){const e=U.order==="asc";r=r.order(U.key,{ascending:e})}else if(V){const e=!V.startsWith("-"),t=V.replace(/^[-+]/,"");r=r.order(t,{ascending:e})}else r=r.order("id",{ascending:!1});if(i&&x){const e=(x-1)*i,t=e+i-1;r=r.range(e,t)}const{data:m,error:u,count:L}=await r;if(u)return console.error("[getStorysTable] Supabase query error:",u),{query:{...d,limit:i||10,page:x||1,total:0},rows:[]};if(!m||m.length===0)return{query:{...d,limit:i||10,page:x||1,total:0},rows:[]};const h=x||1,f=i||20,S=(h-1)*f,T=m.map((e,t)=>{const c=(Array.isArray(e.books)?e.books[0]:e.books)||{};return{...e,id:e.id,title:e.title??"",sub_title:e.sub_title??"",cover:e.cover??null,src:e.src??null,time:e.time??{minutes:0,seconds:0},book_id:e.book_id??null,book_title:c.title||null,book_sub_title:c.sub_title||null,book_cover:c.cover||null,created_at:e.created_at??"",time_show:e.time_show??null,show:e.show!==void 0?e.show:!0,index:S+t}});return{query:{...d,limit:f,page:h,total:L||0},rows:T}}catch(i){throw console.error("[getStorysTable] Error:",i),i}}async function ct(d){try{const{data:i,error:y}=await Q.from("user_views").select("*, users!user_id(id, first_name, last_name, phone, name, email, username)").eq("item_id",d).order("viewed_at",{ascending:!1});if(y)throw console.error("[getStoryViews] Error fetching views:",y),y;const x=(i==null?void 0:i.length)||0,V=new Set((i==null?void 0:i.map(m=>m.user_id).filter(Boolean))||[]).size,k=new Map;(i||[]).forEach(m=>{const u=m.user_id;if(u&&!k.has(u)){const h=(Array.isArray(m.users)?m.users[0]:m.users)||{};let f="نامشخص";h&&Object.keys(h).length>0&&(h.name?f=h.name:h.first_name||h.last_name?f=`${h.first_name||""} ${h.last_name||""}`.trim():h.phone?f=h.phone:h.email?f=h.email:h.username&&(f=h.username)),k.set(u,{id:m.id,user_id:m.user_id,user_name:f,user_phone:(h==null?void 0:h.phone)||"",user_email:(h==null?void 0:h.email)||"",viewed_at:m.viewed_at||""})}});const r=Array.from(k.values());return{total_views:x,unique_viewers:V,viewers:r}}catch(i){throw console.error("[getStoryViews] Error:",i),i}}async function $e(d,i){const{limit:y=20,page:x=1,search:U,filters:V,sort:k,order:r}=d,m=["id","user_id","item_id","viewed_at"];let u=Q.from("user_views").select("*, users!user_id(id, first_name, last_name, phone, name, email, username)",{count:"exact"}).eq("item_id",i);if(U!=null&&U.trim()){const t=`%${U.trim()}%`;u=u.or(`users.name.ilike.${t},users.phone.ilike.${t},users.first_name.ilike.${t},users.last_name.ilike.${t},users.email.ilike.${t}`)}if(V!=null&&V.length&&V.forEach(t=>{if(!(!t.field||t.hidden)){if(t.field==="user_name"||t.field==="user_phone"){const M=`%${t.value}%`;if(["eq","has","like"].includes(t.op)){const c=t.field==="user_phone"?"users.phone":"users.name";u=u.ilike(c,M)}return}if(m.includes(t.field))switch(t.op){case"eq":u=u.eq(t.field,t.value);break;case"neq":u=u.neq(t.field,t.value);break;case"gt":u=u.gt(t.field,t.value);break;case"lt":u=u.lt(t.field,t.value);break;case"gte":u=u.gte(t.field,t.value);break;case"lte":u=u.lte(t.field,t.value);break;case"has":case"like":u=u.ilike(t.field,`%${t.value}%`);break}}}),k!=null&&k.key&&m.includes(k.key))u=u.order(k.key,{ascending:k.order==="asc"});else if(r){const t=r.replace(/^[-+]/,"");m.includes(t)&&(u=u.order(t,{ascending:!r.startsWith("-")}))}else u=u.order("viewed_at",{ascending:!1});const L=(x-1)*y;u=u.range(L,L+y-1);const{data:h,error:f,count:S}=await u;if(f)return console.error("[getStoryViewersTable] Supabase query error:",f),{query:{...d,limit:y,page:x,total:0},rows:[]};const T=(x-1)*y,e=(h||[]).map((t,M)=>{const v=(Array.isArray(t.users)?t.users[0]:t.users)||{};let O="نامشخص";return v.name?O=v.name:v.first_name||v.last_name?O=`${v.first_name||""} ${v.last_name||""}`.trim():v.phone?O=v.phone:v.email?O=v.email:v.username&&(O=v.username),{...t,id:t.id,user_id:t.user_id,user_name:O,user_phone:(v==null?void 0:v.phone)||"",user_email:(v==null?void 0:v.email)||"",viewed_at:t.viewed_at??"",index:T+M}});return{query:{...d,limit:y,page:x,total:S??0},rows:e}}const dt={class:"flex justify-between items-center mb-4"},mt=o("h2",null,"قصه ها",-1),ft={class:"gap-2 flex justify-center"},vt=o("span",null,"بازدیدها",-1),ht=o("span",null,"حذف",-1),_t=o("span",null,"ویرایش",-1),pt=o("span",null,"مرتبط کردن کتاب",-1),gt={class:"space-y-4 relative"},bt={key:0,class:"absolute inset-0 bg-white/60 z-10 flex items-center justify-center"},yt=o("div",{class:"mb-1 text-sm text-gray-600"},"عنوان",-1),kt=o("div",{class:"mb-1 text-sm text-gray-600"},"زیرعنوان",-1),wt=o("div",{class:"mb-1 text-sm text-gray-600"},"کتاب مرتبط",-1),xt=o("div",{class:"mb-1 text-sm text-gray-600"},[oe(" زمان انتشار "),o("span",{class:"text-xs text-gray-500"},"(در صورت خالی گذاشتن این فیلد زمان حال ثبت می شود)")],-1),$t={class:"flex gap-4"},Dt={class:"flex-1 flex justify-center gap-4"},St=o("div",{class:"mb-1 text-sm text-gray-600"},"آپلود تصویر کاور",-1),Mt={key:0},Tt=o("div",null,"آپلود کاور",-1),Ct={key:0,class:"mt-1"},Ut={class:"h-2 rounded bg-gray-200 overflow-hidden"},Ot={class:"text-xs text-gray-700 font-semibold text-center mt-1"},Yt=o("div",{class:"mb-1 text-sm text-gray-600"},"آپلود صوت (src)",-1),It={key:0},qt=o("div",null,"آپلود صوت",-1),Lt={key:0,class:"text-xs text-gray-500 mt-1 text-center"},zt={class:"h-2 rounded bg-gray-200 overflow-hidden"},Nt={class:"text-xs text-gray-700 font-semibold text-center mt-1"},Vt={class:"flex-1"},Ht=o("div",{class:"mb-1 text-sm text-gray-600"},[oe("زمان "),o("span",{class:"text-xs text-gray-500"},"(بعد از آپلود صوت قصه زمان آن به صورت خودکار وارد می شود)")],-1),Bt={class:"space-y-2"},Pt=o("div",{class:"mb-1 text-xs text-gray-500"},"دقیقه",-1),Rt=o("div",{class:"mb-1 text-xs text-gray-500"},"ثانیه",-1),At={class:"space-y-4"},jt=o("div",{class:"mb-1 text-sm text-gray-600"},"کتاب مرتبط",-1),Et={class:"flex justify-end"},Ft={key:0,class:"space-y-4"},Wt={class:"grid grid-cols-2 gap-4"},Zt={class:"bg-blue-50 p-4 rounded-lg"},Jt=o("div",{class:"text-sm text-gray-600 mb-1"},"تعداد بازدید",-1),Gt={class:"text-2xl font-bold text-blue-600"},Xt={class:"bg-purple-50 p-4 rounded-lg"},Kt=o("div",{class:"text-sm text-gray-600 mb-1"},"تعداد بازدیدکننده",-1),Qt={class:"text-2xl font-bold text-purple-600"},es=o("div",{class:"text-sm font-semibold text-gray-700 mb-2"},"لیست بازدیدکننده‌ها",-1),ts={key:0},ss={key:1,class:"text-center py-8 text-gray-500"},as={key:1,class:"flex justify-center items-center py-8"},As=je({__name:"index",setup(d){Z.extend(st),Z.extend(ot);const i=et,y={authorization:`Bearer ${be()||localStorage.getItem("tamin_token")||""}`},[x,U]=_e(),V=Y({columns:it,api:ut,defaultPageLimit:20}),k=Y(!1),r=Y(!1),m=Y(null),u=Y([]),L=Y([]),h=Y(0),f=Y(0),S=Y(0),T=Y([]),e=Y(!1),t=Y(null),M=Y(!1),c=Y(null),v=Y(!1),O=Y(null),[B,E]=_e(),R=Y({columns:Qe,api:s=>$e(s,O.value),defaultPageLimit:20}),g=Y({title:"",sub_title:"",cover:null,src:null,time:{minutes:0,seconds:0},book_id:null,time_show:null}),P=Y({book_id:null}),C=Y(null),J=Y(!1);let se=!1;ce(()=>g.value.time_show,s=>{if(se){se=!1;return}if(s)try{const a=Z(s);(!C.value||!a.isSame(C.value))&&(C.value=a)}catch{C.value=null}else C.value&&(C.value=null)},{immediate:!0});function Ce(s,a){s?C.value=s:C.value=null}function Ue(s){if(s){se=!0;const n=s.calendar("gregory").locale("en").subtract(3,"hour").subtract(30,"minute").format("YYYY-MM-DD HH:mm:ss");g.value.time_show=n,C.value=s}else se=!0,g.value.time_show=null,C.value=null;J.value=!1}function Oe(){u.value=[],L.value=[],r.value=!1,m.value=null,g.value={title:"",sub_title:"",cover:null,src:null,time:{minutes:0,seconds:0},book_id:null,time_show:null},C.value=null,k.value=!0}function ie(){k.value=!1}function Ye(s){return s.type.startsWith("audio/")?s.size/1024/1024<61?!0:(z.error("حجم فایل باید کمتر از 60MB باشد"),!1):(z.error("فقط فایل‌های صوتی مجاز است"),!1)}function Ie(s){const a=new Audio,_=URL.createObjectURL(s);a.addEventListener("loadedmetadata",()=>{const n=a.duration;if(n&&!isNaN(n)&&isFinite(n)){const $=Math.floor(n/60),H=Math.floor(n%60);g.value.time.minutes=$,g.value.time.seconds=H,z.info(`مدت زمان فایل صوتی: ${$} دقیقه و ${H} ثانیه`)}URL.revokeObjectURL(_)}),a.addEventListener("error",()=>{URL.revokeObjectURL(_),console.warn("Could not determine audio duration from file")}),a.src=_}async function qe(s){const{file:a,onSuccess:_,onError:n,onProgress:$}=s;Ie(a);const H=new FormData;H.append("file",a);const F=`${he}/upload/machartaa-audio`;f.value=0,h.value++,await new Promise((l,I)=>{const p=new XMLHttpRequest;p.open("POST",F),p.setRequestHeader("Authorization",`Bearer ${localStorage.getItem("tamin_token")||""}`),p.timeout=15*60*1e3,p.upload.onprogress=w=>{if(w.lengthComputable){const b=Math.round(w.loaded/w.total*100);f.value=b,$==null||$({percent:b})}},p.onload=()=>{if(f.value=100,p.status>=200&&p.status<300)try{const w=JSON.parse(p.responseText||"{}"),b=w.full_src||w.url||w.src||w.path||w.data&&(w.data.full_src||w.data.url||w.data.src||w.data.path)||"";let N=b;b!=null&&b.startsWith("http")&&(N=b.replace(/^https?:\/\/[^\/]+/,""));const G=ae(N);g.value.src=N,u.value=G?[{uid:`${Date.now()}`,name:"audio.mp3",status:"done",url:G,response:{path:N}}]:[],_==null||_(w,p),z.success("صوت با موفقیت آپلود شد!"),l()}catch(w){n==null||n(w,p),I(w)}else if(p.status===413){const w=new Error("حجم فایل خیلی بزرگ است. لطفاً فایل کوچکتری انتخاب کنید.");z.error("حجم فایل خیلی بزرگ است. لطفاً فایل کوچکتری انتخاب کنید."),n==null||n(w,p),I(w)}else{let w="خطا در آپلود فایل";try{const N=JSON.parse(p.responseText||"{}");N.message?w=N.message:N.error&&(w=N.error)}catch{}const b=new Error(w);z.error(w),n==null||n(b,p),I(b)}},p.onerror=()=>{const w=new Error("خطا در آپلود صوت");n==null||n(w,p),I(w)},p.ontimeout=()=>{const w=new Error("آپلود timeout شد - فایل خیلی بزرگ است");n==null||n(w,p),I(w)},p.onloadend=()=>{h.value=Math.max(0,h.value-1),f.value=0},p.send(H)})}function ne(s){return{width:`${Math.max(0,Math.min(100,s))}%`}}function Le(s){return s.type.startsWith("image/")?s.size/1024/1024<5?!0:(z.error("حجم تصویر باید کمتر از 5MB باشد"),!1):(z.error("فقط فایل‌های تصویری مجاز است"),!1)}async function ze(s){const{file:a,onSuccess:_,onError:n,onProgress:$}=s,H=new FormData;H.append("file",a);const F=`${he}/upload/machartaa-img`;S.value=0,h.value++,await new Promise((l,I)=>{const p=new XMLHttpRequest;p.open("POST",F);const w=be()||localStorage.getItem("tamin_token")||"";p.setRequestHeader("Authorization",`Bearer ${w}`),p.upload.onprogress=b=>{if(b.lengthComputable){const N=Math.round(b.loaded/b.total*100);S.value=N,$==null||$({percent:N})}},p.onload=()=>{if(S.value=100,p.status>=200&&p.status<300)try{const b=JSON.parse(p.responseText||"{}"),N=b.full_src||b.url||b.src||b.path||b.data&&(b.data.full_src||b.data.url||b.data.src||b.data.path)||"";let G=N;N!=null&&N.startsWith("http")&&(G=N.replace(/^https?:\/\/[^\/]+/,""));const ue=ae(G);g.value.cover=G,L.value=ue?[{uid:`${Date.now()}`,name:"cover.jpg",status:"done",url:ue,response:{path:G}}]:[],_==null||_(b,p),z.success("کاور با موفقیت آپلود شد!"),l()}catch(b){n==null||n(b,p),I(b)}else{const b=new Error("خطا در آپلود تصویر");n==null||n(b,p),I(b)}},p.onerror=()=>{const b=new Error("خطا در آپلود کاور");n==null||n(b,p),I(b)},p.onloadend=()=>{h.value=Math.max(0,h.value-1),S.value=0},p.send(H)})}async function Ne(){var _,n,$,H,F,l;if(!((_=g.value.title)!=null&&_.trim()))return;if(h.value>0){z.warning("لطفاً تا پایان آپلود صبر کنید");return}let s=g.value.time_show;if(!s||s.trim()==="")s=Z().calendar("gregory").locale("en").subtract(3,"hour").subtract(30,"minute").format("YYYY-MM-DD HH:mm:ss");else try{Z(s).isValid()||(s=Z(s).locale("fa").calendar("gregory").locale("en").subtract(3,"hour").subtract(30,"minute").format("YYYY-MM-DD HH:mm:ss"))}catch{s=Z().calendar("gregory").locale("en").subtract(3,"hour").subtract(30,"minute").format("YYYY-MM-DD HH:mm:ss")}const a={title:g.value.title.trim(),sub_title:((n=g.value.sub_title)==null?void 0:n.trim())||"",cover:(($=g.value.cover)==null?void 0:$.trim())||null,src:((H=g.value.src)==null?void 0:H.trim())||null,time:{minutes:Number((F=g.value.time)==null?void 0:F.minutes)||0,seconds:Number((l=g.value.time)==null?void 0:l.seconds)||0},book_id:g.value.book_id||null,time_show:s};try{r.value&&m.value?(await xe(m.value,a),z.success("قصه با موفقیت ویرایش شد")):(await nt(a),z.success("قصه با موفقیت افزوده شد")),ie(),await U()}catch(I){console.error("Error saving story:",I),z.error("خطا در ذخیره قصه: "+(I.message||"خطای ناشناخته"))}}function Ve(s){r.value=!0,m.value=s.id;let a=s.cover||null;a&&a.startsWith("http")&&(a=a.replace(/^https?:\/\/[^\/]+/,""));let _=s.src||null;_&&_.startsWith("http")&&(_=_.replace(/^https?:\/\/[^\/]+/,"")),g.value={title:s.title||"",sub_title:s.sub_title||"",cover:a,src:_,time:s.time&&typeof s.time=="object"?{minutes:Number(s.time.minutes)||0,seconds:Number(s.time.seconds)||0}:{minutes:0,seconds:0},book_id:s.book_id||null,time_show:s.time_show||null},s.time_show?C.value=Z(s.time_show):C.value=null;const n=_?ae(_):null,$=a?ae(a):null;u.value=n?[{uid:"-1",name:"audio.mp3",status:"done",url:n,response:{path:_}}]:[],L.value=$?[{uid:"-2",name:"cover.jpg",status:"done",url:$,response:{path:a}}]:[],k.value=!0}function He(s){t.value=s.id,P.value={book_id:s.book_id||null},e.value=!0}function le(){e.value=!1,t.value=null,P.value={book_id:null}}async function Be(){if(t.value)try{const{supabase:s}=await de(()=>import("./index-20d5dab1.js").then(F=>F.bS),["assets/index-20d5dab1.js","assets/index-2b0c085a.css"]),{data:a,error:_}=await s.from("storys").select("*").eq("id",t.value).single();if(_||!a){z.error("قصه یافت نشد");return}let n=a.cover||null;n&&n.startsWith("http")&&(n=n.replace(/^https?:\/\/[^\/]+/,""));let $=a.src||null;$&&$.startsWith("http")&&($=$.replace(/^https?:\/\/[^\/]+/,""));const H={title:a.title||"",sub_title:a.sub_title||"",cover:n,src:$,time:a.time&&typeof a.time=="object"?{minutes:Number(a.time.minutes)||0,seconds:Number(a.time.seconds)||0}:{minutes:0,seconds:0},book_id:P.value.book_id||null};await xe(t.value,H),z.success("کتاب با موفقیت مرتبط شد"),le(),await U()}catch(s){console.error("Error linking book:",s),z.error("خطا در مرتبط کردن کتاب: "+(s.message||"خطای ناشناخته"))}}Ee(async()=>{try{const{getBooks:s}=await de(()=>import("./books-fee58492.js"),["assets/books-fee58492.js","assets/index-20d5dab1.js","assets/index-2b0c085a.css"]),a=await s();T.value=a||[]}catch(s){console.error("Error loading books:",s)}});async function Pe(s){const _=(s==null?void 0:s.show)===!1,n=!!_;ye.confirm({title:_?"نمایش دادن قصه":"مخفی کردن قصه",content:_?`آیا مطمئن هستید که می‌خواهید قصه "${s.title}" را نمایش دهید؟`:`آیا مطمئن هستید که می‌خواهید قصه "${s.title}" را مخفی کنید؟`,okText:_?"بله، نمایش بده":"بله، مخفی کن",cancelText:"انصراف",okType:"default",centered:!0,onOk:async()=>{try{await lt(s.id,n),z.success(_?"قصه با موفقیت نمایش داده شد":"قصه با موفقیت مخفی شد"),await U()}catch($){console.error("Error toggling show:",$),z.error("خطا در تغییر وضعیت قصه: "+($.message||"خطای ناشناخته"))}}})}function Re(s){ye.confirm({title:"حذف قصه",content:`آیا مطمئن هستید که می‌خواهید قصه "${s.title}" را حذف کنید؟`,okText:"بله، حذف کن",cancelText:"انصراف",okType:"danger",centered:!0,onOk:async()=>{await rt(s.id),await U()}})}async function Ae(s){O.value=s.id,M.value=!0,v.value=!0,c.value=null;try{const a=await ct(s.id);c.value=a,R.value.api=_=>$e(_,s.id)}catch(a){console.error("Error loading views:",a),z.error("خطا در بارگذاری اطلاعات بازدیدها: "+(a.message||"خطای ناشناخته"))}finally{v.value=!1}}ce([M,c],async([s,a])=>{if(s&&a&&a.total_views>0){await me(),await me();try{await E()}catch{setTimeout(async()=>{try{await E()}catch(n){console.warn("Could not reload viewers table:",n)}},200)}}},{immediate:!1});function re(){M.value=!1,c.value=null,O.value=null}return(s,a)=>{const _=Ke,n=Xe,$=Ge,H=Je,F=Ze;return j(),W("div",null,[D(F,null,{default:q(()=>[o("div",dt,[mt,D(_,{type:"primary",onClick:Oe},{default:q(()=>[oe("افزودن قصه")]),_:1})]),D(n,fe(V.value,{ref:"table",onRegister:A(x)}),{action:q(({record:l})=>[o("div",ft,[D(A(te),{class:"cursor-pointer"},{title:q(()=>[vt]),default:q(()=>[D(K,{icon:"vuesax-linear:monitor",color:"#8B5CF6",onClick:I=>Ae(l)},null,8,["onClick"])]),_:2},1024),D(A(te),{class:"cursor-pointer"},{title:q(()=>[o("span",null,ee((l==null?void 0:l.show)===!1?"نمایش دادن":"مخفی کردن"),1)]),default:q(()=>[D(K,{icon:(l==null?void 0:l.show)===!1?"vuesax-linear:eye":"vuesax-linear:eye-slash",color:(l==null?void 0:l.show)===!1?"#10B981":"#F59E0B",onClick:I=>Pe(l)},null,8,["icon","color","onClick"])]),_:2},1024),D(A(te),{class:"cursor-pointer"},{title:q(()=>[ht]),default:q(()=>[D(K,{icon:"vuesax-linear:trash",color:"#DC2626",onClick:I=>Re(l)},null,8,["onClick"])]),_:2},1024),D(A(te),{class:"cursor-pointer"},{title:q(()=>[_t]),default:q(()=>[D(K,{icon:"vuesax-linear:edit",color:"#1D4ED8",onClick:I=>Ve(l)},null,8,["onClick"])]),_:2},1024),l!=null&&l.book_id?X("",!0):(j(),Fe(A(te),{key:0,class:"cursor-pointer"},{title:q(()=>[pt]),default:q(()=>[D(K,{icon:"vuesax-linear:book",color:"#217346",onClick:I=>He(l)},null,8,["onClick"])]),_:2},1024))])]),_:1},16,["onRegister"]),D(H,{visible:k.value,"onUpdate:visible":a[9]||(a[9]=l=>k.value=l),title:r.value?"ویرایش قصه":"افزودن قصه",onOk:Ne,onCancel:ie,width:"80%",confirmLoading:h.value>0},{default:q(()=>[o("div",gt,[h.value>0?(j(),W("div",bt,[D(A(ke),{size:"large"})])):X("",!0),o("div",null,[yt,D($,{value:g.value.title,"onUpdate:value":a[0]||(a[0]=l=>g.value.title=l),placeholder:"عنوان"},null,8,["value"])]),o("div",null,[kt,D($,{value:g.value.sub_title,"onUpdate:value":a[1]||(a[1]=l=>g.value.sub_title=l),placeholder:"زیرعنوان"},null,8,["value"])]),o("div",null,[wt,D(pe,{value:g.value.book_id??void 0,"onUpdate:value":a[2]||(a[2]=l=>g.value.book_id=l??null),items:T.value,keyName:"id",valueName:"title",placeholder:"انتخاب کتاب",allowClear:!0},null,8,["value","items"])]),o("div",null,[xt,D(A(i),{value:C.value,"onUpdate:value":a[3]||(a[3]=l=>C.value=l),open:J.value,"onUpdate:open":a[4]||(a[4]=l=>J.value=l),locale:A(We),"show-time":{format:"HH:mm:ss"},format:"YYYY-MM-DD HH:mm:ss",placeholder:"انتخاب تاریخ و زمان انتشار",class:"w-full",onChange:Ce,onOk:Ue},null,8,["value","open","locale"])]),o("div",$t,[o("div",Dt,[o("div",null,[St,D(A(we),{"file-list":L.value,"onUpdate:fileList":a[5]||(a[5]=l=>L.value=l),"before-upload":Le,"custom-request":ze,headers:y,accept:"image/*","max-count":1,"list-type":"picture-card"},{default:q(()=>[L.value.length<1?(j(),W("div",Mt,[D(K,{icon:"vuesax-linear:image",class:"text-2xl mb-2"}),Tt])):X("",!0)]),_:1},8,["file-list"]),S.value>0&&S.value<100?(j(),W("div",Ct,[o("div",Ut,[o("div",{class:"h-2 bg-blue-500 transition-all",style:ve(ne(S.value))},null,4)]),o("div",Ot,ee(S.value)+"%",1)])):X("",!0)]),o("div",null,[Yt,D(A(we),{"file-list":u.value,"onUpdate:fileList":a[6]||(a[6]=l=>u.value=l),"before-upload":Ye,"custom-request":qe,headers:y,accept:"audio/*","max-count":1,"list-type":"picture-card"},{default:q(()=>[u.value.length<1?(j(),W("div",It,[D(K,{icon:"vuesax-linear:music",class:"text-2xl mb-2"}),qt])):X("",!0)]),_:1},8,["file-list"]),f.value>0&&f.value<100?(j(),W("div",Lt,[o("div",zt,[o("div",{class:"h-2 bg-blue-500 transition-all",style:ve(ne(f.value))},null,4)]),o("div",Nt,ee(f.value)+"%",1)])):X("",!0)])]),o("div",Vt,[Ht,o("div",Bt,[o("div",null,[Pt,D($,{value:g.value.time.minutes,"onUpdate:value":a[7]||(a[7]=l=>g.value.time.minutes=l),type:"number",placeholder:"0",disabled:!0},null,8,["value"])]),o("div",null,[Rt,D($,{value:g.value.time.seconds,"onUpdate:value":a[8]||(a[8]=l=>g.value.time.seconds=l),type:"number",placeholder:"0",disabled:!0},null,8,["value"])])])])])])]),_:1},8,["visible","title","confirmLoading"]),D(H,{visible:e.value,"onUpdate:visible":a[11]||(a[11]=l=>e.value=l),title:"مرتبط کردن کتاب",onOk:Be,onCancel:le,width:"500px"},{default:q(()=>[o("div",At,[o("div",null,[jt,D(pe,{value:P.value.book_id??void 0,"onUpdate:value":a[10]||(a[10]=l=>P.value.book_id=l??null),items:T.value,keyName:"id",valueName:"title",placeholder:"انتخاب کتاب",allowClear:!0},null,8,["value","items"])])])]),_:1},8,["visible"]),D(H,{visible:M.value,"onUpdate:visible":a[12]||(a[12]=l=>M.value=l),title:"اطلاعات بازدیدها",onCancel:re,width:"800px",customFooter:!0,okText:""},{footer:q(()=>[o("div",Et,[D(_,{onClick:re},{default:q(()=>[oe("بستن")]),_:1})])]),default:q(()=>[c.value?(j(),W("div",Ft,[o("div",Wt,[o("div",Zt,[Jt,o("div",Gt,ee(c.value.total_views),1)]),o("div",Xt,[Kt,o("div",Qt,ee(c.value.unique_viewers),1)])]),o("div",null,[es,c.value&&c.value.total_views>0?(j(),W("div",ts,[D(n,fe(R.value,{onRegister:A(B)}),null,16,["onRegister"])])):(j(),W("div",ss," هنوز بازدیدی ثبت نشده است "))])])):v.value?(j(),W("div",as,[D(A(ke),{size:"large"})])):X("",!0)]),_:1},8,["visible"])]),_:1})])}}});export{As as default};