mirror of
https://github.com/TheBinaryNinja/tvapp2.git
synced 2026-06-11 19:05:41 -04:00
2 lines
5.0 KiB
JavaScript
2 lines
5.0 KiB
JavaScript
import{v as $,r as f,o as l,y as k,u as t,t as s,Z as h,N as d,X as i,_ as r,p as z,e as c,z as D,s as U,q as b,Y as V,U as S,J as y,H as p,Q as B,f as u}from"./index-CQPQcDLN.js";const E={class:"col",style:{"max-width":"760px"}},N={class:"segmented",style:{"align-self":"flex-start"}},I={class:"card"},P={class:"segmented",style:{"margin-bottom":"14px"}},R={class:"active"},T={class:"icon-circle"},G={class:"row",style:{gap:"6px",color:"var(--text-3)","font-size":"var(--fs-xs)"}},L={key:1,class:"card",style:{background:"var(--bg-2)"}},X={class:"row",style:{"margin-bottom":"12px"}},j={style:{flex:"1"}},q={style:{"font-weight":"600"}},F={class:"muted",style:{"font-size":"var(--fs-xs)"}},H={style:{height:"4px","border-radius":"999px",background:"var(--bg-3)",overflow:"hidden"}},J={key:0,style:{"margin-top":"16px",display:"flex","flex-direction":"column",gap:"12px"}},O={class:"form-grid-2"},Q={class:"form-row"},Y={class:"input"},Z=["value"],A={class:"row",style:{"margin-top":"4px"}},K={class:"row",style:{"justify-content":"flex-end","margin-top":"6px"}},W={key:0,class:"card"},ee={class:"row"},le={class:"input",style:{flex:"1"}},te=["placeholder"],ae=$({__name:"ImportScreen",setup(se){const w=B(),a=y("playlist"),g=y(!1),v=y(null),n=y(0),_=y("");function x(m){v.value={name:m,size:"1.2 MB"},n.value=0;let e=0;const o=setInterval(()=>{e+=7+Math.random()*10,e>=100&&(e=100,clearInterval(o)),n.value=Math.round(e)},180)}function M(m){var o;m.preventDefault(),g.value=!1;const e=(o=m.dataTransfer)==null?void 0:o.files[0];e&&x(e.name)}function C(){w.push(a.value==="playlist"?"/playlists":"/epg-sources")}return(m,e)=>(p(),f("div",E,[l("div",N,[l("button",{class:k(a.value==="playlist"?"active":""),onClick:e[0]||(e[0]=o=>a.value="playlist")},[t(u,{name:"playlist",size:13}),e[9]||(e[9]=s("M3U Playlist ",-1))],2),l("button",{class:k(a.value==="epg"?"active":""),onClick:e[1]||(e[1]=o=>a.value="epg")},[t(u,{name:"epg",size:13}),e[10]||(e[10]=s("EPG / XMLTV ",-1))],2)]),l("div",I,[e[22]||(e[22]=l("div",{class:"field-lbl"},"Source",-1)),l("div",P,[l("button",R,[t(u,{name:"upload",size:13}),e[11]||(e[11]=s("Upload file",-1))]),l("button",null,[t(u,{name:"link",size:13}),e[12]||(e[12]=s("Remote URL",-1))])]),v.value?(p(),f("div",L,[l("div",X,[t(u,{name:"file",size:18}),l("div",j,[l("div",q,d(v.value.name),1),l("div",F,d(v.value.size)+" · "+d(n.value<100?"parsing…":"ready"),1)]),n.value<100?(p(),z(r,{key:0,tone:"cyan"},{default:i(()=>[s(d(n.value)+"%",1)]),_:1})):(p(),z(r,{key:1,tone:"good"},{default:i(()=>[t(u,{name:"check",size:11}),e[18]||(e[18]=s("parsed",-1))]),_:1})),t(c,{variant:"ghost",size:"sm",icon:"x",onClick:e[5]||(e[5]=o=>{v.value=null,n.value=0})})]),l("div",H,[l("div",{style:D({height:"100%",width:n.value+"%",background:"var(--accent)",boxShadow:"0 0 12px var(--accent)",transition:"width .15s"})},null,4)]),n.value===100?(p(),f("div",J,[l("div",O,[l("div",Q,[e[19]||(e[19]=l("div",{class:"field-lbl"},"Source name",-1)),l("div",Y,[l("input",{value:a.value==="playlist"?"My Playlist":"My EPG Guide"},null,8,Z)])]),e[20]||(e[20]=U('<div class="form-row"><div class="field-lbl">Refresh interval</div><div class="select"><select value="6h"><option value="manual">Manual only</option><option value="6h">Every 6 hours</option><option value="12h">Every 12 hours</option><option value="1d">Daily</option></select></div></div>',1))]),l("div",A,[t(r,{tone:"good"},{default:i(()=>[s(d(a.value==="playlist"?"142 channels detected":"8,420 programs detected"),1)]),_:1}),t(r,null,{default:i(()=>[s(d(a.value==="playlist"?"8 groups":"124 channels"),1)]),_:1})]),l("div",K,[t(c,{variant:"ghost",onClick:e[6]||(e[6]=o=>{v.value=null,n.value=0})},{default:i(()=>[...e[21]||(e[21]=[s("Cancel",-1)])]),_:1}),t(c,{variant:"primary",icon:"check",onClick:C},{default:i(()=>[s(" Import "+d(a.value==="playlist"?"playlist":"EPG"),1)]),_:1})])])):b("",!0)])):(p(),f("div",{key:0,class:k(["dropzone",{over:g.value}]),onDragover:e[2]||(e[2]=h(o=>g.value=!0,["prevent"])),onDragleave:e[3]||(e[3]=o=>g.value=!1),onDrop:M,onClick:e[4]||(e[4]=o=>x(a.value==="playlist"?"playlist.m3u":"guide.xml.gz"))},[l("div",T,[t(u,{name:"upload",size:22})]),l("div",null,[l("h3",null,"Drop "+d(a.value==="playlist"?"an M3U/M3U8":"an XMLTV")+" file here",1),e[13]||(e[13]=l("p",null,"or click to browse — up to 50 MB",-1))]),l("div",G,[t(r,null,{default:i(()=>[...e[14]||(e[14]=[s(".m3u",-1)])]),_:1}),t(r,null,{default:i(()=>[...e[15]||(e[15]=[s(".m3u8",-1)])]),_:1}),t(r,null,{default:i(()=>[...e[16]||(e[16]=[s(".xml",-1)])]),_:1}),t(r,null,{default:i(()=>[...e[17]||(e[17]=[s(".xml.gz",-1)])]),_:1})])],34))]),v.value?b("",!0):(p(),f("div",W,[e[24]||(e[24]=l("div",{class:"field-lbl"},"Or paste a URL",-1)),l("div",ee,[l("div",le,[t(u,{name:"link",size:14}),V(l("input",{"onUpdate:modelValue":e[7]||(e[7]=o=>_.value=o),placeholder:a.value==="playlist"?"https://example.com/playlist.m3u":"https://example.com/guide.xml.gz"},null,8,te),[[S,_.value]])]),t(c,{variant:"primary",icon:"import",onClick:e[8]||(e[8]=o=>x(a.value==="playlist"?"remote.m3u":"remote.xml.gz"))},{default:i(()=>[...e[23]||(e[23]=[s("Fetch",-1)])]),_:1})])]))]))}});export{ae as default};
|