PageSourceSearch

https://10use-app.netlify.app/assets/MyRankingsView-C4VFNlkU.js

js 10use-app.netlify.app collected 2026-10-03 10:23:05 UTC 9,362 bytes, 1 lines download raw bytes

1import{d as G,r as i,j as D,o as J,c as n,y as $,b as t,X as Q,t as r,F as m,e as B,x as k,A as _,L as W,f as h,v as w,g as p,q as K,am as ee,Z as te,B as v,h as o}from"./index-Bm4GpDNS.js";const ae={class:"min-h-screen bg-gray-50 pb-24"},le={class:"max-w-lg mx-auto px-4 py-6 flex flex-col gap-4"},se={key:0,class:"text-center py-12 text-gray-400"},ne={key:1,class:"text-center py-12 text-danger"},oe={class:"bg-[var(--linen)] rounded-2xl border border-black/10 shadow-[0_3px_10px_-7px_rgba(10,10,10,0.3)] p-4 flex gap-2"},ie=["disabled"],re={key:0,class:"flex flex-col gap-2"},de=["onClick"],ce={class:"flex items-center justify-between"},ue={class:"font-semibold text-black"},be={key:0,class:"text-[10px] text-success bg-success/10 rounded-full px-2 py-0.5"},xe={class:"text-xs text-black/40 mt-0.5"},pe={key:1,class:"text-center py-6 text-black/40 text-sm"},ve={key:2,class:"bg-[var(--linen)] rounded-2xl border border-black/10 shadow-[0_3px_10px_-7px_rgba(10,10,10,0.3)] p-4 flex flex-col gap-4"},me={class:"flex gap-2"},ye={key:0,class:"flex gap-2"},fe={class:"flex-1 text-[11px] text-black/50"},ge={class:"flex-1 text-[11px] text-black/50"},ke={key:1,class:"grid grid-cols-3 gap-2"},_e=["onUpdate:modelValue"],he=["disabled"],we={key:0,class:"flex flex-col gap-1 max-h-56 overflow-y-auto"},Ce=["checked","onChange"],Ve={class:"text-sm text-black"},je={class:"text-[10px] text-black/35"},Se={key:1,class:"text-xs text-black/40"},ze={class:"border-t border-black/5 pt-3"},Ne={class:"flex items-center justify-between cursor-pointer"},Ue=["checked"],$e={key:0,class:"mt-2 flex gap-2 items-center"},Be=["value"],Pe={class:"border-t border-black/5 pt-3"},Te={key:0,class:"text-xs text-black/40 py-2"},Le={key:1,class:"flex flex-col"},Me={class:"text-sm text-black"},Ze={class:"text-sm font-bold text-black"},Ee={key:2,class:"text-xs text-black/40 py-2"},Ke=G({__name:"MyRankingsView",setup(Ae){const c=i([]),C=i([]),V=i(!0),y=i(""),b=i(null),f=i([]),j=i(!1),x=i(""),S=i(!1),z=i(!1),d=i({}),N=i(!1),U=i(!1),I=["1","2","3","4","5","6","7","8","default"];function P(l){return l==="placement"?{1:100,2:70,3:50,4:50,5:30,6:30,7:30,8:30,default:10}:{win:3,loss:0}}function R(){if(!s.value)return;const l=s.value.scoring_scheme&&Object.keys(s.value.scoring_scheme).length?{...s.value.scoring_scheme}:P(s.value.scoring_mode);d.value=l}async function F(){if(s.value){N.value=!0;try{const l={};for(const e in d.value)l[e]=Number(d.value[e])||0;await g({scoring_scheme:l}),U.value=!0,setTimeout(()=>U.value=!1,1500)}finally{N.value=!1}}}const s=D(()=>c.value.find(l=>l.id===b.value)||null),T=D(()=>s.value?`${window.location.origin}/embed/ranking/${s.value.public_token}`:"");async function O(){V.value=!0;try{const[l,e]=await Promise.all([v.get("/rankings/"),v.get("/leagues/?mine=true")]);c.value=l,C.value=e}catch(l){y.value=l?.message||"Načítanie zlyhalo."}finally{V.value=!1}}async function L(){if(x.value.trim()){S.value=!0;try{const l=await v.post("/rankings/",{name:x.value.trim(),scoring_mode:"placement"});c.value.unshift(l),x.value="",M(l.id)}catch(l){y.value=l?.message||"Vytvorenie zlyhalo."}finally{S.value=!1}}}async function M(l){b.value=l,R(),await Z()}async function Z(){if(b.value){j.value=!0;try{const l=await v.get(`/rankings/${b.value}/standings/`);f.value=l.standings}catch{f.value=[]}finally{j.value=!1}}}async function g(l){if(!s.value)return;const e=await v.patch(`/rankings/${s.value.id}/`,l),a=c.value.findIndex(u=>u.id===e.id);a>=0&&(c.value[a]=e),await Z()}function E(l){return!!s.value?.included_leagues_detail.some(e=>e.id===l)}async function q(l){if(!s.value)return;const e=s.value.included_leagues_detail.map(u=>u.id),a=E(l)?e.filter(u=>u!==l):[...e,l];await g({included_leagues:a})}async function A(l){if(s.value?.scoring_mode===l)return;const e=P(l);await g({scoring_mode:l,scoring_scheme:e}),d.value={...e}}async function H(){s.value&&await g({is_public:!s.value.is_public})}async function X(){if(!s.value||!confirm(`Zmazať rebríček „${s.value.name}"?`))return;const l=s.value.id;await v.delete(`/rankings/${l}/`),c.value=c.value.filter(e=>e.id!==l),b.value=null}function Y(){navigator.clipboard.writeText(T.value),z.value=!0,setTimeout(()=>z.value=!1,1500)}return J(O),(l,e)=>(o(),n("div",ae,[$(Q,{showBack:!0}),t("div",le,[e[14]||(e[14]=t("div",null,[t("h1",{class:"text-xl font-bold text-black"},"Moje rebríčky"),t("p",{class:"text-sm text-black/50"},"Spoj svoje ligy a turnaje do jedného rebríčka s vlastným bodovaním.")],-1)),V.value?(o(),n("div",se,"Načítavam…")):y.value?(o(),n("div",ne,r(y.value),1)):(o(),n(m,{key:2},[t("div",oe,[k(t("input",{"onUpdate:modelValue":e[0]||(e[0]=a=>x.value=a),type:"text",placeholder:"Názov rebríčka",class:"flex-1 px-3 py-2 rounded-xl border border-black/10 text-sm text-black placeholder:text-black/40 bg-white",onKeyup:W(L,["enter"])},null,544),[[_,x.value]]),t("button",{disabled:S.value||!x.value.trim(),class:"px-4 py-2 rounded-xl bg-primary text-white text-sm font-semibold disabled:opacity-40",onClick:L},"Vytvoriť",8,ie)]),c.value.length?(o(),n("div",re,[(o(!0),n(m,null,h(c.value,a=>(o(),n("button",{key:a.id,onClick:u=>M(a.id),class:w(["text-left bg-[var(--linen)] rounded-2xl border p-4 transition shadow-[0_3px_10px_-7px_rgba(10,10,10,0.3)]",b.value===a.id?"border-primary ring-1 ring-primary":"border-black/10"])},[t("div",ce,[t("span",ue,r(a.name),1),a.is_public?(o(),n("span",be,"Verejný")):B("",!0)]),t("p",xe,r(a.scoring_mode==="placement"?"Umiestnenie":"Per-zápas")+" · "+r(a.included_leagues_detail.length)+" udalostí ",1)],10,de))),128))])):(o(),n("div",pe,"Zatiaľ žiadny rebríček.")),s.value?(o(),n("div",ve,[t("div",null,[e[7]||(e[7]=t("p",{class:"text-xs font-semibold text-black/60 mb-1.5"},"Bodovanie",-1)),t("div",me,[t("button",{onClick:e[1]||(e[1]=a=>A("placement")),class:w(["flex-1 px-3 py-2 rounded-xl text-sm border",s.value.scoring_mode==="placement"?"bg-primary/10 border-primary text-primary font-semibold":"border-black/10 text-black/60"])},[$(K(ee),{size:15,class:"inline-block align-text-bottom"}),e[5]||(e[5]=p(" Umiestnenie",-1))],2),t("button",{onClick:e[2]||(e[2]=a=>A("per_match")),class:w(["flex-1 px-3 py-2 rounded-xl text-sm border",s.value.scoring_mode==="per_match"?"bg-primary/10 border-primary text-primary font-semibold":"border-black/10 text-black/60"])},[$(K(te),{size:15,class:"inline-block align-text-bottom"}),e[6]||(e[6]=p(" Per-zápas",-1))],2)])]),t("div",null,[e[10]||(e[10]=t("p",{class:"text-xs font-semibold text-black/60 mb-1.5"},"Body za…",-1)),s.value.scoring_mode==="per_match"?(o(),n("div",ye,[t("label",fe,[e[8]||(e[8]=p("Výhra ",-1)),k(t("input",{"onUpdate:modelValue":e[3]||(e[3]=a=>d.value.win=a),type:"number",class:"w-full mt-0.5 px-2 py-1.5 rounded-lg border border-black/10 text-sm text-black"},null,512),[[_,d.value.win,void 0,{number:!0}]])]),t("label",ge,[e[9]||(e[9]=p("Prehra ",-1)),k(t("input",{"onUpdate:modelValue":e[4]||(e[4]=a=>d.value.loss=a),type:"number",class:"w-full mt-0.5 px-2 py-1.5 rounded-lg border border-black/10 text-sm text-black"},null,512),[[_,d.value.loss,void 0,{number:!0}]])])])):(o(),n("div",ke,[(o(),n(m,null,h(I,a=>t("label",{key:a,class:"text-[11px] text-black/50"},[p(r(a==="default"?"Ostatní":a+". miesto")+" ",1),k(t("input",{"onUpdate:modelValue":u=>d.value[a]=u,type:"number",class:"w-full mt-0.5 px-2 py-1.5 rounded-lg border border-black/10 text-sm text-black"},null,8,_e),[[_,d.value[a],void 0,{number:!0}]])])),64))])),t("button",{onClick:F,disabled:N.value,class:"mt-2 px-3 py-1.5 rounded-lg bg-primary/10 text-primary border border-primary/20 text-xs font-semibold disabled:opacity-40"},r(U.value?"✓ Uložené":"Uložiť body"),9,he)]),t("div",null,[e[11]||(e[11]=t("p",{class:"text-xs font-semibold text-black/60 mb-1.5"},"Zahrnúť udalosti",-1)),C.value.length?(o(),n("div",we,[(o(!0),n(m,null,h(C.value,a=>(o(),n("label",{key:a.id,class:"flex items-center gap-2 px-2 py-1.5 rounded-lg hover:bg-gray-50 cursor-pointer"},[t("input",{type:"checkbox",checked:E(a.id),onChange:u=>q(a.id)},null,40,Ce),t("span",Ve,r(a.name),1),t("span",je,r(a.sport_name),1)]))),128))])):(o(),n("p",Se,"Nemáš žiadne ligy/turnaje."))]),t("div",ze,[t("label",Ne,[e[12]||(e[12]=t("span",{class:"text-sm text-black/70"},"Verejný rebríček (embed)",-1)),t("input",{type:"checkbox",checked:s.value.is_public,onChange:H},null,40,Ue)]),s.value.is_public?(o(),n("div",$e,[t("input",{value:T.value,readonly:"",class:"flex-1 px-2 py-1.5 rounded-lg border border-black/10 text-xs text-black/60"},null,8,Be),t("button",{onClick:Y,class:"px-3 py-1.5 rounded-lg bg-black/5 text-xs font-medium"},r(z.value?"✓":"Kopírovať"),1)])):B("",!0)]),t("div",Pe,[e[13]||(e[13]=t("p",{class:"text-xs font-semibold text-black/60 mb-1.5"},"Poradie",-1)),j.value?(o(),n("div",Te,"Počítam…")):f.value.length?(o(),n("div",Le,[(o(!0),n(m,null,h(f.value,a=>(o(),n("div",{key:a.player_id,class:"flex items-center justify-between py-1.5 border-b border-black/5 last:border-0"},[t("span",Me,[t("span",{class:w(["inline-block w-6 font-semibold",a.rank===1?"text-primary":"text-black/40"])},r(a.rank)+".",3),p(" "+r(a.player_name),1)]),t("span",Ze,r(a.points),1)]))),128))])):(o(),n("p",Ee,"Zatiaľ žiadne výsledky (vyber udalosti vyššie)."))]),t("button",{onClick:X,class:"text-xs text-danger self-start"},"Zmazať rebríček")])):B("",!0)],64))])]))}});
1export{Ke as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.